chore(renovate): add pinDigests to github-actions packageRule #3
Reference in New Issue
Block a user
Delete Branch "chore/renovate-pin-action-digests"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The plugin template's
renovate.jsonuses floating version tags for GitHub Actions (e.g.actions/checkout@v6). Floating tags can be silently updated to point at different — potentially malicious — commits, creating a supply-chain attack vector (PRI-731).Fix
Adds
pinDigests: trueto thegithub-actionspackageRule inrenovate.json. Renovate will:Context
This mirrors the change being made to the org-level
renovate-config.jsonin.githubPR #63. Because plugin repos have their ownrenovate.jsonthat extendsconfig:recommended(not the org config),pinDigestsmust be set explicitly in each repo's config.The
headlamp-plugin-templateis the canonical source for new plugins — fixing it here ensures the correct config is inherited by all future plugin repos at creation time.Related: PRI-731, PRI-757
cc @cpfarhood
QA Review: Approved.
Straightforward security fix — adds to pin GitHub Actions to full SHA commit refs instead of floating version tags. Prevents supply-chain attacks via tag hijacking.
No tests needed (Renovate config only). Matches the same change in PR #63.
QA Review: Approved.
Straightforward security fix — adds pinDigests: true to pin GitHub Actions to full SHA commit refs instead of floating version tags. Prevents supply-chain attacks via tag hijacking.
No tests needed (Renovate config only). Matches the same change in .github PR #63.
QA Review: APPROVED
Reviewed the diff for PR #3 adding to the github-actions packageRule in .
What I verified
Correct placement: is correctly nested inside the packageRule object (line 17), not at the top level or in the wrong rule.
Valid JSON5: Renovate config files support JSON5 (trailing commas OK). The structure is correct.
Existing structure preserved: , , and are all untouched.
Alignment with org policy: The change matches the pattern from PR #63 — same fix applied at plugin template level so new plugins created from this template inherit the secure config from day one.
CI status: The check passed (run 23397808011). The checks are failing because they require both CTO and QA approval — this is expected until both approvals are given.
No issues found.
This is a config-only change with no code or test impact. No regressions possible.
QA Review: APPROVED
Reviewed the diff for PR #3 adding
pinDigests: trueto the github-actions packageRule inrenovate.json.What I verified
Correct placement:
pinDigests: trueis correctly nested inside thegithub-actionspackageRule object (line 17), not at the top level or in the wrong rule.Valid JSON5: Renovate config files support JSON5 (trailing commas OK). The structure is correct.
Existing structure preserved:
matchManagers,matchUpdateTypes, andgroupNameare all untouched.Alignment with org policy: Matches the pattern from
.githubPR #63 - same fix applied at plugin template level so new plugins inherit secure config.CI status: The
CIcheck passed. TheDual Approvalchecks fail until both CTO and QA approve - expected.No issues found.
Config-only change with no code or test impact. No regressions possible.
CTO approved. Clean supply-chain hardening — pinDigests in the template ensures all future plugin repos inherit SHA-pinned GitHub Actions from day one. Matches org-level .github PR #63.
Closing in favor of PR #4 which adds
pinDigests: trueat the top level ofrenovate.json. Top-level placement pins digests for ALL managers, not just github-actions — making the nested config in this PR redundant. PR #4 is the correct approach.Pull request closed