保护 Visual Studio Team Services 中的 git 分支

Protecting a git branch in Visual Studio Team Services

我只想明确允许开发人员合并到 'master' 分支。我找到了安全设置的位置,但似乎没有什么可以让我说 'that branch, only allow Rob to merge into it'。请问有什么具体的指导吗?

您可以很容易地保护 VSTS 中的 MASTER,因为 TFS 提供企业 Git 功能。有两种方法可以实现。

1) Git 分支权限

在版本控制选项卡下的管理页面中,您可以更改每个已发布分支的权限。您需要在回购级别保持访问权限,但是在 MASTER 上,您可以将“贡献者”提交权限更改为“未配置”。然后您可以只添加 Rob...

哦...始终使用“未设置”而不是“拒绝”,因为拒绝总是覆盖。

2) Git 分支机构政策

VSTS 引入了分支策略的概念。这些分支策略可以应用于任何分支,但传统上应用于 MASTER。

在这里你可以应用多个策略来反映你的需要...我总是设置

我发现我必须完成更多步骤才能完成此操作

在线 visual studio 中有 2 个地方可以定义组 - 在 collection 级别和项目级别。

在 collection 级别,我创建了一个管理员组和一个开发人员组。我只希望管理员组中的人对我的存储库中的 master 分支具有写入权限。

在项目级别,我将 developers 和 admins 组添加到项目团队。 在项目贡献者组我去掉了项目组只加了开发者组

在项目管理员组中我添加了collection级管理员组。

然后在 master 分支的版本控制选项卡上,我为贡献者组设置了 contribute=deny

由于管理员不是贡献者组的成员,拒绝权限不适用于他们,他们仍然可以将更改推送到 master - 直接或通过批准拉取请求

我通常会创建一个像"Devs"这样的特殊VSO组,然后将开发人员放入其中。然后,我将该组用作项目贡献者的成员组,然后专门在我要保护的分支上,我使用 "Devs" 组并将 Contribute 设置为拒绝,因此只有 "Devs" 组的成员拒绝了贡献,但是例如项目管理员仍然可以推送它。

如果您直接在 Contributors 组上将 Contribute 设置为 Deny,那么没有人可以在分支中推送,即使是 Administrators 也不能,即使您在他们的 Contribute 上专门设置 Allow 也不能,只是因为 Deny 比 Allow 强 - 除非你这样做对原始组进行了一些更大的更改。

我基于@anthonybrown 成功创建了 (2) 种类型的群组。但是,我想提供一些屏幕截图,以进一步帮助解释解决限制用户删除、推送和贡献 master 分支(或您选择的其他分支)的能力的解释 基于存储库级别,而不是全局级别。

请注意,根据我们的 VSTS,我们已经将用户添加到 "global" 团队。我没有删除这些用户,而是将他们添加到 (2) 个单独的组。

  • 开发人员
  • 管理员

1) 转到您的基本 VSTS 屏幕(这将默认为 URL 中的 /_projects

2) 点击齿轮然后 select "Security"

3) 在最左边,select "Create Group",命名为"Developers"。创建组后,select 组,在中间部分,select "Members"。将您不想 想要对 "master" 分支有贡献的所有用户添加到该组。 (注意 - 在此步骤之前,您的用户必须已经添加到 VSTS)。

4) 创建 "Administrators" 组并添加您 想要 具有访问权限的用户。 (注意 - 如果您在 "Administrators" 组中的用户已经在全局或项目级别添加到 VSTS,您可以跳过此步骤。无论如何我都这样做了)。

5) 返回 VSTS 主页 (/_projects) 和 select 您要限制对 master 分支的访问的存储库。 Select "Version Control"。在左侧,select "master" 分支。在中间部分,select "Security"。添加“Developers 组。Select "Developers" 组(添加后)并设置对 "Deny" 的访问:

  • 投稿(这会推
  • 编辑政策
  • 强制推送
  • 管理权限