直近で話題になることが多かったサプライチェーン攻撃に対する予防策として、「一定時間経過したパッケージしかアップデート対象にしない」というオプションが dependabot や pnpm に導入されている。
dependabot / cooldown
.github/dependabot.yml に次のように設定する:
version: 2
updates:
- package-ecosystem: "npm"
directory: "/workers"
cooldown:
default-days: 7
semver-major-days: 14
semver-major-days などで semantic versioning に従って細かく設定ができる。include / exclude での除外設定もサポートされている。
pnpm / minimumReleaseAge
pnpm-workspace.yaml に次のように設定するか、CLI からも設定できる:
minimumReleaseAge: 10080
$ pnpm config set --location=project minimumReleaseAge 10080
dependabot とは違い、こちらは分単位での指定(7日)。 10.17.0 で minimumReleaseAgeExclude が入って除外設定もできるようになった。
[追記] bun / minimumReleaseAge
bunfig.toml で設定する:
[install]
minimumReleaseAge = 604800
minimumReleaseAgeExcludes = ["@types/bun"]
これは秒になっていてややこしい…。pnpm の 60 倍になっているが、設定としてはこれで同じ。