📦 Gitlab Mr ReviewerAutomated — Gitlab Mr Reviewer 自动化

v1.0.0

GitLab Merge Request 代码审查助手。克隆仓库,通过 glab CLI 同步 MR,运行静态分析,使用 glab mr note 发布行内评论,并发送...

0· 19·0 当前·0 累计
下载技能包
最后更新
2026/4/20
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该包与其既定用途(自动化 GitLab MR 评审)一致,但 registry 元数据未声明脚本明显依赖的敏感环境变量;文档中的步骤(全局 glab 配置、克隆私有仓库、SMTP/飞书 webhook)使用前需仔细审查。
评估建议
该技能看似实现了所宣传的 MR-review 工作流,但在信任它之前: 1) 自行检查所含脚本(mr_analyzer.py、gitlab_inline_commenter.py、feishu_notifier.py),确保它们只做你期望的事。 2) 准备好 GitLab Personal Access Token(GITLAB_TOKEN),需具备 api 权限——避免过度授权,优先使用项目级或短期 Token。 3) 仅在需要通知时提供 Feishu webhook 与 SMTP 凭据;切勿将密钥硬编码到文件中——使用环境变量或密钥存储。 4) 注意该技能会将仓库克隆到磁盘,并可修改你的 glab 配置(host、token、skip_tls_verify);不要在暴露于公网的机器上启用 skip_tls_verify。 5) 建议在隔离环境(专用用户或容器)中运行,先使用 dry-run 模式测试。 6) 注册元数据未声明所需环境变量;使用前需手动提供配置与凭据。...
详细分析 ▾
用途与能力
名称、描述、SKILL.md 及所含脚本保持一致:该技能克隆仓库、检查 MR diff、运行静态分析、发布 GitLab 行内评论并发送通知。代码(mr_analyzer.py、gitlab_inline_commenter.py、feishu_notifier.py)实现了所述功能。
指令范围
运行时指令要求 agent 克隆仓库、获取/检出 MR 分支、运行分析并调用 GitLab API、Feishu webhook 或 SMTP。这些操作符合既定目的,但 SKILL.md 还指示修改 glab 配置(如 skip_tls_verify)并自动读取本地上下文文件——两者均会影响主机工具配置和本地文件系统状态,需由操作者确认。
安装机制
未声明任何外部安装/下载步骤;该技能以指令为主,并打包其 Python 脚本。它依赖系统提供的工具(git、glab、python)。规范中不含晦涩的下载 URL 或归档解压操作。
凭证需求
Registry 元数据未声明任何必需的环境变量,但 SKILL.md 和脚本却需要敏感凭据:GITLAB_TOKEN(具备 api 作用域的 GitLab PAT)、可选的 GITLAB_HOST、FEISHU_WEBHOOK_URL、SMTP_HOST/PORT/USER/PASS,以及 REVIEW_REPO_PATH 等。这些必需凭据在元数据中缺失,存在不一致,可能导致意外的凭据提示或配置错误。Token 作用域和存储方式应受限制(使用最小 PAT 作用域,避免明文持久化密码)。
持久化与权限
该技能将仓库克隆到磁盘(默认 ~/reviews/…),读取 bundle 中的本地配置文件,并引导使用 glab config 命令修改用户的 glab 设置(host、token、skip_tls_verify)。虽然这些操作对 GitLab MR reviewer 是预期的,但它们会持久生效并影响系统工具/配置——操作者应注意,该技能会创建本地仓库,并可能改变 glab 行为(包括在使用时禁用 TLS 验证)。该技能未设为 always:true。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/20

gitlab-mr-reviewer 初始发布:面向 GitLab Merge Request 的自动化端到端代码审查工作流。 - 使用 git 与 glab CLI 自动完成仓库克隆、MR 同步、检出、分析及评论发布。 - 对 MR diff 运行静态代码分析并生成结构化反馈。 - 支持直接向 GitLab MR 发布详细行内评论与总结备注。 - 通过飞书 webhook 或 SMTP 邮件发送审查后通知,并提供示例命令。 - 包含认证、自建 GitLab 实例及版本/工具前置条件的配置指引。

无害

安装命令

点击复制
官方npx clawhub@latest install gitlab-mr-reviewer
镜像加速npx clawhub@latest install gitlab-mr-reviewer --registry https://cn.longxiaskill.com

技能文档

端到端自动化审查 GitLab Merge Request 的代理流程:克隆 → 同步 → 检出 MR 分支 → 分析 → 评论 → 通知。

---

目录

---

概述

该技能将代理变为常驻 GitLab MR 审查器。首次使用时克隆仓库;每次审查请求时获取最新远程状态,通过 glab 检出 MR 分支,运行自动化分析,向 GitLab 回写结构化评论,并可选择将摘要发送至邮箱或 Feishu 群。

核心工具:

  • git clone / git fetch — 仓库管理
  • glab mr list / glab mr checkout — MR 交互
  • glab mr note — 发布审查评论
  • python scripts/mr_analyzer.py — 对 diff 进行静态分析
  • python scripts/feishu_notifier.py — Feishu webhook 通知
  • SMTP(通过 Python smtplib)或任意 mail CLI — 邮件通知

---

前置条件

| 工具 | 安装 | 用途 | |------|------|------| | git | 系统包 | 克隆、获取、diff | | glab | brew install glabglab releases | GitLab CLI | | python 3.8+ | 系统 | 分析脚本 | | GitLab PAT | glab auth login | API 认证 | | Feishu webhook URL | Feishu 群机器人设置 | 可选通知 |

一次性认证: ``bash glab auth login # 或设置环境变量 export GITLAB_TOKEN=glpat-xxxx `

版本检查(需 glab ≥ 1.30.0 以支持 glab mr checkout): `bash glab version # 若版本过低,升级: brew upgrade glab # macOS # 或下载最新 release: https://gitlab.com/gitlab-org/cli/-/releases # 无 glab 时回退:手动 checkout MR 分支 git fetch origin merge-requests//head:mr- git checkout mr- `

自托管 GitLab 实例配置: `bash # 配置自托管实例(替换 gitlab.example.com) glab config set host gitlab.example.com glab config set token glpat-xxxx --host gitlab.example.com # 验证连接 glab auth status # 若使用自签名证书,跳过 TLS 验证(仅限内网测试环境) glab config set skip_tls_verify true --host gitlab.example.com `

---

工作流

阶段 1 — 初始化(克隆仓库)

代理启动或收到 init 指令时,每个仓库仅运行一次。 `bash # 克隆目标仓库 git clone git@gitlab.example.com:group/project.git ~/reviews/project # 验证 cd ~/reviews/project && git log --oneline -3 ` 代理触发语:
“初始化仓库 git@gitlab.example.com:group/project.git”
“init repo ”

---

阶段 2 — 审查 MR

每次收到 MR 审查请求时执行。
`bash # 1. 同步最新远程状态 cd ~/reviews/project git fetch --all --prune # 2. 列出开启的 MR 以确认目标 glab mr list --state=opened # 3. 检出 MR 分支(glab 自动创建本地分支) glab mr checkout # 示例:glab mr checkout 42 # 4. 查看与目标分支的 diff glab mr diff # 或:git diff origin/main...HEAD # 5. 运行自动化分析 python /path/to/gitlab-mr-reviewer/scripts/mr_analyzer.py . \ --base origin/main \ --mr-id \ --json --output /tmp/mr__analysis.json ` 代理触发语:
“审核 MR #42”
“review MR 42”

---

阶段 3 — 发布评论

分析完成后,直接向 GitLab MR 发布结构化反馈。 推荐:使用
gitlab_inline_commenter.py 一键发布行内评论 行内评论(Diff Note)绑定到 Changes 标签页的具体代码行,比普通 glab mr note 更精准。 `bash # 根据 mr_analyzer.py 的 JSON 输出批量发布行内评论 python scripts/gitlab_inline_commenter.py \ --host gitlab.example.com \ --project-id 123 \ --mr-id 42 \ --findings /tmp/mr_42_analysis.json

# 发布单条行内评论(AI 语义审查结果) python scripts/gitlab_inline_commenter.py \ --host gitlab.example.com \ --project-id 123 \ --mr-id 42 \ --file src/auth/token_service.py \ --line 47 \ --severity critical \ --dimension security \ --body "JWT token expiration not validated — add exp check after decode."

# 先 dry-run 确认内容,再正式发布 python scripts/gitlab_inline_commenter.py \ --host gitlab.example.com \ --project-id 123 \ --mr-id 42 \ --findings /tmp/mr_42_analysis.json \ --dry ``

数据来源ClawHub ↗ · 中文优化:龙虾技能库