Github
OAuth 2.0 developer_toolsGithub
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Read repositories — fetch repo metadata, files, commits, branches, and tags
- Manage issues — create, update, close, and comment on issues
- Work with pull requests — open PRs, post reviews, and merge changes
- Search code — search across repositories by keyword, language, or file path
- Trigger workflows — dispatch GitHub Actions workflow runs
Authentication
Section titled “Authentication”This connector uses OAuth 2.0. Scalekit acts as the OAuth client: it redirects your user to Github, obtains an access token, and automatically refreshes it before it expires. Your agent code never handles tokens directly — you only pass a connectionName and a user identifier.
You supply your Github Connected App credentials (Client ID + Secret) once per environment in the Scalekit dashboard.
Set up the connector
Register your Scalekit environment with the GitHub connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:
-
Set up auth redirects
-
In Scalekit dashboard, go to Agent Auth → Create Connection. Find GitHub and click Create.
-
Click Use your own credentials and copy the redirect URI. It looks like
https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.
-
Go to GitHub Developer Settings and open your OAuth app.
-
Under General, paste the copied URI into the Authorization callback URL field and click Save application.

-
-
Get client credentials
In GitHub Developer Settings, open your OAuth app:
- Client ID — listed on the app’s main settings page
- Client Secret — click Generate a new client secret if you don’t have one
-
Add credentials in Scalekit
-
In Scalekit dashboard, go to Agent Auth → Connections and open the connection you created.
-
Enter your credentials:
- Client ID (from your GitHub OAuth app)
- Client Secret (from your GitHub OAuth app)

-
Click Save.
-
Code examples
Connect a user’s GitHub account and make API calls on their behalf — Scalekit handles OAuth and token management automatically.
Proxy API Calls
import { ScalekitClient } from '@scalekit-sdk/node';import 'dotenv/config';
const connectionName = 'github'; // get your connection name from connection configurationsconst identifier = 'user_123'; // your unique user identifier
// Get your credentials from app.scalekit.com → Developers → Settings → API Credentialsconst scalekit = new ScalekitClient( process.env.SCALEKIT_ENV_URL, process.env.SCALEKIT_CLIENT_ID, process.env.SCALEKIT_CLIENT_SECRET);const actions = scalekit.actions;
// Authenticate the userconst { link } = await actions.getAuthorizationLink({ connectionName, identifier,});console.log('🔗 Authorize GitHub:', link);process.stdout.write('Press Enter after authorizing...');await new Promise(r => process.stdin.once('data', r));
// Make a request via Scalekit proxyconst result = await actions.request({ connectionName, identifier, path: '/user', method: 'GET',});console.log(result);import scalekit.client, osfrom dotenv import load_dotenvload_dotenv()
connection_name = "github" # get your connection name from connection configurationsidentifier = "user_123" # your unique user identifier
# Get your credentials from app.scalekit.com → Developers → Settings → API Credentialsscalekit_client = scalekit.client.ScalekitClient( client_id=os.getenv("SCALEKIT_CLIENT_ID"), client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"), env_url=os.getenv("SCALEKIT_ENV_URL"),)actions = scalekit_client.actions
# Authenticate the userlink_response = actions.get_authorization_link( connection_name=connection_name, identifier=identifier)# present this link to your user for authorization, or click it yourself for testingprint("🔗 Authorize GitHub:", link_response.link)input("Press Enter after authorizing...")
# Make a request via Scalekit proxyresult = actions.request( connection_name=connection_name, identifier=identifier, path="/user", method="GET")print(result)Tool list
Section titled “Tool list” github_branch_create Create a new branch in a GitHub repository. Requires the SHA of the commit to branch from (typically the HEAD of main). 4 params
Create a new branch in a GitHub repository. Requires the SHA of the commit to branch from (typically the HEAD of main).
branch_name string required Name of the new branch to create owner string required The account owner of the repository repo string required The name of the repository sha string required The SHA of the commit to branch from. Use the HEAD SHA of the base branch (e.g. main). github_branch_get Get details of a specific branch in a GitHub repository. Returns the branch name, latest commit SHA, and protection status. 3 params
Get details of a specific branch in a GitHub repository. Returns the branch name, latest commit SHA, and protection status.
branch string required The name of the branch to retrieve owner string required The account owner of the repository repo string required The name of the repository github_branches_list List all branches in a GitHub repository. Returns branch names, commit SHAs, and protection status. Supports pagination. 5 params
List all branches in a GitHub repository. Returns branch names, commit SHAs, and protection status. Supports pagination.
owner string required The account owner of the repository repo string required The name of the repository page integer optional Page number of results to return (default 1) per_page integer optional Number of results per page (max 100, default 30) protected boolean optional Filter to only protected branches github_file_contents_get Get the contents of a file or directory from a GitHub repository. Returns Base64 encoded content for files. 4 params
Get the contents of a file or directory from a GitHub repository. Returns Base64 encoded content for files.
owner string required The account owner of the repository path string required The content path (file or directory path in the repository) repo string required The name of the repository ref string optional The name of the commit/branch/tag github_file_create_update Create a new file or update an existing file in a GitHub repository. Content must be Base64 encoded. Requires SHA when updating existing files. 9 params
Create a new file or update an existing file in a GitHub repository. Content must be Base64 encoded. Requires SHA when updating existing files.
content string required The new file content (Base64 encoded) message string required The commit message for this change owner string required The account owner of the repository path string required The file path in the repository repo string required The name of the repository author object optional Author information object with name and email branch string optional The branch name committer object optional Committer information object with name and email sha string optional The blob SHA of the file being replaced (required when updating existing files) github_issue_create Create a new issue in a repository. Requires push access to set assignees, milestones, and labels. 8 params
Create a new issue in a repository. Requires push access to set assignees, milestones, and labels.
owner string required The account owner of the repository repo string required The name of the repository title string required The title of the issue assignees array optional GitHub usernames to assign to the issue body string optional The contents of the issue labels array optional Labels to associate with the issue milestone number optional Milestone number to associate with the issue type string optional The name of the issue type github_issues_list List issues in a repository. Both issues and pull requests are returned as issues in the GitHub API. 12 params
List issues in a repository. Both issues and pull requests are returned as issues in the GitHub API.
owner string required The account owner of the repository repo string required The name of the repository assignee string optional Filter by assigned user creator string optional Filter by issue creator direction string optional Sort order labels string optional Filter by comma-separated list of label names milestone string optional Filter by milestone number or state page number optional Page number of results to fetch per_page number optional Number of results per page (max 100) since string optional Show issues updated after this timestamp (ISO 8601 format) sort string optional Property to sort issues by state string optional Filter by issue state github_public_repos_list List public repositories for a specified user. Does not require authentication. 6 params
List public repositories for a specified user. Does not require authentication.
username string required The GitHub username to list repositories for direction string optional Sort order page number optional Page number of results to fetch per_page number optional Number of results per page (max 100) sort string optional Property to sort repositories by type string optional Filter repositories by type github_pull_request_create Create a new pull request in a repository. Requires write access to the head branch. 8 params
Create a new pull request in a repository. Requires write access to the head branch.
base string required The name of the branch you want the changes pulled into head string required The name of the branch where your changes are implemented (format: user:branch) owner string required The account owner of the repository repo string required The name of the repository body string optional The contents of the pull request description draft boolean optional Indicates whether the pull request is a draft maintainer_can_modify boolean optional Indicates whether maintainers can modify the pull request title string optional The title of the pull request github_pull_requests_list List pull requests in a repository with optional filtering by state, head, and base branches. 9 params
List pull requests in a repository with optional filtering by state, head, and base branches.
owner string required The account owner of the repository repo string required The name of the repository base string optional Filter by base branch name direction string optional Sort order head string optional Filter by head branch (format: user:ref-name) page number optional Page number of results to fetch per_page number optional Number of results per page (max 100) sort string optional Property to sort pull requests by state string optional Filter by pull request state github_repo_get Get detailed information about a GitHub repository including metadata, settings, and statistics. 2 params
Get detailed information about a GitHub repository including metadata, settings, and statistics.
owner string required The account owner of the repository (case-insensitive) repo string required The name of the repository without the .git extension (case-insensitive) github_user_repos_list List repositories for the authenticated user. Requires authentication. 5 params
List repositories for the authenticated user. Requires authentication.
direction string optional Sort order page number optional Page number of results to fetch per_page number optional Number of results per page (max 100) sort string optional Property to sort repositories by type string optional Filter repositories by type