代码审查
让墨鱼当你的 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 中加入项目专属的审查规则
深入阅读
- github-code-review 技能源码 — 内置代码审查技能
- 第6章 技能系统