Skip to content
Download

DOCS / INTEGRATIONS

GitHub

GitHub is Birch’s most complete integration: pull requests with checks, reviews, and comments; assigned issues in the Inbox; and everything the PR surfaces can do. Connect with a personal access token — cloud or GitHub Enterprise Server.

In Settings → Integrations, click the GitHub tile. Above its links the connect form lists Token permissions — everything below — so you can check the token page against it. Two links open GitHub’s new-token pages with Birch’s choices already filled in:

  • Create a classic token on GitHub ↗ opens https://github.com/settings/tokens/new?scopes=repo,project&description=Birch, with repo and project ticked.
  • Create a fine-grained token ↗ opens https://github.com/settings/personal-access-tokens/new with the repository permissions below preselected. The resource owner and Repository access can’t be prefilled — pick them yourself.

If you have typed a GitHub Enterprise base URL, both links open that instance’s pages instead of github.com’s.

Both flavors work — the token field’s watermark reads ghp_… or fine-grained token — but the classic token is the recommended one.

ScopeUsed for
repoPull requests, reviews, issues and CI of private repositories; merge and close pull requests
project (optional)Changing an issue’s Status on a Projects board

public_repo is enough if you only work in public repositories.

PermissionAccessUsed for
Repository accessAll repositoriesThe Inbox searches every repository you can see
ContentsRead and writeMerge, and delete the merged branch
Pull requestsRead and writeCreate, close, draft and review pull requests; comments
IssuesReadAssigned issues
Commit statusesReadCI status
MetadataReadAdded automatically
Projects (organization) (optional)Read and writeChanging an issue’s Status on a Projects board

A fine-grained token does less than a classic one:

  • GitHub Actions check runs don’t show — fine-grained tokens can’t call the Checks API, so only commit statuses appear.
  • Repositories where you are an outside collaborator aren’t reachable.
  • A token covers one owner (you or one organization), and Birch keeps one token per GitHub user — connecting a second token for the same user replaces the first.
  • An organization with SAML single sign-on needs a classic token authorized for it under Configure SSO on GitHub’s token page.
  • An organization can block classic tokens, or require approval for fine-grained ones.
  1. Open Settings → Integrations (⌘, / Ctrl+,) and click the GitHub tile.

  2. Fill the form:

    FieldWhat to enter
    Personal access tokenYour ghp_… classic or fine-grained token
    Custom base URLLeave empty for github.com. For GitHub Enterprise Server, enter the API root: https://<host>/api/v3
  3. Click Verify & connect. Birch verifies the token against GitHub before storing it; on success the account appears with a Connected badge, a Verified: timestamp, and Sync now / Remove buttons.

The token is stored in the system keychain, never in Birch’s database. You can add several GitHub accounts — for example github.com plus an Enterprise instance — and they sync independently. See the providers overview for the shared connection model.

  • Pull requests — open PRs on the repository page and the workspace PR card, with state and checks; review requests and activity on your PRs land in the Inbox.
  • Assigned issues — synced into the Inbox Tasks tab. Images embedded in an issue’s description are downloaded and shown as thumbnails, and handed to the agent when you start a workspace from the task.
  • Issue status updates — Birch can move an issue when you start a workspace or create a PR from it (Settings → Task automation; see status transitions).
  • AI code review — new PRs can be reviewed automatically, an Anthropic API feature.
  • Notifications — desktop, sound, and Teams notifications for PR activity; see Notifications.
  • Create a PR from a workspace — the Create PR dialog supports Create as draft — or with birch pr create (--title, --body, --base, --draft). See Create a pull request.
  • Check out a PR into a new workspace: birch pr checkout <url-or-id>.
  • Merge with birch pr merge <url-or-id> — --strategy merge|squash|rebase (default merge), plus --delete-source to remove the source branch.
  • List PRs with birch pr list (--all includes merged and closed).
  • Comments and reviews — Birch syncs PR comments in the background, though the window that shows them currently has no entry point in the shipped build (see Review & manage PRs); an on-demand AI review runs with birch review run <pr-id>.

Full flag reference: CLI — pr.

  • Verification fails — the token is likely expired or revoked. Generate a new one via Create a classic token on GitHub ↗ and reconnect.
  • Creating, merging, closing, drafting or reviewing a PR is refused — Birch shows GitHub’s own reason followed by what to check. On a 403 that is the scope: “GitHub refused this: the token may lack the repo scope (classic token) or Contents: Read and write (fine-grained token). Check Settings > Integrations.” — with Pull requests: Read and write instead of Contents for everything but a merge. On a 401 it says the token may have expired or been revoked.
  • Private repos, PRs or issues are missing — the token most likely lacks repo (classic) or doesn’t cover that repository or owner (fine-grained); see Creating the token.
  • Organization repos or PRs are missing (SAML/SSO) — in organizations that enforce SAML single sign-on, a classic token must be authorized for that organization on GitHub’s token page, and a fine-grained token must be created with the organization as its resource owner. Until then, GitHub simply hides those resources from the token.
  • No status to pick for an issue — changing an issue’s Status needs the project scope (classic) or the organization Projects permission (fine-grained). Without it Birch offers no status change.
  • GitHub Enterprise Server won’t connect — the base URL must be the API root, https://<host>/api/v3, not the plain web URL.
  • Rate limiting — Birch’s background sync runs on a ~10-minute cadence precisely to stay under GitHub’s limits. If you hit a limit anyway (many accounts, frequent manual Sync now), wait a few minutes and let the next cycle catch up.