GitHub
Visualize GitHub users, teams, repositories, pull requests, issues, code scanning alerts and more. Map GitHub users to employees and training, and monitor software development activities, installations of GitHub apps, and outside collaborators.
- Installation guide
- GitHub data model
Installation
In order for this integration to run as expected, you will need to have an organization within the GitHub account for which you are creating the integration. Be sure to create an organization in your GitHub account to ensure having the required permissions. Learn more about GitHub organizations here.
GitHub Cloud & GitHub Enterprise Server Versions 3.3.3 and above have been verified as compatible with this integration. Other versions of GitHub Enterprise may work, but are not fully supported.
Configuration in JupiterOne
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.
This integration limits the ingestion of pull requests and issues to the 500 most recently created or modified since the last execution.
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 theAccountName
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
- Secret scanning alerts: Read-only
Organization Permissions
- Administration: Read-only
- Members: Read-only
- Secrets: Read-only
- Events: Read-only
User Permissioms
- None
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:fetch-apps
fetch-repos
fetch-users
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 bothfetch-repos
andfetch-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.
Data Model
Entities
The following entities are created:
Resources | Entity _type | Entity _class |
---|---|---|
Account | github_account | Account |
GitHub Code Scanning Alerts | github_code_scanning_finding | Finding |
GitHub Env Secret | github_env_secret | Secret |
GitHub Secret Scanning Alert | github_secret_scanning_finding | Finding |
GitHub Vulnerability Alert | github_finding | Finding |
Github App | github_app | Application |
Github Branch Protection Rule | github_branch_protection_rule | Rule |
Github Environment | github_environment | Configuration |
Github Issue | github_issue | Issue |
Github Org Secret | github_org_secret | Secret |
Github Pull Request | github_pullrequest | PR |
Github Repo | github_repo | CodeRepo |
Github Repo Secret | github_repo_secret | Secret |
Github Team | github_team | UserGroup |
Github User | github_user | User |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
---|---|---|
github_account | INSTALLED | github_app |
github_account | HAS | github_org_secret |
github_account | OWNS | github_repo |
github_account | HAS | github_team |
github_account | HAS | github_user |
github_app | OVERRIDES | github_branch_protection_rule |
github_env_secret | OVERRIDES | github_org_secret |
github_env_secret | OVERRIDES | github_repo_secret |
github_environment | HAS | github_env_secret |
github_pullrequest | CONTAINS | github_pullrequest |
github_repo | HAS | github_branch_protection_rule |
github_repo | HAS | github_code_scanning_finding |
github_repo | USES | github_env_secret |
github_repo | HAS | github_environment |
github_repo | HAS | github_finding |
github_repo | HAS | github_issue |
github_repo | USES | github_org_secret |
github_repo | HAS | github_pullrequest |
github_repo | HAS | github_repo_secret |
github_repo | USES | github_repo_secret |
github_repo | HAS | github_secret_scanning_finding |
github_repo | ALLOWS | github_team |
github_repo | ALLOWS | github_user |
github_repo_secret | OVERRIDES | github_org_secret |
github_team | OVERRIDES | github_branch_protection_rule |
github_team | HAS | github_user |
github_user | MANAGES | github_account |
github_user | OVERRIDES | github_branch_protection_rule |
github_user | ASSIGNED | github_issue |
github_user | CREATED | github_issue |
github_user | APPROVED | github_pullrequest |
github_user | OPENED | github_pullrequest |
github_user | REVIEWED | github_pullrequest |
github_user | MANAGES | github_team |
Mapped Relationships
The following mapped relationships are created:
Source Entity _type | Relationship _class | Target Entity _type | Direction |
---|---|---|---|
github_finding | IS | *cve* | FORWARD |
github_finding | EXPLOITS | *cwe* | FORWARD |
github_issue | ASSIGNED | *github_user* | REVERSE |
github_issue | CREATED | *github_user* | REVERSE |
github_pullrequest | APPROVED | *github_user* | REVERSE |
github_pullrequest | OPENED | *github_user* | REVERSE |
github_pullrequest | REVIEWED | *github_user* | REVERSE |