Skip to main content

GitHub

This integration supports GitHub Enterprise Server and allows you to visualize GitHub users, teams, repositories, pull requests, issues, and more. Map GitHub users to employees and training, and monitor software development activities, installations of GitHub apps, and outside collaborators.

note

The integration limits the ingestion of pull requests and issues to the 500 most recently created or modified since the last execution.

Installation

note

GitHub Enterprise Server Versions 3.3.3 and above have been verified as compatible with this integration. Other versions may work but are not fully supported.

To install the GitHub integration in JupiterOne, navigate to the Integrations tab in JupiterOne and select GitHub. Click New Instance to begin configuring the integration.

In the new instance configuration, provide:

  • Account Name used to identify the GitHub account in JupiterOne. Ingested entities have this value stored in tag.AccountName when the AccountName toggle is enabled.

  • Description to assist in identifying the integration instance, if desired.

  • Polling Interval that you feel is sufficient for your monitoring needs. You may leave this as DISABLED and manually execute the integration.

  • For GitHub Enterprise Servers only: enable the toggle and provide the relevant Hostname, App ID, App Installation ID, and upload your API Private Key.

After creating a new GitHub integration configuration in JupiterOne, you will be re-directed to GitHub to install the JupiterOne GitHub app. The app requests read-only permissions to support ingestion of entities and relationships.

View GitHub permissions
Note

The Secrets API does not reveal the values of Secrets, only their names and creation dates.

Repository Permissions
  • Actions: Read-only
  • Administration: Read-only
  • Dependabot alerts: Read-only
  • Discussions: Read-only
  • Environments: Read-only
  • Issues: Read-only (enables both Issues and private-repo PRs)
  • Metadata: Read-only
  • Pages: Read-only
  • Pull requests: Read-only
  • Secrets: Read-only
Organization Permissions
  • Administration: Read-only
  • Members: Read-only
  • Secrets: Read-only
  • Events: Read-only
User Permissioms
  • None
info

Refer to GitHub's documentation information on setting GitHub app permissions and secret permissions

Hierarchy of data retrieval

This integration uses many steps to retrieve data. Some of the steps depend on others. If there is a crash or error, it might be helpful to understand the hierarchy of step dependency:

  • The root step is fetch-account. All other steps depend on it.
  • There are four steps that depend only on fetch-account that could be considered primary steps. These are:
    1. fetch-apps
    2. fetch-repos
    3. fetch-users
    4. fetch-teams.
  • Other steps logically require multiple primary steps to complete. Examples include:
    • fetch-collaborators
    • fetch-team-members
    • fetch-team-repos
  • Finally, some sophisticated steps require both primary steps and secondary steps before they can execute. For example, fetch-prs needs both fetch-repos and fetch-collaborators in order to properly label reviewers and approvers.

Next steps

Now that your integration instance has been configured, it will begin running on the polling interval you provided, populating data within JupiterOne. Continue on to our Instance management guide to learn more about working with and editing integration instances.