# Integrating SailPoint with GitHub Enterprise Server

This guide provides the requirements and field definitions you need to configure the GitHub Enterprise Server connector.

GitHub Enterprise Server is a self-hosted GitHub product that runs on your infrastructure. The connector aggregates accounts, entitlements, and non-human identities from the organizations governed by your GitHub App.

> [!NOTE]
>
> To view the latest features, enhancements, and fixes for all SaaS connectors, refer to the [SaaS Release Notes](<https://community.sailpoint.com/release-notes/saas>) page.

## Supported Features

The GitHub Enterprise Server connector supports the following features:

#### Account Management

- Test connection.
- Account aggregation. The connector merges organization members with the same GitHub `login`.
- Account creation through organization invitations.
- Adding and removing team membership.

#### Entitlement Management

- Team, organization role, and repository entitlement aggregation.
- Access certifications for entitlements connected to accounts.

#### Machine Identity Aggregation

- Dataset 2.0 aggregation for GitHub App installations, workflows, action runs, and environment secret names.

## Supported Versions

The connector supports self-hosted GitHub Enterprise Server 3.21 and later.

## Prerequisites

Before you configure the connector, prepare your virtual appliance and GitHub App.

Configure at least one virtual appliance cluster and successfully test the connection. Refer to the [Virtual Appliance Reference Guide](<https://documentation.sailpoint.com/saas/help/va/index.html>) for more information.

### GitHub App

**To prepare GitHub Enterprise Server:**

1. Confirm that your virtual appliance can reach the hostname of your GitHub Enterprise Server 3.21 or later instance.
2. Create a GitHub App on the GitHub Enterprise Server instance.
3. Set the App installation availability to **Any account**.
4. Grant the permissions listed in [Required Permissions](<#required-permissions>).
5. Install the same App on every organization you want to govern. Use the same App ID and PEM private key.

## Required Permissions

Grant the following permissions to the GitHub App:

### GitHub App Permissions for User Management

| Purpose | GitHub App permission | Level |
| --- | --- | --- |
| Identity management and provisioning | Organization Members | Write |
| Organization invitations and team membership | Administration | Write |

### Permissions Required for Each Resource

| Dataset name | Permission |
| --- | --- |
| **GitHub Apps** | Read permission to Organization - Administrator |
| **GitHub Actions** | Read permission to Repository - Actions |
| **GitHub Workflows** | Read permission to Repository - Actions |
| **Environment Secrets** | Read permission to Repository - Environment |
