关于 gl-cli
gl-cli 通过 zereight-mcp-gitlab 提供 GitLab 命令行操作,适合无需 MCP 客户端而直接执行命令的用户。它涵盖合并请求检查、凭据配置和写入安全控制。
主要功能
- 01检查合并请求
- 02查看差异和变更文件
- 03查看讨论与流水线
- 04检查审批及请求状态
- 05配置凭据和只读模式
适用场景
- 01无需 MCP 客户端审查合并请求
- 02查看大型差异前先检查变更路径
- 03核实合并请求的流水线和审批
MCP 相关
该项目既是 MCP 服务,也是 GitLab 命令行工具。本技能介绍无需 MCP 客户端、直接运行命令的命令行用法。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ zereight/ gitlab-mcp --skill gl-cli安装后在 Claude Code 中输入/gl-cli确认已加载。
详细介绍
gl-cli
zereight-mcp-gitlab(别名为 mcp-gitlab)既是 MCP 服务,也是 GitLab 命令行工具。运行命令后,它会打印结果并退出,不涉及 MCP 客户端。
完整指南:docs/getting-started/cli-without-mcp.md。
1. 先检查凭据
首先运行此命令并查看结果:
zereight-mcp-gitlab user whoami
- 显示用户信息:凭据可用,转到第 3 步。
Missing GitLab credentials(退出码为 2):转到第 2 步。401:令牌已过期或权限范围不足,重新执行第 2 步。command not found:运行npm install -g @zereight/mcp-gitlab。
2. 验证身份(询问用户选择哪种方式)
切勿编造、猜测或回显令牌。请让用户自行运行命令,因为命令需要使用其机密信息。
A. Personal Access Token(最快;权限范围为 read_api,如需写入则使用 api)
read -rs GITLAB_PERSONAL_ACCESS_TOKEN && export GITLAB_PERSONAL_ACCESS_TOKEN
export GITLAB_API_URL=https://gitlab.example.com/api/v4 # omit for 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 # open the printed URL, enter the code
export GITLAB_USE_OAUTH=true # needed on every later CLI call
不要通过 --token 传递令牌;命令行参数可通过 ps 查看。
3. 读取合并请求
| 目标 | 命令 |
|---|---|
| 列出已打开的 MR | mr list --project-id <path|id> --state opened |
| MR 摘要 | mr view --project-id <p> --mr-iid <n> |
| 仅列出已更改的文件路径 | mr files --project-id <p> --mr-iid <n> |
| 完整差异 | 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 '{...}' |
每条命令前都要加上 zereight-mcp-gitlab。解析结果时添加 --output json。对于大型 MR,先运行 mr files,然后只查看需要的文件差异。
必填输入解析
实际调用时,切勿使用此表中的 <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。
此处未涵盖的内容
有关 MCP 工具目录和工作流,请使用 gitlab-mcp 技能。此技能仅介绍命令行方式。