Gerrit自动化工作流咨询:获取Commit ID及Change ID的方法
Gerrit推送失败问题解决方案
问题1:获取未显示的最新commit ID
可以通过以下git命令直接获取目标分支或当前工作区的最新commit ID:
- 获取当前分支的最新commit ID:
git rev-parse HEAD - 查看最近1条提交的ID和简要信息(更直观):
git log --oneline -1 - 直接指定错误中涉及的分支(CICCORNERSTONE)获取其最新commit ID:
git rev-parse refs/heads/CICCORNERSTONE
如果是在自动化脚本中,可以捕获这些命令的输出结果来获取ID。
问题2:自动化根据commit ID查找对应的变更编号
Gerrit提供两种官方支持的自动化方式:
1. REST API方式
发送GET请求查询对应commit的变更信息,示例请求:
curl -u <用户名>:<密码/访问令牌> "https://你的Gerrit服务器地址/changes/?q=commit:<目标commit-ID>"
返回的JSON数据中,number字段就是对应的变更编号,change_id是Gerrit内部的变更标识。
2. SSH API方式
通过Gerrit的SSH命令行工具查询,示例命令:
ssh -p <SSH端口> <用户名>@你的Gerrit服务器地址 gerrit query commit:<目标commit-ID> --current-patch-set --format=JSON
返回的JSON结果里,number字段即为变更编号。如果需要在脚本中提取,可以配合jq工具解析:
ssh -p <SSH端口> <用户名>@你的Gerrit服务器地址 gerrit query commit:<目标commit-ID> --current-patch-set --format=JSON | jq '.number'
内容的提问来源于stack exchange,提问作者Prabal Rakshit
相关产品推荐
相关产品推荐

