VSTS - 防止推送到 master,但允许 PR 合并

问题描述 投票:0回答:3

我们在 VSTS 中设置了分支策略,以防止拉取请求合并到主控中,除非构建过程和工作项已链接。但是,我不知道如何阻止开发人员直接推送到 master。将“贡献”权限设置为拒绝不允许合并拉取请求。

应允许所有开发人员将 PR 合并到 master,但不允许任何人直接推送到 master。这可能吗?

git tfs azure-devops
3个回答
75
投票

分支机构政策已经完全按照您所说的进行。当分支机构政策到位时,需要 PR。

确保您的开发者没有“豁免政策执行”权限。


31
投票

当您将主分支策略设置为

Require a minimum number of reviewers
时,主分支将自动受到保护。您将无法推送任何提交。为了进行任何更改,您将需要创建一个新分支,并创建一个拉取请求来合并修改。


16
投票

我知道这个问题有点老了,但这里有一些附加信息......
不幸的是,我无法向“最佳答案”添加评论,因此这是一个新的评论,您可以将其视为评论:

分支机构政策已经完全按照您所说的进行。当分支机构政策到位时,需要 PR。

100%同意

确保您的开发者没有“豁免政策执行”权限。

100%同意

免除政策执行

我们应该去哪里查看开发者是否拥有“免于政策执行”的权限?

来自 learn.microsoft.com

有多种权限允许用户绕过分支策略。在 TFS 2015 到 TFS 2018 Update 2 中,免除策略执行权限允许具有此权限的用户执行以下操作:

  • 完成拉取请求时,选择覆盖策略并完成拉取请求,即使当前的分支策略集不满足。
  • 直接推送到分支,即使该分支设置了分支策略。请注意,当具有此权限的用户进行将覆盖分支策略的推送时,推送会自动绕过分支策略,而不会选择加入步骤或发出警告。

在 Azure DevOps Services 中,删除了免除策略执行权限,其功能分为以下两个新权限:

  • 完成拉取请求时绕过策略
  • 推送时绕过策略

之前启用了免除策略执行的用户现在启用了这两个新权限。

您可以在以下位置找到这些选项:
组织/项目/设置/存储库

本地 Git

大概用户可以对自己的本地版本的 master 分支执行任何操作,但是 Azure DevOps 会拒绝推送到远程吗?如果/当发生这种情况时,开发人员需要做什么来消除他们在本地存储库中陷入的混乱?

出现这种情况是因为 Azure DevOps 中的分支策略不让我们称之为“vanilla-git”。它是 Microsoft 特定的扩展,与用户的本地 git 分支无关。因此,用户可以对其本地 git 存储库执行任何他想要的操作 - DevOps 只是阻止一些“服务器端”的东西。

关于开发人员如何消除混乱的问题: 我推荐这个问题

© www.soinside.com 2019 - 2024. All rights reserved.