zoukankan      html  css  js  c++  java
  • ubuntu下gerrit 安装部署

    1.Gerrit简介

      Gerrit 是一种开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,
    可以相互审阅彼此修改后的代码,决定是否能够提交,退回或是继续修改。它使用版本控制系统,Git 作为
    底层。
      通过Git 推送的代码由gerrit 接管。如果提交者不具有直接提交权限,任何代码的修改必须经过Gerrit
    的审查,审查通过后才可以合并的主分支。这种审查机制可由管理者自由拟定,Gluster 采用自动化审查加
    人工审查的方式。其中Jenkins 负责对代码的自动化审查,包括编译错误和脚本测试等。只有通过Jenkins
    的测试才能进入后续的人工审查。

    2.安装

      2.1 下载地址 http://gerrit-releases.storage.googleapis.com/index.html

      2.2 安装命令 

    java -jar gerrit-2.8.war init -d review-site

    3.配置

      Database?server?type [H2/?]:mysql
        
        Authentication method [OPENID/?]: http
        
        ***HTTP Daemon***
        Behind reverse proxy  [y/N]? y
        Proxy uses SSL (https://)  [y/N]?
        Subdirectory on proxy server  [/]: /gerrit
        Listen on address  [*]:
        Listen on port [8081]: 
        Canonical URL [http://localhost/gerrit]:

    4.启动

    Executing .../gerrit.sh?start
    

    5.新建passwd文件

    mkdir /etc/nginx/passwd
    htpasswd -c /home/yu/gerrit/passwd/test.passwd test

    6.nginx配置

    location /gerrit/ {
            proxy_pass http://127.0.0.1:8081;
            proxy_set_header  X-Forwarded-For $remote_addr;
            proxy_set_header  Host $host;
            auth_basic        "Gerrit Code Review";
            auth_basic_user_file /home/yu/gerrit/passwd/test.passwd;
        }

    7.项目搭建

        配置 publicKey
        创建项目
        项目版本控制(GIT)
            ①客户机必须先push到远程仓库的refs/for/*分支上,等待审核
            ②为了能让每次commit能自己insert 这个change-id,需要从gerrit server上下载一个脚本
                scp -P 29418 -p root@192.168.1.31:/hooks/commit-msg .git/hooks/
            ③提交 git push origin HEAD:refs/for/master

    8.项目管理

      用户登录http://localhost/gerrit。Projects->List 会看到一个All-Projects 的项目,
    该项目为默认项目,设置了基本的评审权限。该默认项的作用是给其它项目提供继承权限,其它项目继承
    All-Projects 的默认设置,避免繁琐的权限管理配置。

      图中将会创建一个名为hello 的项目。其中Rights Inherit From 指定了项目的继承源,选择
    All-Projects。点击Create Project 完成了对hello 项目的创建,该项目继承All-Project 的权限

     

    9.用户组

      Pepole->List Groups 查看用户组,在Gerrit2.8版本中,默认拥有5个用户组

     

    解读如下:

    • Administrators   Gerrit管理员,该用户组默认拥有admin用户,也就是第一个注册用户
    • Anonymous User  任何用户未,登录或未登录
    • Non-Interactive Users  Gerrit中执行批处理的用户
    • Project Owners 项目拥有者
    • Registerd Users 注册用户

    以上是默认情况,点击用户组可以给用户组添加指定用户,使指定用户成为该用户组的一员

    10.权限分配

      Projects->List->All-projects->Acess 查看默认项目的权限分配。

     

    解读如下:

    • Global Capbilities  可以看到Stream Events默认对Non-Interactive Users用户组开放,Stream Events是

    Gerrit的事件流,一旦有代码改动会被触发。

    • Reference refs/*  对于所有分支 所有用户都拥有读权限,也就是说任何用户可以clone任何代码
    • Reference refs/for/refs*  对于for分支,注册用户拥有推送、合并、提交权限。
    • Reference refs/head/*  对于head分支中

    Push :管理员和项目拥有者具有推送权限,普通用户是无法直接向head分支推送的  

    Submit:管理员和项目拥有者具有提交权限

    Label Verified: 这一权限是后来加进去的,为管理员和Non-Interactive Users用户指定代码检查权限。

    其中为Non-Interactive Users用户组增加了jenkins用户,使jenkins具有了Verified权限。

    其评分范围是-1到1。

    Lable Code-Review: 管理员和项目拥有者具以及注册用户都有代码Review权限,其中管理者和项目拥  有者评分范围是-2到2,注册用户评分范围是-1到1。Geriit中代码评分为2才能被  commit。这样做的意义在于:注册用户可以参与代码评审,对其他评审这提供参考  帮助,但是注册用户不能直接打2分。

    可以看出普通用户和注册用户不能直接向head分支推送代码,只能向for分支推送。因为head分支是GIt仓库分支,for分支是gerrit引入的审查分支。代码在被推送到head分支之前必须经过审查。这里给管理员赋予了head分支的推送权限,管理员可以直接向head推送而无需审查。

     

  • 相关阅读:
    django 项目需要注意的一些点
    VUE之路
    Oracle 表格碎片的查看方法
    RHEL 6.x or 7.x 使用分区绑定ASM 磁盘的方法
    RMAN 修复主库 nologging 操作导致物理备库的坏块
    Oracle 数据库19c 回退降级到 11.2.0.4 方案
    如何评估oracle 数据库rman全备和增量备份大小
    在将Oracle GI和DB升级到19c或降级到以前的版本之前需要应用的补丁 (Doc ID 2668071.1)
    Oracle 数据库坏块处理
    opatch auto 安装11.2.0.4.20190115 PSU遇到 OUI-67133: Execution of PRE script failed,with returen value 1 报错
  • 原文地址:https://www.cnblogs.com/jeesezhang/p/5034099.html
Copyright © 2011-2022 走看看