modules/github/locals.tf (34 lines of code) (raw):

locals { apply_key = "apply" } locals { free_plan = "free" enterprise_plan = "enterprise" } locals { use_runner_group = var.use_runner_group && data.github_organization.alz.plan == local.enterprise_plan && var.use_self_hosted_runners } locals { primary_approver = length(var.approvers) > 0 ? var.approvers[0] : "" default_commit_email = coalesce(local.primary_approver, "demo@microsoft.com") } locals { repository_name_templates = var.use_template_repository ? var.repository_name_templates : var.repository_name template_claim_structure = "${var.organization_name}/${local.repository_name_templates}/%s@refs/heads/main" oidc_subjects_flattened = flatten([for key, value in var.workflows : [ for environment_user_assigned_managed_identity_mapping in value.environment_user_assigned_managed_identity_mappings : { subject_key = "${key}-${environment_user_assigned_managed_identity_mapping.user_assigned_managed_identity_key}" user_assigned_managed_identity_key = environment_user_assigned_managed_identity_mapping.user_assigned_managed_identity_key subject = "repo:${var.organization_name}/${var.repository_name}:environment:${var.environments[environment_user_assigned_managed_identity_mapping.environment_key]}:job_workflow_ref:${format(local.template_claim_structure, value.workflow_file_name)}" } ] ]) oidc_subjects = { for oidc_subject in local.oidc_subjects_flattened : oidc_subject.subject_key => { user_assigned_managed_identity_key = oidc_subject.user_assigned_managed_identity_key subject = oidc_subject.subject } } } locals { runner_group_name = local.use_runner_group ? github_actions_runner_group.alz[0].name : var.default_runner_group_name }