java中的接口是类吗
945
2022-09-08
Gerrit码仓之分配权限使用方法秘籍
描述:
百度百科:Gerrit,一种免费、开放源代码的代码审查软件,使用网页界面。
需求:根据公司要求配置管理Gerrit码仓,因Gerrit的自身界面以及长时间使用gitlab的习惯,一时间无法快速上手故此留此篇。
1 设置项目管理员免密访问 Gerrit
项目管理员在Gerrit上做任何配置之前,需要先设置好与Gerrit之间的免密访问,下面以 CentOS-7.7.1908 x86-64 为例说明,Windows(Git Bash 中)下的免密访问配置与此相同:
(1) 本地生成 SSH Key:
ssh-keygen -t rsa -C lishilong@XXX.com ,lishilong@xxx.com 是项目管理员的邮箱地址。
(2) 查看公钥:
cat .ssh/id_rsa.pub
(3) 登录 Gerrit 配置公钥:
Login into Gerrit as Project Owner: lishilong, 执行: 账户名 -> Settings -> SSH Keys -> New SSH Key -> 输入上一步的 Public Key -> Add NEW SSH KEY -> 单击 SAVE
CHANGES 按钮保存。示例效果:
1.1 创建项目
(1) 创建项目
以项目管理员账户如:lishilong 登录 Gerrit, BROWSE -> Repositories -> CREATE NEW
-> 输入 Repository Name(建议格式为:部门/业务单元 Code/应用 Code, 例如:IOT/PAAS_CI/ci_demo,下文已该项目为例),其他选项保持默认值,单击 CREATE 按钮创建项目。示例效果:
(2) 更新项目 Description
BROWSE -> Repositories -> 单击上一步新建的项目,Description 中输入描述信息(建议格式:<团队名称>:<一句话描述该项目>,以 ci_demo 源码为例说明:基础云:CI 示例项目,然后单击页面下方的 Save Changes 按钮保存。示例如下:
1.2 删除项目
项目管理员登录 Gerrit 后 -> BROWSE -> Repositories -> IOT/CI_PAAS/ci_demo -> Command-> 单击 DELETE PROJECT 按钮,在弹出的层中勾选: Delete project even if open chang, 在单击 DELETE 按钮删除。示例效果:
1.3 配置项目权限
本小节展示 Gerrit 上一个源码类项目的 Acces 配置示例,各开发团队可参考该部分操步骤配置
自己本团队的源码类项目。
1.3.1 授权规划
(1) 项目分支
规划 2 个分支:master:主分支;develop:活动分支;
本小节为了示例的需要,规划了 2 个分支,各项目管理员可根据项目的需要合理规划分支。
(2) 角色规划
ci_demo_owner: lishilong; 该角色是项目管理员申请加入 Gerrit 中的Administrators 组后获取到的(或者自己是管理员);Access: 查看项目信息(包括 Gitweb 超链接),创建项目,创建分支,创建 Tag, 创建 Group,配置项目权限,删除 CR 记录,+1,+2, Submit, Force Push 等权限;
ci_demo_leader: usera; Access: 查看项目信息(包括 Gitweb 超链接), 查看 Group 信息,发起 CR, 创建分支,创建 Tag, +1, +2, Submit; ci_demo_dev: userb;Access: 查看项目信息(包括 Gitweb 超链接), Group 信息,发起 CR。
1.3.2 创建 Leader 组和 Developer 组
根据角色规划,需要对 Leader(审核人员)创建一个组,如:ci_demo_leader。对开发者创建一个组,如: ci_demo_dev,而 ci_demo_owner 是由 Gerrit 的运维管理员统一创建的。
1.3.2.1 创建 Leader 组
(1) 创建 Group
(2) 添加成员
BROWSE -> Groups -> ci_demo_leader -> Members -> Members 输入框中输入 Leader 账户名(系统将自动匹配到该账户信息,选中) -> 单击 Add 按钮。示例效果如下:
1.3.2.2 创建 Developer 组
(1) 创建 Group
(2) 添加成员
BROWSE -> Groups -> ci_demo_dev-> Members -> Members 输入框中输入开发者账户名(系统将自动匹配到该账户信息,选中) -> 单击 Add 按钮。示例效果如下:
1.3.3 配置本项目可查看成员
项目管理员登录 Gerrit 后 -> BROWSE -> 下拉选择 Repositories -> IOT/xxx_CI/xxx_demo -> A -> EDIT,配置步骤示例:
单击 EDIT 按钮后显示 ADD REFERENCE 按钮,单击 ADD REFERENCE 按钮 -> 输入框中输入(或单击Reference 后面的修改图标,):refs/* -> Add Permission…, 选择 Read,单击权限下来列表后的 ADD 按钮添加 -> Add Group 输入框中分别输入:ci_demo_owner、ci_demo_leader、ci_demo_dev、Non-Interactive Users (系统根据输入将自动匹配) -> 单击 Exclusive 选项,前面单击页面配置部分顶部的的 SAVE 按钮保存更改。
后续配置 A 的操作均与此步相同,将不在描述具体操作步骤。配置步骤示例:
配置完成后示例效果(增加 Non-Interactive Users Group,截图需更新):
1.3.4 配置本项目所有成员可查看分支信息
针对本项目的 refs/heads/*,增加 Read 权限,配置后效果:
4.5.5 配置 Leader 创建分支权限
针对本项目的 refs/heads/*,增加 Create Reference 权限,配置后效果:
1.3.6 配置 Leader 删除分支权限
针对本项目的 refs/heads/*,增加 Delete Reference 权限,配置后效果:
删除分支时,首先单击分支后面的 DELETE 按钮,在弹出的窗口中单击 DELETE BRANCH 按钮(删除前请确认你确实需要删除该分支);操作示例:
1.3.7 配置自动/手工+1 权限如果需要自动+1(流程默认配置),需要将 Label Verified 赋予 Non-Interactive User Group(该组中只有 jenkins 一个用户, 该用户被运维管理员已经添加到该组中了);如果是手工+1,需要将 Label Verified 赋予 Leader 组。针对本项目的 refs/heads/*,增加 Label Verified 权限,配置后效果:
1.3.8 配置 Leader +2 权限
针对本项目的 refs/heads/*,增加 Label Code-Review 权限,配置后效果:
1.3.9 配置 Leader Submit 权限
针对本项目的 refs/heads/*,增加 Submit 权限,配置后效果:
1.3.10 配置 Leader Fore Push 权限
针对本项目的 refs/heads/*,增加 Push 权限,配置后效果:
1.3.11 配置指定用户对指定项目发起 Code Review
针对本项目的 refs/for/refs/*,增加 Push、Push Merge Commit 权限,配置后效果:
1.3.12 配置项目成员访问 Gitweb 权限
比如希望 ci_demo_leader 和 ci_demo_dev 组内的开发者能正常访问 gitweb,即访问 Repository Browser 中的 gitweb 超链接:
链接点进去后效果:
1.3.13 配置项目管理员修改项目配置的权限
针对本项目的 refs/meta/config,增加 Push 权限,配置后效果:
1.3.14 配置项目管理员和 Leader 打 Tag 权限
针对本项目的 refs/tags/*,增加下面权限,配置后效果:
因为项目管理员在创建 ci_demo_leader 组时已经把自己加在该组中了,所以此处将权限分配给ci_demo_leader 组,项目管理员也拥有了这个权限。
1.4 提交项目初始结构至 Gerrit
Gerrit 中项目权限配置完成后,项目管理员需要把自己本地工作空间的项目初始结构提交至Gerrit 上创建的项目下,以供开发人员进行协同开发。具体操作步骤:
(1) Login into Gerrit as Project Owner: lishilong;
(3) Clone 项目到本地
git clone ssh://xxxxxxx/ci_demo.git
(4) 进入 Clone 到本地的项目路径 ci_demo 下,然后将准备好的项目初始结构复制到 ci_demo 目录下,根据本项目的需要修改.gitignore 文件;
(5) 执行提交操作
//当前目录下文件/目录纳入版本控制
git add .
//全局配置,当本地有多个项目时,只需配置一次
git config --global user.name "lishilong"
git config --global user.email lishilong@xxx.com
//提交推送到远程服务器
git commit -m 'Init Project’
git push -u origin master
至此 Gerrit 中项目配置部分完成,针对非 master 分支如需进行 Code Review,请参考 其他文档配置。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~