Skip to main content

Purpose

The GitHub App integration enables AirMDR to authenticate securely with GitHub using an app-based trust model. This allows AirMDR to access approved repository and organization data, enrich alerts with GitHub context, and automate workflows using GitHub events and metadata within AirMDR playbooks. GitHub recommends **GitHub Apps **for long-lived integrations instead of personal access tokens.

Pre-requisites

Before configuring the GitHub App integration, ensure the following:
  • A valid GitHub account or GitHub organization
  • Permission to create a GitHub App
  • Permission to install the app on the required account, organization, or repositories
  • Administrative access to AirMDR Integrations
  • A secure location to store the downloaded PEM private key

Supported Versions

ComponentSupported Version
GitHub.comSupported
GitHub Enterprise CloudSupported
AirMDR PlatformCurrent supported cloud deployments
This setup flow is based on GitHub’s current GitHub App registration and installation model.

Authentication Method

AirMDR uses GitHub App authentication.

Required Credentials

CredentialDescription
App IDUnique numeric identifier of the GitHub App
Installation IDUnique identifier of the installed GitHub App instance
PEM Private KeyPrivate key downloaded from the GitHub App settings page

How GitHub App Authentication Works

GitHub App authentication works in the following sequence:
  1. AirMDR uses the App ID and PEM private key to generate a JWT
  2. GitHub uses that JWT to issue an installation access token
  3. AirMDR uses the installation access token to call GitHub APIs for the installed app scope 

Role-Based Access Considerations

To create or install a GitHub App, the user must have sufficient administrative access to the target account, organization, or repository. GitHub notes that installing a GitHub App generally requires organization ownership, repository admin rights, or equivalent authority depending on the target scope. 
This step requires admin privileges.

Setup Steps

1

Create a GitHub App

  1. Sign in to GitHub.
  2. In the upper-right corner, click your profile picture.
  3. Navigate to the correct settings page:
    • For a personal account app: click Settings
    • For an organization-owned app: click Your organizations → select the organization → Settings
  4. In the left sidebar, click Developer settings → GitHub Apps
  5. Click on New GitHub App.
GitHub documents this as the standard path for registering a GitHub App. 

Configure the App

Enter the required app information, such as:
  • GitHub App name
  • Homepage URL
    Git Hub App1
  • Webhook URL (if your use case requires webhooks)
    Git Hub App2
  • Permissions
    • Repository access
    • Organization permissions (if applicable)
      Git Hub App3
Grant only the permissions required for the AirMDR use case.
2

Retrieve the App ID

After the app is created:
  1. Remain on the GitHub App settings page.
  2. Locate the App ID shown in the app details.
GitHub states that the App ID is available on the GitHub App settings page and is required for app authentication. 

Example

App ID: 123456
Use this value in AirMDR as the App ID.
3

Generate the PEM Private Key

  1. On the GitHub App settings page, scroll to the Private keys section.
  2. Click on “Generate a private key”.
  3. PEM file is downloaded to your local machine.
GitHub documents private key generation and management for GitHub Apps and notes that private keys are used to authenticate the app and obtain installation tokens. 
Store the PEM file securely. You will need to upload or paste its contents into AirMDR.
GitHub allows multiple private keys, which supports safe key rotation.
4

Install the GitHub App

After creating the GitHub App, it must be installed on the target account or organization.
  1. In the GitHub App settings page, click Install App.
  2. Select the target:
    • Personal account
    • Organization
  3. Choose one of the following:
    • All repositories
    • Only selected repositories
  4. Complete the installation.
GitHub documents app installation as a required step before authenticating as an app installation.
5

Retrieve the Installation ID

After installation, GitHub creates an Installation ID for that installed app instance.

UI Method

  1. Open the GitHub App installation page.
  2. Look at the browser URL.
Example:
https://github.com/settings/installations/12345678
In this example:
Installation ID = 12345678
GitHub also documents that installation authentication requires the installation ID, and that installation IDs can be obtained through installation context or API responses.
The installation ID is often easiest to identify directly from the installation page URL.
6

Provide the Credentials in AirMDR

Done! now you have the required credentials
FieldValue
App IDGitHub App ID
Installation IDGitHub App Installation ID
PEM KeyFull contents of the downloaded PEM file
 Share the **App ID, Installation ID **and PEM Key securely to AirMDR.
(or)
Self Configure GitHub App in the AirMDR Integrations Dashboard.

UI Path Reference

CredentialHow to Get It (UI Path)
App IDProfile → Settings / Organization Settings → Developer settings → GitHub Apps → Select App
PEM KeyGitHub App settings page → Private keys → Generate a private key
Installation IDGitHub App settings page → Install App → Open installation page → copy ID from URL

Skills Provided by this Integration

Skill IDPurpose
GitHub App Analyze and Raise PRAuthenticates via a GitHub App (PEM key, App ID, Installation ID), fetches source files from the specified repository, and sends them to Claude with a custom prompt to perform any task — refactoring, bug fixing, documentation, security review, adding tests, and more — then opens a pull request with Claudes changes.
To view the details of Input Parameters and Output for the respective skills
  • Go to AirMDR → GitHub App Integration page.
  • Select the Skills tab and click on the required listed skills.

Data Flow & Security

Data Exchanged

Depending on the permissions granted to the GitHub App, AirMDR may access:
  • Repository metadata
  • Organization metadata
  • Security findings
  • Pull request context
  • Workflow and commit information
  • Other GitHub resources within the approved installation scope

Security Controls

LayerMethod
In transitHTTPS / TLS
At restEncrypted credential storage in AirMDR

GitHub Endpoints

Typical GitHub endpoints include:
https://github.com
https://api.github.com

Authentication Security Model

  • AirMDR does not authenticate with a personal access token
  • Authentication is scoped to the installed GitHub App
  • Effective permissions depend on:
    • App permissions
    • Installation scope
    • Repository selection

Monitoring & Logs

Integration activity can be monitored from the AirMDR integration logs.

Sample Log Entry

{
  "integration": "github_app",
  "operation": "generate_installation_token",
  "status": "success",
  "app_id": "123456",
  "installation_id": "12345678",
  "timestamp": "2026-03-18T10:20:00Z"
}
ScenarioLog Level
Normal operationsINFO
TroubleshootingDEBUG

Error Handling

ErrorCauseResolution
Invalid App IDIncorrect App ID enteredVerify the App ID from the GitHub App settings page
Invalid Installation IDIncorrect installation selected or app not installedReopen the installation page and confirm the Installation ID
PEM key errorWrong file contents or formatting issueRe-upload the PEM content including header/footer
Permission deniedApp lacks required scopesUpdate GitHub App permissions and reinstall if necessary
Authentication failedApp not installed properlyConfirm the app installation target and repository scope

Support & Maintenance

  • 📧 Contact AirMDR Support through your designated support channel.
  • 🔁 Rotate credentials regularly in GitHub App.
  • 🔄 Reconnect in AirMDR when secrets are changed.

Configure GitHub App in AirMDR Integrations Dashboard

  1. Navigate to AirMDR, provide the credentials and click Login.
  2. Navigate to the AirMDR Integrations Dashboard in the left navigation pane and select Integrations.
  3. Use the search option, enter the keyword “GitHub”, select the Connections tab, and click Add New Connection.
  4. Enter an unique name to the Instance (e.g., your org name-GitHub App) and brief Description to easily identify the user connection by AirMDR.
  5. Enter the generated App_id, Install_ID, Pem Key and Expiry (optional) in the Authentication Details field params, and click Save.