Skip to content

fix: respect ignoreScripts option for git dependencies#486

Merged
owlstronaut merged 1 commit into
mainfrom
owlstronaut/fix-git-ignorescripts-bypass
May 12, 2026
Merged

fix: respect ignoreScripts option for git dependencies#486
owlstronaut merged 1 commit into
mainfrom
owlstronaut/fix-git-ignorescripts-bypass

Conversation

@owlstronaut

Copy link
Copy Markdown

No description provided.

@owlstronaut
owlstronaut requested a review from a team as a code owner May 12, 2026 15:09

@nishantms nishantms left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small, clean change — mirrors the existing DirFetcher pattern in lib/dir.js. Two nits below, neither blocking.

Comment thread test/git.js
// the nested `npm install` spawn must be skipped so foo is never created.
t.throws(
() => fs.statSync(`${extract}/foo`),
{ code: 'ENOENT' },

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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."

Comment thread test/git.js
() => fs.statSync(`${extract}/a/foo`),
{ code: 'ENOENT' },
'prepare phase did not run during extract'
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@owlstronaut
owlstronaut merged commit e0af7f6 into main May 12, 2026
13 checks passed
@owlstronaut
owlstronaut deleted the owlstronaut/fix-git-ignorescripts-bypass branch May 12, 2026 16:21
@github-actions github-actions Bot mentioned this pull request May 12, 2026
owlstronaut pushed a commit that referenced this pull request Jun 15, 2026
🤖 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>
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.

3 participants