GitLab API Client

通过命令行管理 GitLab 项目、问题、合并请求等,支持自动化运维。

已扫描
适合谁
DevOps 工程师、软件开发团队负责人
不适合谁
无 GitLab 账号的普通用户、不熟悉命令行操作的初学者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @jonasgao/gitlab-api-client

Skill 说明

命令、参数、文件名以原文为准

GitLab API 客户端

Node.js 编写的 GitLab REST API (v4) 客户端。从 ./.env 文件读取配置。

安全规则

  • 严禁读取、查看、打印、搜索或暴露 GITLAB_TOKEN 的值。
  • 严禁使用 curlwget 或任何工具直接调用 GitLab API。所有访问必须通过 gitlab-client 进行。
  • AI 可以读写 .env 文件以管理 GITLAB_URL,但 **GITLAB_TOKEN 必须由用户手动设置**。

设置

需要在 ./.env 文件中包含以下内容:

GITLAB_URL=https://gitlab.fullnine.com.cn
GITLAB_TOKEN=<your-personal-access-token>

如果未提供令牌,将提示用户编辑 ./.env 文件,并在 <GITLAB_URL>/-/profile/personal_access_tokens 处创建个人访问令牌(权限范围:api)。

首次安装:source ~/.nvm/nvm.sh && npm install

快速开始

gitlab-client users me                                    # 当前用户信息
gitlab-client projects list --owned                       # 我的项目列表
gitlab-client issues list --project 42 --state opened     # 项目中的打开问题
gitlab-client mrs create --project 42 --source-branch feat --target-branch main --title "My MR"

命令参考

格式:gitlab-client <资源> <操作> [ID] [--key 值 ...]

所有列表操作支持 --page N --per-page N(默认每页 20 条,最大 100 条)。

项目

操作使用方式选项
列表projects list--search --owned --membership --visibility
获取projects get <id>
搜索projects search "term"
创建projects create --name "name"--description --visibility --namespace-id --initialize-with-readme
编辑projects edit <id>--name --description --visibility
删除projects delete <id>
分叉projects fork <id>--namespace
成员projects members <id>
钩子projects hooks <id>

问题(Issues)

操作使用方式选项
列表issues list --project <id>--state --labels --milestone --assignee-id --search
获取issues get --project <id> --iid <iid>
创建issues create --project <id> --title "T"--description --labels --assignee-ids --milestone-id --due-date --confidential
编辑issues edit --project <id> --iid <iid>--title --description --state-event --labels --assignee-ids
关闭issues close --project <id> --iid <iid>
重新打开issues reopen --project <id> --iid <iid>
删除issues delete --project <id> --iid <iid>
评论issues notes --project <id> --iid <iid>
添加评论issues add-note --project <id> --iid <iid> --body "text"

合并请求(Merge Requests)

操作使用方式选项
列表mrs list --project <id>--state --labels --milestone --source-branch --target-branch --search
获取mrs get --project <id> --iid <iid>
创建mrs create --project <id> --source-branch "src" --target-branch "tgt" --title "T"--description --assignee-id --reviewer-ids --labels --milestone-id --remove-source-branch --squash
编辑mrs edit --project <id> --iid <iid>--title --description --state-event --labels --assignee-id
合并mrs merge --project <id> --iid <iid>--merge-commit-message --squash --should-remove-source-branch
变更mrs changes --project <id> --iid <iid>
提交记录mrs commits --project <id> --iid <iid>
评论mrs notes --project <id> --iid <iid>
添加评论mrs add-note --project <id> --iid <iid> --body "text"
审核通过mrs approve --project <id> --iid <iid>
流水线mrs pipelines --project <id> --iid <iid>

分支

操作使用方式选项
列表branches list --project <id>--search
获取branches get --project <id> --branch "name"
创建branches create --project <id> --branch "name" --ref "main"
删除branches delete --project <id> --branch "name"
删除已合并分支branches delete-merged --project <id>

提交记录(Commits)

操作使用方式选项
列表commits list --project <id>--ref-name --since --until --path
获取commits get --project <id> --sha "abc123"
差异commits diff --project <id> --sha "abc123"
评论commits comments --project <id> --sha "abc123"
添加评论commits add-comment --project <id> --sha "abc123" --note "text"

仓库 / 文件

操作使用方式选项
目录树repo tree --project <id>--path --ref --recursive
文件内容repo file --project <id> --file-path "path"--ref
原始文件repo raw --project <id> --file-path "path"--ref
创建文件repo create-file --project <id> --file-path "p" --branch "b" --content "c" --commit-message "m"
更新文件repo update-file --project <id> --file-path "p" --branch "b" --content "c" --commit-message "m"
删除文件repo delete-file --project <id> --file-path "p" --branch "b" --commit-message "m"
比较版本repo compare --project <id> --from "main" --to "feat"

流水线(Pipelines)

操作使用方式选项
列表pipelines list --project <id>--status --ref
获取pipelines get --project <id> --pipeline-id <pid>
作业pipelines jobs --project <id> --pipeline-id <pid>
作业日志pipelines job-log --project <id> --job-id <jid>
重试pipelines retry --project <id> --pipeline-id <pid>
取消pipelines cancel --project <id> --pipeline-id <pid>
创建pipelines create --project <id> --ref "main"--variables "K1=v1,K2=v2"

组(Groups)

操作使用方式选项
列表groups list--search --owned
获取groups get <id>
项目groups projects <id>--search
成员groups members <id>
问题groups issues <id>--state
合并请求groups mrs <id>--state

用户

操作用法
自身信息users me
列表users list [--search "john"]
获取users get <id>
项目列表users projects <id>

标签

操作用法选项
列表labels list --project <id>
创建labels create --project <id> --name "bug" --color "#FF0000"--description
编辑labels edit --project <id> --name "bug"--new-name --color
删除labels delete --project <id> --name "bug"

里程碑

操作用法选项
列表milestones list --project <id>--state
获取milestones get --project <id> --milestone-id <mid>
创建milestones create --project <id> --title "v1.0"--description --due-date --start-date
编辑milestones edit --project <id> --milestone-id <mid>--title --state-event
删除milestones delete --project <id> --milestone-id <mid>

标签与发布

操作用法选项
标签 列表tags list --project <id>--search
标签 创建tags create --project <id> --tag-name "v1.0" --ref "main"--message
标签 删除tags delete --project <id> --tag-name "v1.0"
发布 列表releases list --project <id>
发布 创建releases create --project <id> --tag-name "v1.0" --name "R1"--description

代码片段

操作用法选项
列表snippets list --project <id>
获取snippets get --project <id> --snippet-id <sid>
创建snippets create --project <id> --title "T" --file-name "f" --content "c"--visibility

搜索

操作用法
全局搜索search global --scope <scope> --search "query"
项目搜索search project --project <id> --scope <scope> --search "query"
组织搜索search group --group <id> --scope <scope> --search "query"

支持的范围:

全局:projects|issues|merge_requests|milestones|snippet_titles|users

项目:issues|merge_requests|milestones|notes|wiki_blobs|commits|blobs

组织:projects|issues|merge_requests|milestones

运行器

操作用法选项
列表runners list --project <id>
所有运行器runners all--type --status

Webhooks

操作用法选项
列表hooks list --project <id>
创建hooks create --project <id> --url "url"--push-events --merge-requests-events --issues-events --token
删除hooks delete --project <id> --hook-id <hid>

使用说明

  • 认证:使用 PRIVATE-TOKEN 请求头。权限范围:api(完整访问)、read_api(只读)、read_userread_repository
  • 项目 ID:可使用数字 ID 或 URL 编码路径(如 my-group%2Fmy-project)。
  • 输出格式:JSON。可配合 jq 工具进行过滤,例如:gitlab-client projects list | jq '.[].name'
  • 日期格式:ISO 8601 格式(如 YYYY-MM-DDTHH:MM:SSZ)。
  • 标签:支持逗号分隔多个标签,如:--labels "bug,feature,urgent"
  • 错误码401 未授权,403 禁止访问,404 未找到,422 验证失败,429 请求过于频繁。
J
@jonasgao

已收录 1 个 Skill

相关推荐