xIPnexxIPnex

gerrit-integration

能力

面向 Gerrit 代码评审系统,提供 Agent 级别的 PR 审核闭环。

Tool对应 Gerrit REST API
gerrit_fetch_changeGET /changes/{id}/detail — 拉取 change 详情
gerrit_get_diffGET /changes/{id}/revisions/{rev}/patch — 拉取 diff
gerrit_post_reviewPOST /changes/{id}/revisions/{rev}/review — 打分 + 评论(Code-Review 标签 -2 ~ +2)
ask_user模糊场景向用户确认(比如打 -2 前)

典型流程

Webhook: change 更新

gerrit_fetch_change(change_id=12345)
   ↓ change detail
git skill → fetch refs/changes/.../1
   ↓ 代码到本地
L1 静态分析 + L2 code-review
   ↓ 审核结果
gerrit_post_review(message=..., labels={Code-Review: -1})

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-integration 审核这个 change 并打分

自然语言示例:

  • "拉 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 是否开。

与其他技能的配合

On this page