--- title: "GitLab Connection" description: "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. The OAuth method provides secure authentication through GitLab's OAuth flow. 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. **Prerequisites:** - A GitLab account with existing projects - Self-hosted Infisical instance Navigate to your user Settings > Applications to create a new GitLab application. ![GitLab Dashboard](/images/app-connections/gitlab/gitlab-dashboard.png) ![GitLab Applications Settings](/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: For Secret Syncs, your application will require the `api` scope: ![GitLab New Application Form](/images/app-connections/gitlab/gitlab-create-application-top-secret-sync.png) ![GitLab New Application Form](/images/app-connections/gitlab/gitlab-create-application-bottom-secret-sync.png) For Secret Scanning, your application will require the `api` and `read_repository` scopes: ![GitLab New Application Form](/images/app-connections/gitlab/gitlab-create-application-top-secret-scanning.png) ![GitLab New Application Form](/images/app-connections/gitlab/gitlab-create-application-bottom-secret-scanning.png) The domain you defined in the Redirect URI should be equivalent to the `SITE_URL` configured in your Infisical instance. If you have a GitLab group, you can create an OAuth application under it in your group Settings > Applications. Obtain the **Application ID** and **Secret** for your GitLab OAuth application. ![GitLab Application Credentials](/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 Navigate to the **App Connections** page in the desired project. ![App Connections Tab](/images/app-connections/general/add-connection.png) Select the **GitLab Connection** option from the connection options modal. ![Select GitLab Connection](/images/app-connections/gitlab/select-gitlab-connection.png) Select the **OAuth** method and click **Connect to GitLab**. ![Connect via GitLab OAuth](/images/app-connections/gitlab/create-gitlab-oauth-connection.png) 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](/images/app-connections/gitlab/gitlab-authorization-page.png) Your **GitLab Connection** is now available for use. ![GitLab OAuth Connection](/images/app-connections/gitlab/gitlab-oauth-connection.png) The Access Token method uses a GitLab access token for authentication, providing a straightforward setup process. ## Generate GitLab Access Token Personal access tokens provide access to your GitLab account and all projects you have access to. 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](/images/app-connections/gitlab/gitlab-add-access-token.png) 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: For Secret Syncs, your token will require the `api` scope: ![GitLab Personal Token Form](/images/app-connections/gitlab/gitlab-personal-access-token-form-secret-sync.png) For Secret Scanning, your token will require the `api` and `read_repository` scopes: ![GitLab Personal Token Form](/images/app-connections/gitlab/gitlab-personal-access-token-form-secret-scanning.png) 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. Copy the generated token immediately as it won't be shown again. ![GitLab Personal Token Created](/images/app-connections/gitlab/gitlab-copy-token.png) Keep your access token secure and do not share it. Anyone with access to this token can access your GitLab account and projects. Project access tokens provide access to a specific GitLab project, offering more granular control. 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](/images/app-connections/gitlab/gitlab-project-access-token-list.png) 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: For Secret Syncs, your token will require the `api` scope and at least the **Owner** role: ![GitLab Create Project Token](/images/app-connections/gitlab/gitlab-project-access-token-form-secret-sync.png) For Secret Scanning, your token will require the `api` and `read_repository` scopes and the **Maintainer** role: ![GitLab Create Project Token](/images/app-connections/gitlab/gitlab-project-access-token-form-secret-scanning.png) 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. Copy the generated token immediately as it won't be shown again. ![GitLab Project Token Form](/images/app-connections/gitlab/gitlab-project-access-token-created.png) Keep your access token secure and do not share it. Anyone with access to this token can access your GitLab account and projects. ## Setup GitLab Access Token Connection in Infisical Navigate to the **App Connections** page in the desired project. ![App Connections Tab](/images/app-connections/general/add-connection.png) Select the **GitLab Connection** option from the connection options modal. ![Select GitLab Connection](/images/app-connections/gitlab/select-gitlab-connection.png) Select the **Access Token** method, paste your GitLab access token in the provided field, and select the appropriate token type. ![Configure Access Token](/images/app-connections/gitlab/create-gitlab-access-token-connection.png) Click **Connect** to establish the connection. Your **GitLab Connection** is now available for use. ![GitLab Access Token Connection](/images/app-connections/gitlab/gitlab-access-token-connection.png)