Skip to content

deps(main): consolidate dependency updates and security fixes - #378

Merged
pacphi merged 2 commits into
mainfrom
chore/deps-consolidate-341-375
Oct 23, 2026
Merged

pacphi merged 2 commits into
mainfrom
chore/deps-consolidate-341-375

Conversation

@pacphi

@pacphi pacphi commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

Summary

Consolidates the open GitHub Actions dependency PRs that target main into one change. main holds no product code, so Actions majors are taken here when CI passes. Every reference to each action moves together, including the composite actions under .github/actions/, so no reference is left on an older major.

Action / tool From To Published Refs
actions/checkout v6.0.2 v7.0.1 (3d3c42e5… for SHA pins) 2026-07-20 113 tag + 8 SHA
actions/cache v5.0.5, floating v5 v6.1.0 (55cc8345…) 2026-06-26 6 tag + 4 SHA + 2 floating (.github/actions/shared/build-image, .github/actions/v3/setup-rust)
actions/download-artifact v8.0.1, floating v7 v8.0.2 (9000827c…) 2026-10-07 30 tag + 4 SHA + 1 floating (.github/actions/shared/deploy-provider)
codecov/codecov-action floating v6 v7.1.1 2026-09-17 2 (ci-v3.yml)
hashicorp/setup-packer v3.2.0 v3.4.0 2026-06-23 7
cargo-bins/cargo-binstall v1.19.1 v1.26.0 (newer than #354's v1.20.1) 2026-10-17 3 (ci-v3.yml)
pnpm (_ci-npm.yml, pnpm/action-setup version:) 9 12.14.0 2026-10-15 1

I checked each SHA pin against its tag with gh api repos/<action>/git/ref/tags/<tag>.

Superseded PRs

Dependabot (to close with "Superseded by #N." after merge):

PR Bump Taken here
#341 codecov/codecov-action 6 → 7 v7.1.1
#354 cargo-bins/cargo-binstall 1.19.1 → 1.20.1 v1.26.0
#355 actions/checkout 6.0.2 → 7.0.0 v7.0.1
#360 actions/cache 5.0.5 → 6.1.0 v6.1.0
#361 hashicorp/setup-packer 3.2.0 → 3.4.0 v3.4.0

Renovate (covered by this PR; leave them for Renovate to autoclose, don't close them by hand):

PR Bump Taken here
#374 [security] pnpm 9 → 12 12.14.0 (exact pin)
#375 actions/download-artifact 8.0.1 → 8.0.2 v8.0.2

Deferred majors

None. Actions majors are allowed on main.

Breaking-change review of the majors taken (from each action.yml diff and the release notes):

  • checkout v7: ESM rewrite. It refuses to check out fork-PR code under pull_request_target/workflow_run unless allow-unsafe-pr-checkout: true is set. The only workflow_run workflow, v3-packer-test.yml, uses bare actions/checkout with no ref:, so it checks out the base repo and isn't affected. v7.0.1 also skips that check when inputs are left at their defaults. No workflow uses pull_request_target.
  • cache v6: ESM and package updates. Inputs are unchanged.
  • download-artifact v7 → v8 (one composite action): ESM rewrite, and a digest mismatch is now an error by default. The rest of the repo was already on v8.0.1.
  • codecov v7: @v6 was a dead line (v6.0.2 is a copy of v7.0.0). The only new input is cleanup (default false).
  • setup-packer 3.4.0: moves to the node24 runtime. Every runner is GitHub-hosted (ubuntu-latest, windows-latest, ubuntu-26.04-arm).
  • pnpm 12: engines.node >=18, which matches _ci-npm.yml's Node 20 default. pnpm/action-setup@v6 (v6.1.0) supports pnpm 12.

Release age (3 days)

Every version above is at least 3 days old. pnpm is pinned to 12.14.0, not a floating 12, because a floating 12 currently resolves to 12.15.0 (published 2026-10-21T11:16Z, under 3 days old). Release-age exceptions: none.

Overrides and ignores

None.

Security

  • pnpm 9 (latest 9.15.9) is affected by GHSA-8cc4-rfj6-fhg4 (fixed in 10.0.0) and by the 2026 pnpm advisories (fixed in 10.26.0 to 10.34.5), none of which have a 9.x fix. pnpm 12.14.0 is outside every published range.
  • GitHub advisories for the bumped actions (/advisories?ecosystem=actions): the only one is GHSA-cxww-7g56-2vh6 (download-artifact < 4.1.3), which doesn't apply.
  • Audit counts: N/A. main has no lockfiles (no Cargo.lock, package-lock.json or pnpm-lock.yaml).

Pre-existing issues (not fixed here, unchanged by this PR)

actionlint reports the same 4 findings before and after this change:

  • ci-v2.yml:86, ci-v3.yml:213, v2-manual-deploy.yml:173 read steps.*.outputs.tag, which isn't a declared output.
  • monitor-ubuntu-2604-arm.yml:27 uses the unknown label ubuntu-26.04-arm; that scheduled workflow already fails on main.

The "Pinned action SHAs" comment header in registry-core-publish.yml was already out of date: it lists v4-era SHAs that the file no longer uses. I left it alone rather than update part of it.

_ci-npm.yml has no callers on main (its header says ci-v3.yml uses it, but ci-v3.yml only calls _ci-rust.yml), so the pnpm pin has no CI effect today.

Verification

  • actionlint -shellcheck= -pyflakes= (1.7.12): exit 1 both before and after, with the same 4 pre-existing findings. The change adds none.
  • yamllint -c .yamllint.yml <changed files>: exit 0. (.prettierignore excludes **/*.yml.)
  • Inventory after the change: grep -rhoE "(actions/checkout|actions/cache|hashicorp/setup-packer|cargo-bins/cargo-binstall|codecov/codecov-action|actions/download-artifact)@…" .github. Only the target versions remain. The leftover @v4 hits are in the out-of-date comment header noted above.
  • CI on this PR: 15/15 checks SUCCESS at head ebf1236 (Validate YAML, Validate Markdown, Validate Shell).
  • gh workflow run check-links.yml --ref chore/deps-consolidate-341-375 (run 39994228338) passed. Its log shows Download action repository 'actions/checkout@v7.0.1' (SHA:3d3c42e5…) and 'actions/cache@v6.1.0' (SHA:55cc8345…).
  • gh api repos/pacphi/sindri/dependabot/alerts?state=open: no open alerts.
  • No git hooks ran. The clone has no core.hooksPath and no root package.json, so .husky/pre-commit isn't wired. Its checks apply only to v3//v4/ files anyway.

What runs only after merge

The v1–v4 shim workflows call pacphi/sindri/.github/workflows/ci-vN.yml@main, so this PR's own CI can't exercise codecov v7.1.1, cargo-binstall v1.26.0, download-artifact v8.0.2, setup-packer v3.4.0 or the pnpm pin. Their first real run is the next v3/v4 CI run after merge. After merging, re-run CI on the open v3/v4 PRs, or update their branches. v3.1.x and v2.5.x carry their own workflow copies and aren't affected.

🤖 Generated with Claude Code

…#375)

- actions/checkout v6.0.2 -> v7.0.1 (tags and SHA pins)
- actions/cache v5.0.5 / v5 -> v6.1.0 (tags and SHA pins)
- actions/download-artifact v8.0.1 / v7 -> v8.0.2 (tags and SHA pins)
- codecov/codecov-action v6 -> v7.1.1
- hashicorp/setup-packer v3.2.0 -> v3.4.0
- cargo-bins/cargo-binstall v1.19.1 -> v1.26.0

Every reference to each action moves together, including the composite
actions under .github/actions. All releases are at least 3 days old.
pnpm 9 is affected by GHSA-8cc4-rfj6-fhg4 and later pnpm advisories with
no 9.x fix. 12.14.0 (2026-10-15) is the newest 12.x past the 3-day
release-age gate; a floating `12` would resolve to 12.15.0 (2026-10-21).
@pacphi
pacphi merged commit ff3465b into main Oct 23, 2026
18 checks passed
@pacphi
pacphi deleted the chore/deps-consolidate-341-375 branch October 23, 2026 17:25
pacphi added a commit that referenced this pull request Oct 23, 2026
* deps(v2): clear vf-management-api npm advisories in-major; bump yq and gh in the image

vf-management-api (the v2 line's only package-lock.json):
- fastify ^5.8.5 -> ^5.12.7 (locked 5.12.7); fixes 7 fastify GHSAs.
- In-range lock refresh, cut off at 2026-10-20T17:15Z (3-day release age):
  find-my-way 9.4.0 -> 9.10.0, fast-uri 3.1.0 -> 3.1.9 (ajv) / 4.2.3 (fastify 5.12),
  ws 8.19.0 -> 8.22.0, brace-expansion 5.0.5 -> 5.0.12, minimatch 10.2.4 -> 10.2.6,
  fast-copy 3.0.2 -> 3.1.0.
- npm audit: 9 (6 high, 3 moderate) -> 3 (1 high, 2 moderate); the remaining high
  (@fastify/static via @fastify/swagger-ui 3) needs majors and is excepted in v2/audit-ignore.

v2/Dockerfile:
- yq 4.53.2 -> 4.54.1 and gh 2.90.0 -> 2.102.0 (same majors, both >= 3 days old). Both
  were built with Go 1.26.2, which Trivy flags (CVE-2026-33811/-33814/-39820/-39836/-42499
  high); gh 2.102.0 also clears GHSA-8xvp-7hj6-mcj9 (high, < 2.93.0) and in-toto
  GHSA-pmwq-pjrm-6p5r.

* ci(v2): add a branch-local npm audit gate

Adds an npm-audit job to the v2 CI shim. It runs .github/scripts/v2/npm-audit.sh, which
runs `npm audit --audit-level=high` on every committed package-lock.json and fails on any
high or critical advisory not excepted in v2/audit-ignore. It fails closed when npm audit
returns an error body (registry timeout) and flags exceptions that no longer match.

The centralized ci-v2.yml on main is unchanged; its Trivy image scan still runs.

* chore(v2): add branch-local renovate.json for useBaseBranchConfig

main's renovate.json will set useBaseBranchConfig: "merge", which needs a config file on every base branch. Shared policy stays on main.

* ci(v2): re-run CI on main's updated reusable workflows (#378)
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.

1 participant