如何通过Gerrit REST API获取Patchset ID及查询变更文件?
Gerrit REST API 获取Patchset ID的方法
1. 从变更基础接口直接获取
调用GET /changes/{change-id}接口({change-id}替换为目标变更ID,格式类似项目名~分支名~Ixxxxxx),返回的JSON数据默认包含revisions节点:
- 每个revision的key值就是该patchset的完整哈希ID,可直接用于
/revisions/{patchSetNumber}/files路径 - 每个revision对象里的
_number字段是patchset的序号(比如1、2、3),同样可用于上述路径
如果你的请求未返回revisions节点,大概率是用o参数限制了返回字段,需要追加o=ALL_REVISIONS或o=CURRENT_REVISION参数,示例请求:
GET /changes/{change-id}?o=ALL_REVISIONS
2. 用Patchsets专属接口获取
调用GET /changes/{change-id}/patchsets接口,会直接返回所有patchset的列表,每个条目明确包含:
number:patchset的序号revision:patchset的完整哈希ID
这个接口返回的数据结构更简洁,适合仅需获取patchset信息的场景。
3. 获取最新Patchset的快捷方式
如果只需要最新的patchset,无需手动查找ID,可直接用current作为占位符调用接口:
GET /changes/{change-id}/revisions/current/files
Gerrit会自动将current解析为最新的patchset,直接返回修改的文件列表,省去单独获取ID的步骤。
注意:若之前调用
/changes/{change-id}/details未找到revisions节点,同样需要追加o=ALL_REVISIONS参数,该接口默认会限制返回字段。
内容的提问来源于stack exchange,提问作者Gbard
相关产品推荐
相关产品推荐

