从我刚刚在 Jenkins 工作中推送的提交中获取更改 ID?

Get change id from the commit i just pushed in a Jenkins job?

我需要从 gerrit 中获取更改 ID,我使用以下代码推送同一个作业

git status
git add -A
git commit -m "Jenkins passed job commit"
git push origin HEAD:refs/for/branch_name/Topic_name

原因是我还需要为它提供评论 +1 标签,我想对于 ssh api 调用我需要更改号码。 也欢迎其他为特定提交设置审查标签的解决方案!

谢谢!

当您执行“git push”命令时,您会收到类似于以下输出的内容:

remote: Processing changes: refs: 1, new: 1, done            
remote: 
remote: SUCCESS        
remote: 
remote:   https://GERRIT-SERVER/c/sandbox/helloworld/+/72712 Do a generic change [NEW]        
remote: 
To https://GERRIT-SERVER/a/sandbox/helloworld
 * [new branch]      HEAD -> refs/for/master

您可以将此输出重定向到执行以下操作的文件:

git push origin HEAD:refs/for/master 2>&1 | tee output.log

然后可以通过以下命令获取Change-Id:

if grep -q "SUCCESS" output.log
then
    changeid=$(grep "remote:" output.log | grep "GERRIT-SERVER" | cut -d "+" -f 2 | cut -d "/" -f 2 | cut -d " " -f 1)
fi