Skip to main content

gitlab

Manage GitLab projects, merge requests, pipelines, and issues via the REST API.

Source facts

Repository
ThinkfleetAI/thinkfleet-engine
Last source activity
February 1, 2026 at 16:21
Detected SKILL.md language
English
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
gitlab
description
Manage GitLab projects, merge requests, pipelines, and issues via the REST API.
metadata
{"thinkfleetbot":{"emoji":"🦊","requires":{"bins":"[Truncated]","env":"[Truncated]"}}}
# GitLab Manage GitLab projects, merge requests, pipelines, and issues via the REST API. ## Environment Variables - `GITLAB_URL` - GitLab instance URL (e.g. `https://gitlab.com` or self-hosted) - `GITLAB_TOKEN` - Personal access token or project token ## List projects ```bash 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 ```bash 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 ```bash 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 ```bash 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 ```bash 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 ```bash 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 ```bash curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \ "$GITLAB_URL/api/v4/projects/123/pipelines/456/jobs" | jq '.[] | {id, name, stage, status, duration}' ``` ## List issues ```bash 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 ```bash 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 ```bash 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_page` and `page` query params for pagination. - Rate limits: 300 requests/min for authenticated requests on gitlab.com. - Always confirm before creating MRs, triggering pipelines, or modifying issues.
View on GitHub