API Data Provider - Online Help

Connecting to GitLab

To authenticate to GitLab, you can use either OAuth 2.0 or Personal Access Tokens (APIKey).

Using OAuth Authentication

First you need to register an OAuth application with GitLab. This can be done in your GitLab user settings under Applications or for GitLab groups under Group Settings > Applications. For self-hosted GitLab instances, you may also need to configure the BaseURL property to point to your GitLab installation.

After setting the following connection properties, you are ready to connect:

  • AuthScheme: Set this to OAuth.
  • InitiateOAuth: Set this to GETANDREFRESH. The CData API Profile for GitLab will automatically walk through the OAuth process in order to obtained the access token.
  • OAuthClientID: Set this to the Application ID that is specified in your app settings.
  • OAuthClientSecret: Set this to the Secret that is specified in your app settings.
  • CallbackURL: Set this to the Redirect URI you specified in your app settings.
  • BaseURL: (Optional) Set this to your GitLab instance URL if using a self-hosted GitLab (e.g., https://gitlab.example.com). Defaults to https://gitlab.com.

Example OAuth connection string

Profile=C:\profiles\GitLab.apip;AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;OAuthClientId=your_application_id;OAuthClientSecret=your_secret;CallbackUrl=your_callback_url;

Using APIKey Authentication

You can also authenticate using a GitLab Personal Access Token. Create a Personal Access Token in your GitLab user settings under Access Tokens. Make sure to grant appropriate scopes such as read_user, read_api, read_repository, and api based on the data you need to access.

After creating your Personal Access Token, set the following connection properties:

  • AuthScheme: Set this to APIKey.
  • APIKey: Set this to your GitLab Personal Access Token.
  • BaseURL: (Optional) Set this to your GitLab instance URL if using a self-hosted GitLab (e.g., https://gitlab.example.com). Defaults to https://gitlab.com.

Example APIKey connection string

Profile=C:\profiles\GitLab.apip;AuthScheme=APIKey;ProfileSettings='APIKey=your_personal_access_token';

Usage Examples

AccessRequests:
SELECT * FROM AccessRequests WHERE GroupId = '123'

AlertManagementAlertMetricImages:
SELECT * FROM AlertManagementAlertMetricImages WHERE AlertIid = '123' AND ProjectId = '12345'
UPDATE AlertManagementAlertMetricImages SET Url = 'https://example.com/metric.png', UrlText = 'Metric Image' WHERE Id = '123'
DELETE FROM AlertManagementAlertMetricImages WHERE Id = '123'

AllGroupMembers:
SELECT * FROM AllGroupMembers WHERE GroupId = '789'

AllProjectMembers:
SELECT * FROM AllProjectMembers WHERE ProjectId = '12345'

AllRunners:
SELECT * FROM AllRunners WHERE Status = 'active'

AllSnippets:
SELECT * FROM AllSnippets WHERE Visibility = 'public'

Appearance:
SELECT * FROM Appearance

Applications:
SELECT * FROM Applications
INSERT INTO Applications (ApplicationName, CallbackUrl, IsConfidential) VALUES ('My Application', 'https://example.com/callback', 'true')
DELETE FROM Applications WHERE Id = '123'

ApplicationSettings:
SELECT * FROM ApplicationSettings

AuditEvents:
SELECT * FROM AuditEvents

BillableMemberIndirectMemberships:
SELECT * FROM BillableMemberIndirectMemberships WHERE GroupId = '789' AND UserId = '456'

BillableMemberMemberships:
SELECT * FROM BillableMemberMemberships WHERE GroupId = '789' AND UserId = '456'

Branches:
SELECT * FROM Branches WHERE ProjectId = '12345'
INSERT INTO Branches (Name, Ref, ProjectId) VALUES ('feature-branch', 'main', '12345')
DELETE FROM Branches WHERE Name = 'feature-branch' AND ProjectId = '12345'

BroadcastMessages:
SELECT * FROM BroadcastMessages
INSERT INTO BroadcastMessages (Message, StartsAt, EndsAt, Font, BroadcastType, IsDismissable, Theme) VALUES ('Scheduled maintenance tonight', '2024-12-31T00:00:00Z', '2024-12-31T23:59:59Z', '#ffffff', 'banner', 'false', 'indigo')
UPDATE BroadcastMessages SET Message = 'Scheduled maintenance tonight', Font = '#ffffff' WHERE Id = '123'
DELETE FROM BroadcastMessages WHERE Id = '123'

BulkImportEntities:
SELECT * FROM BulkImportEntities WHERE BulkImportId = '123'

BulkImportEntityFailures:
SELECT * FROM BulkImportEntityFailures WHERE BulkImportId = '123' AND EntityId = '456'

BulkImports:
SELECT * FROM BulkImports

ClusterAgents:
SELECT * FROM ClusterAgents WHERE ProjectId = '12345'
INSERT INTO ClusterAgents (Name, ProjectId) VALUES ('my-agent', '12345')
DELETE FROM ClusterAgents WHERE Id = '123'

ClusterAgentTokens:
SELECT * FROM ClusterAgentTokens WHERE ProjectId = '12345' AND AgentId = '123'
INSERT INTO ClusterAgentTokens (Name, AgentId, ProjectId, Description) VALUES ('my-token', '123', '12345', 'Token for CI/CD')
DELETE FROM ClusterAgentTokens WHERE Id = '456'

ClusterAgentUrlConfigurations:
SELECT * FROM ClusterAgentUrlConfigurations WHERE ProjectId = '12345' AND AgentId = '123'
INSERT INTO ClusterAgentUrlConfigurations (AgentId, Url, ProjectId, TlsHost) VALUES ('123', 'https://example.com/agent', '12345', 'example.com')
DELETE FROM ClusterAgentUrlConfigurations WHERE Id = '456'

CommitComments:
SELECT * FROM CommitComments WHERE ProjectId = '12345' AND Sha = 'abc123def456'
INSERT INTO CommitComments (Note, ProjectId, Sha, Path, Line, LineType) VALUES ('LGTM', '12345', 'abc123def456', 'src/main.java', 42, 'new')

CommitDiff:
SELECT * FROM CommitDiff WHERE ProjectId = '12345' AND Sha = 'abc123def456'

CommitDiscussions:
SELECT * FROM CommitDiscussions WHERE ProjectId = '12345' AND CommitId = 'abc123def456'

CommitMergeRequests:
SELECT * FROM CommitMergeRequests WHERE ProjectId = '12345' AND Sha = 'abc123def456'

CommitRefs:
SELECT * FROM CommitRefs WHERE ProjectId = '12345' AND Sha = 'abc123def456'

Commits:
SELECT * FROM Commits WHERE ProjectId = '12345'

CommitSignature:
SELECT * FROM CommitSignature WHERE ProjectId = '12345' AND Sha = 'abc123def456'

CommitStatuses:
SELECT * FROM CommitStatuses WHERE ProjectId = '12345' AND Sha = 'abc123def456'
INSERT INTO CommitStatuses (Status, Sha, ProjectId, Name, Description, TargetUrl, Ref) VALUES ('success', 'abc123def456', '12345', 'ci/pipeline', 'Pipeline passed', 'https://example.com/pipelines/1', 'main')

ContainerRegistry:
SELECT * FROM ContainerRegistry WHERE ProjectId = '12345' AND GroupId = '789'
DELETE FROM ContainerRegistry WHERE Id = '123'

ContainerRegistryTags:
SELECT * FROM ContainerRegistryTags WHERE ProjectId = '12345' AND RepositoryId = '123'
DELETE FROM ContainerRegistryTags WHERE Name = 'latest' AND ProjectId = '12345' AND RepositoryId = '123'

DastProfiles:
SELECT * FROM DastProfiles WHERE ProjectId = '12345'

Dependencies:
SELECT * FROM Dependencies WHERE ProjectId = '12345'

DeployKeys:
SELECT * FROM DeployKeys
INSERT INTO DeployKeys (Title, Key, ExpiresAt) VALUES ('My Deploy Key', 'ssh-rsa AAAA...', '2024-12-31')

DeploymentMergeRequests:
SELECT * FROM DeploymentMergeRequests WHERE ProjectId = '12345' AND DeploymentId = '123'

Deployments:
SELECT * FROM Deployments WHERE ProjectId = '12345'

DeployTokens:
SELECT * FROM DeployTokens WHERE ProjectId = '12345'

DockerfileKeyTemplates:
SELECT * FROM DockerfileKeyTemplates WHERE Key = 'dockerfile'

DockerfileTemplates:
SELECT * FROM DockerfileTemplates

DraftNotes:
SELECT * FROM DraftNotes WHERE ProjectId = '12345' AND MergeRequestIid = '1'
INSERT INTO DraftNotes (Note, ProjectId, MergeRequestIid, ResolveDiscussion) VALUES ('Please address this before merging.', '12345', 1, 'false')
UPDATE DraftNotes SET Note = 'Please address this before merging.' WHERE Id = '123'
DELETE FROM DraftNotes WHERE Id = '123'

Environments:
SELECT * FROM Environments WHERE ProjectId = '12345'
INSERT INTO Environments (Name, ProjectId, ExternalUrl, Tier) VALUES ('staging', '12345', 'https://staging.example.com', 'staging')
UPDATE Environments SET ExternalUrl = 'https://staging.example.com', Tier = 'staging' WHERE Id = '123'
DELETE FROM Environments WHERE Id = '123'

EpicIssues:
SELECT * FROM EpicIssues WHERE GroupId = '789' AND EpicIid = '1'

EpicResourceLabelEvents:
SELECT * FROM EpicResourceLabelEvents WHERE GroupId = '789' AND EpicId = '123'

EpicResourceStateEvents:
SELECT * FROM EpicResourceStateEvents WHERE GroupId = '789' AND EpicId = '123'

Epics:
SELECT * FROM Epics WHERE GroupId = '789'
INSERT INTO Epics (GroupId, Title, Description, IsConfidential) VALUES ('789', 'Q1 Roadmap', 'Epic for Q1 goals', 'false')
UPDATE Epics SET Title = 'Q1 Roadmap', Description = 'Epic for Q1 goals' WHERE Iid = 1 AND GroupId = '789'
DELETE FROM Epics WHERE Iid = 1 AND GroupId = '789'

ErrorTrackingClientKeys:
SELECT * FROM ErrorTrackingClientKeys WHERE ProjectId = '12345'
INSERT INTO ErrorTrackingClientKeys (ProjectId) VALUES ('12345')
DELETE FROM ErrorTrackingClientKeys WHERE Id = '123'

ErrorTrackingSettings:
SELECT * FROM ErrorTrackingSettings WHERE ProjectId = '12345'
UPDATE ErrorTrackingSettings SET Active = 'true', IsIntegrated = 'false' WHERE ProjectId = '12345'

Events:
SELECT * FROM Events WHERE Action = 'pushed'

FeatureFlags:
SELECT * FROM FeatureFlags WHERE ProjectId = '12345'

Features:
SELECT * FROM Features

FreezePeriods:
SELECT * FROM FreezePeriods WHERE ProjectId = '12345'
INSERT INTO FreezePeriods (FreezeStart, FreezeEnd, CronTimezone, ProjectId) VALUES ('0 23 * * 5', '0 8 * * 1', 'UTC', '12345')
UPDATE FreezePeriods SET FreezeStart = '0 23 * * 5', FreezeEnd = '0 8 * * 1', CronTimezone = 'UTC' WHERE Id = '123'
DELETE FROM FreezePeriods WHERE Id = '123'

GeoSites:
SELECT * FROM GeoSites

GitignoreKeyTemplates:
SELECT * FROM GitignoreKeyTemplates WHERE Key = 'python'

GitignoreTemplates:
SELECT * FROM GitignoreTemplates

GitlabCiKeyTemplates:
SELECT * FROM GitlabCiKeyTemplates WHERE Key = 'nodejs'

GitlabCiTemplates:
SELECT * FROM GitlabCiTemplates

GlobalNotificationSettings:
SELECT * FROM GlobalNotificationSettings

GlobalProjectRepositoryStorageMoves:
SELECT * FROM GlobalProjectRepositoryStorageMoves

GroupAccessTokens:
SELECT * FROM GroupAccessTokens WHERE GroupId = '789'
INSERT INTO GroupAccessTokens (Scopes, Name, GroupId, ExpiresAt, AccessLevel) VALUES ('api,read_repository', 'My Token', '789', '2024-12-31', 40)
DELETE FROM GroupAccessTokens WHERE Id = '123'

GroupAuditEvents:
SELECT * FROM GroupAuditEvents WHERE GroupId = '789'

GroupBadges:
SELECT * FROM GroupBadges WHERE GroupId = '789'
INSERT INTO GroupBadges (LinkUrl, ImageUrl, GroupId, Name) VALUES ('https://example.com', 'https://img.shields.io/badge/build-passing-brightgreen', '789', 'Build Status')
UPDATE GroupBadges SET Name = 'Build Status', LinkUrl = 'https://example.com', ImageUrl = 'https://img.shields.io/badge/build-passing-brightgreen' WHERE Id = '123'
DELETE FROM GroupBadges WHERE Id = '123'

GroupBadgesRender:
SELECT * FROM GroupBadgesRender WHERE GroupId = '789' AND ImageUrl = 'https://img.shields.io/badge/build-passing-brightgreen' AND LinkUrl = 'https://gitlab.example.com'

GroupBillableMembers:
SELECT * FROM GroupBillableMembers WHERE GroupId = '789'

GroupBoards:
SELECT * FROM GroupBoards WHERE GroupId = '789'
INSERT INTO GroupBoards (GroupId, Name) VALUES ('789', 'Sprint Board')
UPDATE GroupBoards SET Name = 'Sprint Board', HideBacklogList = 'false', HideClosedList = 'false' WHERE Id = '123'
DELETE FROM GroupBoards WHERE Id = '123'

GroupCustomAttributes:
SELECT * FROM GroupCustomAttributes WHERE GroupId = '789'
UPDATE GroupCustomAttributes SET Value = 'attribute-value' WHERE Key = 'attribute-key' AND GroupId = '789'
DELETE FROM GroupCustomAttributes WHERE Key = 'attribute-key' AND GroupId = '789'

GroupDeployTokens:
SELECT * FROM GroupDeployTokens WHERE GroupId = '789'
INSERT INTO GroupDeployTokens (Name, Scopes, GroupId, Username, ExpiresAt) VALUES ('deploy-token', 'read_registry,read_repository', '789', 'deploy-user', '2024-12-31')
DELETE FROM GroupDeployTokens WHERE Id = '123'

GroupDescendantGroups:
SELECT * FROM GroupDescendantGroups WHERE GroupId = '789'

GroupDoraMetrics:
SELECT * FROM GroupDoraMetrics WHERE GroupId = '789'

GroupHooks:
SELECT * FROM GroupHooks WHERE GroupId = '789'
INSERT INTO GroupHooks (GroupId, Url, Name, PushEventsEnabled, MergeRequestsEventsEnabled, EnableSslVerification) VALUES ('789', 'https://example.com/webhook', 'My Hook', 'true', 'true', 'true')
UPDATE GroupHooks SET Url = 'https://example.com/webhook', Name = 'My Hook', PushEventsEnabled = 'true' WHERE Id = '123'
DELETE FROM GroupHooks WHERE Id = '123'

GroupIssueBoardLists:
SELECT * FROM GroupIssueBoardLists WHERE GroupId = '789' AND BoardId = '123'
INSERT INTO GroupIssueBoardLists (LabelId, GroupId, BoardId) VALUES ('456', '789', '123')
UPDATE GroupIssueBoardLists SET Position = 2 WHERE Id = '789'
DELETE FROM GroupIssueBoardLists WHERE Id = '789'

GroupIssues:
SELECT * FROM GroupIssues WHERE GroupId = '789'

GroupIterations:
SELECT * FROM GroupIterations WHERE GroupId = '789'

GroupLabels:
SELECT * FROM GroupLabels WHERE GroupId = '789'
INSERT INTO GroupLabels (Name, Color, GroupId, Description) VALUES ('bug', '#ff0000', '789', 'Bug label')
UPDATE GroupLabels SET Color = '#ff0000', Description = 'Bug label' WHERE Id = '123'
DELETE FROM GroupLabels WHERE Id = '123'

GroupMembers:
SELECT * FROM GroupMembers WHERE GroupId = '789'
INSERT INTO GroupMembers (Id, AccessLevel, GroupId, ExpiresAt) VALUES ('456', 40, '789', '2024-12-31')
UPDATE GroupMembers SET AccessLevel = 40, ExpiresAt = '2024-12-31' WHERE Id = '456'
DELETE FROM GroupMembers WHERE Id = '456'

GroupMergeRequests:
SELECT * FROM GroupMergeRequests WHERE GroupId = '789'

GroupMilestoneBurndownEvents:
SELECT * FROM GroupMilestoneBurndownEvents WHERE GroupId = '789' AND MilestoneId = '123'

GroupMilestones:
SELECT * FROM GroupMilestones WHERE GroupId = '789'
INSERT INTO GroupMilestones (GroupId, Title, Description, DueDate) VALUES ('789', 'Q1 Release', 'Q1 milestone', '2024-03-31')
UPDATE GroupMilestones SET Title = 'Q1 Release', Description = 'Q1 milestone', DueDate = '2024-03-31' WHERE Id = '123'
DELETE FROM GroupMilestones WHERE Id = '123'

GroupPackages:
SELECT * FROM GroupPackages WHERE GroupId = '789'

GroupProjects:
SELECT * FROM GroupProjects WHERE GroupId = '789'

GroupReleases:
SELECT * FROM GroupReleases WHERE GroupId = '789'

GroupRunners:
SELECT * FROM GroupRunners WHERE GroupId = '789'

Groups:
SELECT * FROM Groups WHERE Visibility = 'public'
INSERT INTO Groups (Name, Path, Description, Visibility) VALUES ('My Group', 'my-group', 'Group description', 'private')
UPDATE Groups SET Name = 'My Group', Description = 'Group description', Visibility = 'private' WHERE Id = '789'
DELETE FROM Groups WHERE Id = '789'

GroupSamlIdentities:
SELECT * FROM GroupSamlIdentities WHERE GroupId = '789'

GroupScimIdentities:
SELECT * FROM GroupScimIdentities WHERE GroupId = '789'

GroupServiceAccounts:
SELECT * FROM GroupServiceAccounts WHERE GroupId = '789'
INSERT INTO GroupServiceAccounts (GroupId, Username, Name) VALUES ('789', 'svc-account', 'Service Account')
UPDATE GroupServiceAccounts SET Username = 'svc-account', Name = 'Service Account' WHERE Id = '123'
DELETE FROM GroupServiceAccounts WHERE Id = '123'

GroupSubgroups:
SELECT * FROM GroupSubgroups WHERE GroupId = '789'

GroupVariables:
SELECT * FROM GroupVariables WHERE GroupId = '789'
INSERT INTO GroupVariables (Key, Value, GroupId, VariableType, IsProtected, IsMasked) VALUES ('MY_VAR', 'my-value', '789', 'env_var', 'false', 'false')
UPDATE GroupVariables SET Value = 'my-value', IsProtected = 'false', IsMasked = 'false' WHERE Key = 'MY_VAR' AND GroupId = '789'
DELETE FROM GroupVariables WHERE Key = 'MY_VAR' AND GroupId = '789'

GroupWikis:
SELECT * FROM GroupWikis WHERE GroupId = '789'
INSERT INTO GroupWikis (Title, Content, GroupId, Format) VALUES ('Home', '# Welcome', '789', 'markdown')
UPDATE GroupWikis SET Title = 'Home', Content = '# Welcome', Format = 'markdown' WHERE Slug = 'home' AND GroupId = '789'
DELETE FROM GroupWikis WHERE Slug = 'home' AND GroupId = '789'

InstanceVariables:
SELECT * FROM InstanceVariables
INSERT INTO InstanceVariables (Key, Value, VariableType, IsProtected, IsMasked) VALUES ('MY_VAR', 'my-value', 'env_var', 'false', 'false')
UPDATE InstanceVariables SET Value = 'my-value', IsProtected = 'false', IsMasked = 'false' WHERE Key = 'MY_VAR'
DELETE FROM InstanceVariables WHERE Key = 'MY_VAR'

IssueClosedBy:
SELECT * FROM IssueClosedBy WHERE ProjectId = '12345' AND IssueIid = '1'

IssueDiscussions:
SELECT * FROM IssueDiscussions WHERE ProjectId = '12345' AND IssueIid = '1'

IssueLinks:
SELECT * FROM IssueLinks WHERE ProjectId = '12345' AND IssueIid = '1'
INSERT INTO IssueLinks (Iid, ProjectId, TargetProjectId, IssueIid, LinkType) VALUES (2, '12345', '12345', 1, 'relates_to')
DELETE FROM IssueLinks WHERE Id = 123

IssueNotes:
SELECT * FROM IssueNotes WHERE ProjectId = '12345' AND IssueIid = '1'
INSERT INTO IssueNotes (Body, ProjectId, IssueIid, IsConfidential) VALUES ('Please fix this issue.', '12345', 1, 'false')
UPDATE IssueNotes SET Body = 'Please fix this issue.' WHERE Id = '123'
DELETE FROM IssueNotes WHERE Id = '123'

IssueParticipants:
SELECT * FROM IssueParticipants WHERE ProjectId = '12345' AND IssueIid = '1'

IssueRelatedMergeRequests:
SELECT * FROM IssueRelatedMergeRequests WHERE ProjectId = '12345' AND IssueIid = '1'

IssueResourceIterationEvents:
SELECT * FROM IssueResourceIterationEvents WHERE ProjectId = '12345' AND IssueIid = '1'

IssueResourceLabelEvents:
SELECT * FROM IssueResourceLabelEvents WHERE ProjectId = '12345' AND IssueIid = '1'

IssueResourceMilestoneEvents:
SELECT * FROM IssueResourceMilestoneEvents WHERE ProjectId = '12345' AND IssueIid = '1'

IssueResourceStateEvents:
SELECT * FROM IssueResourceStateEvents WHERE ProjectId = '12345' AND IssueIid = '1'

IssueResourceWeightEvents:
SELECT * FROM IssueResourceWeightEvents WHERE ProjectId = '12345' AND IssueIid = '1'

Issues:
SELECT * FROM Issues WHERE State = 'opened'
INSERT INTO Issues (ProjectId, Title, Description, Labels, IsConfidential) VALUES ('12345', 'Fix login bug', 'Users cannot log in', 'bug', 'false')
UPDATE Issues SET Title = 'Fix login bug', Description = 'Users cannot log in', State = 'closed' WHERE Iid = 1 AND ProjectId = '12345'
DELETE FROM Issues WHERE Iid = 1 AND ProjectId = '12345'

IssueTimeStats:
SELECT * FROM IssueTimeStats WHERE ProjectId = '12345' AND IssueIid = '1'

Jobs:
SELECT * FROM Jobs WHERE ProjectId = '12345'

Keys:
SELECT * FROM Keys WHERE Id = '123' AND Fingerprint = 'SHA256:abc123def456'

Licenses:
SELECT * FROM Licenses WHERE ProjectId = '12345'

LicenseTemplates:
SELECT * FROM LicenseTemplates

MembershipInvitations:
SELECT * FROM MembershipInvitations WHERE GroupId = '789' AND ProjectId = '12345'
INSERT INTO MembershipInvitations (AccessLevel, InviteEmail, ExpiresAt) VALUES (40, '[email protected]', '2024-12-31')
UPDATE MembershipInvitations SET AccessLevel = 40, ExpiresAt = '2024-12-31' WHERE InviteEmail = '[email protected]' AND GroupId = '789'
DELETE FROM MembershipInvitations WHERE InviteEmail = '[email protected]' AND GroupId = '789'

MergeRequestApprovalRules:
SELECT * FROM MergeRequestApprovalRules WHERE ProjectId = '12345' AND MergeRequestIid = '1'
INSERT INTO MergeRequestApprovalRules (Name, ApprovalsRequired, ProjectId, MergeRequestIid) VALUES ('Security Review', 2, '12345', 1)
UPDATE MergeRequestApprovalRules SET Name = 'Security Review', ApprovalsRequired = 2 WHERE Id = '123'
DELETE FROM MergeRequestApprovalRules WHERE Id = '123'

MergeRequestApprovals:
SELECT * FROM MergeRequestApprovals WHERE ProjectId = '12345' AND MergeRequestIid = '1'

MergeRequestApprovalState:
SELECT * FROM MergeRequestApprovalState WHERE ProjectId = '12345' AND MergeRequestIid = '1'

MergeRequestCommits:
SELECT * FROM MergeRequestCommits WHERE ProjectId = '12345' AND MergeRequestIid = '1'

MergeRequestContextCommits:
SELECT * FROM MergeRequestContextCommits WHERE ProjectId = '12345' AND MergeRequestIid = '1'

MergeRequestDiscussions:
SELECT * FROM MergeRequestDiscussions WHERE ProjectId = '12345' AND MergeRequestIid = '1'

MergeRequestNotes:
SELECT * FROM MergeRequestNotes WHERE ProjectId = '12345' AND MergeRequestIid = '1'
INSERT INTO MergeRequestNotes (Body, ProjectId, MergeRequestIid) VALUES ('Looks good to me!', '12345', 1)
UPDATE MergeRequestNotes SET Body = 'Looks good to me!' WHERE Id = '123'
DELETE FROM MergeRequestNotes WHERE Id = '123'

MergeRequestParticipants:
SELECT * FROM MergeRequestParticipants WHERE ProjectId = '12345' AND MergeRequestIid = '1'

MergeRequestResourceLabelEvents:
SELECT * FROM MergeRequestResourceLabelEvents WHERE ProjectId = '12345' AND MergeRequestIid = '1'

MergeRequestResourceMilestoneEvents:
SELECT * FROM MergeRequestResourceMilestoneEvents WHERE ProjectId = '12345' AND MergeRequestIid = '1'

MergeRequestResourceStateEvents:
SELECT * FROM MergeRequestResourceStateEvents WHERE ProjectId = '12345' AND MergeRequestIid = '1'

MergeRequestReviewers:
SELECT * FROM MergeRequestReviewers WHERE ProjectId = '12345' AND MergeRequestIid = '1'

MergeRequests:
SELECT * FROM MergeRequests WHERE State = 'opened'
INSERT INTO MergeRequests (ProjectId, Title, SourceBranch, TargetBranch, Description) VALUES ('12345', 'Add new feature', 'feature-branch', 'main', 'This MR adds a new feature.')
UPDATE MergeRequests SET Title = 'Add new feature', Description = 'This MR adds a new feature.', State = 'closed' WHERE Iid = 1 AND ProjectId = '12345'
DELETE FROM MergeRequests WHERE Iid = 1 AND ProjectId = '12345'

MergeRequestVersions:
SELECT * FROM MergeRequestVersions WHERE ProjectId = '12345' AND MergeRequestIid = '1'

MergeTrains:
SELECT * FROM MergeTrains WHERE ProjectId = '12345'

Metadata:
SELECT * FROM Metadata

MilestoneIssues:
SELECT * FROM MilestoneIssues WHERE ProjectId = '12345' AND GroupId = '789' AND MilestoneId = '123'

MilestoneMergeRequests:
SELECT * FROM MilestoneMergeRequests WHERE ProjectId = '12345' AND GroupId = '789' AND MilestoneId = '123'

NamespaceExists:
SELECT * FROM NamespaceExists WHERE Namespace = 'my-namespace'

Namespaces:
SELECT * FROM Namespaces WHERE Kind = 'group'

NotificationSettings:
SELECT * FROM NotificationSettings WHERE GroupId = '789' AND ProjectId = '12345'
UPDATE NotificationSettings SET Level = 'watch' WHERE GroupId = '789'

PackageFiles:
SELECT * FROM PackageFiles WHERE ProjectId = '12345' AND PackageId = '123'

PackagePipelines:
SELECT * FROM PackagePipelines WHERE ProjectId = '12345' AND PackageId = '123'

PagesDomains:
SELECT * FROM PagesDomains

PendingMembers:
SELECT * FROM PendingMembers WHERE GroupId = '789'

PersonalAccessTokens:
SELECT * FROM PersonalAccessTokens WHERE UserId = '456'
DELETE FROM PersonalAccessTokens WHERE Id = '123'

PersonalAccessTokensSelfAssociations:
SELECT * FROM PersonalAccessTokensSelfAssociations WHERE UserId = '456'

Pipeline:
SELECT * FROM Pipeline WHERE ProjectId = '12345'

Pipelines:
SELECT * FROM Pipelines WHERE ProjectId = '12345'
INSERT INTO Pipelines (ProjectId, Ref) VALUES ('12345', 'main')
DELETE FROM Pipelines WHERE Id = '123'

PipelineJobs:
SELECT * FROM PipelineJobs WHERE ProjectId = '12345' AND PipelineId = '123'

PipelineLatest:
SELECT * FROM PipelineLatest WHERE ProjectId = '12345'

PipelineSchedulePipelines:
SELECT * FROM PipelineSchedulePipelines WHERE ProjectId = '12345' AND PipelineScheduleId = '123'

PipelineSchedules:
SELECT * FROM PipelineSchedules WHERE ProjectId = '12345'
INSERT INTO PipelineSchedules (Description, Ref, Cron, ProjectId, CronTimezone, IsActive) VALUES ('Nightly build', 'main', '0 * * * *', '12345', 'UTC', 'true')
UPDATE PipelineSchedules SET Description = 'Nightly build', Cron = '0 * * * *', IsActive = 'true' WHERE Id = '123'
DELETE FROM PipelineSchedules WHERE Id = '123'

PipelineTestReport:
SELECT * FROM PipelineTestReport WHERE ProjectId = '12345' AND PipelineId = '123'

PipelineTestReportSummary:
SELECT * FROM PipelineTestReportSummary WHERE ProjectId = '12345' AND PipelineId = '123'

PipelineTriggers:
SELECT * FROM PipelineTriggers WHERE ProjectId = '12345'
INSERT INTO PipelineTriggers (Description, ProjectId) VALUES ('Trigger for external CI', '12345')
UPDATE PipelineTriggers SET Description = 'Trigger for external CI' WHERE Id = '123'
DELETE FROM PipelineTriggers WHERE Id = '123'

PipelineVariables:
SELECT * FROM PipelineVariables WHERE ProjectId = '12345' AND PipelineId = '123'

PlanLimits:
SELECT * FROM PlanLimits
UPDATE PlanLimits SET CiPipelineSize = 100, CiActiveJobs = 200, StorageSizeLimit = 10240 WHERE PlanName = 'default'

ProjectAccessTokens:
SELECT * FROM ProjectAccessTokens WHERE ProjectId = '12345'
INSERT INTO ProjectAccessTokens (Scopes, Name, ExpiresAt, ProjectId, AccessLevel) VALUES ('api,read_repository', 'My Token', '2024-12-31', '12345', 40)
DELETE FROM ProjectAccessTokens WHERE Id = '123'

ProjectAliases:
SELECT * FROM ProjectAliases WHERE ProjectId = '12345'
INSERT INTO ProjectAliases (Name, ProjectId) VALUES ('my-alias', '12345')
DELETE FROM ProjectAliases WHERE Name = 'my-alias' AND ProjectId = '12345'

ProjectApprovalRules:
SELECT * FROM ProjectApprovalRules WHERE ProjectId = '12345'
INSERT INTO ProjectApprovalRules (Name, ApprovalsRequired, ProjectId) VALUES ('Security Review', 2, '12345')
UPDATE ProjectApprovalRules SET Name = 'Security Review', ApprovalsRequired = 2 WHERE Id = '123'
DELETE FROM ProjectApprovalRules WHERE Id = '123'

ProjectApprovals:
SELECT * FROM ProjectApprovals WHERE ProjectId = '12345'

ProjectAuditEvents:
SELECT * FROM ProjectAuditEvents WHERE ProjectId = '12345'

ProjectBadges:
SELECT * FROM ProjectBadges WHERE ProjectId = '12345'
INSERT INTO ProjectBadges (LinkUrl, ImageUrl, ProjectId, Name) VALUES ('https://example.com', 'https://img.shields.io/badge/build-passing-brightgreen', '12345', 'Build Status')
UPDATE ProjectBadges SET Name = 'Build Status', LinkUrl = 'https://example.com', ImageUrl = 'https://img.shields.io/badge/build-passing-brightgreen' WHERE Id = '123'
DELETE FROM ProjectBadges WHERE Id = '123'

ProjectBadgesRender:
SELECT * FROM ProjectBadgesRender WHERE ProjectId = '12345' AND ImageUrl = 'https://img.shields.io/badge/build-passing-brightgreen' AND LinkUrl = 'https://gitlab.example.com'

ProjectBoards:
SELECT * FROM ProjectBoards WHERE ProjectId = '12345'
INSERT INTO ProjectBoards (Name, ProjectId) VALUES ('Sprint Board', '12345')
UPDATE ProjectBoards SET Name = 'Sprint Board', HideBacklogList = 'false', HideClosedList = 'false' WHERE Id = '123'
DELETE FROM ProjectBoards WHERE Id = '123'

ProjectCustomAttributes:
SELECT * FROM ProjectCustomAttributes WHERE ProjectId = '12345'
UPDATE ProjectCustomAttributes SET Value = 'attribute-value' WHERE Key = 'attribute-key' AND ProjectId = '12345'
DELETE FROM ProjectCustomAttributes WHERE Key = 'attribute-key' AND ProjectId = '12345'

ProjectDeployKeys:
SELECT * FROM ProjectDeployKeys WHERE ProjectId = '12345'
INSERT INTO ProjectDeployKeys (Title, Key, ProjectId, CanPush) VALUES ('My Deploy Key', 'ssh-rsa AAAA...', '12345', 'false')
UPDATE ProjectDeployKeys SET Title = 'My Deploy Key', CanPush = 'false' WHERE Id = '123'
DELETE FROM ProjectDeployKeys WHERE Id = '123'

ProjectDeployTokens:
SELECT * FROM ProjectDeployTokens WHERE ProjectId = '12345'
INSERT INTO ProjectDeployTokens (Name, Scopes, ProjectId, Username) VALUES ('deploy-token', 'read_registry,read_repository', '12345', 'deploy-user')
DELETE FROM ProjectDeployTokens WHERE Id = '123'

ProjectDoraMetrics:
SELECT * FROM ProjectDoraMetrics WHERE ProjectId = '12345'

ProjectEvents:
SELECT * FROM ProjectEvents WHERE ProjectId = '12345'

ProjectExportStatus:
SELECT * FROM ProjectExportStatus WHERE ProjectId = '12345'

ProjectHooks:
SELECT * FROM ProjectHooks WHERE ProjectId = '12345'
INSERT INTO ProjectHooks (ProjectId, Url, Name, PushEventsEnabled, MergeRequestsEventsEnabled, EnableSslVerification) VALUES ('12345', 'https://example.com/webhook', 'My Hook', 'true', 'true', 'true')
UPDATE ProjectHooks SET Url = 'https://example.com/webhook', Name = 'My Hook', PushEventsEnabled = 'true' WHERE Id = '123'
DELETE FROM ProjectHooks WHERE Id = '123'

ProjectImportStatus:
SELECT * FROM ProjectImportStatus WHERE ProjectId = '12345'

ProjectIntegrations:
SELECT * FROM ProjectIntegrations WHERE ProjectId = '12345'
DELETE FROM ProjectIntegrations WHERE Slug = 'slack' AND ProjectId = '12345'

ProjectIssueBoardLists:
SELECT * FROM ProjectIssueBoardLists WHERE ProjectId = '12345' AND BoardId = '123'
UPDATE ProjectIssueBoardLists SET Position = 2 WHERE Id = '456'
DELETE FROM ProjectIssueBoardLists WHERE Id = '456'

ProjectIssues:
SELECT * FROM ProjectIssues WHERE ProjectId = '12345'
INSERT INTO ProjectIssues (ProjectId, Title, Description, Labels) VALUES ('12345', 'Fix login bug', 'Users cannot log in', 'bug')
UPDATE ProjectIssues SET Title = 'Fix login bug', Description = 'Users cannot log in', State = 'closed' WHERE Iid = 1 AND ProjectId = '12345'
DELETE FROM ProjectIssues WHERE Iid = 1 AND ProjectId = '12345'

ProjectIterations:
SELECT * FROM ProjectIterations WHERE ProjectId = '12345'

ProjectKeyTemplates:
SELECT * FROM ProjectKeyTemplates WHERE ProjectId = '12345'

ProjectLabels:
SELECT * FROM ProjectLabels WHERE ProjectId = '12345'
INSERT INTO ProjectLabels (Name, Color, ProjectId, Description) VALUES ('bug', '#ff0000', '12345', 'Bug label')
UPDATE ProjectLabels SET Color = '#ff0000', Description = 'Bug label' WHERE Id = '123'
DELETE FROM ProjectLabels WHERE Id = '123'

ProjectMembers:
SELECT * FROM ProjectMembers WHERE ProjectId = '12345'
INSERT INTO ProjectMembers (Id, AccessLevel, ProjectId, ExpiresAt) VALUES ('456', 40, '12345', '2024-12-31')
UPDATE ProjectMembers SET AccessLevel = 40, ExpiresAt = '2024-12-31' WHERE Id = '456'
DELETE FROM ProjectMembers WHERE Id = '456'

ProjectMergeRequests:
SELECT * FROM ProjectMergeRequests WHERE ProjectId = '12345'
INSERT INTO ProjectMergeRequests (ProjectId, Title, TargetBranch, SourceBranch, Description) VALUES ('12345', 'Add new feature', 'main', 'feature-branch', 'This MR adds a new feature.')
UPDATE ProjectMergeRequests SET Title = 'Add new feature', Description = 'This MR adds a new feature.', State = 'closed' WHERE Iid = 1 AND ProjectId = '12345'
DELETE FROM ProjectMergeRequests WHERE Iid = 1 AND ProjectId = '12345'

ProjectMilestones:
SELECT * FROM ProjectMilestones WHERE ProjectId = '12345'
INSERT INTO ProjectMilestones (ProjectId, Title, Description, DueDate) VALUES ('12345', 'Q1 Release', 'Q1 milestone', '2024-03-31')
UPDATE ProjectMilestones SET Title = 'Q1 Release', Description = 'Q1 milestone', DueDate = '2024-03-31' WHERE Id = '123'
DELETE FROM ProjectMilestones WHERE Id = '123'

ProjectMirrors:
SELECT * FROM ProjectMirrors WHERE ProjectId = '12345'
INSERT INTO ProjectMirrors (Url, ProjectId, IsEnabled, OnlyProtectedBranches) VALUES ('https://example.com/repo.git', '12345', 'true', 'false')
UPDATE ProjectMirrors SET IsEnabled = 'true', OnlyProtectedBranches = 'false' WHERE Id = '123'
DELETE FROM ProjectMirrors WHERE Id = '123'

ProjectPackages:
SELECT * FROM ProjectPackages WHERE ProjectId = '12345'
DELETE FROM ProjectPackages WHERE Id = '123'

ProjectPagesDomains:
SELECT * FROM ProjectPagesDomains WHERE ProjectId = '12345'
INSERT INTO ProjectPagesDomains (Domain, ProjectId) VALUES ('example.com', '12345')
UPDATE ProjectPagesDomains SET AutoSslEnabled = 'true' WHERE Domain = 'example.com' AND ProjectId = '12345'
DELETE FROM ProjectPagesDomains WHERE Domain = 'example.com' AND ProjectId = '12345'

ProjectRelationImports:
SELECT * FROM ProjectRelationImports WHERE ProjectId = '12345'

ProjectReleases:
SELECT * FROM ProjectReleases WHERE ProjectId = '12345'
INSERT INTO ProjectReleases (TagName, ProjectId, Name, Description) VALUES ('v1.0.0', '12345', 'Version 1.0.0', 'Initial release')
UPDATE ProjectReleases SET Name = 'Version 1.0.1', Description = 'Patch release' WHERE TagName = 'v1.0.0' AND ProjectId = '12345'
DELETE FROM ProjectReleases WHERE TagName = 'v1.0.0' AND ProjectId = '12345'

ProjectRepositoryStorageMoves:
SELECT * FROM ProjectRepositoryStorageMoves WHERE ProjectId = '12345'

ProjectRunners:
SELECT * FROM ProjectRunners WHERE ProjectId = '12345'
INSERT INTO ProjectRunners (Id, ProjectId) VALUES ('123', '12345')
DELETE FROM ProjectRunners WHERE Id = '123'

Projects:
SELECT * FROM Projects WHERE Visibility = 'public'
INSERT INTO Projects (Name) VALUES ('my-project')
UPDATE Projects SET Name = 'updated-project', Visibility = 'private' WHERE Id = '123'
DELETE FROM Projects WHERE Id = '123'

ProjectSecuritySettings:
SELECT * FROM ProjectSecuritySettings WHERE ProjectId = '12345'

ProjectSnippets:
SELECT * FROM ProjectSnippets WHERE ProjectId = '12345'
INSERT INTO ProjectSnippets (Title, ProjectId) VALUES ('My Snippet', '12345')
UPDATE ProjectSnippets SET Title = 'Updated Snippet', Visibility = 'private' WHERE Id = '123'
DELETE FROM ProjectSnippets WHERE Id = '123'

ProjectStatistics:
SELECT * FROM ProjectStatistics WHERE ProjectId = '12345'

ProjectTemplates:
SELECT * FROM ProjectTemplates WHERE ProjectId = '12345' AND Type = 'dockerfile'

ProjectUsers:
SELECT * FROM ProjectUsers WHERE ProjectId = '12345'

ProjectVariables:
SELECT * FROM ProjectVariables WHERE ProjectId = '12345'
INSERT INTO ProjectVariables (Key, Value, ProjectId) VALUES ('MY_VAR', 'my_value', '12345')
UPDATE ProjectVariables SET Value = 'new_value', IsProtected = 'true' WHERE Key = 'MY_VAR' AND ProjectId = '12345'
DELETE FROM ProjectVariables WHERE Key = 'MY_VAR' AND ProjectId = '12345'

ProjectWikis:
SELECT * FROM ProjectWikis WHERE ProjectId = '12345'
INSERT INTO ProjectWikis (Title, Content, ProjectId) VALUES ('Home', 'Welcome to the wiki.', '12345')
UPDATE ProjectWikis SET Content = 'Updated wiki content.' WHERE Slug = 'home' AND ProjectId = '12345'
DELETE FROM ProjectWikis WHERE Slug = 'home' AND ProjectId = '12345'

ProtectedBranches:
SELECT * FROM ProtectedBranches WHERE ProjectId = '12345'
INSERT INTO ProtectedBranches (Name, ProjectId) VALUES ('main', '12345')
UPDATE ProtectedBranches SET AllowForcePush = 'false', CodeOwnerApprovalRequired = 'true' WHERE Name = 'main' AND ProjectId = '12345'
DELETE FROM ProtectedBranches WHERE Name = 'main' AND ProjectId = '12345'

ProtectedEnvironments:
SELECT * FROM ProtectedEnvironments WHERE ProjectId = '12345'
INSERT INTO ProtectedEnvironments (Name, DeployAccessLevels, ProjectId) VALUES ('production', '[{"access_level": 40}]', '12345')
UPDATE ProtectedEnvironments SET DeployAccessLevels = '[{"access_level": 60}]' WHERE Name = 'production' AND ProjectId = '12345'
DELETE FROM ProtectedEnvironments WHERE Name = 'production' AND ProjectId = '12345'

ProtectedTags:
SELECT * FROM ProtectedTags WHERE ProjectId = '12345'
INSERT INTO ProtectedTags (Name, ProjectId) VALUES ('v*', '12345')
DELETE FROM ProtectedTags WHERE Name = 'v*' AND ProjectId = '12345'

PublicSnippets:
SELECT * FROM PublicSnippets WHERE Visibility = 'public'

RegistryRepositories:
SELECT * FROM RegistryRepositories WHERE ProjectId = '12345'
DELETE FROM RegistryRepositories WHERE Id = '123'

ReleaseLinks:
SELECT * FROM ReleaseLinks WHERE ProjectId = '12345' AND TagName = 'v1.0.0'
INSERT INTO ReleaseLinks (Name, Url, ProjectId, TagName) VALUES ('Binary', 'https://example.com/binary.zip', '12345', 'v1.0.0')
UPDATE ReleaseLinks SET Name = 'Binary v2', Url = 'https://example.com/binary-v2.zip' WHERE Id = '123'
DELETE FROM ReleaseLinks WHERE Id = '123'

RepositoryBlobs:
SELECT * FROM RepositoryBlobs WHERE ProjectId = '12345' AND Sha = 'abc123def456'

RepositoryContributors:
SELECT * FROM RepositoryContributors WHERE ProjectId = '12345'

RepositoryFileBlame:
SELECT * FROM RepositoryFileBlame WHERE ProjectId = '12345' AND FilePath = 'README.md' AND Ref = 'main'

RepositoryFiles:
SELECT * FROM RepositoryFiles WHERE ProjectId = '12345' AND FilePath = 'README.md' AND Ref = 'main'
INSERT INTO RepositoryFiles (FilePath, Content, Branch, CommitMessage, ProjectId) VALUES ('README.md', 'SGVsbG8gV29ybGQ=', 'main', 'Add README', '12345')
UPDATE RepositoryFiles SET Content = 'VXBkYXRlZCBjb250ZW50', Branch = 'main', CommitMessage = 'Update README' WHERE FilePath = 'README.md' AND ProjectId = '12345'
DELETE FROM RepositoryFiles WHERE FilePath = 'README.md' AND ProjectId = '12345' AND Branch = 'main'

RepositoryMergeBase:
SELECT * FROM RepositoryMergeBase WHERE ProjectId = '12345'

RepositoryTree:
SELECT * FROM RepositoryTree WHERE ProjectId = '12345'

ResourceGroups:
SELECT * FROM ResourceGroups WHERE ProjectId = '12345'

RunnerJobs:
SELECT * FROM RunnerJobs WHERE RunnerId = '123'

RunnerManagers:
SELECT * FROM RunnerManagers WHERE RunnerId = '123'

Runners:
SELECT * FROM Runners WHERE Status = 'active'
UPDATE Runners SET Description = 'My runner', IsPaused = 'false' WHERE Id = '123'
DELETE FROM Runners WHERE Id = '123'

Search:
SELECT * FROM Search WHERE Query = 'test' AND ProjectId = '12345'

SecureFiles:
SELECT * FROM SecureFiles WHERE ProjectId = '12345'
DELETE FROM SecureFiles WHERE Id = '123'

SelfUser:
SELECT * FROM SelfUser

SelfUserEmails:
SELECT * FROM SelfUserEmails
INSERT INTO SelfUserEmails (Email) VALUES ('[email protected]')
DELETE FROM SelfUserEmails WHERE Id = '123'

SelfUserGpgKeys:
SELECT * FROM SelfUserGpgKeys
INSERT INTO SelfUserGpgKeys (Key) VALUES ('-----BEGIN PGP PUBLIC KEY BLOCK-----...')
DELETE FROM SelfUserGpgKeys WHERE Id = '123'

SelfUserKeys:
SELECT * FROM SelfUserKeys
INSERT INTO SelfUserKeys (Title, Key) VALUES ('My SSH Key', 'ssh-rsa AAAA...')
DELETE FROM SelfUserKeys WHERE Id = '123'

SelfUserStatus:
SELECT * FROM SelfUserStatus WHERE UserId = '456'

SidekiqCompoundMetrics:
SELECT * FROM SidekiqCompoundMetrics

SidekiqJobStats:
SELECT * FROM SidekiqJobStats

SidekiqProcessMetrics:
SELECT * FROM SidekiqProcessMetrics

SidekiqQueueMetrics:
SELECT * FROM SidekiqQueueMetrics

SnippetDiscussions:
SELECT * FROM SnippetDiscussions WHERE ProjectId = '12345' AND SnippetId = '123'

SnippetNotes:
SELECT * FROM SnippetNotes WHERE ProjectId = '12345' AND SnippetId = '123'
INSERT INTO SnippetNotes (Body, ProjectId, SnippetId) VALUES ('This is a note.', '12345', '123')
UPDATE SnippetNotes SET Body = 'Updated note.' WHERE Id = '456'
DELETE FROM SnippetNotes WHERE Id = '456'

Snippets:
SELECT * FROM Snippets WHERE Visibility = 'public'
INSERT INTO Snippets (Title, FileName, Content) VALUES ('My Snippet', 'hello.txt', 'Hello World')
UPDATE Snippets SET Title = 'Updated Snippet', Visibility = 'private' WHERE Id = '123'
DELETE FROM Snippets WHERE Id = '123'

Statistics:
SELECT * FROM Statistics

SystemHooks:
SELECT * FROM SystemHooks
INSERT INTO SystemHooks (Url) VALUES ('https://example.com/webhook')
DELETE FROM SystemHooks WHERE Id = '123'

Tags:
SELECT * FROM Tags WHERE ProjectId = '12345'
INSERT INTO Tags (Name, Ref, ProjectId) VALUES ('v1.0.0', 'main', '12345')
DELETE FROM Tags WHERE Name = 'v1.0.0' AND ProjectId = '12345'

TagSignature:
SELECT * FROM TagSignature WHERE ProjectId = '12345' AND TagName = 'v1.0.0'

TodoItems:
SELECT * FROM TodoItems WHERE State = 'pending'

Topics:
SELECT * FROM Topics WHERE Name = 'javascript'
INSERT INTO Topics (Name, Title) VALUES ('my-topic', 'My Topic')
UPDATE Topics SET Title = 'Updated Topic', Description = 'A topic description.' WHERE Id = '123'
DELETE FROM Topics WHERE Id = '123'

UserAssociationsCount:
SELECT * FROM UserAssociationsCount WHERE UserId = '456'

UserContributedProjects:
SELECT * FROM UserContributedProjects WHERE UserId = '456'

UserCounts:
SELECT * FROM UserCounts WHERE UserId = '456'

UserCustomAttributes:
SELECT * FROM UserCustomAttributes WHERE UserId = '456'
UPDATE UserCustomAttributes SET Value = 'my_value' WHERE Key = 'my_key' AND UserId = '456'
DELETE FROM UserCustomAttributes WHERE Key = 'my_key' AND UserId = '456'

UserEmails:
SELECT * FROM UserEmails WHERE UserId = '456'
INSERT INTO UserEmails (Email, UserId) VALUES ('[email protected]', '456')
DELETE FROM UserEmails WHERE Id = '123'

UserEvents:
SELECT * FROM UserEvents WHERE UserId = '456'

UserGpgKeys:
SELECT * FROM UserGpgKeys WHERE UserId = '456'
INSERT INTO UserGpgKeys (Key, UserId) VALUES ('-----BEGIN PGP PUBLIC KEY BLOCK-----...', '456')
DELETE FROM UserGpgKeys WHERE Id = '123'

UserKeys:
SELECT * FROM UserKeys WHERE UserId = '456'
INSERT INTO UserKeys (Title, Key, UserId) VALUES ('My SSH Key', 'ssh-rsa AAAA...', '456')
DELETE FROM UserKeys WHERE Id = '123'

UserMemberships:
SELECT * FROM UserMemberships WHERE UserId = '456'

UserPreferences:
SELECT * FROM UserPreferences WHERE UserId = '456'
UPDATE UserPreferences SET ViewDiffsFileByFile = 'true', ShowWhitespaceInDiffs = 'false' WHERE Id = '123'

UserProjectDeployKeys:
SELECT * FROM UserProjectDeployKeys WHERE UserId = '456'

UserProjects:
SELECT * FROM UserProjects WHERE UserId = '456'

Users:
SELECT * FROM Users WHERE Username = 'johndoe'
INSERT INTO Users (Username, Email, Name) VALUES ('johndoe', '[email protected]', 'John Doe')
UPDATE Users SET Name = 'John D. Doe', Bio = 'Software engineer.' WHERE Id = '123'
DELETE FROM Users WHERE Id = '123'

UserStarredProjects:
SELECT * FROM UserStarredProjects WHERE UserId = '456'

UserStatus:
SELECT * FROM UserStatus WHERE UserId = '456'
UPDATE UserStatus SET Emoji = 'coffee', Message = 'Working from home' WHERE Emoji = 'coffee'

Connection Properties

The connection string properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure in the connection string for this provider.


Property Description
APIKey The Personal Access Token for your GitLab account.
AuthScheme The scheme used for authentication. Accepted entries are OAuth or APIKey.
Allowed values are: BASIC, NONE, NTLM, OAUTH, APIKEY, OAUTH_CLIENT, OAUTH_PASSWORD
BaseURL The URL of the GitLab instance.
CallbackURL Identifies the URL users return to after authenticating to API via OAuth (Custom OAuth applications only).
InitiateOAuth Specifies the process for obtaining or refreshing the OAuth access token, which maintains user access while an authenticated, authorized user is working.
Allowed values are: OFF, REFRESH, GETANDREFRESH
OAuthAccessToken Specifies the OAuth access token used to authenticate requests to the data source. This token is issued by the authorization server after a successful OAuth exchange.
OAuthClientId Specifies the client ID (also known as the consumer key) assigned to your custom OAuth application. This ID is required to identify the application to the OAuth authorization server during authentication.
OAuthClientSecret Specifies the client secret assigned to your custom OAuth application. This confidential value is used to authenticate the application to the OAuth authorization server. (Custom OAuth applications only.).
OAuthExpiresIn Specifies the duration in seconds, of an OAuth Access Token's lifetime. The token can be reissued to keep access alive as long as the user keeps working.
OAuthRefreshToken Specifies the OAuth refresh token used to request a new access token after the original has expired.
OAuthSettingsLocation Specifies the location of the settings file where OAuth values are saved.
OAuthTokenTimestamp Displays a Unix epoch timestamp in milliseconds that shows how long ago the current access token was created.
OAuthVerifier Specifies a verifier code returned from the OAuthAuthorizationURL . Used when authenticating to OAuth on a headless server, where a browser can't be launched. Requires both OAuthSettingsLocation and OAuthVerifier to be set.

Copyright (c) 2026 CData Software, Inc. - All rights reserved.
Build 26.0.9770.0