gitlab

Installation
SKILL.md

GitLab Skill

Overview

Use this skill to inspect and update GitLab merge requests, notes, pipelines, and job logs against GitLab.com or self-managed GitLab instances.

This skill is the repository-local Python workflow for GitLab tasks. It is not the official GitLab MCP server integration surface.

This first hve-core implementation is Python-only. Run the CLI through python scripts/gitlab.py and prefer --fields for read operations to keep output concise.

Prerequisites

The skill requires Python 3.11 or later.

Set these environment variables before running any command:

Variable Required Example Purpose
GITLAB_URL Yes https://gitlab.com GitLab instance URL
GITLAB_TOKEN Yes glpat-... Personal access token sent as PRIVATE-TOKEN
GITLAB_PROJECT No group/project Project path or numeric project ID

If GITLAB_PROJECT is not set, the script attempts to detect the project from git remote get-url origin. Set the variable explicitly when you are not in a git repository or when you want to target a different project.

Quick Start

Export your environment variables, then run a read command with --fields.

export GITLAB_URL="https://gitlab.com"
export GITLAB_TOKEN="glpat-..."
export GITLAB_PROJECT="group/project"

python scripts/gitlab.py mr-list opened --fields iid,title,author.name

Read pipeline jobs for a known pipeline:

python scripts/gitlab.py pipeline-jobs 12345 --fields id,name,status,stage

Parameters Reference

Common Option

Parameter Applies To Example Description
--fields mr-list, mr-get, mr-notes, pipeline-get, pipeline-jobs --fields iid,title,state Extract specific fields with dot notation and print concise tabular or key-value output

Commands

Command Arguments Description
mr-list [state] [max] List merge requests, defaulting to all states and 20 results
mr-get <mr-iid> Get one merge request by project-scoped IID
mr-create <json> or stdin Create a merge request from a JSON payload
mr-update <mr-iid> <json> or stdin Update merge request fields from a JSON payload
mr-comment <mr-iid> <body> or stdin Add a comment to a merge request
mr-notes <mr-iid> [max] List merge request notes, excluding system notes when using --fields
pipeline-get <pipeline-id> Get one pipeline by numeric ID
pipeline-run <branch-or-tag> Trigger a pipeline for a branch or tag
pipeline-jobs <pipeline-id> List jobs for a pipeline
job-log <job-id> Print raw log output for a job

Script Reference

List recent open merge requests:

python scripts/gitlab.py mr-list opened --fields iid,title,author.name,user_notes_count

Get one merge request:

python scripts/gitlab.py mr-get 42 --fields iid,title,state,source_branch,target_branch

Create a merge request from inline JSON:

python scripts/gitlab.py mr-create '{
  "source_branch": "feature/add-auth",
  "target_branch": "main",
  "title": "feat(auth): add OAuth login"
}'

Add a merge request comment from standard input:

echo "CI passed. Ready for review." | python scripts/gitlab.py mr-comment 42

Inspect a failed pipeline:

python scripts/gitlab.py pipeline-get 12345 --fields id,status,web_url
python scripts/gitlab.py pipeline-jobs 12345 --fields id,name,status,stage
python scripts/gitlab.py job-log 67890

Troubleshooting

Symptom Cause Resolution
GITLAB_URL is not set Required environment variable missing Export GITLAB_URL before running the script
GITLAB_TOKEN is not set Missing personal access token Create a token with API access and export GITLAB_TOKEN
cannot parse git remote URL Project autodetection failed Set GITLAB_PROJECT explicitly
HTTP 401 or HTTP 403 Token is invalid or lacks access Verify token scope and project permissions
HTTP 404 Wrong project, MR IID, pipeline ID, or job ID Verify GITLAB_PROJECT and confirm the numeric identifiers
expected numeric ID Non-numeric value passed to an ID argument Use project MR IID values and numeric pipeline or job IDs
python3 is required or syntax errors on launch Unsupported interpreter Run the script with Python 3.11 or later

GitLab uses MR IIDs such as !42 inside a project. This skill expects the numeric IID, not the global merge request ID.

🤖 Crafted with precision by ✨Copilot following brilliant human instruction, then carefully refined by our team of discerning human reviewers.

Weekly Installs
7
GitHub Stars
1.0K
First Seen
Mar 27, 2026