---
title: "POST /api/v2/secret-scanning/data-sources/gitlab"
method: POST
path: "/api/v2/secret-scanning/data-sources/gitlab"
tags: ["Secret Scanning"]
---

# POST /api/v2/secret-scanning/data-sources/gitlab

`POST /api/v2/secret-scanning/data-sources/gitlab`

Create a GitLab Data Source for the specified project.

## Request body

- object
  - `name` string, required — The name of the GitLab Data Source to create. Must be slug-friendly.
  - `projectId` string, required — The ID of the project to create the GitLab Data Source in.
  - `description` string, nullable — An optional description for the GitLab Data Source.
  - `connectionId` string, uuid, required — The ID of the GitLab Connection to use for this Data Source.
  - `isAutoScanEnabled` boolean — Whether scans should be automatically performed when a push occurs to projects associated with this Data Source.
  - `config` union, required
    - object
      - `scope` 'group', required — The GitLab scope scanning should occur at (project or group level).
      - `groupId` number, required — The ID of the group to scan projects from.
      - `groupName` string — The name of the group to scan projects from.
      - `includeProjects` string[] — The projects to include when scanning. Defaults to all projects (["*"]).
    - object
      - `scope` 'project', required — The GitLab scope scanning should occur at (project or group level).
      - `projectName` string — The name of the project to scan.
      - `projectId` number, required — The ID of the project to scan.

## Response `200`

Default Response

- object
  - `dataSource` object, required
    - `id` string, uuid, required
    - `externalId` string, nullable
    - `name` string, required
    - `description` string, nullable
    - `encryptedCredentials` unknown
    - `isAutoScanEnabled` boolean, nullable
    - `projectId` string, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `isDisconnected` boolean
    - `type` 'gitlab', required
    - `connectionId` string, uuid, required
    - `connection` object, required
      - `app` 'gitlab', required
      - `name` string, required
      - `id` string, uuid, required
    - `config` union, required
      - object
        - `scope` 'group', required — The GitLab scope scanning should occur at (project or group level).
        - `groupId` number, required — The ID of the group to scan projects from.
        - `groupName` string — The name of the group to scan projects from.
        - `includeProjects` string[] — The projects to include when scanning. Defaults to all projects (["*"]).
      - object
        - `scope` 'project', required — The GitLab scope scanning should occur at (project or group level).
        - `projectName` string — The name of the project to scan.
        - `projectId` number, required — The ID of the project to scan.

## Other responses

- `400` — Default Response
- `401` — Default Response
- `403` — Default Response
- `404` — Default Response
- `422` — Default Response
- `500` — Default Response

---

[API](https://skmtc.net/infisical/apis/infisical-api.md) · [All operations](https://skmtc.net/infisical/apis/infisical-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/infisical/infisical-api/versions/885aef3e6c11/schema)
