Providers are configured in config.yaml and require OAuth or App credentials. If you omit providers.*.webhook.path, defaults are /webhooks/github, /webhooks/gitlab, and /webhooks/bitbucket.
GitHub (App + OAuth)
This is the same flow as docs/getting-started-github.md.
App setup
- Create a GitHub App: Settings -> Developer settings -> GitHub Apps -> New GitHub App
- Homepage URL:
https://<your-public-url> - Webhook URL:
https://<your-public-url>/webhooks/github - Webhook secret: set a value (for example,
devsecret) - Callback URL:
https://<your-public-url>/auth/github/callback - Permissions: Repository metadata (read), Pull requests (read & write)
- Subscribe to events: Pull request, Push, Check suite
- Download the private key
Config
providers:
github:
webhook:
secret: devsecret
app:
app_id: 123456
private_key_path: /path/to/github.pem
app_slug: your-app-slug
api:
base_url: https://api.github.com
oauth:
client_id: your-oauth-client-id
client_secret: your-oauth-client-secret
Onboarding URL
https://your-domain.com/?provider=github&instance=<instance-hash>
GitLab (OAuth)
This mirrors docs/getting-started-gitlab.md.
OAuth app setup
- Create a GitLab OAuth app: https://gitlab.com/-/user_settings/applications
- Redirect URI:
https://<your-public-url>/auth/gitlab/callback - Scopes:
read_api,read_repository - Save and copy Application ID + Secret
Config
providers:
gitlab:
webhook:
secret: devsecret
api:
base_url: https://gitlab.com/api/v4
web_base_url: https://gitlab.com
oauth:
client_id: your-oauth-client-id
client_secret: your-oauth-client-secret
Webhook setup
Configure project or group webhooks in GitLab:
- URL:
https://<your-public-url>/webhooks/gitlab - Secret token:
devsecret - Enable merge request, push, and tag push events
Onboarding URL
https://your-domain.com/?provider=gitlab&instance=<instance-hash>
Bitbucket (OAuth)
This mirrors docs/getting-started-bitbucket.md.
OAuth app setup
- Create an OAuth consumer in Bitbucket: Settings -> OAuth consumers
- Callback URL:
https://<your-public-url>/auth/bitbucket/callback - Permissions: repository, pullrequest, webhook (as needed)
- Save and copy the Key + Secret
Config
providers:
bitbucket:
webhook:
secret: devsecret
api:
base_url: https://api.bitbucket.org/2.0
web_base_url: https://bitbucket.org
oauth:
client_id: your-oauth-client-id
client_secret: your-oauth-client-secret
Webhook setup
Configure repository or workspace webhooks in Bitbucket:
- URL:
https://<your-public-url>/webhooks/bitbucket - Secret token:
devsecret(optional) - Enable pull request, push, and tag push events
Onboarding URL
https://your-domain.com/?provider=bitbucket&instance=<instance-hash>
OAuth callbacks
Callback URLs must be configured in the provider OAuth settings:
- GitHub:
https://your-domain.com/auth/github/callback - GitLab:
https://your-domain.com/auth/gitlab/callback - Bitbucket:
https://your-domain.com/auth/bitbucket/callback
Your public base URL should be set in config:
endpoint: https://your-domain.com redirect_base_url: https://app.example.com/oauth/complete
Onboarding URL
Get the provider instance hash and redirect users to:
githook --endpoint https://your-domain.com providers list --provider github
https://your-domain.com/?provider=github&instance=<instance-hash>
See docs/webhooks.md and docs/oauth-callbacks.md for step-by-step setup.