server/priv/docs/en/guides/integrations/gitforge/github.md
Git repositories are the centerpiece of the vast majority of software projects out there. We integrate with GitHub to provide Tuist insights right in your pull requests and to save you some configuration such as syncing your default branch.
You will need to install the Tuist GitHub app in the Integrations tab of your organization:
After that, you can add a project connection between your GitHub repository and your Tuist project:
[!TIP] Ip Allowlisting
If your GitHub organization uses IP allow lists or your GitHub instance is behind a firewall, make sure to allowlist Tuist's <.localized_link href="/guides/server/network#outbound-ip-addresses">outbound IP addresses</.localized_link> so that the integration can communicate with your repository.
Tuist also integrates with self-hosted GitHub Enterprise Server (GHES) instances. In the GitHub integration card, switch to the Enterprise server tab, enter your GHES base URL (for example https://github.example.com), and click install.
Because GitHub Apps are scoped to a single GitHub instance, Tuist cannot reuse its github.com App on your GHES — instead, the install button takes you through GitHub's App manifest flow: GHES walks your administrator through registering a fresh Tuist App on the instance, then hands the new App's credentials back to Tuist. Tuist stores those credentials encrypted per-installation and uses them for every API call, webhook signature, and link to your repositories from then on.
No additional Tuist server configuration is needed; the manifest flow generates and provisions everything automatically.
[!NOTE] Enterprise plan only on the hosted Tuist server
On the hosted Tuist server (
https://tuist.dev), the GitHub Enterprise Server integration is available exclusively to organizations on the Enterprise plan. Self-hosted Tuist deployments can use it on any plan.
The GitHub app posts a Tuist run report, which includes a summary of the PR, including links to the latest <.localized_link href="/guides/features/previews#pullmerge-request-comments">previews</.localized_link> or <.localized_link href="/guides/features/selective-testing#pullmerge-request-comments">tests</.localized_link>:
[!NOTE] Requirements
The comment is only posted when your CI runs are <.localized_link href="/guides/integrations/continuous-integration#authentication">authenticated</.localized_link>.
[!NOTE] Github_ref
If you have a custom workflow that's not triggered on a PR commit, but for example, a GitHub comment, you might need to ensure that the
GITHUB_REFvariable is set to eitherrefs/pull/<PR_NUMBER>/mergeorrefs/pull/<PR_NUMBER>/head.You can run the relevant command, like
tuist share, with the prefixedGITHUB_REFenvironment variable: <code v-pre>GITHUB_REF="refs/pull/${{ github.event.issue.number }}/head" tuist share</code>