Skip to main content

gitlab

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

来源信息

仓库
ThinkfleetAI/thinkfleet-engine
最近来源活动
2026年2月1日 16:21
检测到的 SKILL.md 语言
英语
星标
0
Forks
0

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
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.
在 GitHub 查看