Skip to content

fix: require review for GitHub Actions minor/patch updates - #1146

Open
Danathar wants to merge 1 commit into
mainfrom
fix/1074-github-actions-review-gate
Open

Danathar wants to merge 1 commit into
mainfrom
fix/1074-github-actions-review-gate

Conversation

@Danathar

@Danathar Danathar commented Sep 19, 2026

Copy link
Copy Markdown

Closes #1074

Summary

  • Add a final repository package rule that disables automerge for github-actions minor and patch updates.
  • Keep the existing digest/pin automation and non-GitHub-Actions minor/patch automation.
  • Add static regression coverage for rule ordering and values.
  • Document package-rule precedence and grouped-branch automerge behavior.

Effective behavior before

The inherited projectbluefin/renovate-config rules automerged digest, pin, patch, and minor updates, including a GitHub Actions non-major grouping rule and a separate projectbluefin/actions automerge rule. common/renovate.json then enabled GitHub-native platform automerge for the same update types. The current open Renovate PR #1144 has the inherited github-actions (non-major) group name and reports Automerge: Enabled, confirming that the inherited layer is active.

Renovate's live config filename order is renovate.json, then .github/renovate.json, .github/renovate.jsonc, and .github/renovate.json5; it stops at the first existing file. Therefore the root renovate.json is the active repository config. A live Renovate run on this repository reports managers dockerfile (1 file / 9 dependencies), github-actions (11 / 40), and renovate-config; it reports no custom.regex manager. If .github/renovate.json5 were active, its enabledManagers: ["github-actions", "custom.regex"] would also disable the observed dockerfile manager.

This makes .github/renovate.json5 a real tracking gap, not just duplicate configuration: its two custom.regex managers are inactive, so the wallpaper COPY --from= digest and BONEDIGGER_VERSION pins are not being tracked even though docs/skills/ci-tooling/references/renovate-and-tools.md says they are. Its stale GitHub Actions automerge rule would also re-arm if the root file were removed or config selection changed.

This PR intentionally leaves that separate configuration repair out of #1074. Open issue #1147 owns the concrete common fix. #433 was closed as completed after its custom-manager remediation was added to the inactive .github/renovate.json5; the wallpaper-digest part of that remediation therefore never took effect. #1147 explicitly supersedes that incomplete result and should determine whether #433 is reopened. The broader audit RFC #1103 records this as evidence for its organization-wide proposal, but does not replace the repository-specific repair.

Rule interaction and fix

Renovate evaluates all matching packageRules entries in order; later entries override earlier values. The new rule is last in common/renovate.json, matches github-actions plus minor/patch, and sets automerge: false. It therefore overrides both inherited GitHub Actions automerge rules and the local broad automerge rule.

The rule intentionally also gates projectbluefin/actions. The issue targets the github-actions manager, and no approved policy exception exists for first-party actions. Digest and pin automation remains the safe content-addressed path.

The inherited github-actions (non-major) grouping remains intact. Renovate computes branch automerge as the logical AND of the grouped upgrades' automerge values, so a mixed digest plus minor/patch group waits for human review as a whole; digest-only groups continue to automerge.

Result

  • GitHub Actions minor updates: human review required.
  • GitHub Actions patch updates: human review required.
  • GitHub Actions digest and pin updates: continue to automerge.
  • Non-GitHub-Actions digest, pin, patch, and minor updates: retain existing automerge behavior.
  • Major updates: continue to require human review.

Validation

  • npx --yes --package renovate@44.101.3 renovate-config-validator --strict --no-global renovate.json
  • just check
  • uv run --with pytest pytest tests/test_renovate_config.py -q
  • PATH=/tmp/omp-precommit/bin:$PATH PYTHONPATH=/tmp/omp-precommit/lib/python3.14/site-packages uvx pre-commit run --all-files
  • git diff --check
  • Renovate package-rule evaluation against the live inherited configuration and local configuration: minor/patch actions resolve to automerge: false, digest/pin actions resolve to automerge: true, projectbluefin/actions minor resolves to false, and an npm minor remains true.

@Danathar
Danathar requested review from a team and repires as code owners September 19, 2026 01:19
@Danathar
Danathar marked this pull request as draft September 19, 2026 01:19
Require human review for GitHub Actions minor and patch updates while preserving digest and pin automerge. Keep first-party actions behind the same review gate because the issue targets the github-actions manager and no approved exception exists. Closes #1074.\n\nAssisted-by: GPT-5.6-Luna via GitHub Copilot\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Danathar
Danathar force-pushed the fix/1074-github-actions-review-gate branch from 62f070d to 9d18459 Compare September 19, 2026 01:23
@Danathar
Danathar marked this pull request as ready for review September 19, 2026 01:39

@kubestellar-hive kubestellar-hive Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed — no findings from this perspective.

— hive: agent=reviewer backend=copilot model=claude-fable-5 copilot=1.0.78

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.

[sec-check] renovate.json — no human-review gate for GitHub Actions minor/patch automerge

1 participant