SuperAPI AI 工具集

gl-cli

部署与运维

查看项目

更新于 10-25 09:23

技能介绍

用途

gl-cli 介绍如何把 zereight-mcp-gitlab(别名 mcp-gitlab)当作 GitLab 命令行工具使用:带上命令执行后直接打印结果并退出,不涉及 MCP 客户端,也不需要注册 MCP 服务器。完整指南位于 docs/getting-started/cli-without-mcp.md。

主要能力

凭证检查

第一步先运行并阅读结果:

zereight-mcp-gitlab user whoami

输出 user 表示凭证有效,可继续后续操作;缺少 GitLab 凭证(退出码 2)时进入认证步骤;401 表示令牌过期或权限不足,需重新认证;command not found 表示未安装,可执行 npm install -g @zereight/mcp-gitlab。

认证方式

文档强调绝不能编造、猜测或回显令牌,应由用户自行执行命令,因为命令需要用户自己的密钥。

A. 个人访问令牌(最快;read_api 用于读取,api 用于写入):

read -rs GITLAB_PERSONAL_ACCESS_TOKEN && export GITLAB_PERSONAL_ACCESS_TOKEN
export GITLAB_API_URL=https://gitlab.example.com/api/v4   # gitlab.com 可省略

也可用 GITLAB_PERSONAL_ACCESS_TOKEN_FILE 指向令牌文件;进程启动时读取一次并去除首尾空白。若 GITLAB_PERSONAL_ACCESS_TOKEN 已非空,则忽略该文件并向 stderr 输出警告。

B. OAuth 设备流(需要 GitLab OAuth 应用 ID):

export GITLAB_OAUTH_CLIENT_ID=YOUR_APP_ID
zereight-mcp-gitlab auth        # 打开打印的 URL,输入验证码
export GITLAB_USE_OAUTH=true    # 之后每次 CLI 调用都需要

文档提醒不要通过 --token 传令牌,因为参数在 ps 中可见。

读取合并请求

常用命令均以 zereight-mcp-gitlab 为前缀,解析结果时可加 --output json:

目标 命令
列出打开的 MR `mr list --project-id <path
MR 摘要 mr view --project-id <p> --mr-iid <n>
仅变更文件路径 mr files --project-id <p> --mr-iid <n>
完整 diff mr diff --project-id <p> --mr-iid <n>
评论线程 mr discussions --project-id <p> --mr-iid <n>
MR 流水线 mr pipelines --project-id <p> --mr-iid <n>
审批状态 mr approvals --project-id <p> --mr-iid <n>
其它操作 tool <tool_name> --project-id <p> --args-json '{...}'

对于较大的 MR,建议先用 mr files 列出文件,再只对需要的文件查看 diff。

输入参数解析

文档要求不要在实际调用中使用 <project> 或 42 这类占位符。若缺少项目或 MR 编号,应向用户获取,或通过 mr list、git remote -v 发现。

使用方式与安全

默认只读:export GITLAB_PERMISSION_MODE=readonly。写操作(mr approve、mr merge、mr note、mr update、mr create)会以退出码 2 被拒绝。破坏性命令需要 --yes,且只有在用户于当前消息中确认该确切操作后才可添加。除非用户明确要求,不要运行 mr merge 或 mr approve。

适用场景与限制

适用于希望在终端直接查看 GitLab 合并请求、差异、评论与流水线信息的开发者。该技能仅覆盖 CLI 路线;MCP 工具目录与工作流请参考 gitlab-mcp 技能。