2017-05-09 155 views

回答

3

遗憾的是,没有办法使用command line toolsREST API删除Gerrit群组。

我有一个从Gerrit数据库中删除Gerrit组的脚本。

它基本上执行以下操作:

1)检查是否在格里特存在组:

if ssh -p 29418 [email protected] gerrit ls-groups -q GROUP > /dev/null 
then 
    # GROUP EXIST 
else 
    # GROUP DOESN'T EXIST 
fi 

2)检查组在任何项目中分配访问权限:

ssh -p 29418 [email protected] gerrit ls-projects --type ALL --has-acl-for GROUP > /tmp/ls-projects 

if [[ -s /tmp/ls-projects ]] 
then 
    # GROUP HAS ACCESS RIGHTS ASSIGNED 
else 
    # GROUP DOESN'T HAVE ACCESS RIGHTS ASSIGNED 
fi 

注意:您需要首先从任何项目访问权限中删除该组。

3)搜索在数据库格里特

SELECT group_id FROM account_group_names WHERE name = 'GROUP'; 

4组ID)从格里特数据库中删除组

START TRANSACTION; 
DELETE FROM account_group_id   WHERE s  = 'GROUP-ID'; 
DELETE FROM account_group_by_id   WHERE group_id = 'GROUP-ID'; 
DELETE FROM account_group_by_id_aud  WHERE group_id = 'GROUP-ID'; 
DELETE FROM account_group_members  WHERE group_id = 'GROUP-ID'; 
DELETE FROM account_group_names   WHERE group_id = 'GROUP-ID'; 
DELETE FROM account_groups    WHERE group_id = 'GROUP-ID'; 
DELETE FROM account_group_members_audit WHERE group_id = 'GROUP-ID'; 
COMMIT;