GitLab 代码审查

SKILL开发

原名 gitlab-code-review

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

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

累计安装 23,998 本周 990
GitHub 星标 未标注 仓库 gitlab-code-review
下载量 7,841 技能市场下载数
权限级别 接触敏感数据 安装前请确认风险范围
许可证 许可证明确 MIT-0

安装

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

技能档案

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

能做什么

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

权限与风险

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

安装与使用指南

安装步骤

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

怎么用

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

SKILL.md 全文

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

GitLab Code Review

定时获取 GitLab 新提交,自动生成代码审查报告并推送通知。

用户配置流程

当用户说「配置 GitLab code review」或类似意图时:

1. 引导用户输入配置(或复用现有配置)

首先检查现有配置:读取 workspace/.env 文件,如果已存在 GitLab 相关配置,直接复用,无需重新询问。

如果配置不完整,逐个询问:

我需要几个配置信息:

1. GitLab URL 是什么?(例如:https://gitlab.example.com)

2. 项目路径是什么?(group/project 格式)

3. 分支名称是什么?(默认 main)

4. Personal Access Token 是什么?
   需要的权限:read_api
   获取方式:GitLab → 用户设置 → Access Tokens

2. 创建/更新配置文件

收集完信息后,创建或更新 workspace/.env 文件:

GITLAB_URL=<用户输入的URL>
GITLAB_TOKEN=<用户输入的Token>
GITLAB_PROJECT=<用户输入的项目路径>
GITLAB_BRANCH=<用户输入的分支>

3. 创建 Cron 定时任务

重要:使用 OpenClaw cron 命令创建定时任务

openclaw cron add \
  --name "GitLab Code Review" \
  --cron "0 * * * *" \
  --stagger 5m \
  --channel <当前channel> \
  --to <当前用户ID> \
  --message "执行 GitLab Code Review 定时任务:运行 python3 skills/gitlab-code-review/scripts/fetch_commits.py 获取新提交,检查 memory/pending_review_*.json。**有新提交**才进行 code review 并推送报告;**无新提交则静默结束,不推送任何消息,不调用模型审查**"

参数说明:
- --cron "0 * * * *" - 每小时整点执行
- --stagger 5m - 5 分钟随机偏移,避免整点拥堵
- --channel - 当前对话的 channel(如 feishu)
- --to - 当前用户的 ID

检查是否已存在:先运行 openclaw cron list,如果已存在同名任务,跳过创建。

4. 简化 HEARTBEAT.md

更新 HEARTBEAT.md,说明定时任务已配置为 cron:

# HEARTBEAT.md

# Heartbeat 任务清单

GitLab Code Review 已配置为独立的 cron 定时任务(每小时整点执行),无需在 heartbeat 中处理。

---

**注意**:
- 定时任务通过 `openclaw cron list` 查看

5. 执行首次审查

配置完成后,立即执行首次审查:

  1. 运行 python3 skills/gitlab-code-review/scripts/fetch_commits.py 获取待审查提交
  2. 检查 memory/pending_review_*.json 是否存在
  3. 如果有待处理文件:
    - 按文件名排序(时间正序)
    - 逐个进行深度 code review
    - 生成完整报告 memory/code_review_<short_id>.md
    - 使用 message 工具推送到当前用户:
    • 发送简化版报告文本
    • 发送完整报告文件(.md 附件)
    • 删除已处理的 pending 文件
  4. 如果无新提交:静默结束,不推送任何消息

6. 确认完成

✅ 配置完成!

- 已创建 .env 文件
- 已创建 cron 定时任务(每小时整点执行)
- 已完成首次审查并推送报告

查看定时任务:openclaw cron list

定时执行逻辑

Cron 任务触发时,agent 会执行以下步骤:

  1. 检查配置:读取 workspace/.env
  2. 获取提交:执行 python3 skills/gitlab-code-review/scripts/fetch_commits.py
  3. 检查结果:查看 memory/pending_review_*.json
  4. 有新提交:
    - 读取 pending 文件内容
    - 进行深度 code review
    - 生成报告 memory/code_review_<short_id>.md
    - 推送简化版报告和完整报告文件到当前对话用户
    - 删除 pending 文件
  5. 无新提交:
    - 静默结束,不推送任何消息
    - 不调用模型审查代码
    - 直接返回,不做任何输出

推送方式

使用 message 工具推送两条消息:

1. 简化版报告文本:

{
  "action": "send",
  "channel": "feishu",
  "target": "当前用户ID",
  "message": "简化版报告内容"
}

2. 完整报告文件:

{
  "action": "send",
  "channel": "feishu",
  "target": "当前用户ID",
  "media": "memory/code_review_<short_id>.md",
  "filename": "code_review_<short_id>.md",
  "caption": "📋 完整的 Code Review 报告"
}

脚本说明

scripts/fetch_commits.py

获取 GitLab 未审查的提交。

执行方式:

python3 skills/gitlab-code-review/scripts/fetch_commits.py

首次运行:只获取最近 2 个提交
后续运行:获取上次审查之后的所有新提交(最多 50 个)

依赖:
- 配置文件:workspace/.env
- Python 包:requests, python-dotenv

输出:
- memory/pending_review_<short_id>.json - 待审查提交数据
- memory/gitlab_review_state.json - 审查状态记录

Code Review 维度

审查提交时,关注以下维度:

🔒 安全性

  • SQL 注入、XSS、CSRF 漏洞
  • 敏感信息泄露(密码、Token 硬编码)
  • 权限校验缺失

⚡ 性能

  • N+1 查询问题
  • 循环内数据库操作
  • 大数据集内存问题
  • 缓存策略合理性

📦 代码质量

  • 命名规范与可读性
  • 注释完整性
  • 错误处理与边界检查
  • 重复代码

🧪 可测试性

  • 依赖注入
  • 单一职责
  • 测试覆盖

报告格式

完整报告保存到 memory/code_review_<short_id>.md。

简化版推送格式:

📋 GitLab Code Review - 新提交审查

提交: <short_id>
标题: <title>
作者: <author>
时间: <time>
变更: <N> 个文件

⚠️ 发现 <严重程度> 问题

🔴 主要问题:
1. <问题描述>
   📄 <文件路径>:<行号范围>

💡 改进建议:
1. <建议内容>

📊 状态: <状态说明>
🔗 查看详情: <commit_url>

故障排查

Skill 未识别

确保 skill 安装在正确位置:
- ClawHub 安装:workspace/skills/gitlab-code-review/
- 手动安装:解压到 workspace/skills/

脚本执行失败

# 检查依赖
pip3 install requests python-dotenv

# 测试连接
python3 skills/gitlab-code-review/scripts/fetch_commits.py

Token 权限不足

确保 Token 有 read_api 权限:
- GitLab → 用户设置 → Access Tokens
- 勾选 read_api
- 创建新 Token

无新提交被检测

检查 memory/gitlab_review_state.json 中的 last_reviewed_commit_id:

cat memory/gitlab_review_state.json

如果需要重新检测,删除该文件后重新运行脚本。

定时任务未执行

检查 cron 任务状态:

openclaw cron list

手动触发测试:

openclaw cron run <job-id>

安全信息

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

热门专题

按场景挑技能
全部专题 →

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