注: この機能を使用するには、サイト管理者が your GitHub Enterprise Server instanceの Dependabot updatesを設定する必要があります。 詳細については、「企業に対する Dependabot の有効化」を参照してく� さい。
Dependabot エラーについて
Dependabot は、依存関係を更新するPull Requestを生成します。 リポジトリの設定によっては、Dependabot がバージョン更新やセキュリティアップデートのPull Requestを発行する� �合があります。 これらのPull Requestは、他のPull Requestと同じ方法で管理しますが、追� のコマンドもいくつか用意されています。 Dependabot 依存関係の更新の有効化に関する詳細については、「Dependabot security updates の更新」、および Dependabot バージョン アップデータの有効化と無効化に関する記事を参照してく� さい。
何らかが Dependabot によるプルリクエストの発行を妨げる� �合、エラーとして� �告されます。
Dependabot security updates でエラーを調査する
Dependabot が Dependabot アラートを修正するためのプルリクエストの作成をブロックされると、アラートにエラーメッセージを投稿します。 Dependabot alerts ビューには、未解決のアラートのリストが表示されます。 アラート ビューにアクセスするには、リポジトリの [Security](セキュリティ) タブで [Dependabot alerts] をクリックします。 脆弱性のある依存関係を修正するプルリクエストが生成された� �合、アラートにはそのプルリクエストへのリンクが含まれます。
アラートに pull request リンクがない理由は、いくつかあります。
-
Dependabot security updates がリポジトリに対して有効になっていない。
-
アラートが、ロックファイルで明示的に定義されていない間接的または推移的な依存関係に対するものである。
-
エラーにより Dependabot のプルリクエストの作成がブロックされました。
エラーによって Dependabot によるプルリクエストの作成がブロックされた� �合は、アラートをクリックしてエラーの詳細を表示できます。
Dependabot version updates でエラーを調査する
Dependabot がエコシステ� の依存関係を更新するためのプルリクエストの作成をブロックされると、マニフェストファイルにエラーアイコンを投稿します。 Dependabot によって管理されるマニフェスト ファイルの一覧は、[Dependabot] タブに表示されます。このタブにアクセスするには、リポジトリの [Insights](インサイト) タブで [Dependency graph](依存関係グラフ) をクリックし、 [Dependabot] タブをクリックします。
マニフェスト ファイルのログを表示するには、 [Last checked TIME ago](最後のチェックは <時間> 前) リンクをクリックし、 [View logs](ログの表示) をクリックします。
Dependabot エラーを理解する
セキュリティアップデートのプルリクエストは、脆弱性のある依存関係を、脆弱性の修正を含む最小バージョンにアップグレードします。 対照的に、バージョン更新のプルリクエストは、パッケージマニフェストおよび Dependabot 設定ファイルで許可されている最新バージョンに依存関係をアップグレードするように動作します。 したがって、一部のエラーは 1 つの種類の更新に固有になります。
Dependabot が DEPENDENCY を脆弱でないバージョンに更新できない
セキュリティ アップデートのみ。 Dependabot は、このリポジトリの依存関係グラフの他の依存関係を壊さずに、脆弱性のある依存関係を安全なバージョンに更新するための pull request を作成することはできません。
依存関係を含むすべてのアプリケーションには、依存関係グラフ、つまり、アプリケーションが直接または間接的に依存するすべてのパッケージバージョンの有向非巡回グラフがあります。 依存関係が更新されるたびに、このグラフを解決する必要があります。解決しない� �合、アプリケーションがビルドされません。 npm や RubyGems のように、エコシステ� に深く複雑な依存関係グラフがある� �合、エコシステ� 全体をアップグレードせずに単一の依存関係をアップグレードすることは不可能な� �合があります。
この問題を回避する最善策としては、たとえばバージョン更新を有効化するなどして、最新のリリースバージョンで最新の状態に保つことです。 これにより、依存関係グラフを壊さない単純なアップグレードで 1 つの依存関係の脆弱性を解決できる可能性が高くなります。 詳しくは、「Dependabotの構成」を参照してく� さい。
最新バージョンのオープンプルリクエストがすでに存在するため、Dependabot を必要なバージョンに更新できない
セキュリティ アップデートのみ。 この依存関係を更新するための pull request は既に開かれているため、Dependabot で脆弱性のある依存関係を安全なバージョンに更新するための pull request は作成されません。 このエラーは、単一の依存関係で脆弱性が検出され、依存関係を最新バージョンに更新するためのオープンプルリクエストがすでに存在する� �合に表示されます。
オープンプルリクエストを確認して、変更が安全であると確信したらすぐにマージするか、そのプルリクエストをクローズして新しいセキュリティアップデートプルリクエストをトリガーする、という 2 つのオプションがあります。 詳細については、「Dependabot のプル リクエストを手動でトリガーする」を参照してく� さい。
Dependabot が更新中にタイ� アウトした
Dependabot は、必要な更新を評価してプルリクエストを準備するために許可された最大時間よりも長く時間を要しました。 このエラーは、通常、多くのマニフェスト ファイルを含む大規模なリポジトリでのみ発生します。たとえば、数百の package.json ファイルを含む npm や yarn monorepo プロジェクトなどです。 Composer エコシステ� の更新も評価に時間がかかり、タイ� アウトする可能性があります。
これは対処が難しいエラーです。 バージョン更新がタイ� アウトする� �合は、allow
パラメーターを使用して更新する最も重要な依存関係を指定するか、または ignore
パラメーターを使用して更新から一部の依存関係を除外できます。 設定を更新すると、Dependabot がバージョンの更新を確認し、利用可能な時間内にプルリクエストを生成できます。
セキュリティアップデートがタイ� アウトする� �合、たとえばバージョン更新を有効にするなどして依存関係を最新に保つことで、タイ� アウトが発生する可能性を減らすことができます。 詳細については、「Dependabot security updates バージョンの更新の構成」を参照してく� さい。
Dependabot で追� のプルリクエストをオープンできない
Dependabot が生成するオープンプルリクエスト数には制限があります。 上限に達すると、新しいプルリクエストはオープンされず、このエラーが� �告されます。 エラーを解決する最善策として、複数のオープンプルリクエストを確認してマージします。
セキュリティアップデートとバージョン更新のプルリクエストには個別の制限があるため、オープンなバージョン更新のプルリクエストがセキュリティアップデートのプルリクエストの作成をブロックすることはできません。 セキュリティアップデートのプルリクエストの上限は 10 件です。 既定では、バージョン アップデートの上限は 5 件ですが、構成ファイルで open-pull-requests-limit
パラメータを使用してこれを変更できます。 詳細については、「dependabot.yml ファイルの構成オプション」を参照してく� さい。
このエラーを解決する最善策として、既存のプルリクエストの一部をマージまたはクローズして、新しいプルリクエストを手動でトリガーします。 詳細については、「Dependabot のプル リクエストを手動でトリガーする」を参照してく� さい。
Dependabot が依存関係を解決またはアクセスできない
Dependabot がリポジトリで依存関係のリファレンスを更新する必要があるかどうかを確認しようとしたが、1 つ以上のリファレンスファイルにアクセスできない� �合、操作は失敗し、「Dependabot は LANGUAGE 依存関係ファイルを解決できません」というエラーメッセージが表示されます。 API エラーの種類は git_dependencies_not_reachable
です。
同様に、Dependabot が依存関係が存在するプライベートパッケージレジストリにアクセスできない� �合、次のエラーのいずれかが生成されます。
- "Dependabot can't reach a dependency in a private package registry" (Dependabot はプライベート パッケージ レジストリ内の依存関係に到達できません)
(API エラーの種類:private_source_not_reachable
) - "Dependabot can't authenticate to a private package registry" (Dependabot はプライベート パッケージ レジストリを認証できません)
(API エラーの種類:private_source_authentication_failure
) - "Dependabot timed out while waiting for a private package registry" (プライベート パッケージ レジストリの待機中に Dependabot がタイ� アウトしました)
(API エラーの種類:private_source_timed_out
) - "Dependabot couldn't validate the certificate for a private package registry" (Dependabot はプライベート パッケージ レジストリの証明書を検証できませんでした)
(API エラーの種類:private_source_certificate_failure
)
Dependabot が依存関係のリファレンスを正常に更新できるようにするには、すべての依存関係のリファレンスがアクセス可能な� �所でホストされていることを確認してく� さい。
バージョンアップデートのみ。 セキュリティあるいはバージョンアップデートを実行する際に、エコシステ� によってはアップデートが成功したことを検証するためにすべての依存関係をソースから解決できなければならないことがあります。 マニフェストあるいはロックファイルにプライベートの依存関係が含まれているなら、Dependabotはそれらの依存関係がホストされている� �所にアクセスできなければなりません。 Organizationのオーナーは、同じOrganization内のプロジェクトに対する依存関係を含むプライベートリポジトリへのアクセス権をDependabotに付与できます。 詳細については、「Managing security and analysis settings for your organization (組織のセキュリティと分析の設定を管理する)」を参照してく� さい。 リポジトリの dependabot.yml 構成ファイルで、プライベート レジストリへのアクセスを構成できます。 詳細については、「dependabot.yml ファイルの構成オプション」を参照してく� さい。 さらに、 Dependabot はすべてのパッケージマネージャーに対して、プライべートな GitHub 依存関係をサポートしません。 詳細については、「GitHub Dependabot のバージョン アップデートについて」を参照してく� さい。
Dependabot のプルリクエストを手動でトリガーする
Dependabot のブロックを解除すると、プルリクエストを作成するための新規の試行を手動でトリガーできます。
- セキュリティ アップデート — 修正したエラーを示す Dependabot アラートを表示し、 [Create Dependabot security update](Dependabot のセキュリティ アップデートを作成する) をクリックします。
- バージョン アップデート — リポジトリの [Insights](インサイト) タブで [Dependency graph](依存関係グラフ) をクリックし、 [Dependabot] タブをクリックします。 [Last checked TIME ago](最後のチェックは <時間> 前) をクリックして、バージョン アップデートの最後のチェックの間に Dependabot によって生成されたログ ファイルを表示します。 [更新プログラ� のチェック] をクリックします。