GitLab MR reviewer 搜索

SKILL研究检索

原名 gitlab-mr-reviewer

研究检索 联网访问 许可证明确 OpenClaw
安装这个技能

用于围绕 GitLab 项目、Merge Request、Issue、分支、流水线和代码审查流程提供辅助能力。它适合让 Agent 查询项目状态、整理提交差异、辅助检查合并请求或汇总 CI 结果。使用时需要确认项目权限、访问 token 和目标分支范围;涉及合并、推送、改工单或触发流水线时,应先预览影响并核对团队流程。

累计安装 6,368 本周 268
GitHub 星标 未标注 仓库 gitlab-mr-reviewer
下载量 2,230 技能市场下载数
权限级别 联网访问 安装前请确认风险范围
许可证 许可证明确 MIT-0

安装

ClawHub 市场
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
openclaw skills install gitlab-mr-reviewer

技能档案

研究检索
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方whrime仓库 gitlab-mr-reviewer · 版本 1.0.3
宿主客户端OpenClaw技能可被这些客户端加载
安装方式ClawHub 市场安装包 whrime/gitlab-mr-reviewer
权限级别联网访问安装前请确认风险范围
许可证MIT-0许可证明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-05-01上游最后核验时间 · 数据更新 未标注
正文体量5.2 KBSKILL.md 原文大小,越大说明说明书写得越细

能做什么

5 项能力
上游给出的能力概览与适用场景
  • 按任务关键词查找相关 Skills
  • 展示可复制的安装命令
  • 保留来源站点、仓库和原始说明,方便继续核验
  • 补充不同宿主或平台的使用分布数据
  • 展示第三方安全扫描或审计结果
OpenClaw 用户查找和安装 Skill 时用户想查找某类 Agent Skill 时需要根据任务场景推荐可安装能力包时需要对比不同来源的安装命令和来源信息时

权限与风险

联网访问
装之前先读完这段

安装与使用指南

安装步骤

本站只展示命令,不托管安装包,也不自动执行。

怎么用

安装后应在对应宿主中按原始 README 的触发条件使用;当前草稿只做目录说明,具体调用方式由规则抽取,异常条目再复核。

SKILL.md 全文

5.2 KB
模型实际读到的说明书原文,来自技能仓库

GitLab MR Reviewer

GitLab MR 审查调度层技能。只定义触发条件、执行顺序、硬规则和失败回退;命令细节与长参考统一放到 references/。

适用场景

  • 用户明确提到 GitLab MR 审查,例如:审核 MR #42、检查合并请求 42
  • 需要对 MR 发布行内评论、总结评论、approve 或 request changes
  • 需要在审查后发送飞书通知
  • 需要对 MR 做静态分析或 AI 深审(在配置允许时)

不适用场景

  • GitHub PR 审查(非 GitLab)
  • 纯本地代码评审且用户明确不希望与 GitLab 交互
  • 缺少最小配置且用户不希望先做初始化

执行前检查清单(Preflight)

执行前必须确认(配置优先从 reviewer.config.json 读取,其次才是环境变量):

  • 工具可用:git、glab、python
  • 配置齐全:gitlab.projectId、review.repoPath、gitlab.defaultBaseBranch
  • 主机格式一致:gitlab.host 统一使用主机名(例如 gitlab.example.com,不带协议)
  • 已认证:glab auth status 可通过,或存在有效 GITLAB_TOKEN
  • 当前任务目标明确:仅审查 / 审查并评论 / 审查并通知 / approve
  • 配置读取来源:统一以 reviewer.config.json 为准(不要依赖环境变量回填)

缺少最小配置时,先停下并向用户追问,不得猜测 project id、host、repo path。

核心工作流

  1. 同步仓库:进入 REVIEW_REPO_PATH 并执行 git fetch --all --prune
  2. 切换 MR:优先 glab mr checkout <MR_ID>
  3. 运行分析:执行 scripts/mr_analyzer.py 生成 JSON 结果
  4. 生成结论:根据严重级别与置信度,得出 approve 或 request_changes
  5. 发布评论:
    - 有有效文件与行号 -> scripts/gitlab_inline_commenter.py
    - 无法定位行号 -> 回退为 MR 总结评论
  6. 需要通知时:执行 scripts/feishu_notifier.py

Webhook 触发语义(强制)

  • 任何 System Hook GitLab / webhook 自动触发,默认等价于:审核 MR #<id> 并通知飞书
  • webhook 触发不是“仅分析”模式,必须执行完整闭环:
    1) 完成 MR 审查并生成结论
    2) 发布 GitLab 审查结果(优先行内评论,失败回退总结评论)
    3) 发送飞书通知
    4) 返回发送回执(gitlab_publish / feishu_notify 的 success|fail 与失败原因)
  • 不允许只输出审查结论而不执行发送动作
  • 飞书配置缺失时必须显式报错,不允许静默跳过
  • GitLab 发布必须走脚本 API 路径(scripts/gitlab_inline_commenter.py),不要直接用终端文本粘贴 glab mr note
  • 同一次 webhook 任务只允许 1 条总结评论,禁止重复发布
  • 发布文本必须是 UTF-8 中文可读,禁止乱码评论

硬规则

  • 永远先静态分析,再决定是否做 AI 深审
  • 审查结论、行内评论、总结报告必须使用中文
  • 允许简化的是 skill 的表达风格,不允许简化审查结果与报告结构
  • 不泄露任何 secret(如 GITLAB_TOKEN、FEISHU_WEBHOOK_URL)
  • confidence < 0.6 不下结论,改为提问式评论
  • 单个问题只评论一次,避免重复刷屏
  • 行号缺失或定位失败时,必须降级为 summary note
  • 大 MR 优先审查高风险文件,不做无边界全量深审
  • 检测到 notifications.feishuWebhookUrl 已配置时,默认执行飞书通知;除非用户明确要求不通知
  • webhook 自动触发时,默认执行 GitLab 发布 + 飞书通知;除非用户在指令中明确禁止

失败回退顺序(必须按顺序)

  1. glab mr checkout 失败 -> 检查 glab version、认证、host
  2. 仍失败 -> 使用 git fetch origin merge-requests/<MR_ID>/head:mr-<MR_ID> + git checkout
  3. mr_analyzer.py 显示无 diff -> 校验 base 分支与当前 HEAD
  4. 行内评论发布失败 -> 回退到 MR 总结评论(Overview)
  5. AI 上下文超限 -> 仅审查 review_order 前 N 个高风险文件
  6. 证据不足 -> 停止断言并向作者提问

输出契约

  • mr_analyzer.py 输出是后续评论/通知的事实来源
  • 至少保证字段:verdict、score、findings、severity_counts
  • findings 中 file 或 line 缺失时,不发送行内评论
  • 审查结论只允许:approve、request_changes、block

最小示例

示例 1:审核 MR

输入:审核 MR #42

动作:preflight -> checkout -> analyzer -> 评论总结 -> 给出结论

示例 2:审核并通知

输入:审核 MR #42 并通知飞书

动作:示例 1 全流程 + feishu_notifier.py

示例 3:通过 MR

输入:通过 MR #42

动作:仅在无阻塞问题时执行 glab mr approve 42;否则改为 request changes 并解释原因

参考文档

  • 运行配置:reviewer.config.json
  • GitLab 命令与发布流程:references/gitlab_review_workflow.md
  • 审查清单:references/mr_review_checklist.md
  • AI 审查提示词:references/review_prompts.md

安全信息

审计结论
未标注不代表已通过审计
安全审计VirusTotal、ClawScan、Static analysis第三方安全审计平台给出的结论

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-05-01。