dependabot.yml
ファイルにオプションを追加することで、ニーズに合わせて Dependabot 構成をカスタマイズできます。 たとえば、Dependabot が正しいパッケージ マニフェスト ファイルを使い、保持する依存関係のみを更新するようにすることができます。
この記事では、便利なカスタマイズ オプションをまとめています。
特定の依存関係を無視する
プロジェクト内の特定の依存関係からの変更を採用する準備ができていない場合は、Dependabot を構成して、バージョン更新プログラムの pull request を開いたときにそれらの依存関係を無視できます。 次のいずれかの方法で実行できます:
dependabot.yml
ファイル内の依存関係にignore
オプションを構成します。- これを使うと、特定の依存関係、バージョン、更新プログラムの種類に対して更新プログラムを無視できます。
- 詳しくは、「Dependabot オプション リファレンス」の
ignore
を参照してください。
- バージョン更新の Dependabot pull request で
@dependabot ignore
コメント コマンドを使用します。- コメント コマンドを使うと、特定の依存関係やバージョンの更新プログラムを無視できます。
- 詳しくは、「依存関係の更新に関するPull Requestを管理する」をご覧ください。
以下に、ignore
を使って更新する依存関係をカスタマイズする方法の例をいくつか示します。
-
特定のバージョンより後の更新プログラムを無視するには
YAML ignore: - dependency-name: "lodash:*" # Ignore versions of Lodash that are equal to or greater than 1.0.0 versions: [ ">=1.0.0" ]
ignore: - dependency-name: "lodash:*" # Ignore versions of Lodash that are equal to or greater than 1.0.0 versions: [ ">=1.0.0" ]
YAML ignore: - dependency-name: "sphinx" versions: [ "[1.1,)" ]
ignore: - dependency-name: "sphinx" versions: [ "[1.1,)" ]
-
パッチ更新プログラムを無視するには
YAML ignore: - dependency-name: "@types/node" # Ignore patch updates for Node update-types: ["version-update:semver-patch"]
ignore: - dependency-name: "@types/node" # Ignore patch updates for Node update-types: ["version-update:semver-patch"]
-
特定のバージョンまたはバージョンの範囲を無視するには、「特定のバージョンまたはバージョンの範囲を無視する」を参照してください。
依存関係または無視条件の無視を解除する場合は、dependabot.yml
ファイルから無視条件を削除するか、pull request を再度開きます。
グループ化されたバージョンを更新するための pull request には、@dependabot unignore
コメント コマンドを使用することもできます。 @dependabot unignore
のコメント コマンドを使用すると、Dependabot pull requestにコメントを付けることで、次のことを行うことができます。
- 特定の無視条件を無視解除する
- 特定の依存関係を無視解除する
- Dependabot の pull request において、すべての依存関係のすべての無視条件を無視解除する
Note
@dependabot unignore
コメント コマンドは、グループ化されたバージョン アップデートの pull request でのみ機能します。
詳しくは、「依存関係の更新に関するPull Requestを管理する」を参照してください。
特定の依存関係の更新を許可する
allow
を使って、保持する依存関係について Dependabot に指示することができます。 通常、allow
は ignore
と組み合わせて使います。
詳しくは、「Dependabot オプション リファレンス」の allow
を参照してください。
Dependabot の既定では、マニフェストに明示的に定義されている依存関係 (direct
の依存関係) に対してのみバージョン更新プログラムの pull request が作成されます。 この構成は、allow
を使って、種類が all
の依存関係を保持するように Dependabot に指示します。 つまり、direct
依存関係とその依存関係 (間接依存関係、サブ依存関係、または一時依存関係とも呼ばれます) の両方です。 さらに、この構成では、パターン org.xwiki.*
と一致する名前を持つすべての依存関係を無視するように Dependabot に指示します。これは、保持するプロセスは別にあるためです。
Tip
Dependabot により、すべての許可された依存関係がチェックされ、無視された依存関係は除外されます。 依存関係が allow と ignore のステートメントと一致する場合は、無視されます。
version: 2 registries: # Helps find updates for non Maven Central dependencies maven-xwiki-public: type: maven-repository url: https://nexus.xwiki.org/nexus/content/groups/public/ username: "" password: "" # Required to resolve xwiki-common SNAPSHOT parent pom maven-xwiki-snapshots: type: maven-repository url: https://maven.xwiki.org/snapshots username: "" password: "" updates: - package-ecosystem: "maven" directory: "/" registries: - maven-xwiki-public - maven-xwiki-snapshots schedule: interval: "weekly" allow: # Allow both direct and indirect updates for all packages. - dependency-type: "all" ignore: # Ignore XWiki dependencies. We have a separate process for updating them - dependency-name: "org.xwiki.*" open-pull-requests-limit: 15
version: 2
registries:
# Helps find updates for non Maven Central dependencies
maven-xwiki-public:
type: maven-repository
url: https://nexus.xwiki.org/nexus/content/groups/public/
username: ""
password: ""
# Required to resolve xwiki-common SNAPSHOT parent pom
maven-xwiki-snapshots:
type: maven-repository
url: https://maven.xwiki.org/snapshots
username: ""
password: ""
updates:
- package-ecosystem: "maven"
directory: "/"
registries:
- maven-xwiki-public
- maven-xwiki-snapshots
schedule:
interval: "weekly"
allow:
# Allow both direct and indirect updates for all packages.
- dependency-type: "all"
ignore:
# Ignore XWiki dependencies. We have a separate process for updating them
- dependency-name: "org.xwiki.*"
open-pull-requests-limit: 15
特定のバージョンまたはバージョンの範囲を無視する
versions
を ignore
と組み合わせて使うと、特定のバージョンまたはバージョンの範囲を無視できます。
詳しくは、「Dependabot オプション リファレンス」の versions
を参照してください。
-
特定のバージョンを無視するには
YAML ignore: - dependency-name: "django*" # Ignore version 11 versions: [ "11" ]
ignore: - dependency-name: "django*" # Ignore version 11 versions: [ "11" ]
-
バージョンの範囲を無視するには
YAML ignore: - dependency-name: "@types/node" versions: ["15.x", "14.x", "13.x"] - dependency-name: "xdg-basedir" # 5.0.0 has breaking changes as they switch to named exports # and convert the module to ESM # We can't use it until we switch to ESM across the project versions: ["5.x"] - dependency-name: "limiter" # 2.0.0 has breaking changes # so we want to delay updating. versions: ["2.x"]
ignore: - dependency-name: "@types/node" versions: ["15.x", "14.x", "13.x"] - dependency-name: "xdg-basedir" # 5.0.0 has breaking changes as they switch to named exports # and convert the module to ESM # We can't use it until we switch to ESM across the project versions: ["5.x"] - dependency-name: "limiter" # 2.0.0 has breaking changes # so we want to delay updating. versions: ["2.x"]
無視するセマンティック バージョニング レベルを指定する
update-types
を使って、無視する 1 つ以上のセマンティック バージョニング (SemVer) レベルを指定できます。
詳しくは、「Dependabot オプション リファレンス」の update-types
を参照してください。
この例では、Dependabot はノードのパッチ バージョンを無視します。
version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "daily" ignore: - dependency-name: "express" # For Express, ignore all updates for version 4 and 5 versions: ["4.x", "5.x"] # For Lodash, ignore all updates - dependency-name: "lodash" - dependency-name: "@types/node" # For Node types, ignore any patch versions update-types: ["version-update:semver-patch"]
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
ignore:
- dependency-name: "express"
# For Express, ignore all updates for version 4 and 5
versions: ["4.x", "5.x"]
# For Lodash, ignore all updates
- dependency-name: "lodash"
- dependency-name: "@types/node"
# For Node types, ignore any patch versions
update-types: ["version-update:semver-patch"]
バージョン管理戦略を定義する
Dependabot の既定では、アプリとして特定された依存関係の最小バージョン要件の引き上げが試行されます。また、ライブラリとして特定された依存関係の新しいバージョンと以前のバージョンの両方を含むように、許可されるバージョン要件は拡大されます。
この既定の戦略は変更できます。 詳しくは、「Dependabot オプション リファレンス」の versioning-strategy
を参照してください。
この例では、Dependabot により、アプリとライブラリの両方の新しいバージョンと一致するように最小バージョン要件が引き上げられます。
version: 2 updates: - package-ecosystem: npm directory: "/" schedule: interval: daily # Increase the minimum version for all npm dependencies versioning-strategy: increase
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
# Increase the minimum version for all npm dependencies
versioning-strategy: increase
この例では、元の制約で新しいバージョンが許可されない場合、Dependabot により、最小バージョン要件をのみが引き上げられます。
version: 2 updates: - package-ecosystem: pip directory: "/" schedule: interval: daily open-pull-requests-limit: 20 rebase-strategy: "disabled" # Increase the version requirements for npm # only when required versioning-strategy: increase-if-necessary
version: 2
updates:
- package-ecosystem: pip
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 20
rebase-strategy: "disabled"
# Increase the version requirements for npm
# only when required
versioning-strategy: increase-if-necessary
ベンダリングされた依存関係を更新する
更新時に固有の依存関係をベンダリングするように Dependabot に指示できます。
Dependabot により、Go モジュールのベンダリングされた依存関係は自動的に保持されます。また、ベンダリングされた依存関係も更新するように Bundler を構成できます。
詳しくは、「Dependabot オプション リファレンス」の vendor
を参照してください。
この例では、Bundler の vendor
が true
に設定されています。つまり、Dependabot により、リポジトリの vendor/cache ディレクトリに格納されている Bundler の依存関係も保持されます。
version: 2 updates: - package-ecosystem: bundler directory: "/" # Vendoring Bundler vendor: true schedule: interval: weekly day: saturday open-pull-requests-limit: 10
version: 2
updates:
- package-ecosystem: bundler
directory: "/"
# Vendoring Bundler
vendor: true
schedule:
interval: weekly
day: saturday
open-pull-requests-limit: 10