diff --git a/examples/ruleset/repository-ruleset.tf b/examples/ruleset/repository-ruleset.tf index 4873065..b770834 100644 --- a/examples/ruleset/repository-ruleset.tf +++ b/examples/ruleset/repository-ruleset.tf @@ -1,8 +1,7 @@ module "github_repo_ruleset" { source = "../../modules/ruleset" - name = "repo-specific-ruleset" - repository = "my-target-repo" + name = "repo-specific-ruleset" bypass_actors = { repository_roles = [ { role_id = "maintainer_id", always_bypass = true } diff --git a/modules/repository_base/rulesets.tf b/modules/repository_base/rulesets.tf index bf6c02b..b68b6fb 100644 --- a/modules/repository_base/rulesets.tf +++ b/modules/repository_base/rulesets.tf @@ -41,7 +41,6 @@ module "ruleset" { for_each = var.rulesets - repository = github_repository.repository.name name = each.key target = each.value.target enforcement = each.value.enforcement diff --git a/modules/ruleset/README.md b/modules/ruleset/README.md index 9153b43..6869210 100644 --- a/modules/ruleset/README.md +++ b/modules/ruleset/README.md @@ -31,7 +31,6 @@ No modules. | [name](#input\_name) | The name of the ruleset. | `string` | n/a | yes | | [ref\_name\_exclusions](#input\_ref\_name\_exclusions) | A list of ref names or patterns to exclude. Defaults to an empty list. If set and `ruleset_type` is set to `organization` then either `repository_name_inclusions` or `repository_name_exclusions` must be set to a list of atleast 1 string. | `list(string)` | `[]` | no | | [ref\_name\_inclusions](#input\_ref\_name\_inclusions) | A list of ref names or patterns to include. Defaults to an empty list. If set and `ruleset_type` is set to `organization` then either `repository_name_inclusions` or `repository_name_exclusions` must be set to a list of atleast 1 string. | `list(string)` | `[]` | no | -| [repository](#input\_repository) | The name of the repository to apply the ruleset to. Only used when ruleset\_type is 'repository'. | `string` | `null` | no | | [repository\_name\_exclusions](#input\_repository\_name\_exclusions) | A list of repository names or patterns to exclude. If `ruleset_type` is set to `repository` then this field is ignored. | `list(string)` | `[]` | no | | [repository\_name\_inclusions](#input\_repository\_name\_inclusions) | A list of repository names or patterns to include. If `ruleset_type` is set to `repository` then this field is ignored. | `list(string)` | `[]` | no | | [rules](#input\_rules) | An object containing fields for all the rule definitions the ruleset should enforce. |
object({
branch_name_pattern = optional(object({
operator = string
pattern = string
name = optional(string)
negate = optional(bool)
}))
tag_name_pattern = optional(object({
operator = string
pattern = string
name = optional(string)
negate = optional(bool)
}))
commit_author_email_pattern = optional(object({
operator = string
pattern = string
name = optional(string)
negate = optional(bool)
}))
commit_message_pattern = optional(object({
operator = string
pattern = string
name = optional(string)
negate = optional(bool)
}))
committer_email_pattern = optional(object({
operator = string
pattern = string
name = optional(string)
negate = optional(bool)
}))
creation = optional(bool)
deletion = optional(bool)
update = optional(bool)
non_fast_forward = optional(bool)
required_linear_history = optional(bool)
required_signatures = optional(bool)
update_allows_fetch_and_merge = optional(bool)
pull_request = optional(object({
dismiss_stale_reviews_on_push = optional(bool)
require_code_owner_review = optional(bool)
require_last_push_approval = optional(bool)
required_approving_review_count = optional(number)
required_review_thread_resolution = optional(bool)
}))
required_status_checks = optional(object({
required_check = list(object({
context = string
integration_id = optional(number)
}))
strict_required_status_check_policy = optional(bool)
}))
required_workflows = optional(object({
required_workflows = list(object({
repository_id = number
path = string
ref = optional(string)
}))
}))
required_deployment_environments = optional(list(string))
})
| n/a | yes | diff --git a/modules/ruleset/repository_ruleset.tf b/modules/ruleset/repository_ruleset.tf index df2b436..7bfcd59 100644 --- a/modules/ruleset/repository_ruleset.tf +++ b/modules/ruleset/repository_ruleset.tf @@ -1,6 +1,5 @@ resource "github_repository_ruleset" "ruleset" { count = var.ruleset_type == "repository" ? 1 : 0 - repository = var.repository name = var.name target = var.target enforcement = var.enforcement diff --git a/modules/ruleset/repository_ruleset.tftest.hcl b/modules/ruleset/repository_ruleset.tftest.hcl index 4200e5e..836566e 100644 --- a/modules/ruleset/repository_ruleset.tftest.hcl +++ b/modules/ruleset/repository_ruleset.tftest.hcl @@ -5,7 +5,6 @@ variables { name = "ruleset_name" ruleset_type = "repository" - repository = "repository_name" target = "tag" enforcement = "disabled" @@ -344,16 +343,3 @@ run "bypass_actor_organization_admin_test" { error_message = "The bypass actor type is incorrect." } } - -# Test repository variable is required when ruleset_type is `repository` -run "repository_validation_test" { - command = plan - - variables { - repository = null - } - - expect_failures = [ - var.repository, - ] -} diff --git a/modules/ruleset/variables.tf b/modules/ruleset/variables.tf index b7a9686..e0c9369 100644 --- a/modules/ruleset/variables.tf +++ b/modules/ruleset/variables.tf @@ -3,16 +3,6 @@ variable "name" { description = "The name of the ruleset." } -variable "repository" { - type = string - default = null - description = "The name of the repository to apply the ruleset to. Only used when ruleset_type is 'repository'." - validation { - condition = var.ruleset_type != "repository" || var.repository != null - error_message = "The repository variable must be provided when ruleset_type is 'repository'." - } -} - variable "bypass_actors" { type = object({ repository_roles = optional(list(object({