> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify-mintlify-add-hello-world-quickstart-48843.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-hello-world-quickstart-48843/KAieJWDWb9msJsqT/images/gitlab/gitlab-project-id.png?fit=max&auto=format&n=KAieJWDWb9msJsqT&q=85&s=1652efb4ee1e9d73ef47224a4934a1cd" 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-hello-world-quickstart-48843/KAieJWDWb9msJsqT/images/gitlab/gitlab-project-access-token.png?fit=max&auto=format&n=KAieJWDWb9msJsqT&q=85&s=b270aa9360d0acfa00444fb3b750dfe1" 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-hello-world-quickstart-48843/KAieJWDWb9msJsqT/images/gitlab/gitlab-config.png?fit=max&auto=format&n=KAieJWDWb9msJsqT&q=85&s=19dfc17cc7ed1e2767dda2f365f1599d" 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-hello-world-quickstart-48843/KAieJWDWb9msJsqT/images/gitlab/gitlab-webhook.png?fit=max&auto=format&n=KAieJWDWb9msJsqT&q=85&s=790e2e6e7b3783907002d7bf1f3381fb" 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-hello-world-quickstart-48843/KAieJWDWb9msJsqT/images/gitlab/gitlab-show-webtoken.png?fit=max&auto=format&n=KAieJWDWb9msJsqT&q=85&s=628e52ac9f2126902afc7122a57059ea" 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-hello-world-quickstart-48843/KAieJWDWb9msJsqT/images/gitlab/gitlab-project-webtoken.png?fit=max&auto=format&n=KAieJWDWb9msJsqT&q=85&s=bce97c09231a1e849f5e994e72bc8000" 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-hello-world-quickstart-48843/KAieJWDWb9msJsqT/images/gitlab/gitlab-project-webtoken-test.png?fit=max&auto=format&n=KAieJWDWb9msJsqT&q=85&s=bee136a78ff3176a1b47a38f70dd4260" width="1161" height="724" data-path="images/gitlab/gitlab-project-webtoken-test.png" />
    </Frame>
  </Step>
</Steps>
