Skip to content

代码审查

让墨鱼当你的 Code Review 搭档——自动扫描 PR,发现安全问题,给出改进建议,还能在 GitHub 上直接留 Review 评论。

场景描述

每次提 PR 都要花很多时间做 Code Review。让 Hermes Agent 自动完成第一轮扫描:安全检查、风格审查、逻辑分析,只在有重要发现时才需要你亲自看。

前置准备

  • ✅ GitHub CLI (gh) 已安装并认证
  • github-code-review 技能已安装
  • ✅ 项目已 clone 到本地

第一步:安装技能

bash
# 检查技能是否已安装
/skills
# 如果没有,安装它
hermes skills install github-code-review

第二步:手动触发 Review

你:帮我审查最新的 PR #42
Hermes:[加载 github-code-review 技能]
        [分析 git diff...]
        [扫描安全问题...]
        [生成审查报告...]

        PR #42 审查完成:
        🔴 1 个安全问题:SQL 注入风险(第 45 行)
        🟡 2 个建议:错误处理可以更健壮
        🟢 代码风格良好,测试覆盖充分

审查示例:安全问题发现

假设 PR 中有如下代码:

python
# PR #42 中的代码(有问题)
def get_user(user_id):
    query = f"SELECT * FROM users WHERE id = {user_id}"
    return db.execute(query)

Hermes 会识别并报告:

🔴 安全问题 [第 45 行]
  SQL 拼接存在注入风险。建议使用参数化查询:
  
  query = "SELECT * FROM users WHERE id = ?"
  return db.execute(query, (user_id,))

审查示例:性能优化建议

🟡 性能建议 [第 78-82 行]
  检测到 N+1 查询模式。在循环中调用了 db.get_profile(),
  建议改为批量查询:
  
  profiles = db.get_profiles_batch(user_ids=[u.id for u in users])

💡 Hermes 会在审查报告中给出具体的修复建议和代码示例,而不只是指出问题。

第三步:自动留评论

你:把审查结果作为 Review 评论提交到 PR #42
Hermes:[调用 gh api 提交 review comments...]
        已在 PR #42 提交 3 条 inline 评论。

第四步:配置为自动 Review

利用 GitHub Webhook 或 Cron 实现自动审查:

方式一:Cron 定时审查

你:创建一个定时任务——
    每天早上 9 点检查 hello-hermes 仓库的所有新增 PR,
    对每个 PR 自动执行 Code Review 并提交评论。

Hermes:[创建 cron 任务]
        已创建:每天 09:00 自动审查 fxbin/hello-hermes 的新 PR
        投递渠道:飞书 / Telegram

配置完成后,每天的审查流程:

09:00 → Hermes 检查新增 PR
      → 对每个 PR 执行完整审查
      → 在 PR 中提交 inline 评论
      → 通过飞书/Telegram 发送摘要通知

方式二:Webhook 实时审查

在仓库 Settings → Webhooks 中添加 Hermes 的回调地址,每次新 PR 创建时自动触发审查。

⚠️ Webhook 方式需要 Hermes Gateway 处于运行状态,且公网可达。如果条件不满足,建议用 Cron 方式。

审查维度

维度检查内容
🔴 安全SQL 注入、XSS、硬编码密钥、权限绕过
🟡 性能N+1 查询、内存泄漏、不必要的循环
🟡 可维护性过长函数、重复代码、缺少注释
🟢 风格命名规范、代码格式、类型标注

进阶玩法

  • PR 描述自动生成:让墨鱼根据 diff 自动写 PR Description
  • 合并前强制 Review:配合 GitHub Actions 触发 Hermes 审查
  • 按仓库定制规则:在 SKILL.md 中加入项目专属的审查规则

深入阅读

基于 CC BY-NC-SA 4.0 发布 | GitHub