Overview

Github App Integration

Connect the GitHub App to Sprinto to automatically monitor repositories, access controls, and security checks for continuous compliance.

The GitHub App integration enables Sprinto to continuously monitor your GitHub organisation for repository activity, access controls, and security configurations.

Sprinto uses this integration to automate compliance checks such as:

  • Multi-factor authentication (MFA) enforcement
  • Repository access reviews
  • Branch protection and peer review enforcement
  • Dependabot vulnerability monitoring

The integration supports two connection methods:

  • Sprinto GitHub App (recommended) — Quick setup using Sprinto’s pre-configured app
  • Bring Your Own GitHub App — Custom setup for enterprise or restricted environments

How it Works

The integration uses GitHub Apps with read-only permissions to securely fetch compliance data.

  1. You initiate the connection from Sprinto.
  2. You choose a connection method.
  3. GitHub permissions are granted at the organisation level.
  4. Sprinto generates installation access tokens.
  5. Data is retrieved using GitHub REST and GraphQL APIs.
  6. Controls and checks are continuously evaluated.

Note

The integration relies on read-only GitHub App permissions aligned with Sprinto’s production configuration to ensure secure and non-intrusive access.

Sprinto checks for GitHub

The below procedure below has a dedicated section for configuring GitHub as a change management and ticketing system. You can follow the section that applies to your GitHub Usage:

Sprinto checkCheck descriptionReference procedure
GitHub org level MFA should be enforcedMulti-factor authentication (MFA) should be enforced at the organization level.How to fix
GitHub user should have MFA enabledMulti-factor authentication (MFA) should be enabled on all users' accountsHow to fix
Github access should be removed for offboarded userRevoke access from the organization’s GitHub account for every offboarded staff member.How to fix
Dependabot vulnerability scan should be enabledEnable the Dependabot vulnerability scan on your GitHub repositories.How to fix
Peer review should be enforced for code changesPeer review should be enforced on every change merging request on the main branch.How to fix
Merging of code changes should require passing status-checksEvery code change must pass the status check.How to fix
Branch Protection rules should be enforced for adminsThe branch protection ruleset should be configured on the GitHub account.How to fix
Code changes should be reviewed by peers before mergingEvery code change should be reviewed by a peer reviewer.How to fix

Supported GitHub Environments

Sprinto supports integration with:

  • GitHub Cloud (github.com)
  • GitHub Enterprise Cloud (*.ghe.com)
  • GitHub Enterprise Server (self-hosted)

Use Bring Your Own GitHub App for enterprise or data residency requirements.


Required Permissions

To align with Sprinto’s production GitHub App configuration, grant the following read-only permissions:

Repository Permissions

  • Metadata — Read-only
  • Administration — Read-only
  • Checks — Read-only
  • Dependabot alerts — Read-only
  • Pull requests — Read-only

Organisation Permissions

  • Administration — Read-only
  • Members — Read-only

These permissions allow Sprinto to monitor repository activity, access configurations, and security posture without making any changes.


What Data Sprinto Accesses

Sprinto retrieves the following data:

  • Installation ID
  • Organisation details
  • Repositories and branches
  • Commits and pull requests
  • Organisation members and collaborators
  • MFA status
  • Dependabot vulnerability alerts

APIs Used by Sprinto

Sprinto uses GitHub APIs to retrieve compliance data securely.

REST API Endpoints

EndpointPurpose
GET /appValidate app credentials
GET /app/installations/{installationId}Retrieve installation details
POST /app/installations/{installationId}/access_tokensGenerate access tokens
GET /orgs/{org}Fetch organisation details
GET /orgs/{org}/membersList organisation members
GET /orgs/{org}/outside_collaboratorsList external collaborators
GET /orgs/{org}/reposList repositories
GET /users/{username}Fetch user details
GET /repos/{owner}/{repo}/pullsRetrieve pull requests

GraphQL API

Sprinto also uses GitHub’s GraphQL API (https://api.github.com/graphql) to:

  • Query organisation members with roles
  • Retrieve SSO/SAML identity information
  • Fetch commit history and pull request data
  • Access vulnerability and security alerts

Important Considerations

  • Selecting specific repositories limits monitoring scope.
  • Missing repositories are usually due to restricted selection.
  • Reinstallation is required to update repository access.

Before you begin

Ensure the following prerequisites are met:

  • You have Admin access to the GitHub organisation where the app will be installed.
  • You are logged in to the Sprinto Admin Portal.
  • Your GitHub organisation allows third-party GitHub Apps to be installed.

How it works

The integration works in three stages:

  1. You initiate the connection from Sprinto.
  2. You install the Sprinto Audit GitHub App in your GitHub organisation.
  3. Sprinto syncs repository and organisation-level data to automate compliance checks.

The connection type used is OAuth.


Dashboard Actions

Connect GitHub App

  1. Log in to the Sprinto dashboard.
  2. Navigate to Settings → Integrations.
  3. In the All tab, search for GitHub App.
  4. Click Connect.
  1. Review:
    • Controls automated
    • Checks covered
    • Permissions required
    • Data accessed by Sprinto
  2. Click Next.

Choose Authentication Method

Use Sprinto’s pre-configured GitHub App for a quick setup.

  1. Select Use Sprinto’s GitHub App.
  2. Click Connect with Sprinto.
  1. You will be redirected to GitHub.
  2. Sign in and authorise the Sprinto Audit app.
  1. Select:
    • Organisation
    • Repository access (All or Selected)
  2. Click Install.

After installation:

  • You are redirected back to Sprinto
  • Initial sync begins automatically
  • Integration status updates to Active

Option 2: Bring Your Own GitHub App

Use this method for GitHub Enterprise or custom configurations.

Step 1: Create a GitHub App

  1. Select Bring Your Own GitHub App.
  2. Click Continue.
  1. In your Github account, go to Settings → Developer settings → GitHub Apps.
  2. Click New GitHub App.
  1. Enter:
  1. Configure the required permissions.
  2. Click Create GitHub App.
  1. After creation:
    1. Note the App ID
    2. Copy the Public Link
  1. Scroll down to the Private Keys section.
  2. Click Generate a private key.

Configure IP Allowlist (Required)

After creating your GitHub App, you must allow Sprinto’s public IP addresses if your organisation enforces IP restrictions.

Add the following IP addresses to your allowlist based on your Sprinto region:

RegionDomainPublic IP
USapp.sprinto.com54.193.221.51
Indiain.sprinto.com3.108.123.60
EUeu.sprinto.com18.184.125.204
AUau.sprinto.com54.252.98.100

Important

Ensure these IP addresses are added to your organisation’s IP allowlist to enable successful communication between Sprinto and GitHub.


Step 2: Add Credentials in Sprinto

  1. Enter:
    • App Public Link
    • App ID
    • Private Key
  2. Click Test Connection.
  3. Once validated, click Connect.
  1. You will be redirected to GitHub, select the user to authorise your GitHub app.
  2. Click Continue.
  1. Click Install to install your app.

Sprinto will establish the connection and begin syncing data.


Complete integration

After installation:

  • You will be redirected back to Sprinto.
  • Sprinto will initiate the initial sync.
  • The GitHub App status will update to Active once connected.

The integration is now complete.


Troubleshooting

  1. Unable to install the app
    • Ensure you have organisation admin access in GitHub.
    • Check whether your organisation restricts third-party app installations.
  2. Integration shows inactive
    • Confirm the app is installed in the correct organisation.
    • Verify repository access selection.
    • Try reconnecting from Settings → Integrations.
  3. Missing repositories in Sprinto
    • If “Only select repositories” was chosen, ensure the required repositories were selected.
    • Reinstall the app and modify repository access if needed.

Support

Contact Sprinto support if you have any queries regarding the integration or need any assistance.