mcpField
G
gl-cli

gl-cli

github.com/zereight开发2.1k6 次安装今天更新
代码仓库

关于 gl-cli

gl-cli 通过 zereight-mcp-gitlab 提供 GitLab 命令行操作,适合无需 MCP 客户端而直接执行命令的用户。它涵盖合并请求检查、凭据配置和写入安全控制。

主要功能

  1. 01检查合并请求
  2. 02查看差异和变更文件
  3. 03查看讨论与流水线
  4. 04检查审批及请求状态
  5. 05配置凭据和只读模式

适用场景

  1. 01无需 MCP 客户端审查合并请求
  2. 02查看大型差异前先检查变更路径
  3. 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. 读取合并请求

目标命令
列出已打开的 MRmr 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 技能。此技能仅介绍命令行方式。

评论

支持 Markdown