Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-01-18. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

dependabot.yml ファイルの構成オプション

Dependabot がリポジトリを維持する方法をカスタマイズする� �合に使用可能なすべてのオプションの詳細情� �。

Who can use this feature

People with write permissions to a repository can configure Dependabot for the repository.

**注:** Dependabot セキュリティとバージョンの更新プログラ� は現在プライベート ベータ版であり、変更される可能性があります。 Dependabot アップデートを有効にする手� �については、[アカウント管理チー� にお問い合せく� さい](https://enterprise.github.com/contact)。

注: この機能を使用するには、サイト管理者が your GitHub Enterprise Server instanceの Dependabot updatesを設定する必要があります。 詳細については、「企業に対する Dependabot の有効化」を参照してく� さい。

dependabot.yml ファイルについて

Dependabot の構成ファイルである dependabot.yml では、YAML 構文を使います。 YAML を初めて使う� �合、詳しくは「YAML を 5 分で学習する」をご覧く� さい。

このファイルは、リポジトリの .github ディレクトリに保存する必要があります。 dependabot.yml ファイルを追� または更新すると、バージョン更新の即時チェックがトリガーされます。 詳細と例については、「Dependabot のバージョン アップデートの設定」をご覧く� さい。

セキュリティアップデートに影響するオプションは、次にセキュリティアラートがセキュリティアップデートのためのプルリクエストをトリガーするときにも使用されます。 詳細については、「Dependabot security updates の構成」を参照してく� さい。

dependabot.yml ファイルには、2 つの必� �の最上位キー versionupdates があります。 必要に応じて、最上位レベルの registries キーを含めることができます。 このファイルは version: 2 で始まる必要があります。

dependabot.yml ファイルの構成オプション

最上位レベルの updates キーは必� �です。 これを使用することで、Dependabot がバージョンやプロジェクトの依存性を更新する方法を設定できます。 各エントリは、特定のパッケージマネージャーの更新設定を行います。 次のオプションを使用できます。

オプション必� �セキュリティ更新プログラ� バージョン アップデート説明
package-ecosystemXX使用するパッケージマネージャー
directoryXXパッケージマニフェストの� �所
schedule.intervalXX更新を確認する� �度
allowxx許可する更新をカスタマイズする
assigneesxXプルリクエストのアサイン担当者
commit-messagexxコミットメッセージの環境設定
ignorexx特定の依存関係またはバージョンを無視する
insecure-external-code-executionxマニフェストファイル内でコードの実行を許可または拒否する
labelsxxプルリクエストに設定するラベル
milestoneXxプルリクエストに設定するマイルストーン
open-pull-requests-limitxxバージョン更新時のオープンなプルリクエスト数を制限する
pull-request-branch-name.separatorxxプルリクエストブランチ名の区切り文字を変更する
rebase-strategyxx自動リベースを無効にする
registriesxDependabot がアクセスできるプライベートリポジトリ
reviewersxxプルリクエストのレビュー担当者
schedule.dayx更新を確認する曜日
schedule.timex更新を確認する時刻 (hh:mm)
schedule.timezonex時刻のタイ� ゾーン(ゾーン識別子)
target-branchxプルリクエストを作成するブランチ
vendorxベンダーまたはキャッシュされた依存関係を更新する
versioning-strategyxxマニフェストのバージョン要件の更新方法

これらのオプションは、次のようなカテゴリに幅広く適合しています。

さらに、open-pull-requests-limit オプションは、Dependabot で開くことのできるバージョン更新の pull request の最大数を変更します。

注: これらの構成オプションの一部は、脆弱性のあるパッケージ マニフェストのセキュリティ更新のために送信される pull request にも影響を与える可能性があります。

脆弱性のあるパッケージマニフェストのセキュリティアップデートは、デフォルトブランチでのみ発生します。 構成オプションが同じブランチに設定されていて (target-branch を使っていないかぎり該当します)、脆弱性のあるマニフェストの package-ecosystemdirectory を指定している� �合、セキュリティ更新の pull request で関連オプションが使われます。

一般に、セキュリティアップデートでは、メタデータの追� や動作の変更など、プルリクエストに影響する設定オプションが使用されます。 セキュリティ更新について詳しくは、「Dependabot security updates を構成する」をご覧く� さい。

package-ecosystem

[必� �] 。 Dependabot で新しいバージョンを監視するパッケージ マネージャーごとに、1 つの package-ecosystem 要� を追� します。 リポジトリには、これらの各パッケージマネージャーの依存関係マニフェストまたはロックファイルも含まれている必要があります。 サポートするパッケージマネージャーに対してベンダリングを有効にする� �合、ベンダリングされた依存関係が必� �ディレクトリに存在する必要があります。 詳しくは、後の「vendor」をご覧く� さい。

以下の表は、各パッケージマネージャについて以下の� �目を示しています。

  • dependabot.yml ファイル中で使う YAML 値
  • パッケージマネージャのサポートされているバージョン
  • プライベートのGitHubリポジトリあるいはレジストリ内の依存関係がサポートされているか
  • ベンダーの依存関係がサポートされているか
パッケージ マネージャーYAML値サポートされているバージョンプライベートリポジトリプライベート レジストリベンダー
Bundlerbundlerv1, v2
Cargocargov1
Composercomposerv1, v2
Dockerdockerv1
Hexmixv1
elm-packageelmv0.19
GitサブモジュールgitsubmoduleN/A (バージョンなし)
GitHub のアクションgithub-actionsN/A (バージョンなし)
Go モジュールgomodv1
GradlegradleN/A (バージョンなし)[2]
MavenmavenN/A (バージョンなし)[3]
npmnpmv6、v7、v8
NuGetnuget<= 4.8[4]
pippipv21.1.2
pipenvpip<= 2021-05-29
pip-compilepip6.1.0
poetrypipv1
Terraformterraform>= 0.13、<= 1.2.x
yarnnpmv1

ヒント: pipenvpoetry などのパッケージ マネージャでは、pip の YAML 値を使う必要があります。 たとえば Python の依存関係を管理するのに poetry を使っており、Dependabot に新しいバージョンのために依存関係のマニフェスト ファイルをモニターさせたい� �合は、dependabot.yml ファイル中で package-ecosystem: "pip" を使ってく� さい。

[2] Dependabot では Gradle は実行されませんが、次のファイルの更新がサポートされます: build.gradlebuild.gradle.kts (Kotlin プロジェクトの� �合)、および apply 宣言を使用して組み込まれた、ファイル名に dependencies を含むファイル。 apply では、apply to、再帰、または高度な構文 (たとえば、ファイル名がプロパティで定義された、Kotlin の mapOf 付き apply) はサポートされていないことに注意してく� さい。

[3] Dependabot では Maven は実行されませんが、pom.xml ファイルの更新はサポートされます。

[4] Dependabot では NuGet CLI は実行されませんが、バージョン 4.8 までのほとんどの機能がサポートされます。

# Basic set up for three package managers

version: 2
updates:

  # Maintain dependencies for GitHub Actions
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "daily"

  # Maintain dependencies for npm
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"

  # Maintain dependencies for Composer
  - package-ecosystem: "composer"
    directory: "/"
    schedule:
      interval: "daily"

directory

[必� �] 。 各パッケージ マネージャー (package.jsonGemfile など) のパッケージ マニフェストの� �所を定義する必要があります。 GitHub Actions 以外のすべてのエコシステ� で、リポジトリのルートに対する相対ディレクトリを定義します。 GitHub Actions の� �合、ディレクトリを / に設定し、.github/workflows でワークフロー ファイルを確認します。

# Specify location of manifest files for each package manager

version: 2
updates:
  - package-ecosystem: "composer"
    # Files stored in repository root
    directory: "/"
    schedule:
      interval: "daily"

  - package-ecosystem: "npm"
    # Files stored in `app` directory
    directory: "/app"
    schedule:
      interval: "daily"

  - package-ecosystem: "github-actions"
    # Workflow files stored in the
    # default location of `.github/workflows`
    directory: "/"
    schedule:
      interval: "daily"

schedule.interval

[必� �] 。 各パッケージマネージャーに対して、新しいバージョンを確認する� �度を定義する必要があります。 デフォルトでは、Dependabotは設定ファイル中のすべての更新を適用する時間をランダ� に割り当てます。 特定の日時を設定するには、schedule.timeschedule.timezone を使うことができます。

  • daily — 月曜日から金曜日までのすべての平日に実行します。
  • weekly — 毎週 1 回実行します。 デフォルトでは月曜日に設定されています。 これを変更するには、schedule.day を使います。
  • monthly — 毎月 1 回実行します。 その月の最初の日に設定されています。
# Set update schedule for each package manager

version: 2
updates:

  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      # Check for updates to GitHub Actions every weekday
      interval: "daily"

  - package-ecosystem: "composer"
    directory: "/"
    schedule:
      # Check for updates managed by Composer once a week
      interval: "weekly"

: schedule では、Dependabot が新しい更新を試みるタイミングを定義します。 た� し、プルリクエストを受け取るタイミングはこれ� けではありません。 更新は、dependabot.yml ファイルへの変更、更新失敗後のマニフェスト ファイルへの変更、または Dependabot security updates に基づいてトリガーできます。 詳しくは、「Dependabot の pull request の� �度」と「Dependabot security updates について」をご覧く� さい。

allow

デフォルトでは、マニフェストあるいはロックファイルで明示的に定義されたすべての依存関係は、最新の状態に保たれます。 allowignore を使用して、バージョン アップデートでどの依存関係を維持するかをカスタマイズできます。 Dependabotは許可されたすべての依存関係をチェックし、それから無視された依存関係やバージョンをフィルタリングします。 そのため、allowignore の両方で一致する依存関係は無視されます。

更新する依存関係をカスタマイズするには、allow オプションを使います。 これは、バージョン及びセキュリティのどちらのアップデートにも適用されます。 以下のオプションを使用できます。

  • dependency-name — 名前が一致する依存関係の更新を許可するために使います。必要に応じて、* を使って 0 個以上の文字と一致させます。 Java の依存関係の� �合、dependency-name 属性の形式は groupId:artifactId になります (例: org.kohsuke:github-api)。

  • dependency-type — 特定の種類の依存関係の更新を許可するために使います。

    依存関係の種類パッケージマネージャーによるサポート更新の許可
    directすべて明示的に定義されたすべての依存関係。
    indirectbundler, pip, composer, cargo直接依存関係の依存関係 (サブ依存関係、または過渡依存関係とも呼ばれる)。
    allすべて明示的に定義されたすべての依存関係。 bundlerpipcomposercargo の� �合は、直接依存関係の依存関係も。
    productionbundler, composer, mix, maven, npm, pip"運用依存関係グループ" の依存関係のみ。
    developmentbundler, composer, mix, maven, npm, pip[Development dependency group] 内の依存関係のみ。
# Use `allow` to specify which dependencies to maintain

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    allow:
      # Allow updates for Lodash
      - dependency-name: "lodash"
      # Allow updates for React and any packages starting "react"
      - dependency-name: "react*"

  - package-ecosystem: "composer"
    directory: "/"
    schedule:
      interval: "daily"
    allow:
      # Allow both direct and indirect updates for all packages
      - dependency-type: "all"

  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "daily"
    allow:
      # Allow only direct updates for
      # Django and any packages starting "django"
      - dependency-name: "django*"
        dependency-type: "direct"
      # Allow only production updates for Sphinx
      - dependency-name: "sphinx"
        dependency-type: "production"

assignees

assignees を使って、パッケージ マネージャーに対して発行されたすべての pull request の個々の担当者を指定します。

target-branch を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラ� の pull request に影響します。

# Specify assignees for pull requests

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    # Add assignees
    assignees:
      - "octocat"

commit-message

デフォルトでは、Dependabot はコミットメッセージの設定を検出し、同様のパターンを使用しようとします。 commit-message オプションを使って、環境設定を明示的に指定します。

サポートされているオプション

注: prefixprefix-development オプションには 15 文字の制限があります。

  • prefix では、すべてのコミット メッセージのプレフィックスを指定します。
  • prefix-development では、Development 依存関係グループ内の依存関係を更新するすべてのコミット メッセージに個別のプレフィックスを指定します。 このオプションの値を指定すると、prefix は、Production 依存関係グループの依存関係の更新にのみ使われます。 これは、bundlercomposermixmavennpmpip でサポートされています
  • include: "scope" では、すべてのプレフィックスの後に、コミットで更新される依存関係のリストが続くことを指定します。

target-branch を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラ� の pull request に影響します。

# Customize commit messages

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    commit-message:
      # Prefix all commit messages with "npm"
      prefix: "npm"

  - package-ecosystem: "composer"
    directory: "/"
    schedule:
      interval: "daily"
    # Prefix all commit messages with "Composer"
    # include a list of updated dependencies
    commit-message:
      prefix: "Composer"
      include: "scope"

  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "daily"
    # Include a list of updated dependencies
    # with a prefix determined by the dependency group
    commit-message:
      prefix: "pip prod"
      prefix-development: "pip dev"
      include: "scope"

上記の例と同じ構成を使用する� �合、pip 開発依存関係グループの requests ライブラリを更新すると、次のコミット メッセージが生成されます。

pip dev: bump requests from 1.0.0 to 1.0.1

ignore

デフォルトでは、マニフェストあるいはロックファイルで明示的に定義されたすべての依存関係は、最新の状態に保たれます。 allowignore を使用して、バージョン アップデートでどの依存関係を維持するかをカスタマイズできます。 Dependabotは許可されたすべての依存関係をチェックし、それから無視された依存関係やバージョンをフィルタリングします。 そのため、allowignore の両方で一致する依存関係は無視されます。

依存関係は、ignore にそれを追� するか、Dependabot によって開かれる pull request で @dependabot ignore コマンドを使うことによって、無視できます。

@dependabot ignore から ignore 条件を作成する

@dependabot ignore コマンドを使って無視された依存関係は、各パッケージ マネージャーに集中的に保存されます。 dependabot.yml ファイルで依存関係の無視を始めると、これらの既存の設定が、構成での ignore の依存関係とともに考慮されます。

リポジトリで "@dependabot ignore" in:comments を検索することで、リポジトリに ignore の設定が保存されているかどうかを確認できます。 この方法で無視された依存関係の無視を解除したいなら、Pull Requestを再度オープンしてく� さい。

@dependabot ignore について詳しくは、「依存関係の更新に関する pull request を管理する」をご覧く� さい。

無視する依存関係とバージョンを指定する

ignore オプションを使って、更新する依存関係をカスタマイズできます。 ignore オプションでは、次のオプションがサポートされています。

  • dependency-name — 名前が一致する依存関係の更新を無視するために使います。必要に応じて、* を使って 0 個以上の文字と一致させます。 Java の依存関係の� �合、dependency-name 属性の形式は groupId:artifactId になります (例: org.kohsuke:github-api)。
  • versions — 特定のバージョンまたはバージョン範囲を無視するために使います。 範囲を定義する� �合は、パッケージ マネージャーの標準パターンを使います(例: npm の� �合は ^1.0.0、Bundler の� �合は ~> 2.0)。
  • update-types — バージョン更新での semver の majorminorpatch の更新など、更新の種類を無視するために使います (例: version-update:semver-patch でパッチの更新が無視されます)。 これを dependency-name: "*" と組み合わせると、すべての依存関係で特定の update-types を無視できます。 現在サポートされているオプションは、version-update:semver-majorversion-update:semver-minorversion-update:semver-patch � けです。 セキュリティの更新はこの設定には影響されません。

versionsupdate-types を一緒に使うと、Dependabot はいずれのセットでもすべての更新を無視します。

target-branch を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラ� の pull request に影響します。

# Use `ignore` to specify dependencies that should not be updated

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"
        # For AWS SDK, ignore all patch updates
      - dependency-name: "aws-sdk"
        update-types: ["version-update:semver-patch"]

: 構成ファイルの ignore オプションにアクセスできない依存関係を追� した� �合でも、Dependabot は、ファイル内のすべての依存関係にアクセスできる� �合は、マニフェストまたはロック ファイルでのバージョン更新のみを実行できます。 詳しくは、「Organization のセキュリティおよび分析設定を管理する」と「Dependabot エラーのトラブルシューティング」をご覧く� さい。

insecure-external-code-execution

package-ecosystem の値が bundlermix、および pip であるパッケージ マネージャーは、バージョン更新プロセスの一環としてマニフェスト内の外部コードを実行できます。 これにより、セキュリティが侵害されたパッケージが認証情� �を盗ん� り、構成済みのレジストリにアクセスしたりすることが可能になる� �合もあります。 updates の構成に registries を追� すると、Dependabot は自動的に外部コードの実行を禁止し、バージョンの更新が失敗することがあります。 insecure-external-code-executionallow に設定することで、この動作をオーバーライドして、bundlermixpip パッケージ マネージャーで外部コードを実行できます。

insecure-external-code-executiondeny に設定することで、この更新設定に registries の設定があるかどうかにかかわらず、明示的に外部コードの実行を拒否できます。

# Allow external code execution when updating dependencies from private registries

version: 2
registries:
  ruby-github:
    type: rubygems-server
    url: https://rubygems.pkg.github.com/octocat/github_api
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
updates:
  - package-ecosystem: "bundler"
    directory: "/rubygems-server"
    insecure-external-code-execution: allow
    registries: "*"
    schedule:
      interval: "monthly"

labels

既定では、Dependabot ではすべての pull request を dependencies ラベル付きで発行します。 複数のパッケージマネージャが定義されている� �合、DependabotはそれぞれのPull Requestに追� のラベルを含めます。 これは、その pull request によってどの言語またはエコシステ� が更新されるかを示します。たとえば、Gradle の更新には java、Git サブモジュールの更新には submodules というようになります。 Dependabotは、リポジトリ中の必要に応じて自動的にこれらのデフォルトラベルを作成します。

既定のラベルをオーバーライドし、パッケージ マネージャーに対して発行されるすべての pull request に代替のラベルを指定するには、labels を使います。 これらのラベルのいずれかがリポジトリで定義されていない� �合は無視されます。 既定のラベルを含むすべてのラベルを無効にするには、labels: [ ] を使います。

target-branch を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラ� の pull request に影響します。

# Specify labels for pull requests

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    # Specify labels for npm pull requests
    labels:
      - "npm"
      - "dependencies"

milestone

パッケージ マネージャーに対して発行されたすべての pull request をマイルストーンと関連付けるには、milestone を使います。 ラベルではなくマイルストーンの数値識別子を指定する必要があります。 マイルストーンを表示した� �合、ページの URL の milestone より後の最後の部分が識別子になります。 (例: https://github.com/<org>/<repo>/milestone/3)。

target-branch を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラ� の pull request に影響します。

# Specify a milestone for pull requests

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    # Associate pull requests with milestone "4"
    milestone: 4

open-pull-requests-limit

デフォルトでは、Dependabot は、バージョン更新に対して最大 5 つのプルリクエストをオープンします。 Dependabot からの未解決の pull request が 5 つあると、Dependabot は、未解決の要求の一部がマージまたは閉じられるまで、新しい要求を開けません。 この制限を変更するには open-pull-requests-limit を使います。 これは、パッケージマネージャーのバージョン更新を一時的に無効にする簡単な方法としても使用できます。

このオプションはセキュリティアップデートに影響を与えません。セキュリティアップデートには、10 件のオープンプルリクエストの内部制限があります。

# Specify the number of open pull requests allowed

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    # Disable version updates for npm dependencies
    open-pull-requests-limit: 0

  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "daily"
    # Allow up to 10 open pull requests for pip dependencies
    open-pull-requests-limit: 10

pull-request-branch-name.separator

Dependabot は、プルリクエストごとにブランチを生成します。 各ブランチ名には、dependabot および更新されるパッケージ マネージャーと依存関係が含まれます。 既定では、これらの部分は / 記号で区切られています (例: dependabot/npm_and_yarn/next_js/acorn-6.4.1)。

別の区切り記号を指定するには pull-request-branch-name.separator を使います。 これは、"-"_/ のいずれかです。 ハイフン記号は、引用符で囲む必要があります。囲まない� �合、空の YAML リストを開始すると解釈されます。

target-branch を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラ� の pull request に影響します。

# Specify a different separator for branch names

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    pull-request-branch-name:
      # Separate sections of the branch name with a hyphen
      # for example, `dependabot-npm_and_yarn-next_js-acorn-6.4.1`
      separator: "-"

rebase-strategy

デフォルトでは、DependabotはオープンなPull Requestへの変更を検出すると、そのPull Requestを自動的にリベースします。 この動作を無効にするには、rebase-strategy を使います。

利用可能なリベース戦略

  • 自動リベースを無効にするには disabled
  • 既定の動作を使い、変更が検出されたときに開かれている pull request をリベースするには auto

target-branch を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラ� の pull request に影響します。

# Disable automatic rebasing

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    # Disable rebasing for npm pull requests
    rebase-strategy: "disabled"

registries

バージョン更新の実行時に Dependabot がプライベート パッケージ レジストリにアクセスできるようにするには、関係する updates の構成に registries の設定を含める必要があります。 registries"*" に設定することで、定義されたすべてのリポジトリを使用できるようにすることができます。 また、更新が使用できるレジストリをリストすることもできます。 これを行うには、dependabot.yml ファイルの最上位の registries セクションで定義されているレジストリの名前を使います。 詳しくは、後の「プライベート レジストリの設定オプション」をご覧く� さい。

Dependabot が bundlermixpip パッケージ マネージャーを使ってプライベート レジストリの依存関係を更新できるようにするため、外部コードの実行を許可できます。 詳しくは、上の「insecure-external-code-execution」をご覧く� さい。

# Allow Dependabot to use one of the two defined private registries
# when updating dependency versions for this ecosystem

version: 2
registries:
  maven-github:
    type: maven-repository
    url: https://maven.pkg.github.com/octocat
    username: octocat
    password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
  npm-npmjs:
    type: npm-registry
    url: https://registry.npmjs.org
    username: octocat
    password: ${{secrets.MY_NPM_PASSWORD}}
updates:
  - package-ecosystem: "gitsubmodule"
    directory: "/"
    registries:
      - maven-github
    schedule:
      interval: "monthly"

reviewers

パッケージ マネージャーに対して発行されたすべての pull request に個々のレビュー担当者またはレビュー担当者のチー� を指定するには、reviewers を使います。 チー� を @mentioning している� �合と同様に、Organization を含む完全なチー� 名を使う必要があります。

target-branch を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラ� の pull request に影響します。

# Specify reviewers for pull requests

version: 2
updates:
  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "daily"
    # Add reviewers
    reviewers:
      - "octocat"
      - "my-username"
      - "my-org/python-team"

schedule.day

weekly の更新スケジュールを設定すると、既定では、Dependabot は月曜日の、リポジトリに設定されたランダ� な時刻に、新しいバージョンをチェックします。 更新をチェックする代替日を指定するには、schedule.day を使います。

サポート状況の値

  • monday
  • tuesday
  • wednesday
  • thursday
  • friday
  • saturday
  • sunday
# Specify the day for weekly checks

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
      # Check for npm updates on Sundays
      day: "sunday"

schedule.time

既定では、Dependabot は、リポジトリに設定されたランダ� な時刻に、新しいバージョンをチェックします。 更新をチェックする別の時刻を指定するには、schedule.time を使います (形式: hh:mm)。

# Set a time for checks
version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
      # Check for npm updates at 9am UTC
      time: "09:00"

schedule.timezone

既定では、Dependabot は、リポジトリに設定されたランダ� な時刻に、新しいバージョンをチェックします。 別のタイ�  ゾーンを指定するには、schedule.timezone を使います。 タイ�  ゾーン識別子は、iana が管理するタイ�  ゾーン データベースのものである必要があります。 詳しくは、tz データベースのタイ�  ゾーンの一覧をご覧く� さい。

# Specify the timezone for checks

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
      time: "09:00"
      # Use Japan Standard Time (UTC +09:00)
      timezone: "Asia/Tokyo"

target-branch

デフォルトでは、Dependabot はデフォルトのブランチでマニフェストファイルをチェックし、このブランチに対するバージョン更新のプルリクエストを発行します。 マニフェスト ファイルと pull request に別のブランチを指定するには、target-branch を使います。 このオプションを使用すると、このパッケージマネージャーの設定は、セキュリティアップデートのために発行されたプルリクエストに影響しなくなります。

# Specify a non-default branch for pull requests for pip

version: 2
updates:
  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "daily"
    # Raise pull requests for version updates
    # to pip against the `develop` branch
    target-branch: "develop"
    # Labels on pull requests for version updates only
    labels:
      - "pip dependencies"

  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
      # Check for npm updates on Sundays
      day: "sunday"
    # Labels on pull requests for security and version updates
    labels:
      - "npm dependencies"

vendor

依存関係を更新するときに、依存関係のベンダリングを Dependabot に指示するには、vendor オプションを使います。 gomod を使っている� �合は、Dependabot がこのツールに対するベンダリングを自動的に検出するため、このオプションを使わないでく� さい。

# Configure version updates for both dependencies defined in manifests and vendored dependencies

version: 2
updates:
  - package-ecosystem: "bundler"
    # Raise pull requests to update vendored dependencies that are checked in to the repository
    vendor: true
    directory: "/"
    schedule:
      interval: "weekly"

Dependabot は、リポジトリの特定の� �所にあるベンダリングされた依存関係のみを更新します。

パッケージ マネージャーベンダリングされた依存関係のための必� �パス詳細情� �
bundler依存関係は vendor/cache ディレクトリにある必要があります。
他のファイル パスはサポートされません。
bundle cache ドキュメント
gomodパス要件なし (通常、依存関係は vendor ディレクトリにあります)go mod vendor ドキュメント

versioning-strategy

Dependabot がマニフェストファイルを編集してバージョンを更新する� �合、次の全体的な戦略を使用します。

  • アプリケーションでは、バージョン要件が増えます(npm、pip、Composer など)。
  • ライブラリでは、バージョンの範囲が広がります(Bundler や Cargo など)。

サポートされているパッケージ マネージャーでこの動作を変更するには、versioning-strategy オプションを使います。

target-branch を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラ� の pull request に影響します。

利用可能な更新戦略

オプションサポートしているものアクション
lockfile-onlybundler, cargo, composer, mix, npm, pipロックファイルを更新するプルリクエストのみを作成します。 パッケージマニフェストの変更が必要になる新しいバージョンは無視します。
autobundler, cargo, composer, mix, npm, pip前述のデフォルトの戦略に従います。
widencomposer, npm可能であれば、バージョン要件を緩和して、新旧両方のバージョンを含めます。
increasebundler, composer, npm新しいバージョンに一致するように、常にバージョン要件を増やします。
increase-if-necessarybundler, composer, npm新しいバージョンで必要な� �合にのみ、バージョン要件を増やします。
# Customize the manifest version strategy

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    # Update the npm manifest file to relax
    # the version requirements
    versioning-strategy: widen

  - package-ecosystem: "composer"
    directory: "/"
    schedule:
      interval: "daily"
    # Increase the version requirements for Composer
    # only when required
    versioning-strategy: increase-if-necessary

  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "daily"
    # Only allow updates to the lockfile for pip and
    # ignore any version updates that affect the manifest
    versioning-strategy: lockfile-only

プライベートレジストリの設定オプション

最上位の registries キーは省略可能です。 このキーでは、Dependabot がプライベートパッケージレジストリにアクセスするために使用する認証の詳細を指定できます。

注: プライベート ネットワーク上のファイアーウォールの内側のプライベート レジストリはサポートされていません。

registries キーの値は連想配列で、その各要� は、特定のレジストリを指定するキーと、そのレジストリへのアクセスに必要な設定を指定する連想配列の値により構成されます。 次の dependabot.yml ファイルでは、ファイルの registries セクションで dockerhub として指定されたレジストリが構成された後、ファイルの updates でそれが参照されています。

# Minimal settings to update dependencies in one private registry

version: 2
registries:
  dockerhub: # Define access for a private registry
    type: docker-registry
    url: registry.hub.docker.com
    username: octocat
    password: ${{secrets.DOCKERHUB_PASSWORD}}
updates:
  - package-ecosystem: "docker"
    directory: "/docker-registry/dockerhub"
    registries:
      - dockerhub # Allow version updates for dependencies in this registry
    schedule:
      interval: "monthly"

以下のオプションを使用して、アクセス設定を指定します。 レジストリの設定には、typeurl、そして通常は usernamepassword の組み合わせまたは token を含める必要があります。

オプション� � � � � � � � � � � � � � � � 説明
typeレジストリのタイプを指定します。 タイプの一覧については下記をご覧く� さい。
urlこのレジストリの依存関係にアクセスするために使用する URL。 プロトコルはオプションです。 指定しないと、https:// が想定されます。 Dependabot が必要に応じて末尾のスラッシュを追� または無視します。
usernameDependabot がレジストリにアクセスするために使用するユーザ名。
password指定したユーザのパスワードを含む Dependabot シークレットへのリファレンス。 詳しくは、「Dependabot に対する暗号化されたシークレットを管理する」をご覧く� さい。
keyこのレジストリへのアクセスキーを含むDependabotシークレットへの参照 詳しくは、「Dependabot に対する暗号化されたシークレットを管理する」をご覧く� さい。
tokenこのレジストリへのアクセストークンを含む Dependabot シークレットへのリファレンス。 詳しくは、「Dependabot に対する暗号化されたシークレットを管理する」をご覧く� さい。
replaces-basetype: python-index であるレジストリでは、ブール値が true の� �合、pip は、Python Package Index のベース URL (既定では https://pypi.org/simple) ではなく、指定された URL を使って依存関係を解決します。

各構成の type には、特定の設定を指定する必要があります。 タイプによっては、複数の接続方法を使用できます。 以下のセクションでは、各 type に使う必要がある設定の詳細を説明します。

composer-repository

composer-repository タイプは、ユーザー名とパスワードをサポートします。

registries:
  composer:
    type: composer-repository
    url: https://repo.packagist.com/example-company/
    username: octocat
    password: ${{secrets.MY_PACKAGIST_PASSWORD}}

docker-registry

注: Azure Container Registry (ACR) はサポートされていません。

docker-registry タイプは、ユーザー名とパスワードをサポートします。

registries:
  dockerhub:
    type: docker-registry
    url: https://registry.hub.docker.com
    username: octocat
    password: ${{secrets.MY_DOCKERHUB_PASSWORD}}

docker-registry タイプは、静的な AWS 資� �情� �を使って Amazon ECR からプルするためにも使用できます。

registries:
  ecr-docker:
    type: docker-registry
    url: https://1234567890.dkr.ecr.us-east-1.amazonaws.com
    username: ${{secrets.ECR_AWS_ACCESS_KEY_ID}}
    password: ${{secrets.ECR_AWS_SECRET_ACCESS_KEY}}

git

git タイプは、ユーザー名とパスワードをサポートします。

registries:
  github-octocat:
    type: git
    url: https://github.com
    username: x-access-token
    password: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}

hex-organization

hex-organization タイプは、Organization とキーをサポートします。

registries:
  github-hex-org:
    type: hex-organization
    organization: github
    key: ${{secrets.MY_HEX_ORGANIZATION_KEY}}

maven-repository

maven-repository タイプは、ユーザー名とパスワードをサポートします。

registries:
  maven-artifactory:
    type: maven-repository
    url: https://artifactory.example.com
    username: octocat
    password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}

npm-registry

npm-registry タイプは、ユーザー名とパスワード、またはトークンをサポートします。

ユーザー名とパスワードを使うとき、.npmrc の認証トークンには base64 でエンコードされた _password を含めることができます。た� し、Dependabot の構成ファイルで参照されるパスワードは、元の (エンコードされていない) パスワードである必要があります。

registries:
  npm-npmjs:
    type: npm-registry
    url: https://registry.npmjs.org
    username: octocat
    password: ${{secrets.MY_NPM_PASSWORD}}  # Must be an unencoded password
registries:
  npm-github:
    type: npm-registry
    url: https://npm.pkg.github.com
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}

nuget-feed

nuget-feed タイプは、ユーザー名とパスワード、またはトークンをサポートします。

registries:
  nuget-example:
    type: nuget-feed
    url: https://nuget.example.com/v3/index.json
    username: octocat@example.com
    password: ${{secrets.MY_NUGET_PASSWORD}}
registries:
  nuget-azure-devops:
    type: nuget-feed
    url: https://pkgs.dev.azure.com/.../_packaging/My_Feed/nuget/v3/index.json
    token: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}

python-index

python-index タイプは、ユーザー名とパスワード、またはトークンをサポートします。

registries:
  python-example:
    type: python-index
    url: https://example.com/_packaging/my-feed/pypi/example
    username: octocat
    password: ${{secrets.MY_BASIC_AUTH_PASSWORD}}
    replaces-base: true
registries:
  python-azure:
    type: python-index
    url: https://pkgs.dev.azure.com/octocat/_packaging/my-feed/pypi/example
    token: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}
    replaces-base: true

rubygems-server

rubygems-server タイプは、ユーザー名とパスワード、またはトークンをサポートします。

registries:
  ruby-example:
    type: rubygems-server
    url: https://rubygems.example.com
    username: octocat@example.com
    password: ${{secrets.MY_RUBYGEMS_PASSWORD}}
registries:
  ruby-github:
    type: rubygems-server
    url: https://rubygems.pkg.github.com/octocat/github_api
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}

terraform-registry

terraform-registry タイプは、トークンをサポートします。

registries:
  terraform-example:
    type: terraform-registry
    url: https://terraform.example.com
    token: ${{secrets.MY_TERRAFORM_API_TOKEN}}