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

# GitLab

Configure a GitLab repository as the storage provider for your Maverics deployment. The Console publishes signed config bundles to your GitLab repository, and Orchestrator instances poll the repository for updates.

## Prerequisites

* **A GitLab account** -- with permissions to create projects and generate personal access tokens
* **A Maverics Console account** -- with access to create or edit deployments

## GitLab Setup

<Steps>
  <Step title="Create a Repository">
    Create a new GitLab project (or use an existing one) for Maverics configuration storage. This project will hold the signed config bundles published by the Console.
  </Step>

  <Step title="Generate a Personal Access Token">
    Generate a personal access token for the Console to read and write config bundles to the repository. The token needs `read_repository` and `write_repository` scopes.

    1. In GitLab, click your avatar on the left sidebar, then click **Preferences**
    2. On the left sidebar, click **Access tokens**
    3. Click **Add new token**
    4. Enter a **Token name** (e.g., "Maverics Console")
    5. Set an **Expiration date** (default is 365 days; GitLab 17.6+ allows up to 400 days)
    6. In Select scopes, check **`read_repository`** and **`write_repository`**
    7. Click **Create personal access token**
    8. Copy the token value from **Your new personal access token** -- paste this into the Console's **Token** field

    For full details, see [Personal access tokens](https://docs.gitlab.com/user/profile/personal_access_tokens/) in the GitLab documentation.
  </Step>
</Steps>

## Storage Configuration

Configure these fields in the Console when creating or editing a deployment with the **GitLab** provider.

| Field                   | Required | Description                                                                  |
| ----------------------- | -------- | ---------------------------------------------------------------------------- |
| Namespace               | Yes      | Your GitLab organization name                                                |
| Repository              | Yes      | The GitLab repository name                                                   |
| Branch                  | Yes      | The branch in the repository                                                 |
| Token                   | Yes      | A personal access token with `read_repository` and `write_repository` scopes |
| Configuration File Path | No       | The path within the repository where the bundle is stored                    |

<Info>
  The Orchestrator uses the corresponding [config source](/reference/orchestrator/configuration/config-sources) type to retrieve bundles from the deployment provider. If the Console deploys to GitLab, the Orchestrator uses the [GitLab config source](/reference/orchestrator/configuration/config-sources/gitlab) to poll for updates.
</Info>

## Related Pages

<CardGroup cols={2}>
  <Card title="Publishing Deployment Configs Overview" icon="upload" href="/reference/console/config-publishing">
    Bundle format, signing, deployment lifecycle, and revision history
  </Card>

  <Card title="GitLab Config Source" icon="code-branch" href="/reference/orchestrator/configuration/config-sources/gitlab">
    Orchestrator-side GitLab configuration source reference
  </Card>

  <Card title="Deploy to Production" icon="rocket" href="/guides/operations/deploy">
    Production deployment guide for the Orchestrator
  </Card>
</CardGroup>
