Lesstep
GitHub Actions・npm・2026年11月4日に確認

GitHub Actions の npm 12:「EALLOWGIT」と止められた install scripts

npm 12 は、CI のインストールが頼っている既定を2つ変えました(12.0.0 のリリースノート)。git のリポジトリや tarball の URL を指す依存は取ってこなくなり(allow-git と allow-remote の既定が none)、依存の install scripts は、package.json の allowScripts に載っていなければ動きません。手元では確かめるよう促されるだけですが、ワークフローではエラーになるか、通ったうえで何かが欠けます。

npm 12 がジョブに入る道

ジョブがどちらを持っているかは、npm --version のステップでわかります。

1.「EALLOWGIT」

npm error code EALLOWGIT
npm error Fetching packages of type "git" have been disabled
npm error Refusing to fetch "hexo-next-fallback@github:wherewhere/hexo-next-fallback"

github:owner/repo、git の URL、GitHub の URL で書いた依存が断られました。リポジトリのルートの .npmrc で許します:

allow-git=root

root は自分の package.json に書いた git の依存だけを許し、all はツリーの奥の git の依存も許します(npm の設定の定義の allow-git)。1回のコマンドだけなら npm ci --allow-git=root です。tarball の URL で書いた依存には、同じ値をとる allow-remote があります。

2. install scripts が止められる

npm warn install-scripts 1 package had install scripts blocked because they are not covered by allowScripts:
npm warn install-scripts   better-sqlite3@12.11.1 (install: prebuild-install || node-gyp rebuild --release)
npm warn install-scripts
npm warn install-scripts Run `npm install-scripts ls` to review, or `npm install-scripts approve <pkg>` to allow.

インストールそのものは成功します。失敗はあとで、スクリプトが作るはずだったものから出ます。better-sqlite3 はネイティブのバインディングが無く「Could not locate the bindings file」で止まり(MultiWikiServer #141)、postinstall で自分のバイナリを取ってくるパッケージは、それ抜きで入りました(gentle-shell #2730)。自分の package.json のスクリプトは今まで通り動き、止められるのは依存のスクリプトだけです。

リポジトリで一度決めます。手元に npm 12 を入れて:

npm install-scripts ls
npm install-scripts approve better-sqlite3

approve は package.json の allowScripts に書き込みます。それをコミットすれば、ワークフローの npm ci もそれに従います。azure-mud は、確かめた版ごとにパッケージを許し、1つを断っています(azure-mud #1083):

"allowScripts": {
  "core-js": false,
  "@parcel/watcher@2.6.0": true,
  "@swc/core@1.16.20": true
}

3. または、当面は npm 11 にとどまる

- run: npm install -g npm@11
- run: npm ci

npm 11 もまだ新しい版が出ていて(11.21.1 は 12.2.1 と同じ10月15日)、trusted publishing にも足ります。ただし決めるのを先に延ばすだけで、allowScripts の作業はあとで同じだけ要ります。

ほかに、ワークフローで出る npm 12 の変化

同じリリースノートから:

見分け方

失敗したジョブを IntelliJ IDEA から見るなら

Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べ、いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。

GitHub・GitHub Actions は GitHub, Inc. の商標、npm は npm, Inc. の商標、Node.js は OpenJS Foundation の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・npm, Inc.・OpenJS Foundation・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:npm publish と「ENEEDAUTH」 · npm publish と「Permission denied (publickey)」 · 「Node.js 20 actions are deprecated」 · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English