Skip to content

rulesets: require up-to-date branches on the CI-enforced repos - #267

Merged
cpitzi merged 1 commit into
mainfrom
feat/strict-checks-ci-enforced
Oct 13, 2026
Merged

cpitzi merged 1 commit into
mainfrom
feat/strict-checks-ci-enforced

Conversation

@cpitzi

@cpitzi cpitzi commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Summary

lentago/claytonia#22 asked that a merge be blocked while the PR branch is behind main, the enforcement half of its "rebase before merge" item. That is the branch ruleset's strict required-status-checks policy, which every fleet main ruleset had set to false: a stale branch merged as soon as its own checks were green, which is how fleet PR #19 in claytonia went CONFLICTING and was redone as #20 on 2026-06-19.

Of the options weighed in #266, this takes the second: strict on only where a stale merge applies stale state. The five repos whose CI applies main to a live surface on every merge (.github, betula, claytonia, drosera, kalmia) now require a PR to include the current main before it can merge; a plan computed against an old main can no longer be the one that runs. Content and site repos keep the practice recorded in claytonia#144 instead (workers open PRs current with main; the merger updates a BEHIND PR before arming), because there a stale merge costs a conflict, not a wrong apply.

Mechanically: a new strict_up_to_date_repos set in locals.tf, and the ruleset's strict_required_status_checks_policy reads membership in it. The rule only exists alongside required contexts, and all five have them in required-checks.json. Expected plan: five github_repository_ruleset.main updates in place, nothing else.

What changes for people and bots on those five repos: a PR that falls behind main must be updated (gh pr update-branch) and re-checked before auto-merge fires, and Dependabot's grouped PRs will need @dependabot rebase more often, as two of them did in today's sweep. gh pr merge --auto still arms as before.

Validation: terraform fmt -check and terraform validate (no backend) pass locally; the plan runs on this PR.

Closes #266

🤖 Generated with Claude Code

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: lentago/coderabbit/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 4ef03b90-f1c8-448c-8408-0263efbc8e9f
📥 Commits

Reviewing files that changed from the base of the PR and between 5019a3f and 67294bd.

📒 Files selected for processing: 2
  • terraform/locals.tf
  • terraform/rulesets.tf

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.

📝 Summary

Summary by CodeRabbit

  • New Features
    • Pull requests in .github, betula, claytonia, drosera, and kalmia must now have branches up to date with main to satisfy required status checks. This rule remains disabled for other repositories.

The main ruleset now requires branches to be current with main for .github, betula, claytonia, drosera, and kalmia. Other repositories retain the existing non-strict policy.

Changes: Strict required-status checks

Layer / File(s) Summary
Repository selection and ruleset policy
terraform/locals.tf, terraform/rulesets.tf
strict_up_to_date_repos lists five repositories. The main ruleset enables strict status-check freshness when the repository is in that set.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature · Severity of issue fixed: Medium

Merge Risk: ⚪ Minimal · up to 67294

The strict freshness policy applies to all five intended repositories. No actionable merge risk remains from the reviewed change.

Security architecture risk: 🔵 Low · up to 67294

The change strengthens merge controls for a limited repository cohort without granting new permissions or removing existing checks. The remaining uncertainty is whether the deployed settings enforce freshness as intended during concurrent merges and interrupted rollout.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • observed — The policy-value change is limited to the five named repositories within the existing public-repository ruleset population. It changes eligibility to merge into protected branches, not tenant access, credentials, check-author identity, or infrastructure privileges.

Trust Boundaries and Controls

  • observed — A contributor-controlled PR branch encounters an active ruleset requiring a pull request and integration-bound checks; the selected cohort now also receives strict freshness. The separate main-branch push allowlist remains unchanged, so this PR does not delegate additional merge or ref-update authority.

Resilience and Maintainability Implications

  • inferred — Stable repository keys and unchanged required-check ownership support repeatable reconciliation without a new identity or ownership transition. Apply serialization and convergence checking provide existing safeguards, but do not demonstrate recovery after interruption or GitHub's concurrent merge-time behavior.

Hardening Proposals

  • proposed — After rollout, read back all five rulesets and verify that a behind-main PR remains blocked after checks pass. This would validate deployed freshness enforcement beyond the declared configuration.
Pre-merge checks: Passed 5
Passed Passed checks: 5 passed
Check name Status Explanation
Title check Passed The title is specific, imperative, 62 characters, and accurately describes requiring up-to-date branches on the CI-enforced repositories.
Description check Passed The description directly explains the ruleset change, affected repositories, rationale, expected plan, validation, and linked issue.
Linked Issues check Passed Issue #266 option 2 requires strict status-check freshness for .github, betula, claytonia, drosera, and kalmia, while other repositories remain unchanged. terraform/locals.tf defines exact…
Out of Scope Changes check Passed The diff changes only the repository set in terraform/locals.tf and the matching ruleset policy in terraform/rulesets.tf. Both changes directly implement issue #266 option 2. No unrelated change i…
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

terraform plan (success)

data.github_repositories.live: Reading...
data.github_repositories.live: Read complete after 1s [id=org:lentago]
github_repository.fleet["lupinus"]: Refreshing state... [id=lupinus]
github_repository.fleet["mitchella"]: Refreshing state... [id=mitchella]
github_repository.fleet["uvularia-demo-ask-rules"]: Refreshing state... [id=uvularia-demo-ask-rules]
github_repository.fleet["uvularia-records-template"]: Refreshing state... [id=uvularia-records-template]
github_repository.fleet["site-lentago-dev"]: Refreshing state... [id=site-lentago-dev]
github_repository.fleet["solidago"]: Refreshing state... [id=solidago]
github_repository.fleet["claytonia"]: Refreshing state... [id=claytonia]
github_repository.fleet["site-pondviewlane-com"]: Refreshing state... [id=site-pondviewlane-com]
github_repository.fleet["uvularia-site-template"]: Refreshing state... [id=uvularia-site-template]
github_repository.fleet["uvularia"]: Refreshing state... [id=uvularia]
github_repository.fleet["osmunda"]: Refreshing state... [id=osmunda]
github_repository.fleet["site-icecreamtofightwith-com"]: Refreshing state... [id=site-icecreamtofightwith-com]
github_repository.fleet["drosera"]: Refreshing state... [id=drosera]
github_repository.fleet["kalmia"]: Refreshing state... [id=kalmia]
github_repository.fleet["uvularia-demo-records"]: Refreshing state... [id=uvularia-demo-records]
github_repository.fleet["monarda"]: Refreshing state... [id=monarda]
github_repository.fleet["brasenia"]: Refreshing state... [id=brasenia]
github_repository.fleet["repo-template"]: Refreshing state... [id=repo-template]
github_repository.fleet["epigaea"]: Refreshing state... [id=epigaea]
github_repository.fleet[".github"]: Refreshing state... [id=.github]
github_repository.fleet["asclepias"]: Refreshing state... [id=asclepias]
github_repository.fleet["uvularia-demo-site"]: Refreshing state... [id=uvularia-demo-site]
github_repository.fleet["uvularia-rules-template"]: Refreshing state... [id=uvularia-rules-template]
github_repository.fleet["shared-workflows"]: Refreshing state... [id=shared-workflows]
github_repository.fleet["coderabbit"]: Refreshing state... [id=coderabbit]
github_repository.fleet["betula"]: Refreshing state... [id=betula]
github_branch_protection.merge_gate["uvularia-rules-template"]: Refreshing state... [id=BPR_kwDOU6r7yc4FBIzB]
github_branch_protection.merge_gate["uvularia"]: Refreshing state... [id=BPR_kwDOU6X-mM4FBF1y]
github_branch_protection.merge_gate["brasenia"]: Refreshing state... [id=BPR_kwDOTeoXjM4E3jB6]
github_branch_protection.merge_gate[".github"]: Refreshing state... [id=BPR_kwDOS8xvB84E3jBa]
github_branch_protection.merge_gate["lupinus"]: Refreshing state... [id=BPR_kwDOT9v0j84E4wEK]
github_branch_protection.merge_gate["uvularia-records-template"]: Refreshing state... [id=BPR_kwDOU6m0Zc4FBH5J]
github_branch_protection.merge_gate["solidago"]: Refreshing state... [id=BPR_kwDORazYwM4E3jBV]
github_branch_protection.merge_gate["drosera"]: Refreshing state... [id=BPR_kwDORxsjAs4E3jBb]
github_branch_protection.merge_gate["uvularia-demo-records"]: Refreshing state... [id=BPR_kwDOU6nTN84FBH92]
github_branch_protection.merge_gate["shared-workflows"]: Refreshing state... [id=BPR_kwDOSMCOBc4E3jB0]
github_branch_protection.merge_gate["betula"]: Refreshing state... [id=BPR_kwDORmjj4s4E3jBU]
github_branch_protection.merge_gate["repo-template"]: Refreshing state... [id=BPR_kwDOS62mpc4E3jBS]
github_branch_protection.merge_gate["claytonia"]: Refreshing state... [id=BPR_kwDOS7uYHs4E3jBY]
github_branch_protection.merge_gate["coderabbit"]: Refreshing state... [id=BPR_kwDOU6wrsc4FBJ_d]
github_branch_protection.merge_gate["epigaea"]: Refreshing state... [id=BPR_kwDOEtWG1M4E3jBT]
github_branch_protection.merge_gate["osmunda"]: Refreshing state... [id=BPR_kwDOT7ux2s4E4YEd]
github_branch_protection.merge_gate["monarda"]: Refreshing state... [id=BPR_kwDOT7ux-84E4YEc]
github_branch_protection.merge_gate["uvularia-demo-site"]: Refreshing state... [id=BPR_kwDOU6nTUs4FBH9z]
github_branch_protection.merge_gate["site-lentago-dev"]: Refreshing state... [id=BPR_kwDOTIBV8M4E3jBW]
github_branch_protection.merge_gate["asclepias"]: Refreshing state... [id=BPR_kwDOT2kGXs4E3jB7]
github_branch_protection.merge_gate["mitchella"]: Refreshing state... [id=BPR_kwDOUGq5FM4E6PkG]
github_branch_protection.merge_gate["site-pondviewlane-com"]: Refreshing state... [id=BPR_kwDOTb9-Os4E3jBZ]
github_branch_protection.merge_gate["site-icecreamtofightwith-com"]: Refreshing state... [id=BPR_kwDOQZDPD84E3jB9]
github_branch_protection.merge_gate["kalmia"]: Refreshing state... [id=BPR_kwDOTJGLUM4E3jCA]
github_branch_protection.merge_gate["uvularia-site-template"]: Refreshing state... [id=BPR_kwDOU6m0Pc4FBH5L]
github_branch_protection.merge_gate["uvularia-demo-ask-rules"]: Refreshing state... [id=BPR_kwDOU6seZs4FBI4U]
github_repository_ruleset.main["uvularia-demo-site"]: Refreshing state... [id=24431474]
github_repository_ruleset.main["site-icecreamtofightwith-com"]: Refreshing state... [id=13559020]
github_repository_ruleset.main["uvularia-records-template"]: Refreshing state... [id=24431186]
github_repository_ruleset.main["site-lentago-dev"]: Refreshing state... [id=18237308]
github_repository_ruleset.main[".github"]: Refreshing state... [id=17933796]
github_repository_ruleset.main["mitchella"]: Refreshing state... [id=21703493]
github_repository_ruleset.main["uvularia-rules-template"]: Refreshing state... [id=24434502]
github_repository_ruleset.main["brasenia"]: Refreshing state... [id=19323889]
github_repository_ruleset.main["betula"]: Refreshing state... [id=14521264]
github_repository_ruleset.main["kalmia"]: Refreshing state... [id=18293648]
github_repository_ruleset.main["lupinus"]: Refreshing state... [id=21051667]
github_repository_ruleset.main["uvularia-site-template"]: Refreshing state... [id=24431188]
github_repository_ruleset.main["epigaea"]: Refreshing state... [id=14718477]
github_repository_ruleset.main["site-pondviewlane-com"]: Refreshing state... [id=19125050]
github_repository_ruleset.main["drosera"]: Refreshing state... [id=14522520]
github_repository_ruleset.main["claytonia"]: Refreshing state... [id=17713398]
github_repository_ruleset.main["solidago"]: Refreshing state... [id=13837390]
github_repository_ruleset.main["osmunda"]: Refreshing state... [id=20958247]
github_repository_ruleset.main["monarda"]: Refreshing state... [id=20958245]
github_repository_ruleset.main["uvularia-demo-ask-rules"]: Refreshing state... [id=24434935]
github_repository_ruleset.main["asclepias"]: Refreshing state... [id=20758046]
github_repository_ruleset.main["repo-template"]: Refreshing state... [id=17671511]
github_repository_ruleset.main["uvularia"]: Refreshing state... [id=24421656]
github_repository_ruleset.main["uvularia-demo-records"]: Refreshing state... [id=24431476]
github_repository_ruleset.main["shared-workflows"]: Refreshing state... [id=15538975]
github_repository_ruleset.main["coderabbit"]: Refreshing state... [id=24439425]
github_issue_label.fleet["asclepias:help wanted"]: Refreshing state... [id=asclepias:help wanted]
github_issue_label.fleet["shared-workflows:wontfix"]: Refreshing state... [id=shared-workflows:wontfix]
github_issue_label.fleet["uvularia:question"]: Refreshing state... [id=uvularia:question]
github_issue_label.fleet["uvularia:help wanted"]: Refreshing state... [id=uvularia:help wanted]
github_issue_label.fleet["uvularia-demo-ask-rules:bug"]: Refreshing state... [id=uvularia-demo-ask-rules:bug]
github_issue_label.fleet["kalmia:wontfix"]: Refreshing state... [id=kalmia:wontfix]
github_issue_label.fleet["lupinus:question"]: Refreshing state... [id=lupinus:question]
github_issue_label.fleet["mitchella:duplicate"]: Refreshing state... [id=mitchella:duplicate]
github_issue_label.fleet["claytonia:duplicate"]: Refreshing state... [id=claytonia:duplicate]
github_issue_label.fleet["solidago:model:sonnet"]: Refreshing state... [id=solidago:model:sonnet]
github_issue_label.fleet["uvularia-demo-records:wontfix"]: Refreshing state... [id=uvularia-demo-records:wontfix]
github_issue_label.fleet["solidago:duplicate"]: Refreshing state... [id=solidago:duplicate]
github_issue_label.fleet["osmunda:help wanted"]: Refreshing state... [id=osmunda:help wanted]
github_issue_label.fleet["uvularia-rules-template:documentation"]: Refreshing state... [id=uvularia-rules-template:documentation]
github_issue_label.fleet["claytonia:enhancement"]: Refreshing state... [id=claytonia:enhancement]
github_issue_label.fleet["monarda:enhancement"]: Refreshing state... [id=monarda:enhancement]
github_issue_label.fleet["shared-workflows:enhancement"]: Refreshing state... [id=shared-workflows:enhancement]
github_issue_label.fleet["uvularia-demo-records:documentation"]: Refreshing state... [id=uvularia-demo-records:documentation]
github_issue_label.fleet["betula:good first issue"]: Refreshing state... [id=betula:good first issue]
github_issue_label.fleet["uvularia-site-template:help wanted"]: Refreshing state... [id=uvularia-site-template:help wanted]
github_issue_label.fleet["site-lentago-dev:bug"]: Refreshing state... [id=site-lentago-dev:bug]
github_issue_label.fleet["epigaea:bug"]: Refreshing state... [id=epigaea:bug]
github_issue_label.fleet["shared-workflows:duplicate"]: Refreshing state... [id=shared-workflows:duplicate]
github_issue_label.fleet["shared-workflows:invalid"]: Refreshing state... [id=shared-workflows:invalid]
github_issue_label.fleet["repo-template:wontfix"]: Refreshing state... [id=repo-template:wontfix]
github_issue_label.fleet["epigaea:documentation"]: Refreshing state... [id=epigaea:documentation]
github_issue_label.fleet["coderabbit:help wanted"]: Refreshing state... [id=coderabbit:help wanted]
github_issue_label.fleet["uvularia-records-template:documentation"]: Refreshing state... [id=uvularia-records-template:documentation]
github_issue_label.fleet[".github:good first issue"]: Refreshing state... [id=.github:good first issue]
github_issue_label.fleet["asclepias:wontfix"]: Refreshing state... [id=asclepias:wontfix]
github_issue_label.fleet["lupinus:bug"]: Refreshing state... [id=lupinus:bug]
github_issue_label.fleet["monarda:bug"]: Refreshing state... [id=monarda:bug]
github_issue_label.fleet["drosera:invalid"]: Refreshing state... [id=drosera:invalid]
github_issue_label.fleet["repo-template:documentation"]: Refreshing state... [id=repo-template:documentation]
github_issue_label.fleet["uvularia-demo-ask-rules:enhancement"]: Refreshing state... [id=uvularia-demo-ask-rules:enhancement]
github_issue_label.fleet["site-icecreamtofightwith-com:model:sonnet"]: Refreshing state... [id=site-icecreamtofightwith-com:model:sonnet]
github_issue_label.fleet["uvularia-site-template:question"]: Refreshing state... [id=uvularia-site-template:question]
github_issue_label.fleet["uvularia-site-template:wontfix"]: Refreshing state... [id=uvularia-site-template:wontfix]
github_issue_label.fleet["mitchella:bug"]: Refreshing state... [id=mitchella:bug]
github_issue_label.fleet["uvularia-demo-records:invalid"]: Refreshing state... [id=uvularia-demo-records:invalid]
github_issue_label.fleet["lupinus:good first issue"]: Refreshing state... [id=lupinus:good first issue]
github_issue_label.fleet["lupinus:duplicate"]: Refreshing state... [id=lupinus:duplicate]
github_issue_label.fleet["site-icecreamtofightwith-com:question"]: Refreshing state... [id=site-icecreamtofightwith-com:question]
github_issue_label.fleet["site-pondviewlane-com:invalid"]: Refreshing state... [id=site-pondviewlane-com:invalid]
github_issue_label.fleet["drosera:model:haiku"]: Refreshing state... [id=drosera:model:haiku]
github_issue_label.fleet["uvularia-demo-site:good first issue"]: Refreshing state... [id=uvularia-demo-site:good first issue]
github_issue_label.fleet["uvularia-rules-template:invalid"]: Refreshing state... [id=uvularia-rules-template:invalid]
github_issue_label.fleet["solidago:bug"]: Refreshing state... [id=solidago:bug]
github_issue_label.fleet["uvularia-records-template:duplicate"]: Refreshing state... [id=uvularia-records-template:duplicate]
github_issue_label.fleet["solidago:invalid"]: Refreshing state... [id=solidago:invalid]
github_issue_label.fleet["brasenia:invalid"]: Refreshing state... [id=brasenia:invalid]
github_issue_label.fleet["uvularia-demo-ask-rules:invalid"]: Refreshing state... [id=uvularia-demo-ask-rules:invalid]
github_issue_label.fleet["uvularia-demo-site:duplicate"]: Refreshing state... [id=uvularia-demo-site:duplicate]
github_issue_label.fleet["uvularia:invalid"]: Refreshing state... [id=uvularia:invalid]
github_issue_label.fleet["shared-workflows:bug"]: Refreshing state... [id=shared-workflows:bug]
github_issue_label.fleet["lupinus:enhancement"]: Refreshing state... [id=lupinus:enhancement]
github_issue_label.fleet["drosera:duplicate"]: Refreshing state... [id=drosera:duplicate]
github_issue_label.fleet["shared-workflows:question"]: Refreshing state... [id=shared-workflows:question]
github_issue_label.fleet["betula:model:haiku"]: Refreshing state... [id=betula:model:haiku]
github_issue_label.fleet["brasenia:help wanted"]: Refreshing state... [id=brasenia:help wanted]
github_issue_label.fleet["uvularia:bug"]: Refreshing state... [id=uvularia:bug]
github_issue_label.fleet["drosera:help wanted"]: Refreshing state... [id=drosera:help wanted]
github_issue_label.fleet["drosera:model:opus"]: Refreshing state... [id=drosera:model:opus]
github_issue_label.fleet["betula:model:opus"]: Refreshing state... [id=betula:model:opus]
github_issue_label.fleet["uvularia-site-template:bug"]: Refreshing state... [id=uvularia-site-template:bug]
github_issue_label.fleet["kalmia:invalid"]: Refreshing state... [id=kalmia:invalid]
github_issue_label.fleet["site-icecreamtofightwith-com:model:haiku"]: Refreshing state... [id=site-icecreamtofightwith-com:model:haiku]
github_issue_label.fleet["kalmia:help wanted"]: Refreshing state... [id=kalmia:help wanted]
github_issue_label.fleet["mitchella:invalid"]: Refreshing state... [id=mitchella:invalid]
github_issue_label.fleet[".github:duplicate"]: Refreshing state... [id=.github:duplicate]
github_issue_label.fleet["site-icecreamtofightwith-com:model:opus"]: Refreshing state... [id=site-icecreamtofightwith-com:model:opus]
github_issue_label.fleet["uvularia-demo-ask-rules:question"]: Refreshing state... [id=uvularia-demo-ask-rules:question]
github_issue_label.fleet["osmunda:documentation"]: Refreshing state... [id=osmunda:documentation]
github_issue_label.fleet[".github:help wanted"]: Refreshing state... [id=.github:help wanted]
github_issue_label.fleet["uvularia-demo-ask-rules:documentation"]: Refreshing state... [id=uvularia-demo-ask-rules:documentation]
github_issue_label.fleet["solidago:wontfix"]: Refreshing state... [id=solidago:wontfix]
github_issue_label.fleet["asclepias:enhancement"]: Refreshing state... [id=asclepias:enhancement]
github_issue_label.fleet["mitchella:good first issue"]: Refreshing state... [id=mitchella:good first issue]
github_issue_label.fleet["site-pondviewlane-com:duplicate"]: Refreshing state... [id=site-pondviewlane-com:duplicate]
github_issue_label.fleet["claytonia:question"]: Refreshing state... [id=claytonia:question]
github_issue_label.fleet["kalmia:good first issue"]: Refreshing state... [id=kalmia:good first issue]
github_issue_label.fleet["site-icecreamtofightwith-com:enhancement"]: Refreshing state... [id=site-icecreamtofightwith-com:enhancement]
github_issue_label.fleet[".github:documentation"]: Refreshing state... [id=.github:documentation]
github_issue_label.fleet["betula:help wanted"]: Refreshing state... [id=betula:help wanted]
github_issue_label.fleet[".github:question"]: Refreshing state... [id=.github:question]
github_issue_label.fleet["lupinus:invalid"]: Refreshing state... [id=lupinus:invalid]
github_issue_label.fleet["site-pondviewlane-com:documentation"]: Refreshing state... [id=site-pondviewlane-com:documentation]
github_issue_label.fleet["uvularia-demo-site:wontfix"]: Refreshing state... [id=uvularia-demo-site:wontfix]
github_issue_label.fleet[".github:bug"]: Refreshing state... [id=.github:bug]
github_issue_label.fleet["solidago:model:haiku"]: Refreshing state... [id=solidago:model:haiku]
github_issue_label.fleet["coderabbit:question"]: Refreshing state... [id=coderabbit:question]
github_issue_label.fleet["site-lentago-dev:good first issue"]: Refreshing state... [id=site-lentago-dev:good first issue]
github_issue_label.fleet["asclepias:good first issue"]: Refreshing state... [id=asclepias:good first issue]
github_issue_label.fleet["site-lentago-dev:enhancement"]: Refreshing state... [id=site-lentago-dev:enhancement]
github_issue_label.fleet["brasenia:duplicate"]: Refreshing state... [id=brasenia:duplicate]
github_issue_label.fleet["uvularia:documentation"]: Refreshing state... [id=uvularia:documentation]
github_issue_label.fleet["site-lentago-dev:documentation"]: Refreshing state... [id=site-lentago-dev:documentation]
github_issue_label.fleet["site-lentago-dev:help wanted"]: Refreshing state... [id=site-lentago-dev:help wanted]
github_issue_label.fleet["uvularia-rules-template:question"]: Refreshing state... [id=uvularia-rules-template:question]
github_issue_label.fleet["uvularia-demo-site:bug"]: Refreshing state... [id=uvularia-demo-site:bug]
github_issue_label.fleet["osmunda:good first issue"]: Refreshing state... [id=osmunda:good first issue]
github_issue_label.fleet["site-pondviewlane-com:good first issue"]: Refreshing state... [id=site-pondviewlane-com:good first issue]
github_issue_label.fleet["lupinus:help wanted"]: Refreshing state... [id=lupinus:help wanted]
github_issue_label.fleet["site-icecreamtofightwith-com:duplicate"]: Refreshing state... [id=site-icecreamtofightwith-com:duplicate]
github_issue_label.fleet["uvularia-demo-records:enhancement"]: Refreshing state... [id=uvularia-demo-records:enhancement]
github_issue_label.fleet["lupinus:documentation"]: Refreshing state... [id=lupinus:documentation]
github_issue_label.fleet["coderabbit:duplicate"]: Refreshing state... [id=coderabbit:duplicate]
github_issue_label.fleet["uvularia-demo-site:enhancement"]: Refreshing state... [id=uvularia-demo-site:enhancement]
github_issue_label.fleet["lupinus:wontfix"]: Refreshing state... [id=lupinus:wontfix]
github_issue_label.fleet["asclepias:bug"]: Refreshing state... [id=asclepias:bug]
github_issue_label.fleet["uvularia-demo-records:good first issue"]: Refreshing state... [id=uvularia-demo-records:good first issue]
github_issue_label.fleet["site-lentago-dev:duplicate"]: Refreshing state... [id=site-lentago-dev:duplicate]
github_issue_label.fleet["uvularia-rules-template:wontfix"]: Refreshing state... [id=uvularia-rules-template:wontfix]
github_issue_label.fleet["site-pondviewlane-com:wontfix"]: Refreshing state... [id=site-pondviewlane-com:wontfix]
github_issue_label.fleet["betula:question"]: Refreshing state... [id=betula:question]
github_issue_label.fleet["asclepias:invalid"]: Refreshing state... [id=asclepias:invalid]
github_issue_label.fleet["drosera:good first issue"]: Refreshing state... [id=drosera:good first issue]
github_issue_label.fleet["kalmia:question"]: Refreshing state... [id=kalmia:question]
github_issue_label.fleet["betula:enhancement"]: Refreshing state... [id=betula:enhancement]
github_issue_label.fleet["uvularia-demo-site:invalid"]: Refreshing state... [id=uvularia-demo-site:invalid]
github_issue_label.fleet["drosera:enhancement"]: Refreshing state... [id=drosera:enhancement]
github_issue_label.fleet["monarda:duplicate"]: Refreshing state... [id=monarda:duplicate]
github_issue_label.fleet[".github:enhancement"]: Refreshing state... [id=.github:enhancement]
github_issue_label.fleet["monarda:help wanted"]: Refreshing state... [id=monarda:help wanted]
github_issue_label.fleet["site-pondviewlane-com:bug"]: Refreshing state... [id=site-pondviewlane-com:bug]
github_issue_label.fleet["claytonia:bug"]: Refreshing state... [id=claytonia:bug]
github_issue_label.fleet["site-pondviewlane-com:enhancement"]: Refreshing state... [id=site-pondviewlane-com:enhancement]
github_issue_label.fleet["uvularia-records-template:help wanted"]: Refreshing state... [id=uvularia-records-template:help wanted]
github_issue_label.fleet["uvularia-records-template:wontfix"]: Refreshing state... [id=uvularia-records-template:wontfix]
github_issue_label.fleet["epigaea:model:opus"]: Refreshing state... [id=epigaea:model:opus]
github_issue_label.fleet["site-icecreamtofightwith-com:bug"]: Refreshing state... [id=site-icecreamtofightwith-com:bug]
github_issue_label.fleet["mitchella:enhancement"]: Refreshing state... [id=mitchella:enhancement]
github_issue_label.fleet["solidago:model:opus"]: Refreshing state... [id=solidago:model:opus]
github_issue_label.fleet["uvularia-site-template:documentation"]: Refreshing state... [id=uvularia-site-template:documentation]
github_issue_label.fleet["betula:invalid"]: Refreshing state... [id=betula:invalid]
github_issue_label.fleet["mitchella:question"]: Refreshing state... [id=mitchella:question]
github_issue_label.fleet["uvularia-demo-records:duplicate"]: Refreshing state... [id=uvularia-demo-records:duplicate]
github_issue_label.fleet["uvularia-site-template:good first issue"]: Refreshing state... [id=uvularia-site-template:good first issue]
github_issue_label.fleet["osmunda:question"]: Refreshing state... [id=osmunda:question]
github_issue_label.fleet["brasenia:enhancement"]: Refreshing state... [id=brasenia:enhancement]
github_issue_label.fleet["epigaea:wontfix"]: Refreshing state... [id=epigaea:wontfix]
github_issue_label.fleet["solidago:good first issue"]: Refreshing state... [id=solidago:good first issue]
github_issue_label.fleet["uvularia-records-template:invalid"]: Refreshing state... [id=uvularia-records-template:invalid]
github_issue_label.fleet["epigaea:help wanted"]: Refreshing state... [id=epigaea:help wanted]
github_issue_label.fleet["brasenia:question"]: Refreshing state... [id=brasenia:question]
github_issue_label.fleet["uvularia-records-template:question"]: Refreshing state... [id=uvularia-records-template:question]
github_issue_label.fleet["uvularia-site-template:enhancement"]: Refreshing state... [id=uvularia-site-template:enhancement]
github_issue_label.fleet["coderabbit:enhancement"]: Refreshing state... [id=coderabbit:enhancement]
github_issue_label.fleet["claytonia:documentation"]: Refreshing state... [id=claytonia:documentation]
github_issue_label.fleet["epigaea:question"]: Refreshing state... [id=epigaea:question]
github_issue_label.fleet["osmunda:wontfix"]: Refreshing state... [id=osmunda:wontfix]
github_issue_label.fleet["coderabbit:good first issue"]: Refreshing state... [id=coderabbit:good first issue]
github_issue_label.fleet["site-pondviewlane-com:help wanted"]: Refreshing state... [id=site-pondviewlane-com:help wanted]
github_issue_label.fleet["shared-workflows:good first issue"]: Refreshing state... [id=shared-workflows:good first issue]
github_issue_label.fleet["coderabbit:bug"]: Refreshing state... [id=coderabbit:bug]
github_issue_label.fleet["repo-template:bug"]: Refreshing state... [id=repo-template:bug]
github_issue_label.fleet["drosera:question"]: Refreshing state... [id=drosera:question]
github_issue_label.fleet["claytonia:help wanted"]: Refreshing state... [id=claytonia:help wanted]
github_issue_label.fleet["solidago:enhancement"]: Refreshing state... [id=solidago:enhancement]
github_issue_label.fleet["shared-workflows:help wanted"]: Refreshing state... [id=shared-workflows:help wanted]
github_issue_label.fleet["site-lentago-dev:wontfix"]: Refreshing state... [id=site-lentago-dev:wontfix]
github_issue_label.fleet["kalmia:documentation"]: Refreshing state... [id=kalmia:documentation]
github_issue_label.fleet["monarda:documentation"]: Refreshing state... [id=monarda:documentation]
github_issue_label.fleet["epigaea:good first issue"]: Refreshing state... [id=epigaea:good first issue]
github_issue_label.fleet["epigaea:duplicate"]: Refreshing state... [id=epigaea:duplicate]
github_issue_label.fleet["betula:duplicate"]: Refreshing state... [id=betula:duplicate]
github_issue_label.fleet["uvularia-site-template:duplicate"]: Refreshing state... [id=uvularia-site-template:duplicate]
github_issue_label.fleet["uvularia-demo-site:documentation"]: Refreshing state... [id=uvularia-demo-site:documentation]
github_issue_label.fleet["monarda:good first issue"]: Refreshing state... [id=monarda:good first issue]
github_issue_label.fleet["uvularia-demo-site:question"]: Refreshing state... [id=uvularia-demo-site:question]
github_issue_label.fleet["coderabbit:documentation"]: Refreshing state... [id=coderabbit:documentation]
github_issue_label.fleet["drosera:bug"]: Refreshing state... [id=drosera:bug]
github_issue_label.fleet["site-icecreamtofightwith-com:good first issue"]: Refreshing state... [id=site-icecreamtofightwith-com:good first issue]
github_issue_label.fleet["uvularia-demo-ask-rules:good first issue"]: Refreshing state... [id=uvularia-demo-ask-rules:good first issue]
github_issue_label.fleet["kalmia:enhancement"]: Refreshing state... [id=kalmia:enhancement]
github_issue_label.fleet["claytonia:good first issue"]: Refreshing state... [id=claytonia:good first issue]
github_issue_label.fleet["epigaea:invalid"]: Refreshing state... [id=epigaea:invalid]
github_issue_label.fleet["uvularia-demo-records:help wanted"]: Refreshing state... [id=uvularia-demo-records:help wanted]
github_issue_label.fleet["repo-template:good first issue"]: Refreshing state... [id=repo-template:good first issue]
github_issue_label.fleet["uvularia:enhancement"]: Refreshing state... [id=uvularia:enhancement]
github_issue_label.fleet["repo-template:help wanted"]: Refreshing state... [id=repo-template:help wanted]
github_issue_label.fleet["brasenia:bug"]: Refreshing state... [id=brasenia:bug]
github_issue_label.fleet["uvularia-rules-template:bug"]: Refreshing state... [id=uvularia-rules-template:bug]
github_issue_label.fleet["drosera:documentation"]: Refreshing state... [id=drosera:documentation]
github_issue_label.fleet["uvularia-records-template:good first issue"]: Refreshing state... [id=uvularia-records-template:good first issue]
github_issue_label.fleet["coderabbit:wontfix"]: Refreshing state... [id=coderabbit:wontfix]
github_issue_label.fleet["site-lentago-dev:invalid"]: Refreshing state... [id=site-lentago-dev:invalid]
github_issue_label.fleet["repo-template:enhancement"]: Refreshing state... [id=repo-template:enhancement]
github_issue_label.fleet["epigaea:enhancement"]: Refreshing state... [id=epigaea:enhancement]
github_issue_label.fleet["site-icecreamtofightwith-com:invalid"]: Refreshing state... [id=site-icecreamtofightwith-com:invalid]
github_issue_label.fleet["shared-workflows:documentation"]: Refreshing state... [id=shared-workflows:documentation]
github_issue_label.fleet["coderabbit:invalid"]: Refreshing state... [id=coderabbit:invalid]
github_issue_label.fleet["uvularia-site-template:invalid"]: Refreshing state... [id=uvularia-site-template:invalid]
github_issue_label.fleet["uvularia-demo-records:bug"]: Refreshing state... [id=uvularia-demo-records:bug]
github_issue_label.fleet["betula:wontfix"]: Refreshing state... [id=betula:wontfix]
github_issue_label.fleet["monarda:wontfix"]: Refreshing state... [id=monarda:wontfix]
github_issue_label.fleet["uvularia-rules-template:enhancement"]: Refreshing state... [id=uvularia-rules-template:enhancement]
github_issue_label.fleet["brasenia:documentation"]: Refreshing state... [id=brasenia:documentation]
github_issue_label.fleet["uvularia-demo-ask-rules:duplicate"]: Refreshing state... [id=uvularia-demo-ask-rules:duplicate]
github_issue_label.fleet[".github:invalid"]: Refreshing state... [id=.github:invalid]
github_issue_label.fleet[".github:wontfix"]: Refreshing state... [id=.github:wontfix]
github_issue_label.fleet["uvularia:good first issue"]: Refreshing state... [id=uvularia:good first issue]
github_issue_label.fleet["osmunda:invalid"]: Refreshing state... [id=osmunda:invalid]
github_issue_label.fleet["osmunda:duplicate"]: Refreshing state... [id=osmunda:duplicate]
github_issue_label.fleet["brasenia:wontfix"]: Refreshing state... [id=brasenia:wontfix]
github_issue_label.fleet["drosera:wontfix"]: Refreshing state... [id=drosera:wontfix]
github_issue_label.fleet["osmunda:bug"]: Refreshing state... [id=osmunda:bug]
github_issue_label.fleet["uvularia-records-template:enhancement"]: Refreshing state... [id=uvularia-records-template:enhancement]
github_issue_label.fleet["repo-template:question"]: Refreshing state... [id=repo-template:question]
github_issue_label.fleet["uvularia:wontfix"]: Refreshing state... [id=uvularia:wontfix]
github_issue_label.fleet["site-icecreamtofightwith-com:help wanted"]: Refreshing state... [id=site-icecreamtofightwith-com:help wanted]
github_issue_label.fleet["uvularia:duplicate"]: Refreshing state... [id=uvularia:duplicate]
github_issue_label.fleet["brasenia:good first issue"]: Refreshing state... [id=brasenia:good first issue]
github_issue_label.fleet["monarda:question"]: Refreshing state... [id=monarda:question]
github_issue_label.fleet["betula:documentation"]: Refreshing state... [id=betula:documentation]
github_issue_label.fleet["site-icecreamtofightwith-com:wontfix"]: Refreshing state... [id=site-icecreamtofightwith-com:wontfix]
github_issue_label.fleet["uvularia-demo-ask-rules:help wanted"]: Refreshing state... [id=uvularia-demo-ask-rules:help wanted]
github_issue_label.fleet["mitchella:wontfix"]: Refreshing state... [id=mitchella:wontfix]
github_issue_label.fleet["site-icecreamtofightwith-com:documentation"]: Refreshing state... [id=site-icecreamtofightwith-com:documentation]
github_issue_label.fleet["uvularia-demo-ask-rules:wontfix"]: Refreshing state... [id=uvularia-demo-ask-rules:wontfix]
github_issue_label.fleet["osmunda:enhancement"]: Refreshing state... [id=osmunda:enhancement]
github_issue_label.fleet["betula:bug"]: Refreshing state... [id=betula:bug]
github_issue_label.fleet["claytonia:wontfix"]: Refreshing state... [id=claytonia:wontfix]
github_issue_label.fleet["uvularia-demo-records:question"]: Refreshing state... [id=uvularia-demo-records:question]
github_issue_label.fleet["uvularia-rules-template:help wanted"]: Refreshing state... [id=uvularia-rules-template:help wanted]
github_issue_label.fleet["uvularia-rules-template:good first issue"]: Refreshing state... [id=uvularia-rules-template:good first issue]
github_issue_label.fleet["solidago:documentation"]: Refreshing state... [id=solidago:documentation]
github_issue_label.fleet["asclepias:duplicate"]: Refreshing state... [id=asclepias:duplicate]
github_issue_label.fleet["repo-template:duplicate"]: Refreshing state... [id=repo-template:duplicate]
github_issue_label.fleet["mitchella:documentation"]: Refreshing state... [id=mitchella:documentation]
github_issue_label.fleet["asclepias:documentation"]: Refreshing state... [id=asclepias:documentation]
github_issue_label.fleet["mitchella:help wanted"]: Refreshing state... [id=mitchella:help wanted]
github_issue_label.fleet["site-pondviewlane-com:question"]: Refreshing state... [id=site-pondviewlane-com:question]
github_issue_label.fleet["solidago:help wanted"]: Refreshing state... [id=solidago:help wanted]
github_issue_label.fleet["asclepias:question"]: Refreshing state... [id=asclepias:question]
github_issue_label.fleet["epigaea:model:haiku"]: Refreshing state... [id=epigaea:model:haiku]
github_issue_label.fleet["kalmia:duplicate"]: Refreshing state... [id=kalmia:duplicate]
github_issue_label.fleet["kalmia:bug"]: Refreshing state... [id=kalmia:bug]
github_issue_label.fleet["uvularia-demo-site:help wanted"]: Refreshing state... [id=uvularia-demo-site:help wanted]
github_issue_label.fleet["monarda:invalid"]: Refreshing state... [id=monarda:invalid]
github_issue_label.fleet["site-lentago-dev:question"]: Refreshing state... [id=site-lentago-dev:question]
github_issue_label.fleet["uvularia-rules-template:duplicate"]: Refreshing state... [id=uvularia-rules-template:duplicate]
github_issue_label.fleet["repo-template:invalid"]: Refreshing state... [id=repo-template:invalid]
github_issue_label.fleet["solidago:question"]: Refreshing state... [id=solidago:question]
github_issue_label.fleet["uvularia-records-template:bug"]: Refreshing state... [id=uvularia-records-template:bug]
github_issue_label.fleet["claytonia:invalid"]: Refreshing state... [id=claytonia:invalid]

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # github_repository_ruleset.main[".github"] will be updated in-place
  ~ resource "github_repository_ruleset" "main" {
        id          = "17933796"
        name        = "main"
        # (6 unchanged attributes hidden)

      ~ rules {
            # (7 unchanged attributes hidden)

          ~ required_status_checks {
              ~ strict_required_status_checks_policy = false -> true
                # (1 unchanged attribute hidden)

                # (5 unchanged blocks hidden)
            }

            # (1 unchanged block hidden)
        }

        # (1 unchanged block hidden)
    }

  # github_repository_ruleset.main["betula"] will be updated in-place
  ~ resource "github_repository_ruleset" "main" {
        id          = "14521264"
        name        = "main"
        # (6 unchanged attributes hidden)

      ~ rules {
            # (7 unchanged attributes hidden)

          ~ required_status_checks {
              ~ strict_required_status_checks_policy = false -> true
                # (1 unchanged attribute hidden)

                # (4 unchanged blocks hidden)
            }

            # (1 unchanged block hidden)
        }

        # (1 unchanged block hidden)
    }

  # github_repository_ruleset.main["claytonia"] will be updated in-place
  ~ resource "github_repository_ruleset" "main" {
        id          = "17713398"
        name        = "main"
        # (6 unchanged attributes hidden)

      ~ rules {
            # (7 unchanged attributes hidden)

          ~ required_status_checks {
              ~ strict_required_status_checks_policy = false -> true
                # (1 unchanged attribute hidden)

                # (5 unchanged blocks hidden)
            }

            # (1 unchanged block hidden)
        }

        # (1 unchanged block hidden)
    }

  # github_repository_ruleset.main["drosera"] will be updated in-place
  ~ resource "github_repository_ruleset" "main" {
        id          = "14522520"
        name        = "main"
        # (6 unchanged attributes hidden)

      ~ rules {
            # (7 unchanged attributes hidden)

          ~ required_status_checks {
              ~ strict_required_status_checks_policy = false -> true
                # (1 unchanged attribute hidden)

                # (4 unchanged blocks hidden)
            }

            # (1 unchanged block hidden)
        }

        # (1 unchanged block hidden)
    }

  # github_repository_ruleset.main["kalmia"] will be updated in-place
  ~ resource "github_repository_ruleset" "main" {
        id          = "18293648"
        name        = "main"
        # (6 unchanged attributes hidden)

      ~ rules {
            # (7 unchanged attributes hidden)

          ~ required_status_checks {
              ~ strict_required_status_checks_policy = false -> true
                # (1 unchanged attribute hidden)

                # (5 unchanged blocks hidden)
            }

            # (1 unchanged block hidden)
        }

        # (1 unchanged block hidden)
    }

Plan: 0 to add, 5 to change, 0 to destroy.

Warning: Argument is deprecated

  with github_repository.fleet,
  on repos.tf line 26, in resource "github_repository" "fleet":
  26:   vulnerability_alerts = true

Use the github_repository_vulnerability_alerts resource instead. This field
will be removed in a future version.

─────────────────────────────────────────────────────────────────────────────

Saved the plan to: tfplan

To perform exactly these actions, run the following command to apply:
    terraform apply "tfplan"

@cpitzi
cpitzi enabled auto-merge (squash) October 13, 2026 22:48
@cpitzi
cpitzi merged commit 5993e49 into main Oct 13, 2026
11 checks passed
@cpitzi
cpitzi deleted the feat/strict-checks-ci-enforced branch October 13, 2026 22:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Decide: require PR branches to be up to date before merge (ruleset strict checks)

1 participant