microsoft / terraform-provider-azuredevops

Terraform Azure DevOps provider
https://www.terraform.io/docs/providers/azuredevops/
MIT License
372 stars 260 forks source link

Add support for branch locking (azuredevops_git_repository_branch_lock) #1034

Open bgmonroe opened 2 months ago

bgmonroe commented 2 months ago

Community Note

Description

ADO repo branches can be locked via the web UI. It looks like there is API support for this too: https://learn.microsoft.com/en-us/rest/api/azure/devops/git/refs/update-ref?view=azure-devops-rest-7.2

New or Affected Resource(s)

Potential Terraform Configuration

terraform {
  required_providers {
    azuredevops = {
      source = "microsoft/azuredevops"
    }
  }
}

provider "azuredevops" {
  org_service_url = "https://dev.azure.com/example"
}

data "azuredevops_project" "ado_project" {
  name = "example"
}

resource "azuredevops_git_repository" "example" {
  project_id = azuredevops_project.example.id
  name       = "Example Git Repository"
  initialization {
    init_type = "Clean"
  }
}

resource "azuredevops_git_repository_branch" "example" {
  repository_id = azuredevops_git_repository.example.id
  name          = "example-branch-name"
  ref_branch    = azuredevops_git_repository.example.default_branch
}

resource "azuredevops_git_repository_branch_lock" "example" {
  project_id = azuredevops_project.example.id
  branch_id = azuredevops_git_repository_branch.example.id
  isLocked = true
}

References