如何在使用为特定帐户创建 PR 任务进行合并时绕过策略

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

我正在尝试使用管道中的创建 PR 任务将更改从源分支合并到目标分支(主分支)。我想绕过拥有审阅者和链接工作项目的政策。我更改了我的项目收集服务帐户(创建自动 PR)的配置,以将拉取请求贡献为“允许”,在完成拉取请求时绕过策略以“允许”,在推送到“允许”时绕过策略。但是,该策略并没有被绕过,我仍然收到链接工作项目以完成我的 PR 的提示。

所以我使用 create PR 任务,它会在经典管道中自动创建 PR。根据我的项目,生成此 PR 的是项目集合构建服务帐户。所以我为其启用了以下权限。现在,它成功创建了一个 PR,但在合并到 master 时,它仍然会经历 master 分支存在的策略,即使我已将旁路策略设置为 true。 许可

现在,上面提到的构建验证解决方案只能选择检查构建成功状态。我特别想绕过审阅者,仅针对此一个帐户的工作项链接策略。我迁移到存储库 -> 分支 -> master,并在那里为上述帐户提供了权限。

基本上,我不想绕过所有用户帐户,我想绕过我已经做过的“项目集合构建服务”。但是,如果您检查下面的屏幕截图,我仍然会看到合并被拒绝,因为没有链接工作项并且没有提供审阅者。 公关

这是否必须与以下方面有关:

配置的策略始终会针对拉取请求更改进行评估。对于具有绕过策略权限的用户,报告的策略状态仅为建议性的。如果具有绕过权限的用户批准,则失败状态不会阻止拉取请求完成。参考:https://learn.microsoft.com/en-us/azure/devops/repos/git/branch-policies?view=azure-devops&tabs=browser

因为我是用我的用户名登录的,而不是作为项目集合构建服务帐户登录的。

azure azure-devops devops pull-request
1个回答
0
投票

如果用户没有权限在完成拉取请求时绕过策略,保护目标分支的策略将阻止用户完成 PR。

Image

如果某个用户或一组用户的“完成拉取请求时绕过策略”的权限设置为“允许”,他们仍然可以看到分支策略仍未通过;在尝试完成 PR 时,他们还可以看到通过输入原因覆盖这些策略的选项。

您尚未与管道服务帐户分享您打算如何完成 PR。假设您在下面的示例管道中运行 Imageaz repos pr update 命令来绕过分支策略并完成 PR。

variables: prId: 99 steps: - pwsh: az repos pr update ` --id $(prId) ` --bypass-policy true ` --bypass-policy-reason "Force merge" ` --status completed displayName: Bypass branch policies and complete PR env: AZURE_DEVOPS_EXT_PAT: $(System.AccessToken) # Authenticate against the $(System.AccessToken) of the pipeline service account which is granted with the permission to Bypass policies when completing pull requests 它的工作方式也与用户相同。

Image

请注意将此权限分配给Image相应

两者

管道服务帐户到您的组织和项目设置中的作业授权范围。在上面的示例中,我的设置将非发布管道的作业授权范围限制为当前项目已切换为OFF,因此,我运行了YAML管道,该管道根据项目集合构建服务的令牌进行了身份验证( MyOrgName) 被授予所需权限。

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