我们在 Azure Devops 的一个项目中有几个存储库(比如说 TFA 和 TFB),它们从不同的“默认”策略继承分支策略。
我们计划通过 Terraform 覆盖并禁用这些分支策略,因为我们无法自动提交到其主分支。我们希望范围仅限于这两个存储库(TFA 和 TFB)。
无法找到在我的 TF 配置中使用的正确资源。
谢谢
根据您的描述,您似乎已经为项目中的所有存储库启用了分支策略来保护所有默认分支,因此您无法将提交直接推送到默认分支(
main
分支)。
请注意,这些策略是在项目设置 -> 存储库 -> 策略中设置的,并将对该项目中所有存储库的每个默认分支生效,我们无法为某些存储库设置豁免来绕过这些策略。
但是,我们可以将用户/组
Bypass policies when pushing
免除到某些存储库的默认分支,这样用户/用户组就不会受到分支策略的限制。
您可以使用此资源来更新分支级别权限。这是一个供您参考的示例,是我这边的作品。
data "azuredevops_project" "example" {
name = "ProjectA"
}
data "azuredevops_git_repository" "example" {
project_id = data.azuredevops_project.example.id
name = "TFA"
}
data "azuredevops_group" "example-group" {
project_id = data.azuredevops_project.example.id
name = "Contributors"
}
resource "azuredevops_git_permissions" "example-permissions" {
project_id = data.azuredevops_project.example.id
repository_id = data.azuredevops_git_repository.example.id
branch_name = "refs/heads/main"
principal = data.azuredevops_group.example-group.id
permissions = {
PolicyExempt = "Allow"
}
}