You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Terraform中为Azure DevOps指定仓库(TFA、TFB)覆盖禁用继承的分支策略

在Terraform中为Azure DevOps指定仓库(TFA、TFB)覆盖禁用继承的分支策略

我来帮你搞定这个问题!你需要用到Terraform的azuredevops_branch_policy资源,通过它可以针对指定仓库的特定分支创建自定义分支策略,直接覆盖掉继承的默认策略,并且禁用那些阻碍自动提交的规则。

核心思路

默认分支策略是全局继承的,要覆盖它,关键是在创建新的分支策略时设置inherit_settings = false,这样就能让这个策略不继承默认配置,完全按照你定义的规则生效。同时要把策略的作用范围精确限定在TFA和TFB这两个仓库的主分支上。

具体实现步骤&代码示例

首先,你需要先获取Azure DevOps项目ID以及TFA、TFB两个仓库的ID。可以手动从Azure DevOps页面获取,也可以用Terraform的数据源自动拉取,后者更适合自动化场景:

# 获取Azure DevOps项目信息
data "azuredevops_project" "example" {
  name = "你的项目名称"
}

# 获取TFA仓库ID
data "azuredevops_git_repository" "tfa" {
  project_id = data.azuredevops_project.example.id
  name       = "TFA"
}

# 获取TFB仓库ID
data "azuredevops_git_repository" "tfb" {
  project_id = data.azuredevops_project.example.id
  name       = "TFB"
}

接下来,针对每个需要覆盖的策略类型,创建azuredevops_branch_policy资源。比如如果默认策略要求必须通过PR才能合并到主分支,你可以创建一个对应的策略禁用这个规则:

# 遍历两个仓库,创建禁用PR要求的分支策略
resource "azuredevops_branch_policy" "disable_pr_requirement" {
  for_each = toset([data.azuredevops_git_repository.tfa.id, data.azuredevops_git_repository.tfb.id])
  
  project_id = data.azuredevops_project.example.id
  type       = "required_reviewers" # 对应"需要评审者"的策略类型
  branch     = "refs/heads/main"    # 目标分支为主分支
  
  inherit_settings = false # 关键:禁用继承默认策略
  
  # 配置策略参数,这里设置为不需要评审(即禁用原继承的PR要求)
  settings = jsonencode({
    isEnabled = false
    isBlocking = false
    requiredReviewerIds = []
    scope = [
      {
        repositoryId = each.value
        refName = "refs/heads/main"
        matchKind = "Exact"
      }
    ]
  })
}

如果还有其他需要覆盖的策略(比如构建验证、工作项关联要求),只需要复制上面的资源块,修改type字段和对应的settings即可:

  • 构建验证对应的type是build_validation
  • 工作项关联要求对应的type是require_work_item_link

注意事项

  • 你需要确认每个要覆盖的策略对应的type值,常见的策略类型对应值可以参考上面列出的几个
  • settings字段需要用jsonencode来序列化配置,里面的参数要和对应策略类型的配置结构匹配,核心是把isEnabled设为false来禁用该规则
  • 应用配置前,可以先用terraform plan预览变更,确认策略只会作用在TFA和TFB两个仓库上,不会影响其他仓库

这样配置后,Terraform会为TFA和TFB的主分支创建自定义分支策略,完全覆盖继承的默认规则,你就能自动提交到主分支了。

备注:内容来源于stack exchange,提问作者Lakshay Kashyap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 08:59:51