Github
2025.11.17
Warning: The Identity Intelligence Github integration is currently being moved away from a classic PAT installation to a Github app installation and is currently in Alpha. New PAT installations have been disabled, and existing Github integration customers will soon be notified to start migrating to the new installation method. If you would like early access to this new installation path please contact your Duo Care team, Duo Support or open a Cisco TAC Case to enable it in your account.
Overview
Identity Intelligence can connect to Github Enterprise tenants and provide insights into user identities and activity on that platform.
This document will walk you through the process of setting up access from Identity Intelligence to Github Enterprise.
Requirements
The following requirements are necessary for the Github integration -
Github Enterprise subscription
A Github Enterprise admin account capable of creating and installing Github Apps on the enterprise.
SSO from your Identity Provider to each Github org is set to "Enforced" (mandatory) and not "Configured" (optional), otherwise Identity Intelligence cannot retrieve the emails for users in the "configured" org and they will not merge with their own record in the "enforced" org.
Github API Permission Structure
Enterprise vs. Org
Identity Intelligence has chosen to connect to Github environments at the Enterprise level rather than per Organization. This allows for the use of one Github app for an entire customer environment, instead of a Github app being required for each Org.
Therefore, an Enterprise Admin account or an Enterprise service account is required.
Only Include Specific Github Orgs
Please see Github Configuration Steps, step 8 to see how to configure Identity Intelligence to only collect the data for specific orgs under your enterprise.
Compatible Checks
Currently, 17 security posture and threat detection Checks are compatible with the Github integration. Identity Intelligence is continuously adding to this list, based on customer requests and also new and emerging identity-based threats for Github.

Github Configuration Steps
Login to Github with an Enterprise admin account. If you navigate to Github.com/settings/enterprises, it should look something like the following:

Enable displaying IP addresses in the Github Audit Log for your enterprise tenant as described in this article
Follow the steps for registering a GitHub app as outlined in this Github article
In step 2 make sure you follow the directions for apps owned by an enterprise.
In step 7 enter the URL to your Identity Intelligence dashboard.
Skip steps 8-13.
Complete step 14 to disable the webhook.
For step 18 configure the following permissions (note: all of these scopes are read-only unless otherwise mentioned):
Repository permissions:
Administration
Dependabot secrets
Secrets
Organization permissions:
Administration
Blocking users
Custom organization roles
Custom repository roles
GitHub Copilot Business
Members
Organization dependabot secrets
Personal access tokens
Secrets
Enterprise Permissions:
Custom enterprise roles
Enterprise AI controls
Enterprise custom organization roles
Enterprise organization installation repositories (read and write for automatic organization installation; otherwise optional)
Enterprise organization installations (read and write for automatic organization installation; otherwise optional)
Enterprise people
Enterprise single sign-on
Once you have registered your new app you will need to generate and save a private key. Once you generate the key the file should automatically be downloaded for you. You will need to input this private key into Identity Intelligence later.
Press save changes in the Github app screen. In the general page note the app ID at the top of the page, you will need this later.
Go to the Install App page inside your new app. Your screen should look something like this:

Press install on your enterprise and accept the permissions that you configured in step 3.
Choose how the app is installed on organizations in your enterprise:
Automatic installation: The Enterprise organization installation repositories and Enterprise organization installations permissions must both be set to Read and write.
Manual installation: If you do not grant these read/write permissions, go back to the Install App screen in the Github app's settings and install it on every organization you would like Identity Intelligence to monitor.
Note the slug for your Enterprise Github tenant. This can be found under your enterprise profile tab.

Identity Intelligence Configuration Steps
Sign in to your Identity Intelligence tenant and perform the following steps:
If you installed your Github app on multiple Github enterprises you will have to repeat this section once per enterprise.
From the Integrations page, click Add Integration and select Github.
Enter a display name for the integration, such as Github <your enterprise name>.
Enter the value of your Github Enterprise slug, obtained in Step 9 above.
If you are migrating to the app installation type, select app as the authentication type. Otherwise, this will automatically be done for you.
Enter the Github app's application ID from step 5 above.
Enter the Github app's secret value that was downloaded for you in step 4 above.

Once the configuration connection is successful, go back to the main Integrations page, click the 3-dot menu on the Github integration and select Collect Now. Collection may take some time, depending on the size of the environment.

Github Event Streaming (Beta)
GitHub has no plans to take audit log streaming out of private beta. So if you are not already in the beta program you will not be able to use this feature.
Github has the capability to streaming the audit log events. This is currently in Beta. If you do not see the option in your Github Enterprise tenant, contact your Github representative.
Note: The Github base configuration above must already be completed. This step is highly recommended.
Within CII, navigate to Integrations and click Edit Settings on the existing Github integration.
Click the Event Streaming tab.
Slide the button to Use Audit Log Streaming.
Note the Domain, Path, and Port information for use in the Github setup.
Create a strong value for the Webhook Secret and enter it in the config.

Within Github, navigate to Settings > Audit Log > Settings. Ensure that
Enable API Request Eventsis checked.
On the Log Streaming tab, select
HTTP Event Collectorfrom the Configure stream dropdown list.
Enter the Domain, Path, Port, and Token (Webhook secret above).
Check the
Enable SSL verificationbutton.
Back in the CII integration settings, click the checkbox to confirm that you have configured Github streaming in that platform and then click
Save.
Back on the Github streaming configuration page, click the
Check endpointbutton. Once successful, clickSave.
That's it. It should be all set.
Last updated