Gerrit配置--用户配置
环境:
Gerrit Server:172.16.206.133
Client:172.16.206.129
1、在Gerrit服务器上创建用户
Gerrit服务器使用的是HTTP认证类型,并用httpd做反向代理,创建用户使用以下命令
#cd /home/gerrit2/gerrit/etc
[root@localhost etc]# htpasswd -m passwords user2
New password:
Re-type new password:
Adding password for user user2
根据提示输入密码即可(密码设置为123456),这样账号就创建好了。创建完成,httpd和gerrit服务不需要重启。
2、登录gerrit用户
用创建的user2账号访问gerrit,在浏览器地址栏输入:
输入登录的账号密码,账号为user2,密码为123456
3、修改gerrit用户配置
登录后,在网页右上角点击自己的用户名,在点击“settings”。
settings中就是用户的配置相关信息,需要注册邮箱和提交服务器上的公钥
1、提交公钥
注意:为什么要提交公钥文件到gerrit服务器?如果不提交公钥,则不能使用git push命令将本地代码提交到gerrit服务器。公钥是一个认证方式。
在客户端172.16.206.129这台服务器上创建公、私钥对,具体命令如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
[user2@host2 root]$ ssh -keygen -t rsa Generating public /private rsa key pair. Enter file in which to save the key ( /home/user2/ . ssh /id_rsa ): Created directory '/home/user2/.ssh' . Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user2/ . ssh /id_rsa . Your public key has been saved in /home/user2/ . ssh /id_rsa .pub. The key fingerprint is: fd:da:fa:c5:ec:6c:82:60:1f:39:15: bc :62:ec:51:15 user2@host2 The key's randomart image is: +--[ RSA 2048]----+ | . .E. | | + | | . . o | | .= o | | So.= | | o =. o | | . o +. + | | oo.+. | | ooooo | +-----------------+ |
生成的密钥文件如下:
[user2@host2 ~]$ ls .ssh/
id_rsa id_rsa.pub
id_rsa.pub为公钥文件,将该文件中的内容,复制并粘贴到settings==>SSH Public Keys中,并点击Add
测试SSH key是否提交成功,在client 172.16.206.129服务器上执行以下命令:
#ssh -p 29418 user2@172.16.206.133
29418为gerrit上SSH服务器监听的端口,user2为登录的gerrit账号,注意这里我们使用哪个账号登录gerrit就使用哪个账号测试,并且该账号已经登录了gerrit服务器,而且公钥已经上传。172.16.206.133为gerrit服务器的IP
1
2
3
4
5
6
7
8
9
10
11
|
[user2@host2 . ssh ]$ ssh -p 29418 user2@172.16.206.133 The authenticity of host '[172.16.206.133]:29418 ([172.16.206.133]:29418)' can't be established. RSA key fingerprint is 93:d3:47:c2:15:32:f0:41:d9:e6:7f:88:66:01:f3:9b. Are you sure you want to continue connecting ( yes /no )? yes Warning: Permanently added '[172.16.206.133]:29418' (RSA) to the list of known hosts. **** Welcome to Gerrit Code Review **** Hi user2, you have successfully connected over SSH. Unfortunately, interactive shells are disabled. To clone a hosted Git repository, use: git clone ssh : //user2 @172.16.206.133:29418 /REPOSITORY_NAME .git Connection to 172.16.206.133 closed. |
可以看到连接成功,说明SSH Public Key上传成功。
为user2注册邮箱
点击Register后,登录你刚才注册的邮箱,激活即可。
4、创建用户组并创建一个项目
注意,只有管理员组的用户才能创建group和Project
登录Gerrit管理员账号admin,创建一个新的组为group2。并将user2账号加入该组
新建一个Project,名为Project2
5、gerrit代码审核流程
前面都是准备工作,接下来演示gerrit如何做代码审核的
a、client server( 172.16.206.129)的git初始配置
配置用户名和邮箱
#git config --global user.name "user2"
#git config --global user.email "YOUR EMAIL-ADDRESS"
b、用账户user2登录gerrit
在Projects==> List中找到Projects2,然后点击Clone with commit-msg hook, 在点击ssh按钮,
复制ssh下面项目地址:
1
|
git clone ssh : //user2 @172.16.206.133:29418 /Project2 && scp -p -P 29418 user2@172.16.206.133:hooks /commit-msg Project2/.git /hooks/ |
直接将刚才复制的命令,在client server的命令行运行
1
|
git clone ssh : //user2 @172.16.206.133:29418 /Project2 && scp -p -P 29418 user2@172.16.206.133:hooks /commit-msg Project2/.git /hooks/ |
注意:步骤b一定选Clone with commit-msg hook下面的地址来clone,否则在客户端使用git push
命令提交代码时会报错。如果不需要向gerrit服务器提交代码,那么你只需使用
git clone ssh://user2@172.16.206.133:29418/Project2
或者git clone http://user2@172.16.206.133:8081/a/Project2
c、创建一个文件,并提交到gerrit服务器端
1
2
3
4
|
[user2@host2 Project2]$ vim test .sh aaaaaaaaaaaaa bbbbbbbbbbbbb ccccccccccccc |
用git add 和git commit命令将文件保存到git仓库中
1
2
3
4
5
|
[user2@host2 Project2]$ git add test .sh [user2@host2 Project2]$ git commit -m "创建了test.sh文件" [master 16462e9] 创建了 test .sh文件 1 files changed, 3 insertions(+), 0 deletions(-) create mode 100644 test .sh |
d、用git push命令将代码从本地传到gerrit服务器对象项目下的master分支
1
2
3
4
5
6
7
8
9
10
11
12
|
[user2@host2 Project2]$ git push origin master:refs /for/master Counting objects: 4, done . Compressing objects: 100% (2 /2 ), done . Writing objects: 100% (3 /3 ), 341 bytes, done . Total 3 (delta 0), reused 0 (delta 0) remote: Processing changes: new: 1, refs: 1, done remote: remote: New Changes: remote: http: //172 .16.206.133:8081 /5 创建了 test .sh文件 remote: To ssh : //admin @172.16.206.133:29418 /Project2 * [new branch] master -> refs /for/master |
origin:远程仓库的名称,用git remote 可以查看所有的远程仓库名称
1
2
|
[user2@host2 Project2]$ git remote origin |
1
|
master:refs /for/master 表示将代码从本地的master分支传到远端的master分支,固定格式就是这样 |
e、用user2账号登录Gerrit Web UI,邀请管理员admin来做code review。
注意:之前忘记截图了,所以下图不是原图,但是基本上都一样,只有Owner和Project不对而已。
Add:添加指定用户来进行Code Review
Cherry Pick:切换分支,当执行push操作之后如果发现分支不对,需要切换,可以在这里点击Cherry Pick按钮进行分支切换操作。
Abandon:撤销push操作,当push之后,如果发现代码有问题,需要修改,可以点击这个按钮,然后修改代码,修改完成后,再次push,然后登陆Gerrit Web UI,会有一个Restore按钮,这时候点击Restore,就可以重新申请Code Review。
Rebase和Follow-Up没有找到相关资料
e、看看Gerrit服务器上是否有code review的信息
登录gerrit管理员账号admin,在ALL下面点击“Open”,看到“创建了test.sh”这条记录。
这里“创建了test.sh文件”就是git commit -m "创建了test.sh文件" 这条命令产生的
点开这条记录,看到以下信息
我们可以点开test.sh文件看到里面的内容
还可以看到提交者的信息:
这里显示的用户名和邮箱地址其实是在client server上初始化git时,用以下命令配置的
#git config --global user.name "user2"
#git config --global user.email "YOUR EMAIL-ADDRESS"
点击上上图中的code review和replay进行代码审核
-2 表示不通过,+2表示代码ok可以通过审核,目前还没有深究这个,我理解的就是这样子的。
审核后可以看到审核的日志
以上就是gerrit代码审核的流程,gerrit仓库是纯粹的代码仓库,不存在work tree这个说法。所以在gerrit仓库里面执行git命令都会报错:
1
2
|
[root@localhost Project2.git] # git status fatal: This operation must be run in a work tree |
但是,如果用git clone将gerrit仓库里面的项目clone下来后,就自动变成了一个git仓库。
Gerrit配置--用户配置的更多相关文章
- TestDirector自定义管理:用户配置
一.进入Customize 1.打开TD,点击TestDirector,进入登录界面,在TD登录页面右上角点击“CUSTOMIZE(自定义)”. 2.选择要登录的域和项目,输入用户帐号和密码,点击确定 ...
- gerrit系统如何配置访问控制
. 版本:v0.3 作者:河东西望 日期:2022-7-13 . 目录 1 关键概念 2 需求场景 3 配置策略 gerrit系统的上手使用有两个难点: 部署repo仓库. 配置访问控制. 想要上手使 ...
- 烂泥:Postfix邮件服务器搭建之虚拟用户配置
virtual_gid_maps = static: virtual_transport = dovecot dovecot_destination_recipient_limit = 1 注意:po ...
- Windows Server 2008 R2组策略设置计算机配置和用户配置
一.认识Windows Server 2008 R2域控组策略管理 1.域控服务器zhuyu.com的组策略管理默认会读取AD用户和计算机目录下创建的OU容器(组织单元), 在对应的OU容器创建对应的 ...
- 【HOW】用PowerShell脚本修改用户配置文件属性显示次序
首先将如下脚本保存为PowerShell文件,如:ReorderUserProfileProperty.ps1. 在执行此脚本时,如果不输入任何参数,将列出所有用户配置文件属性的名称和显示次序:如果只 ...
- 【HOW】如何允许编辑用户配置文件属性
在自定义用户配置文件属性后会发现,通过属性本身的配置页面,只能允许用户修改自己的属性,而管理员无法修改其他用户的属性.若要允许管理员在用户信息页面修改用户配置文件属性,可通过如下操作实现: 1. 进入 ...
- Jenkins用户配置(安装好jenkins后,怎么配置用户管理、权限管理)
直奔主题 安装完成后,先开启用户配置 1. 系统管理-->配置权限 2. 启用安全,并选中"安全矩阵" 如上,搞定: 可以按用户去设置各项目的操作权限了: 轻松实现,jen ...
- Linux用户配置sudo权限
Linux用户配置sudo权限 创建sudo权限用户 #useradd supope #passwd supope #visudo #supope ALL=(ALL) AL ...
- LTE Module User Documentation(翻译11)——配置用户测量
LTE用户文档 (如有不当的地方,欢迎指正!) 17 Configure UE measurements 仿真中激活的用户测量配置取决于所选的 “consumers”,例如切换算法.用户可能需要添 ...
随机推荐
- 【带权并查集】HDU 3047 Zjnu Stadium
http://acm.hdu.edu.cn/showproblem.php?pid=3047 [题意] http://blog.csdn.net/hj1107402232/article/detail ...
- react.js 渲染一个列表的实例
//引入模块 import React,{Component} from 'react'; import ReactDOM from 'react-dom'; //定义一个要渲染的数组 let use ...
- ESI 动态缓存技术[转载]
任何一个Web网站的内容都是在不断更新和变化,但这并不意味这这个网站的内容就是动态内容,事实上,动态的内容是指用户每次点击 相同的链接时取的的内容是由Web服务器应用程序生成的,如常见得ASP,JSP ...
- codechef Polo the Penguin and the Tree
一般xor 的题目都是用trie解决. 那这道题是在树上的trie; 首先:从root==1,遍历树得到1到所有节点的xor 值. 然后对于每个点我们把其插入二进制树中. 对于每一个点查找其二进值异或 ...
- 搭建Spring+mybatis报错
java.lang.ClassCastException: com.sun.proxy.$Proxy12 cannot be cast to com.bdqn.service.impl.UserSer ...
- MySQL注释(转)
MySQL支持3种注释风格: 1.从‘#’字符从行尾. 2.从‘-- ’序列到行尾.请注意‘-- ’(双破折号)注释风格要求第2个破折号后面至少跟一个空格符(例如空格.tab.换行符等等). 3.从/ ...
- Spring中使用Log4j记录日志
以下内容引用自http://wiki.jikexueyuan.com/project/spring/logging-with-log4j.html: 例子: pom.xml: <project ...
- linuxc线程信号-pthread_cond_wait理解
pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t*mutex)函数 传入的參数mutex用于保护条件,由于我们在调用pthread_con ...
- httpclient发送get请求
/** * 获取httpclient的请求url地址 */ public static String getUrl(){ String url = "http://"+map.ge ...
- LoadRunner系列之—-03 用Java Vuser协议编写接口测试脚本
待测试接口用java语言实现,且项目中调用该接口需要用专门的jar包.这种情况可以用Java Vuser协议实现接口调用脚本,类似java代码. 代码样例如下: /* * LoadRunner Jav ...