返回顶部
g

gitlab-mr-review-pipeline

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

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
85
下载量
0
收藏
概述
安装方式
版本历史

gitlab-mr-review-pipeline

# 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** - 邮件发送 ### 安装命令 ```bash 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` ```json { "gitlab": { "host": "http://your-gitlab.com", "access_token": "your-access-token" }, "email": { "provider": "163", "address": "your-email@163.com", "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:使用脚本初始化配置 ```bash python3 skills/gitlab-mr-review-pipeline/scripts/init-config.py ``` --- ## 执行流程 ### 步骤 1:检查配置 读取 `~/.config/gitlab-mr-review-pipeline/config.json` 如果配置不存在,提示用户运行初始化脚本。 ### 步骤 2:查询待处理 MR 使用 GitLab API 查询每个仓库的待处理 MR: ```bash # 使用工具脚本 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,检查是否已处理过: ```bash 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 已处理 ```bash python3 skills/gitlab-mr-review-pipeline/scripts/mr-records.py mark \ --repo owner/repo \ --mr-id 2 \ --author author@example.com \ --score 61 \ --issues 5 ``` 记录已处理的 MR,避免下次重复审核。 ### 步骤 8:清理临时文件(可选) ```bash python3 skills/gitlab-mr-review-pipeline/scripts/cleanup.py --days 7 ``` 清理临时 markdown 文件和 7 天前的 PDF 报告。 --- ## 工具脚本 ### gitlab-api.py GitLab API 调用工具。 ```bash # 查询 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 处理记录管理(避免重复审核)。 ```bash # 检查 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 user@example.com --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 清理临时文件和旧报告。 ```bash # 清理临时文件和 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 配置初始化脚本。 ```bash 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 审核报告 --- ## 报告格式示例 ```markdown # 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) ✓ 提交人邮箱:author@example.com [AI 代码审核] ✓ 使用 code-review 技能 ✓ 发现 2 个 CRITICAL 问题 ✓ 发现 3 个 MAJOR 问题 ✓ 综合评分:61/100 [生成 PDF] ✓ PDF 已生成 [发送邮件] ✓ 邮件已发送至 author@example.com ✅ 处理完成! ``` --- ## 版本 - **版本**: 2.0 - **最后更新**: 2026-03-29 - **变更**: 简化脚本逻辑,主要流程由 AI 执行 --- ## 社区 - **技能市场**: https://clawhub.com - **问题反馈**: 提交 Issue

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 gitlab-mr-review-pipeline-1775940822 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 gitlab-mr-review-pipeline-1775940822 技能

通过命令行安装

skillhub install gitlab-mr-review-pipeline-1775940822

下载 Zip 包

⬇ 下载 gitlab-mr-review-pipeline v1.0.0

文件大小: 15.02 KB | 发布时间: 2026-4-12 10:06

v1.0.0 最新 2026-4-12 10:06
Initial release of gitlab-mr-review-pipeline.

- Automates GitLab Merge Request (MR) code review using AI, generates detailed reports, and emails them to authors.
- Integrates with code-review, md-to-pdf-advanced, and email-mail-master skills for AI audit, PDF report generation, and email delivery.
- Provides configuration, initialization scripts, and step-by-step processing of MRs to avoid duplicate reviews.
- Includes troubleshooting and security recommendations.
- Supports output of markdown and PDF audit reports, with customizable templates and cleanup scripts.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部