GitLab
Visualize GitLab users, groups, code repositories, and merge requests, map GitLab users to employees and development/security trainings, and monitor changes through queries and alerts.
- Installation
- Authorization
- Data Model
- Types
- Release Notes
Installation
To use this integration, JupiterOne requires a GitLab personal access token configured with read access (read_api scope) and
the API base URL, such as https://gitlab.com).
Configuration in JupiterOne
To install the GitLab integration in JupiterOne, navigate to the Integrations tab in JupiterOne and select GitLab. Click New Instance to begin configuring your integration.
Creating an instance requires the following:
-
Account Name by which you'd like to identify this GitLab account in JupiterOne. Ingested entities will have this value stored in
tag.AccountNamewhen Tag with Account Name is selected. -
Description that will further assist your team when identifying the integration instance.
-
Polling Interval that you feel is sufficient for your monitoring needs. You may leave this as
DISABLEDand manually execute the integration. -
Personal Access Token configured for read access in GitLab.
Once your token has expired, the integration will no longer run successfully, and the token will be revoked from your GitLab account. You will need to create another token to replace the expired one.
- Your GitLab API Base URL (e.g.,
https://gitlab.com, or your self-managed instance URL).
Data Volume Configuration
Control how much data is ingested from GitLab to manage storage and processing.
Ingestion Windows (Time Ranges)
| Field | Description | Default | Options |
|---|---|---|---|
| Merge Requests Ingestion Window | Ingestion window for updated merge requests (days ago) | 90 | 90, 180, 275, 365 |
How it affects data volume: Longer windows increase the number of merge requests ingested from GitLab.
Data Filtering Options
| Field | Type | Description | Default |
|---|---|---|---|
| Included Vulnerability Severities | Multi-select | Select vulnerability severities to ingest | Medium, High, Critical |
| Included Vulnerability States | Multi-select | Select vulnerability states to ingest | Confirmed, Detected |
| Included Vulnerability Report Types | Multi-select | Select vulnerability report types to ingest | None (all disabled by default) |
| Ingest Regular Users Only | Boolean | Skip all bot accounts including project and group bots | false |
How it affects data volume:
- Severity filtering reduces vulnerabilities by excluding lower-severity findings. By default, only Medium, High, and Critical severabilities are ingested.
- State filtering limits vulnerabilities to selected states. By default, only Confirmed and Detected vulnerabilities are ingested (Dismissed and Resolved are excluded).
- Report type filtering allows selecting specific vulnerability scan types (SAST, DAST, Container Scanning, etc.). By default, all types are disabled and must be explicitly enabled.
- User filtering, when enabled, excludes bot accounts from ingestion, reducing the number of user entities.
Click Create after all values are provided to finalize the integration.
Next steps
Now that your integration instance has been configured, it will begin running on the polling interval you provided, populating data within JupiterOne. Continue on to our Instance management guide to learn more about working with and editing integration instances.
Roles
RBAC roles that must be assigned to the integration principal.
Show Roles (6)
AdministratorDeveloperGuestMaintainerOwnerReporter
OAuth Scopes
OAuth scopes that must be granted to the application or service principal.
Show OAuth Scopes (2)
read_apiread_user
Endpoints
API endpoints that the integration makes requests to.
Show Endpoints (19)
/api/graphql/api/v4/groups/:id/access_tokens/api/v4/groups/:id/deploy_tokens/api/v4/groups/:id/variables/api/v4/personal_access_tokens/api/v4/projects/:id/api/v4/projects/:id/access_tokens/api/v4/projects/:id/approval_rules/api/v4/projects/:id/approvals/api/v4/projects/:id/deploy_tokens/api/v4/projects/:id/pipelines/api/v4/projects/:id/pipelines/:pipeline_id/api/v4/projects/:id/pipelines/:pipeline_id/jobs/api/v4/projects/:id/protected_branches/api/v4/projects/:id/push_rule/api/v4/projects/:id/variables/api/v4/projects/:id/vulnerability_findings/api/v4/users/api/v4/users/:id
Documentation Links
Links to provider documentation relevant to setup and configuration.
Show Documentation Links (22)
- https://docs.gitlab.com/api/deploy_tokens/
- https://docs.gitlab.com/api/group_access_tokens/
- https://docs.gitlab.com/api/merge_request_approvals/
- https://docs.gitlab.com/api/personal_access_tokens/
- https://docs.gitlab.com/api/project_access_tokens/
- https://docs.gitlab.com/api/project_push_rules/
- https://docs.gitlab.com/api/projects/
- https://docs.gitlab.com/api/protected_branches/
- https://docs.gitlab.com/ee/api/graphql/reference/#groups
- https://docs.gitlab.com/ee/api/graphql/reference/#mergerequestcommits
- https://docs.gitlab.com/ee/api/graphql/reference/#projectbranchrules
- https://docs.gitlab.com/ee/api/graphql/reference/#querycurrentuser
- https://docs.gitlab.com/ee/api/graphql/reference/#querymetadata
- https://docs.gitlab.com/ee/api/group_level_variables.html
- https://docs.gitlab.com/ee/api/jobs.html
- https://docs.gitlab.com/ee/api/labels.html
- https://docs.gitlab.com/ee/api/merge_requests.html
- https://docs.gitlab.com/ee/api/pipelines.html
- https://docs.gitlab.com/ee/api/project_level_variables.html
- https://docs.gitlab.com/ee/api/projects.html
- https://docs.gitlab.com/ee/api/users.html
- https://docs.gitlab.com/ee/api/vulnerability_findings.html
Per-Step Breakdown
Detailed authorization requirements for each ingestion step.
Show all steps (19)
| Step | Roles | OAuth Scopes | Endpoints |
|---|---|---|---|
| Fetch Approval Rules | Developer | read_api | /api/v4/projects/:id/approval_rules |
| Fetch Branch Rules | Maintainer | read_api | /api/graphql |
| Fetch CI jobs | Reporter | read_api | /api/v4/projects/:id/pipelines/:pipeline_id/jobs |
| Fetch CI/CD variables | Maintainer, Owner | read_api | /api/v4/projects/:id/variables, /api/v4/groups/:id/variables |
| Fetch group access tokens | Owner | read_api | /api/v4/groups/:id/access_tokens |
| Fetch group deploy tokens | Maintainer, Owner | read_api | /api/v4/groups/:id/deploy_tokens |
| Fetch merge requests | Reporter | read_api | /api/graphql |
| Fetch MR commits | Reporter | read_api | /api/graphql |
| Fetch personal access tokens | Administrator | read_api | /api/v4/personal_access_tokens |
| Fetch pipelines | Reporter | read_api | /api/v4/projects/:id/pipelines, /api/v4/projects/:id/pipelines/:pipeline_id |
| Fetch project access tokens | Maintainer, Owner | read_api | /api/v4/projects/:id/access_tokens |
| Fetch Project Config | Developer | read_api | /api/v4/projects/:id, /api/v4/projects/:id/approvals |
| Fetch project deploy tokens | Maintainer, Owner | read_api | /api/v4/projects/:id/deploy_tokens |
| Fetch Project Labels | Guest | read_api | /api/graphql |
| Fetch Project Push Rules | Maintainer | read_api | /api/v4/projects/:id/push_rule |
| Fetch projects | Guest | read_api | /api/graphql |
| Fetch Protected Branches | Developer | read_api | /api/v4/projects/:id/protected_branches |
| Fetch users | Reporter | read_user, read_api | /api/graphql, /api/v4/users, /api/v4/users/:id |
| Fetch Vulnerability Findings | Developer | read_api | /api/graphql, /api/v4/projects/:id/vulnerability_findings |
Entities
The following entities are created:
| Resources | Entity _type | Entity _class |
|---|---|---|
| Account | gitlab_account | Account |
| Approval Rule | gitlab_approval_rule | Rule |
| Branch Rule | gitlab_branch_rule | Rule |
| CI Job | gitlab_ci_job | Task |
| CI/CD Variable | gitlab_secret | Secret |
| Commit | gitlab_commit | CodeCommit |
| Deploy Token | gitlab_deploy_token | AccessKey |
| Finding | gitlab_finding | Finding |
| Group | gitlab_group | Group |
| Group Access Token | gitlab_group_access_token | AccessKey |
| Label | gitlab_label | Record |
| Merge Request | gitlab_merge_request | CodeReview, PR |
| NHI User | gitlab_user | User, NHI |
| Personal Access Token | gitlab_personal_access_token | AccessKey |
| Pipeline | gitlab_pipeline | Workflow |
| Project | gitlab_project | CodeRepo, Project |
| Project Access Token | gitlab_project_access_token | AccessKey |
| Project Setting | gitlab_project_setting | Configuration |
| Push Rule | gitlab_push_rule | Configuration |
| User | gitlab_user | User |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
|---|---|---|
gitlab_account | HAS | gitlab_group |
gitlab_account | HAS | gitlab_project |
gitlab_approval_rule | ALLOWS | gitlab_user |
gitlab_approval_rule | ALLOWS | gitlab_group |
gitlab_branch_rule | ALLOWS | gitlab_user |
gitlab_branch_rule | ALLOWS | gitlab_group |
gitlab_group | HAS | gitlab_group |
gitlab_group | HAS | gitlab_project |
gitlab_group | HAS | gitlab_user |
gitlab_group | HAS | gitlab_secret |
gitlab_group | HAS | gitlab_group_access_token |
gitlab_group | HAS | gitlab_deploy_token |
gitlab_merge_request | HAS | gitlab_commit |
gitlab_merge_request | HAS | gitlab_pipeline |
gitlab_pipeline | HAS | gitlab_ci_job |
gitlab_project | HAS | gitlab_user |
gitlab_project | HAS | gitlab_finding |
gitlab_project | HAS | gitlab_merge_request |
gitlab_project | HAS | gitlab_label |
gitlab_project | HAS | gitlab_branch_rule |
gitlab_project | HAS | gitlab_push_rule |
gitlab_project | HAS | gitlab_project_setting |
gitlab_project | HAS | gitlab_approval_rule |
gitlab_project | HAS | gitlab_pipeline |
gitlab_project | HAS | gitlab_secret |
gitlab_project | HAS | gitlab_project_access_token |
gitlab_project | HAS | gitlab_deploy_token |
gitlab_user | APPROVED | gitlab_merge_request |
gitlab_user | OPENED | gitlab_merge_request |
gitlab_user | HAS | gitlab_personal_access_token |
Gitlab Account
gitlab_account inherits from Account
| Property | Type | Description | Specifications |
|---|---|---|---|
enterprise * | boolean | ||
id * | string | ||
name * | string | ||
revision * | string | ||
vendor * | string | ||
version * | string |
Gitlab Approval Rule
gitlab_approval_rule inherits from Rule
| Property | Type | Description | Specifications |
|---|---|---|---|
approvalsRequired | number | null | Number of approvals this rule requires (API approvals_required). | |
isAppliedToAllProtectedBranches | boolean | null | Whether the rule applies to all protected branches (API applies_to_all_protected_branches). | |
isContainingHiddenGroups | boolean | null | Whether the rule includes groups the token cannot see (API contains_hidden_groups). | |
protectedBranches | array | null | Names of protected branches this rule applies to (API protected_branches[].name). | |
reportType | string | null | Report type for report_approver rules (API report_type). | |
ruleType | string | null | Approval rule type: regular, code_owner, report_approver or any_approver (API rule_type). |
Gitlab Branch Rule
gitlab_branch_rule inherits from Rule
| Property | Type | Description | Specifications |
|---|---|---|---|
allowForcePush | boolean | null | Whether force push is allowed on matching branches. | |
codeOwnerApprovalRequired | boolean | null | Whether merges to matching branches require code owner approval (Premium/Ultimate). | |
createdOn | number | ||
id * | string | ||
isDefault | boolean | null | Whether the rule protects the project default branch (GraphQL only). | |
isInherited | boolean | null | Whether the protection is inherited from the parent group and cannot be changed at project level (REST inherited, Premium/Ultimate). | |
isProtected * | boolean | ||
matchingBranchesCount | number | null | Number of existing branches that match the rule (GraphQL only). | |
mergeAccessLevelDescriptions | array | null | Human-readable descriptions of every merge access entry, including user and group grants. | |
mergeAccessLevels | array | null | Role access levels allowed to merge (0 = No one, 30 = Developer, 40 = Maintainer, 60 = Admin). | |
name * | string | ||
pushAccessDeployKeyIds | array | null | Deploy key ids allowed to push (push_access_levels[].deploy_key_id). | |
pushAccessLevelDescriptions | array | null | Human-readable descriptions of every push access entry, including user and group grants. | |
pushAccessLevels | array | null | Role access levels allowed to push and merge (0 = No one, 30 = Developer, 40 = Maintainer, 60 = Admin). Individual user and group grants are ALLOWS relationships to gitlab_user / gitlab_group. | |
unprotectAccessLevelDescriptions | array | null | Human-readable descriptions of every unprotect access entry, including user and group grants. | |
unprotectAccessLevels | array | null | Role access levels allowed to unprotect the branch. | |
updatedOn | number |
Gitlab Ci Job
gitlab_ci_job inherits from Task
| Property | Type | Description | Specifications |
|---|---|---|---|
artifactFileTypes | array of strings | List of artifact file types produced by the job (e.g. archive, metadata, trace). | |
artifactsExpireOn | number | Timestamp when this job's artifacts expire. | |
coverage | number | Reported test coverage percentage for the job, if configured. | |
duration | number | Job execution duration in seconds. | |
erasedOn | number | Timestamp the job log was erased, if it was (audit signal). | |
failureReason | string | GitLab-provided enum describing why the job failed (e.g. script_failure, runner_system_failure). | |
finishedOn | number | Timestamp the job finished (epoch millis). | |
hasArtifacts | boolean | True when the job produced one or more artifacts. | |
isAllowedToFail | boolean | True if the job is permitted to fail without failing the pipeline. | |
isArchived | boolean | True when the job has been archived. | |
isRunnerActive | boolean | True when the runner is active. | |
isRunnerShared | boolean | True when the runner is shared (cross-project pool). | |
isTag | boolean | True when the job ran for a Git tag. | |
pipelineId * | number | Numeric ID of the pipeline this job belongs to. | |
projectId * | number | Numeric ID of the project this job belongs to. Used in _key for global uniqueness. | |
queuedDuration | number | Time the job spent queued before starting, in seconds. | |
ref | string | Branch or tag this job ran against. | |
runnerDescription | string | Human-readable description of the runner that executed the job. | |
runnerId | number | Numeric ID of the runner that executed the job (if any). | |
runnerType | string | Runner scope: instance_type, group_type, or project_type. | |
sha | string | Commit SHA the job ran against. | |
source | string | Trigger source for the parent pipeline (push, schedule, merge_request_event, ...). | |
stage | string | CI stage the job belongs to (e.g. build, test, deploy). | |
startedOn | number | Timestamp the job started executing (epoch millis). | |
tagList | array of strings | Runner tags requested by the job (.gitlab-ci.yml tags). | |
userId | number | Numeric ID of the user who triggered the job. | |
userUsername | string | Username of the user who triggered the job. |
Gitlab Commit
gitlab_commit inherits from CodeCommit
| Property | Type | Description | Specifications |
|---|---|---|---|
authoredOn | number | ||
authorEmail | string | ||
authorName | string | ||
branch * | string | ||
committedOn | number | ||
committerEmail | string | ||
committerName | string | ||
commitWebLink * | string | ||
createdOn | number | deprecated: true | |
id * | string | ||
merge * | boolean | ||
message * | string | ||
name * | string | ||
shortId * | string | ||
title | string | ||
versionBump * | boolean | ||
webLink * | string |
Gitlab Deploy Token
gitlab_deploy_token inherits from AccessKey
| Property | Type | Description | Specifications |
|---|---|---|---|
isExpired * | boolean | null | When true, GitLab has computed the token as past its expiry. Supports stale-token detection. | |
isRevoked * | boolean | null | When true, the token has been revoked. | |
scopes * | array | null | The scopes granted to this token (e.g. "read_repository", "read_registry"). Registry/repo write access is high-risk. | |
username * | string | The username the deploy token authenticates as (e.g. "gitlab+deploy-token-1"). |
Gitlab Finding
gitlab_finding inherits from Finding
| Property | Type | Description | Specifications |
|---|---|---|---|
createVulnerabilityFeedbackDismissalPath * | string | deprecated: true | |
createVulnerabilityFeedbackIssuePath * | string | deprecated: true | |
createVulnerabilityFeedbackMergeRequestPath * | string | deprecated: true | |
description | string | ||
dismissalFeedback | string | deprecated: true | |
dismissalReason | string | ||
falsePositive | boolean | ||
identifiers | array of strings | ||
links | array of strings | ||
projectFingerprint | string | deprecated: true | |
reportType | string | ||
scanner.externalId | string | ||
scanner.name | string | ||
scanner.vendor | string | ||
solution | string | ||
state | string | ||
uuid | string | ||
vulnerabilityPath | string |
Gitlab Group
gitlab_group inherits from Group
| Property | Type | Description | Specifications |
|---|---|---|---|
autoDevopsEnabled | boolean | ||
createdOn | number | ||
description | string | ||
emailsDisabled | boolean | ||
fullName * | string | ||
fullPath * | string | ||
id * | string | ||
lfsEnabled | boolean | ||
mentionsDisabled | boolean | ||
name * | string | ||
parentGroupId | string | ||
path * | string | ||
projectCreationLevel | string | ||
requestAccessEnabled | boolean | ||
requireTwoFactorAuthentication | boolean | ||
shareWithGroupLock | boolean | ||
subgroupCreationLevel | string | ||
twoFactorGracePeriod | number | ||
visibility | string | ||
webUrl * | string |
Gitlab Group Access Token
gitlab_group_access_token inherits from AccessKey
| Property | Type | Description | Specifications |
|---|---|---|---|
accessLevel * | number | null | The role the token holds on the group: 10 Guest, 15 Planner, 20 Reporter, 25 Security Manager, 30 Developer, 40 Maintainer, 50 Owner. | |
isRevoked * | boolean | null | When true, the token has been revoked. | |
lastUsedOn * | number | null | Timestamp the token was last used (epoch millis), or null if never used. | |
scopes * | array | null | The scopes granted to this token (e.g. "api", "read_repository"). | |
userId * | string | The id of the bot user GitLab created to back this group access token. |
Gitlab Label
gitlab_label inherits from Record
| Property | Type | Description | Specifications |
|---|---|---|---|
color * | string | ||
description | string | ||
id * | string | ||
lockOnMerge * | boolean | ||
name * | string | ||
textColor * | string |
Gitlab Merge Request
gitlab_merge_request inherits from CodeReview, PR
| Property | Type | Description | Specifications |
|---|---|---|---|
allowCollaboration | boolean | ||
approved * | boolean | ||
approverIds * | array of strings | ||
approverLogins * | array of strings | ||
approvers * | array of strings | ||
authorId | string | ||
authorLogin | string | ||
authorName | string | ||
closedOn | number | ||
commitWebLink | string | ||
createdOn | number | ||
forceRemoveSourceBranch | boolean | ||
id * | string | ||
iid * | string | ||
mergeCommitSha | string | ||
mergedOn | number | ||
mergeWhenPipelineSucceeds | boolean | ||
name * | string | ||
projectId * | number | ||
repository * | string | ||
sha | string | ||
shouldRemoveSourceBranch | boolean | ||
source * | string | ||
squash * | boolean | ||
state * | string | ||
target * | string | ||
title * | string | ||
updatedOn | number | ||
webLink | string |
Gitlab Personal Access Token
gitlab_personal_access_token inherits from AccessKey
| Property | Type | Description | Specifications |
|---|---|---|---|
isRevoked * | boolean | null | When true, the token has been revoked. | |
lastUsedOn * | number | null | Timestamp the token was last used (epoch millis), or null if never used. Supports dormant-credential review. | |
scopes * | array | null | The scopes granted to this token (e.g. "api", "read_api"). Drives privilege / blast-radius analysis. |
Gitlab Pipeline
gitlab_pipeline inherits from Workflow
| Property | Type | Description | Specifications |
|---|---|---|---|
beforeSha | string | Previous commit SHA prior to the pipeline run. | |
committedOn | number | Timestamp of the commit that triggered the pipeline (epoch millis). | |
coverage | number | Reported test coverage percentage (0-100), if a coverage parser is configured. | |
duration | number | Pipeline execution duration in seconds. | |
finishedOn | number | Timestamp the pipeline finished (epoch millis). | |
iid | string | Project-internal pipeline number (visible in GitLab UI). | |
isArchived | boolean | True when the pipeline has been archived. | |
isTag | boolean | True when the pipeline ran for a Git tag rather than a branch. | |
projectId * | number | Numeric ID of the project this pipeline belongs to. Used in _key for global uniqueness. | |
queuedDuration | number | Time the pipeline spent queued before starting, in seconds. | |
ref | string | Branch or tag name this pipeline ran against. | |
sha | string | Head commit SHA the pipeline ran against. | |
source | string | Trigger source (push, web, schedule, api, merge_request_event, etc.). | |
startedOn | number | Timestamp the pipeline started running (epoch millis). | |
triggeredByUserId | number | Numeric ID of the user who triggered the pipeline. | |
triggeredByUsername | string | Username of the user who triggered the pipeline. | |
yamlErrors | string | YAML parse/validation errors that prevented the pipeline from running, if any. |
Gitlab Project
gitlab_project inherits from CodeRepo, Project
| Property | Type | Description | Specifications |
|---|---|---|---|
allowMergeOnSkippedPipeline * | boolean | ||
archived | boolean | ||
autocloseReferencedIssues | boolean | ||
containerRegistryEnabled | boolean | ||
createdOn | number | ||
description | string | ||
fullName * | string | ||
id * | string | ||
issuesEnabled | boolean | ||
jobsEnabled | boolean | ||
mergeRequestsEnabled | boolean | ||
name * | string | ||
onlyAllowMergeIfAllDiscussionsAreResolved | boolean | ||
onlyAllowMergeIfPipelineSucceeds | boolean | ||
public * | boolean | ||
publicJobs | boolean | ||
removeSourceBranchAfterMerge | boolean | ||
requestAccessEnabled | boolean | ||
sharedRunnersEnabled | boolean | ||
snippetsEnabled | boolean | ||
topics * | array of strings | ||
visibility | string | ||
webLink | string | ||
wikiEnabled | boolean |
Gitlab Project Access Token
gitlab_project_access_token inherits from AccessKey
| Property | Type | Description | Specifications |
|---|---|---|---|
accessLevel * | number | null | The role the token holds on the project: 10 Guest, 15 Planner, 20 Reporter, 25 Security Manager, 30 Developer, 40 Maintainer, 50 Owner. | |
isRevoked * | boolean | null | When true, the token has been revoked. | |
lastUsedOn * | number | null | Timestamp the token was last used (epoch millis), or null if never used. | |
scopes * | array | null | The scopes granted to this token (e.g. "api", "read_repository"). | |
userId * | string | The id of the bot user GitLab created to back this project access token. |
Gitlab Project Setting
gitlab_project_setting inherits from Configuration
| Property | Type | Description | Specifications |
|---|---|---|---|
analyticsAccessLevel | string | null | Analytics feature access level (API analytics_access_level). | |
approvalsBeforeMerge | number | null | Project-level minimum number of approvals required before merge (API approvals_before_merge, deprecated in favor of approval rules). | |
buildsAccessLevel | string | null | CI/CD feature access level (API builds_access_level). | |
defaultBranch | string | null | The project default branch (API default_branch). | |
forkingAccessLevel | string | null | Forking access level (API forking_access_level). | |
isApprovalResetOnPush | boolean | null | Whether all approvals are removed when a commit is added (API reset_approvals_on_push). | |
isApproverOverrideDisabled | boolean | null | Whether editing approval rules in merge requests is prevented (API disable_overriding_approvers_per_merge_request). | |
isAuthorApprovalAllowed | boolean | null | Whether merge request authors may approve their own merge requests; false means author approval is prevented (API merge_requests_author_approval). | |
isCommitterApprovalDisabled | boolean | null | Whether users who add commits are prevented from approving (API merge_requests_disable_committers_approval). | |
isMergePipelinesEnabled | boolean | null | Whether merged results pipelines are enabled (API merge_pipelines_enabled). | |
isMergeTrainsEnabled | boolean | null | Whether merge trains are enabled (API merge_trains_enabled). | |
isMergeTrainSkipAllowed | boolean | null | Whether merge requests may skip the merge train (API merge_trains_skip_train_allowed). | |
isReauthenticationRequiredToApprove | boolean | null | Whether approvers must re-authenticate to approve (API require_reauthentication_to_approve). | |
isSelectiveCodeOwnerRemovalEnabled | boolean | null | Whether only code owner approvals for changed files are reset on push (API selective_code_owner_removals). | |
isUnwantedCharactersWarningEnabled | boolean | null | Whether GitLab warns about potentially unwanted characters (API warn_about_potentially_unwanted_characters). | |
mergeMethod | string | null | Merge method: merge, rebase_merge or ff (API merge_method). | |
mergeRequestsAccessLevel | string | null | Merge requests feature access level (API merge_requests_access_level). | |
packageRegistryAccessLevel | string | null | Package registry access level: disabled, private, enabled or public; public means the "Allow anyone to pull from package registry" toggle is on (API package_registry_access_level). | |
repositoryAccessLevel | string | null | Repository feature access level: disabled, private, enabled or public (API repository_access_level). | |
securityAndComplianceAccessLevel | string | null | Security and compliance feature access level (API security_and_compliance_access_level). |
Gitlab Push Rule
gitlab_push_rule inherits from Configuration
| Property | Type | Description | Specifications |
|---|---|---|---|
authorEmailRegex | string | null | Regular expression commit author emails must match (API author_email_regex). | |
branchNameRegex | string | null | Regular expression branch names must match (API branch_name_regex). | |
commitMessageNegativeRegex | string | null | Regular expression commit messages must not match (API commit_message_negative_regex). | |
commitMessageRegex | string | null | Regular expression commit messages must match (API commit_message_regex). | |
fileNameRegex | string | null | Regular expression of file names that are rejected (API file_name_regex). | |
isCommitterCheckEnabled | boolean | null | Whether only commits from verified committer emails are accepted; GitLab returns null when never enabled, ingested as false (API commit_committer_check). | |
isCommitterNameCheckEnabled | boolean | null | Whether the commit author name must match the GitLab account name (API commit_committer_name_check). | |
isConfigured * | boolean | Whether push rules were ever configured for the project. When false, GitLab returned no push rules and every enforcement flag is ingested as false. | |
isMemberCheckEnabled | boolean | null | Whether the commit author must be an existing GitLab user (API member_check). | |
isNonDcoCommitRejected | boolean | null | Whether commits without a DCO sign-off are rejected; GitLab returns null when never enabled, ingested as false (API reject_non_dco_commits). | |
isSecretPushPrevented | boolean | null | Whether GitLab rejects pushes of files that are likely to contain secrets (API prevent_secrets). | |
isTagDeletionDenied | boolean | null | Whether tag deletion is denied (API deny_delete_tag). | |
isUnsignedCommitRejected | boolean | null | Whether commits that are not signed are rejected; GitLab returns null when never enabled, ingested as false (API reject_unsigned_commits). | |
maxFileSize | number | null | Maximum file size in MB allowed in a push; 0 means unlimited (API max_file_size). |
Gitlab Secret
gitlab_secret inherits from Secret
| Property | Type | Description | Specifications |
|---|---|---|---|
environmentScope * | string | Environment scope this variable applies to. "*" means all environments. | |
isHidden * | boolean | null | When true, the variable value is masked in job logs and permanently hidden from the API response. | |
isMasked * | boolean | null | When true, the variable value is masked in job logs. | |
isProtected * | boolean | null | When true, this variable is only exposed to pipelines running on protected branches or tags. | |
isRaw * | boolean | null | When true, the variable is treated as raw and reference variables ($VAR) inside its value are not expanded. | |
variableKey * | string | The CI/CD variable key -- its name in the pipeline environment, e.g. "AWS_ACCESS_KEY_ID". This is the variable's identifier, never its value; GitLab calls this field key, renamed here to avoid confusion with the SDK-managed _key property. | |
variableType * | string | null | Type of CI/CD variable: "env_var" or "file". |
Gitlab User
gitlab_user inherits from User, NHI
| Property | Type | Description | Specifications |
|---|---|---|---|
canCreateGroup | boolean | ||
canCreateProject | boolean | ||
external | boolean | ||
isBot | boolean | Whether the account is a bot/service account (GitLab GraphQL User.bot). | |
isHuman | boolean | Whether the account is a regular human user (GitLab GraphQL User.human). False indicates a bot or service account. | |
privateProfile | boolean | ||
publicEmail | string | ||
state * | string | ||
trial | boolean | ||
twoFactorEnabled | boolean |
Gitlab User
gitlab_user inherits from User
| Property | Type | Description | Specifications |
|---|---|---|---|
canCreateGroup | boolean | ||
canCreateProject | boolean | ||
external | boolean | ||
isBot | boolean | Whether the account is a bot/service account (GitLab GraphQL User.bot). | |
isHuman | boolean | Whether the account is a regular human user (GitLab GraphQL User.human). False indicates a bot or service account. | |
privateProfile | boolean | ||
publicEmail | string | ||
state * | string | ||
trial | boolean | ||
twoFactorEnabled | boolean |
Release Notes
-
2026-10-18 — Added ingestion of GitLab personal access tokens, project access tokens, group access tokens, and deploy tokens, including scope, expiry, and revocation state.
-
2026-10-14 — GitLab bot and service account users are now classified as Non-Human Identities, and all GitLab users now include human and bot indicator properties.
-
2026-05-15 — GitLab pipelines and CI jobs are now ingested, linked to their parent projects and merge requests.
-
2025-08-22 — Added configuration option to skip disabled GitLab projects during ingestion.
-
2025-08-21 — Added configuration option to fetch all visible GitLab projects regardless of user membership, enabling ingestion of all projects accessible to the authenticated user.
-
2025-08-19 — Added optional separate token configuration for GitLab vulnerability findings ingestion, enabling auditor users to ingest findings when the main API token lacks sufficient permissions.
-
2025-08-04 — Added configuration option to ingest only human GitLab users, excluding bot and service accounts.