Shine a light on shadow apps

ConductorOne Docs

GitHub integration

ConductorOne provides identity governance and just-in-time provisioning for GitHub. Integrate your GitHub instance with ConductorOne to run user access reviews (UARs), enable just-in-time access requests, and automatically provision and deprovision access.

Availability

General availability. The GitHub integration is available to all ConductorOne users.

Capabilities

  • Sync user identities from GitHub to ConductorOne

  • Resources supported:

    • Repositories
    • Teams (including nested teams)
    • Orgs
  • Provisioning supported:

    • Team membership

Requirements

Connecting to your GitHub environment, you will need:

  • Super Administrator role in ConductorOne
  • Org Owner access in GitHub

Set up the GitHub integration

This task requires either the Integration Administrator or Super Administrator role in ConductorOne.

  1. In ConductorOne, open Admin and click Integrations > GitHub.

  2. If this is your first GitHub integration, the integration form opens automatically. Otherwise, click Add connector.

  3. Choose whether to add the new GitHub connector as a data source to an existing application (and select the app of your choice) or to create a new application.

    Do you SSO into GitHub using your identity provider (IdP)? If so, make sure to add the connector to the GitHub app that was created automatically when you integrated your IdP with ConductorOne, rather than creating a new app.

  1. Set the integration owner for this connector. You can manage the integration yourself, or choose someone else from the list of ConductorOne users. Setting multiple integration owners is allowed.

    A GitHub integration owner must have the following permissions:

    • Integration Administrator or Super Administrator role in ConductorOne
    • Org Owner access in GitHub
  1. Click Create and add details.

Next steps

  • If you are the integration owner, proceed to Integrate your GitHub instance [chosen method] for instructions on integrating GitHub with ConductorOne.

  • If someone else is the integration owner, ConductorOne will notify them by email that their help is needed to complete the integration.

Choose the appropriate set of integration instructions based on the type of GitHub access token you want to use with ConductorOne:

Option 1: Integrate your GitHub instance using a personal access token (classic)

Follow these instructions to integrate your GitHub instance by using a GitHub personal access token (classic).

A user with the Integration Administrator or Super Administrator role in ConductorOne and Org Owner access in GitHub must perform this task.

If you’re using SAML single sign-on, avoid a You must grant your Personal Access token access to this organization error by following the Authorizing a personal access token for use with SAML single sign-on instructions in the GitHub documentation.

Step 1: Create a GitHub personal access token (classic)

  1. In GitHub, 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, ConductorOne Integration). Optionally, add a token expiration date.

  6. Select the following Scopes:

    • repo - select all
    • admin:org - select all if using ConductorOne for GitHub provisioning (see the note below), or read::org otherwise
    • user - select all

    The write::org scope is used by ConductorOne when automatically provisioning and deprovisioning GitHub access on your behalf. If you do not want ConductorOne to perform these tasks for you, do not give your token this scope.

  1. Click Generate token. Copy and save the new token. We’ll use it in Step 3.

If you use SAML SSO, you must authorize the PAT using these instructions.

Step 2: Locate your GitHub organization name

  1. In GitHub, click your profile photo, then click Organizations.

  2. Make a note of your Organization name. We’ll use it in Step 3.

Step 3: Add your GitHub credentials to ConductorOne

  1. In ConductorOne, open Admin and click Integrations > GitHub.

  2. In the list of connectors, locate and click on the name of the connector with the Not connected label.

  3. Find the Settings area of the page and click Edit.

  4. In the Organization field, enter the name of your GitHub organization.

  5. Paste the token you generated in Step 1 into the Personal access token field.

  6. Click Save.

  7. The connector’s label changes to Syncing, followed by Connected. You can view the logs to ensure that information is syncing.

That’s it! Your GitHub instance is now integrated with ConductorOne.

Option 2: Integrate your GitHub instance using a fine-grained access token

Follow these instructions to integrate your GitHub instance by using a GitHub fine-grained personal access token.

A user with the Integration Administrator or Super Administrator role in ConductorOne and Org Owner access in GitHub must perform this task.

Before you begin: Make sure that your GitHub organization is set up to allow use of fine-grained personal access tokens by following the GitHub documentation on Setting a personal access token policy for your organization.

Step 1: Create a GitHub fine-grained access token

  1. In GitHub, click your profile photo, then click Settings.

  2. In the left sidebar, select Developer settings.

  3. Click Personal access tokens > Fine-grained tokens.

  4. Click Generate new token.

  5. Name your token (for example, ConductorOne Integration) and set a token expiration date. Optionally, add a description.

  6. In the Resource owner dropdown, select the username associated with the GitHub organization you’re integrating with ConductorOne.

  7. In the Repository access section of the page, select All repositories.

  8. In the Permissions section of the page, give the token the following permissions:

    • Organization permissions:

      • Members: Read and write access
    • Repository permissions:

      • Administration: Read and write access
      • Metadata: Read-only access

    The repository permissions are used by ConductorOne to sync and display data on repo membership (ConductorOne cannot provision repositories). If you do not want ConductorOne to sync and display your GitHub organization’s repo data, do not give your token these permissions.

  1. Click Generate token. Copy and save the new token. We’ll use it in Step 3.

Step 2: Locate your GitHub organization name

  1. In GitHub, click your profile photo, then click Organizations.

  2. Make a note of your Organization name. We’ll use it in Step 3.

Step 3: Add your GitHub credentials to ConductorOne

  1. In ConductorOne, open Admin and click Integrations > GitHub.

  2. In the list of connectors, locate and click on the name of the connector with the Not connected label.

  3. Find the Settings area of the page and click Edit.

  4. In the Organization field, enter the name of your GitHub organization.

  5. Paste the token you generated in Step 1 into the Personal access token field.

  6. Click Save.

  7. The connector’s label changes to Syncing, followed by Connected. You can view the logs to ensure that information is syncing.

That’s it! Your GitHub instance is now integrated with ConductorOne.

Configure the GitHub integration using Terraform

As an alternative to the integration process described above, you can use Terraform to configure the integration between GitHub and ConductorOne.

See the ConductorOne GitHub integration resource and the ConductorOne GitHub Enterprise integration resource pages in the ConductorOne Terraform registry for example usage and the full list of required and optional parameters.