2011-03-18 61 views
2

我正在使用Gerrit代碼審查。Gerrit hook API

我有一個問題。有一些鉤子與格里特,其中之一是:

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

格里特將調用它,如果你把一些變化格里特。

傳入的commit參數是sha1提交編號,但我想要的是提交日誌。例如,如果我做git commit -m "id:110",我想獲得id:110

我該如何得到它?有沒有我可以使用的API?

+1

好主意。但爲什麼不嘗試訂閱該項目並獲得通知。 – yuwang 2011-11-19 07:35:32

回答

0

我已經解決了我自己的問題。似乎gerrit並沒有這樣的apis。 但是,如果調用了patchset創建的鉤子,那麼它傳入的change參數是有用的,如果引用gerrit數據庫表的私鑰(命名爲Change),則每個git推送到gerrit它將這樣的更改記錄到更改表中,包括提交消息,所以,你可以使用change參數來查詢表,所以從掛鉤獲得提交消息!

6

您可以使用git log或git show,從正確的存儲庫中運行。您的鉤子將通過--repository傳遞迴購。該鉤子將從一個有用的工作目錄中調用(我剛剛檢查了上個星期,我認爲cd在進入鉤子之前進入回購?)

git log $SHA1git show $SHA1取決於您想要的信息。

這就是說,我更喜歡更好的解決方案。我希望將diff/patchset添加到信息中,並且不能通過任何gerrit鉤子來使用。