Note
Enterprise-owned GitHub Apps are currently in public preview and subject to change.
You can create a GitHub App under your enterprise account. The app can only be installed on organizations within your enterprise, and can only be authorized by members of your enterprise. The app can't be installed on user accounts.
Step 1: Registering a GitHub App
To create a GitHub App, you must first register the app. See "Registering a GitHub App."
Step 2: Building a GitHub App
After registering a GitHub App, you will want to write code to make your GitHub App do something. For examples of how to write code, see:
- "Quickstart for building GitHub Apps"
- "Building a GitHub App that responds to webhook events"
- "Building a "Login with GitHub" button with a GitHub App"
- "Building a CLI with a GitHub App"
- "Making authenticated API requests with a GitHub App in a GitHub Actions workflow"
You should aim to follow best practices. See "Best practices for creating a GitHub App."
Step 3: Authorizing or sharing your GitHub App
Once your GitHub App is registered, you'll need to make it available to organizations in your enterprise, either through authorization or installation, depending on the app’s purpose.
Step 3a: Authorizing your GitHub App
Some GitHub Apps, like Copilot extensions, require authorization but do not need to be installed on an organization. Users in your enterprise can authorize the app to access resources within organizations. However, the app will only have access to GitHub resources where it is installed. See "Authorizing GitHub Apps."
Step 3b: Sharing your GitHub App via an installation link
For apps that require installation to function, you can provide organization owners with an installation link. Once the app is installed, it will have access to the organization's resources. See "Sharing your GitHub App."
Step 4: Installing your GitHub App (if required)
If your GitHub App requires installation (not just authorization), organization owners can use the install link to install the app on their organization. See "Installing a GitHub App from a third party."