Skip to main content

Enterprise Server 3.21 は、現在リリース候補として使用できます。

Dependabot オプション リファレンス

リポジトリの管理方法をカスタマイズするために使用できるすべてのオプションの詳細情報 Dependabot 。

この機能を使用できるユーザーについて

Users with write access

この記事では、 dependabot.yml ファイルで使用できる構成オプションのリファレンス情報を提供します。 これらのオプションを使用して、 Dependabot がパッケージ エコシステムを監視し、更新プログラムをスケジュールし、プル要求を作成する方法をカスタマイズします。 dependabot.yml ファイルの概要とそのしくみについては、dependabot.yml ファイルについて を参照してください。

アイコンでマークされているすべてのオプションは、Dependabot が使用されていない限り、target-branch によるセキュリティ更新プログラムの pull request 作成方法も変更します。

必要なキー

Keyロケーション目的
version最上位レベル
Dependabot 使用する構成構文。 Always (常に)2
updates最上位レベル更新する各 package-ecosystem を定義するセクション。
package-ecosystem
updates の下更新するパッケージ マネージャーを定義します。
[
directories または directory](#directories-or-directory--)package-ecosystem エントリの下更新対象となるマニフェストまたはその他の定義ファイルの場所を定義します。
schedule.intervalpackage-ecosystem エントリの下バージョンの更新プログラム ( dailyweeklymonthlyquarterlysemiannuallyyearly、または cron) を検索するかどうかを定義します。

必要に応じて、最上位レベルの registries キーを含めて、プライベート レジストリのアクセス詳細を定義することもできます。「最上位レベルの registries キー」を参照してください。

YAML

# Basic `dependabot.yml` file with
# minimum configuration for two package managers

version: 2
updates:
  # Enable version updates for npm
  - package-ecosystem: "npm"
    # Look for `package.json` and `lock` files in the `root` directory
    directory: "/"
    # Check the npm registry for updates every day (weekdays)
    schedule:
      interval: "daily"

  # Enable version updates for Docker
  - package-ecosystem: "docker"
    # Look for a `Dockerfile` in the `root` directory
    directory: "/"
    # Check for updates once a week
    schedule:
      interval: "weekly"

dependabot.yml ファイルの実際の例については、Dependabot独自の構成ファイルを参照してください。

allow

パッケージ エコシステムに対してどの依存関係を保持するかを正確に定義するために使います。 多くの場合、ignore オプションと共に使われます。 例については、「Dependabot が更新する依存関係を制御する」を参照してください。

Dependabot 既定の動作:

  • マニフェストで明示的に定義されているすべての依存関係は、バージョンの更新によって最新の状態に保たれます。
  • 脆弱な依存関係を持つロック ファイルで定義されているすべての依存関係は、セキュリティ更新プログラムによって更新されます。

allowを指定Dependabot場合は、次のプロセスを使用します。

  1. 明示的に許可した依存関係をすべてチェックします。

  2. 次に、無視された依存関係またはバージョンを除外します。

    依存関係が allowignore ステートメントと一致する場合、依存関係は無視されます

パラメーター目的
dependency-name名前が一致する依存関係の更新を許可します。必要に応じて、0 文字以上に一致させるために * を使用できます。
dependency-type特定の種類の依存関係に対する更新を許可します。

dependency-name (allow)

ほとんどのパッケージ マネージャーでは、ロックまたはマニフェスト ファイルで指定された依存関係名と一致する値を定義する必要があります。 一部のシステムには、より複雑な要件があります。

パッケージ マネージャー必要な形式Example
Gradle と MavengroupId:artifactIdorg.kohsuke:github-api
イメージ タグ用の Dockerリポジトリのフルネーム
<account ID>.dkr.ecr.us-west-2.amazonaws.com/base/foo/bar/ruby:3.1.0-focal-jemalloc のイメージ タグには、base/foo/bar/ruby を使います。

dependency-type (allow)

依存関係の種類パッケージマネージャーによるサポート更新の許可
directAll明示的に定義されたすべての依存関係。
indirect
bundlerpipcomposercargogomoduv直接依存関係 (サブ依存関係または推移的依存関係とも呼ばれます) の依存関係。
allAll明示的に定義されたすべての依存関係。
bundlerpipcomposercargogomoduvの場合、直接依存関係の依存関係も含まれます。
production
bundlercomposermixmavennpmpipuv (すべてのマネージャーではない)パッケージ マネージャーによって運用依存関係として定義された依存関係のみ。
development
bundlercomposermixmavennpmpipuv (すべてのマネージャーではない)パッケージ マネージャーによって開発依存関係として定義された依存関係のみ。

assignees

パッケージエコシステムで作成されるすべてのプルリクエストに、個別の担当者を指定します。 例については、「実際のプロセスに合わせて Dependabot pull request をカスタマイズする」を参照してください。

Dependabot 既定の動作:

  • Pull request は担当者なしで作成されます。

assignees が定義されている場合:

  • バージョン更新のすべてのプル要求は、選択した担当者で作成されます。
  • 既定以外のブランチへの更新を定義 target-branch 場合を除き、セキュリティ更新プログラムに対するすべてのプル要求は、選択した担当者によって作成されます。

担当者はリポジトリへの書き込みアクセス権限を持っている必要があります。 Organization が所有するリポジトリの場合、読み取りアクセス権を持つ organization メンバーも有効な担当者です。

commit-message

コミット メッセージの形式を定義します。 Pull request のタイトルはコミット メッセージに基づいて記述されるため、この設定は pull request のタイトルにも影響します。 例については、「実際のプロセスに合わせて Dependabot pull request をカスタマイズする」を参照してください。

Dependabot 既定の動作:

  • コミット メッセージは、リポジトリで検出されたものと同様のパターンに従います。

commit-message が定義されている場合:

  • すべてのコミット メッセージは、定義されたパターンに従います。
  • 既定以外の分岐に対する更新を定義 target-branch 場合を除き、すべてのコミット メッセージは定義されたパターンに従います。
パラメーター目的
prefixすべてのコミット メッセージと pull request のタイトルのプレフィックスを定義します。
prefix-developmentサポートされているシステム上で、Development 依存関係グループ内の依存関係を更新するコミットに使う別のプレフィックスを定義します。
includeコミット メッセージのプレフィックスの後にその他の情報を入力します。

ヒント

グループ化された更新に対して pull request が生成されると、ブランチ名と pull request のタイトルはグループ IDENTIFIER によって定義されます。「groups」を参照してください。

prefix

  • prefix-development も定義されていない場合、すべてのコミット メッセージに使われます。
  • 値は最大 50 文字まで使用できます。
  • Dependabot は、値が文字、数字、閉じ丸括弧、または閉じ角括弧で終わるときに、メインのコミットメッセージを追加する前に、プレフィックスの後にコロンを挿入します。
  • コロンの追加を停止するには、値の末尾を空白文字にします。

prefix-development

サポート対象: bundlercomposermixmavennpmpipuv

  • Development 依存関係グループ内の依存関係を更新するコミット メッセージにのみ使われます。
  • それ以外の場合、パラメーターは prefix パラメーターとまったく同じように動作します。

include

  • scope のみをサポートします
  • 定義すると、プレフィックスの後にコミットで更新される依存関係の種類 (deps または deps-dev) が続きます。

cooldown

依存関係の更新のクールダウン期間を定義し、構成可能な日数だけ更新を延期することができます。 cooldown オプションは、_バージョン_更新プログラムでのみ使用でき、_セキュリティ_更新プログラムでは使用できません。

この機能を使用すると、ユーザーは新しいバージョンの更新プログラム Dependabot 生成する頻度をカスタマイズでき、更新頻度をより詳細に制御できます。 例については、「Dependabot バージョン更新プログラムに合わせて pull request の作成を最適化する」を参照してください。

Dependabot 既定の動作:

  • schedule.interval で定義したスケジュールに従って更新がチェックされます。
  • すべての新しいバージョンはすぐに更新対象として検討されます。

** cooldown ** が定義されている場合:

  1. Dependabot は、定義された schedule.interval 設定に従って更新プログラムをチェックします。
  2. Dependabot は、クールダウン設定をチェックします。
  3. 依存関係の新しいリリースがクールダウン期間内にある場合、 Dependabot はその依存関係のバージョンの更新をスキップします。
  4. クールダウン期間のない依存関係、またはクールダウン期間を過ぎた依存関係は、構成した versioning-strategy 設定に従って最新バージョンに更新されます。
  5. 依存関係のクールダウンが終了した後、 Dependabot は、 dependabot.ymlで定義されている標準的な更新戦略に従って依存関係の更新を再開します。

cooldown の構成

以下のオプションを使ってクールダウンの期間を指定できます。

パラメーターDescription
default-days特定の規則のない依存関係の既定のクールダウン期間 (省略可能)。
semver-major-days
メジャー バージョン更新のクールダウン期間 (省略可能。SemVer をサポートするパッケージ マネージャーにのみ適用されます)。
semver-minor-days
マイナー バージョン更新のクールダウン期間 (省略可能。SemVer をサポートするパッケージ マネージャーにのみ適用されます)。
semver-patch-days
パッチ バージョン更新のクールダウン期間 (省略可能。SemVer をサポートするパッケージ マネージャーにのみ適用されます)。
include
クールダウンを適用する依存関係のリスト (最大 150 項目)。 ワイルドカードのサポート (*).
exclude
クールダウンから除外する依存関係のリスト (最大 150 項目)。 ワイルドカードのサポート (*).

次の表は、 cooldownをサポートするパッケージ マネージャーを示しています。 default-days オプションは、一覧表示されているすべてのパッケージ マネージャーでサポートされますが、semver-major-dayssemver-minor-days、およびsemver-patch-daysは示されている場合にのみサポートされます。

パッケージ マネージャーサポートされている既定の日数SemVer-bump の日数がサポートされています
Bazel
Bundler
Bun
貨物
Composer
Conda
Deno
Devcontainers
Docker
Docker Compose
Dotnet SDK
Elm
GitHub Actions
Gitsubmodule
Gomod (Go モジュール)
Gradle
Helm
16 進 (16 進)
Julia
Maven
NPM と Yarn
NuGet
OpenTofu
pip
pre-commit
Pub
Rust ツールチェーン
Swift
Terraform
UV
vcpkg

メモ

semver-major-dayssemver-minor-days、または semver-patch-days が定義されていない場合、クールダウンベースの更新では default-days 設定が優先されます。

* exclude リストは常に include リストよりも優先されます。 依存関係が両方のリストに指定されている場合、その依存関係はクールダウンから除外され、すぐに更新されます。

directories または directory

必須オプション。 各パッケージ マネージャー (package.jsonGemfile など) のパッケージ マニフェストの場所を定義するために使用します。 この情報がないと Dependabot バージョン更新のプル要求を作成できません。 例については、「マニフェスト ファイルの複数の場所を定義する」を参照してください。

  • directory を使って、マニフェストのディレクトリを 1 つ定義します。

  • directories を使って、マニフェストの複数のディレクトリで構成されるリストを定義します。

  • ほとんどのパッケージ マネージャーのリポジトリのルートに対して相対的なディレクトリを定義します。

  • GitHub Actionsの場合は、/値を使用します。 Dependabot では、 /.github/workflows ディレクトリとルート ディレクトリから action.yml/action.yaml ファイルが検索されます。

構成ファイル内で複数のブロックを使ってエコシステムの 1 つのターゲット ブランチの更新を定義する必要がある場合は、すべての値が一意であり、定義したディレクトリに重複がないことを確認する必要があります。

メモ

directories キーはグロビングとワイルドカード文字 * をサポートしています。 これらの機能は directory キーではサポートされていません。

enable-beta-ecosystems

現在使用できません。

groups

パッケージ マネージャーによって管理される 1 つ以上の依存関係のセットを作成し、更新プログラムを少数の対象を絞った pull request にグループ化するようにルールを定義します。 例については、「Dependabot バージョン更新プログラムに合わせて pull request の作成を最適化する」を参照してください。

Dependabot 既定の動作:

  • バージョン更新とセキュリティ更新の場合、新しいバージョンに更新する必要がある依存関係ごとに 1 つの pull request を開きます。

groups を使ってルールを定義する場合:

  • 規則と一致する依存関係のすべての更新は、1 つの pull request に結合されます。
  • 依存関係が複数のルールと一致する場合、その依存関係は最初に一致したグループに含まれます。
  • 一致するルールがない古い依存関係は、個別の pull request で更新されます。
パラメーター目的
IDENTIFIERブランチ名と pull request のタイトルで使うグループの識別子を定義します。 この先頭と末尾は文字にする必要があります。また、文字、パイプ |、アンダースコア _、またはハイフン - を含めることができます。
applies-toグループが適用される更新プログラムの種類を指定します。 未定義の場合、既定でバージョン更新プログラムになります。 サポートされる値: version-updates または security-updates
dependency-typeグループを 1 つの種類に制限します。 サポートされる値: development または production
exclude-patternsグループから依存関係を除外するパターンを 1 つ以上定義します。
group-by複数のディレクトリ間で更新をグループ化します。 サポートされる値: dependency-name
patterns名前が一致する依存関係を含めるパターンを 1 つ以上定義します。
update-typesグループを 1 つ以上のセマンティック バージョニング レベルに制限します。 サポートされている値: minorpatch、および major

dependency-type (groups)

サポート: bundlercomposermixmavennpm、およびpip

既定では、グループにはすべての種類の依存関係が含まれます。

  • "Development dependency group" に依存関係のみを含めるには、development を使います。
  • "Production dependency group" に依存関係のみを含めるには、production を使います。

group-by (groups)

groups.<group-name>.group-byを使用して、monorepo 内Dependabot複数のディレクトリ間で更新をグループ化する方法を指定します。

  • 型: 文字列
  • 受け入れ可能な値:dependency-name
  • 適用対象: 複数のディレクトリが指定された構成

dependency-nameに設定すると、Dependabotは、ディレクトリごとに個別のプル要求ではなく、指定されたすべてのディレクトリにわたって依存関係の更新ごとに 1 つのプル要求を作成します。

ディレクトリ間グループ化の制限事項

group-by: dependency-nameを使用する場合:

  • すべてのディレクトリで同じパッケージ エコシステムを使用する必要があります (たとえば、すべての npm またはすべての bundler)
  • バージョン更新のみに適用されます
  • ディレクトリに依存関係に互換性のないバージョン制約がある場合、 Dependabot は個別のプル要求を作成します

group-byの使用例については、Dependabot バージョン更新プログラムに合わせて pull request の作成を最適化する を参照してください。

patternsexclude-patterns (groups)

どちらのオプションも、依存関係名との一致を定義する際にワイルド カードとして * を使用できます。 依存関係がパターンと除外パターンの両方と一致する場合は、グループから除外されます。

update-types (groups)

既定では、グループにはすべてのセマンティック バージョン (SemVer) 更新プログラムが含まれます。 SemVer は、x.y.z の形式でソフトウェア パッケージのバージョンを定義するための標準として認められています。 Dependabot は、この形式のバージョンが常に major.minor.patch であると想定します。

  • パッチ リリースを含めるには、patch を使います。
  • マイナー リリースを含めるには、minor を使います。
  • メジャー リリースを含めるには、major を使います。

例については、「Dependabot が更新する依存関係を制御する」を参照してください。

ignore

パッケージ エコシステムに対してどの依存関係を保持するかを正確に定義するには、allow オプションと共に使います。 Dependabot は、許可されているすべての依存関係をチェックし、無視された依存関係またはバージョンを除外します。 許可条件と無視条件の両方で一致する依存関係は、無視されます。 例については、「Dependabot が更新する依存関係を制御する」を参照してください。

Dependabot 既定の動作:

  • マニフェストで明示的に定義されているすべての依存関係は、バージョンの更新によって最新の状態に保たれます。
  • 脆弱な依存関係を持つロック ファイルで定義されているすべての依存関係は、セキュリティ更新プログラムによって更新されます。

ignoreを使用する場合、Dependabotは次のプロセスを使用します。

  1. 明示的に許可した依存関係をすべてチェックします。

  2. 次に、無視された依存関係またはバージョンを除外します。

    依存関係が allowignore ステートメントと一致する場合、依存関係は無視されます

パラメーター目的
dependency-name一致する名前を持つ依存関係の更新を無視します。必要に応じて、ゼロ文字以上に一致する * を使用できます。
versions特定のバージョンまたはバージョン範囲を無視します。
update-types1 つ以上のセマンティック バージョニング レベルへの更新プログラムを無視します。 サポートされている値: version-update:semver-patchversion-update:semver-minor、および version-update:semver-major

dependency-name (ignore)

ほとんどのパッケージ マネージャーでは、ロックまたはマニフェスト ファイルで指定された依存関係名と一致する値を定義する必要があります。 一部のシステムには、より複雑な要件があります。

パッケージ マネージャー必要な形式Example
Gradle と MavengroupId:artifactIdorg.kohsuke:github-api
イメージ タグ用の Dockerリポジトリのフルネーム
<account ID>.dkr.ecr.us-west-2.amazonaws.com/base/foo/bar/ruby:3.1.0-focal-jemalloc のイメージ タグには、base/foo/bar/ruby を使います。

versions (ignore)

特定のバージョンまたはバージョン範囲を無視するために使います。 範囲を定義する場合は、パッケージ マネージャーの標準パターンを使います。 例えば次が挙げられます。

  • npm: ^1.0.0 を使います
  • Bundler: ~> 2.0 を使います
  • Docker: Bundler バージョンの構文を使います
  • NuGet: 7.* を使います
  • Maven: [1.4,) を使用する

例については、「Dependabot が更新する依存関係を制御する」を参照してください。

update-types (ignore)

無視するセマンティック バージョン (SemVer) を指定します。 SemVer は、x.y.z の形式でソフトウェア パッケージのバージョンを定義するための標準として認められています。 Dependabot は、この形式のバージョンが常に major.minor.patchされることを前提としています。

  • パッチ リリースを含めるには、version-update:semver-patch を使います。
  • マイナー リリースを含めるには、version-update:semver-minor を使います。
  • メジャー リリースを含めるには、version-update:semver-major を使います。

insecure-external-code-execution

サポート: bundlermix、および pip

Dependabotが更新中にマニフェストで外部コードを実行できるようにします。 例については、「外部コードの実行を許可する」を参照してください。

Dependabot 既定の動作:

  • 1 つ以上のレジストリ Dependabot アクセス権を付与すると、侵害されたパッケージからコードを保護するために外部コードの実行が自動的に無効になります。
  • コードを実行できないと、バージョン更新プログラムが失敗する場合があります。

insecure-external-code-execution を許可する場合:

  • Dependabot は、バージョン更新プロセスの一環としてマニフェストでコードを実行します。
  • コードは、その updates の設定に関連付けられたレジストリ内のパッケージ マネージャーにのみアクセスできます。 最上位の registries 構成で定義されているレジストリへのアクセスは許可されません。
  • そのため、更新プログラムは成功するはずですが、侵害されたパッケージが資格情報を盗んだり、構成済みのレジストリにアクセスしたりする可能性もあります。

サポートされる値: allow

labels

パッケージ マネージャーに対して発行されるすべての pull request に独自のラベルを指定します。 例については、「