diff --git a/terraform/main.tf b/terraform/main.tf index 8e24bec..0657c6c 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -1,6 +1,9 @@ locals { config = yamldecode(file(var.config)) + allowed_top_level_keys = ["repositories"] + allowed_repository_keys = ["name", "description", "homepage_url", "topics", "is_template", "template"] + repository_defaults = { description = null homepage_url = null @@ -39,4 +42,15 @@ resource "github_repository" "this" { include_all_branches = try(template.value.include_all_branches, false) } } + + lifecycle { + precondition { + condition = length(setsubtract(keys(local.config), local.allowed_top_level_keys)) == 0 + error_message = "Unknown top-level key(s) in ${var.config}: ${join(", ", setsubtract(keys(local.config), local.allowed_top_level_keys))}" + } + precondition { + condition = length(setsubtract(keys(each.value), local.allowed_repository_keys)) == 0 + error_message = "Unknown key(s) for repository ${each.key}: ${join(", ", setsubtract(keys(each.value), local.allowed_repository_keys))}" + } + } }