chore(ci): pin and refresh workflow dependencies, sync lockfile, and enforce preflight drift checks#1617
Conversation
Agent-Logs-Url: https://github.com/jaypatrick/adblock-compiler/sessions/62375fab-a215-48b2-bbfb-00d558cbe400 Co-authored-by: jaypatrick <1800595+jaypatrick@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR updates GitHub Actions workflow dependencies by upgrading selected actions and replacing floating uses: ...@v* references with full SHA pins plus inline version annotations, aiming to improve supply-chain safety without changing workflow logic.
Changes:
- Upgraded targeted GitHub Actions (e.g., artifact, cache, pnpm, docker, CodeQL) and pinned
uses:to full commit SHAs. - Removed floating refs in the touched workflows and refreshed/normalized inline version comments.
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/bench.yml | Bumps/pins actions/upload-artifact to v7.0.1 SHA. |
| .github/workflows/ci.yml | Pins codeql-action/upload-sarif to v3.35.2 SHA and bumps/pins upload-artifact to v7.0.1 SHA. |
| .github/workflows/claude.yml | Pins actions/checkout to v6.0.2 SHA. |
| .github/workflows/cleanup-branches.yml | Pins actions/github-script to v9.0.0 SHA. |
| .github/workflows/cloudflare-dep-update.yml | Pins setup-deno and updates/pins pnpm/action-setup annotation to v5.0.0. |
| .github/workflows/codeql.yml | Pins codeql-action init/analyze steps to v3.35.2 SHA. |
| .github/workflows/create-version-tag.yml | Pins setup-deno to v2.0.4 SHA. |
| .github/workflows/db-migrate.yml | Updates actions/github-script annotation to v9.0.0 for the existing SHA pin. |
| .github/workflows/docker-publish.yml | Updates/pins docker/login-action and docker/build-push-action to newer SHAs. |
| .github/workflows/frontend-version-bump.yml | Updates/pins pnpm/action-setup to v5.0.0 SHA. |
| .github/workflows/lighthouse.yml | Updates/pins pnpm/action-setup to v5.0.0 SHA and upload-artifact to v7.0.1 SHA. |
| .github/workflows/mdbook.yml | Pins setup-deno to v2.0.4 SHA and updates/pins actions/cache to v5.0.5 SHA. |
| .github/workflows/neon-branch-cleanup.yml | Pins neondatabase/delete-branch-action to v3.2.1 SHA. |
| .github/workflows/neon-branch-create.yml | Pins actions/checkout, neondatabase/create-branch-action, and actions/github-script to SHAs. |
| .github/workflows/release.yml | Pins multiple actions (checkout, setup-deno, cache, docker actions, download/upload artifact) and updates action-gh-release annotation. |
| .github/workflows/sentry-frontend.yml | Updates/pins pnpm/action-setup to v5.0.0 SHA. |
| .github/workflows/sentry-worker.yml | Pins setup-deno to v2.0.4 SHA. |
| .github/workflows/version-bump.yml | Pins actions/checkout, setup-deno, and actions/github-script to SHAs. |
|
@copilot apply changes based on the comments in this thread |
Agent-Logs-Url: https://github.com/jaypatrick/adblock-compiler/sessions/8c5b6154-cb06-4e2c-bb2b-f4a0916bbdab Co-authored-by: jaypatrick <1800595+jaypatrick@users.noreply.github.com>
Applied in commit |
|
@copilot fix CI |
|
@copilot make sure setup:hooks is run to catch drift automatically as well. Run pnpm install --frozen-lockfile --ignore-scripts || { Note that in CI environments this setting is true by default. If you still need to run install in such cases, use "pnpm install --no-frozen-lockfile" Failure reason:
❌ pnpm-lock.yaml is out of sync with package.json! Run 'pnpm install' locally, commit the updated pnpm-lock.yaml, and push again. |
Agent-Logs-Url: https://github.com/jaypatrick/adblock-compiler/sessions/576459d4-0410-4b16-a3cf-7057322c0105 Co-authored-by: jaypatrick <1800595+jaypatrick@users.noreply.github.com>
Fixed in |
Agent-Logs-Url: https://github.com/jaypatrick/adblock-compiler/sessions/b6205f1b-5607-4fcb-a762-ae9d87bee40f Co-authored-by: jaypatrick <1800595+jaypatrick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/jaypatrick/adblock-compiler/sessions/b6205f1b-5607-4fcb-a762-ae9d87bee40f Co-authored-by: jaypatrick <1800595+jaypatrick@users.noreply.github.com>
Implemented in |
Description
Refresh workflow action dependencies to current stable releases, eliminate floating refs by SHA-pinning targeted
uses:entries, fix stale inline version annotations, resolve lockfile drift failures, and ensure local pre-push hooks catch lockfile drift automatically.Changes
Dependency upgrades + SHA pinning (workflow-only)
actions/upload-artifact→v7.0.1actions/download-artifact→v8.0.1actions/cache→v5.0.5denoland/setup-deno→v2.0.4pnpm/action-setup→v5.0.0docker/login-action→v4.1.0docker/build-push-action→v7.1.0docker/setup-qemu-action→v4.0.0actions/github-script→v9.0.0pingithub/codeql-action(init,analyze,upload-sarif) →v3.35.2neondatabase/delete-branch-action→v3.2.1neondatabase/create-branch-action→v6.4.0Floating reference remediation
@vX/@vX.Y.Z) in targeted workflows with 40-char SHA pins plus inline version comments.Version-comment hygiene
softprops/action-gh-releasepin provenance inrelease.yml(pinned tov3.0.0SHA, with note thatv2resolves elsewhere).CI lockfile drift fix
pnpm-lock.yamlwith workspace manifests.examples/cloudflare-workerimporter lock entry to matchwranglerspecifier^4.83.0, removing stale4.82.xlock references that broke frozen-lockfile installs.Pre-push drift guard enhancement
check:lockfiletask indeno.json:pnpm install --frozen-lockfile --ignore-scriptspreflightto rundeno task check:lockfile, sodeno task setup:hookspre-push checks now catch lockfile drift automatically.scripts/setup-hooks.tspre-push messaging to explicitly include lockfile sync checking.Scope guardrails preserved
DENO_VERSION: '2.7.11'inci.ymlandwrangler@4.81.0inmdbook.yml).Testing
Zero Trust Architecture Checklist
Worker / Backend
*) on write/authenticated endpoints (N/A)[vars]) (N/A).prepare().bind()(no string interpolation) (N/A)Frontend / Angular
CanActivateFnauth guards (N/A)localStorage) (N/A)API Shield / Vulnerability Scanner
operationIdinopenapi.yaml(N/A)/{id}path parameters) include asecurity:annotation (N/A)WHERE user_id = ?) — not just by ID (N/A)404(not403) to avoid leaking resource existence (N/A)cloudflare-schema.yamlregenerated ifopenapi.yamlchanged (deno task schema:cloudflare) (N/A)If this PR does not touch
worker/orfrontend/, the ZTA checklist is not required.If this PR does not touch
openapi.yamlor resource handlers, the API Shield checklist is not required.Original prompt
Overview
Update all GitHub Actions workflows to use the latest stable versions of their action dependencies, fix floating (non-SHA-pinned) action references for security, correct stale version-comment annotations, and upgrade several actions that are behind by a major or minor version.
Do not change any business logic, deployment targets, thresholds, paths filters, or step behaviour. This is a dependency-hygiene-only PR.
Research summary
All findings are from the GitHub Releases API as of 2026-04-16. The current state of each action in this repo is listed with the required change.
Actions at the correct version — verify SHA is still current
actions/checkoutde0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2actions/setup-node53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0actions/setup-pythona309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0codecov/codecov-action57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0aquasecurity/trivy-action57a97c7e7821a5776cebc9bb87c984fa69cba8f1 # 0.35.0rhysd/actionlint914e7df21a07ef503a81201c76d2b11c789d3fca # v1.7.12dorny/paths-filterfbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1docker/setup-buildx-action4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0docker/metadata-action030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0sigstore/cosign-installercad07c2e89fa2edd6e2d7bab4c1aa38e53f76003 # v4.1.1Actions that need upgrading (version behind)
actions/upload-artifactbbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0ci.yml,bench.yml,lighthouse.ymlactions/download-artifact@v8(floating!)release.ymlactions/cache@v5(floating!)release.ymldenoland/setup-deno667a34cdef165d8d2b2e98dde39547c9daac7282 # v2/e95548e56dfa95d4e1a28d6f422fafe75c4c26fb # v2.0.3cloudflare-dep-update.yml,create-version-tag.yml,sentry-worker.yml,version-bump.yml,release.yml(floating@v2)pnpm/action-setup08c4be7e2e672a47d11bd04269e27e5f3e8529cb # v4/fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4cloudflare-dep-update.yml,frontend-version-bump.yml,lighthouse.yml,sentry-frontend.yml,neon-branch-create.ymldocker/login-actionb45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0docker-publish.ymldocker/build-push-actiond08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0docker-publish.ymldocker/setup-qemu-action@v4(floating!)release.ymlsoftprops/action-gh-releaseb4309332981a82ec1c5618f44dd2e27cc8bfbfda # v2release.ymlactions/github-script@v9(floating!) and3a2844b7e9c422d3c10d287c895573f7108da1b3 # v7(old)cleanup-branches.yml,version-bump.yml,neon-branch-create.yml,db-migrate.ymlneondatabase/create-branch-action@v6(floating!)neon-branch-create.ymlneondatabase/delete-branch-actionc2005bb7d7caeba12ba3ec63857e9c9f9a4d695a(no version comment)neon-branch-cleanup.ymlgithub/codeql-actiondd677812177e0c29f9c970a6c58d8607ae1bfefd # v4ci.yml,codeql.ymlFloating tags that need SHA-pinning (security — supply-chain risk)
All
@vXor@vX.Y.Zfloating-tag references (no SHA) must be replaced with the full-length commit SHA of the corresponding tag, followed by the version comment. These are in:release.yml:actions/checkout@v6.0.2,actions/cache@v5,docker/setup-qemu-action@v4,docker/setup-buildx-action@v4,docker/login-action@v4,docker/build-push-action@v7,actions/download-artifact@v8,denoland/setup-deno@v2(via667a34cdef...) anddenoland/setup-deno@... # v2(floating comment). Use SHA pins instead.version-bump.yml:actions/checkout@v6.0.2(floating)claude.yml:actions/checkout@v6.0.2(floating) — already at latest version but unpinneon-branch-create.yml:actions/checkout@v6.0.2(floating),neondatabase/create-branch-action@v6(floating)cleanup-branches.yml:actions/github-script@v9(floating)This pull request was created from Copilot chat.