Skip to main content
Owner privileges in your GitHub organization or admin access to your GitHub account are required to create a GitHub App.

Creating a GitHub App

Create a GitHub App to enable OAuth 2.0 authentication with enhanced security and features.

1

Access Developer Settings

Sign in to your GitHub account and navigate to developer settings.

  • Click your profile photo in the upper-right corner
  • Select Settings from the dropdown
  • In the left sidebar, scroll down and click Developer settings
  • To register the app under your organization instead, open the organization, click Settings, then Developer settings in the left sidebar
2

Create New GitHub App

Register a new GitHub App for StackOne integration.

  • In the left sidebar, click GitHub Apps
  • Click New GitHub App
  • Enter GitHub App name: StackOne Integration (or your preferred name)
  • Enter your website’s Homepage URL (e.g., https://stackone.com)
  • Enter Callback URL: https://api.stackone.com/connect/oauth2/github/callback
  • Uncheck Request user authorization (OAuth) during installation
  • Check Expire user authorization tokens to enable refresh token support
  • Uncheck Active under Webhook
3

Configure Permissions

Enables actions: Add Collaborator, Add Team Member, Add Team Repository, Cancel Workflow Run, Check Organization Membership, Create Deployment, Create Deployment Status, Create Git Reference, Create Issue, Create Issue Comment, Create Or Update File, Create Organization Repository, Create Pull Request, Create Pull Request Review, Create Pull Request Review Comment, Create Release, Create Team, Create User Repository, Create Webhook, Delete Deployment, Delete File, Delete Git Reference, Delete Release, Delete Repository, Delete Team, Delete Webhook, Download Artifact, Fork Repository, Get Authenticated User, Get Branch, Get Branch Protection, Get Branch Rules, Get Combined Status For Ref, Get Commit, Get Git Reference, Get Issue, Get Latest Release, Get Organization, Get Organization Membership, Get Organization Ruleset, Get Pull Request, Get Repository, Get Repository Content, Get Repository Ruleset, Get Team, Get Unified Credentials, Get Unified Group, Get Unified Organization, Get Unified Role, Get User, Get Webhook, Get Workflow Run, Invite Organization Member, List Artifacts, List Authenticated User Organizations, List Authenticated User Repositories, List Branches, List Check Runs For Ref, List Code Scanning Alerts, List Collaborators, List Commits, List Dependabot Alerts, List Deployments, List Forks, List Issue Comments, List Issues, List Matching Git References, List Organization Audit Log, List Organization Branch Protection, List Organization Members, List Organization Members With Two-Factor Status, List Organization Repositories, List Organization Rulesets, List Outside Collaborators, List Pull Request Reviews, List Pull Requests, List Pull Requests For Commit, List Releases, List Repository Rulesets, List Repository Teams, List Secret Scanning Alerts, List Team Members, List Team Repositories, List Teams, List Unified Groups, List Unified Organizations, List Unified Roles, List Unified Users, List User Organizations, List User Repositories, List Users, List Webhooks, List Workflow Jobs, List Workflow Runs, Merge Pull Request, Ping Webhook, Re-run Workflow, Remove Collaborator, Remove Organization Member, Remove Team Member, Search Code, Search Issues, Search Pull Requests With Reviews, Search Repositories, Star Repository, Trigger Workflow, Unstar Repository, Update Code Scanning Alert, Update Dependabot Alert, Update Git Reference, Update Issue, Update Organization, Update Pull Request, Update Release, Update Repository, Update Secret Scanning Alert, Update Team, Update User, Update Webhook, Upload Release Asset

Set the required permissions for your integration needs. GitHub Apps use fine-grained permissions instead of traditional OAuth scopes.

⚠️ IMPORTANT: These permissions are set here in the GitHub App configuration and CANNOT be changed during user authorization. Users will see these permissions when they authorize the app and can choose which repositories to grant access to.

4

Permissions for access reviews and compliance checks

Enables actions: Check Organization Membership, Create Pull Request, Create Pull Request Review, Create Pull Request Review Comment, Get Branch, Get Branch Protection, Get Branch Rules, Get Combined Status For Ref, Get Commit, Get Git Reference, Get Latest Release, Get Organization, Get Organization Membership, Get Organization Ruleset, Get Pull Request, Get Repository, Get Repository Content, Get Repository Ruleset, Get Team, Get Unified Group, Get Unified Organization, Get Unified Role, Get User, List Authenticated User Organizations, List Authenticated User Repositories, List Branches, List Check Runs For Ref, List Collaborators, List Commits, List Forks, List Matching Git References, List Organization Audit Log, List Organization Branch Protection, List Organization Members, List Organization Members With Two-Factor Status, List Organization Repositories, List Organization Rulesets, List Outside Collaborators, List Pull Request Reviews, List Pull Requests, List Pull Requests For Commit, List Releases, List Repository Rulesets, List Repository Teams, List Team Members, List Team Repositories, List Teams, List Unified Groups, List Unified Organizations, List Unified Roles, List Unified Users, List User Organizations, List User Repositories, List Users, Merge Pull Request, Search Code, Search Issues, Search Pull Requests With Reviews, Search Repositories, Update Organization, Update Pull Request

For user access reviews, two-factor status, branch protection, reviews and checks, set these to Read-only: organization Members and Administration, and repository Administration, Metadata, Contents, Pull requests, Checks and Commit statuses. Organization rulesets need organization Administration set to Read and write.

5

Select Installation Location

Choose where the app can be installed.

  • Under Where can this GitHub App be installed?, select either Only on this account or Any account
  • Only on this account lets you install the app only on the account it is registered under, so register it under the organization to install it there
  • Click Create GitHub App
6

Copy Client ID

After creation, you’ll be redirected to your app’s settings page.

  • Locate the Client ID field and copy its value.
  • Store this value securely for use later.
7

Generate Client Secret

Generate a client secret for OAuth authentication.

  • Scroll to the Client secrets section
  • Click Generate a new client secret
  • Copy the displayed secret immediately and store it securely
8

Enable Refresh Token Support

Enable refresh token support for OAuth authentication.

  • Navigate to Optional features from the left sidebar menu
  • Click the Opt-in button corresponding to User-to-server token expiration. If it’s already enabled, you should see the Opt-out button instead.
9

Install the GitHub App

Install the GitHub App on your account or organisation for full access to private repositories, organisation data, and app-level permissions. This can be done before or after linking your account in StackOne. Without installation, only public repositories and user profile data are accessible.

  • Visit https://github.com/settings/apps/{your-app-name}/installations (replace {your-app-name} with your app slug) or navigate to your app’s settings page, then Install App tab from sidebar.
  • Click on Install next to the account or organisation where you want to install the app
  • Choose All repositories or select specific repositories. For compliance checks choose All repositories; repositories left out are missing from every list, with no error
  • Click Install button.

Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for GitHub:
1

Open the connector

Log in to StackOne, open Connectors, and select GitHub.
2

Choose actions and events

  • Click Add Profile.
  • If the connector offers more than one authentication method, set the Auth Method filter to GitHub App.
  • Select the actions, and any events, to enable for this Connector Profile.
  • Click Continue.
3

Set up authentication

  • Select Authentication Type as GitHub App.
  • Fill out the fields using details retrieved from your provider:
    • Client ID
    • Client Secret
  • Click Create Profile.
Congratulations! The new Connector Profile now shows up on the connector page. If you created it as a project member rather than an admin, it starts disabled until a project admin enables it. You can now continue to Link Accounts for GitHub.