From c2d573a91f267cd447a3d4053692209d372f8a1e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Apr 2026 12:55:38 +0000 Subject: [PATCH 1/4] Initial plan From 10e3f2f89b81691293ee35e125913c8f70979611 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Apr 2026 13:02:16 +0000 Subject: [PATCH 2/4] Fix has_vulnerability_alerts default to false and wire through all modules Agent-Logs-Url: https://github.com/FociSolutions/github-foundations-modules/sessions/bb4fc58c-b5e1-4998-a5c0-840514ff90b8 Co-authored-by: bzarboni1 <99673202+bzarboni1@users.noreply.github.com> --- modules/internal_repository/README.md | 1 + modules/internal_repository/repository.tf | 2 +- modules/internal_repository/variables.tf | 6 ++++++ modules/private_repository/README.md | 1 + modules/private_repository/repository.tf | 2 +- modules/private_repository/variables.tf | 6 ++++++ modules/public_repository/README.md | 1 + modules/public_repository/repository.tf | 2 +- modules/public_repository/variables.tf | 6 ++++++ modules/repository_base/README.md | 2 +- modules/repository_base/variables.tf | 2 +- modules/repository_set/repositories.tf | 3 +++ 12 files changed, 29 insertions(+), 5 deletions(-) diff --git a/modules/internal_repository/README.md b/modules/internal_repository/README.md index 2288a29..7ba1ddf 100644 --- a/modules/internal_repository/README.md +++ b/modules/internal_repository/README.md @@ -38,6 +38,7 @@ No resources. | [description](#input\_description) | The description to give to the repository. Defaults to `""` | `string` | `""` | no | | [environments](#input\_environments) | Environments to create for the repository. |
map(object({
wait_timer = optional(number)
can_admins_bypass = optional(bool)
prevent_self_review = optional(bool)
action_secrets = optional(map(string))
reviewers = optional(object({
teams = optional(list(string))
users = optional(list(string))
}))
deployment_branch_policy = optional(object({
protected_branches = bool
custom_branch_policies = bool
branch_patterns = list(string)
}))
})) | `{}` | no |
| [has\_ghas\_license](#input\_has\_ghas\_license) | If the organization owning the repository has a GitHub Advanced Security license or not. Defaults to false. | `bool` | `false` | no |
+| [has\_vulnerability\_alerts](#input\_has\_vulnerability\_alerts) | Enables security alerts for vulnerable dependencies for the repository | `bool` | `false` | no |
| [homepage](#input\_homepage) | The homepage for the repository | `string` | `""` | no |
| [license\_template](#input\_license\_template) | The (Optional) license template to apply to the repository | `string` | `null` | no |
| [merge\_commit\_message](#input\_merge\_commit\_message) | (Optional) Can be `PR_BODY`, `PR_TITLE`, or `BLANK` for a default merge commit message. Applicable only if allow\_merge\_commit is `true`. | `string` | `"PR_TITLE"` | no |
diff --git a/modules/internal_repository/repository.tf b/modules/internal_repository/repository.tf
index c59a21d..615a69f 100644
--- a/modules/internal_repository/repository.tf
+++ b/modules/internal_repository/repository.tf
@@ -35,7 +35,7 @@ module "repository_base" {
secret_scanning = local.enable_secret_scanning
secret_scanning_on_push = local.enable_secret_scanning
- has_vulnerability_alerts = true
+ has_vulnerability_alerts = var.has_vulnerability_alerts
advance_security = var.advance_security
dependabot_security_updates = var.dependabot_security_updates
archived = var.archived
diff --git a/modules/internal_repository/variables.tf b/modules/internal_repository/variables.tf
index 086889a..7db1bf0 100644
--- a/modules/internal_repository/variables.tf
+++ b/modules/internal_repository/variables.tf
@@ -61,6 +61,12 @@ variable "requires_web_commit_signing" {
default = false
}
+variable "has_vulnerability_alerts" {
+ description = "Enables security alerts for vulnerable dependencies for the repository"
+ type = bool
+ default = false
+}
+
variable "dependabot_security_updates" {
description = "Enables dependabot security updates. Only works when `has_vulnerability_alerts` is set because that is required to enable dependabot for the repository."
type = bool
diff --git a/modules/private_repository/README.md b/modules/private_repository/README.md
index 5460b7d..39631db 100644
--- a/modules/private_repository/README.md
+++ b/modules/private_repository/README.md
@@ -38,6 +38,7 @@ No resources.
| [description](#input\_description) | The description to give to the repository. Defaults to `""` | `string` | `""` | no |
| [environments](#input\_environments) | Environments to create for the repository. | map(object({
wait_timer = optional(number)
can_admins_bypass = optional(bool)
prevent_self_review = optional(bool)
action_secrets = optional(map(string))
reviewers = optional(object({
teams = optional(list(string))
users = optional(list(string))
}))
deployment_branch_policy = optional(object({
protected_branches = bool
custom_branch_policies = bool
branch_patterns = list(string)
}))
})) | `{}` | no |
| [has\_ghas\_license](#input\_has\_ghas\_license) | If the organization owning the repository has a GitHub Advanced Security license or not. Defaults to false. | `bool` | `false` | no |
+| [has\_vulnerability\_alerts](#input\_has\_vulnerability\_alerts) | Enables security alerts for vulnerable dependencies for the repository | `bool` | `false` | no |
| [homepage](#input\_homepage) | The homepage for the repository | `string` | `""` | no |
| [license\_template](#input\_license\_template) | The (Optional) license template to use for the repository | `string` | `null` | no |
| [merge\_commit\_message](#input\_merge\_commit\_message) | (Optional) Can be `PR_BODY`, `PR_TITLE`, or `BLANK` for a default merge commit message. Applicable only if allow\_merge\_commit is `true`. | `string` | `"PR_TITLE"` | no |
diff --git a/modules/private_repository/repository.tf b/modules/private_repository/repository.tf
index 9cccf59..af26734 100644
--- a/modules/private_repository/repository.tf
+++ b/modules/private_repository/repository.tf
@@ -35,7 +35,7 @@ module "repository_base" {
secret_scanning = local.enable_secret_scanning
secret_scanning_on_push = local.enable_secret_scanning
- has_vulnerability_alerts = true
+ has_vulnerability_alerts = var.has_vulnerability_alerts
advance_security = var.advance_security
dependabot_security_updates = var.dependabot_security_updates
archived = var.archived
diff --git a/modules/private_repository/variables.tf b/modules/private_repository/variables.tf
index d4aca44..fb4941e 100644
--- a/modules/private_repository/variables.tf
+++ b/modules/private_repository/variables.tf
@@ -61,6 +61,12 @@ variable "requires_web_commit_signing" {
default = false
}
+variable "has_vulnerability_alerts" {
+ description = "Enables security alerts for vulnerable dependencies for the repository"
+ type = bool
+ default = false
+}
+
variable "dependabot_security_updates" {
description = "Enables dependabot security updates. Only works when `has_vulnerability_alerts` is set because that is required to enable dependabot for the repository."
type = bool
diff --git a/modules/public_repository/README.md b/modules/public_repository/README.md
index 09262d2..bc087f9 100644
--- a/modules/public_repository/README.md
+++ b/modules/public_repository/README.md
@@ -37,6 +37,7 @@ No resources.
| [dependabot\_security\_updates](#input\_dependabot\_security\_updates) | Enables dependabot security updates. Only works when `has_vulnerability_alerts` is set because that is required to enable dependabot for the repository. | `bool` | `true` | no |
| [description](#input\_description) | The description to give to the repository. Defaults to `""` | `string` | `""` | no |
| [environments](#input\_environments) | Environments to create for the repository. | map(object({
wait_timer = optional(number)
can_admins_bypass = optional(bool)
prevent_self_review = optional(bool)
action_secrets = optional(map(string))
reviewers = optional(object({
teams = optional(list(string))
users = optional(list(string))
}))
deployment_branch_policy = optional(object({
protected_branches = bool
custom_branch_policies = bool
branch_patterns = list(string)
}))
})) | `{}` | no |
+| [has\_vulnerability\_alerts](#input\_has\_vulnerability\_alerts) | Enables security alerts for vulnerable dependencies for the repository | `bool` | `false` | no |
| [homepage](#input\_homepage) | The homepage for the repository | `string` | `""` | no |
| [license\_template](#input\_license\_template) | The (Optional) license template to apply to the repository | `string` | `null` | no |
| [merge\_commit\_message](#input\_merge\_commit\_message) | (Optional) Can be `PR_BODY`, `PR_TITLE`, or `BLANK` for a default merge commit message. Applicable only if allow\_merge\_commit is `true`. | `string` | `"PR_TITLE"` | no |
diff --git a/modules/public_repository/repository.tf b/modules/public_repository/repository.tf
index c743d9a..48995a7 100644
--- a/modules/public_repository/repository.tf
+++ b/modules/public_repository/repository.tf
@@ -31,7 +31,7 @@ module "repository_base" {
secret_scanning = true
secret_scanning_on_push = true
- has_vulnerability_alerts = true
+ has_vulnerability_alerts = var.has_vulnerability_alerts
advance_security = var.advance_security
dependabot_security_updates = var.dependabot_security_updates
archived = var.archived
diff --git a/modules/public_repository/variables.tf b/modules/public_repository/variables.tf
index 1bfbb65..0723804 100644
--- a/modules/public_repository/variables.tf
+++ b/modules/public_repository/variables.tf
@@ -61,6 +61,12 @@ variable "requires_web_commit_signing" {
default = false
}
+variable "has_vulnerability_alerts" {
+ description = "Enables security alerts for vulnerable dependencies for the repository"
+ type = bool
+ default = false
+}
+
variable "dependabot_security_updates" {
description = "Enables dependabot security updates. Only works when `has_vulnerability_alerts` is set because that is required to enable dependabot for the repository."
type = bool
diff --git a/modules/repository_base/README.md b/modules/repository_base/README.md
index 27de03c..0e407d0 100644
--- a/modules/repository_base/README.md
+++ b/modules/repository_base/README.md
@@ -58,7 +58,7 @@
| [has\_downloads](#input\_has\_downloads) | Enables downloads for the repository | `bool` | `false` | no |
| [has\_issues](#input\_has\_issues) | Enables Github Issues for the repository | `bool` | `true` | no |
| [has\_projects](#input\_has\_projects) | Enables Github Projects for the repository | `bool` | `true` | no |
-| [has\_vulnerability\_alerts](#input\_has\_vulnerability\_alerts) | Enables security alerts for vulnerable dependencies for the repository | `bool` | `true` | no |
+| [has\_vulnerability\_alerts](#input\_has\_vulnerability\_alerts) | Enables security alerts for vulnerable dependencies for the repository | `bool` | `false` | no |
| [has\_wiki](#input\_has\_wiki) | Enables Github Wiki for the repository | `bool` | `true` | no |
| [homepage](#input\_homepage) | The homepage for the repository | `string` | `""` | no |
| [license\_template](#input\_license\_template) | The (Optional) license template to use for the repository | `string` | `null` | no |
diff --git a/modules/repository_base/variables.tf b/modules/repository_base/variables.tf
index 6439d30..d11be9f 100644
--- a/modules/repository_base/variables.tf
+++ b/modules/repository_base/variables.tf
@@ -64,7 +64,7 @@ variable "has_wiki" {
variable "has_vulnerability_alerts" {
description = "Enables security alerts for vulnerable dependencies for the repository"
type = bool
- default = true
+ default = false
}
variable "archived" {
diff --git a/modules/repository_set/repositories.tf b/modules/repository_set/repositories.tf
index 50e3842..610ea20 100644
--- a/modules/repository_set/repositories.tf
+++ b/modules/repository_set/repositories.tf
@@ -28,6 +28,7 @@ module "public_repositories" {
default_branch = each.value.default_branch
protected_branches = each.value.protected_branches
advance_security = each.value.advance_security
+ has_vulnerability_alerts = each.value.has_vulnerability_alerts
topics = each.value.topics
homepage = each.value.homepage
delete_head_on_merge = each.value.delete_head_on_merge
@@ -65,6 +66,7 @@ module "private_repositories" {
protected_branches = each.value.protected_branches
advance_security = each.value.advance_security
has_ghas_license = var.has_ghas_license
+ has_vulnerability_alerts = each.value.has_vulnerability_alerts
topics = each.value.topics
homepage = each.value.homepage
delete_head_on_merge = each.value.delete_head_on_merge
@@ -101,6 +103,7 @@ module "internal_repositories" {
default_branch = each.value.default_branch
protected_branches = each.value.protected_branches
advance_security = each.value.advance_security
+ has_vulnerability_alerts = each.value.has_vulnerability_alerts
topics = each.value.topics
homepage = each.value.homepage
delete_head_on_merge = each.value.delete_head_on_merge
From feeb89fc681fb54769133f10e231add5033b0d64 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 28 Apr 2026 13:10:02 +0000
Subject: [PATCH 3/4] Fix repository_set variables.tf and add
copilot-setup-steps.yml with Terraform
Agent-Logs-Url: https://github.com/FociSolutions/github-foundations-modules/sessions/fef7b18c-080f-4a6d-a01f-93ef4498159a
Co-authored-by: seanpoulter-foci <98067886+seanpoulter-foci@users.noreply.github.com>
---
.github/workflows/copilot-setup-steps.yml | 26 +++++++++++++++++++++++
modules/repository_set/variables.tf | 2 ++
2 files changed, 28 insertions(+)
create mode 100644 .github/workflows/copilot-setup-steps.yml
diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml
new file mode 100644
index 0000000..8cd297b
--- /dev/null
+++ b/.github/workflows/copilot-setup-steps.yml
@@ -0,0 +1,26 @@
+name: "Copilot Setup Steps"
+
+on:
+ workflow_dispatch:
+ push:
+ paths:
+ - .github/workflows/copilot-setup-steps.yml
+ pull_request:
+ paths:
+ - .github/workflows/copilot-setup-steps.yml
+
+jobs:
+ copilot-setup-steps:
+ runs-on: ubuntu-latest
+
+ permissions:
+ contents: read
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup Terraform
+ uses: hashicorp/setup-terraform@v3
+ with:
+ terraform_version: 1.9.8
diff --git a/modules/repository_set/variables.tf b/modules/repository_set/variables.tf
index 8479158..a4eae5c 100644
--- a/modules/repository_set/variables.tf
+++ b/modules/repository_set/variables.tf
@@ -66,6 +66,7 @@ variable "public_repositories" {
default_branch = string
protected_branches = list(string)
advance_security = bool
+ has_vulnerability_alerts = optional(bool, false)
topics = list(string)
homepage = string
delete_head_on_merge = bool
@@ -127,6 +128,7 @@ variable "internal_repositories" {
default_branch = string
protected_branches = list(string)
advance_security = bool
+ has_vulnerability_alerts = optional(bool, false)
topics = list(string)
homepage = string
delete_head_on_merge = bool
From 1765e187993ac7806903505ebdc7a25f40f6b823 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" map(object({
description = string
default_branch = string
protected_branches = list(string)
advance_security = bool
topics = list(string)
homepage = string
delete_head_on_merge = bool
dependabot_security_updates = bool
requires_web_commit_signing = bool
allow_auto_merge = optional(bool)
allow_squash_merge = optional(bool)
allow_rebase_merge = optional(bool)
allow_merge_commit = optional(bool)
squash_merge_commit_title = optional(string)
squash_merge_commit_message = optional(string)
merge_commit_title = optional(string)
merge_commit_message = optional(string)
repository_team_permissions_override = optional(map(string))
user_permissions = optional(map(string))
organization_action_secrets = optional(list(string))
organization_codespace_secrets = optional(list(string))
organization_dependabot_secrets = optional(list(string))
action_secrets = optional(map(string))
codespace_secrets = optional(map(string))
dependabot_secrets = optional(map(string))
environments = optional(map(object({
wait_timer = optional(number)
can_admins_bypass = optional(bool)
prevent_self_review = optional(bool)
action_secrets = optional(map(string))
reviewers = optional(object({
teams = optional(list(string))
users = optional(list(string))
}))
deployment_branch_policy = optional(object({
protected_branches = bool
custom_branch_policies = bool
branch_patterns = list(string)
}))
})))
template_repository = optional(object({
owner = string
repository = string
include_all_branches = bool
}))
license_template = optional(string)
pages = optional(object({
source = optional(object({
branch = string
path = optional(string)
}))
build_type = optional(string)
cname = optional(string)
}))
archived = optional(bool)
})) | `{}` | no |
+| [internal\_repositories](#input\_internal\_repositories) | A map of internal repositories where the key is the repository name and the value is the configuration | map(object({
description = string
default_branch = string
protected_branches = list(string)
advance_security = bool
has_vulnerability_alerts = optional(bool, false)
topics = list(string)
homepage = string
delete_head_on_merge = bool
dependabot_security_updates = bool
requires_web_commit_signing = bool
allow_auto_merge = optional(bool)
allow_squash_merge = optional(bool)
allow_rebase_merge = optional(bool)
allow_merge_commit = optional(bool)
squash_merge_commit_title = optional(string)
squash_merge_commit_message = optional(string)
merge_commit_title = optional(string)
merge_commit_message = optional(string)
repository_team_permissions_override = optional(map(string))
user_permissions = optional(map(string))
organization_action_secrets = optional(list(string))
organization_codespace_secrets = optional(list(string))
organization_dependabot_secrets = optional(list(string))
action_secrets = optional(map(string))
codespace_secrets = optional(map(string))
dependabot_secrets = optional(map(string))
environments = optional(map(object({
wait_timer = optional(number)
can_admins_bypass = optional(bool)
prevent_self_review = optional(bool)
action_secrets = optional(map(string))
reviewers = optional(object({
teams = optional(list(string))
users = optional(list(string))
}))
deployment_branch_policy = optional(object({
protected_branches = bool
custom_branch_policies = bool
branch_patterns = list(string)
}))
})))
template_repository = optional(object({
owner = string
repository = string
include_all_branches = bool
}))
license_template = optional(string)
pages = optional(object({
source = optional(object({
branch = string
path = optional(string)
}))
build_type = optional(string)
cname = optional(string)
}))
archived = optional(bool)
})) | `{}` | no |
| [private\_repositories](#input\_private\_repositories) | A map of private repositories where the key is the repository name and the value is the configuration | map(object({
description = string
default_branch = string
protected_branches = list(string)
advance_security = bool
has_vulnerability_alerts = bool
topics = list(string)
homepage = string
delete_head_on_merge = bool
requires_web_commit_signing = bool
dependabot_security_updates = bool
allow_auto_merge = optional(bool)
allow_squash_merge = optional(bool)
allow_rebase_merge = optional(bool)
allow_merge_commit = optional(bool)
squash_merge_commit_title = optional(string)
squash_merge_commit_message = optional(string)
merge_commit_title = optional(string)
merge_commit_message = optional(string)
repository_team_permissions_override = optional(map(string))
user_permissions = optional(map(string))
organization_action_secrets = optional(list(string))
organization_codespace_secrets = optional(list(string))
organization_dependabot_secrets = optional(list(string))
action_secrets = optional(map(string))
codespace_secrets = optional(map(string))
dependabot_secrets = optional(map(string))
environments = optional(map(object({
wait_timer = optional(number)
can_admins_bypass = optional(bool)
prevent_self_review = optional(bool)
action_secrets = optional(map(string))
reviewers = optional(object({
teams = optional(list(string))
users = optional(list(string))
}))
deployment_branch_policy = optional(object({
protected_branches = bool
custom_branch_policies = bool
branch_patterns = list(string)
}))
})))
template_repository = optional(object({
owner = string
repository = string
include_all_branches = bool
}))
license_template = optional(string)
pages = optional(object({
source = optional(object({
branch = string
path = optional(string)
}))
build_type = optional(string)
cname = optional(string)
}))
archived = optional(bool)
})) | n/a | yes |
-| [public\_repositories](#input\_public\_repositories) | A map of public repositories where the key is the repository name and the value is the configuration | map(object({
description = string
default_branch = string
protected_branches = list(string)
advance_security = bool
topics = list(string)
homepage = string
delete_head_on_merge = bool
dependabot_security_updates = bool
requires_web_commit_signing = bool
allow_auto_merge = optional(bool)
allow_squash_merge = optional(bool)
allow_rebase_merge = optional(bool)
allow_merge_commit = optional(bool)
squash_merge_commit_title = optional(string)
squash_merge_commit_message = optional(string)
merge_commit_title = optional(string)
merge_commit_message = optional(string)
repository_team_permissions_override = optional(map(string))
user_permissions = optional(map(string))
organization_action_secrets = optional(list(string))
organization_codespace_secrets = optional(list(string))
organization_dependabot_secrets = optional(list(string))
action_secrets = optional(map(string))
codespace_secrets = optional(map(string))
dependabot_secrets = optional(map(string))
environments = optional(map(object({
wait_timer = optional(number)
can_admins_bypass = optional(bool)
prevent_self_review = optional(bool)
action_secrets = optional(map(string))
reviewers = optional(object({
teams = optional(list(string))
users = optional(list(string))
}))
deployment_branch_policy = optional(object({
protected_branches = bool
custom_branch_policies = bool
branch_patterns = list(string)
}))
})))
template_repository = optional(object({
owner = string
repository = string
include_all_branches = bool
}))
license_template = optional(string)
pages = optional(object({
source = optional(object({
branch = string
path = optional(string)
}))
build_type = optional(string)
cname = optional(string)
}))
archived = optional(bool)
})) | n/a | yes |
+| [public\_repositories](#input\_public\_repositories) | A map of public repositories where the key is the repository name and the value is the configuration | map(object({
description = string
default_branch = string
protected_branches = list(string)
advance_security = bool
has_vulnerability_alerts = optional(bool, false)
topics = list(string)
homepage = string
delete_head_on_merge = bool
dependabot_security_updates = bool
requires_web_commit_signing = bool
allow_auto_merge = optional(bool)
allow_squash_merge = optional(bool)
allow_rebase_merge = optional(bool)
allow_merge_commit = optional(bool)
squash_merge_commit_title = optional(string)
squash_merge_commit_message = optional(string)
merge_commit_title = optional(string)
merge_commit_message = optional(string)
repository_team_permissions_override = optional(map(string))
user_permissions = optional(map(string))
organization_action_secrets = optional(list(string))
organization_codespace_secrets = optional(list(string))
organization_dependabot_secrets = optional(list(string))
action_secrets = optional(map(string))
codespace_secrets = optional(map(string))
dependabot_secrets = optional(map(string))
environments = optional(map(object({
wait_timer = optional(number)
can_admins_bypass = optional(bool)
prevent_self_review = optional(bool)
action_secrets = optional(map(string))
reviewers = optional(object({
teams = optional(list(string))
users = optional(list(string))
}))
deployment_branch_policy = optional(object({
protected_branches = bool
custom_branch_policies = bool
branch_patterns = list(string)
}))
})))
template_repository = optional(object({
owner = string
repository = string
include_all_branches = bool
}))
license_template = optional(string)
pages = optional(object({
source = optional(object({
branch = string
path = optional(string)
}))
build_type = optional(string)
cname = optional(string)
}))
archived = optional(bool)
})) | n/a | yes |
| [rulesets](#input\_rulesets) | n/a | map(object({
bypass_actors = optional(object({
repository_roles = optional(list(object({
role = string
always_bypass = optional(bool)
})))
teams = optional(list(object({
team = string
always_bypass = optional(bool)
})))
integrations = optional(list(object({
installation_id = number
always_bypass = optional(bool)
})))
organization_admin = optional(object({
always_bypass = optional(bool)
}))
}))
conditions = optional(object({
ref_name = object({
include = list(string)
exclude = list(string)
})
}))
rules = 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_deployment_environments = optional(list(string))
})
target = string
enforcement = string
repositories = list(string)
})) | `{}` | no |
## Outputs