GitHub is a development platform for hosting code, managing repositories, and collaborating on software projects. Integrating GitHub with Frontegg allows your application to read user profiles, manage repositories, issues, pull requests, and workflows on behalf of your users through OAuth 2.0 authentication.
Prerequisites
Prerequisites
- A GitHub account with access to Developer settings → OAuth Apps
Sign in to GitHub and navigate to Settings → Developer settings → OAuth Apps at https://github.com/settings/developers. Click New OAuth app.

On the Register a new OAuth app form, fill in the following fields:
| Field | Value |
|---|---|
| Application name | A descriptive name, e.g., Frontegg Integration |
| Homepage URL | The URL of your application (e.g., https://your-app.com) |
| Authorization callback URL | https://YOUR_MCP_GATEWAY_URL/integration-callback |
Leave Enable Device Flow unchecked. Click Register application.

After registration, GitHub takes you to the app's settings page. The Client ID is shown immediately — copy it.
Under Client secrets, click Generate a new client secret. GitHub may prompt you to confirm your account password. Once generated, copy the secret value — GitHub will only display it once.
Keep your Client Secret safe
Keep your Client Secret safe
The Client Secret is shown only once. If you lose it, return to this page and click Generate a new client secret to create a replacement.

Once you have the Client ID and Client Secret from the steps above, enter them in the integration configuration page of the Frontegg portal:
- Open the Frontegg portal and navigate to [ENVIRONMENT] → Integrations → GitHub.
- Enter the Client ID and Client Secret in the corresponding fields.
- Select the required scopes.
- Click Save.
Scopes are configured in Frontegg
Scopes are configured in Frontegg
GitHub OAuth apps do not define scopes at the app level — scopes are requested when a user authorizes the integration. Select the scopes your application needs in the Frontegg portal.
| Scope | Description |
|---|---|
user | Read/write access to profile info (includes read:user and user:email) |
read:user | Read access to the authenticated user's profile |
user:email | Read access to the user's email addresses |
repo | Full control of private and public repositories |
public_repo | Access to public repositories only |
read:org | Read access to organization membership and teams |
workflow | Update GitHub Actions workflow files |
read:packages | Download packages from GitHub Packages |
gist | Create, read, and update gists |
notifications | Access user notifications |
For the full list of available scopes, see the GitHub OAuth scopes reference.