> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify-mintlify-add-i-to-quickstart-8818.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# GitLab

> Sync your docs with a GitLab repo

We use access tokens and webhooks to authenticate and sync changes between GitLab and Mintlify.

* Mintlify uses access tokens to pull information from GitLab.
* GitLab uses webhooks to notify Mintlify when changes are made, enabling preview deployments for merge requests.

## Set up the connection

<Steps>
  <Step title="Find your project ID">
    In your GitLab project, navigate to **Settings** > **General** and locate your **Project ID**.

    <Frame>
      <img src="https://mintcdn.com/mintlify-mintlify-add-i-to-quickstart-8818/POxrbHB6_BZDU4E9/images/gitlab/gitlab-project-id.png?fit=max&auto=format&n=POxrbHB6_BZDU4E9&q=85&s=1cd11e3ecfab758a317fec937cf8f087" alt="The General Settings page in the GitLab dashboard. The Project ID is highlighted." width="950" height="775" data-path="images/gitlab/gitlab-project-id.png" />
    </Frame>
  </Step>

  <Step title="Generate an access token">
    Navigate to **Settings** > **Access Tokens** and select **Add new token**.

    Configure the token with these settings:

    * **Name**: Mintlify
    * **Role**: Maintainer (required for private repos)
    * **Scopes**: `api` and `read_api`

    Click **Create project access token** and copy the token.

    <Note>
      If Project Access Tokens are not available, you can use a Personal Access Token instead. Note that Personal Access Tokens expire and must be updated.
    </Note>

    <Frame>
      <img src="https://mintcdn.com/mintlify-mintlify-add-i-to-quickstart-8818/POxrbHB6_BZDU4E9/images/gitlab/gitlab-project-access-token.png?fit=max&auto=format&n=POxrbHB6_BZDU4E9&q=85&s=0caa3ef30b6d2c1d0621497e03fd8939" alt="The Access tokens page in the GitLab dashboard. The settings to configure for Mintlify are highlighted." width="1166" height="904" data-path="images/gitlab/gitlab-project-access-token.png" />
    </Frame>
  </Step>

  <Step title="Set up the connection">
    In the [Mintlify dashboard](https://dashboard.mintlify.com/settings/deployment/git-settings):

    1. Enter your project ID and access token.
    2. Complete any other required configurations.
    3. Click **Save Changes**.

    <Frame>
      <img src="https://mintcdn.com/mintlify-mintlify-add-i-to-quickstart-8818/POxrbHB6_BZDU4E9/images/gitlab/gitlab-config.png?fit=max&auto=format&n=POxrbHB6_BZDU4E9&q=85&s=0ac7cc87574092ab05cc630e7b8b00a1" alt="The Git Settings page in the Mintlify dashboard. The GitLab configuration settings are highlighted." width="2994" height="1704" data-path="images/gitlab/gitlab-config.png" />
    </Frame>
  </Step>
</Steps>

## Create the webhook

Webhooks allow us to receive events when changes are made so that we can
automatically trigger deployments.

<Steps>
  <Step title="Navigate to Settings > Webhooks and click 'Add new Webhook'">
    <Frame>
      <img src="https://mintcdn.com/mintlify-mintlify-add-i-to-quickstart-8818/POxrbHB6_BZDU4E9/images/gitlab/gitlab-webhook.png?fit=max&auto=format&n=POxrbHB6_BZDU4E9&q=85&s=83524a5b73c5a654e78e2fa9471dc234" width="3014" height="1704" data-path="images/gitlab/gitlab-webhook.png" />
    </Frame>
  </Step>

  <Step title="Set up URL and webhook">
    In the "URL" field, enter the endpoint `https://leaves.mintlify.com/gitlab-webhook` and name the webhook "Mintlify".
  </Step>

  <Step title="Paste token">
    Paste the Webhook token generated after setting up the connection.

    <Frame>
      <img src="https://mintcdn.com/mintlify-mintlify-add-i-to-quickstart-8818/POxrbHB6_BZDU4E9/images/gitlab/gitlab-show-webtoken.png?fit=max&auto=format&n=POxrbHB6_BZDU4E9&q=85&s=d5c217b162a01eb27e9fb73cd1a62637" width="555" height="527" data-path="images/gitlab/gitlab-show-webtoken.png" />
    </Frame>
  </Step>

  <Step title="Select events">
    Select these events to trigger the webhook:

    * **Push events** (All branches)
    * **Merge requests events**

    When you're done it should look like this:

    <Frame>
      <img src="https://mintcdn.com/mintlify-mintlify-add-i-to-quickstart-8818/POxrbHB6_BZDU4E9/images/gitlab/gitlab-project-webtoken.png?fit=max&auto=format&n=POxrbHB6_BZDU4E9&q=85&s=400ca34a2df4a223e4fd5aa1ead3dbf2" alt="The Webhook page in the GitLab dashboard. The settings to configure for Mintlify are highlighted." width="1161" height="1740" data-path="images/gitlab/gitlab-project-webtoken.png" />
    </Frame>
  </Step>

  <Step title="Test the Webhook">
    After creating the Webhook, click the "Test" dropdown and select "Push events" to send a sample payload to ensure it's configured correctly. It'll say "Hook executed successfully: HTTP 200" if configured correctly.

    This will help you verify that everything is working correctly and that your documentation will sync properly with your GitLab repository.

    <Frame>
      <img src="https://mintcdn.com/mintlify-mintlify-add-i-to-quickstart-8818/POxrbHB6_BZDU4E9/images/gitlab/gitlab-project-webtoken-test.png?fit=max&auto=format&n=POxrbHB6_BZDU4E9&q=85&s=cfb7e155227eac73eee7466eebe4d27f" width="1161" height="724" data-path="images/gitlab/gitlab-project-webtoken-test.png" />
    </Frame>
  </Step>
</Steps>
