> This page is for Agent Handler.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.merge.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.merge.dev/_mcp/server.

# GitLab

**Authentication:** OAuth or private token. See [Magic Link](/merge-agent-handler/features/magic-link) for the runtime auth flow, or [Application credentials](/merge-agent-handler/admin-setup/add-oauth-credentials) to bring your own OAuth app.

## Sample use cases

* List every merge request in `acme/backend` that's been open more than 5 days.
* Create a merge request from `feature/payments` into `develop` and request review from the payments team.
* Find every pipeline that failed in the last 24 hours, grouped by job stage.

## 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