4

我们有很多项目(很多存储库),我们正在使用 gerrit 进行代码审查。并非所有开发人员都可以访问所有项目,并且他们可能在不同的项目中具有不同的角色(开发人员、审批人等)。目前,每个项目都有一组组和自己的访问策略,这些策略在结构上与所有其他项目相同,并且变得难以管理。

一个例子:

项目:项目_A、项目_B

组:Project_A_Developer、Project_A_Approver、Project_B_Developer、Project_B_Approver

在 Project_A 的访问页面中,我设置 Project_A_Developer 可以推送到 /refs/for/refs/* 并且 Project_A_Approver 可以进行代码审查。

在 Project_B 的访问页面中,我设置 Project_B_Developer 可以推送到 /refs/for/refs/* 并且 Project_B_Approver 可以进行代码审查。

现在,每当我们调整流程时,我们都必须遍历所有项目的访问页面并进行相同的更改,这既繁琐又容易出错。

我们可以让所有项目从 All-projects 继承访问权限,但是我们必须让一个人成为 Developer 组的成员,他将成为所有项目的开发人员,这是我们不想要的。

我也尝试过与包括彼此在内的团体一起玩,但无法达到预期的结果。

问题:我们如何设置项目和组,以便从单个项目继承一般访问策略,但一个人可以对不同项目具有不同(或没有)访问权限?

4

1 回答 1

1

创建项目的层次结构。

All-Projects
   All-Group-1-Projects
       Project-A
   All-Group-2-Projects
       Project-B
       Project-C

当您现在更改 All-Group-2-Projects 的权限时,Project-B 和 C 将被更改。您所要做的就是使用正确的父项目创建新项目。然后您应该在父项目中进行所有权限更改,并且项目本身基本没有更改。

于 2015-02-10T13:45:52.560 回答