GitHub credentials
In order to show and import information about your GitHub repositories and teams, OpenContext needs either a personal access token or GitHub app credentials with the right permissions for your organization. Some of the information that is shown includes:
- Repository information such as languages, releases, contributors, etc.
- GitHub Actions
- Dependabot alerts
SaaS customers: these secrets can be uploaded to our Client Portal by your organization's admin user.
Self hosted customers: your admin needs to add configure the token in the app as detailed in our docs.
Personal Access Token
Create a classic personal access token with the following permissions:
To read software components:
- repo
To read organization data:
- read:org
- read:user
- user:email
If you have SAML enabled for your GitHub organization you will also need to follow the following steps to grant your token access to your organization.
GitHub app
Alternately, you can choose to create a GitHub app with the permissions below:
To read software components:
- Actions: Read-only
- Checks: Read-only
- Code scanning alerts: Read-only
- Commit statuses: Read-only
- Contents: Read-only
- Dependabot alerts: Read-only
- Deployments: Read-only
- Discussions: Read-only
- Environments: Read-only
- Issues: Read-only
- Metadata: Read-only
- Packages: Read-only
- Pages: Read-only
- Projects: Read-only
- Pull requests: Read-only
- Secret scanning alerts: Read-only
To read organization data:
- Events: Read-only
- Members: Read-only
To read account data:
- Email addresses: Read-only
- Interaction limits: Read-only
Once the application is created you have to generate a private key for the application and place it in a YAML file. The YAML file must include the following information:
- appId (required) -- Generated for you when you create the GitHub app
- installationId (required) -- The
installationId
can be found by going tohttps://github.com/organizations/YOUR_ORG/settings/installations
and clicking onConfigure
next to the GitHub app. The installation id is at the end of the URL you are sent to. For instance,https://github.com/organizations/YOUR_ORG/settings/installations/12345678
has aninstallationId
of12345678
. - clientId (required) -- Generated for you when you create the GitHub app
- clientSecret (required) -- Generated for you when you create the GitHub app
- privateKey -- Please note that indentation for
privateKey
is required!
The YAML file can also include the following optional information:
- allowedInstallationOwners (optional) -- list of GitHub orgs which can use this GitHub app credential. If this is not specified then all GitHub orgs will use the same credentials.
- webhookUrl (optional) -- Generated for you when you create the GitHub app
- webhookSecret (optional) -- Generated for you when you create the GitHub app
Example github-app.yaml
appId: app id
installationId: installation_id_number
allowedInstallationOwners: ['YOUR_GITHUB_ORG']
clientId: client id
clientSecret: client secret
webhookSecret: webhook secret
privateKey: |
-----BEGIN RSA PRIVATE KEY-----
...Key content...
-----END RSA PRIVATE KEY-----
For more information
For more information on how we integrate with GitHub, see the following video: