Gerrit权限设置

一、新建项目

二、增加新用户

三、git clone新建项目

四、项目权限控制

 

一、新建项目

  在gerrit服务器搭建的时候,创立的第一个用户(admin),是管理员账户。只有这个账户,才有权限创建项目,其它后增加的账户,是没有创建项目的权限的。后续的权限控制,都是管理员账户在操作!

  1. 增加admin邮箱,后面所有账户的gerrit邮件消息,都由这个邮箱发送(admin登陆):
    1. 在浏览器输入gerrit服务器地址,并用admin账户登陆; 
    1. 点击admin旁边的倒三角;
    2. 选择"Settings"; 
    1. 在"Settings"中选择"Contact Information";
    2. 点击"Register New Email...";

     

    1. 在弹框"Register Email Address"中输入QQ邮箱;
    2. 点击"Register"; 
    1. 登陆QQ邮箱;
    2. 收到的邮件,就是gerrit发送第一封验证邮件。

     到了这一步,就说明gerrit完全成功了,如果邮箱或者其它有问题,请参考上一篇文章。 

  2. 新建项目(admin登陆):
      1. 选择"Projects";
      2. 选择"Create New Project"; 
      3. "Project Name",填一个唯一的项目名称;
      4. "Rights Inherit From",这个不需要手动填写;
      5. 点击"Browse";
      6. 在弹出的对话框上面,选择"All-Projects";
      7. "Close";
      8. 点击"Create Project"。

     

     在虚拟机gerrit账户下,可以查看新建的项目,到了这一步,项目创建就完成了。

  3. 删除项目:
    sudo rm -rf test_1.git/

    这步操作之后,需要重启服务器,否则,gerrit会出错! 

二、增加新用户

  1. 服务器增加新用户(这一步由管理员完成):
    cd /home/gerrit/review_site
    sudo htpasswd -b etc/gerrit.passwd <用户名> <密码>
    e.g.
    sudo htpasswd -b etc/gerrit.passwd l 1

     新增加的用户以及密码。

  2. 增加邮箱(这一步由用户自己完成):

     用刚才注册的用户登陆gerrit,自动进入邮箱注册界面。

      

     注册之后,在你的工作邮箱,就会收到管理员邮箱(QQ邮箱),发过来的验证邮件。

  3. 增加公钥(这一步由用户自己完成):
    ssh-keygen -t rsa

    一路回车,不需要做任何动作!

     

    gedit .ssh/id_rsa.pub

     在打开的文档中,Ctrl+a然后Ctrl+c拷贝,注意:不要做任何多余的动作,千万不要更改这个文件!!!!!

    1. 在"Settings"中,选择"SSH Public Keys";
    2. 将复制的pub key,粘贴到空格中。
    3. 点击"Add",这样公钥就被加入到gerrit里面了。 
  4. 到了这里,新用户增加已经完成!

三、git clone新建项目

  1. 获取项目路径:
    1. 用"admin"(管理员账户)登陆;
    2. 选择"Projects" -> "List"。
    3. 点击项目"test_1"后面的"(gitweb)"。  
  2. 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生成的用户下! 

  3. 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"。
  4. 问题:
    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"

     

四、项目权限控制

  1. 创建用户组:

    管理员身份登陆:People -> Create New Group -> 输入Group 名称->Create Group

    Members输入用户名称->Add/回车->保存用户到列表。注:Group默认就有admin账户! 

  2. 项目分配用户组:

     Projects->test_1,为项目test_1增加权限。

    1. 用"admin"(管理员账户)登陆;
    2. 选择"Acess"。
    3. 点击"Edit",然后才可以进行编辑;
    4. "Add Reference"  ,增加项目群组。  
    1. "Reference"必须改成"refs/*",否则,后面的权限控制会有问题;
    2. 在"Add Permmsion"中,选择需要控制的权限。 
    1. 为"test_group",增加"Read"权限;
    2. "Save changes"。 
  3. clone权限:

      目前项目test_1的权限控制:群组test_group可以clone/push项目。

     将test_1项目权限更改为"BLOCK",则无法clone代码,出现如下错误:

  4. push权限:
    1. "Read"权限允许;
    2. "Push"权限"BLOCK"。 

     push代码时候,出现如下错误: 

  5. submmit权限:

     群组"test_group"具有一般代码管理权限了。

上一篇:Gerrit环境搭建

posted @   一条名叫西西的狗  阅读(3532)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示