是否可以从gerrit更改ID获取git commit-id? 我正在写一个jenkins工作,其中GERRIT_CHANGE_ID正在传递,但我也需要COMMIT_ID,以便樱桃自动在另一个分支上挑选合并的gerrit。
答案 0 :(得分:4)
有SSH和REST API可用于获取有关更改的信息,包括补丁集'提交SHA-1。
使用Gerrit's query SSH command的示例:
$ ssh <hostname etc> gerrit query --current-patch-set $GERRIT_CHANGE_ID
请记住,更改ID并不一定只标识一个提交。如果您有关于更改的更多信息,可以避免出现问题。您可能希望传递--format JSON
以获得更好的机器解析输出。
使用Get Change REST endpoint的示例:
$ curl http://<hostname etc>/changes/$GERRIT_CHANGE_ID?o=CURRENT_REVISION
答案 1 :(得分:2)
我认为你的工作是由Gerrit Trigger Plugin触发的。因此,在这种情况下,您将可以访问本地的git存储库,其中HEAD将指向所需的提交。 git repo的本地子目录是在Git插件下定义的。然后,您可以使用git rev-parse --verify HEAD
- as jakub-narębski suggests