Gerrit hook API

时间:2011-03-18 03:55:59

标签: gerrit

我正在使用Gerrit Code审核。

我遇到了问题。 Gerrit有一些钩子,其中一个是:

patchset-created --change <change id> --change-url <change url>
--project <project name> --branch <branch> --uploader <uploader>
--commit <sha1> --patchset <patchset id> 

如果你对Gerrit进行一些更改,Gerrit会调用它。

传入的commit参数是sha1提交号,但我想要的是提交日志。例如,如果我git commit -m "id:110",我想获得id:110

我怎样才能得到它?我可以使用任何API吗?

2 个答案:

答案 0 :(得分:6)

您可以使用git log或git show,在正确的存储库中运行。你的钩子将通过--repository传递给repo。钩子将从一个有用的工作目录中调用(我上周刚检查过这个,我认为在运行钩子之前它已经进入了repo?)

git log $SHA1git show $SHA1取决于您想要的信息。

那就是说,我更喜欢更好的解决方案。我希望将diff / patchset添加到信息中,并且它不能通过任何gerrit钩子获得。

答案 1 :(得分:-1)

我自己解决了这个问题。似乎格里特没有这样的api。 但是,如果调用patchset创建的钩子,它传入的更改参数是有用的, 如果引用一个名为Change的gerrit数据库表的私钥,那么每个git push都会将它记录到Change表中这样的更改,包含提交消息,这样,你就可以使用change参数来查询表了,所以得到了提交来自钩子的消息!