7、Gerrit集成GitWeb-阿里云开发者社区

开发者社区> 开发与运维> 正文

7、Gerrit集成GitWeb

简介:

gerrit和Gitweb的本地集成介绍

Gerrit能够管理和生成超链接到GitWeb上,并允许用户从Gerrit页面跳转到GitWeb页面上查看相同信息。

以下是Gerrit官网对Gerrit-GitWeb集成的介绍:

https://gerrit-documentation.storage.googleapis.com/Documentation/2.7/config-gitweb.html


Gerrit和GitWeb如何集成使用?

1、首先Gerrit服务器上要安装GitWeb,如果没有安装,则执行以下命令来安装

yum -y install gitweb


2、配置Gerrit来集成GitWeb

配置命令:

git config --file $site_path/etc/gerrit.config gitweb.cgi $gitweb_path/gitweb.cgi
git config --file $site_path/etc/gerrit.config --unset gitweb.url
我的测试环境中,gerrit的安装路径为 /home/gerrit2/gerrit

yum安装的GitWeb,生成的gitweb.cgi文件路径为/var/www/git/gitweb.cgi

image2016-6-14%2014%3A27%3A57.png?versio

安装完成后重启Gerrit服务器


重启后,可以看到GitWeb的超链接

image2016-6-14%2014%3A32%3A25.png?versio

打开超链接,项目的所有提交记录都能看到,每一次提交修改了哪些内容也能看到。

image2016-6-14%2014%3A32%3A53.png?versio

image2016-6-14%2014%3A35%3A59.png?versio


GitWeb权限问题

GitWeb集成Gerrit后,默认只有管理员用户才能查看GitWeb超链接,普通用打开链接后页面显示Not Found。

如果想给普通的用户查看GitWeb超链接的权限,则必须对项目设置refs/meta/config 的Read权限。而这个权限在All-Projects的ACL里只对Administrators用户和Project Owners开放。

image2016-6-16%208%3A53%3A9.png?version=


于是需要在单独项目的ACL里为项目的用户组增加对refs/meta/config的read权限,如下图

 image2016-6-16%208%3A56%3A41.png?version

这里我是对所有的注册用户开放了该权限,用普通用户user2登录Gerrit Web UI,确实能打开CI-DEMO项目里面的GitWeb超链接了

image2016-6-16%208%3A58%3A27.png?version


但是,问题来了。原来gerrit是用git做自身的ACL管理的,因此所有对refs/meta/config有read权限的用户都可以在Project的Access页面里修改权限,修改后虽然不能直接submit,但是可以作为patch提交review。而且通过gitweb就能够看到project.config和groups文件的全部内容,知道当前项目是如何设置权限的。这样是否合适就仁者见仁智者见智了

image2016-6-16%208%3A59%3A50.png?version


另外,对于用户提交的关于权限修改的patch如果想commit的话需要对refs/meta/config做和refs/heads/*一样的权限设定,也就说需要Label Code-Review,Label Verified,Submit三个权限才有可能commit patch。










本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1789794,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章