Required URLs
- Callback URL (OAuth/web):
https://<your-public-ui-domain>/orchestrator/github/callback - Webhook URL:
https://<your-public-ui-domain>/orchestrator/github/webhook - Setup URL (optional):
https://<your-public-ui-domain>/dashboard/onboarding?step=github
The UI forwards these to the backend. EnsureORCHESTRATOR_BACKEND_URL/SECRETare set in UI and the backend is reachable from the UI host.
Permissions & events (recommended)
- Permissions:
contents:read,pull_requests:write,issues:write,statuses:write,checks:write,metadata:read,administration:read,workflows:write,repository_hooks:write,members:read. - Events:
issue_comment,pull_request,pull_request_review,pull_request_review_comment,push,check_run,status.
Install URL
After creating the app, use its install URL (e.g.,https://github.com/apps/<app-name>/installations/new) as ORCHESTRATOR_GITHUB_APP_URL in ui/.env.local. This drives the âConnect with GitHubâ button.
Creating an app via the backend wizard
- Open
http://localhost:3000/github/setup(or the backendâs public URL) to generate a manifest and create the app in GitHub. Needed envs on backend:HOSTNAMEset to a reachable URL, and optionalGITHUB_ORGif you want to scope to an org. - Once created, copy the install URL into
ORCHESTRATOR_GITHUB_APP_URLand restart the UI.
Troubleshooting
- 404 on connect:
ORCHESTRATOR_GITHUB_APP_URLnot set or points to a non-existent path. - Callbacks fail: UI not exposed publicly; tunnel the UI port and update callback/webhook URLs to that domain.
- Backend rejects /api/github/link: ensure
DIGGER_ENABLE_API_ENDPOINTS=trueandDIGGER_INTERNAL_SECRETmatches the UIORCHESTRATOR_BACKEND_SECRET.

