我们有许多项目(许多代码库),并且我们正在使用gerrit进行代码审查。并非所有开发人员都可以访问所有项目,他们在不同的项目上可能有不同的角色(开发人员、批准人等)。现在,每个项目都有一组组和自己的访问策略,这些策略在结构上与所有其他项目相同,管理起来变得困难。
例如:
项目:Project_A,Project_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继承访问权限,但是那样我们就必须将一个人设为开发人员组的成员,他将成为所有项目的开发人员,这不是我们想要的。
我还尝试过彼此包含的组,但无法实现所需的结果。
问题是:我们如何设置项目和组,以便一般访问策略从单个项目继承,但一个人可以在不同的项目上拥有不同(或无)访问权限?
例如:
项目:Project_A,Project_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继承访问权限,但是那样我们就必须将一个人设为开发人员组的成员,他将成为所有项目的开发人员,这不是我们想要的。
我还尝试过彼此包含的组,但无法实现所需的结果。
问题是:我们如何设置项目和组,以便一般访问策略从单个项目继承,但一个人可以在不同的项目上拥有不同(或无)访问权限?
All-Projects
中的_BLOCK_访问定义。我之前不知道,在一个项目中阻止的内容不能在继承的项目中取消阻止。 - sebkraemer