Skip to main content

This version of GitHub Enterprise Server was discontinued on 2024-09-25. 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 Server. For help with the upgrade, contact GitHub Enterprise support.

Authorizing OAuth apps

You can connect your GitHub Enterprise Server identity to third-party applications using OAuth. When authorizing an OAuth app, you should ensure you trust the application, review who it's developed by, and review the kinds of information the application wants to access.

When an OAuth app wants to identify you by your account on GitHub, you'll see a page with the app's developer contact information and a list of the specific data that's being requested.

OAuth app access

OAuth apps can have read or write access to your GitHub Enterprise Server data.

  • Read access only allows an app to look at your data.
  • Write access allows an app to change your data.

Tip

We recommend that you regularly review your authorized integrations. Remove any applications and tokens that haven't been used in a while. For more information, see "Reviewing your authorized OAuth apps."

About OAuth scopes

Scopes are named groups of permissions that an OAuth app can request to access both public and non-public data.

When you want to use an OAuth app that integrates with GitHub Enterprise Server, that app lets you know what type of access to your data will be required. If you grant access to the app, then the app will be able to perform actions on your behalf, such as reading or modifying data. For example, if you want to use an app that requests user:email scope, the app will have read-only access to your private email addresses. For more information, see "Scopes for OAuth apps."

Note

Currently, you can't scope source code access to read-only.

A token has the same capabilities to access resources and perform actions on those resources that the owner of the token has, and is further limited by any scopes or permissions granted to the token. A token cannot grant additional access capabilities to a user. For example, an application can create an access token that is configured with an admin:org scope, but if the user of the application is not an organization owner, the application will not be granted administrative access to the organization.

There is a limit of ten tokens that are issued per user/application/scope combination, and a rate limit of ten tokens created per hour. If an application creates more than ten tokens for the same user and the same scopes, the oldest tokens with the same user/application/scope combination are revoked. However, hitting the hourly rate limit will not revoke your oldest token. Instead, it will trigger a re-authorization prompt within the browser, asking the user to double check the permissions they're granting your app. This prompt is intended to give a break to any potential infinite loop the app is stuck in, since there's little to no reason for an app to request ten tokens from the user within an hour.

Types of requested data

OAuth apps can request several types of data.

Type of dataDescription
Commit statusYou can grant access for an app to report your commit status. Commit status access allows apps to determine if a build is a successful against a specific commit. Apps won't have access to your code, but they can read and write status information against a specific commit.
DeploymentsDeployment status access allows apps to determine if a deployment is successful against a specific commit for public and private repositories. Apps won't have access to your code.
GistsGist access allows apps to read or write to both your public and secret Gists.
HooksWebhooks access allows apps to read or write hook configurations on repositories you manage.
NotificationsNotification access allows apps to read your GitHub Enterprise Server notifications, such as comments on issues and pull requests. However, apps remain unable to access anything in your repositories.
Organizations and teamsOrganization and teams access allows apps to access and manage organization and team membership.
Personal user dataUser data includes information found in your user profile, like your name, e-mail address, and location.
RepositoriesRepository information includes the names of contributors, the branches you've created, and the actual files within your repository. Apps can request access for either public or private repositories on a user-wide level.
Repository deleteApps can request to delete repositories that you administer, but they won't have access to your code.

Requesting updated permissions

When OAuth apps request new access permissions, they will notify you of the differences between their current permissions and the new permissions.