> ## Documentation Index
> Fetch the complete documentation index at: https://www.mintlify.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub

> Connect your GitHub repository to Mintlify for automated deployments, pull request preview builds, and continuous documentation synchronization.

Mintlify uses a GitHub App to automatically sync your documentation with your GitHub repository.

<Tip>
  **Do you need the GitHub App?**

  * **Mintlify-hosted repository** in the `mintlify-community` organization: No. The GitHub App is already configured.
  * **Your own repository**: Yes. Install the GitHub App to enable automatic deployments when you push changes.

  See your repository in the [Git Settings](https://dashboard.mintlify.com/settings/deployment/git-settings) page of your dashboard.
</Tip>

If your repository is in a private repository owned by the Mintlify organization, the GitHub App is automatically configured and managed by Mintlify. You can use the web editor to make changes to your documentation. If you want to work on your documentation locally, clone the repository to your own organization and update your Git settings to use your own repository.

## Clone to your own repository

If you skipped connecting your own Git repository during onboarding, your documentation lives in a private repository owned by the Mintlify organization. To move it to your own account or organization, go to [Git Settings](https://dashboard.mintlify.com/settings/deployment/git-settings) in your dashboard. A setup wizard guides you through the process with two options:

<AccordionGroup>
  <Accordion title="One-click clone (recommended)">
    The clone option automatically creates a copy of your documentation in your GitHub account.

    1. Select **GitHub** as your provider.
    2. Click **Clone**.
    3. Authorize with GitHub when prompted.
    4. Select the GitHub organization where you want to create the repository.
    5. Confirm the clone. Mintlify copies your documentation files into a new repository.
    6. Optionally install the Mintlify GitHub App for automatic deployments.
  </Accordion>

  <Accordion title="Manual setup">
    <Warning>
      This process permanently deletes your content from the Mintlify-hosted repository.

      Download your documentation from the setup wizard before completing the manual setup process.
    </Warning>

    If you prefer to set up your repository manually:

    1. Download your documentation as a zip file so that you have a backup of your files.
    2. Select **GitHub** as your provider.
    3. Click **Continue setup**.
    4. Authorize with GitHub when prompted.
    5. Select your organization, repository, and branch.
    6. Optionally specify a subdirectory if your docs are not at the repository root.
    7. Save your settings.
  </Accordion>
</AccordionGroup>

After completing either path, install the GitHub app by following the steps in [Install the GitHub app](#install-the-github-app).

## Install the GitHub app

<Note>
  You must have organization ownership or administrator permissions in a repository to install the app. If you lack the necessary permissions, the repository owner must approve the installation request.
</Note>

Install the Mintlify GitHub App through your [dashboard](https://dashboard.mintlify.com/settings/organization/github-app).

<Frame>
  <img className="h-80" alt="Mintlify GitHub App installation page with the 'Only select repositories' option selected." src="https://mintcdn.com/mintlify/GiucHIlvP3i5L17o/images/github/select-repos.png?fit=max&auto=format&n=GiucHIlvP3i5L17o&q=85&s=35cc7fc3564471ccef7a54029ef18cd4" width="2980" height="1702" data-path="images/github/select-repos.png" />
</Frame>

## Permissions

When you install the GitHub App, grant the following permissions.

Read permissions:

* `metadata`: Basic repository information

Read and write permissions:

* `checks`: Create status checks on pull requests
* `code`: Read file changes when you commit to your docs branch
* `deployments`: Generate preview deployments for pull requests
* `pull requests`: Create branches and pull requests from the web editor

<Info>
  The app only accesses repositories that you explicitly grant it access to. If you have branch protection rules enabled, the app can't push directly to protected branches.
</Info>

## Manage repository access

When installing the GitHub App, you can grant access to all of your repositories or specific ones. We recommend only granting access to your documentation repository and any repositories that you want to provide as context for the agent or workflows. You can modify this selection anytime in your [GitHub App settings](https://github.com/apps/mintlify/installations/new).

## Configure docs source

Change the organization, repository, or branch that your documentation builds from in the [Git Settings](https://dashboard.mintlify.com/settings/deployment/git-settings) section of your dashboard.

## GitHub Enterprise with IP allowlists

If your GitHub Enterprise Cloud organization has an IP allowlist enabled, you need to add Mintlify's egress IP address (`54.242.90.151`) to your allowlist for the GitHub App to function properly.

Follow [GitHub's documentation](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization) to configure your IP allowlist.

## Troubleshooting

### Deployment not triggering automatically

If pushes to your repository don't trigger deployments, check the following possible problems.

<AccordionGroup>
  <Accordion title="Verify GitHub App installation">
    Check that the correct repository has the app installed.

    1. Go to [GitHub App settings](https://dashboard.mintlify.com/settings/organization/github-app) in your dashboard.
    2. Check that your repository is on the active app installations list.
  </Accordion>

  <Accordion title="Check deployment branch">
    Ensure that you're pushing to the correct branch.

    1. Go to [Git Settings](https://dashboard.mintlify.com/settings/deployment/git-settings)
    2. Verify the branch in your dashboard matches the branch that you're pushing to.
  </Accordion>
</AccordionGroup>

### GitHub app connection issues

If you encounter problems with the GitHub app, resetting the connection can solve most problems.

<Steps>
  <Step title="Uninstall the Mintlify app through GitHub.">
    1. In GitHub, go to [installations](https://github.com/settings/installations) and click **Configure** next to the Mintlify app. Scroll down and click **Uninstall**.
    2. Go to [Authorized GitHub Apps](https://github.com/settings/apps/authorizations) and click **Revoke** next to the Mintlify app.
  </Step>

  <Step title="Reinstall the Mintlify app.">
    1. In your Mintlify dashboard, go to [Git Settings](https://dashboard.mintlify.com/settings/deployment/git-settings) and install the GitHub app.
    2. Authorize your account in the [My Profile](https://dashboard.mintlify.com/settings/account) section of your dashboard.
  </Step>
</Steps>

### Feedback add-ons are unavailable

The edit suggestions and raise issues feedback features are only available for public GitHub repositories. If these options are disabled in your dashboard, check your repository visibility.

If your repository is public and you cannot enable the edit suggestions or raise issues options in your dashboard, revalidate your Git settings.

<Steps>
  <Step title="Navigate to Git Settings">
    Go to [Git Settings](https://dashboard.mintlify.com/settings/deployment/git-settings) in your dashboard.
  </Step>

  <Step title="Revalidate your settings">
    Click the green check mark in the corner of the Git settings box to revalidate your repository settings. This forces an update to your repository settings to reflect whether your repository is public or private.

    <Frame>
      <img src="https://mintcdn.com/mintlify/0GhkFxoI6iPIzBkf/images/github/revalidate-settings-light.png?fit=max&auto=format&n=0GhkFxoI6iPIzBkf&q=85&s=b3c7c421876bb4a2921ece22fc4b4777" alt="The Git Settings page in the Mintlify dashboard. An orange arrow points to the green check mark that revalidates the repository settings." className="block dark:hidden" width="1996" height="1168" data-path="images/github/revalidate-settings-light.png" />

      <img src="https://mintcdn.com/mintlify/0GhkFxoI6iPIzBkf/images/github/revalidate-settings-dark.png?fit=max&auto=format&n=0GhkFxoI6iPIzBkf&q=85&s=9d2462cd3e07c9e7cf0835b3c50e3020" alt="The Git Settings page in the Mintlify dashboard. An orange arrow points to the green check mark that revalidates the repository settings." className="hidden dark:block" width="1998" height="1170" data-path="images/github/revalidate-settings-dark.png" />
    </Frame>
  </Step>
</Steps>


## Related topics

- [Quickstart](/docs/quickstart.md)
- [Workflows overview](/docs/workflows/index.md)
- [Deployments](/docs/deploy/deployments.md)
