Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

This version of GitHub Enterprise was discontinued on 2023-03-15. No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

Registering a GitHub App

You can register a GitHub App under your personal account or under any organization you own.

About registering GitHub Apps

You can register a GitHub App under your personal account, under an organization that you own, or under an organization that has granted you permission to manage all apps owned by the organization. For more information, see "Adding and removing GitHub App managers in your organization."

Registering a GitHub App

  1. Navigate to your account settings.

    • For a GitHub App owned by a personal account, in the upper-right corner of any page, click your profile photo, then click Settings.
    • For a GitHub App owned by an organization, in the upper-right corner of any page, click your profile photo, then click Your organizations. Then, to the right of the organization, click Settings.
  2. In the left sidebar, click Developer settings.

  3. In the left sidebar, click GitHub Apps.

  4. Click New GitHub App.

  5. Under "GitHub App name", enter a name for your app. You should choose a clear and short name. Your app's name (converted to lowercase, with spaces replaced by -, and with special characters replaced) will be shown in the user interface when your app takes an action. For example, My APp Näme would display as my-app-name.

    The name must be unique across GitHub. You cannot use same name as an existing GitHub account, unless it is your own user or organization name.

  6. Optionally, under "Description", type a description of your app. Users and organizations will see this description when they install your app.

  7. Under "Homepage URL", type the full URL to your app's website. If you don’t have a dedicated URL and your app's code is stored in a public repository, you can use that repository URL. Or, you can use the URL of the organization or user that owns the app.

  8. Optionally, under "Callback URL", enter the full URL to redirect to after a user authorizes the installation.

    You can enter up to 10 callback URLs. To add additional callback URLs, click Add callback URL.

    If your app does not need to act on behalf of a user (does not need to generate a user access token), this field will be ignored. If your app uses device flow instead of web application flow to generate a user access token, this field will be ignored.

    For more information about the callback URL, see "About the user authorization callback URL." For more information about generating a user access token to act on behalf of a user, see "Authenticating with a GitHub App on behalf of a user" and "Generating a user access token for a GitHub App."

  9. Optionally, to prevent user access tokens from expiring, deselect Expire user authorization tokens. GitHub strongly recommends that you leave this option selected. For more information about refreshing expired tokens and the benefits of user access tokens that expire, see "Refreshing user access tokens." If your app does not need to generate a user access token, this field will be ignored.

  10. Optionally, to prompt users to authorize your app when they install it, select Request user authorization (OAuth) during installation. If a user authorizes your app, your app can generate a user access token to make API requests on the user's behalf and attribute app activity to the user. For more information, see "Authenticating with a GitHub App on behalf of a user" and "Generating a user access token for a GitHub App."

  11. Optionally, if you want to use device flow to generate a user access token, select Enable Device Flow. For more information, see "Generating a user access token for a GitHub App."

  12. Optionally, under "Setup URL", enter the URL to redirect users to after they install your app. If additional setup is required after installation, you can use this URL to tell users what steps to take after installation. For more information, see "About the setup URL."

    If you selected Request user authorization (OAuth) during installation in an earlier step, you will not be able to enter a URL here. Users will instead be redirected to the Callback URL as part of the authorization flow, where you can describe additional setup.

  13. Optionally, if you want to redirect users to the setup URL after they update an installation, select Redirect on update. An update includes adding or removing a repository for an installation. If "Setup URL" is blank, this will be ignored.

  14. Optionally, if you do not want your app to receive webhook events, deselect Active. For example, if your app will only be used for authentication or does not need to respond to webhooks, deselect this option. For more information, see "Using webhooks with GitHub Apps."

  15. If you selected Active in the previous step, under "Webhook URL", enter the URL that GitHub should send webhook events to. For more information, see "Using webhooks with GitHub Apps."

  16. Optionally, if you selected Active in the previous step, under "Webhook secret", enter a secret token to secure your webhooks. GitHub highly recommends that you set a webhook secret. For more information, see "Using webhooks with GitHub Apps."

  17. If you entered a webhook URL, under "SSL verification", select whether to enable SSL verification. GitHub highly recommends that you enable SSL verification.

  18. Under "Permissions", choose the permissions that your app needs. For each permission, select the dropdown menu and click Read-only, Read & write, or No access. You should select the minimum permissions necessary for your app. For more information, see "Choosing permissions for a GitHub App."

  19. If you selected Active in the earlier step to indicate that your app should receive webhook events, under "Subscribe to events", select the webhook events that you want your app to receive. The permissions that you selected in the previous step determine what webhook events are available. For more information about each webhook event, see "Webhook events and payloads."

  20. Under "Where can this GitHub App be installed?", select Only on this account or Any account. For more information on installation options, see "Making a GitHub App public or private."

  21. Click Create GitHub App.

Next steps

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:

You should aim to follow best practices. For more information, see "Best practices for creating a GitHub App."

Once your GitHub App is fully built, you can install your GitHub App and share your GitHub App with others. For more information, see "Installing your own GitHub App" and "Sharing your GitHub App."

You can always make changes to the settings for your GitHub App. For more information, see "Modifying a GitHub App registration."