gerrit 部署安装http://www.cnblogs.com/kevingrace/p/5624122.html html
gerrit 权限管理http://zengestudy.blog.51cto.com/1702365/1772019 git
gerrit 项目权限管理http://www.360doc.com/content/16/0823/13/10058718_585326041.shtml github
http://www.360doc.com/content/16/0825/10/10058718_585779620.shtml服务器
Gerrit 对接github http://www.javashuo.com/article/p-txitxgah-ex.html ide
gerrit 代码同步到github http://www.javashuo.com/article/p-kgpcwsoy-r.html url
精华部分:more gerrit_site/etc/replication.configspa
[remote "10.0.3.254"]code
url = git@10.0.3.254:auto/${name}.git #在 gerrit 文档中有一个 ${name} 变量用来复制 Gerrit 的全部项目orm
push = +refs/heads/*:refs/heads/*htm
push = +refs/tags/*:refs/tags/*
push = +refs/changes/*:refs/changes/*
threads = 3
gerrit 分支操做记录 https://www.cnblogs.com/kevingrace/p/5688724.html
refs/for 和 refs/heads
向gerrit服务器提交代码命令:
$git push origin HEAD:refs/for/mybranch
refs/for/mybranch须要通过code review以后才能够提交;
refs/heads/mybranch不须要code review。
master分支
项目的master分支默认只有administrators和Project Owners能够不经代码审核直接推送,可是容许其余用户向master分支推送changes接受评审。这里调整为Registered Users组用户不能向master推送changes,而只能向devel分支推送changes。devel分支的权限默认便可。项目只有两个常设分支master和devel,平常开发只在devel分支上,只有管理员才能touch master分支。
Project->list(选定项目)->Access->Edit->Add Reference
reference的名字为:refs/for/refs/heads/master,而后添加push权限,添加组”Registered Users”,选择对应的push权限为deny,同时勾选Exclusive,覆盖掉该ref继承和被通配符所涵盖的权限。
Code Review和submit
gerrit默认只给Registered Users组用户Code View -1分到1分的权限,这样Registered Users组用户就没法独立完成代码审核,而developer都集中在这个组中,所以将其Code View权限调整为-2分到2分。并且改组用户没有submit的权限,没法合并补丁到仓库中,下面一并添加submit权限。
Project->list(选定项目)->Access->Edit->Add Reference
reference的名字为:refs/heads/*,而后添加Label Code-Review,添加组”Registered Users”,将其权限调整为-2 ~ 2。而后再添加Submit权限,添加组”Registered Users”,其权限为ALLOW。
sandbox分支
我的分支仍是十分有必要的,在开发成果尚未达到能够参加评审以前,用户能够在我的分支暂存本身的代码。stash暂存区并不能替代我的分支。Gerrit也考虑到了这一点,能够经过配置为每一个开发者提供一个独立的区域,能够不用参与代码评审,彻底是我的私有的领域。
添加以下引用:
refs/heads/sandbox/${username}/*
而后选择权限Create Reference和push,让”Registered Users”组对应的权限皆为ALLOW就能够了。
调整后的权限