gerrit-integration
能力
面向 Gerrit 代码评审系统,提供 Agent 级别的 PR 审核闭环。
| Tool | 对应 Gerrit REST API |
|---|---|
gerrit_fetch_change | GET /changes/{id}/detail — 拉取 change 详情 |
gerrit_get_diff | GET /changes/{id}/revisions/{rev}/patch — 拉取 diff |
gerrit_post_review | POST /changes/{id}/revisions/{rev}/review — 打分 + 评论(Code-Review 标签 -2 ~ +2) |
ask_user | 模糊场景向用户确认(比如打 -2 前) |
典型流程
Code-Review 标签语义
| 分值 | 含义 |
|---|---|
| +2 | 同意合并(通常只有 maintainer 才能给) |
| +1 | 认可但还需有人 +2 |
| 0 | 不表态 |
| -1 | 不建议合并,有待讨论 |
| -2 | 坚决拒绝,阻止合并 |
Agent 通常只在明确检测到严重问题时给 -1 或 -2,并附带具体证据。
安全 / 合规
| 事项 | 说明 |
|---|---|
| 凭据 | 通过 credential adapter 注入 Gerrit HTTP 密码 / OAuth Token |
| 租户隔离 | 每个租户独立凭据 |
| 审计 | 所有 post_review 操作记录到 ledger |
| 防误伤 | 打 -2 前默认先 ask_user 确认 |
触发方式
自然语言示例:
- "拉 Gerrit change 87654 看看"
- "对这个 change 做一次代码审核,然后回帖"
- "如果有严重 Bug 就打 -1"
行为升级提醒(老客户从早期版本升级看这里)
| 变化项 | 旧行为 | 新行为 | 你需要做什么 |
|---|---|---|---|
| 回帖默认开关 | webhook 进来一条 change,agent 默认会回帖 | auto_broadcast 默认改为 False——必须明确开启才会回帖 | 如果你确实希望自动回帖,在租户配置里把这个开关打开;否则把它当作"只审不回,结果发到 IM"的模式 |
| 全分支审 / 全仓审 | (历史版本不做承诺) | 当前 Gerrit 适配不支持全分支审,仅支持单 change 审核 | 需要全仓审的项目,请改用 GitHub / GitLab 适配,或先 mirror 到 git 仓库再走通用代码评审 |
| Webhook 配置 | 早期文档里给的是 raw URL | 现在统一通过平台 inbound channel 接入,平台会下发 webhook URL + secret | 重新生成 webhook 地址,老的 URL 可能已失效 |
建议先在测试 change 上打一次 +0(仅留言不打分)确认链路通了,再决定
auto_broadcast是否开。
与其他技能的配合
- git — fetch change refs 到本地
- code-review — L2 语义评审
- L1 工具链 — 静态分析
- html-report — 生成审核报告看板