Gerrit能夠管理和生成超連結到GitWeb上,并允許使用者從Gerrit頁面跳轉到GitWeb頁面上檢視相同資訊。
以下是Gerrit官網對Gerrit-GitWeb內建的介紹:
<a href="https://gerrit-documentation.storage.googleapis.com/Documentation/2.7/config-gitweb.html" target="_blank">https://gerrit-documentation.storage.googleapis.com/Documentation/2.7/config-gitweb.html</a>
1、首先Gerrit伺服器上要安裝GitWeb,如果沒有安裝,則執行以下指令來安裝
yum -y install gitweb
2、配置Gerrit來內建GitWeb
配置指令:
yum安裝的GitWeb,生成的gitweb.cgi檔案路徑為/var/www/git/gitweb.cgi
安裝完成後重新開機Gerrit伺服器
重新開機後,可以看到GitWeb的超連結
打開超連結,項目的所有送出記錄都能看到,每一次送出修改了哪些内容也能看到。
GitWeb內建Gerrit後,預設隻有管理者使用者才能檢視GitWeb超連結,普通用打開連結後頁面顯示Not Found。
如果想給普通的使用者檢視GitWeb超連結的權限,則必須對項目設定refs/meta/config 的Read權限。而這個權限在All-Projects的ACL裡隻對Administrators使用者和Project Owners開放。
于是需要在單獨項目的ACL裡為項目的使用者組增加對refs/meta/config的read權限,如下圖
這裡我是對所有的注冊使用者開放了該權限,用普通使用者user2登入Gerrit Web UI,确實能打開CI-DEMO項目裡面的GitWeb超連結了
但是,問題來了。原來gerrit是用git做自身的ACL管理的,是以所有對refs/meta/config有read權限的使用者都可以在Project的Access頁面裡修改權限,修改後雖然不能直接submit,但是可以作為patch送出review。而且通過gitweb就能夠看到project.config和groups檔案的全部内容,知道目前項目是如何設定權限的。這樣是否合适就仁者見仁智者見智了
另外,對于使用者送出的關于權限修改的patch如果想commit的話需要對refs/meta/config做和refs/heads/*一樣的權限設定,也就說需要Label Code-Review,Label Verified,Submit三個權限才有可能commit patch。
本文轉自 曾哥最愛 51CTO部落格,原文連結:http://blog.51cto.com/zengestudy/1789794,如需轉載請自行聯系原作者