注: この機能を使用するには、サイト管理者が your GitHub Enterprise Server instanceの Dependabot updatesを設定する必要があります。 詳細については、「企業に対する Dependabot の有効化」を参照してく� さい。
Dependabot version updates について
Dependabot は、依存関係を維持する手間を省きます。 これを使用して、リポジトリが依存するパッケージおよびアプリケーションの最新リリースに自動的に対応できるようにすることができます。
dependabot.yml
構成ファイルをリポジトリにチェックインして、Dependabot version updates を有効にします。 設定ファイルは、リポジトリに保存されているマニフェストまたは他のパッケージ定義ファイルの� �所を指定します。 Dependabot ではこの情� �を使用して、期限切れのパッケージとアプリケーションが検査されます。 Dependabot では、依存関係のセマンティック バージョニング (semver) を調べて、依存関係の新しいバージョンの有無が判断され、そのバージョンへ更新すべきかどうかが決定されます。 特定のパッケージマネージャーでは、Dependabot version updates もベンダをサポートしています。 ベンダ (またはキャッシュ) された依存関係は、マニフェストで参照されるのではなく、リポジトリ内の特定のディレクトリにチェックインされる依存関係です。 パッケージサーバーが利用できない� �合でも、ビルド時にベンダ依存関係を利用できます。 Dependabot version updates は、ベンダの依存関係をチェックして新しいバージョンを確認し、必要に応じて更新するように設定できます。
Dependabot で以前の依存関係が特定されると、マニフェストを依存関係の最新バージョンに更新する pull request が発行されます。 ベンダーの依存関係の� �合、Dependabot はプルリクエストを生成して、古い依存関係を新しいバージョンに直接置き換えます。 テストに合� �したことを確認し、プルリクエストの概要に含まれている変更履歴とリリースノートを確認して、マージします。 詳細については、「Dependabot バージョンの更新の構成」を参照してく� さい。
セキュリティ更新プログラ� を有効にすると、Dependabot でも pull request が発行され、脆弱性のある依存関係を更新します。 詳細については、「Dependabot security updatesについて」を参照してく� さい。
Dependabot によって pull request が発生する� �合、その pull request は、"セキュリティ" 更新プログラ� か "バージョン" アップデートを対象としたものである可能性があります。
- Dependabot security updates は、既知の脆弱性を持つ依存関係を更新するのに役立つ、自動化された pull request です。
- Dependabot version updates は、依存関係に脆弱税がなくても、依存関係を最新の状態に維持する、自動化された pull request です。 バージョンアップデートの状態をチェックするには、リポジトリのInsights(インサイト)タブ、続いてDependency Graph(依存関係グラフ)、そしてDependabotにアクセスしてく� さい。
Dependabot のプルリクエストの� �度
設定ファイルで、新しいバージョンの各エコシステ� をチェックする� �度を、毎日、毎週、毎月の中から指定します。
最初にバージョンアップデートを有効にすると、古くなった依存関係が大量にあり、中には最新バージョンまでにいくつものバージョンが存在しているものもあるかもしれません。 Dependabotは、有効化されるとすぐに古くなった依存関係をチェックします。 設定が更新するマニフェストファイルの数に応じて、設定ファイルの追� 後数分のうちに、バージョンアップデートの新しいPull Requestが発行されるかもしれません。 Dependabotは、設定ファイルに対するその後の変更に対しても更新を実行します。
Dependabotは、アップデートの失敗後にマニフェストファイルを変更した際にもPull Requestを作成することがあります。 これは、アップデート失敗の原� となった依存関係の削除などのマニフェストへの変更によって、新たにトリガーされたアップデートが成功するかもしれないためです。
Pull Requestを管理可能でレビューしやすく保つために、Dependabotは依存関係を最新バージョンにし始めるためのPull Requestを最大で5つまで発行します。 次にスケジュールされているアップデートの前にこれらの最初のPull Requestの一部をマージした� �合、残りのPull Requestは上限まで次のアップデート時にオープンとなります。 オープン pull request の最大数は、open-pull-requests-limit
構成オプションを設定することで変更できます。
セキュリティアップデートを有効にした� �合、セキュリティアップデートの追� に対するプルリクエストが表示されることがあります。 これらは、デフォルト ブランチへの依存関係に対する Dependabot アラートによってトリガーされます。 Dependabot はプルリクエストを自動的に生成し、脆弱性のある依存関係を更新します。
サポートされているリポジトリとエコシステ�
サポートされているパッケージマネージャーのいずれかの依存関係マニフェストまたはロックファイルを含むリポジトリのバージョン更新を設定できます。 一部のパッケージマネージャーでは、依存関係のベンダを設定することもできます。 詳細については、「dependabot.yml ファイルの構成オプション」を参照してく� さい。
セキュリティあるいはバージョンアップデートを実行する際に、エコシステ� によってはアップデートが成功したことを検証するためにすべての依存関係をソースから解決できなければならないことがあります。 マニフェストあるいはロックファイルにプライベートの依存関係が含まれているなら、Dependabotはそれらの依存関係がホストされている� �所にアクセスできなければなりません。 Organizationのオーナーは、同じOrganization内のプロジェクトに対する依存関係を含むプライベートリポジトリへのアクセス権をDependabotに付与できます。 詳細については、「Managing security and analysis settings for your organization (組織のセキュリティと分析の設定を管理する)」を参照してく� さい。 リポジトリの dependabot.yml 構成ファイルで、プライベート レジストリへのアクセスを構成できます。 詳細については、「dependabot.yml ファイルの構成オプション」を参照してく� さい。
Dependabot は、すべてのパッケージマネージャーに対してプライベートな GitHub 依存関係をサポートしません。 詳細は、以下の表をご覧く� さい。
以下の表は、各パッケージマネージャについて以下の� �目を示しています。
- dependabot.yml ファイル中で使う YAML 値
- パッケージマネージャのサポートされているバージョン
- プライベートのGitHubリポジトリあるいはレジストリ内の依存関係がサポートされているか
- ベンダーの依存関係がサポートされているか
パッケージ マネージャー | YAML値 | サポートされているバージョン | プライベートリポジトリ | プライベート レジストリ | ベンダー |
---|---|---|---|---|---|
Bundler | bundler | v1, v2 | ✓ | ✓ | |
Cargo | cargo | v1 | ✓ | ✓ | |
Composer | composer | v1, v2 | ✓ | ✓ | |
Docker | docker | v1 | ✓ | ✓ | |
Hex | mix | v1 | ✓ | ||
elm-package | elm | v0.19 | ✓ | ✓ | |
Gitサブモジュール | gitsubmodule | N/A (バージョンなし) | ✓ | ✓ | |
GitHub のアクション | github-actions | N/A (バージョンなし) | ✓ | ✓ | |
Go モジュール | gomod | v1 | ✓ | ✓ | ✓ |
Gradle | gradle | N/A (バージョンなし)[2] | ✓ | ✓ | |
Maven | maven | N/A (バージョンなし)[3] | ✓ | ✓ | |
npm | npm | v6、v7、v8 | ✓ | ✓ | |
NuGet | nuget | <= 4.8[4] | ✓ | ✓ | |
pip | pip | v21.1.2 | ✓ | ||
pipenv | pip | <= 2021-05-29 | ✓ | ||
pip-compile | pip | 6.1.0 | ✓ | ||
poetry | pip | v1 | ✓ | ||
Terraform | terraform | >= 0.13、<= 1.2.x | ✓ | ✓ | |
yarn | npm | v1 | ✓ | ✓ |
ヒント: pipenv
や poetry
などのパッケージ マネージャでは、pip
の YAML 値を使う必要があります。 たとえば Python の依存関係を管理するのに poetry
を使っており、Dependabot に新しいバージョンのために依存関係のマニフェスト ファイルをモニターさせたい� �合は、dependabot.yml ファイル中で package-ecosystem: "pip"
を使ってく� さい。
[2] Dependabot では Gradle は実行されませんが、次のファイルの更新がサポートされます: build.gradle
、build.gradle.kts
(Kotlin プロジェクトの� �合)、および apply
宣言を使用して組み込まれた、ファイル名に dependencies
を含むファイル。 apply
では、apply to
、再帰、または高度な構文 (たとえば、ファイル名がプロパティで定義された、Kotlin の mapOf
付き apply
) はサポートされていないことに注意してく� さい。
[3] Dependabot では Maven は実行されませんが、pom.xml
ファイルの更新はサポートされます。
[4] Dependabot では NuGet CLI は実行されませんが、バージョン 4.8 までのほとんどの機能がサポートされます。
リポジトリですでに依存関係管理にインテグレーションを使用している� �合は、Dependabot を有効にする前にそれを無効にする必要があります。
Dependabot バージョン更新の通知について
GitHub で通知をフィルター処理して、Dependabot によって作成された pull request の通知を表示できます。 詳細については、「受信トレイからの通知の管理」を参照してく� さい。