modules/azure_devops/repository_module.tf (69 lines of code) (raw):

resource "azuredevops_git_repository" "alz" { depends_on = [azuredevops_environment.alz] project_id = local.project_id name = var.repository_name default_branch = local.default_branch initialization { init_type = "Clean" } } resource "azuredevops_git_repository_file" "alz" { for_each = var.repository_files repository_id = azuredevops_git_repository.alz.id file = each.key content = each.value.content branch = local.default_branch commit_message = "[skip ci]" overwrite_on_create = true } resource "azuredevops_branch_policy_min_reviewers" "alz" { depends_on = [azuredevops_git_repository_file.alz] project_id = local.project_id enabled = length(var.approvers) > 1 && var.create_branch_policies blocking = true settings { reviewer_count = 1 submitter_can_vote = false last_pusher_cannot_approve = true allow_completion_with_rejects_or_waits = false on_push_reset_approved_votes = true scope { repository_id = azuredevops_git_repository.alz.id repository_ref = azuredevops_git_repository.alz.default_branch match_type = "Exact" } } } resource "azuredevops_branch_policy_merge_types" "alz" { depends_on = [azuredevops_git_repository_file.alz] project_id = local.project_id enabled = var.create_branch_policies blocking = true settings { allow_squash = true allow_rebase_and_fast_forward = false allow_basic_no_fast_forward = false allow_rebase_with_merge = false scope { repository_id = azuredevops_git_repository.alz.id repository_ref = azuredevops_git_repository.alz.default_branch match_type = "Exact" } } } resource "azuredevops_branch_policy_build_validation" "alz" { depends_on = [azuredevops_git_repository_file.alz] project_id = local.project_id enabled = var.create_branch_policies blocking = true settings { display_name = "Terraform Validation" build_definition_id = azuredevops_build_definition.alz["ci"].id valid_duration = 720 scope { repository_id = azuredevops_git_repository.alz.id repository_ref = azuredevops_git_repository.alz.default_branch match_type = "Exact" } } }