modules/azure_devops/groups.tf (24 lines of code) (raw):
resource "azuredevops_group" "alz_approvers" {
scope = local.project_id
display_name = var.group_name
description = "Approvers for the Landing Zone Terraform Apply"
}
data "azuredevops_users" "alz" {
for_each = { for approver in var.approvers : approver => approver }
principal_name = each.key
lifecycle {
postcondition {
condition = length(self.users) > 0
error_message = "No user account found for ${each.value}, check you have entered a valid user principal name..."
}
}
}
locals {
approvers = toset(flatten([for approver in data.azuredevops_users.alz :
[for user in approver.users : user.descriptor]
]))
}
resource "azuredevops_group_membership" "alz_approvers" {
group = azuredevops_group.alz_approvers.descriptor
members = local.approvers
}