# Connect GitHub Enterprise

Source: https://docs.tai.ga/administration/connect-github-enterprise/

github.com repositories connect through Taiga's own GitHub App.
GitHub Enterprise Cloud (`*.ghe.com`) and GitHub Enterprise Server connect through an App you register on your instance.
You own the App and choose which repositories it can access.

## Requirements

- Organization owner role in the organization that will own the App.
  GitHub does not allow manifest-registered Apps on an enterprise account.

GitHub Enterprise Server also requires:

- Version 3.17 or later.
- HTTPS on port 443, reachable from Taiga's egress IPs. Contact us for the list.
- Outbound HTTPS to Taiga's API, for webhooks.
- A certificate from a public CA, or the PEM of your private CA.

## Register the App

1. Go to **Settings → Organization → Integrations** and select **Connect GitHub Enterprise**.
2. Select the deployment: **Enterprise Cloud** or **Enterprise Server**.
3. Enter the subdomain (Cloud) or the server URL, such as `https://github.example.com` (Server).
   For a private CA, paste its certificate.
4. Enter the organization that will own the App.
5. Select **Continue to GitHub**, create the App, and install it on the repositories Taiga should access.

For Enterprise Server, Taiga checks the server before redirecting: it must identify as GitHub Enterprise Server, run 3.17 or later, and present a certificate that verifies.
A failed check is reported in the dialog and nothing is registered.

The App's credentials are encrypted with AWS KMS.
The CA certificate is stored with them and trusted for that server only, for API calls and git operations alike.

## Link repositories

Repositories on the App link to products as on github.com: in Discovery's import step for a new product, or with **Connect repository** in an existing product's settings (**Add repository** when it already links one).
See [Integrations and environments](https://docs.tai.ga/administration/integrations-and-environments/).

## CI

Taiga reads pull request checks the same way on every GitHub.
On Enterprise Server, GitHub Actions requires self-hosted runners; make sure the labels your workflows target are served.