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

# GitLab connection

> Learn how to configure a GitLab Connection for Infisical using OAuth or Access Token methods.

Infisical supports two methods for connecting to GitLab: **OAuth** and **Access Token**. Choose the method that best fits your setup and security requirements.

> [tab] OAuth Method
>
> The OAuth method provides secure authentication through GitLab's OAuth flow.
>
> > [!NOTE]
> >
> > OAuth Method is only supported in Self-Hosted mode.
>
> > [accordion] Self-Hosted Instance Setup
> >
> > Using the GitLab Connection with OAuth on a self-hosted instance of Infisical requires configuring an OAuth application in GitLab and registering your instance with it.
> >
> > > [!TIP]
> > >
> > > If you're self-hosting GitLab with custom certificates, you will have to configure your Infisical instance to trust these certificates. To learn how, please follow [this guide](https://infisical.com/docs/self-hosting/guides/custom-certificates.md).
> >
> > **Prerequisites:**
> >
> > * A GitLab account with existing projects
> > * Self-hosted Infisical instance
> >
> > **1. Create an OAuth application in GitLab**
> >
> > Navigate to your user Settings > Applications to create a new GitLab application.
> >
> > ![GitLab Dashboard](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-dashboard.png)
> >
> > ![GitLab Applications Settings](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-applications.png)
> >
> > Create the application. As part of the form, set the **Redirect URI** to `https://your-domain.com/organization/app-connections/gitlab/oauth/callback`.
> >
> > Depending on your use case, add one or more of the following scopes to your application:
> >
> > > [tab] Secret Sync
> > >
> > > For Secret Syncs, your application will require the `api` scope:
> > >
> > > ![GitLab New Application Form](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-create-application-top-secret-sync.png)
> > >
> > > ![GitLab New Application Form](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-create-application-bottom-secret-sync.png)
> >
> > > [tab] Secret Scanning
> > >
> > > For Secret Scanning, your application will require the `api` and `read_repository` scopes:
> > >
> > > ![GitLab New Application Form](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-create-application-top-secret-scanning.png)
> > >
> > > ![GitLab New Application Form](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-create-application-bottom-secret-scanning.png)
> >
> > > [!TIP]
> > >
> > > The domain you defined in the Redirect URI should be equivalent to the `SITE_URL` configured in your Infisical instance.
> >
> > > [!NOTE]
> > >
> > > If you have a GitLab group, you can create an OAuth application under it in your group Settings > Applications.
> >
> > **2. Add your GitLab OAuth application credentials to Infisical**
> >
> > Obtain the **Application ID** and **Secret** for your GitLab OAuth application.
> >
> > ![GitLab Application Credentials](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-config-credentials.png)
> >
> > Back in your Infisical instance, add two new environment variables for the credentials of your GitLab OAuth application:
> >
> > * `INF_APP_CONNECTION_GITLAB_OAUTH_CLIENT_ID`: The **Application ID** of your GitLab OAuth application.
> > * `INF_APP_CONNECTION_GITLAB_OAUTH_CLIENT_SECRET`: The **Secret** of your GitLab OAuth application.
> >
> > Once added, restart your Infisical instance and use the GitLab Connection.
>
> ## Setup GitLab OAuth connection in Infisical
>
> **1. Navigate to App Connections**
>
> Navigate to the **Integrations** tab in the desired project, then select **App Connections**.
>
> ![App Connections Tab](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/general/add-connection.png)
>
> **2. Add Connection**
>
> Select the **GitLab Connection** option from the connection options modal.
>
> ![Select GitLab Connection](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/select-gitlab-connection.png)
>
> **3. Choose OAuth Method**
>
> Select the **OAuth** method and click **Connect to GitLab**.
>
> ![Connect via GitLab OAuth](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/create-gitlab-oauth-connection.png)
>
> **4. Grant Access**
>
> You will be redirected to GitLab to grant Infisical access to your GitLab account. Once granted, you will be redirected back to Infisical's App Connections page.
>
> ![GitLab Authorization](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-authorization-page.png)
>
> **5. Connection Created**
>
> Your **GitLab Connection** is now available for use.
>
> ![GitLab OAuth Connection](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-oauth-connection.png)

> [tab] Access Token Method
>
> The Access Token method uses a GitLab access token for authentication, providing a straightforward setup process.
>
> ## Generate GitLab access token
>
> > [tab] Personal Access Token
> >
> > Personal access tokens provide access to your GitLab account and all projects you have access to.
> >
> > **1. Navigate to Access Tokens**
> >
> > Log in to your GitLab account and navigate to User Settings > Access tokens. Click **Add new token** to create a new personal access token.
> >
> > ![GitLab Personal Access Tokens](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-add-access-token.png)
> >
> > **2. Configure Token**
> >
> > Fill in the token details:
> >
> > * **Token name**: A descriptive name for the token (e.g., "connection-token")
> >
> > * **Expiration date**: Set an appropriate expiration date
> >
> > * **Select scopes**: Depending on your use case, add one or more of the following scopes:
> >
> > > [tab] Secret Sync
> > >
> > > For Secret Syncs, your token will require the `api` scope:
> > >
> > > ![GitLab Personal Token Form](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-personal-access-token-form-secret-sync.png)
> >
> > > [tab] Secret Scanning
> > >
> > > For Secret Scanning, your token will require the `api` and `read_repository` scopes:
> > >
> > > ![GitLab Personal Token Form](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-personal-access-token-form-secret-scanning.png)
> >
> > > [!NOTE]
> > >
> > > Personal Access Token connections require manual token rotation when your GitLab access token expires or is regenerated. Monitor your connection status and update the token as needed.
> >
> > **3. Copy Token**
> >
> > Copy the generated token immediately as it won't be shown again.
> >
> > ![GitLab Personal Token Created](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-copy-token.png)
> >
> > > [!WARNING]
> > >
> > > Keep your access token secure and do not share it. Anyone with access to this token can access your GitLab account and projects.
>
> > [tab] Project Access Token
> >
> > Project access tokens provide access to a specific GitLab project, offering more granular control.
> >
> > **1. Navigate to Project Settings**
> >
> > Go to your GitLab project and navigate to Settings > Access Tokens. Click **Add new token** to create a new project access token.
> >
> > ![GitLab Project Access Tokens](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-project-access-token-list.png)
> >
> > **2. Configure Token**
> >
> > Fill in the token details:
> >
> > * **Token name**: A descriptive name for the token
> >
> > * **Expiration date**: Set an appropriate expiration date
> >
> > * **Select role and scopes**: Depending on your use case, add the required role and one or more of the following scopes:
> >
> > > [tab] Secret Sync
> > >
> > > For Secret Syncs, your token will require the `api` scope and at least the **Owner** role:
> > >
> > > ![GitLab Create Project Token](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-project-access-token-form-secret-sync.png)
> >
> > > [tab] Secret Scanning
> > >
> > > For Secret Scanning, your token will require the `api` and `read_repository` scopes and the **Maintainer** role:
> > >
> > > ![GitLab Create Project Token](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-project-access-token-form-secret-scanning.png)
> >
> > > [!NOTE]
> > >
> > > Project Access Token connections require manual token rotation when your GitLab access token expires or is regenerated. Monitor your connection status and update the token as needed.
> >
> > **3. Copy Token**
> >
> > Copy the generated token immediately as it won't be shown again.
> >
> > ![GitLab Project Token Form](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-project-access-token-created.png)
> >
> > > [!WARNING]
> > >
> > > Keep your access token secure and do not share it. Anyone with access to this token can access your GitLab account and projects.
>
> > [tab] Group Access Token
> >
> > Group access tokens provide access to all projects within a GitLab group, offering group-level control.
> >
> > **1. Navigate to Group Settings**
> >
> > Go to your GitLab group and navigate to Settings > Access Tokens. Click **Add new token** to create a new group access token.
> >
> > ![GitLab Group Access Tokens](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-group-access-token-list.png)
> >
> > **2. Configure Token**
> >
> > Fill in the token details:
> >
> > * **Token name**: A descriptive name for the token
> >
> > * **Expiration date**: Set an appropriate expiration date
> >
> > * **Select role and scopes**: Depending on your use case, add the required role and one or more of the following scopes:
> >
> > > [tab] Secret Sync
> > >
> > > For Secret Syncs, the required role depends on your sync destination:
> > >
> > > * **Project variables**: Requires **Maintainer** role or higher
> > > * **Group variables**: Requires **Owner** role
> > >
> > > Your token will require the `api` scope.
> > >
> > > ![GitLab Create Group Token](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-group-access-token-form-secret-sync.png)
> > >
> > > Click **Create group access token** to create the token.
> > >
> > > > [!NOTE]
> > > >
> > > > Use the **Owner** role if you need to sync to group-level variables. The **Maintainer** role is sufficient only for project-level variables.
> >
> > > [tab] Secret Scanning
> > >
> > > To set up Secret Scanning, the required permissions depend on the data source level:
> > >
> > > * **Project-level data source:** Requires **Maintainer** role or higher
> > > * **Group-level data source:** Requires **Owner** role
> > >
> > > Your token will require the `api` scope.
> > >
> > > ![GitLab Create Group Token](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-group-access-token-form-secret-sync.png)
> > >
> > > Click **Create group access token** to create the token.
> >
> > > [!NOTE]
> > >
> > > Group Access Token connections require manual token rotation when your GitLab access token expires or is regenerated. Monitor your connection status and update the token as needed.
> >
> > **3. Copy Token**
> >
> > Copy the generated token immediately as it won't be shown again.
> >
> > ![GitLab Group Token Created](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-group-access-token-created.png)
> >
> > > [!WARNING]
> > >
> > > Keep your access token secure and do not share it. Anyone with access to this token can access all projects within your GitLab group.
>
> ## Setup GitLab access token connection in Infisical
>
> **1. Navigate to App Connections**
>
> Navigate to the **Integrations** tab in the desired project, then select **App Connections**.
>
> ![App Connections Tab](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/general/add-connection.png)
>
> **2. Add Connection**
>
> Select the **GitLab Connection** option from the connection options modal.
>
> ![Select GitLab Connection](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/select-gitlab-connection.png)
>
> **3. Configure Access Token**
>
> Select the **Access Token** method, paste your GitLab access token in the provided field, and select the appropriate token type.
>
> ![Configure Access Token](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/create-gitlab-access-token-connection.png)
>
> Click **Connect** to establish the connection.
>
> **4. Connection Created**
>
> Your **GitLab Connection** is now available for use.
>
> ![GitLab Access Token Connection](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/app-connections/gitlab/gitlab-access-token-connection.png)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.