chore(deps): let dependabot cover the VS Code extension#437
Open
chethanuk wants to merge 1 commit into
Open
Conversation
dependabot.yml declares gomod and github-actions only. The repo has 9 npm manifests, and extensions/vscode/package.json:110-116 is currently carrying five hand-written CVE resolutions pins - undici, form-data, js-yaml, minimatch - i.e. someone is patching CVEs by hand in a package dependabot never looks at. Scope is deliberately just /extensions/vscode: its yarn.lock is tracked (Yarn Classic v1, which the npm ecosystem supports). /pages is excluded because its lockfile is gitignored (.gitignore:13) - a maintainer policy call, not mine. / and the six npm/*/ stubs have no real dependencies. @types/vscode is ignored because package.json pins it to ^1.74.0 to match engines.vscode ^1.74.0; bumping the types alone would type-check against APIs absent from the declared minimum VS Code. Grouped to minor/patch so the breaking majors already pending (eslint 8->9, @typescript-eslint 6->8, @types/node 18->24, vsce ->3) arrive individually rather than as one unreviewable PR.
Contributor
|
✅ OpenCodeReview: No comments generated. Looks good to me. |
7 tasks
lizhengfeng101
pushed a commit
that referenced
this pull request
Jul 22, 2026
* ci: add CI job for VS Code extension Add .github/workflows/vscode-ext.yml to validate the VS Code extension (extensions/vscode/) on every push/PR that touches that directory. The workflow runs on the self-hosted node:24 container (matching the existing CI conventions) and executes: - yarn install --frozen-lockfile (lockfile integrity) - yarn lint (ESLint) - yarn compile (TypeScript + webpack dev build) - yarn test (Jest, all 10 test suites) Path filter (extensions/vscode/**) ensures Go-only changes do not trigger this job. No vsce package step — packaging is a release concern. Fixes the gap identified in #441: dependency PRs from dependabot (#437) will now receive real build and test signal before merging. Closes #441 * ci: pin node image version and add yarn dependency caching - Pin node container image to node:24.0.0 for reproducible builds - Add actions/setup-node@v4 with yarn cache for extensions/vscode/yarn.lock to speed up CI workflow runs * ci: use node:24 image container tag * ci: pin node version to 24.4.1 * ci: use actions/cache@v4 for yarn package caching * ci: remove redundant push trigger on main
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.
Description
.github/dependabot.ymldeclares two ecosystems,gomodandgithub-actions, both at/. Therepo has 9 npm manifests, so the VS Code extension is entirely unmanaged.
The evidence that the gap matters is already in the tree.
extensions/vscode/package.json:110-116:Someone is patching CVEs by hand, in a package dependabot never looks at.
extensions/vscode/yarn.lockis tracked and is# yarn lockfile v1— YarnClassic, which dependabot's npm ecosystem supports.
Scope is deliberately narrow — one directory, not nine
/extensions/vscodeyarn.lock, hand-pinned CVEs/pages.gitignore:13) — that's your policy call, not mine/and the sixnpm/*/optionalDependencieson those six0.0.0platform stubs — pure noiseTwo parts of that are load-bearing rather than decoration:
@types/vscodeis ignored.package.jsondeclares"engines": {"vscode": "^1.74.0"}and"@types/vscode": "^1.74.0"— they read like a contract, but that contract is already brokenin the tree today:
^1.74.0permits anything<2.0.0, so yarn resolved to 1.125.0 — the extension istype-checked against VS Code 1.125 APIs while declaring it runs on 1.74.0+. The ignore rule
just stops a bot dragging it further while nothing validates the result (see below). Fixing it
properly is a behaviour change for a separate PR.
update-types: [minor, patch]. The pending majors here are genuinely breaking:eslint ^8 → 9(flat-config migration, and.eslintrc.jsonis present),@typescript-eslint ^6 → 8,and
@types/node ^18 → 24. A bare"*"group would bundle all of them into one unreviewablePR; this way majors arrive individually.
The thing you should weigh before merging
Nothing in CI builds or tests this extension.
No workflow runs
yarn install,jest,webpack,eslint, orvsce packageforextensions/vscode— even thoughpackage.jsondefinescompile,test,lint, andpackagescripts and there are 10 test files undersrc/**/__tests__/. So every dependabot PR there would be checked only byci.yml, which is Go-only and entirely unaffected → green with zero validation. Merging ongreen would be merging blind. If you'd prefer an extension CI job first, happy to close this and
revisit after.
Also worth naming:
resolutionsis not maintained by dependabot — it's a yarn field, so thisPR reduces future manual pinning but does not retire the existing block.
#340 (gomod) and #347 (actions) are both still open, so adding a third ecosystem to a backlog
that isn't being serviced is a fair objection. This entry is grouped and capped at
open-pull-requests-limit: 5, so it adds at most one PR per week.Verification
Limitations
I have not seen dependabot actually run this config — a schema-valid file is not proof the first
run behaves as intended, and expect a larger burst on that first run than in the steady state. I
did not add an extension CI job, which is arguably the change that should come first.
Type of Change
How Has This Been Tested?
yaml.safe_loadparses; asserted 3 entries, the new one's limit/ignore/groups shape, andthat
versioning-strategyis absent/pageslockfilegitignored, the
engines/@types/vscodeversion contract, the fiveresolutionspinsChecklist
AI assistance: Claude Code helped research and verify this change. I reviewed the full diff
and take responsibility for it.