如何配置TFS Git权限,以便用户可以推送到除master之外的所有分支?

时间:2015-07-15 19:37:18

标签: git tfs tfs-security

以下是我的要求:

  • 我有三个TFS组:Company1,Team1和Admins。管理员是Team1的子集。 Team1是Company1的子集。
  • 我的Git存储库包含一个主分支,以及0个或更多其他分支。
  • 管理员可以做任何事情。 Team1可以将代码拉到所有分支;但他们无法推动掌握。 Company1可以从所有分支机构中提取代码,但它们根本无法推送。

这是我尝试过的。

方法1

  • 在回购级别:
    • 除了Read之外,Company1拥有未设置的所有权限,即允许。
    • Team1具有未设置的所有权限,除了"分支创建"和"阅读"。
    • 管理员拥有所有权限。
  • 在分支级别,对于主人:
    • Team1拥有未设置的所有权限
    • 管理员拥有所有权限继承ALLOW
  • 在分支级别,对于非主分支:
    • Team1拥有所有权限
    • 管理员拥有所有权限继承ALLOW

问题:虽然这对于存在的分支非常有效,但如果Team1的成员创建了一个允许它们执行的新分支,则它们无法将代码推送到它。我必须手动将Team1权限设置为ALLOW才能使用它。

APPROACH 2

注意:Admins和Company1权限与之前的方法相同。

  • 在回购级别:
    • Team1已为所有内容设置了ALLOW
  • 在分支级别,对于主人:
    • Team1已为所有内容设置了DENY
  • 在分支级别,对于非主分支:
    • Team1继承了为所有内容设置的ALLOW

问题:这种方法解决了上述问题,但是因为Admins是Team1的子集,所以Admins也是DENIED访问master(DENY胜过ALLOW)。因此,每次我需要将代码推送到主控时,我必须暂时更改权限以允许自己这样做,然后在完成时将其更改回来。

问题:有没有办法配置解决这两个问题的权限,即我不需要手动干预?

我知道一个解决方案:创建两个新组,让我们称之为Regular和Master。这些组包含Team1的单独成员(两者中都没有团队成员)。这解决了与方法2相关的问题,其中管理员也存在于Team1组中。这里的问题是我有2个组要管理,而不是由我为IT管理的1个组。所以偶尔会有一些手工工作。

这是最好的解决方案吗?

注意:我对这一切都不熟悉,将此任务放在我的膝盖上,所以请原谅任何术语错误。

0 个答案:

没有答案