SigSentrySigSentry

GitHub

Connect GitHub repositories using the SigSentry GitHub App or a personal access token

GitHub is supported via two auth methods: the SigSentry GitHub App (recommended) or a personal access token. The App is more secure, supports per-repo authorization, and allows organization-level installation; the PAT is simpler if you can't install Apps in your org.

The GitHub App approach is what you want if you have any choice in the matter. It supports:

  • Granular per-repo authorization (you pick which repos SigSentry can read)
  • Tokens scoped to a single installation, refreshed automatically
  • Webhook events when repos are added or removed
  • Revocation by uninstalling the App in one click

Click "Install GitHub App" in SigSentry

In the dashboard under Project → Code Repos → Connect repository → GitHub → Install GitHub App, you'll be redirected to GitHub's App installation flow.

Choose where to install it

GitHub asks whether to install on your personal account or an organization. Pick the right one for the repos you want SigSentry to analyze.

Pick repositories

Choose All repositories if you want SigSentry to access everything (easiest but broadest), or Only select repositories to pick specific ones. The App requests these permissions:

PermissionWhy
Contents: ReadReading file contents during analysis
Metadata: ReadListing branches, commits, refs
Pull requests: ReadReading PR diffs to correlate with symptoms

Click Install & Authorize.

Return to SigSentry

GitHub redirects back to SigSentry. The repos you authorized are now listed — pick one or more to attach to this project.

Configure repos for this project

FieldValue
RepositoriesOne per line, in owner/repo format. e.g. acme/checkout-api
Lookback daysHow far back to search PR history. Default 30

(Optional) Add service mappings

Service mappings tell the AI which log service name corresponds to which repo path. See Service mappings.

Save

Click Save. The repo is now active. Run an analysis on this project — the result should include code correlation pointing at specific files and PRs.

Fallback: Personal Access Token

Use this if GitHub Apps aren't available in your organization, or for quick personal testing.

Generate a Personal Access Token

In GitHub, go to Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token.

SettingValue
Token namesigsentry-readonly
ExpirationSet a real expiration; rotate periodically
Repository accessPick the specific repos SigSentry should read
PermissionsContents: Read, Metadata: Read, Pull requests: Read

Click Generate token and copy it — it's shown only once.

Classic PATs (the ones with repo scope) also work but grant much broader access. Use fine-grained tokens whenever possible.

Add the repo source in SigSentry

Project → Code Repos → Connect repository. Pick GitHub as the platform and Personal Access Token as the auth method.

Enter token and repos

FieldValue
Personal access tokenThe PAT you generated
RepositoriesOne per line, owner/repo format
Lookback daysDefault 30

Save

Click Save. Same as the App flow from here.

GitHub Enterprise

For GitHub Enterprise Server (self-hosted GitHub), connecting works the same way as GitHub.com, but you'll need to set the Base URL in the credentials field to your Enterprise instance — e.g. https://github.example.com/api/v3.

GitHub App installation also works on Enterprise; the authorization flow redirects to your Enterprise URL instead of github.com.

Revoking access

To revoke SigSentry's access:

ForAction
GitHub AppUninstall the App at GitHub → Settings → Applications
PATRevoke the token at GitHub → Settings → Personal access tokens

Revoked credentials stop working immediately. Update or remove the log source in SigSentry as well.

Troubleshooting

ErrorFix
401 UnauthorizedApp not installed on the repo, or PAT expired
404 Not FoundRepo name typo, or the App lacks access to that specific repo
403 rate limit exceededHitting GitHub API limits; reduce concurrent analyses or retry later
Code correlation missing from resultsRepo is connected but file paths don't match log service names — see Service mappings