All integrations

GitHub

GITHUB · DEVELOPER

Repos, issues, and pull requests under that developer’s own access.

Connect GitHub with Fabriq Developer

Your user consents at GitHub. The credential lands in a vault your agent cannot read, and the tool list it gets back is the intersection of that user’s grant and the agent’s own scopes.

provider “github”
from af_sdk import AgenticFabriq

af = AgenticFabriq()                      # reads AF_APP_ID / AF_APP_SECRET

url = await af.initiate_connection(request, provider="github")   # consent at GitHub
return redirect(url)

async with await af.for_user(request) as session:
    tools = await session.get_tools()     # only what this user granted

Provider names are surfaces, not vendors, and the authoritative list is the capabilities endpoint rather than any page including this one — an unknown name returns 400 with the valid list. Fabriq Developer is free to start and needs no provider paperwork. Start free or read the quickstart.

Connecting GitHub in practice

There is no read-only scope for private code on an OAuth App: an agent that needs one private repository asks for repo, which is read and write across every public and private repository the user can reach, and GitHub documents that OAuth Apps require organization approval and cannot be approved per repository. The secondary limits bite well before the 5,000 requests per hour primary limit, because 100 concurrent requests and 900 points per minute are easy to cross while paginating.

Scopes that draw scrutiny

  • repo Full access to public and private repositories including code and webhooks. There is no private-read-only variant, so least privilege is not available on an OAuth App.
  • admin:org "Fully manage the organization and its teams, projects, and memberships".
  • workflow Adds and updates files under .github/workflows, so an agent holding it can change what CI executes.
  • delete_repo Deletes any repository the user administers.
  • admin:repo_hook Read, write, ping and delete access to repository webhooks, which is enough to redirect or silence event delivery.
  • read:audit_log Reads the organization audit log.

Rate limits

  • 5,000 requests per hour for a personal access token, a GitHub App installation token, or an OAuth App; 15,000 per hour on GitHub Enterprise Cloud.
  • Scaled GitHub App installations rise with repository and user count, up to 12,500 requests per hour.
  • 60 requests per hour unauthenticated.
  • GITHUB_TOKEN inside Actions is 1,000 requests per hour per repository, 15,000 on Enterprise Cloud.
  • Secondary limits: no more than 100 concurrent requests, 900 points per minute across REST endpoints, 90 seconds of CPU time per 60 seconds of real time, and 80 content-generating requests per minute with 500 per hour.
  • Git LFS: 300 requests per minute unauthenticated, 3,000 authenticated.

Who has to approve

GitHub documents that OAuth Apps require organization approval by default and cannot be approved on a per-repository basis. GitHub Apps differ: repository admins may install them on their own repositories until an org owner turns off "Allow repository admins to install GitHub Apps for their repositories", after which each install becomes a request to an org owner. Org owners can also disable app access requests entirely.

Worth knowing

  • A GitHub App installation access token expires after one hour, so the agent needs the app JWT and a mint step in the request path rather than one stored credential.
  • Secondary rate limits fire independently of the hourly quota, so a fan-out that respects 5,000 per hour can still be blocked by the 100-concurrent and 900-points-per-minute rules.
  • Because the installation limit scales with repository and user count, capacity planning cannot assume a flat 5,000 per hour across tenants.
  • GitHub asks for extra justification on the app’s homepage for the Administration permission and for the repository Workflows permission, so those two slow the listing review.

Checked against Scopes for OAuth apps (2026-09-29), Choosing permissions for a GitHub App (2026-09-29), REST API rate limits (2026-09-29), Authenticating as an installation (2026-09-29), Limiting app access requests (2026-09-29)

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

github_create_issueWRITE

Create a new issue in a GitHub repository. Returns the created issue number and URL.

repo
github_create_pull_requestWRITE

Create a new pull request in a GitHub repository.

repo
github_get_connection_infoREAD

Get GitHub connection information including username, accessible repositories, and connection status.

no provider scope
github_get_issueREAD

Get detailed information about a specific GitHub issue including title, body, labels, and assignees.

repo
github_get_pull_requestREAD

Get detailed information about a specific GitHub pull request including title, body, merge status, and reviewers.

repo
github_get_repoREAD

Get detailed information about a specific GitHub repository including description, stars, forks, and default branch.

repo
github_get_userREAD

Get GitHub user profile information including username, name, bio, and public repos count.

read:user
github_list_branchesREAD

List branches in a GitHub repository. Returns branch names and commit SHAs.

repo
github_list_commitsREAD

List commits in a GitHub repository. Returns commit SHA, author, date, and message.

repo
github_list_issuesREAD

List issues for a GitHub repository. Returns issue numbers, titles, states, and assignees.

repo
github_list_pull_requestsREAD

List pull requests for a GitHub repository. Returns PR numbers, titles, states, and authors.

repo
github_list_reposREAD

List GitHub repositories accessible to the authenticated user. Returns repository names, descriptions, and URLs.

repo

Put GitHub behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.