Uh oh!
There was an error while loading. Please reload this page.
feat(yo61): add helm-charts, drop redundant default keys - #76
Conversation
The repo does not yet exist on GitHub, so this creates it empty, ready for the initial push. create_default_branch is omitted: it builds a github_branch resource needing a source commit, which fails on an empty repo. main is established by the first push. No additional_rulesets and no auto-merge. There are no workflows yet, so any required status check context declared now would sit Expected forever and block the first PR. The Tier-1 status-checks gate follows in a separate PR once CI exists, per decisions/2026-08-03-ci-baseline-two-tier-policy.md. That is also when the Pages question gets settled: chart-releaser on gh-pages needs pages.build_type legacy, whereas publishing OCI artifacts to ghcr.io needs no Pages config at all. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
The module already defaults delete_branch_on_merge to true (modules/github-repo/variables.tf:190) and the data files are meant to record deviations only. Eight files restated the default. No behaviour change. modules/org passes lookup(..., null) when the key is absent, and the child variable declares nullable = false alongside its default, so Terraform substitutes true when null is passed. commitlint-github-action keeps delete_branch_on_merge: false, which is a real deviation. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
The repo-data-files criteria kept create_default_branch out of the new file and drove the delete_branch_on_merge sweep. The status-check-gate criteria are why no required_status_checks ruleset was declared on a repo that has no workflows yet. Both categories keep their previous entry as "Last triggered (prior)", matching the pattern already used under plan and apply discipline. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
This PR adds the new yo61/helm-charts repo and removes redundant delete_branch_on_merge defaults from existing repo data. One added field in helm-charts still restates the module's effective public-repo security defaults, so the new file does not satisfy the deviations-only criterion this PR is enforcing.
| description: "Helm charts published by yo61." | ||
| has_issues: true | ||
| name: helm-charts | ||
| security_and_analysis: |
There was a problem hiding this comment.
[Important] Drop redundant public-repo security defaults
For visibility: public, modules/github-repo/data.tf already defaults secret_scanning and secret_scanning_push_protection to true when security_and_analysis is omitted, so these lines restate the effective module default and leave this new repo file failing the deviations-only criterion that the PR is applying to delete_branch_on_merge.
There was a problem hiding this comment.
Fixed in 5f68dfa — the block is removed.
Confirmed the mechanism in modules/github-repo/data.tf:
security_and_analysis_default=var.visibility=="public"? {
advanced_security =null
secret_scanning =true
secret_scanning_push_protection =true
} :nullsecurity_and_analysis=var.security_and_analysis!=null? var.security_and_analysis: local.security_and_analysis_defaultadvanced_security is optional(bool) and was unset, so the declared block was byte-for-byte the effective default.
Verified against live state rather than by re-reading the config. The repo was applied while this PR was open, so it exists with the block present. After removing it, the plan shows no diff on module.org_yo61.module.repo["helm-charts"].github_repository.this, and the API agrees:
$ gh api repos/yo61/helm-charts --jq '.security_and_analysis'
secret_scanning: enabled
secret_scanning_push_protection: enabled
Two follow-ups from this:
The criterion was pointing at the wrong file. It said cross-check against modules/github-repo/variables.tf, where security_and_analysis defaults to null — the visibility-dependent default is computed in data.tf and is invisible from variables.tf. Widened in the same commit to name both.
Six existing public repos restate the same block: unifictl, kuard, go-udap, homelab-docs, python-template, civi-mcp. Same redundancy, same no-op removal. Left untouched — this PR was scoped to delete_branch_on_merge — and noted under Last triggered so it is not lost.
modules/github-repo/data.tf already defaults secret_scanning and secret_scanning_push_protection to true for every public repo when security_and_analysis is omitted, so declaring them restated the effective default in a PR whose point is deviations-only data files. Verified against live state: the repo was applied with the block present, and after removing it the plan shows no diff on github_repository.this. The GitHub API reports secret_scanning and push_protection both enabled. Widen the deviations-only criterion to name data.tf alongside variables.tf. Checking variables.tf alone is what let this through -- security_and_analysis defaults to null there, and the visibility- dependent default is computed in data.tf. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Prior finding fixed: data/yo61/helm-charts.yaml no longer declares the redundant public-repo security_and_analysis block, and the widened criterion now points reviewers at modules/github-repo/data.tf as well as variables.tf. The current diff adds the helm-charts repo with only intentional deviations and removes redundant delete_branch_on_merge: true restatements; I found no remaining blocking issues.
Uh oh!
There was an error while loading. Please reload this page.
Add
yo61/helm-chartsdata/yo61/helm-charts.yamlbrings a new public repo under management. Itdoes not exist on GitHub yet, so the apply creates it empty and ready for the
initial push.
Omitted on purpose:
create_default_branch— builds agithub_branchresource that needs asource commit, so it fails against an empty repo.
mainis established bythe first push.
auto_init— left at the default so the repo is created empty.additional_rulesets— there are no workflows yet. A required statuscheck context declared now would sit
Expectedforever and block the firstPR.
allow_auto_mergeand the review count — Tier 2 ofdecisions/2026-08-03-ci-baseline-two-tier-policy.mdneeds a behaviouralcheck, which does not exist yet.
The Tier-1 status-checks gate follows in a separate PR once the repo has CI.
That is also when Pages gets decided: chart-releaser on
gh-pagesneedspages.build_type: legacy, whereas publishing OCI artifacts toghcr.ioneeds no Pages config.
Drop redundant
delete_branch_on_mergekeysThe module defaults
delete_branch_on_mergetotrue(
modules/github-repo/variables.tf:190) and the data files record deviationsonly. Eight files restated the default.
commitlint-github-actionkeepsdelete_branch_on_merge: false, which is areal deviation.
Plan
5 to add, 1 to change, 0 to destroy.The five creates are all
helm-charts: the repository, its collaborators, thedefault_branchruleset, dependabot security updates, and vulnerabilityalerts. The repository plans as
visibility = "public",has_issues = true,secret scanning and push protection enabled,
auto_init = false, anddelete_branch_on_merge = truefrom the module default.None of the eight cleaned repos appear in the plan, which confirms the removal
is a no-op:
modules/orgpasseslookup(..., null)for an absent key, and thechild variable declares
nullable = falsealongside its default, so Terraformsubstitutes
true.The one in-place change is pre-existing drift on
python-template— acreate-only
templateblock in state that the config does not declare. It isunrelated to this PR but will be applied alongside it.
Note
helm-charts'sdefault_branchruleset gets only the semantic-release-pusherIntegrationbypass, not the adminRepositoryRolebypass.modules/orgresolves non-forks from a live
org:yo61 fork:falsequery, which cannot see arepo that does not exist yet. The next apply adds it. Nothing is blocked
meanwhile: the ruleset carries no review requirement.
Also found, not changed
kuard.yaml:35andgo-udap.yaml:38setdefault_branch: main, which is alsothe module default. Left alone as outside the scope of this PR. The
visibility: privaterestatements inycst-org-ukare deliberate perquality/criteria.md.🤖 Generated with Claude Code