Pygerrit with Gerrit REST API
Gerrit 是一套開放源始碼 、以 Java 編寫而成的程式碼審查(Code Review)軟體,其功能性質類似於 GitHub,一樣以 Git 作為版本控制的基礎。Gerrit 同時提供了一系列的 API 讓使用者能夠方便讀取和更新資料,其以 REST 風格來做開發,因此稱為 Gerrit REST API 。 Pygerrit 是一個用於與 Gerrit REST API 溝通的 Python 模組,其第一代由 Sony 開發,但目前看起來已經沒有在維護了,幸好有開發者推出了第二代 Pygerrit2 ,讓泰勞可以將很多例行性的工作自動化成 Python 腳本。本文範例所使用的都會是 Pygerrit2 喔! 架設 Gerrit Code Review 在開始測試之前,務必先架設好 Gerrit,最簡單的方式就是使用 Gerrit Docker Image ,只需一行指令,上去建立一個 Repository 再把測試用的專案透過 Git 推送到 Gerrit 即可完成事前步驟。 $ docker run -ti -p 8080:8080 -p 29418:29418 gerritcodereview/gerrit $ git push ssh:// username @ www.gerrit.com :29418/ reponame HEAD:refs/heads/master 安裝 Pygerrit2 $ pip install pygerrit2 --user 撰寫 Python 腳本 先設定待會向 Gerrit 請求資訊時需要的認證。 auth = HTTPBasicAuth('username', 'password') rest = GerritRestAPI(url='http://www.gerrit.com:8080', auth=auth) 若認證沒有問題,就可以開始嘗試請求資訊囉!第一個範例是將所有自己已 Submit 的 Change 列出來,回傳的資訊會是一個 List,稍微處理一下再打印出來。 changes = rest.get ("/changes/ ?q=owner:self%20status:merged