Gerrit权限设置
一、新建项目
二、增加新用户
四、项目权限控制
在gerrit服务器搭建的时候,创立的第一个用户(admin),是管理员账户。只有这个账户,才有权限创建项目,其它后增加的账户,是没有创建项目的权限的。后续的权限控制,都是管理员账户在操作!
- 增加admin邮箱,后面所有账户的gerrit邮件消息,都由这个邮箱发送(admin登陆):
- 在浏览器输入gerrit服务器地址,并用admin账户登陆;
- 点击admin旁边的倒三角;
- 选择"Settings";
- 在"Settings"中选择"Contact Information";
- 点击"Register New Email...";
- 在弹框"Register Email Address"中输入QQ邮箱;
- 点击"Register";
- 登陆QQ邮箱;
- 收到的邮件,就是gerrit发送第一封验证邮件。
到了这一步,就说明gerrit完全成功了,如果邮箱或者其它有问题,请参考上一篇文章。
- 新建项目(admin登陆):
- 选择"Projects";
- 选择"Create New Project";
- "Project Name",填一个唯一的项目名称;
- "Rights Inherit From",这个不需要手动填写;
- 点击"Browse";
- 在弹出的对话框上面,选择"All-Projects";
- "Close";
- 点击"Create Project"。
在虚拟机gerrit账户下,可以查看新建的项目,到了这一步,项目创建就完成了。
- 删除项目:
sudo rm -rf test_1.git/
这步操作之后,需要重启服务器,否则,gerrit会出错!
- 服务器增加新用户(这一步由管理员完成):
cd /home/gerrit/review_site sudo htpasswd -b etc/gerrit.passwd <用户名> <密码> e.g. sudo htpasswd -b etc/gerrit.passwd l 1
新增加的用户以及密码。
- 增加邮箱(这一步由用户自己完成):
用刚才注册的用户登陆gerrit,自动进入邮箱注册界面。
注册之后,在你的工作邮箱,就会收到管理员邮箱(QQ邮箱),发过来的验证邮件。
- 增加公钥(这一步由用户自己完成):
ssh-keygen -t rsa
一路回车,不需要做任何动作!
gedit .ssh/id_rsa.pub
在打开的文档中,Ctrl+a然后Ctrl+c拷贝,注意:不要做任何多余的动作,千万不要更改这个文件!!!!!
- 在"Settings"中,选择"SSH Public Keys";
- 将复制的pub key,粘贴到空格中。
- 点击"Add",这样公钥就被加入到gerrit里面了。
- 到了这里,新用户增加已经完成!
- 获取项目路径:
- 用"admin"(管理员账户)登陆;
- 选择"Projects" -> "List"。
- 点击项目"test_1"后面的"(gitweb)"。
- clone project:
git clone ssh://<用户名>@project server e.g. gerrit:ssh://admin@192.168.56.105:29418/test_1.git l user:git clone ssh://l@192.168.56.105:29418/test_1.git
注:用户名,必须是gerrit注册的名称,clone的用户必须在.ssh/id_rsa.pub生成的用户下!
- add source:
$cd test_1 $vim a.txt --随便增加什么内容 $git status . $git add a.txt $git commit -m "first file" $git config --global user.email 注册的邮箱 $git config --global user.name 注册的用户名 $git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/master $git push origin HEAD:refs/for/master
提交之后,在用户"l"下就可以看到提交记录了。
这个时候,还只是临时存放在gerrit上面,目前还不能提交,还需要加上审核人员(目前是admin),等审核之后,才可以提交。
审核人员,审核后,直接"submmit"。 - 问题:
Windows: ssh-keygen -t rsa -C "qiong.liu@ofilm.com"或 ssh-keygen -t rsa 生成的秘钥,上传到gerrit git clone ssh://XXXX@gerrit ip:29418/xx.git 出现:Permission denied (publickey). 可以用以下方式生成的秘钥解决: ssh-keygen -t ed25519 -C "xxx@xx.com"
- 创建用户组:
管理员身份登陆:People -> Create New Group -> 输入Group 名称->Create Group
Members输入用户名称->Add/回车->保存用户到列表。注:Group默认就有admin账户!
- 项目分配用户组:
Projects->test_1,为项目test_1增加权限。
- 用"admin"(管理员账户)登陆;
- 选择"Acess"。
- 点击"Edit",然后才可以进行编辑;
- "Add Reference" ,增加项目群组。
- "Reference"必须改成"refs/*",否则,后面的权限控制会有问题;
- 在"Add Permmsion"中,选择需要控制的权限。
- 为"test_group",增加"Read"权限;
- "Save changes"。
- clone权限:
目前项目test_1的权限控制:群组test_group可以clone/push项目。
将test_1项目权限更改为"BLOCK",则无法clone代码,出现如下错误:
- push权限:
- "Read"权限允许;
- "Push"权限"BLOCK"。
push代码时候,出现如下错误:
- submmit权限:
群组"test_group"具有一般代码管理权限了。
上一篇:Gerrit环境搭建
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示