VCST-5054: Node dependencies actualization#241
Open
AndrewEhlo wants to merge 18 commits into
Open
Conversation
…ata; fix injections vulnarabilities in workflows
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 2 total unresolved issues (including 1 from previous review).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 9eb3075. Configure here.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Stands up an ncc-based build pipeline and end-to-end Dependabot integration for the bundled Node actions in this repo, replacing the manual "rebuild
dist/on a developer machine" workflow. Originating signal: a recentpublish-artifact-linkinvocation crashed with an unhandled-rejection stack trace on a transient GitHub 502, surfacing the broader problem that npm dependencies across actions had been drifting freely (@actions/githubversions ranged from^3.0.0to^8.0.0) with no signal that anything was outdated, no guard against committingsrc/without a matchingdist/rebuild, and no automation to keep them current.What lands on master
npm run build(ncc 0.38.4) added to 35 actions; everydist/regenerated as a one-shot baseline reset.publish-artifact-linkis the canonical template documented in README.md..github/dependabot.yml— npm ecosystem entry across all action directories. Minor+patch grouped per action; majors individual; 10-PR open limit..github/workflows/check-dist.yml— on every PR touching*/src/**,*/index.js,*/package.json,*/package-lock.json, or*/tsconfig.json: rebuilds the affected actions'dist/and fails the PR if it differs from what's committed. Drift guard against "editedsrc/but forgot to rebuild" and silent dep drift..github/workflows/dependabot-rebuild.yml— on Dependabot npm PRs: regeneratesdist/and pushes back to the PR branch socheck-distpasses without a maintainer runningnpm run buildlocally.gh-deployments—@vercel/nccbumped0.33.1→^0.38.0(old version failedERR_OSSL_EVP_UNSUPPORTEDon modern Node) and apackage-lock.jsoncommitted for the first time.changelog-generator—package-lock.jsoncommitted for the first time (was previously blocked by apackage-lock.jsonentry in root.gitignore).create-deploy-pr— missingjs-yamlruntime dep added; bundle rebuilt. Was de-synced fromsrc/index.tsimports..gitignore— three stale entries removed (package-lock.json,**/dist/index.js.map,**/dist/LICENSES) that conflicted with the new pipeline. Un-ignores added for the 9 legacy unbundled actions whose committednode_modules/ships as the deployment artifact..gitattributes— enforces LF on**/dist/**to prevent Windows checkouts from producing phantom diffs against bundles emitted by ncc.node_modules/detracked from 18 bundled-action directories where it had been committed despite already being gitignored. Bulk of the deletion count comes from here (~10 400 files).check-distmechanics, how to add a new bundled action, and the legacy-unbundled list with the migration recipe pointer.Action coverage matrix
src/index.ts)dist/rebuilt,node_modules/detrackedcheck-dist+ auto-rebuildchangelog-generator)dist/rebuiltgh-deployments,src/main.ts)dist/rebuiltindex.js+ trackednode_modules/)::notice::log. Maintainer mustnpm installlocally and commitnode_modules/. Migration to ncc is the follow-up.package.json(docker-install-theme)Diff scale
Large by line count, narrow by intent:
node_modules/detracked from 18 directories.git diff --statis dominated by the samenode_modules/move (and the few legacy bundles that ship their tree)..github/, root config files, and per-actionpackage.json+dist/index.js.Test plan
pin-checkpasses on the new workflow filescheck-distruns and passes on this PR (proves the workflow itself executes and the 35 committed bundles match CI's rebuild)publish-artifact-link/src/index.tswithout rebuildingdist/; confirmcheck-distfails with the stale-bundle error; rebuild, confirm it passesvc-module-*dev workflow'suses:to this PR's head SHA forpublish-artifact-linkand one docker-* action; trigger a real run; confirm green; revert the pin before mergedependabot-rebuildregeneratesdist/, andcheck-distthen passes without manual intervention::notice::pathOut of scope, tracked separately
docker-install-themereconstruction (missingpackage.jsonentirely).@v1major-version tag so consumers stop referencing@master).Reviewer notes
The diff is large because of the one-shot baseline
dist/rebuild and thenode_modules/detrack — both intentional, neither will recur. Focus areas:Note
Medium Risk
dependabot-rebuildusespull_request_targetwithcontents: writeand a PAT to push to PR branches; guards (author login, SHA pin, env indirection) reduce but do not eliminate supply-chain workflow risk. Runtime behavior of all regenerated action bundles changes when merged.Overview
Introduces an ncc-based build contract for bundled Node actions: committed
dist/index.jsmust matchnpm ci && npm run build, with Dependabot npm keeping lockfiles current and automation so PRs do not merge stale bundles.CI and config: Adds
check-dist(rebuild affected actions on PRs touching source/deps, smoke-requirethe bundle, diff onlydist/index.js+ license files) anddependabot-rebuild(pull_request_target, author-gated todependabot[bot], checkout pinned tohead.sha, push rebuiltdist/viaREPO_TOKEN). Extends Dependabot with weekly npm updates per top-level action directory (grouped minor/patch, 10 open PR cap)..gitattributesforces LF on*/dist/**;.gitignorestops ignoring lockfiles/dist maps, ignores.env, and re-includesnode_modules/only for nine legacy unbundled actions.remove-filejob is restricted toworkflow_dispatch.Contributor docs: README documents bundled vs legacy layouts, local rebuild with
npm ci, and how the two workflows interact.Action hygiene (bulk of the diff, not all shown in the snippet): Standardizes
npm run build+ regenerateddist/across bundled actions, detracks mistakenly committednode_modules/, commits missing lockfiles, and fixes targeted dep/bundle gaps (e.g.create-deploy-pr/js-yaml,gh-deploymentsncc on modern Node).Reviewed by Cursor Bugbot for commit d3589cc. Bugbot is set up for automated code reviews on this repo. Configure here.