You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Gerrit REST API回复指定ID的评审消息?

解决Gerrit REST API回复评审消息的问题

1. 先明确Gerrit的两种消息类型

  • 评审消息:通过/revisions/{revision-id}/review接口发布的全局评审消息,属于整个评审流的顶层消息。
  • 回复评论:针对某条评审消息的嵌套回复,Web UI点击REPLY生成的内容,需要明确关联到原消息ID。

2. 回复指定ID评审消息的REST命令

要回复ID为75315257818648484913e5ae8a5486df3ba36093的消息,需调用change级的回复接口,而非revision的评审接口:

curl -u USERNAME:PASS -H "Content-Type: application/json" -H "Accept: application/json" \
gerrit-server.com/a/changes/If875a8dc754b911098b0746d9ac47b332bee64d1/messages/75315257818648484913e5ae8a5486df3ba36093/replies \
-X POST -d '{
  "message": "这是通过REST API发送的回复"
}'

调用后,回复会自动与原消息建立关联,在Gerrit UI中以嵌套形式显示。

3. 查看回复与原消息的关联关系

调用GET /changes/{change-id}/messages接口,返回的回复消息会包含in_reply_to字段,直接对应原消息的ID:

{
  "id": "新的回复消息ID",
  "author": {"_account_id":1001115, "name":"Itzhaki", ...},
  "date": "2023-10-01 11:00:00.000000000",
  "message": "这是通过REST API发送的回复",
  "in_reply_to": "75315257818648484913e5ae8a5486df3ba36093",
  "_revision_number": 1
}

你之前通过/revisions/current/comments获取的Web UI回复内容,是UI层自动生成了原消息的文本引用(如> Patch Set 1:\n> This is a message),但REST API的标准关联方式是通过in_reply_to字段绑定原消息ID。

4. 关键说明

  • 最初调用的/revisions/current/review接口是发布新的顶层评审消息,不会关联已有消息,所以无法实现回复效果。
  • Web UI的REPLY按钮底层就是调用了messages/{message-id}/replies接口,若想让回复在UI中显示引用格式,可手动在message字段中添加原消息的文本引用,比如:
    {
      "message": "> Patch Set 1:\n> \n> This is a message\n\n这是通过REST API发送的回复"
    }
    

内容的提问来源于stack exchange,提问作者itzhaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 18:22:42