gitlab
SKILL.md
GitLab
Manage GitLab projects, merge requests, pipelines, and issues via the REST API.
Environment Variables
GITLAB_URL- GitLab instance URL (e.g.https://gitlab.comor self-hosted)GITLAB_TOKEN- Personal access token or project token
List projects
curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects?membership=true&per_page=20&order_by=last_activity_at" | jq '.[] | {id, name: .path_with_namespace, default_branch}'
Get project details
curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/123" | jq '{id, name: .path_with_namespace, default_branch, web_url}'
List merge requests
curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/123/merge_requests?state=opened&per_page=10" | jq '.[] | {iid, title, author: .author.username, source_branch, target_branch}'
Create merge request
curl -s -X POST -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
-H "Content-Type: application/json" \
"$GITLAB_URL/api/v4/projects/123/merge_requests" \
-d '{
"source_branch": "feature-branch",
"target_branch": "main",
"title": "Add new feature",
"description": "Description here"
}' | jq '{iid, web_url}'
List pipelines
curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/123/pipelines?per_page=10" | jq '.[] | {id, status, ref, created_at}'
Trigger pipeline
curl -s -X POST -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/123/pipeline" \
-d '{"ref": "main"}' | jq '{id, status, web_url}'
Get pipeline jobs
curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/123/pipelines/456/jobs" | jq '.[] | {id, name, stage, status, duration}'
List issues
curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/123/issues?state=opened&per_page=10" | jq '.[] | {iid, title, state, assignee: .assignee.username}'
Create issue
curl -s -X POST -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
-H "Content-Type: application/json" \
"$GITLAB_URL/api/v4/projects/123/issues" \
-d '{"title": "Bug report", "description": "Details here", "labels": "bug"}' | jq '{iid, web_url}'
Get job log
curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/123/jobs/789/trace" | tail -50
Notes
- Project ID can be numeric or URL-encoded path (e.g.
mygroup%2Fmyproject). - Use
per_pageandpagequery params for pagination. - Rate limits: 300 requests/min for authenticated requests on gitlab.com.
- Always confirm before creating MRs, triggering pipelines, or modifying issues.
Weekly Installs
2
Repository
thinkfleetai/th…t-engineFirst Seen
14 days ago
Security Audits
Installed on
opencode2
gemini-cli2
claude-code2
github-copilot2
codex2
kimi-cli2