Gerrit相关操作

Gerrit主要功能

Gerrit是目前使用的比较多的集成开发的一个工具,主要功能有一下几点

1、进行代码的review,保证代码提交到正式库里面代码是可用的,其中review可以和Jekins一起完成集成编译测试等

2、可以对代码进行相关的权限管理,根据项目的需求分配不同的权限给到相关的开发人员

Gerrit权限处理的相关指令

Gerrit里面可以对相关的git仓库进行权限的配置,默认的配置可以参照网上的Gerrit的配置里面一些说明,这里写的是如何通过相关的命令将当前的权限更改为适合的权限,通过下面的命令可以看到当前Gerrit有哪些重要的指令:ssh -p 29418 192.168.1.104 gerrit --help

通过上面的指令我们可以看到当前我们的Gerrit提供了相关的一些操作说明:

apropos Search in Gerrit documentation

ban-commit Ban a commit from a project's repository

close-connection Close the specified SSH connection

create-account Create a new batch/role account

create-branch Create a new branch

create-group Create a new account group

create-project Create a new project and associated Git repository

flush-caches Flush some/all server caches from memory

gc Run Git garbage collection

gsql Administrative interface to active database

index

logging

ls-groups List groups visible to the caller

ls-members List the members of a given group

ls-projects List projects visible to the caller

ls-user-refs List refs visible to a specific user

plugin

query Query the change database

receive-pack Standard Git server side command for client side git push

rename-group Rename an account group

review Apply reviews to one or more patch sets

set-account Change an account's settings

set-members Modify members of specific group or number of groups

set-project Change a project's settings

set-project-parent Change the project permissions are inherited from

set-reviewers Add or remove reviewers on a change

show-caches Display current cache statistics

show-connections Display active client SSH connections

show-queue Display the background work queues

stream-events Monitor events occurring in real time

test-submit

version Display gerrit version

这里,主要介绍下set-project-paren,这个指令能够帮助我们更改相关的权限,具体的指令如下

ssh -p 29418 192.168.1.104 gerrit set-project-parent --parent $auth_project "$projectname" > /dev/null

其中auth_project是指你已经创建的权限,比如app_auth,projectname,指的是当前的git库。通过这样的指令就可以将当前的库设置为你想要的权限。

这边可能有人会说,我们在Gerrit的图形化界面就可以设置,你这个指令没有什么作用,其实不然,如果你设置单独的一个库是这样的属性的话,从Gerrit上面就可以直接设置了,很简单的操作,但是如果你的库很多,比如Android项目,里面的库很多很多,你在Gerrit上面使用这个的话就比较麻烦了,这时候就可以使用这样的命令来进行批量的修改,下面就介绍下如何批量的修改。

首先,你可以将repo下载下来的default.xml导出来,然后创建一个shell脚本文件,就可以完成批量的操作了。

具体的脚本可以参照下面:

#!/bin/bash

pre_project="NJ-projects/atc_androidm/apps"

auth_project="atc_bsp_auth"

#auth_project="app_auth"

#auth_project="bsp_read_auth"

#auth_project="b20b_app_auth"

#auth_project="b20b_bsp_auth"

[ -f 1.log ] && rm -rf 1.log grep ' 1.log

for line in `cat 1.log`

do

projectname=$pre_project'/'$line

echo $projectname

if [ x$projectname != x$pre_project'/' ]

then

ssh -p 29418 192.168.1.104 gerrit set-project-parent --parent $auth_project "$projectname" > /dev/null

echo 1

fi

done

将上面的脚本运行即可更改当前的库的相关的权限,十分的简单快捷。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容