git VSTS -阻止推送到主设备,但允许PR合并

lyfkaqu1  于 5个月前  发布在  Git
关注(0)|答案(3)|浏览(80)

我们在VSTS中设置了分支策略,以防止pull请求被合并到master中,除非构建通过并且工作项被链接。但是,我不知道如何防止开发人员直接推送到master。将“贡献”权限设置为拒绝不允许合并pull请求。
应该允许所有开发者将PR合并到master中,但不允许任何开发者直接推送到master中。这可能吗?

1l5u6lss

1l5u6lss1#

Branch policies已经完全按照你说的做了。当分支策略到位时,PR是必需的。
确保您的开发人员没有“免除策略执行”权限。

sbdsn5lh

sbdsn5lh2#

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

bwntbbo3

bwntbbo33#

我知道这个问题有点老,但这里有一些额外的信息...
不幸的是,我不能添加评论到“最佳答案”,所以这里是一个新的,你可以把它当作一个评论:
分支策略已经完全按照您的要求执行了。当分支策略到位时,需要PR。

  • 100%同意 *

确保您的开发人员没有“免除策略执行”权限。

  • 100%同意 *

不执行策略

我们应该在哪里查看开发人员是否具有“免除策略执行”权限?
来自learn.microsoft.com:
有几种权限允许用户绕过分支策略。在TFS 2015至TFS 2018 Update 2中,免除策略实施权限允许具有此权限的用户执行以下操作:

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

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

*完成拉取请求时绕过策略
*推流时绕过策略

以前启用了豁免策略实施的用户现在启用了两个新权限。
您可以在下面找到这些选项:

  • 组织 * / * 项目 * /设置/存储库**

本地Git

假设用户可以对自己的主分支的本地版本做任何事情,但是Azure DevOps会拒绝向远程推送?如果/当这种情况发生时,开发人员需要做什么来撤销他们在本地存储库上陷入的混乱?
这是因为Azure DevOps中的分支策略不是让我们称之为“vanilla-git”。它是Microsoft特定的扩展,与用户的本地git分支无关。因此,用户可以对他的本地git仓库做任何他想做的事情- DevOps只是阻止一些“服务器端”的东西。
关于开发人员如何消除混乱的问题:我推荐this SO question

相关问题