Dav*_*d H 14 git tfs azure-devops
我们在VSTS中设置了分支策略,以防止拉取请求合并到主服务器,除非构建通过并且工作项链接.但是,我无法弄清楚如何防止开发人员直接推送到掌握.将"Contribute"权限设置为Deny不允许合并拉取请求.
应允许所有开发人员将PR合并为master,但不允许任何人直接推送到master.这可能吗?
小智 34
当您将 master 分支策略设置为 时Require a minimum number of reviewers,master 分支将自动受到保护。您将无法推送任何提交。为了进行任何更改,您将需要创建一个新分支,并创建一个拉取请求来合并修改。
Jon*_*nas 13
我知道这个问题有点旧,但这里有一些额外的信息......
不幸的是,我无法在“最佳答案”中添加评论,所以这是一个新问题,您可以将其视为评论:
分支机构政策已经完全符合您的要求。当分支策略到位时,需要 PR。
100%同意
确保您的开发人员没有“豁免政策执行”权限。
100%同意
我们应该在哪里查看开发人员是否拥有“豁免政策执行”权限?
有多种权限允许用户绕过分支策略。在 TFS 2015 到 TFS 2018 Update 2 中,策略实施豁免权限允许具有此权限的用户执行以下操作:
- 完成拉取请求时,即使不满足当前的分支策略集,也可选择覆盖策略并完成拉取请求。
- 即使该分支设置了分支策略,也可以直接推送到该分支。请注意,当具有此权限的用户进行会覆盖分支策略的推送时,推送会自动绕过分支策略,不会出现选择加入步骤或警告。
在 Azure DevOps Services 中,删除了策略强制豁免权限,其功能分为以下两个新权限:
- 完成拉取请求时绕过策略
- 推送时绕过策略
以前启用了策略实施豁免的用户现在启用了两个新权限。
您可以在以下位置找到这些选项:
组织/项目/设置/存储库
据推测,用户可以对自己本地版本的 master 分支做任何事情,但是 Azure DevOps 会拒绝推送到远程?如果/当发生这种情况时,开发人员需要做些什么来消除他们在本地存储库中陷入的混乱?
之所以如此,是因为 Azure DevOps 中的 Branch 策略不能称为“vanilla-git”。它是 Microsoft 特定的扩展,与您用户的本地 git 分支无关。因此,用户可以对他的本地 git repo 做任何他想做的事情——DevOps 只是阻止了一些“服务器端”的东西。
关于开发人员如何消除混乱的问题:我推荐这个 SO question。