Skip to main content
Connectors

GitLab connector

Set up the GitLab connector in Kaivo: authentication, configuration, the 23 BigQuery tables it syncs, and answers to common questions.

Written By Lauri Raivio

Last updated 16 days ago

Kaivo is a fully managed data platform that syncs your GitLab data into a Google BigQuery warehouse and keeps it up to date automatically. There is no pipeline to build and no infrastructure to run, so you can spend your time analysing your project management data instead of moving it.

What is the GitLab connector

Sync your GitLab projects, issues, epics, and releases into BigQuery with Kaivo to report on engineering delivery alongside the rest of your data.

CategoryTech, Project Management
AuthenticationAPI key
SetupSelf-service

Getting started with the GitLab connector

  1. Sign up for Kaivo and create a workspace.
  2. Connect your GitLab account.
  3. Choose which tables to sync.
  4. Wait for the initial sync to finish.
  5. Query your data in BigQuery or your favourite AI or BI tool.

Authenticating GitLab

Authenticate with your Private Token.

FieldDescription
Private Token

Log into your GitLab account and then generate a personal Access Token.

Configuring the GitLab connector

When you set up the connector, you provide:

FieldDescription
Start Date

Any data before this date will not be fetched.

API URL

Please enter your basic URL from GitLab instance.

Groups

List of GitLab groups. e.g. my-group.

Projects

List of GitLab projects. e.g. my-group/my-project.

Tables and columns synced from GitLab

Kaivo syncs 23 tables from GitLab into a dedicated dataset in your BigQuery warehouse. Click any table to see its columns and types.

ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
project_idINT64ID of the project to which this branch belongs.
nameSTRINGName of the branch.
mergedBOOLIndicates if the changes in this branch have been merged into another branch.
protectedBOOLIndicates if the branch is protected to prevent direct pushes.
developers_can_pushBOOLIndicates if developers can push changes to this branch.
developers_can_mergeBOOLIndicates if developers can merge changes to this branch.
can_pushBOOLIndicates if the user has permission to push changes to this branch.
defaultBOOLIndicates if this is the default branch of the project.
web_urlSTRINGURL to view the branch in a web browser.
commit_idSTRINGID of the commit associated with this branch.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
project_idINT64ID of the project to which the commit belongs.
idSTRINGUnique identifier of the commit.
short_idSTRINGShortened version of the commit's unique identifier.
created_atTIMESTAMPDate and time when the commit record was created.
titleSTRINGTitle or summary of the commit message.
messageSTRINGDescription or text message associated with the commit.
author_nameSTRINGName of the author who created the commit.
author_emailSTRINGEmail of the author who created the commit.
authored_dateTIMESTAMPDate and time when the commit was authored.
committer_nameSTRINGName of the committer who committed the changes.
committer_emailSTRINGEmail of the committer who committed the changes.
committed_dateTIMESTAMPDate and time when the commit was committed.
web_urlSTRINGURL link to view the commit details in a web browser.
stats__additionsINT64Number of lines added in the commit.
stats__deletionsINT64Number of lines deleted in the commit.
stats__totalINT64Total number of lines changed in the commit.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Nested subtables

Repeating fields are split into their own tables, listed here with their column counts.

  • commits__parent_ids (4 columns)
  • commits__extended_trailers__cc (4 columns)
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64Unique identifier of the deployment
iidINT64Identification number of the deployment
statusSTRINGStatus of the deployment
refSTRINGReference of the deployment
shaSTRINGSHA of the deployment
environment_nameSTRINGName of the environment
created_atTIMESTAMPThe timestamp when the deployment was created
updated_atTIMESTAMPTimestamp when the deployment was last updated
user_full_nameSTRINGFull name of the user associated with the deployment
user_usernameSTRINGUsername of the user associated with the deployment
user_idINT64Unique identifier of the user associated with the deployment
environment_idINT64Unique identifier of the environment
project_idINT64Unique identifier of the project
deployable__commit__author_emailSTRINGEmail of the author of the commit
deployable__commit__author_nameSTRINGName of the author of the commit
deployable__commit__created_atTIMESTAMPTimestamp when the commit was created
deployable__commit__idSTRINGUnique identifier of the commit
deployable__commit__messageSTRINGMessage associated with the commit
deployable__commit__short_idSTRINGShort identifier of the commit
deployable__commit__titleSTRINGTitle of the commit
deployable__coverageSTRINGCoverage information of the deployment
deployable__created_atTIMESTAMPTimestamp when the deployment was created
deployable__finished_atTIMESTAMPTimestamp when the deployment was finished
deployable__idINT64Unique identifier of the deployment
deployable__nameSTRINGName of the deployment
deployable__refSTRINGReference of the deployment
deployable__runnerSTRINGRunner information for the deployment
deployable__stageSTRINGStage of the deployment
deployable__started_atTIMESTAMPTimestamp when the deployment was started
deployable__statusSTRINGStatus of the deployment
deployable__tagBOOLTag information for the deployment
deployable__project__ci_job_token_scope_enabledBOOLFlag indicating if the CI job token scope is enabled for the project
deployable__user__idINT64Unique identifier of the user
deployable__user__nameSTRINGName of the user
deployable__user__usernameSTRINGUsername of the user
deployable__user__stateSTRINGState information of the user
deployable__user__avatar_urlSTRINGURL of the user's avatar
deployable__user__web_urlSTRINGURL for accessing the user's information
deployable__user__created_atTIMESTAMPTimestamp when the user was created
deployable__user__bioSTRINGBio information of the user
deployable__user__locationSTRINGLocation information of the user
deployable__user__public_emailSTRINGPublic email of the user
deployable__user__skypeSTRINGSkype ID of the user
deployable__user__linkedinSTRINGLinkedin profile of the user
deployable__user__twitterSTRINGTwitter handle of the user
deployable__user__website_urlSTRINGURL for the user's website
deployable__user__organizationSTRINGOrganization information of the user
deployable__pipeline__created_atTIMESTAMPTimestamp when the pipeline associated with the deployment was created
deployable__pipeline__idINT64Unique identifier of the pipeline
deployable__pipeline__refSTRINGReference of the pipeline
deployable__pipeline__shaSTRINGSHA of the pipeline
deployable__pipeline__statusSTRINGStatus of the pipeline
deployable__pipeline__updated_atTIMESTAMPTimestamp when the pipeline associated with the deployment was last updated
deployable__pipeline__web_urlSTRINGURL for accessing the pipeline in a web browser
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64ID of the epic issue.
iidINT64Internal ID of the epic issue.
project_idINT64ID of the project the epic issue belongs to.
titleSTRINGTitle of the epic issue.
descriptionSTRINGDescription of the epic issue.
stateSTRINGState of the epic issue.
created_atTIMESTAMPTimestamp when the epic issue was created.
updated_atTIMESTAMPTimestamp when the epic issue was last updated.
closed_atTIMESTAMPTimestamp when the epic issue was closed.
milestone_idINT64ID of the milestone associated with the epic issue.
assignee_idINT64ID of the user assigned to the epic issue.
author_idINT64ID of the user who authored the epic issue.
user_notes_countINT64Number of user notes added to the epic issue.
upvotesINT64Number of upvotes received for the epic issue.
downvotesINT64Number of downvotes received for the epic issue.
due_dateDATEDue date set for the epic issue.
confidentialBOOLIndicates if the epic issue is confidential.
weightINT64Weight assigned to the epic issue.
discussion_lockedBOOLIndicates if the discussion on the epic issue is locked.
web_urlSTRINGURL link to access the epic issue.
epic_issue_idINT64ID of the epic issue.
merge_requests_countINT64Number of merge requests related to the epic issue.
typeSTRINGType of the epic issue.
task_statusSTRINGStatus of tasks associated with the epic issue.
moved_to_idINT64ID of the epic issue it was moved to.
iteration__idINT64
iteration__iidINT64
iteration__sequenceINT64
iteration__group_idINT64
iteration__titleSTRING
iteration__descriptionSTRING
iteration__stateINT64
iteration__created_atTIMESTAMPTimestamp when the iteration was created.
iteration__updated_atTIMESTAMPTimestamp when the iteration was last updated.
iteration__start_dateDATEStart date of the iteration.
iteration__due_dateDATEDue date set for the iteration.
iteration__web_urlSTRING
has_tasksBOOLIndicates if the epic issue has associated tasks.
blocking_issues_countINT64Number of blocking issues related to the epic issue.
closed_by__stateSTRING
closed_by__web_urlSTRING
closed_by__avatar_urlSTRING
closed_by__usernameSTRING
closed_by__idINT64
closed_by__nameSTRING
references__fullSTRING
references__relativeSTRING
references__shortSTRING
epic__idINT64
epic__iidINT64
epic__titleSTRING
epic__urlSTRING
epic__group_idINT64
epic__human_readable_end_dateSTRING
epic__human_readable_timestampSTRING
issue_typeSTRINGType of the epic issue.
severitySTRINGSeverity level of the epic issue.
service_desk_reply_toSTRINGID of the service desk reply related to the epic issue.
task_completion_status__countINT64Total count of tasks.
task_completion_status__completed_countINT64Number of completed tasks.
relative_positionINT64Relative position of the epic issue.
epic_iidINT64Internal ID of the epic the issue belongs to.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Nested subtables

Repeating fields are split into their own tables, listed here with their column counts.

  • epic_issues__labels (4 columns)
  • epic_issues__assignees (4 columns)
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64Unique ID of the epic
iidINT64Internal ID of the epic
group_idINT64ID of the group to which the epic belongs
parent_idINT64ID of the parent epic, if any
titleSTRINGTitle of the epic
descriptionSTRINGDescription of the epic
stateSTRINGCurrent state of the epic
confidentialBOOLFlag indicating if the epic is confidential
web_urlSTRINGURL for viewing the epic in a web browser
referenceSTRINGReference for the epic
author_idINT64ID of the author
start_dateSTRINGStart date of the epic
start_date_is_fixedBOOLFlag indicating if the start date is fixed
start_date_fixedDATEFixed start date of the epic
start_date_from_inherited_sourceSTRINGStart date inherited from another source
end_dateSTRINGEnd date of the epic
due_dateSTRINGDue date of the epic
due_date_is_fixedBOOLFlag indicating if the due date is fixed
due_date_fixedDATEFixed due date of the epic
due_date_from_inherited_sourceSTRINGDue date inherited from another source
created_atTIMESTAMPDate and time when the epic was created
updated_atTIMESTAMPDate and time when the epic was last updated
closed_atTIMESTAMPDate and time when the epic was closed
upvotesINT64Number of upvotes received by the epic
downvotesINT64Number of downvotes received by the epic
parent_iidINT64Internal ID of the parent epic
colorSTRINGColor associated with the epic
text_colorSTRINGText color associated with the epic
web_edit_urlSTRINGURL for editing the epic in a web browser
due_date_from_milestonesDATEDue date linked to milestone
_links__selfSTRINGLink to the epic resource itself
_links__epic_issuesSTRINGLink to the list of issues associated with the epic
_links__groupSTRINGLink to the group to which the epic belongs
_links__parentSTRINGLink to the parent epic, if any
start_date_from_milestonesDATEStart date linked to milestone
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Nested subtables

Repeating fields are split into their own tables, listed here with their column counts.

  • epics__labels (4 columns)
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64The unique identifier of the board.
nameSTRINGThe name of the board.
hide_backlog_listBOOLFlag indicating whether the backlog list is hidden.
hide_closed_listBOOLFlag indicating whether the closed list is hidden.
projectINT64Additional information or settings related to the project.
group_idINT64The ID of the group to which the board belongs.
group__idINT64The ID of the group to which the board belongs.
group__nameSTRINGThe name of the group to which the board belongs.
group__web_urlSTRINGThe URL of the group's web interface.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Nested subtables

Repeating fields are split into their own tables, listed here with their column counts.

  • group_issue_boards__lists (11 columns)
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
group_idINT64The unique identifier of the group to which the label belongs.
idINT64The unique identifier of the group label.
nameSTRINGThe name of the group label.
colorSTRINGThe color associated with the group label for visual identification.
descriptionSTRINGThe short description of the group label.
description_htmlSTRINGThe HTML formatted description of the group label.
text_colorSTRINGThe text color used for the group label.
subscribedBOOLIndicates if the user is subscribed to notifications for this group label.
open_issues_countINT64The total number of open issues in the group label.
closed_issues_countINT64The total number of closed issues in the group label.
open_merge_requests_countINT64The total number of open merge requests in the group label.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
group_idINT64
idINT64
nameSTRING
usernameSTRING
stateSTRING
membership_stateSTRING
avatar_urlSTRING
web_urlSTRING
access_levelINT64
created_atTIMESTAMP
expires_atTIMESTAMP
created_byJSON
lockedBOOL
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64The unique identifier of the milestone
iidINT64The internal identifier of the milestone
group_idINT64The unique identifier of the group to which the milestone belongs
titleSTRINGThe title or name of the milestone
descriptionSTRINGThe detailed description of the milestone
stateSTRINGThe current state of the milestone (e.g., open, closed)
created_atTIMESTAMPThe datetime when the milestone was created
updated_atTIMESTAMPThe datetime when the milestone was last updated
due_dateDATEThe date by which the milestone is expected to be completed
start_dateDATEThe date when the milestone is scheduled to start
expiredBOOLIndicates whether the milestone has expired
web_urlSTRINGThe URL to access the milestone in the web interface
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64Unique identifier for the group.
organization_idINT64Identifier of the organization to which the group belongs.
default_branch_protection_defaults__allow_force_pushBOOLIndicates if force push is allowed.
web_urlSTRINGURL for accessing the group via web.
nameSTRINGName of the group.
pathSTRINGPath of the group.
descriptionSTRINGDescription of the group.
visibilitySTRINGVisibility level of the group.
share_with_group_lockBOOLIndicates if sharing with group is locked.
require_two_factor_authenticationBOOLIndicates if two-factor authentication is required.
two_factor_grace_periodINT64Grace period for two-factor authentication.
project_creation_levelSTRINGProject creation level for the group.
auto_devops_enabledBOOLIndicates if Auto DevOps is enabled for this group.
subgroup_creation_levelSTRINGSubgroup creation level for the group.
enabled_git_access_protocolSTRINGIndicates the enabled Git access protocol for the group.
emails_disabledBOOLIndicates if emails are disabled for the group.
emails_enabledBOOLIndicates if emails are enabled for the group.
mentions_disabledBOOLIndicates if mentions are disabled for the group.
lfs_enabledBOOLIndicates if LFS is enabled for the group.
default_branch_protectionINT64Indicates the default branch protection level for the group.
avatar_urlSTRINGURL of the group's avatar.
request_access_enabledBOOLIndicates if request access is enabled for the group.
full_nameSTRINGFull name of the group.
full_pathSTRINGFull path of the group.
created_atTIMESTAMPTimestamp when the group was created.
parent_idINT64Identifier of the parent group.
ldap_cnSTRINGLDAP CN for the group.
ldap_accessSTRINGIndicates LDAP access for the group.
runners_tokenSTRINGToken used for shared runners.
shared_runners_minutes_limitINT64Shared runners minutes limit for the group.
extra_shared_runners_minutes_limitINT64Extra shared runners minutes limit for the group.
prevent_forking_outside_groupBOOLIndicates if forking outside the group is prevented.
wiki_access_levelSTRINGAccess level for wiki in the group.
marked_for_deletion_onDATEDate when the group was marked for deletion.
prevent_sharing_groups_outside_hierarchyBOOLIndicates if sharing groups outside hierarchy is prevented.
membership_lockBOOLIndicates if membership is locked for the group.
ip_restriction_rangesSTRINGIP restriction ranges for the group.
shared_runners_settingSTRINGSetting for shared runners.
service_access_tokens_expiration_enforcedBOOLIndicates if service access tokens expiration is enforced.
lock_math_rendering_limits_enabledBOOLIndicates if math rendering limits are locked.
math_rendering_limits_enabledBOOLIndicates if math rendering limits are enabled.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Nested subtables

Repeating fields are split into their own tables, listed here with their column counts.

  • groups__projects (5 columns)
  • groups__default_branch_protection_defaults__allowed_to_merge (4 columns)
  • groups__default_branch_protection_defaults__allowed_to_push (4 columns)
  • groups__shared_with_groups (4 columns)
  • groups__shared_projects (4 columns)
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64ID of the issue.
iidINT64Internal ID of the issue.
project_idINT64ID of the project to which the issue belongs.
titleSTRINGTitle of the issue.
descriptionSTRINGDescription of the issue.
stateSTRINGState of the issue.
created_atTIMESTAMPDate and time when the issue was created.
updated_atTIMESTAMPDate and time when the issue was last updated.
closed_atTIMESTAMPDate and time when the issue was closed.
typeSTRINGType of the issue.
user_notes_countINT64Number of user notes added to the issue.
merge_requests_countINT64Number of merge requests associated with the issue.
upvotesINT64Number of upvotes for the issue.
downvotesINT64Number of downvotes for the issue.
due_dateSTRINGDue date set for the issue.
confidentialBOOLIndicates if the issue is confidential.
discussion_lockedBOOLIndicates if discussion is locked for the issue.
issue_typeSTRINGType of issue.
web_urlSTRINGURL of the issue in GitLab.
blocking_issues_countINT64Number of blocking issues for this issue.
has_tasksBOOLIndicates if the issue has tasks.
moved_to_idSTRINGID of the issue to which this issue has been moved.
service_desk_reply_toSTRINGService desk reply to information for the issue.
author__stateSTRINGState of the author's account.
author__nameSTRINGName of the author.
author__web_urlSTRINGURL of the author's GitLab profile.
author__avatar_urlSTRINGURL of the author's avatar image.
author__usernameSTRINGUsername of the author.
author__idINT64ID of the author.
author__lockedBOOLIndicates if the author's account is locked.
author_idINT64ID of the author of the issue.
assignee__stateSTRINGState of the assignee account.
assignee__nameSTRINGName of the assignee.
assignee__web_urlSTRINGURL of the assignee's GitLab profile.
assignee__avatar_urlSTRINGURL of the assignee's avatar image.
assignee__usernameSTRINGUsername of the assignee.
assignee__idINT64ID of the assignee.
assignee__lockedBOOLIndicates if the assignee account is locked.
assignee_idINT64ID of the user assigned to the issue.
closed_by__stateSTRINGState of the user's account who closed the issue.
closed_by__nameSTRINGName of the user who closed the issue.
closed_by__web_urlSTRINGURL of the user's GitLab profile who closed the issue.
closed_by__avatar_urlSTRINGURL of the user's avatar image.
closed_by__usernameSTRINGUsername of the user who closed the issue.
closed_by__human_readable_end_dateSTRINGHuman-readable end date of the user.
closed_by__human_readable_timestampSTRINGHuman-readable timestamp of the user.
closed_by__idINT64ID of the user who closed the issue.
closed_by__lockedBOOLIndicates if the user's account is locked.
closed_by_idINT64ID of the user who closed the issue.
milestone_idINT64ID of the milestone associated with the issue.
subscribedBOOLIndicates if the user is subscribed to the issue.
weightINT64Weight assigned to the issue.
task_statusSTRINGStatus of tasks associated with the issue.
severitySTRINGSeverity level of the issue.
iteration__idINT64ID of the iteration.
iteration__iidINT64Internal ID of the iteration.
iteration__sequenceINT64Order sequence of the iteration.
iteration__group_idINT64ID of the group to which the iteration belongs.
iteration__titleSTRINGTitle of the iteration.
iteration__descriptionSTRINGDescription of the iteration.
iteration__stateINT64State of the iteration.
iteration__created_atTIMESTAMPDate and time when the iteration was created.
iteration__updated_atTIMESTAMPDate and time when the iteration was last updated.
iteration__start_dateTIMESTAMPStart date of the iteration.
iteration__due_dateTIMESTAMPDue date set for the iteration.
iteration__web_urlSTRINGURL of the iteration in GitLab.
epic__idINT64ID of the epic.
epic__iidINT64Internal ID of the epic.
epic__titleSTRINGTitle of the epic.
epic__urlSTRINGURL of the epic in GitLab.
epic__group_idINT64ID of the group to which the epic belongs.
epic__lockedBOOLIndicates if the epic is locked.
epic__human_readable_end_dateSTRINGHuman-readable end date of the epic.
epic__human_readable_timestampSTRINGHuman-readable timestamp of the epic.
epic_iidINT64Internal ID of the epic the issue belongs to.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Nested subtables

Repeating fields are split into their own tables, listed here with their column counts.

  • issues__labels (4 columns)
  • issues__assignees (4 columns)
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64Unique identifier for the job.
statusSTRINGCurrent status of the job.
stageSTRINGStage to which the job belongs in the pipeline.
archivedBOOLIndicates if the job has been archived.
nameSTRINGName of the job.
refSTRINGReference or branch for which the job was triggered.
tagBOOLIndicates if the job is tagged.
coverageSTRINGCode coverage achieved by the job.
allow_failureBOOLSpecifies if the job is allowed to fail.
created_atTIMESTAMPDate and time when the job was created.
started_atTIMESTAMPDate and time when the job execution started.
finished_atTIMESTAMPDate and time when the job finished execution.
durationFLOAT64Duration of the job execution.
queued_durationFLOAT64Duration for which the job was in the queue.
web_urlSTRINGURL to access the job details on the web platform.
artifacts_expire_atTIMESTAMPDate and time when artifacts will expire.
user_idINT64ID of the user who triggered the job.
pipeline_idINT64ID of the pipeline to which the job belongs.
runner_idINT64ID of the runner on which the job is executed.
commit_idSTRINGID of the commit associated with the job.
project_idINT64ID of the project to which the job belongs.
erased_atTIMESTAMPDate and time when the job was erased.
failure_reasonSTRINGReason for job failure, if applicable.
project__ci_job_token_scope_enabledBOOLIndicates if the CI job token scope is enabled for the project.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Nested subtables

Repeating fields are split into their own tables, listed here with their column counts.

  • jobs__artifacts (4 columns)
  • jobs__tag_list (4 columns)
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
project_idINT64Identifier of the project where the commit was made
idSTRINGUnique identifier for the commit
short_idSTRINGShortened version of the commit ID
created_atTIMESTAMPDate and time when the commit was created
titleSTRINGTitle of the commit representing the changes made
messageSTRINGThe commit message describing the changes made
author_nameSTRINGName of the author who made the commit
author_emailSTRINGEmail of the author who made the commit
authored_dateTIMESTAMPDate and time the commit was authored
committer_nameSTRINGName of the committer who committed the changes
committer_emailSTRINGEmail of the committer who committed the changes
committed_dateTIMESTAMPDate and time the commit was committed
web_urlSTRINGURL to view the commit details in a web browser
stats__additionsINT64Number of lines added in the commit
stats__deletionsINT64Number of lines deleted in the commit
stats__totalINT64Total number of lines changed in the commit
merge_request_iidINT64Identifier of the merge request associated with the commit
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Nested subtables

Repeating fields are split into their own tables, listed here with their column counts.

  • merge_request_commits__parent_ids (4 columns)
  • merge_request_commits__extended_trailers__cc (4 columns)
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64ID of the merge request.
iidINT64Internal ID of the merge request.
project_idINT64ID of the project to which the merge request belongs.
titleSTRINGTitle of the merge request.
descriptionSTRINGDescription of the merge request.
stateSTRINGState of the merge request.
created_atTIMESTAMPTimestamp when the merge request was created.
prepared_atTIMESTAMPTimestamp when the merge request was prepared.
updated_atTIMESTAMPTimestamp when the merge request was last updated.
merged_atTIMESTAMPTimestamp when the merge request was merged.
closed_atTIMESTAMPTimestamp when the merge request was closed.
target_branchSTRINGName of the target branch for the merge request.
source_branchSTRINGName of the source branch for the merge request.
user_notes_countINT64Total count of user notes on the merge request.
upvotesINT64Number of upvotes for the merge request.
downvotesINT64Number of downvotes for the merge request.
source_project_idINT64ID of the source project for the merge request.
target_project_idINT64ID of the target project for the merge request.
work_in_progressBOOLFlag indicating if the merge request is a work in progress.
merge_when_pipeline_succeedsBOOLFlag indicating if the merge should happen when the pipeline succeeds.
merge_statusSTRINGStatus of the merge request.
shaSTRINGSHA of the merge request.
merge_commit_shaSTRINGSHA of the merge commit.
squash_commit_shaSTRINGSHA of the squashed commit.
discussion_lockedBOOLFlag indicating if discussions are locked.
should_remove_source_branchBOOLFlag indicating if the source branch should be removed after merging.
force_remove_source_branchBOOLFlag indicating if the source branch should be removed after merging.
referenceSTRINGReference of the merge request.
web_urlSTRINGURL to view the merge request in the GitLab UI.
squashBOOLFlag indicating if squashing should be performed.
has_conflictsBOOLFlag indicating if the merge request has conflicts.
blocking_discussions_resolvedBOOLFlag indicating if all blocking discussions are resolved.
author_idINT64ID of the author of the merge request.
assignee_idINT64ID of the user assigned to this merge request.
closed_by_idINT64ID of the user who closed the merge request.
milestone_idINT64ID of the milestone associated with the merge request.
merged_by_idINT64ID of the user who merged the merge request.
draftBOOLFlag indicating if the merge request is a draft.
detailed_merge_statusSTRINGDetailed status of the merge request.
squash_on_mergeBOOLFlag indicating if squashing should be done on merge.
merge_user__idINT64ID of the user who performed the merge.
merge_user__nameSTRINGName of the user.
merge_user__usernameSTRINGUsername of the user.
merge_user__stateSTRINGState of the user account.
merge_user__avatar_urlSTRINGURL of the user's avatar.
merge_user__web_urlSTRINGURL to the user's profile.
merge_user__lockedBOOLFlag indicating if the user account is locked.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Nested subtables

Repeating fields are split into their own tables, listed here with their column counts.

  • merge_requests__assignees (4 columns)
  • merge_requests__reviewers (4 columns)
  • merge_requests__labels (4 columns)
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64Unique identifier for the pipeline
iidINT64Internal identifier for the pipeline within the project
project_idINT64Unique identifier for the project where the pipeline belongs
shaSTRINGCommit SHA associated with the pipeline
sourceSTRINGSource that triggered the pipeline (e.g., web, push, schedule)
refSTRINGReference (branch or tag) for which the pipeline was triggered
statusSTRINGCurrent status of the pipeline (e.g., running, passed, failed)
created_atTIMESTAMPThe timestamp when the pipeline was created
updated_atTIMESTAMPThe timestamp when the pipeline was last updated
web_urlSTRINGURL to view the pipeline details on the web interface
nameSTRINGName of the pipeline
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64Unique identifier of the pipeline
iidINT64Internal ID of the pipeline
project_idINT64ID of the project associated with the pipeline
shaSTRINGThe commit SHA of the current state triggering the pipeline
sourceSTRINGSource that triggered the pipeline (e.g., push, webhook)
refSTRINGBranch or tag name for which the pipeline was triggered
statusSTRINGCurrent status of the pipeline (e.g., running, success, failed)
created_atTIMESTAMPThe date and time when the pipeline was created
updated_atTIMESTAMPThe date and time when pipeline information was last updated
web_urlSTRINGURL to view the pipeline details on the web interface
before_shaSTRINGThe commit SHA of the previous state before the pipeline was triggered
tagBOOLBoolean indicating if the pipeline was triggered by a tag
yaml_errorsSTRINGAny errors encountered in the pipeline configuration YAML
user__idINT64Unique identifier of the user
user__nameSTRINGName of the user
user__usernameSTRINGUsername of the user
user__stateSTRINGState of the user account (e.g., active, blocked)
user__avatar_urlSTRINGURL of the user's avatar
user__web_urlSTRINGURL to the user's profile
user__lockedBOOLBoolean indicating if the user account is locked
started_atTIMESTAMPThe date and time when the pipeline execution started
finished_atTIMESTAMPThe date and time when the pipeline execution was finished
committed_atTIMESTAMPThe date and time when the commit was made
durationINT64The total duration of the pipeline execution in seconds
queued_durationSTRINGThe duration the pipeline spent in the queue before execution
coverageSTRINGThe code coverage percentage achieved in the pipeline
nameSTRINGName of the pipeline
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
project_idINT64The unique identifier of the project to which the label belongs.
idINT64The unique identifier for the label within the project.
nameSTRINGThe name or title of the label for easy identification.
colorSTRINGThe color code representation of the label for visual identification.
descriptionSTRINGThe textual description of the label indicating its purpose or meaning.
description_htmlSTRINGThe HTML formatted description of the label for display purposes.
text_colorSTRINGThe color code representation for the text color of the label for contrast.
subscribedBOOLA flag indicating whether the user is subscribed to notifications for this label.
priorityINT64The priority level assigned to the label, if applicable.
is_project_labelBOOLA flag indicating whether the label is specifically created for the project.
open_issues_countINT64The total count of open issues associated with this label.
closed_issues_countINT64The total count of closed issues associated with this label.
open_merge_requests_countINT64The total count of open merge requests associated with this label.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
project_idINT64
idINT64
nameSTRING
usernameSTRING
stateSTRING
membership_stateSTRING
avatar_urlSTRING
web_urlSTRING
access_levelINT64
created_atTIMESTAMP
expires_atTIMESTAMP
created_byJSON
lockedBOOL
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64Unique identifier for the milestone.
iidINT64Internal identifier for the milestone.
project_idINT64Identifier of the project that the milestone belongs to.
titleSTRINGThe title or name of the milestone.
descriptionSTRINGA brief summary or goal of the milestone.
stateSTRINGCurrent state of the milestone (e.g., open, closed).
created_atTIMESTAMPThe date and time when the milestone was created.
updated_atTIMESTAMPThe date and time when the milestone was last updated.
due_dateDATEThe target date for completion of the milestone.
start_dateDATEThe date when work on the milestone is scheduled to start.
expiredBOOLIndicates if the milestone has expired or not.
web_urlSTRINGURL to access the milestone on the web platform.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64ID of the project
descriptionSTRINGDescription of the project
description_htmlSTRINGHTML formatted project description
nameSTRINGName of the project
name_with_namespaceSTRINGName of the project with namespace
pathSTRINGPath of the project
path_with_namespaceSTRINGPath of the project with namespace
created_atTIMESTAMPDate and time of project creation
updated_atTIMESTAMPDate and time of last update
default_branchSTRINGDefault branch of the project
ssh_url_to_repoSTRINGSSH URL to project repository
http_url_to_repoSTRINGHTTP URL to project repository
web_urlSTRINGURL of the project
readme_urlSTRINGURL for project readme
avatar_urlSTRINGURL for project avatar
forks_countINT64Number of forks for the project
star_countINT64Number of stars for the project
last_activity_atTIMESTAMPDate and time of last activity
namespace__idINT64ID of the namespace
namespace__nameSTRINGName of the namespace
namespace__pathSTRINGPath of the namespace
namespace__kindSTRINGKind of namespace
namespace__full_pathSTRINGFull path of the namespace
namespace__parent_idINT64ID of the parent namespace
namespace__avatar_urlSTRINGURL for namespace avatar
namespace__web_urlSTRINGWeb URL of the namespace
container_registry_image_prefixSTRINGPrefix for container registry images
_links__selfSTRINGURL for the project itself
_links__issuesSTRINGURL for project issues
_links__merge_requestsSTRINGURL for project merge requests
_links__repo_branchesSTRINGURL for project repository branches
_links__labelsSTRINGURL for project labels
_links__eventsSTRINGURL for events related to the project
_links__membersSTRINGURL for project members
_links__cluster_agentsSTRINGURL for cluster agents
packages_enabledBOOLFlag indicating if packages are enabled
empty_repoBOOLFlag indicating if repository is empty
archivedBOOLFlag indicating if project is archived
visibilitySTRINGVisibility level of the project
resolve_outdated_diff_discussionsBOOLResolve outdated diff discussions
container_registry_enabledBOOLFlag indicating if container registry is enabled
container_expiration_policy__cadenceSTRINGExpiration cadence
container_expiration_policy__enabledBOOLFlag indicating if expiration policy is enabled
container_expiration_policy__keep_nINT64Number of containers to keep
container_expiration_policy__older_thanSTRINGAge threshold for expiration
container_expiration_policy__name_regexSTRINGRegex for container name
container_expiration_policy__name_regex_keepSTRINGRegex for container name to keep
container_expiration_policy__next_run_atTIMESTAMPNext scheduled run for expiration policy
issues_enabledBOOLFlag indicating if issues are enabled
merge_requests_enabledBOOLFlag indicating if merge requests are enabled
wiki_enabledBOOLFlag indicating if wiki is enabled
jobs_enabledBOOLFlag indicating if jobs are enabled
snippets_enabledBOOLFlag indicating if snippets are enabled
service_desk_enabledBOOLFlag indicating if service desk is enabled
service_desk_addressSTRINGAddress for service desk
can_create_merge_request_inBOOLLocations where merge requests can be created
issues_access_levelSTRINGAccess level for issues
repository_access_levelSTRINGAccess level for repository
merge_requests_access_levelSTRINGAccess level for merge requests
forking_access_levelSTRINGAccess level for forking projects
wiki_access_levelSTRINGAccess level for wiki
builds_access_levelSTRINGAccess level for builds
snippets_access_levelSTRINGAccess level for snippets
pages_access_levelSTRINGAccess level for project pages
operations_access_levelSTRINGAccess level for operations
analytics_access_levelSTRINGAccess level for analytics
emails_disabledBOOLFlag indicating if emails are disabled
shared_runners_enabledBOOLFlag indicating if shared runners are enabled
lfs_enabledBOOLFlag indicating if Git LFS is enabled
creator_idINT64ID of the project creator
import_statusSTRINGStatus of project import
import_errorSTRINGError message if import failed
open_issues_countINT64Count of open issues
runners_tokenSTRINGToken for runners
ci_default_git_depthINT64Default git depth for CI
ci_forward_deployment_enabledBOOLFlag for forward deployment enabled in CI
public_jobsBOOLFlag indicating if jobs are public
build_git_strategySTRINGGit strategy for build
build_timeoutINT64Timeout for build
auto_cancel_pending_pipelinesSTRINGAutomatically cancel pending pipelines
build_coverage_regexSTRINGRegex for build coverage
ci_config_pathSTRINGPath for CI configuration
only_allow_merge_if_pipeline_succeedsBOOLOnly allow merge if pipeline succeeds
allow_merge_on_skipped_pipelineBOOLAllow merge on skipped pipeline
restrict_user_defined_variablesBOOLRestrict user-defined variables
request_access_enabledBOOLFlag indicating if request access is enabled
only_allow_merge_if_all_discussions_are_resolvedBOOLOnly allow merge if all discussions are resolved
remove_source_branch_after_mergeBOOLRemove source branch after merge
printing_merge_request_link_enabledBOOLEnable printing merge request link
merge_methodSTRINGMethod used for merges
suggestion_commit_messageSTRINGCommit message suggestion
statistics__commit_countINT64Number of commits
statistics__storage_sizeINT64Total storage size
statistics__repository_sizeINT64Size of repository
statistics__wiki_sizeINT64Size of wiki
statistics__lfs_objects_sizeINT64Size of LFS objects
statistics__job_artifacts_sizeINT64Size of job artifacts
statistics__snippets_sizeINT64Size of snippets
statistics__packages_sizeINT64Size of packages
statistics__container_registry_sizeINT64Size of container registry
statistics__pipeline_artifacts_sizeINT64Size of pipeline artifacts
statistics__uploads_sizeINT64Size of uploads
auto_devops_enabledBOOLFlag indicating if Auto DevOps is enabled
auto_devops_deploy_strategySTRINGAuto DevOps deployment strategy
autoclose_referenced_issuesBOOLAutomatically close referenced issues
external_authorization_classification_labelSTRINGLabel for external authorization classification
requirements_enabledBOOLFlag indicating if requirements are enabled
security_and_compliance_enabledBOOLFlag indicating if security and compliance are enabled
permissions__project_access__access_levelINT64Access level for project
permissions__project_access__notification_levelINT64Notification level for project
permissions__group_access__access_levelINT64Access level for groups
permissions__group_access__notification_levelINT64Notification level for groups
feature_flags_access_levelSTRINGAccess level for feature flags
group_runners_enabledBOOLFlag indicating if group runners are enabled
enforce_auth_checks_on_uploadsBOOLEnforce authentication checks on uploads
monitor_access_levelSTRINGAccess level for monitoring tools
container_registry_access_levelSTRINGAccess level for container registry
import_typeSTRINGType of project import
ci_job_token_scope_enabledBOOLEnable job token scope in CI
requirements_access_levelSTRINGAccess level for requirements
releases_access_levelSTRINGAccess level for project releases
runner_token_expiration_intervalSTRINGToken expiration interval for runners
squash_optionSTRINGSquash option for merges
squash_commit_templateSTRINGTemplate for squash commits
issue_branch_templateSTRINGTemplate for issue branches
keep_latest_artifactBOOLKeep latest artifact
import_urlSTRINGURL for project import
ci_separated_cachesBOOLUse separated caches in CI
security_and_compliance_access_levelSTRINGAccess level for security and compliance
infrastructure_access_levelSTRINGAccess level for infrastructure settings
merge_commit_templateSTRINGTemplate for merge commits
ci_allow_fork_pipelines_to_run_in_parent_projectBOOLAllow fork pipelines to run in parent project
environments_access_levelSTRINGAccess level for environments
approvals_before_mergeINT64Number of approvals required before merge
marked_for_deletion_atDATEDate marked for deletion
merge_trains_enabledBOOLFlag indicating if merge trains are enabled
mirrorBOOLFlag indicating if project is mirrored
issues_templateSTRINGTemplate for issues
merge_pipelines_enabledBOOLFlag indicating if merge pipelines are enabled
merge_requests_templateSTRINGTemplate for merge requests
allow_pipeline_trigger_approve_deploymentBOOLAllow pipeline trigger to approve deployment
marked_for_deletion_onDATEDate marked for deletion
ci_forward_deployment_rollback_allowedBOOLAllow rollback in forward deployment CI
emails_enabledBOOLFlag indicating if emails are enabled
model_experiments_access_levelSTRINGAccess level for model experiments
merge_trains_skip_train_allowedBOOLAllow skipping merge trains
code_suggestionsBOOLEnable code suggestions
model_registry_access_levelSTRINGAccess level for model registry
ci_restrict_pipeline_cancellation_roleSTRINGRole allowed to restrict pipeline cancellation in CI
repository_object_formatSTRINGFormat of repository object
warn_about_potentially_unwanted_charactersBOOLWarn about potentially unwanted characters
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Nested subtables

Repeating fields are split into their own tables, listed here with their column counts.

  • projects__tag_list (4 columns)
  • projects__topics (4 columns)
  • projects__shared_with_groups (4 columns)
  • projects__compliance_frameworks (4 columns)
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
nameSTRINGName of the release
tag_nameSTRINGName of the tag associated with the release
descriptionSTRINGDescription of the release
created_atTIMESTAMPDate and time when the release was created
released_atTIMESTAMPDate and time when the release was published
upcoming_releaseBOOLIndicator if the release is an upcoming release
commit_pathSTRINGPath to the commit related to the release
tag_pathSTRINGPath to the tag associated with the release
assets__countINT64Number of assets in the release
author_idINT64ID of the author of the release
commit_idSTRINGID of the commit related to the release
project_idINT64ID of the project associated with the release
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Nested subtables

Repeating fields are split into their own tables, listed here with their column counts.

  • releases__milestones (4 columns)
  • releases__assets__sources (5 columns)
  • releases__assets__links (4 columns)
  • releases__evidences (4 columns)
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
nameSTRINGThe name of the tag.
messageSTRINGThe message or description of the tag.
targetSTRINGThe target or object that the tag points to.
release__tag_nameSTRINGThe name of the release tag.
release__descriptionSTRINGDescription of the release.
protectedBOOLIndicates whether the tag is protected.
commit_idSTRINGUnique identifier for the commit associated with the tag.
project_idINT64Unique identifier of the project to which the tag belongs.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idINT64Unique identification number for the user
nameSTRINGFull name of the user
usernameSTRINGUnique username chosen by the user
stateSTRINGCurrent state of the user's account (e.g., active, blocked)
avatar_urlSTRINGURL of the user's avatar image
web_urlSTRINGURL of the user's profile page on the Gitlab platform
lockedBOOLBoolean flag indicating if the user's account is locked
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

How the GitLab sync works

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where GitLab supports it, each sync pulls only new and changed records so it stays fast; otherwise it refreshes the whole table. Every record keeps its original ID, so you won't get duplicate rows.

Frequently asked questions

How long does the initial sync take for GitLab?

It depends on how much history is in your GitLab account. Most initial syncs finish within minutes, while large accounts can take a few hours. After that, syncs only fetch new and changed records, so they're much faster.

Can I sync only some tables or columns?

Yes. You pick which tables to sync when you set up the connection and can change the selection later. Tables you don't select are never copied to your warehouse.

What happens when GitLab's schema changes?

New fields are never added automatically. You choose which fields to sync, so data you haven't selected (sensitive personal data, for example) never lands in your warehouse. When a new field appears, it becomes available for you to add. What happens to removed or renamed fields depends on a table's sync mode: full-refresh tables always match what's currently in GitLab, so dropped fields disappear, while incremental tables keep their existing columns and history, so an old field stays and newly added fields fill in over time.

How do I handle GDPR or data deletion requests?

Your data lives in your own Kaivo-managed BigQuery warehouse, so the most direct option is to delete or anonymise specific records right in BigQuery. If you delete data in GitLab instead, full-refresh tables drop it on the next sync, while incremental tables keep it, so you would remove the row in BigQuery or ask us to run a full refresh. To remove everything, delete the GitLab connector in Kaivo and all of its synced data is deleted with it.

Common use cases for GitLab data

Delivery throughput

Track issues and projects to measure throughput and what is shipping across groups.

Epic and milestone progress

Use epics, epic_issues, and milestones to report on progress against larger initiatives.

Release tracking

Analyse releases and tags to see how often you ship and what went into each release.

Team activity

Report on group_members and project_members to see contribution across teams.

Use GitLab data in your AI and BI tools

Once GitLab data lands in your Kaivo-managed BigQuery warehouse, you can explore it with AI tools or any BI tool that connects to BigQuery. Here's how the most common destinations work with GitLab data.

Claude

Use Kaivo's MCP server to give Claude secure, workspace-scoped access to your data. Setup guide →

Power BI

Microsoft's BI tool with a native BigQuery connector. Supports direct query and scheduled refresh. Setup guide →

Data Studio

Free Google BI tool with native BigQuery support. One-click connection to your Kaivo warehouse; great for SMB teams on Google Workspace. Setup guide →

Tableau

The premium analytics standard, with native BigQuery integration. Setup guide →

Google Sheets

Use Connected Sheets to query BigQuery directly from a spreadsheet, with no SQL. Setup guide →

Excel

Connect via Power Query's BigQuery connector. Setup guide →

Metabase

Open-source BI tool with strong BigQuery support. Setup guide →

See our pricing page for GitLab connector pricing and plan details.

  • Adform: Sync Adform to BigQuery.
  • Amplitude: Sync Amplitude to BigQuery.
  • Auth0: Sync Auth0 to BigQuery.
  • ClickUp: Sync ClickUp to BigQuery.
  • Convex: Sync Convex to BigQuery.
  • GitHub: Sync GitHub to BigQuery.

Was this helpful?

Still need help? Share an idea