Skip to content
Talk to an Engineer Dashboard

Connect to GitLab to manage repositories, issues, merge requests, pipelines, CI/CD, users, groups, and DevOps workflows.

GitLab logo

Supports authentication: OAuth 2.0

Register your Scalekit environment with the GitLab connector so Scalekit handles the OAuth 2.0 flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:

  1. Set up auth redirects

    • In Scalekit dashboard, go to Agent AuthCreate Connection. Find GitLab and click Create.

    • Click Use your own credentials and copy the redirect URI. It looks like https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.

      Copy redirect URI from Scalekit dashboard

    • Go to GitLab Applications settings (User SettingsApplications) and open or create your OAuth application.

    • Paste the copied URI into the Redirect URI field and click Save application.

      Add redirect URI and scopes in GitLab OAuth app

    • Under Scopes, select the permissions your agent needs:

      ScopeAccess grantedUse when
      apiFull read/write access to all API endpointsMost tools — recommended for full access
      read_userCurrent user’s profilegitlab_current_user_get only
      read_apiRead-only access to all API endpointsRead-only agents
      read_repositoryRead access to repositoriesFile and commit reads only
      write_repositoryPush access to repositoriesgitlab_file_create, gitlab_file_update, gitlab_branch_create
  2. Get client credentials

    After saving the application, GitLab shows the Application ID and Secret on the application detail page:

    GitLab application detail page with Application ID and Secret

    • Application ID — listed on the app’s main settings page
    • Secret — shown only once after creation; if you lose it, regenerate it from the same page
  3. Add credentials in Scalekit

    • In Scalekit dashboard, go to Agent AuthConnections and open the connection you created.

    • Enter your credentials:

      • Client ID — paste your GitLab Application ID
      • Client Secret — paste your GitLab Secret

      Add GitLab credentials in Scalekit dashboard

    • Click Save.

Create a new branch in a GitLab repository.

NameTypeRequiredDescription
branchstringYesThe name of the new branch.
idstringYesThe project ID (numeric) or URL-encoded path.
refstringYesThe source branch, tag, or commit SHA to branch from.

Delete a branch from a GitLab repository.

NameTypeRequiredDescription
branchstringYesThe name of the branch to delete.
idstringYesThe project ID (numeric) or URL-encoded path.

Get details of a specific branch in a GitLab repository.

NameTypeRequiredDescription
branchstringYesThe name of the branch.
idstringYesThe project ID (numeric) or URL-encoded path.

List repository branches for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
searchstringNoFilter branches by name.

Add a comment to a specific commit.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
lineintegerNoLine number for an inline comment.
notestringYesThe comment text.
pathstringNoFile path for an inline comment.
shastringYesThe commit SHA.

List comments on a specific commit.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
shastringYesThe commit SHA.

Get the diff of a specific commit.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
shastringYesThe commit SHA.

Get details of a specific commit by its SHA.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
shastringYesThe commit SHA.

List repository commits for a GitLab project.

NameTypeRequiredDescription
authorstringNoFilter commits by author name or email.
idstringYesThe project ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
pathstringNoFilter commits by file path.
per_pageintegerNoNumber of results per page (max 100).
ref_namestringNoThe branch or tag name to list commits from.
sincestringNoOnly commits after this date are returned (ISO 8601 format).
untilstringNoOnly commits before this date are returned (ISO 8601 format).

Compare two refs (branches, tags, or commits) in a GitLab repository.

NameTypeRequiredDescription
fromstringYesThe source branch, tag, or commit SHA to compare from.
idstringYesThe project ID (numeric) or URL-encoded path.
straightstringNoComparison method: ‘true’ for straight diff, ‘false’ for merge base.
tostringYesThe target branch, tag, or commit SHA to compare to.

Get the currently authenticated user’s profile.

List SSH keys for the currently authenticated user.

Create a new deploy key for a GitLab project.

NameTypeRequiredDescription
can_pushstringNoIf ‘true’, the deploy key has write access.
idstringYesThe project ID (numeric) or URL-encoded path.
keystringYesThe SSH public key content.
titlestringYesA descriptive title for the deploy key.

Delete a deploy key from a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
key_idintegerYesThe numeric ID of the deploy key to delete.

List deploy keys for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.

Create a new file in a GitLab repository.

NameTypeRequiredDescription
author_emailstringNoThe author’s email for the commit.
author_namestringNoThe author’s name for the commit.
branchstringYesThe branch to create the file on.
commit_messagestringYesThe commit message for creating this file.
contentstringYesThe file content (plain text or base64 encoded).
encodingstringNoThe encoding type: ‘text’ or ‘base64’.
file_pathstringYesURL-encoded file path in the repository.
idstringYesThe project ID (numeric) or URL-encoded path.

Delete a file from a GitLab repository.

NameTypeRequiredDescription
branchstringYesThe branch to delete the file from.
commit_messagestringYesThe commit message for deleting this file.
file_pathstringYesURL-encoded file path in the repository.
idstringYesThe project ID (numeric) or URL-encoded path.

Get a file’s content and metadata from a GitLab repository.

NameTypeRequiredDescription
file_pathstringYesURL-encoded file path in the repository.
idstringYesThe project ID (numeric) or URL-encoded path.
refstringYesThe branch, tag, or commit SHA to get the file from.

Update an existing file in a GitLab repository.

NameTypeRequiredDescription
branchstringYesThe branch to update the file on.
commit_messagestringYesThe commit message for updating this file.
contentstringYesThe new file content.
file_pathstringYesURL-encoded file path in the repository.
idstringYesThe project ID (numeric) or URL-encoded path.
last_commit_idstringNoLast known file commit ID (for conflict detection).

Search globally across GitLab for projects, issues, merge requests, and more.

NameTypeRequiredDescription
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
scopestringYesThe scope to search in.
searchstringYesThe search query string.

Create a new GitLab group or subgroup.

NameTypeRequiredDescription
descriptionstringNoOptional group description.
namestringYesThe name of the group.
parent_idintegerNoID of the parent group (for subgroups).
pathstringYesURL-friendly path slug for the group.
visibilitystringNoVisibility level: private, internal, or public.

Delete a GitLab group. This is an asynchronous operation (returns 202 Accepted).

NameTypeRequiredDescription
idstringYesThe group ID (numeric) or URL-encoded path.

Get a specific group by numeric ID or URL-encoded path.

NameTypeRequiredDescription
idstringYesThe group ID (numeric) or URL-encoded path.

Add a member to a GitLab group.

NameTypeRequiredDescription
access_levelintegerYesAccess level for the member. 10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner.
idstringYesThe group ID (numeric) or URL-encoded path.
user_idintegerYesThe numeric ID of the user to add.

Remove a member from a GitLab group.

NameTypeRequiredDescription
idstringYesThe group ID (numeric) or URL-encoded path.
user_idintegerYesThe numeric ID of the user to remove.

List members of a GitLab group.

NameTypeRequiredDescription
idstringYesThe group ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
querystringNoFilter members by name.

List projects belonging to a GitLab group.

NameTypeRequiredDescription
idstringYesThe group ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
searchstringNoFilter projects by name.
visibilitystringNoFilter by visibility level: public, internal, or private.

Update a GitLab group’s settings.

NameTypeRequiredDescription
descriptionstringNoUpdated group description.
idstringYesThe group ID (numeric) or URL-encoded path.
namestringNoNew name for the group.
visibilitystringNoNew visibility level: private, internal, or public.

List groups accessible to the authenticated user.

NameTypeRequiredDescription
min_access_levelintegerNoMinimum access level filter (10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner).
ownedstringNoIf ‘true’, limits to groups explicitly owned by the current user.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
searchstringNoSearch groups by name.

Create a new issue in a GitLab project.

NameTypeRequiredDescription
assignee_idsstringNoComma-separated list of user IDs to assign.
descriptionstringNoDetailed description of the issue (Markdown supported).
due_datestringNoDue date for the issue in YYYY-MM-DD format.
idstringYesThe project ID (numeric) or URL-encoded path.
labelsstringNoComma-separated list of label names to apply.
milestone_idintegerNoThe ID of the milestone to assign.
titlestringYesThe title of the issue.

Delete an issue from a GitLab project (admin only).

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
issue_iidintegerYesThe internal ID of the issue within the project.

Get a specific issue by its internal ID (IID).

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
issue_iidintegerYesThe internal ID of the issue within the project.

List labels for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).

Add a comment to a specific issue.

NameTypeRequiredDescription
bodystringYesThe comment text (Markdown supported).
idstringYesThe project ID (numeric) or URL-encoded path.
issue_iidintegerYesThe internal ID of the issue.

Delete a comment on a specific issue.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
issue_iidintegerYesThe internal ID of the issue.
note_idintegerYesThe ID of the note to delete.

Update a comment on a specific issue.

NameTypeRequiredDescription
bodystringYesThe updated comment text (Markdown supported).
idstringYesThe project ID (numeric) or URL-encoded path.
issue_iidintegerYesThe internal ID of the issue.
note_idintegerYesThe ID of the note to update.

List comments (notes) on a specific issue.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
issue_iidintegerYesThe internal ID of the issue.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).

Update an existing issue in a GitLab project.

NameTypeRequiredDescription
assignee_idsstringNoComma-separated list of user IDs to assign.
descriptionstringNoUpdated description of the issue.
idstringYesThe project ID (numeric) or URL-encoded path.
issue_iidintegerYesThe internal ID of the issue within the project.
labelsstringNoComma-separated list of label names.
state_eventstringNoState transition: ‘close’ to close, ‘reopen’ to reopen.
titlestringNoNew title for the issue.

List issues for a GitLab project.

NameTypeRequiredDescription
assignee_idintegerNoFilter issues by assignee user ID.
idstringYesThe project ID (numeric) or URL-encoded path.
labelsstringNoFilter issues by comma-separated label names.
milestonestringNoFilter issues by milestone title.
order_bystringNoOrder issues by field (created_at, updated_at, priority).
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
searchstringNoSearch issues by title or description.
sortstringNoSort order: asc or desc.
statestringNoFilter issues by state: opened, closed, or all.

Download the artifacts archive of a specific CI/CD job.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
job_idintegerYesThe numeric ID of the job.

Cancel a specific CI/CD job.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
job_idintegerYesThe numeric ID of the job to cancel.

Get details of a specific CI/CD job.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
job_idintegerYesThe numeric ID of the job.

Get the log (trace) output of a specific CI/CD job.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
job_idintegerYesThe numeric ID of the job.

Retry a specific CI/CD job.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
job_idintegerYesThe numeric ID of the job to retry.

List all jobs for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
scopestringNoFilter jobs by scope/status.

Create a new label in a GitLab project.

NameTypeRequiredDescription
colorstringYesThe color for the label in hex format (e.g. #FF0000).
descriptionstringNoOptional description for the label.
idstringYesThe project ID (numeric) or URL-encoded path.
namestringYesThe name of the label.

Get the approval state of a specific merge request.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
merge_request_iidintegerYesThe internal ID of the merge request.

Approve a merge request.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
merge_request_iidintegerYesThe internal ID of the merge request.

List commits in a specific merge request.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
merge_request_iidintegerYesThe internal ID of the merge request.

Create a new merge request in a GitLab project.

NameTypeRequiredDescription
assignee_idintegerNoThe numeric ID of the user to assign.
descriptionstringNoDescription for the merge request (Markdown supported).
idstringYesThe project ID (numeric) or URL-encoded path.
labelsstringNoComma-separated list of label names.
remove_source_branchstringNoIf ‘true’, removes the source branch after merging.
source_branchstringYesThe source branch name.
squashstringNoIf ‘true’, squashes all commits into one on merge.
target_branchstringYesThe target branch name.
titlestringYesThe title of the merge request.

Get the diffs of a specific merge request.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
merge_request_iidintegerYesThe internal ID of the merge request.

Get a specific merge request by its internal ID (IID).

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
merge_request_iidintegerYesThe internal ID of the merge request within the project.

Merge an approved merge request in a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
merge_commit_messagestringNoCustom merge commit message.
merge_request_iidintegerYesThe internal ID of the merge request.
should_remove_source_branchstringNoIf ‘true’, removes the source branch after merging.
squashstringNoIf ‘true’, squashes all commits into one.

Add a comment to a specific merge request.

NameTypeRequiredDescription
bodystringYesThe comment text (Markdown supported).
idstringYesThe project ID (numeric) or URL-encoded path.
merge_request_iidintegerYesThe internal ID of the merge request.

List comments on a specific merge request.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
merge_request_iidintegerYesThe internal ID of the merge request.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).

Update an existing merge request in a GitLab project.

NameTypeRequiredDescription
assignee_idintegerNoThe numeric ID of the user to assign.
descriptionstringNoUpdated description for the merge request.
idstringYesThe project ID (numeric) or URL-encoded path.
labelsstringNoComma-separated list of label names.
merge_request_iidintegerYesThe internal ID of the merge request.
state_eventstringNoState transition: ‘close’ to close, ‘reopen’ to reopen.
target_branchstringNoNew target branch name.
titlestringNoNew title for the merge request.

List merge requests for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
labelsstringNoFilter by comma-separated label names.
order_bystringNoOrder MRs by field (created_at, updated_at, title).
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
searchstringNoSearch MRs by title or description.
sortstringNoSort order: asc or desc.
source_branchstringNoFilter by source branch name.
statestringNoFilter by state: opened, closed, locked, merged, or all.
target_branchstringNoFilter by target branch name.

Create a new milestone in a GitLab project.

NameTypeRequiredDescription
descriptionstringNoOptional description for the milestone.
due_datestringNoDue date for the milestone in YYYY-MM-DD format.
idstringYesThe project ID (numeric) or URL-encoded path.
start_datestringNoStart date for the milestone in YYYY-MM-DD format.
titlestringYesThe title of the milestone.

Delete a milestone from a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
milestone_idintegerYesThe numeric ID of the milestone.

Get a specific project milestone.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
milestone_idintegerYesThe numeric ID of the milestone.

Update an existing milestone in a GitLab project.

NameTypeRequiredDescription
descriptionstringNoUpdated description for the milestone.
due_datestringNoUpdated due date in YYYY-MM-DD format.
idstringYesThe project ID (numeric) or URL-encoded path.
milestone_idintegerYesThe numeric ID of the milestone.
state_eventstringNoState transition: ‘close’ to close, ‘activate’ to reopen.
titlestringNoNew title for the milestone.

List milestones for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
searchstringNoFilter milestones by title.
statestringNoFilter milestones by state: active or closed.

List namespaces available to the current user (personal namespaces and groups).

NameTypeRequiredDescription
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
searchstringNoFilter namespaces by name.

Cancel a running pipeline.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pipeline_idintegerYesThe numeric ID of the pipeline to cancel.

Trigger a new CI/CD pipeline for a specific branch or tag. Note: GitLab.com requires identity verification on the account before pipelines can be triggered via API. Ensure the authenticated user has verified their identity at gitlab.com/-/profile/verify.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
refstringYesThe branch or tag name to run the pipeline on.
variablesstringNoJSON array of pipeline variables, each with ‘key’ and ‘value’ fields.

Delete a pipeline from a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pipeline_idintegerYesThe numeric ID of the pipeline to delete.

Get details of a specific pipeline.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pipeline_idintegerYesThe numeric ID of the pipeline.

List jobs for a specific pipeline.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
pipeline_idintegerYesThe numeric ID of the pipeline.
scopestringNoFilter jobs by scope.

Retry a failed pipeline.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pipeline_idintegerYesThe numeric ID of the pipeline to retry.

List pipelines for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
refstringNoFilter pipelines by branch or tag name.
shastringNoFilter pipelines by commit SHA.
statusstringNoFilter by pipeline status.

Create a new GitLab project.

NameTypeRequiredDescription
descriptionstringNoA short description of the project.
initialize_with_readmestringNoIf ‘true’, initializes the repository with a README.
namestringYesThe name of the project.
visibilitystringNoVisibility level: private, internal, or public. Defaults to private.

Delete a GitLab project. This is an asynchronous operation (returns 202 Accepted).

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path (e.g. ‘namespace%2Fproject’).

Fork a GitLab project into a namespace.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path to fork.
namestringNoThe name for the forked project.
namespace_idintegerNoThe ID of the namespace to fork the project into.
pathstringNoThe URL path (slug) for the forked project. Must be unique in the target namespace. If omitted, GitLab uses the source project path which may already be taken.

List forks of a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).

Get a specific project by numeric ID or URL-encoded namespace/project path.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path (e.g. ‘namespace%2Fproject’).

Add a member to a GitLab project with a specified access level.

NameTypeRequiredDescription
access_levelintegerYesAccess level for the member. 10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner.
idstringYesThe project ID (numeric) or URL-encoded path.
user_idintegerYesThe numeric ID of the user to add.

Remove a member from a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
user_idintegerYesThe numeric ID of the user to remove.

List members of a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
querystringNoFilter members by name.

Search within a specific GitLab project for issues, merge requests, commits, code, and more.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
refstringNoThe branch or tag name to search (for blobs or commits scope).
scopestringYesThe scope to search in within the project.
searchstringYesThe search query string.

Create a new snippet in a GitLab project.

NameTypeRequiredDescription
contentstringYesThe content of the snippet.
descriptionstringNoOptional description for the snippet.
file_namestringYesThe filename for the snippet.
idstringYesThe project ID (numeric) or URL-encoded path.
titlestringYesThe title of the snippet.
visibilitystringNoVisibility level: private, internal, or public.

Get a specific snippet from a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
snippet_idintegerYesThe numeric ID of the snippet.

List all snippets in a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).

Star a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.

Unstar a GitLab project. Returns 200 with project data if successfully unstarred, or 304 if the project was not starred.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.

Update an existing GitLab project’s settings.

NameTypeRequiredDescription
default_branchstringNoThe default branch name for the project.
descriptionstringNoA short description of the project.
idstringYesThe project ID (numeric) or URL-encoded path (e.g. ‘namespace%2Fproject’).
namestringNoNew name for the project.
visibilitystringNoNew visibility level: private, internal, or public.

Create a new CI/CD variable for a GitLab project.

NameTypeRequiredDescription
environment_scopestringNoThe environment scope for this variable (default ’*’).
idstringYesThe project ID (numeric) or URL-encoded path.
keystringYesThe variable key name.
maskedstringNoIf ‘true’, masks the variable in job logs.
protectedstringNoIf ‘true’, the variable is only available on protected branches/tags.
valuestringYesThe value of the variable.
variable_typestringNoThe variable type: env_var (default) or file.

Delete a CI/CD variable from a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
keystringYesThe variable key name to delete.

Get a specific CI/CD variable for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
keystringYesThe variable key name.

Update an existing CI/CD variable for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
keystringYesThe variable key name to update.
maskedstringNoIf ‘true’, masks the variable in job logs.
protectedstringNoIf ‘true’, the variable is only available on protected branches/tags.
valuestringYesThe new value of the variable.

List all CI/CD variables for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.

Create a new webhook for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
issues_eventsstringNoIf ‘true’, trigger the webhook on issue events.
merge_requests_eventsstringNoIf ‘true’, trigger on merge request events.
pipeline_eventsstringNoIf ‘true’, trigger on pipeline events.
push_eventsstringNoIf ‘true’, trigger the webhook on push events.
tokenstringNoSecret token to validate webhook payloads.
urlstringYesThe URL to send webhook payloads to.

Delete a webhook from a GitLab project.

NameTypeRequiredDescription
hook_idintegerYesThe numeric ID of the webhook to delete.
idstringYesThe project ID (numeric) or URL-encoded path.

Get a specific webhook for a GitLab project.

NameTypeRequiredDescription
hook_idintegerYesThe numeric ID of the webhook.
idstringYesThe project ID (numeric) or URL-encoded path.

Update an existing webhook for a GitLab project.

NameTypeRequiredDescription
hook_idintegerYesThe numeric ID of the webhook to update.
idstringYesThe project ID (numeric) or URL-encoded path.
merge_requests_eventsstringNoIf ‘true’, trigger on merge request events.
pipeline_eventsstringNoIf ‘true’, trigger on pipeline events.
push_eventsstringNoIf ‘true’, trigger on push events.
urlstringYesThe new URL to send webhook payloads to.

List all webhooks configured for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.

List all projects accessible to the authenticated user. Supports filtering by search, ownership, membership, and visibility.

NameTypeRequiredDescription
membershipstringNoIf ‘true’, limits by projects where the user is a member.
order_bystringNoOrder projects by a field (e.g. id, name, created_at).
ownedstringNoIf ‘true’, limits by projects explicitly owned by the current user.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
searchstringNoSearch query to filter projects by name.
sortstringNoSort order: ‘asc’ or ‘desc’.
visibilitystringNoFilter by visibility level: public, internal, or private.

Create a new release in a GitLab project.

NameTypeRequiredDescription
descriptionstringYesRelease notes in Markdown format.
idstringYesThe project ID (numeric) or URL-encoded path.
namestringYesThe release name.
refstringNoThe branch or commit to create the tag from (only if tag does not exist).
tag_namestringYesThe tag name for the release.

Delete a release from a GitLab project. Returns the deleted release object.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
tag_namestringYesThe tag name of the release to delete.

Get a specific release by tag name.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
tag_namestringYesThe tag name for the release.

Update an existing release in a GitLab project.

NameTypeRequiredDescription
descriptionstringNoUpdated release notes in Markdown format.
idstringYesThe project ID (numeric) or URL-encoded path.
namestringNoUpdated release name.
tag_namestringYesThe tag name of the release to update.

List releases for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).

List files and directories in a GitLab repository.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
pageintegerNoPage number for pagination.
pathstringNoFolder path to list files from.
per_pageintegerNoNumber of results per page (max 100).
recursivestringNoIf ‘true’, lists files recursively.
refstringNoThe branch, tag, or commit SHA to list files from.

Add an SSH key for the currently authenticated user.

NameTypeRequiredDescription
keystringYesThe SSH public key content.
titlestringYesA descriptive title for the SSH key.

Create a new tag in a GitLab repository.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
messagestringNoMessage for an annotated tag.
refstringYesThe commit SHA, branch name, or another tag name to create the tag from.
release_descriptionstringNoRelease notes for the tag.
tag_namestringYesThe name of the new tag.

Delete a tag from a GitLab repository.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
tag_namestringYesThe name of the tag to delete.

Get details of a specific repository tag.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
tag_namestringYesThe name of the tag.

List repository tags for a GitLab project.

NameTypeRequiredDescription
idstringYesThe project ID (numeric) or URL-encoded path.
order_bystringNoOrder tags by field (name, updated, version).
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
searchstringNoFilter tags by name.
sortstringNoSort order: asc or desc.

Get a specific user by ID.

NameTypeRequiredDescription
idintegerYesThe ID of the user.

List projects owned by a specific user.

NameTypeRequiredDescription
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
user_idintegerYesThe numeric ID of the user whose projects to list.

List users. Supports filtering by search term, username, and active status.

NameTypeRequiredDescription
activestringNoFilter by active status. Use ‘true’ or ‘false’.
pageintegerNoPage number for pagination.
per_pageintegerNoNumber of results per page (max 100).
searchstringNoSearch users by name or email.
usernamestringNoFilter by exact username.