gitlab-mr-review-pipeline
自动化 GitLab MR 代码审核流水线。使用 AI 对 MR 进行代码审查,生成报告并邮件发送给提交人。
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/20181112523/gitlab-mr-review-pipelineGitLab 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:
-
获取 diff
python3 skills/gitlab-mr-review-pipeline/scripts/gitlab-api.py mr-diff --repo owner/repo --mr-id 2API:
{host}/api/v4/projects/{repo}/merge_requests/{id}/changes -
获取提交人邮箱
python3 skills/gitlab-mr-review-pipeline/scripts/gitlab-api.py mr-commits --repo owner/repo --mr-id 2API:
{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 代码审核。
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-20181112523-gitlab-mr-review-pipeline": {
"enabled": true,
"auto_update": true
}
}
}