Integrations Pre-Release

Last September, we launched the Early Access program of GitHub Integrations, a new option for extending GitHub. Today, we're adding some new features and moving Integrations into pre-release so you can begin using Integrations within your production workflows.

Enabling users to login from your Integration

Users can now login via your Integration, using the OAuth protocol, allowing you to identify users and display data to them from the relevant installations.

An Integration can now make authorized API requests on behalf of a user, for example to deploy code or create an issue. When an Integration needs to fetch or create any information for a user, it should authenticate as that user to make these user-to-server requests. You can check which installations a user has access to via a new endpoint:

GET /user/installations?access_token=...

User via Integration action screenshot

More details can be found in Authenticating as a user via an Integration.

For regular server-to-server requests, for example creating a deployment status as the Integration, an Integration should continue to authenticate as itself for the specific installation.

Updating an Integration's permissions

When you create an Integration, you specify which permissions it needs, for example the ability to read issues or create deployments. You can now update the requested permissions, via Settings > Developer settings > Integrations, when the needs of your Integration change.

Accept permissions screenshot

Users will be prompted to accept these changes, and enable the new permissions on their installation.

You can check which permissions an installation has via the Integrations API, which now includes which permissions are available to each installation.

Post-Installation Setup

You can now configure a Setup URL for your Integration, to redirect users to after they install your integration, if additional setup is required on your end.

How can I try it?

To access Integrations, you must first sign the pre-release agreement.

Anyone can then register an Integration on GitHub via Settings > Developer settings > Integrations, and manage an existing Integration from the same place.

More information on getting started can be found in our developer documentation.

To access the Integrations API functionality during the Pre-release, you’ll need to provide the following custom media type in the Accept header:

application/vnd.github.machine-man-preview+json

Give us your feedback

Come talk to us, in the new Platform forum.