Before you start
You need a GitHub Enterprise account (cloud-hosted or self-hosted) with access to audit log GraphQL API. For more information, see GitHub's products.
Step 1: Generate API credentials
The GitHub integration polls events from the GraphQL API using a Personal Access Token.
Expel has two ways to onboard GitHub: a GitHub App or a GitHub user. The GitHub App version requires less permissions. Upon installation, the Expel GitHub App receives the following organization-level privileges:
- Members: Read+Write
- Administration: Read-Only
Option 1: GitHub App
Navigate to the Expel GitHub Integration Application installation page: https://github.com/apps/expelgithubintegration and click Install.
- Follow the steps to install the application within the GitHub Organization you want to onboard. Note: If you have multiple organizations, create a separate Security Device in Workbench for each organization.
- After you have successfully installed the application, note the Installation ID that can be found in your URL under the format "github.com/.../installations/<installation_id>/…"
Option 2: GitHub User
- Create a Personal Access Token by navigating to your Account Settings on the menu under your profile photo in the top right of any page.
- In the sidebar, click Developer settings and then click Personal access tokens.
- Click Generate new token.
- Grant the token the defined permissions from the image below.
- Click Generate token.
- Enable SSO if the option is available.
- Click to copy the token to your clipboard. For security reasons, after you leave the page, you won't see the token again.
- Use this token when configuring GitHub in Workbench.
Step 2: Configure the technology in Workbench
Now that we have all the correct access configured and noted the credentials, we can integrate GitHub with Expel Workbench.
Register device in Expel Workbench
- In a new browser tab, login to https://workbench.expel.io/settings/security-devices?setupIntegration=github.
- For SIEM select Expel Cloud Service.
- Complete all fields using the credentials and information you collected in Step 1.
- For Name type the name of your GitHub organization.
- For Location type Cloud.
- For Organization name, type the name of your GitHub organization.
- For Enterprise slug, type the enterprise slug URL (only required if you use an enterprise SAML identity provider, otherwise it can be left blank).
- If you Installed Expel’s GitHub App, for the Application installation ID type the installation ID from Step 1 Option 1.
- If you created a GitHub user, for the API key type the API generated in Step 1 Option 2.
- Click Save.
After a few minutes, refresh the Security Devices page and you see your device status reporting as Healthy, or if there is an issue, you see details of what the issue may be.
To check if alerts are coming through, navigate to Alerts on the console page. Click the icon in the upper right to switch to grid view, then check the list for device alerts.