Azure DevOps Server 2020:多Repo下increment/*分支PR验证策略配置问询
针对Azure DevOps Server 2020 Update 1.2的多仓库通配符分支策略解决方案
当前版本可行方案
- 项目级策略+仓库筛选(限同流水线场景):在项目设置的分支策略中创建
increment/*通配符规则,通过规则的「仓库」选项选择需要应用的多个仓库。但此方式仅能绑定同一验证流水线,若各仓库有独立流水线则不适用。 - REST API批量创建仓库级策略:由于项目级策略无法为不同仓库关联独立流水线,可编写PowerShell脚本调用Azure DevOps Server的REST API批量操作:
- 获取项目下所有目标仓库的ID;
- 遍历每个仓库,调用
POST _apis/policy/configurations?api-version=6.0接口,配置increment/*分支通配符、对应仓库的验证流水线ID等参数,实现批量生成仓库级通配符策略。
- 流水线条件过滤+分支策略绑定:放弃项目级策略,改为给每个仓库的
increment/*分支添加「构建验证」策略并关联对应流水线,同时在流水线YAML中添加触发条件过滤:
这样只有目标分支的PR会触发对应仓库的验证流水线。jobs: - job: PR_Validation condition: startsWith(variables['System.PullRequest.TargetBranch'], 'refs/heads/increment/') steps: # 验证步骤
版本升级后的优化
Azure DevOps Server 2022及后续版本解决了此痛点:
- 项目级通配符分支策略支持为不同仓库关联各自的流水线;
- YAML PR触发器正式支持Azure Repos仓库,可直接在YAML中定义:
pr: branches: include: - increment/*
关于YAML PR触发器支持的说明
早期本地部署版本中YAML PR触发器仅支持GitHub仓库,是因为产品迭代优先级规划问题——本地版本的功能更新节奏慢于云服务版本,后续版本已补全Azure Repos的支持。
内容的提问来源于stack exchange,提问作者austinavmfb
相关产品推荐
相关产品推荐

