如何在 Gerrit Code Review 中删除组?

How to remove Group in Gerrit Code Review?

是否可以在 Gerrit Code Review 中删除组?可能是某些插件或此操作应该以 SQL 类似的方式执行 'manually'(例如 gerrit gsql)?

遗憾的是,无法使用 command line tools or the REST API.

删除 Gerrit 组

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

它基本上做了以下事情:

1)检查Gerrit中是否存在该组:

if ssh -p 29418 USER@GERRIT-SERVER gerrit ls-groups -q GROUP > /dev/null
then
    # GROUP EXIST
else
    # GROUP DOESN'T EXIST
fi

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

ssh -p 29418 USER@GERRIT-SERVER 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) 在Gerrit数据库中搜索group id

SELECT group_id FROM account_group_names WHERE name = 'GROUP';

4) 从 Gerrit 数据库中删除组

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;

更新

此过程不再适用于 Gerrit v3。0.x 和更高版本。