← All guides
Researched guide
GitHub
Register an OAuth App in your GitHub settings. It is instant: no review, no waiting. Org-owned data may need an owner to approve the app.
Sourced The registration page describes no review or approval step; the app is created when you click Register. [e1]
Inferred Our estimate from the number of form fields and copy steps. No source states a setup time (Composio's guide shows only a 7-minute reading time).
Sourced No review or approval step is mentioned on the registration page. Access to private organization resources can additionally require an organization owner to approve the app. [e1][e2]
Sourced Composio's Github toolkit page lists OAuth2 and says 'Composio-managed OAuth available.' So a developer can connect users without registering their own provider app first; register your own only for your own branding, scopes or rate limits.
Who does what
An agent can
- Explain the form fields and fetch the redirect URI from your Composio auth config via API.
- Create the Composio auth config once you provide the client ID and secret through a secure input.
- Run a test tool call after connection.
You must
- Sign in to GitHub and register the OAuth app.
- Handle the client secret yourself.
- Ask an org owner to approve access if needed.
Steps
- Open Developer settingsYouSourced
Profile picture (top right) > Settings > Developer settings > OAuth apps. If the app should belong to a team, do this from the organization's settings instead. [e1][e2]
Why you: Needs your signed-in GitHub session.
- Get the callback URL from Composio firstYou or agentSourced
In Composio, create an auth config for GitHub with 'Use your own developer credentials' and copy the redirect URI it shows. Do not trust a URL in a screenshot - Composio's guide says the screenshot is older than the current URI. [e2]
- Register the applicationYouSourced
New OAuth App > enter name, homepage URL, optional description, and the authorization callback URL. Leave Device Flow off unless you need headless auth. Click Register application. [e1][e2]
Why you: Needs your signed-in GitHub session.
- Copy the client ID and generate a client secretYouSourced
Copy the Client ID. Generate a client secret and store it immediately in a secret manager or environment variable. [e2]
Why you: The secret must go straight into your secret store; do not paste it into chats or commit it.
- Paste credentials into Composio and connectYou or agentSourced
Enter client ID and secret in the auth config, then use Connect Account with a test user ID and authorize on GitHub. [e2]
Requirements
Scopes and access
- Sourced A user or organization can own up to 100 OAuth apps; each app can have up to 10 callback URLs. [e1]
- Sourced Ask only for scopes the tools need. Composio's example uses broad scopes (repo, user, gist, notifications, project, workflow, codespace) and presents them as an example, not a recommendation. [e2]
Review process
Gotchas
- Sourced Stay in 'OAuth Apps', not 'GitHub Apps' or personal access tokens - they are different products with different setup. [e2]
- Sourced The client secret is shown only once; if lost, generate a new one and update Composio. [e2]
- Sourced Do not put internal URLs or other sensitive data in the app's public fields. [e1]
- Sourced 'Expire user access tokens' is on by default; turn it off only if your auth code does not support short-lived tokens. [e1]
- Sourced New GitHub organizations have OAuth app access restrictions turned on by default, so your app may be blocked for org-owned repos until an owner approves it. Members can request that approval. [e3][e4]
- Sourced If your product needs to act without a signed-in user, GitHub says GitHub Apps can act independently of a user; OAuth apps cannot. This guide covers OAuth apps only. [e5]
If you get stuck
Inferred redirect_uri mismatch error when authorizing
Likely cause: The callback URL in GitHub differs from the redirect URI in your current Composio auth config.
Fix: Copy the redirect URI from the Composio auth config and paste it as the callback URL in GitHub, exactly.
Escalate when: It still fails after an exact match - check which environment/auth config you are using. [e2]
Sourced Authorization works but private org repos are missing
Likely cause: An organization owner has to approve access before the app can reach private organization resources.
Fix: Use the Request button on the consent screen's organization section and ask an owner to approve.
Escalate when: The org restricts third-party app access and no owner responds. [e2]
Next actions
- Register the app and copy credentials (about 10-20 min hands-on).
- Connect a test account in Composio and run one simple GitHub tool to confirm scopes.
What was tested
Nothing here has been tested by hand yet.
What we are unsure about
- GitHub's 'creating an OAuth app' page ends at 'Register application'; the client-secret step in this guide comes from Composio's guide, not GitHub's.
- GitHub rate limits and token caps for OAuth apps were not quoted from an official page in this pass.
- GitHub Apps (a different product) are not covered step by step here.
- No hands-on registration has been logged yet.
Sources
- [e1] GitHub Docs - Creating an OAuth app
A user or organization can own up to 100 OAuth apps.
retrieved 2026-10-20 · quote check: not yet re-matched against the raw page - [e2] Composio - How to create GitHub OAuth credentials
an organization owner might need to approve access before the app can reach private organization resources
retrieved 2026-10-20 · quote check: not yet re-matched against the raw page - [e3] GitHub Docs - About OAuth app access restrictions
When you create a new organization, OAuth app access restrictions are enabled by default.
retrieved 2026-10-20 · quote check: not yet re-matched against the raw page - [e4] GitHub Docs - About OAuth app access restrictions
Users can request owner approval for OAuth apps they'd like to use.
retrieved 2026-10-20 · quote check: not yet re-matched against the raw page - [e5] GitHub Docs - About creating GitHub Apps
Unlike OAuth apps, GitHub Apps can also act independently of a user.
retrieved 2026-10-20 · quote check: not yet re-matched against the raw page - [e6] Composio docs - Github toolkit, Authentication Details
Composio-managed OAuth available
retrieved 2026-10-20 · quote check: not yet re-matched against the raw page