pull, push, triage, maintain, or admin) and Dodo Payments handles invitation, acceptance tracking, and removal on cancellation.What gets delivered
- The customer is invited to your GitHub repository through an OAuth flow that links their GitHub account to the purchase.
- Once they accept, GitHub grants them collaborator access at the configured permission level.
- Cancellation, refund, or manual revoke removes the collaborator.
Connect GitHub
Open Entitlements
Pick GitHub

Connect GitHub prompt before the install handoff.

GitHub Install & Authorize page — choose which repositories the app can manage.

Account connected — return to the Dodo Payments dashboard to continue.
Pick a repository and permission

Creating a GitHub entitlement. Pick the repository and the permission you want customers to receive.
Save the entitlement
Permission levels
GitHub’s standard repository permissions apply:Customer flow
- The customer completes checkout.
- Dodo Payments creates a grant in
pendingstatus with anoauth_urlfor the customer to link their GitHub account. - The customer authorizes through the link in their email or customer portal.
- Dodo Payments invites the customer’s GitHub account to the repository at the configured permission. The grant moves to
deliveredonce the invitation is created. - If the subscription is cancelled, refunded, or revoked, the customer is removed as a collaborator.
Required configuration
Create via API
Webhooks
The standardentitlement_grant.* webhook events cover the GitHub flow:
entitlement_grant.createdincludes theoauth_urlfor GitHub authorization.entitlement_grant.deliveredfires once the collaborator invitation is created.entitlement_grant.failedfires witherror_code: "github_permission_denied"(or similar) if the GitHub App lost access to the repository.
Troubleshooting
Repository picker is empty
Repository picker is empty
Grant fails with permission_denied
Grant fails with permission_denied
Customer hasn't accepted the invite
Customer hasn't accepted the invite
delivered from Dodo Payments’ perspective; the invitation is what we issue.