Skip to main content

GitLab

GitLab is an open-source version control and collaboration platform. You can bring code projects, packages, repositories, user information, and other security data from GitLab into Brinqa to enhance your organization's security and risk management capabilities, thus strengthening your cybersecurity posture.

This document details the information you must provide for the connector to authenticate with GitLab and how to obtain that information from GitLab. See create a data integration for step-by-step instructions on setting up the integration.

Required connection settings

When setting up a data integration, select GitLab from the Connector dropdown. You must provide the following information to authenticate GitLab with Brinqa:

  • ARL: The GitLab API Server URL. The default URL is https://gitlab.com.

  • Access token: The access token associated with the GitLab project, which must have permissions to log in to the API server and return data.

Obtain a GitLab access token

For the GitLab connector to access the GitLab API, you must provide a project access token. To obtain an access token, follow these steps:

  1. Log in to your organization's GitLab portal as an administrator.

  2. Navigate to the GitLab project that you want to integrate into the Brinqa Platform.

  3. Navigate to Settings > Access Tokens.

  4. Click Add new token.

    Complete the following fields:

    • Token name: Provide a name for the token.

    • Token description: Provide a description for the token.

    • Expiration date: Set an expiry date for the token.

    • Select a role: Click the dropdown and select the Developer role, as this is the minimum level of access required to retrieve data from the GitLab API.

    • Select scopes: Select the following scopes, as these are the minimum scopes required to retrieve data from the GitLab API:

      • read_api
      • read_registry
      • read_repository

      GitLab PAT

  5. Click Create project access token.

    Your new access token displays. You can not view the token again. Copy and save it to a safe and secure location.

note

If you do not have permissions to create an access token, contact your GitLab administrator. For additional information, see GitLab documentation on Access Tokens, Projects, and Permissions and Roles.

Additional settings

The GitLab connector contains additional options for specific configuration:

  • Page size: The maximum number of records to get per API request. The default setting is 100. It is not recommended to go over 100.

  • Parallel requests: The maximum number of parallel API requests. The default setting is 4.

Types of data to retrieve

The GitLab connector can retrieve the following types of data from the GitLab API:

Table 1: Data retrieved from GitLab

Connector ObjectRequiredMaps to Data Model
Code ProjectYesCode Project
Code RepositoryYesCode Repository
Open Source FindingYesOpen Source Finding
Open Source Finding DefinitionYesOpen Source Finding Definition
PackageYesPackage
PersonYesPerson
Secret Detection FindingYesStatic Code Finding
Secret Detection Finding DefinitionYesStatic Code Finding Definition
Static Code FindingYesStatic Code Finding
Static Code Finding DefinitionYesStatic Code Finding Definition
note

For detailed steps on how to view the data retrieved from GitLab in the Brinqa Platform, see How to view your data.

Attribute mappings

Expand the sections below to view the mappings between the source and the Brinqa data model attributes:

Code Project

Table 2: Code Project attribute mappings

Source Field NameSDM Attribute
archivedARCHIVED
avatarUrlAVATAR_URL
ciCdSettings.groupRunnersEnabledGROUP_RUNNERS_ENABLED
ciCdSettings.jobTokenScopeEnabledCI_JOB_TOKEN_SCOPE_ENABLED
ciCdSettings.keepLatestArtifactKEEP_LATEST_ARTIFACT
ciConfigPathOrDefaultCI_CONFIG_PATH
containerRegistryEnabledCONTAINER_REGISTRY_ENABLED
createdAtSOURCE_CREATED_DATE
Generated (always includes "Code Project")CATEGORIES
Generated (sync capture timestamp)LAST_CAPTURED
Generated (set to "active")SOURCE_STATUS
descriptionDESCRIPTION
forksCountFORKS_COUNT
forkingAccessLevel.stringValueFORKING_ACCESS_LEVEL
fullPathPATH_WITH_NAMESPACE
httpUrlToRepoHTTP_URL
idUID
importStatusIMPORT_STATUS
issuesAccessLevel.stringValueISSUES_ACCESS_LEVEL
issuesEnabledISSUES_ENABLED
jobsEnabledJOBS_ENABLED
labelsLABELS
lastActivityAtLAST_SEEN
lfsEnabledLFS_ENABLED
mergeCommitTemplateMERGE_COMMIT_TEMPLATE
mergeRequestsAccessLevel.stringValueMERGE_REQUESTS_ACCESS_LEVEL
mergeRequestsEnabledMERGE_REQUESTS_ENABLED
nameNAME
nameWithNamespaceNAME_WITH_NAMESPACE
namespaceNAMESPACE
onlyAllowMergeIfAllDiscussionsAreResolvedONLY_ALLOW_MERGE_IF_ALL_DISCUSSIONS_ARE_RESOLVED
onlyAllowMergeIfPipelineSucceedsONLY_ALLOW_MERGE_IF_PIPELINE_SUCCEEDS
allowMergeOnSkippedPipelineALLOW_MERGE_ON_SKIPPED_PIPELINE
openIssuesCountOPEN_ISSUES_COUNT
pathPATH
printingMergeRequestLinkEnabledPRINTING_MERGE_REQUEST_LINK_ENABLED
publicJobsPUBLIC_JOBS
removeSourceBranchAfterMergeREMOVE_SOURCE_BRANCH_AFTER_MERGE
repository.rootRefDEFAULT_BRANCH
requestAccessEnabledREQUEST_ACCESS_ENABLED
autocloseReferencedIssuesAUTO_CLOSE_REFERENCED_ISSUES
serviceDeskEnabledSERVICE_DESK_ENABLED
sharedRunnersEnabledSHARED_RUNNERS_ENABLED
snippetsEnabledSNIPPETS_ENABLED
squashCommitTemplateSQUASH_COMMIT_TEMPLATE
sshUrlToRepoSSH_URL
starCountSTAR_COUNT
suggestionCommitMessageSUGGESTION_COMMIT_MESSAGE
topicsTAGS
topicsTOPICS
updatedAtSOURCE_LAST_MODIFIED
visibilityVISIBILITY
webUrlURL
webUrlWEB_URL
wikiEnabledWIKI_ENABLED
Code Repository

Table 3: Code Repository attribute mappings

Source Field NameSDM Attribute
Generated (includes entry type and "Code Repository")CATEGORIES
Generated (sync capture timestamp)LAST_CAPTURED
Generated (set to "active")STATUS
idUID
modeMODE
nameNAME
pathPATH
typeREPO_TYPE
Open Source Finding

Table 4: Open Source Finding attribute mappings

Source Field NameSDM Attribute
Generated (sync capture timestamp)LAST_CAPTURED
falsePositiveFALSE_POSITIVE
idUID
location.filePATH
location.startLineLOCATION_START_LINE
location.vulnerableClassLOCATION_CLASS
location.vulnerableMethodLOCATION_METHOD
normalizeFindingStatus(state)SOURCE_STATUS
project.idTARGETS
scanner.externalIdSCANNER_EXTERNAL_ID
scanner.nameSCANNER_NAME
scanner.vendorSCANNER_VENDOR
statePROVIDER_STATUS
titleTYPE
Open Source Finding Definition

Table 5: Open Source Finding Definition attribute mappings

Source Field NameSDM Attribute
Generated (sync capture timestamp)LAST_CAPTURED
descriptionDESCRIPTION
identifiers[].externalId (where externalType=cve)CVE_IDS
identifiers[].externalId (where externalType=cve)CVE_RECORDS
identifiers[].externalId (where externalType=cwe)CWE_IDS
identifiers[].externalId (where externalType=cwe)WEAKNESSES
normalizeFindingSeverity(severity)SEVERITY
reportTypeCATEGORIES
severitySOURCE_SEVERITY
getFindingSeverityScore(severity)SEVERITY_SCORE
solutionRECOMMENDATION
titleNAME
titleUID
Package

Table 6: Package attribute mappings

Source Field NameSDM Attribute
_links.webPathLINKS_WEB_PATH
createdAtSOURCE_CREATED_DATE
Generated (sync capture timestamp)LAST_CAPTURED
idUID
nameNAME
normalizeAssetStatus(status)SOURCE_STATUS
packageTypeCATEGORIES
pipeline.createdAtPIPELINE_CREATED_AT
pipeline.iidPIPELINE_IID
pipeline.projectIdPIPELINE_PROJECT_ID
pipeline.refPIPELINE_REF
pipeline.shaPIPELINE_SHA
pipeline.sourcePIPELINE_SOURCE
pipeline.statusPIPELINE_STATUS
pipeline.user.usernamePIPELINE_USERNAME
pipelinesPIPELINES
pipelines.idPIPELINE_ID
pipelines.updatedAtPIPELINE_UPDATED_AT
pipelines.user.idPIPELINE_USER_ID
statusPACKAGE_STATUS
tagsTAGS
versionLATEST_VERSION
Person

Table 7: Person attribute mappings

Source Field NameSDM Attribute
accessLevel.integerValueACCESS_LEVEL
createdAtSOURCE_CREATED_DATE
createdBy.idCREATED_BY
createdBy.usernameOWNER
expiresAtEXPIRES_AT
Generated (sync capture timestamp)LAST_CAPTURED
membershipStateMEMBERSHIP_STATE
user.avatarUrlAVATAR_URL
user.idUID
user.nameNAME
user.stateSTATE
user.usernameUSERNAME
user.webUrlWEB_URL
Secret Detection Finding

Table 8: Secret Detection Finding attribute mappings

Source Field NameSDM Attribute
Generated (sync capture timestamp)LAST_CAPTURED
falsePositiveFALSE_POSITIVE
idUID
location.filePATH
location.startLineLOCATION_START_LINE
location.vulnerableClassLOCATION_CLASS
location.vulnerableMethodLOCATION_METHOD
normalizeFindingStatus(state)SOURCE_STATUS
project.idTARGETS
scanner.externalIdSCANNER_EXTERNAL_ID
scanner.nameSCANNER_NAME
scanner.vendorSCANNER_VENDOR
statePROVIDER_STATUS
titleTYPE
Secret Detection Finding Definition

Table 9: Secret Detection Finding Definition attribute mappings

Source Field NameSDM Attribute
Generated (sync capture timestamp)LAST_CAPTURED
descriptionDESCRIPTION
identifiers[].externalId (where externalType=cve)CVE_IDS
identifiers[].externalId (where externalType=cve)CVE_RECORDS
identifiers[].externalId (where externalType=cwe)CWE_IDS
identifiers[].externalId (where externalType=cwe)WEAKNESSES
normalizeFindingSeverity(severity)SEVERITY
reportTypeCATEGORIES
severitySOURCE_SEVERITY
getFindingSeverityScore(severity)SEVERITY_SCORE
solutionRECOMMENDATION
titleNAME
titleUID
Static Code Finding

Table 10: Static Code Finding attribute mappings

Source Field NameSDM Attribute
Generated (sync capture timestamp)LAST_CAPTURED
falsePositiveFALSE_POSITIVE
idUID
location.filePATH
location.startLineLOCATION_START_LINE
location.vulnerableClassLOCATION_CLASS
location.vulnerableMethodLOCATION_METHOD
normalizeFindingStatus(state)SOURCE_STATUS
project.idTARGETS
scanner.externalIdSCANNER_EXTERNAL_ID
scanner.nameSCANNER_NAME
scanner.vendorSCANNER_VENDOR
statePROVIDER_STATUS
titleTYPE
Static Code Finding Definition

Table 11: Static Code Finding Definition attribute mappings

Source Field NameSDM Attribute
Generated (sync capture timestamp)LAST_CAPTURED
descriptionDESCRIPTION
identifiers[].externalId (where externalType=cve)CVE_IDS
identifiers[].externalId (where externalType=cve)CVE_RECORDS
identifiers[].externalId (where externalType=cwe)CWE_IDS
identifiers[].externalId (where externalType=cwe)WEAKNESSES
normalizeFindingSeverity(severity)SEVERITY
reportTypeCATEGORIES
severitySOURCE_SEVERITY
getFindingSeverityScore(severity)SEVERITY_SCORE
solutionRECOMMENDATION
titleNAME
titleUID
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Operation options

The GitLab connector supports the following operation options. See connector operation options for information about how to apply them.

Table 12: GitLab connector operation options

Connector ObjectOptionAll Possible ValuesDescriptionExample
Code Projectvisibilitypublic, internal, privateFilter retrieved code projects by their visibility level, as determined by GitLab.Key: visibility Value: private. This key and value combination only retrieves private code projects.
Code RepositorypathAny code repository pathLimit the retrieval of code repositories from the specified path within the repository.Key: path Value: src/main. This key and value combination only retrieves code repositories within the src/main path.
recursivetrue, falseRecurse into subdirectories when retrieving repository content.Key: recursive Value: true. This key and value combination retrieves the content recursively within all subdirectories.
refAny code repository branch or tag nameSpecify the Git ref (branch or tag) to retrieve repository content from.Key: ref Value: main. This key and value combination retrieves code repositories from the main branch.
Open Source Finding,
Open Source Finding Definition
projectFullPathComma-separated list of GitLab project full pathsScope finding sync to only the specified projects, bypassing full project enumeration.Key: projectFullPath Value: my-group/my-project, my-group/other-project. This key and value combination only retrieves findings from the specified projects.
severityINFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICALFilter retrieved vulnerabilities by severity level.Key: severity Value: HIGH,CRITICAL. This key and value combination only retrieves high and critical vulnerabilities.
PackagestatusDEFAULT, HIDDEN, PROCESSING, ERROR, PENDING_DESTRUCTIONFilter retrieved packages by their status, as determined by GitLab.Key: status Value: DEFAULT. This key and value combination only retrieves packages with the default status.
Secret Detection Finding,
Secret Detection Finding Definition
projectFullPathComma-separated list of GitLab project full pathsScope secret detection finding sync to only the specified projects, bypassing full project enumeration.Key: projectFullPath Value: my-group/my-project. This key and value combination only retrieves secret detection findings from the specified project.
severityINFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICALFilter retrieved secret detection vulnerabilities by severity level.Key: severity Value: HIGH,CRITICAL. This key and value combination only retrieves high and critical secret detection vulnerabilities.
Static Code Finding,
Static Code Finding Definition
projectFullPathComma-separated list of GitLab project full pathsScope SAST finding sync to only the specified projects, bypassing full project enumeration.Key: projectFullPath Value: my-group/my-project. This key and value combination only retrieves SAST findings from the specified project.
severityINFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICALFilter retrieved SAST vulnerabilities by severity level.Key: severity Value: HIGH,CRITICAL. This key and value combination only retrieves high and critical SAST vulnerabilities.
note

The option keys and values are case-sensitive as they are shown in this documentation.

APIs

The GitLab connector uses the GitLab GraphQL API. Specifically, it uses the following endpoint:

Table 13: GitLab API Endpoints

Connector ObjectAPI Endpoint
Code ProjectPOST /api/graphql
Code RepositoryPOST /api/graphql
Open Source FindingPOST /api/graphql
Open Source Finding DefinitionPOST /api/graphql
PackagePOST /api/graphql
PersonPOST /api/graphql
Secret Detection FindingPOST /api/graphql
Secret Detection Finding DefinitionPOST /api/graphql
Static Code FindingPOST /api/graphql
Static Code Finding DefinitionPOST /api/graphql

Changelog

The GitLab connector has undergone the following changes:

Table 14: GitLab connector changelog

VersionDescriptionDate Published
3.1.2Improvements
- Custom attributes on the Code Project and Package models now register with the correct cross-connector consolidation priority (via the shared attribute helper), so connector-sourced values are consolidated consistently rather than treated as independent.
Bug Fixes
- Corrected the Package model's pipeline ID attributes ("Pipeline ID", "Pipeline project ID", "Pipeline user id") from numbers to text. GitLab returns these IDs as strings, so writing them into numeric attributes caused the Package sync to fail with an attribute type mismatch whenever a package had an associated pipeline. ("Pipeline IID" is genuinely numeric and is unchanged.)
Migration Required
- 'Package': the "Pipeline ID", "Pipeline project ID", and "Pipeline user id" attributes changed from numbers to text. Re-sync the GitLab connector to repopulate packages with the corrected type.
June 9th, 2026
3.1.1Added support for secret detection findings. The connector can now independently synchronize GitLab secret detection vulnerabilities as separate Secret Detection Finding and Secret Detection Finding Definition models. No migration required.May 27th, 2026
3.0.2Added the LABELS attribute to the Code Project object.November 30th, 2024
3.0.1Changed the CREATED_BY attribute type on the Person object from integer to string.August 15th, 2024
3.0.0Initial Integration+ release.July 17th, 2024