GitLab MR 审查 pipeline

SKILL开发

原名 gitlab-mr-review-pipeline

开发 接触敏感数据 许可证明确 OpenClaw
安装这个技能

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

累计安装 3,951 本周 168
GitHub 星标 未标注 仓库 gitlab-mr-review-pipeline
下载量 1,384 技能市场下载数
权限级别 接触敏感数据 安装前请确认风险范围
许可证 许可证明确 MIT-0

安装

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

技能档案

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

能做什么

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

权限与风险

接触敏感数据
装之前先读完这段

安装与使用指南

安装步骤

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

怎么用

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

SKILL.md 全文

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

GitLab MR Review Pipeline

自动化 GitLab Merge Request 代码审核流水线。使用 AI 对 MR 进行代码审查,生成报告并邮件发送给提交人。


依赖技能

执行前确保已安装:
- glab-cli - GitLab CLI(可选,脚本会使用 API 直接调用)
- code-review - AI 代码审核
- md-to-pdf-advanced - Markdown 转 PDF
- email-mail-master - 邮件发送

安装命令

npx clawhub install glab-cli
npx clawhub install code-review
npx clawhub install md-to-pdf-advanced
npx clawhub install email-mail-master

配置文件

路径: ~/.config/gitlab-mr-review-pipeline/config.json

{
  "gitlab": {
    "host": "http://your-gitlab.com",
    "access_token": "your-access-token"
  },
  "email": {
    "provider": "163",
    "address": "[email protected]",
    "auth_code": "your-auth-code"
  },
  "repositories": ["owner/repo1", "owner/repo2"]
}

配置说明

字段 说明 必需
gitlab.host GitLab 地址 是
gitlab.access_token Access Token(需 api 权限) 是
email.provider 邮箱服务商(163/qq/126) 是
email.address 邮箱地址 是
email.auth_code 邮箱授权码(非登录密码) 是
repositories 监控的仓库列表 是

使用方式

方式 1:直接告诉 OpenClaw

帮我审核 GitLab 仓库的 MR

OpenClaw 会按照以下流程执行:

方式 2:使用脚本初始化配置

python3 skills/gitlab-mr-review-pipeline/scripts/init-config.py

执行流程

步骤 1:检查配置

读取 ~/.config/gitlab-mr-review-pipeline/config.json

如果配置不存在,提示用户运行初始化脚本。

步骤 2:查询待处理 MR

使用 GitLab API 查询每个仓库的待处理 MR:

# 使用工具脚本
python3 skills/gitlab-mr-review-pipeline/scripts/gitlab-api.py mr-list --repo owner/repo

API 端点: {host}/api/v4/projects/{repo}/merge_requests?state=opened

如果没有待处理 MR,提示用户并终止。

步骤 2.5:检查 MR 是否已处理(避免重复)

对于每个待处理 MR,检查是否已处理过:

python3 skills/gitlab-mr-review-pipeline/scripts/mr-records.py check --repo owner/repo --mr-id 2

如果输出包含 "已处理过",跳过该 MR。

步骤 3:获取 MR 详情

对于每个待处理 MR:

  1. 获取 diff
    bash python3 skills/gitlab-mr-review-pipeline/scripts/gitlab-api.py mr-diff --repo owner/repo --mr-id 2
    API: {host}/api/v4/projects/{repo}/merge_requests/{id}/changes

  2. 获取提交人邮箱
    bash python3 skills/gitlab-mr-review-pipeline/scripts/gitlab-api.py mr-commits --repo owner/repo --mr-id 2
    API: {host}/api/v4/projects/{repo}/merge_requests/{id}/commits

步骤 4:AI 代码审核

使用 code-review 技能对 diff 内容进行审查。

审核提示模板:

使用 code-review 技能对以下代码变更进行详细审查。

## MR 信息
- 仓库:{repo}
- MR ID: !{id}
- 标题:{title}
- 作者:{author}

## 代码变更
```diff
{diff_content}

审核要求

请按照 code-review 技能的 checklist 进行审查,只列出发现的问题项。

输出格式参考:references/review-report-template.md


**输出**: `file/mr-code-review-report.md`

### 步骤 5:生成 PDF

使用 **md-to-pdf-advanced** 技能:

```bash
python3 skills/md-to-pdf-advanced/scripts/md_to_pdf.py \
  file/mr-code-review-report.md \
  mr-reports/{repo}_MR{id}_{author}_review.pdf

步骤 6:发送邮件

使用 email-mail-master 技能发送审核报告。

邮件主题: [MR Review - AI 代码审核] !{id} {title}

邮件正文模板:

尊敬的开发者,您好!

您的 Merge Request 已完成 AI 代码审核。

📋 审核概览
- MR: !{id} {title}
- 仓库:{repo}
- 综合评分:{score}/100
- 发现问题:{critical} 个严重,{major} 个主要

📎 请查收附件中的详细审核报告(PDF 格式)。

💡 建议
请优先修复标记为 [CRITICAL] 和 [MAJOR] 的问题。
修复完成后,可以重新提交审核。

祝编码愉快!

---
GitLab MR Review Pipeline
AI 代码审核系统

步骤 7:标记 MR 已处理

python3 skills/gitlab-mr-review-pipeline/scripts/mr-records.py mark \
  --repo owner/repo \
  --mr-id 2 \
  --author [email protected] \
  --score 61 \
  --issues 5

记录已处理的 MR,避免下次重复审核。

步骤 8:清理临时文件(可选)

python3 skills/gitlab-mr-review-pipeline/scripts/cleanup.py --days 7

清理临时 markdown 文件和 7 天前的 PDF 报告。


工具脚本

gitlab-api.py

GitLab API 调用工具。

# 查询 MR 列表
python3 skills/gitlab-mr-review-pipeline/scripts/gitlab-api.py mr-list --repo owner/repo

# 获取 MR diff
python3 skills/gitlab-mr-review-pipeline/scripts/gitlab-api.py mr-diff --repo owner/repo --mr-id 2

# 获取 MR commits
python3 skills/gitlab-mr-review-pipeline/scripts/gitlab-api.py mr-commits --repo owner/repo --mr-id 2

# 验证仓库
python3 skills/gitlab-mr-review-pipeline/scripts/gitlab-api.py repo-check --repo owner/repo

mr-records.py

MR 处理记录管理(避免重复审核)。

# 检查 MR 是否已处理
python3 skills/gitlab-mr-review-pipeline/scripts/mr-records.py check --repo owner/repo --mr-id 2

# 标记 MR 已处理
python3 skills/gitlab-mr-review-pipeline/scripts/mr-records.py mark \
  --repo owner/repo --mr-id 2 --author [email protected] --score 61 --issues 5

# 列出最近处理的 MR
python3 skills/gitlab-mr-review-pipeline/scripts/mr-records.py list --days 7

# 清理旧记录
python3 skills/gitlab-mr-review-pipeline/scripts/mr-records.py cleanup --days 30

记录文件位置: ~/.config/gitlab-mr-review-pipeline/processed-mrs.json

cleanup.py

清理临时文件和旧报告。

# 清理临时文件和 7 天前的 PDF
python3 skills/gitlab-mr-review-pipeline/scripts/cleanup.py --days 7

# 显示存储统计
python3 skills/gitlab-mr-review-pipeline/scripts/cleanup.py --stats

# 清理所有临时文件
python3 skills/gitlab-mr-review-pipeline/scripts/cleanup.py --all

init-config.py

配置初始化脚本。

python3 skills/gitlab-mr-review-pipeline/scripts/init-config.py

会引导用户输入:
- GitLab 地址和 Token
- 邮箱配置
- 监控仓库列表

并验证配置是否有效。


输出文件

Markdown 报告

  • 路径: file/mr-code-review-report.md
  • 格式: 参考 review-report-template.md

PDF 报告

  • 路径: mr-reports/{repo}_MR{id}_{author}_review.pdf

邮件

  • 收件人: MR 提交人邮箱
  • 主题: [MR Review - AI 审核] !{id} {title}
  • 附件: PDF 审核报告

报告格式示例

# Code Review Report

## 基本信息
| 项目 | 内容 |
|------|------|
| 仓库 | owner/repo |
| MR ID | !2 |
| 标题 | Feature xxx |

## ❌ 发现问题

### [CRITICAL] 问题标题
- **文件**: `path/to/file.java`
- **代码**:
```java
// 问题代码
  • 风险: 描述风险
  • 建议: 修改建议

📊 评分

维度 得分
安全性 60/100
代码质量 75/100

综合评分: 61/100

🎯 结论

建议: 需要修复后重新审查


---

## 故障排除

### GitLab API 调用失败

**错误**: `401 Unauthorized`

**原因**: Token 无效或过期

**解决**: 重新生成 Access Token

### 仓库不存在

**错误**: `404 Not Found`

**原因**: 仓库名称错误或无访问权限

**解决**: 检查仓库名称格式(`owner/repo`)

### 邮件发送失败

**错误**: `Authentication failed`

**原因**: 使用了登录密码而非授权码

**解决**: 在邮箱设置中获取授权码(SMTP 授权码)

### PDF 中文乱码

**解决**: 安装中文字体

```bash
sudo apt-get install fonts-noto-color-emoji fonts-wqy-zenhei
fc-cache -fv

安全注意事项

  1. 配置文件权限: 设置为 600
    bash chmod 600 ~/.config/gitlab-mr-review-pipeline/config.json

  2. Token 安全: 不要将 Token 提交到版本控制

  3. 定期轮换: 建议每 3 个月更换一次 Token


示例会话

用户:帮我审核 GitLab 仓库的 MR

AI: 好的,让我先检查配置...

[检查配置]
✓ 配置文件已找到

[查询 MR]
✓ owner/repo: 发现 1 个待处理 MR (!2)

[获取 MR 详情]
✓ 获取 diff 成功(223KB)
✓ 提交人邮箱:[email protected]

[AI 代码审核]
✓ 使用 code-review 技能
✓ 发现 2 个 CRITICAL 问题
✓ 发现 3 个 MAJOR 问题
✓ 综合评分:61/100

[生成 PDF]
✓ PDF 已生成

[发送邮件]
✓ 邮件已发送至 [email protected]

✅ 处理完成!

版本

  • 版本: 2.0
  • 最后更新: 2026-03-29
  • 变更: 简化脚本逻辑,主要流程由 AI 执行

社区

  • 技能市场: https://clawhub.com
  • 问题反馈: 提交 Issue

安全信息

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

热门专题

按场景挑技能
全部专题 →

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