Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

GitLab

OAuth 2.0 developer_tools

Connect this agent connector to let your agent:

  • Get branch, milestone, user — Get details of a specific branch in a GitLab repository
  • Unstar project — Unstar a GitLab project
  • List merge request commits, namespaces, issue labels — List commits in a specific merge request
  • Search project, global — Search within a specific GitLab project for issues, merge requests, commits, code, and more
  • Create label, deploy key, project variable — Create a new label in a GitLab project
  • Delete milestone, tag, project — Delete a milestone from a GitLab project

This connector uses OAuth 2.0. Scalekit acts as the OAuth client: it redirects your user to GitLab, obtains an access token, and automatically refreshes it before it expires. Your agent code never handles tokens directly — you only pass a connectionName and a user identifier.

You supply your GitLab Connected App credentials (Client ID + Secret) once per environment in the Scalekit dashboard.

Set up the connector

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.

gitlab_branch_create Create a new branch in a GitLab repository. 3 params

Create a new branch in a GitLab repository.

Name Type Required Description
branch string required The name of the new branch.
id string required The project ID (numeric) or URL-encoded path.
ref string required The source branch, tag, or commit SHA to branch from.
gitlab_branch_delete Delete a branch from a GitLab repository. 2 params

Delete a branch from a GitLab repository.

Name Type Required Description
branch string required The name of the branch to delete.
id string required The project ID (numeric) or URL-encoded path.
gitlab_branch_get Get details of a specific branch in a GitLab repository. 2 params

Get details of a specific branch in a GitLab repository.

Name Type Required Description
branch string required The name of the branch.
id string required The project ID (numeric) or URL-encoded path.
gitlab_branches_list List repository branches for a GitLab project. 4 params

List repository branches for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
search string optional Filter branches by name.
gitlab_commit_comment_create Add a comment to a specific commit. 5 params

Add a comment to a specific commit.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
note string required The comment text.
sha string required The commit SHA.
line integer optional Line number for an inline comment.
path string optional File path for an inline comment.
gitlab_commit_comments_list List comments on a specific commit. 2 params

List comments on a specific commit.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
sha string required The commit SHA.
gitlab_commit_diff_get Get the diff of a specific commit. 2 params

Get the diff of a specific commit.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
sha string required The commit SHA.
gitlab_commit_get Get details of a specific commit by its SHA. 2 params

Get details of a specific commit by its SHA.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
sha string required The commit SHA.
gitlab_commits_list List repository commits for a GitLab project. 8 params

List repository commits for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
author string optional Filter commits by author name or email.
page integer optional Page number for pagination.
path string optional Filter commits by file path.
per_page integer optional Number of results per page (max 100).
ref_name string optional The branch or tag name to list commits from.
since string optional Only commits after this date are returned (ISO 8601 format).
until string optional Only commits before this date are returned (ISO 8601 format).
gitlab_compare_refs Compare two refs (branches, tags, or commits) in a GitLab repository. 4 params

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

Name Type Required Description
from string required The source branch, tag, or commit SHA to compare from.
id string required The project ID (numeric) or URL-encoded path.
to string required The target branch, tag, or commit SHA to compare to.
straight string optional Comparison method: 'true' for straight diff, 'false' for merge base.
gitlab_current_user_get Get the currently authenticated user's profile. 0 params

Get the currently authenticated user's profile.

gitlab_current_user_ssh_keys_list List SSH keys for the currently authenticated user. 0 params

List SSH keys for the currently authenticated user.

gitlab_deploy_key_create Create a new deploy key for a GitLab project. 4 params

Create a new deploy key for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
key string required The SSH public key content.
title string required A descriptive title for the deploy key.
can_push string optional If 'true', the deploy key has write access.
gitlab_deploy_key_delete Delete a deploy key from a GitLab project. 2 params

Delete a deploy key from a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
key_id integer required The numeric ID of the deploy key to delete.
gitlab_deploy_keys_list List deploy keys for a GitLab project. 1 param

List deploy keys for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
gitlab_file_create Create a new file in a GitLab repository. 8 params

Create a new file in a GitLab repository.

Name Type Required Description
branch string required The branch to create the file on.
commit_message string required The commit message for creating this file.
content string required The file content (plain text or base64 encoded).
file_path string required URL-encoded file path in the repository.
id string required The project ID (numeric) or URL-encoded path.
author_email string optional The author's email for the commit.
author_name string optional The author's name for the commit.
encoding string optional The encoding type: 'text' or 'base64'.
gitlab_file_delete Delete a file from a GitLab repository. 4 params

Delete a file from a GitLab repository.

Name Type Required Description
branch string required The branch to delete the file from.
commit_message string required The commit message for deleting this file.
file_path string required URL-encoded file path in the repository.
id string required The project ID (numeric) or URL-encoded path.
gitlab_file_get Get a file's content and metadata from a GitLab repository. 3 params

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

Name Type Required Description
file_path string required URL-encoded file path in the repository.
id string required The project ID (numeric) or URL-encoded path.
ref string required The branch, tag, or commit SHA to get the file from.
gitlab_file_update Update an existing file in a GitLab repository. 6 params

Update an existing file in a GitLab repository.

Name Type Required Description
branch string required The branch to update the file on.
commit_message string required The commit message for updating this file.
content string required The new file content.
file_path string required URL-encoded file path in the repository.
id string required The project ID (numeric) or URL-encoded path.
last_commit_id string optional Last known file commit ID (for conflict detection).
gitlab_group_create Create a new GitLab group or subgroup. 5 params

Create a new GitLab group or subgroup.

Name Type Required Description
name string required The name of the group.
path string required URL-friendly path slug for the group.
description string optional Optional group description.
parent_id integer optional ID of the parent group (for subgroups).
visibility string optional Visibility level: private, internal, or public.
gitlab_group_delete Delete a GitLab group. This is an asynchronous operation (returns 202 Accepted). 1 param

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

Name Type Required Description
id string required The group ID (numeric) or URL-encoded path.
gitlab_group_get Get a specific group by numeric ID or URL-encoded path. 1 param

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

Name Type Required Description
id string required The group ID (numeric) or URL-encoded path.
gitlab_group_member_add Add a member to a GitLab group. 3 params

Add a member to a GitLab group.

Name Type Required Description
access_level integer required Access level for the member. 10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner.
id string required The group ID (numeric) or URL-encoded path.
user_id integer required The numeric ID of the user to add.
gitlab_group_member_remove Remove a member from a GitLab group. 2 params

Remove a member from a GitLab group.

Name Type Required Description
id string required The group ID (numeric) or URL-encoded path.
user_id integer required The numeric ID of the user to remove.
gitlab_group_members_list List members of a GitLab group. 4 params

List members of a GitLab group.

Name Type Required Description
id string required The group ID (numeric) or URL-encoded path.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
query string optional Filter members by name.
gitlab_group_projects_list List projects belonging to a GitLab group. 5 params

List projects belonging to a GitLab group.

Name Type Required Description
id string required The group ID (numeric) or URL-encoded path.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
search string optional Filter projects by name.
visibility string optional Filter by visibility level: public, internal, or private.
gitlab_group_update Update a GitLab group's settings. 4 params

Update a GitLab group's settings.

Name Type Required Description
id string required The group ID (numeric) or URL-encoded path.
description string optional Updated group description.
name string optional New name for the group.
visibility string optional New visibility level: private, internal, or public.
gitlab_groups_list List groups accessible to the authenticated user. 5 params

List groups accessible to the authenticated user.

Name Type Required Description
min_access_level integer optional Minimum access level filter (10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner).
owned string optional If 'true', limits to groups explicitly owned by the current user.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
search string optional Search groups by name.
gitlab_issue_create Create a new issue in a GitLab project. 7 params

Create a new issue in a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
title string required The title of the issue.
assignee_ids string optional Comma-separated list of user IDs to assign.
description string optional Detailed description of the issue (Markdown supported).
due_date string optional Due date for the issue in YYYY-MM-DD format.
labels string optional Comma-separated list of label names to apply.
milestone_id integer optional The ID of the milestone to assign.
gitlab_issue_delete Delete an issue from a GitLab project (admin only). 2 params

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

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
issue_iid integer required The internal ID of the issue within the project.
gitlab_issue_get Get a specific issue by its internal ID (IID). 2 params

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

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
issue_iid integer required The internal ID of the issue within the project.
gitlab_issue_labels_list List labels for a GitLab project. 3 params

List labels for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
gitlab_issue_note_create Add a comment to a specific issue. 3 params

Add a comment to a specific issue.

Name Type Required Description
body string required The comment text (Markdown supported).
id string required The project ID (numeric) or URL-encoded path.
issue_iid integer required The internal ID of the issue.
gitlab_issue_note_delete Delete a comment on a specific issue. 3 params

Delete a comment on a specific issue.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
issue_iid integer required The internal ID of the issue.
note_id integer required The ID of the note to delete.
gitlab_issue_note_update Update a comment on a specific issue. 4 params

Update a comment on a specific issue.

Name Type Required Description
body string required The updated comment text (Markdown supported).
id string required The project ID (numeric) or URL-encoded path.
issue_iid integer required The internal ID of the issue.
note_id integer required The ID of the note to update.
gitlab_issue_notes_list List comments (notes) on a specific issue. 4 params

List comments (notes) on a specific issue.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
issue_iid integer required The internal ID of the issue.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
gitlab_issue_update Update an existing issue in a GitLab project. 7 params

Update an existing issue in a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
issue_iid integer required The internal ID of the issue within the project.
assignee_ids string optional Comma-separated list of user IDs to assign.
description string optional Updated description of the issue.
labels string optional Comma-separated list of label names.
state_event string optional State transition: 'close' to close, 'reopen' to reopen.
title string optional New title for the issue.
gitlab_issues_list List issues for a GitLab project. 10 params

List issues for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
assignee_id integer optional Filter issues by assignee user ID.
labels string optional Filter issues by comma-separated label names.
milestone string optional Filter issues by milestone title.
order_by string optional Order issues by field (created_at, updated_at, priority).
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
search string optional Search issues by title or description.
sort string optional Sort order: asc or desc.
state string optional Filter issues by state: opened, closed, or all.
gitlab_job_artifacts_download Download the artifacts archive of a specific CI/CD job. 2 params

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

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
job_id integer required The numeric ID of the job.
gitlab_job_cancel Cancel a specific CI/CD job. 2 params

Cancel a specific CI/CD job.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
job_id integer required The numeric ID of the job to cancel.
gitlab_job_get Get details of a specific CI/CD job. 2 params

Get details of a specific CI/CD job.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
job_id integer required The numeric ID of the job.
gitlab_job_log_get Get the log (trace) output of a specific CI/CD job. 2 params

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

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
job_id integer required The numeric ID of the job.
gitlab_job_retry Retry a specific CI/CD job. 2 params

Retry a specific CI/CD job.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
job_id integer required The numeric ID of the job to retry.
gitlab_jobs_list List all jobs for a GitLab project. 4 params

List all jobs for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
scope string optional Filter jobs by scope/status.
gitlab_label_create Create a new label in a GitLab project. 4 params

Create a new label in a GitLab project.

Name Type Required Description
color string required The color for the label in hex format (e.g. #FF0000).
id string required The project ID (numeric) or URL-encoded path.
name string required The name of the label.
description string optional Optional description for the label.
gitlab_merge_request_approvals_get Get the approval state of a specific merge request. 2 params

Get the approval state of a specific merge request.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
merge_request_iid integer required The internal ID of the merge request.
gitlab_merge_request_approve Approve a merge request. 2 params

Approve a merge request.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
merge_request_iid integer required The internal ID of the merge request.
gitlab_merge_request_commits_list List commits in a specific merge request. 2 params

List commits in a specific merge request.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
merge_request_iid integer required The internal ID of the merge request.
gitlab_merge_request_create Create a new merge request in a GitLab project. 9 params

Create a new merge request in a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
source_branch string required The source branch name.
target_branch string required The target branch name.
title string required The title of the merge request.
assignee_id integer optional The numeric ID of the user to assign.
description string optional Description for the merge request (Markdown supported).
labels string optional Comma-separated list of label names.
remove_source_branch string optional If 'true', removes the source branch after merging.
squash string optional If 'true', squashes all commits into one on merge.
gitlab_merge_request_diff_get Get the diffs of a specific merge request. 2 params

Get the diffs of a specific merge request.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
merge_request_iid integer required The internal ID of the merge request.
gitlab_merge_request_get Get a specific merge request by its internal ID (IID). 2 params

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

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
merge_request_iid integer required The internal ID of the merge request within the project.
gitlab_merge_request_merge Merge an approved merge request in a GitLab project. 5 params

Merge an approved merge request in a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
merge_request_iid integer required The internal ID of the merge request.
merge_commit_message string optional Custom merge commit message.
should_remove_source_branch string optional If 'true', removes the source branch after merging.
squash string optional If 'true', squashes all commits into one.
gitlab_merge_request_note_create Add a comment to a specific merge request. 3 params

Add a comment to a specific merge request.

Name Type Required Description
body string required The comment text (Markdown supported).
id string required The project ID (numeric) or URL-encoded path.
merge_request_iid integer required The internal ID of the merge request.
gitlab_merge_request_notes_list List comments on a specific merge request. 4 params

List comments on a specific merge request.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
merge_request_iid integer required The internal ID of the merge request.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
gitlab_merge_request_update Update an existing merge request in a GitLab project. 8 params

Update an existing merge request in a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
merge_request_iid integer required The internal ID of the merge request.
assignee_id integer optional The numeric ID of the user to assign.
description string optional Updated description for the merge request.
labels string optional Comma-separated list of label names.
state_event string optional State transition: 'close' to close, 'reopen' to reopen.
target_branch string optional New target branch name.
title string optional New title for the merge request.
gitlab_merge_requests_list List merge requests for a GitLab project. 10 params

List merge requests for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
labels string optional Filter by comma-separated label names.
order_by string optional Order MRs by field (created_at, updated_at, title).
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
search string optional Search MRs by title or description.
sort string optional Sort order: asc or desc.
source_branch string optional Filter by source branch name.
state string optional Filter by state: opened, closed, locked, merged, or all.
target_branch string optional Filter by target branch name.
gitlab_milestone_create Create a new milestone in a GitLab project. 5 params

Create a new milestone in a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
title string required The title of the milestone.
description string optional Optional description for the milestone.
due_date string optional Due date for the milestone in YYYY-MM-DD format.
start_date string optional Start date for the milestone in YYYY-MM-DD format.
gitlab_milestone_delete Delete a milestone from a GitLab project. 2 params

Delete a milestone from a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
milestone_id integer required The numeric ID of the milestone.
gitlab_milestone_get Get a specific project milestone. 2 params

Get a specific project milestone.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
milestone_id integer required The numeric ID of the milestone.
gitlab_milestone_update Update an existing milestone in a GitLab project. 6 params

Update an existing milestone in a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
milestone_id integer required The numeric ID of the milestone.
description string optional Updated description for the milestone.
due_date string optional Updated due date in YYYY-MM-DD format.
state_event string optional State transition: 'close' to close, 'activate' to reopen.
title string optional New title for the milestone.
gitlab_milestones_list List milestones for a GitLab project. 5 params

List milestones for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
search string optional Filter milestones by title.
state string optional Filter milestones by state: active or closed.
gitlab_namespaces_list List namespaces available to the current user (personal namespaces and groups). 3 params

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

Name Type Required Description
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
search string optional Filter namespaces by name.
gitlab_pipeline_cancel Cancel a running pipeline. 2 params

Cancel a running pipeline.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
pipeline_id integer required The numeric ID of the pipeline to cancel.
gitlab_pipeline_create 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. 3 params

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.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
ref string required The branch or tag name to run the pipeline on.
variables string optional JSON array of pipeline variables, each with 'key' and 'value' fields.
gitlab_pipeline_delete Delete a pipeline from a GitLab project. 2 params

Delete a pipeline from a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
pipeline_id integer required The numeric ID of the pipeline to delete.
gitlab_pipeline_get Get details of a specific pipeline. 2 params

Get details of a specific pipeline.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
pipeline_id integer required The numeric ID of the pipeline.
gitlab_pipeline_jobs_list List jobs for a specific pipeline. 5 params

List jobs for a specific pipeline.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
pipeline_id integer required The numeric ID of the pipeline.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
scope string optional Filter jobs by scope.
gitlab_pipeline_retry Retry a failed pipeline. 2 params

Retry a failed pipeline.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
pipeline_id integer required The numeric ID of the pipeline to retry.
gitlab_pipelines_list List pipelines for a GitLab project. 6 params

List pipelines for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
ref string optional Filter pipelines by branch or tag name.
sha string optional Filter pipelines by commit SHA.
status string optional Filter by pipeline status.
gitlab_project_create Create a new GitLab project. 4 params

Create a new GitLab project.

Name Type Required Description
name string required The name of the project.
description string optional A short description of the project.
initialize_with_readme string optional If 'true', initializes the repository with a README.
visibility string optional Visibility level: private, internal, or public. Defaults to private.
gitlab_project_delete Delete a GitLab project. This is an asynchronous operation (returns 202 Accepted). 1 param

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

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path (e.g. 'namespace%2Fproject').
gitlab_project_fork Fork a GitLab project into a namespace. 4 params

Fork a GitLab project into a namespace.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path to fork.
name string optional The name for the forked project.
namespace_id integer optional The ID of the namespace to fork the project into.
path string optional The 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.
gitlab_project_forks_list List forks of a GitLab project. 3 params

List forks of a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
gitlab_project_get Get a specific project by numeric ID or URL-encoded namespace/project path. 1 param

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

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path (e.g. 'namespace%2Fproject').
gitlab_project_member_add Add a member to a GitLab project with a specified access level. 3 params

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

Name Type Required Description
access_level integer required Access level for the member. 10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner.
id string required The project ID (numeric) or URL-encoded path.
user_id integer required The numeric ID of the user to add.
gitlab_project_member_remove Remove a member from a GitLab project. 2 params

Remove a member from a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
user_id integer required The numeric ID of the user to remove.
gitlab_project_members_list List members of a GitLab project. 4 params

List members of a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
query string optional Filter members by name.
gitlab_project_snippet_create Create a new snippet in a GitLab project. 6 params

Create a new snippet in a GitLab project.

Name Type Required Description
content string required The content of the snippet.
file_name string required The filename for the snippet.
id string required The project ID (numeric) or URL-encoded path.
title string required The title of the snippet.
description string optional Optional description for the snippet.
visibility string optional Visibility level: private, internal, or public.
gitlab_project_snippet_get Get a specific snippet from a GitLab project. 2 params

Get a specific snippet from a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
snippet_id integer required The numeric ID of the snippet.
gitlab_project_snippets_list List all snippets in a GitLab project. 3 params

List all snippets in a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
gitlab_project_star Star a GitLab project. 1 param

Star a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
gitlab_project_unstar Unstar a GitLab project. Returns 200 with project data if successfully unstarred, or 304 if the project was not starred. 1 param

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

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
gitlab_project_update Update an existing GitLab project's settings. 5 params

Update an existing GitLab project's settings.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path (e.g. 'namespace%2Fproject').
default_branch string optional The default branch name for the project.
description string optional A short description of the project.
name string optional New name for the project.
visibility string optional New visibility level: private, internal, or public.
gitlab_project_variable_create Create a new CI/CD variable for a GitLab project. 7 params

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

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
key string required The variable key name.
value string required The value of the variable.
environment_scope string optional The environment scope for this variable (default '*').
masked string optional If 'true', masks the variable in job logs.
protected string optional If 'true', the variable is only available on protected branches/tags.
variable_type string optional The variable type: env_var (default) or file.
gitlab_project_variable_delete Delete a CI/CD variable from a GitLab project. 2 params

Delete a CI/CD variable from a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
key string required The variable key name to delete.
gitlab_project_variable_get Get a specific CI/CD variable for a GitLab project. 2 params

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

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
key string required The variable key name.
gitlab_project_variable_update Update an existing CI/CD variable for a GitLab project. 5 params

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

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
key string required The variable key name to update.
value string required The new value of the variable.
masked string optional If 'true', masks the variable in job logs.
protected string optional If 'true', the variable is only available on protected branches/tags.
gitlab_project_variables_list List all CI/CD variables for a GitLab project. 1 param

List all CI/CD variables for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
gitlab_project_webhook_create Create a new webhook for a GitLab project. 7 params

Create a new webhook for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
url string required The URL to send webhook payloads to.
issues_events string optional If 'true', trigger the webhook on issue events.
merge_requests_events string optional If 'true', trigger on merge request events.
pipeline_events string optional If 'true', trigger on pipeline events.
push_events string optional If 'true', trigger the webhook on push events.
token string optional Secret token to validate webhook payloads.
gitlab_project_webhook_delete Delete a webhook from a GitLab project. 2 params

Delete a webhook from a GitLab project.

Name Type Required Description
hook_id integer required The numeric ID of the webhook to delete.
id string required The project ID (numeric) or URL-encoded path.
gitlab_project_webhook_get Get a specific webhook for a GitLab project. 2 params

Get a specific webhook for a GitLab project.

Name Type Required Description
hook_id integer required The numeric ID of the webhook.
id string required The project ID (numeric) or URL-encoded path.
gitlab_project_webhook_update Update an existing webhook for a GitLab project. 6 params

Update an existing webhook for a GitLab project.

Name Type Required Description
hook_id integer required The numeric ID of the webhook to update.
id string required The project ID (numeric) or URL-encoded path.
url string required The new URL to send webhook payloads to.
merge_requests_events string optional If 'true', trigger on merge request events.
pipeline_events string optional If 'true', trigger on pipeline events.
push_events string optional If 'true', trigger on push events.
gitlab_project_webhooks_list List all webhooks configured for a GitLab project. 1 param

List all webhooks configured for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
gitlab_projects_list List all projects accessible to the authenticated user. Supports filtering by search, ownership, membership, and visibility. 8 params

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

Name Type Required Description
membership string optional If 'true', limits by projects where the user is a member.
order_by string optional Order projects by a field (e.g. id, name, created_at).
owned string optional If 'true', limits by projects explicitly owned by the current user.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
search string optional Search query to filter projects by name.
sort string optional Sort order: 'asc' or 'desc'.
visibility string optional Filter by visibility level: public, internal, or private.
gitlab_release_create Create a new release in a GitLab project. 5 params

Create a new release in a GitLab project.

Name Type Required Description
description string required Release notes in Markdown format.
id string required The project ID (numeric) or URL-encoded path.
name string required The release name.
tag_name string required The tag name for the release.
ref string optional The branch or commit to create the tag from (only if tag does not exist).
gitlab_release_delete Delete a release from a GitLab project. Returns the deleted release object. 2 params

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

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
tag_name string required The tag name of the release to delete.
gitlab_release_get Get a specific release by tag name. 2 params

Get a specific release by tag name.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
tag_name string required The tag name for the release.
gitlab_release_update Update an existing release in a GitLab project. 4 params

Update an existing release in a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
tag_name string required The tag name of the release to update.
description string optional Updated release notes in Markdown format.
name string optional Updated release name.
gitlab_releases_list List releases for a GitLab project. 3 params

List releases for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
gitlab_repository_tree_list List files and directories in a GitLab repository. 6 params

List files and directories in a GitLab repository.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
page integer optional Page number for pagination.
path string optional Folder path to list files from.
per_page integer optional Number of results per page (max 100).
recursive string optional If 'true', lists files recursively.
ref string optional The branch, tag, or commit SHA to list files from.
gitlab_ssh_key_add Add an SSH key for the currently authenticated user. 2 params

Add an SSH key for the currently authenticated user.

Name Type Required Description
key string required The SSH public key content.
title string required A descriptive title for the SSH key.
gitlab_tag_create Create a new tag in a GitLab repository. 5 params

Create a new tag in a GitLab repository.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
ref string required The commit SHA, branch name, or another tag name to create the tag from.
tag_name string required The name of the new tag.
message string optional Message for an annotated tag.
release_description string optional Release notes for the tag.
gitlab_tag_delete Delete a tag from a GitLab repository. 2 params

Delete a tag from a GitLab repository.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
tag_name string required The name of the tag to delete.
gitlab_tag_get Get details of a specific repository tag. 2 params

Get details of a specific repository tag.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
tag_name string required The name of the tag.
gitlab_tags_list List repository tags for a GitLab project. 6 params

List repository tags for a GitLab project.

Name Type Required Description
id string required The project ID (numeric) or URL-encoded path.
order_by string optional Order tags by field (name, updated, version).
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
search string optional Filter tags by name.
sort string optional Sort order: asc or desc.
gitlab_user_get Get a specific user by ID. 1 param

Get a specific user by ID.

Name Type Required Description
id integer required The ID of the user.
gitlab_user_projects_list List projects owned by a specific user. 3 params

List projects owned by a specific user.

Name Type Required Description
user_id integer required The numeric ID of the user whose projects to list.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
gitlab_users_list List users. Supports filtering by search term, username, and active status. 5 params

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

Name Type Required Description
active string optional Filter by active status. Use 'true' or 'false'.
page integer optional Page number for pagination.
per_page integer optional Number of results per page (max 100).
search string optional Search users by name or email.
username string optional Filter by exact username.