fix: respect ignoreScripts option for git dependencies#486
Conversation
nishantms
left a comment
There was a problem hiding this comment.
Small, clean change — mirrors the existing DirFetcher pattern in lib/dir.js. Two nits below, neither blocking.
| // the nested `npm install` spawn must be skipped so foo is never created. | ||
| t.throws( | ||
| () => fs.statSync(`${extract}/foo`), | ||
| { code: 'ENOENT' }, |
There was a problem hiding this comment.
nit: This proves the script didn't run, but doesn't verify the extract itself succeeded. A quick t.ok(fs.statSync(\${extract}/package.json`))` alongside the ENOENT check would confirm "extract worked, scripts were skipped" rather than just "scripts were skipped."
| () => fs.statSync(`${extract}/a/foo`), | ||
| { code: 'ENOENT' }, | ||
| 'prepare phase did not run during extract' | ||
| ) |
There was a problem hiding this comment.
nit: Same as above — adding t.ok(fs.statSync(\${extract}/package.json`))` would confirm the extract produced output even though prepare was skipped.
Also: both tests cover the install-script path and the workspaces path, but there's no test for a repo with only a prepare script and no workspaces (e.g. prepackRemote with ignoreScripts: true). Low risk since all three hit the same #prepareDir guard, but would round out coverage.
🤖 I have created a release *beep* *boop* --- ## [22.0.0](v21.5.0...v22.0.0) (2026-06-15) ###⚠️ BREAKING CHANGES * `pacote` now supports node `^22.22.2 || ^24.15.0 || >=26.0.0` * git specs using the `https` or `git+https` protocol now resolve to `git+https` URLs instead of being switched to `git+ssh`. Shortcut specs (e.g. `github:user/repo`, `user/repo`) and `git+ssh`/`git://` specs are unchanged. ### Features * [`09316f5`](09316f5) [#504](#504) bump to new node engine range (@owlstronaut) * [`2ab74b0`](2ab74b0) [#497](#497) strip patchedDependencies from the packed package.json (#497) (@manzoorwanijk) * [`66e7ea7`](66e7ea7) [#487](#487) forward globalIgnoreFile option to npm-packlist (@ljharb) ### Bug Fixes * [`ce804fb`](ce804fb) [#498](#498) avoid ReDoS in addGitSha committish stripping (#498) (@owlstronaut) * [`1f5f131`](1f5f131) [#494](#494) pass --global=false when preparing git dependencies (@owlstronaut) * [`e0af7f6`](e0af7f6) [#486](#486) respect ignoreScripts option for git dependencies (@owlstronaut) * [`12c8c8f`](12c8c8f) [#481](#481) fall back to git clone when tarball response is not a valid archive (@babyhuey) * [`61f065a`](61f065a) [#481](#481) use statusCode instead of constructor name for tarball fallback in git fetcher (@j1mb0-1) * [`6d160c1`](6d160c1) [#434](#434) do not switch to git+ssh for https repository links (#434) (@oldium) ### Dependencies * [`371e8b0`](371e8b0) [#504](#504) `[email protected]` * [`b68c6c2`](b68c6c2) [#504](#504) `[email protected]` * [`57793ab`](57793ab) [#504](#504) `[email protected]` * [`33eacc9`](33eacc9) [#504](#504) `[email protected]` * [`a131916`](a131916) [#504](#504) `[email protected]` * [`2b03527`](2b03527) [#504](#504) `[email protected]` * [`5f8ad42`](5f8ad42) [#504](#504) `[email protected]` * [`ee3b96d`](ee3b96d) [#504](#504) `[email protected]` * [`033f655`](033f655) [#504](#504) `@npmcli/[email protected]` * [`ddcc738`](ddcc738) [#504](#504) `@npmcli/[email protected]` * [`6a28eb2`](6a28eb2) [#504](#504) `@npmcli/[email protected]` * [`5879416`](5879416) [#504](#504) `@npmcli/[email protected]` * [`41ea727`](41ea727) [#504](#504) `@npmcli/[email protected]` ### Chores * [`3fc5fd4`](3fc5fd4) [#504](#504) `@npmcli/[email protected]` (@owlstronaut) * [`7350ab8`](7350ab8) [#504](#504) `[email protected]` (@owlstronaut) * [`c7c7d7f`](c7c7d7f) [#504](#504) template-oss-apply (@owlstronaut) * [`e9ac85e`](e9ac85e) [#501](#501) template-oss-apply (@owlstronaut) * [`e184356`](e184356) [#501](#501) `[email protected]` (@owlstronaut) * [`644ebb6`](644ebb6) [#479](#479) template-oss-apply (@owlstronaut) * [`ee64bea`](ee64bea) [#479](#479) `@npmcli/[email protected]` (@owlstronaut) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
No description provided.