Bitbucket Cloud
- Add an OAuth consumer in Bitbucket (Workspace settings → OAuth consumers) with the callback URL
<App:PublicBaseUrl>/api/auth/bitbucket/callbackand the permissions Admin → Integrations → Bitbucket lists: Account, Email, Repositories write and admin, Pull requests write, Projects, Webhooks. Tick “This is a private consumer”. - Save its key and secret in Admin → Integrations → Bitbucket (stored encrypted), or set
Bitbucket:OAuth:ClientIdandClientSecret(dev: user-secrets; k8s: the commentedBitbucket__OAuth__*lines insecrets.env; Railway: deploy/railway/variables.md). Config wins. - Without a consumer, users can still connect with an Atlassian API token with Bitbucket scopes and their account email (Account → Connections → Bitbucket). App passwords aren’t supported.
- Tevrin spends at most 900 Bitbucket requests an hour per connection (Bitbucket allows 1,000 per user), held in memory on the single API replica.