Capabilities
The GitHub Enterprise connector supports automatic account provisioning and deprovisioning. New accounts will send an invitation to the account owner; if an invitation is pending, the account status will be shown as Unspecified.
- Due to limitations on the GitHub API, syncing multiple orgs requires a personal access token (PAT). A separate connector and GitHub app is required when using the GitHub App integration.
Gather GitHub Enterprise credentials
Configuring the connector requires you to pass in credentials generated in GitHub Enterprise. Gather these credentials before you move on. To set up the GitHub Enterprise connector, you can choose to create either a personal access token (classic) or a fine-grained access token.Option 1: Use a personal access token (classic)
Follow these instructions to integrate your GitHub Enterprise instance by using a GitHub Enterprise personal access token (classic).1
In GitHub Enterprise, click your profile photo, then click Settings.
2
In the left sidebar, select Developer settings.
3
Click Personal access tokens > Tokens (classic).
4
Click Generate new token > Generate new token (classic).
5
Name your token (for example, C1 Integration). Optionally, add a token expiration date.
6
Select the following Scopes:
- repo - select all
- admin:org - select all if using C1 for GitHub Enterprise provisioning (see the note below), or read:org
- user - select all
- admin:enterprise - select read:enterprise
7
Click Generate token. Copy and save the new token.
Option 2: Use a GitHub app
Follow these instructions to integrate your GitHub instance by using a GitHub app. This process creates a GitHub app that is only available to your GitHub organization, then generates an installation token for that app, which can be used to integrate the GitHub organization with C1. This creates the equivalent of a personal access token, but does not tie the token to a specific identity.1
In GitHub, navigate to Your organizations > Settings.
2
In the left sidebar, select Developer settings.
3
Click GitHub Apps.
4
Click New GitHub App.
5
Give the app a globally unique name, such as “c1-integration-
<org name>”. There is a 34 character limit.6
In the Homepage URL field, enter a placeholder URL such as
http://example.com. Because this app is not public, it does not have or need a website to direct other users to, so we can use a placeholder URL.7
In the Callback URL field, enter a placeholder URL such as
http://example.com. This app will not use a callback, so we can use a placeholder URL.8
Check the Expire user authorization tokens and Enable Device Flow checkboxes to enable these settings.
9
In the Webhook section of the page, uncheck the Active checkbox to disable this setting.
10
In the Permissions section of the page, give the app the following permissions:
-
Repository permissions:
- Administration: Read and write access
- Metadata: Read-only access
-
Organization permissions:
- Administration: Read-only access (required to detect SAML/SSO configuration)
- Custom organization roles: Read and write access
- Members: Read and write access
-
Enterprise permissions:
- Custom enterprise roles: Read-only access
- Enterprise custom properties for organizations: Read-only access
11
In the Where can this app be installed? section of the page, choose Only on this account. This limits the app’s scope to the GitHub Enterprise organization you’ve set it up on.
12
Click Create GitHub App. The app is created.
13
On the app’s details page, carefully copy and save the App ID.
14
Scroll down to the Private keys section of the app’s page and click Generate a private key.
15
Carefully save the private key file.
16
Finally, install the new app on your GitHub organization. Navigate to Developer Settings > GitHub Apps.
17
Find your app and click Edit > Install App.
18
Click Install next to the GitHub organization where you want to install the app.
19
Select the repositories the app can act on.
20
Click Install.
Configure the GitHub Enterprise connector
- Cloud-hosted
- Self-hosted
Follow these instructions to use a built-in, no-code connector hosted by C1.Done. Your GitHub Enterprise connector is now pulling access data into C1.
1
In C1, navigate to Integrations > Connectors and click Add connector.
2
Search for GitHub Enterprise and click Add.
3
Choose how to set up the new GitHub Enterprise connector:
- Add the connector to a currently unmanaged app (select from the list of apps that were discovered in your identity, SSO, or federation provider that aren’t yet managed with C1)
- Add the connector to a managed app (select from the list of existing managed apps)
- Create a new managed app
4
Set the owner for this connector. You can manage the connector yourself, or choose someone else from the list of C1 users. Setting multiple owners is allowed.If you choose someone else, C1 will notify the new connector owner by email that their help is needed to complete the setup process.
5
Click Next.
6
Find the Settings area of the page and click Edit.
7
If you’re using a personal access token to set up the connector:
- Click Personal access token.
- In the Instance URL field, enter the URL of your GitHub Enterprise instance.
- Paste the token you generated into the Personal access token field.
- Optional. If you want to sync only specific organizations, enter the organizations’ names in the Organizations field. If you do not specify specific organizations, C1 will sync all organizations.
- Optional. If you want to sync roles for only some enterprises, add the names of the enterprises in the Enterprises to sync enterprise roles for field.
- Optional. If you do not want to include archived repos in syncs, click to enable Omit archived repositories.
8
If you’re using a GitHub app to set up the connector:
- Click GitHub app.
- In the Instance URL field, enter the URL of your GitHub Enterprise instance.
- Enter your app ID into the GitHub app ID field.
- Click Choose file and upload your private key file.
- In the Organization field, enter the name of the GitHub organization associated with the GitHub app. You must enter a single organization name in this field or the connector configuration will fail.
- Optional. If you want to sync roles for only some enterprises, add the names of the enterprises in the Enterprises to sync enterprise roles for field.
- Optional. If you do not want to include archived repos in syncs, click to enable Omit archived repositories.
9
Click Save.
10
The connector’s label changes to Syncing, followed by Connected. You can view the logs to ensure that information is syncing.