GitLab

Connect your AI agents to GitLab.

Available Tools

list_branches

List all branches in a project repository with optional search filtering and pagination support for navigating branch lists in large repositories

get_branch

Get detailed information about a specific branch by project ID and branch name, including commit details, merge status, protection status, and access permissions

create_branch

Create a new branch from a specified source branch, tag, or commit SHA with branch name and ref, enabling parallel development workflows and feature branching

delete_branch

Delete a branch from a project repository permanently, removing the branch reference but preserving commits in the repository history if they are referenced elsewhere

protect_branch

Protect a branch with push and merge access level restrictions, allowed users/groups, code owner approval requirements, and unprotect access control for enforcing branch protection policies

unprotect_branch

Remove protection from a branch to allow unrestricted access, disabling all branch protection rules and access level restrictions

list_commits

List all commits in a project repository with comprehensive filtering by ref, date range, path, author, and more, plus pagination support for exploring repository history

get_commit

Get detailed information about a specific commit by project ID and commit SHA, including message, author, committer, timestamps, parent commits, stats, and complete commit metadata

create_commit

Create a new commit with file create, update, delete, chmod, or move actions, supporting multiple file operations in a single atomic commit with custom message and branch

get_commit_diff

Get the diff of changes introduced by a specific commit, showing file modifications, additions, deletions, and detailed line-by-line changes

list_commit_comments

List all comments on a specific commit showing discussions, code review feedback, and inline comments with author, timestamps, and comment content

create_commit_comment

Create a new comment on a commit with optional inline file and line reference for code review, feedback, and commit discussions

get_file

Get a file from a repository with base64-encoded content, metadata, blob ID, commit ID, size, encoding, and last commit information for file inspection and content retrieval

get_raw_file

Get the raw content of a file from a repository (plain text or binary) without base64 encoding for direct content access and display

create_file

Create a new file in a repository with specified content, commit message, branch, and encoding for adding files programmatically

update_file

Update an existing file in a repository with new content, commit message, and optional last commit ID verification for file modification

delete_file

Delete a file from a repository with specified commit message, branch, and optional last commit ID verification for file removal

list_groups

List all accessible groups in GitLab with comprehensive filtering by search query, owned groups, top-level groups, visibility, and more, plus pagination support for large group directories

get_group

Get detailed information about a specific group by ID or path, including name, description, visibility, avatar, projects, members, statistics, and complete group metadata

create_group

Create a new group or subgroup with specified name, path, visibility, description, and settings for organizing projects and managing access across multiple repositories

update_group

Update an existing group’s name, path, description, visibility, settings, and permissions for modifying group configuration and access control

delete_group

Delete a group and all its projects, subgroups, and associated data permanently, asynchronous operation that schedules group deletion (requires owner permissions)

list_issues

List all issues in a GitLab project with comprehensive filtering by state, labels, milestone, assignee, author, search query, and date ranges, plus pagination support for large issue collections

get_issue

Get comprehensive detailed information about a specific GitLab issue by project ID and issue IID including description, state, labels, assignees, time tracking, and linked resources

create_issue

Create a new GitLab issue with title, description, labels, assignees, milestone, due date, and confidentiality settings for comprehensive issue tracking

update_issue

Update an existing GitLab issue’s title, description, state, labels, assignees, milestone, or other properties with support for state transitions and label management

delete_issue

Permanently delete a GitLab issue by project ID and issue IID including all its comments, attachments, and metadata (irreversible operation)

move_issue

Move a GitLab issue from one project to another project while preserving history, comments, and metadata, creating a new issue IID in the target project

list_jobs

List all CI/CD jobs in a GitLab project with filtering by scope (created, pending, running, failed, success, canceled, skipped, manual) and pagination support for comprehensive job tracking and…

list_pipeline_jobs

List all CI/CD jobs in a specific pipeline with optional filtering by scope, showing all job stages, statuses, and execution details for pipeline-specific job tracking and debugging

get_job

Get detailed information about a specific CI/CD job by project ID and job ID, including status, stage, name, duration, artifacts, runner, user, commit, and complete execution metadata

cancel_job

Cancel a running or pending CI/CD job immediately, stopping job execution and transitioning it to canceled status, useful for stopping incorrect or unnecessary job runs

retry_job

Retry a failed or canceled CI/CD job, creating a new job instance and rerunning it with the same configuration, useful for handling transient failures and flaky tests

play_job

Trigger a manual CI/CD job to run with optional variables, starting jobs that require manual action and supporting parameterized manual job execution for controlled deployments and operations

erase_job

Erase a CI/CD job’s artifacts and trace log permanently, removing build outputs and logs while keeping job metadata and status, useful for removing sensitive data or large artifacts

get_job_trace

Get the log trace output of a CI/CD job showing all console output, script execution, build logs, and job execution details, essential for debugging failed jobs and monitoring job progress

list_labels

List all labels in a project with optional issue and merge request counts, color, description, and pagination support for label management and organization

get_label

Get detailed information about a specific label by project ID and label ID, including name, description, color, priority, and usage statistics

create_label

Create a new label with specified name, color, and optional description and priority for issue and merge request categorization and filtering

update_label

Update an existing label’s name, color, description, or priority for modifying label appearance and organization

delete_label

Delete a label from a project permanently, removing the label from all issues and merge requests that use it

list_merge_requests

List all merge requests in a GitLab project with comprehensive filtering by state, labels, assignee, reviewer, source/target branch, draft status, and date ranges, plus pagination support for large…

get_merge_request

Get detailed information about a specific merge request by project ID and MR IID, including description, state, branches, assignees, reviewers, pipeline status, merge status, conflicts, approvals,…

create_merge_request

Create a new merge request with source branch, target branch, title, description, assignees, reviewers, labels, milestone, and merge settings including squash commits and remove source branch options

update_merge_request

Update an existing merge request’s title, description, state, target branch, assignees, reviewers, labels, milestone, squash settings, and other properties including discussion lock and remove source…

delete_merge_request

Delete a merge request from a project by project ID and MR IID, permanently removing the merge request and all associated data including comments, approvals, and metadata

merge_merge_request

Accept and merge a merge request with optional custom commit message, squash commits, auto-remove source branch, and merge when pipeline succeeds settings, completing the code review and integration…

approve_merge_request

Approve a merge request to indicate review approval and satisfy approval rules, contributing to the required approvals count before the merge request can be merged

unapprove_merge_request

Remove approval from a merge request, retracting the authenticated user’s previous approval and decreasing the approvals count

list_milestones

List all milestones in a project with filtering by state (active, closed, all), title search, and pagination support for milestone management and sprint planning

get_milestone

Get detailed information about a specific milestone by project ID and milestone ID, including title, description, state, dates, progress, and issue/MR counts

create_milestone

Create a new milestone with title, description, and optional due date and start date for sprint planning, release management, and goal tracking

update_milestone

Update an existing milestone’s title, description, dates, or state (activate/close) for modifying sprint plans and release schedules

delete_milestone

Delete a milestone from a project permanently, removing the milestone but preserving associated issues and merge requests

list_issue_notes

List all comments/notes on a specific issue with author, timestamps, content, and pagination support for tracking discussions and feedback

get_issue_note

Get detailed information about a specific note/comment on an issue by project ID, issue IID, and note ID

create_issue_note

Create a new comment/note on an issue with Markdown content for adding feedback, discussion, and collaboration

update_issue_note

Update an existing comment/note on an issue to modify content or mark as resolved

delete_issue_note

Delete a comment/note from an issue permanently, removing the comment from the discussion history

list_merge_request_notes

List all comments/notes on a specific merge request with author, timestamps, content, and pagination support for code review and discussion tracking

get_merge_request_note

Get detailed information about a specific note/comment on a merge request by project ID, MR IID, and note ID

create_merge_request_note

Create a new comment/note on a merge request with Markdown content for code review feedback, discussion, and collaboration

update_merge_request_note

Update an existing comment/note on a merge request to modify content or resolve discussions

delete_merge_request_note

Delete a comment/note from a merge request permanently, removing the comment from the code review discussion history

list_pipelines

List all CI/CD pipelines in a GitLab project with comprehensive filtering by scope, status, source, ref, SHA, YAML errors, username, and update dates, plus pagination support for large pipeline…

get_pipeline

Get detailed information about a specific CI/CD pipeline by project ID and pipeline ID, including status, source, ref, SHA, user, timestamps, duration, coverage, jobs, and detailed status information

create_pipeline

Trigger a new CI/CD pipeline run for a specified branch or tag with optional variables, manually initiating the CI/CD workflow for testing, deployment, or continuous integration

retry_pipeline

Retry all failed jobs in a CI/CD pipeline, rerunning only the jobs that failed while keeping successful jobs unchanged, useful for transient failures and flaky tests

cancel_pipeline

Cancel a running CI/CD pipeline and all its jobs, immediately stopping all running jobs and preventing pending jobs from starting, useful for stopping incorrect or unnecessary pipeline runs

delete_pipeline

Delete a CI/CD pipeline and all its associated data including jobs, artifacts, and logs, permanently removing the pipeline from the project history

list_projects

List all accessible GitLab projects with comprehensive filtering including archived status, visibility level, ownership, membership, and starred projects, plus pagination support for large project…

get_project

Get comprehensive detailed information about a specific GitLab project by ID or URL-encoded path including repository details, statistics, permissions, and configuration

create_project

Create a new GitLab project with specified name, path, namespace, description, visibility level, and initialization options including automatic README generation

update_project

Update an existing GitLab project’s name, path, description, visibility, default branch, topics, and other configuration settings

delete_project

Permanently delete a GitLab project by ID or path including all its data, issues, merge requests, and repository content (irreversible asynchronous operation)

archive_project

Archive a GitLab project to make it read-only and hide it from most project lists while preserving all data and repository access

unarchive_project

Unarchive a previously archived GitLab project to restore it to active status with full read-write access and normal visibility

star_project

Star a GitLab project to add it to your favorites list for quick access and to show appreciation for the project

unstar_project

Unstar a previously starred GitLab project to remove it from your favorites list

fork_project

Create a complete fork of a GitLab project to a specified namespace with optional custom name, path, and description for independent development

add_spent_time

Add time spent working on an issue using human-readable format (e.g., ‘3h30m’, ‘1h’, ‘2d’) for time tracking and project management

get_time_stats

Get time tracking statistics for an issue including time estimate, total time spent, and remaining time in both seconds and human-readable format

set_time_estimate

Set or update the time estimate for an issue using human-readable format (e.g., ‘3h30m’, ‘2d’) for project planning and resource allocation

reset_time_estimate

Reset the time estimate for an issue to zero, removing the estimate while preserving time spent records

reset_spent_time

Reset the spent time for an issue to zero, removing all time tracking records while preserving the time estimate

list_users

List all users in GitLab instance with comprehensive filtering by username, search query, active/blocked status, external users, and more, plus pagination support for large user directories

get_user

Get detailed information about a specific user by user ID, including username, name, email, avatar, state, bio, location, organization, job title, creation date, and complete profile information

get_current_user

Get information about the currently authenticated user including username, name, email, permissions, namespace, private token details, and complete profile information for the API credential in use

create_user

Create a new user account with username, email, password, and optional profile settings, admin-only operation for user provisioning and account management

update_user

Update an existing user’s profile, email, username, password, permissions, and settings, supporting admin modifications or self-service profile updates

delete_user

Delete a user account permanently from GitLab, removing the user and optionally hard-deleting all associated data including projects, issues, and contributions (admin only)

list_webhooks

List all webhooks configured for a project with URL, token, event triggers, and enable status for webhook management and integration monitoring

get_webhook

Get detailed information about a specific webhook by project ID and hook ID, including URL, event triggers, SSL verification, and configuration

create_webhook

Create a new webhook with URL, secret token, and comprehensive event trigger configuration for push, issues, merge requests, pipelines, deployments, and more

update_webhook

Update an existing webhook’s URL, secret token, event triggers, SSL verification, or branch filter for modifying webhook configuration

delete_webhook

Delete a webhook from a project permanently, removing the integration and stopping all event notifications