Azure Repos Git配置的Approval & Checks运行时被忽略问题咨询
规则触发逻辑说明
- Azure DevOps中针对repository类型资源配置的Checks,仅在该仓库被作为外部依赖资源,显式声明在Pipeline的
resources.repositories节点下引用时才会触发。你当前的测试Pipeline使用默认的self仓库隐式签出逻辑,不属于外部资源引用场景,因此仓库上配置的Checks、Approval规则都不会生效,这是平台的既定设计,并非你遗漏了配置项。 - 你在Agent Pool上配置的同款Checks可以正常生效,是因为Agent Pool级别的Checks作用于所有使用该代理池的Pipeline,不受资源引用方式限制,刚好匹配你的管控需求。
实现全量Pipeline强制扩展指定模板的方案
- 方案一:沿用Agent Pool级别的Checks配置,将所有业务Pipeline用到的代理池都配置对应模板检查规则,即可实现全量Pipeline的合规校验,该方案配置成本最低,是官方推荐的跨仓库统一管控方案。
- 方案二:如果需要针对单个仓库做独立管控,可使用分支策略+构建校验的实现方式:在目标仓库需要管控的分支(如main、features/*等)的分支策略中,添加专门的模板合规校验Pipeline作为PR准入条件,所有提交到管控分支的Pipeline代码都会先被扫描校验是否正确扩展了指定模板,不符合要求的PR无法合并入分支。
内容的提问来源于stack exchange,提问作者Henning
相关产品推荐
相关产品推荐

