Skip to main content

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

Dependabot エラー

Dependabot では、依存関係が自動的に維持され、コードのセキュリティと最新の状態が維持されます。 このリファレンスは、自動更新を続行できるように、問題を診断して解決するのに役立ちます。

依存関係 Dependabot 更新中にエラーが発生した場合は、この参照を使用して、一般的な問題を診断して修正できます。

エラーを表示する方法

セキュリティ更新プログラムのエラー

Dependabot Dependabotアラートを修正するプル要求の作成がブロックされると、アラートにエラー メッセージが投稿されます。 Dependabot alerts ビューには、まだ解決されていないアラートの一覧が表示されます。 アラート ビューにアクセスするには、リポジトリの [Dependabot alerts] タブの [ Security] をクリックします。 脆弱性のある依存関係を修正するプルリクエストが生成された場合、アラートにはそのプルリクエストへのリンクが含まれます。

Dependabot alerts ビューのスクリーンショット。 あるアラートの右側で、"#353" というタイトルの pull request へのリンクがオレンジ色の枠線で囲まれています。

アラートには、いくつかの理由でプル要求リンクがない場合があります。

  1. Dependabot security updates はリポジトリに対して有効になっていません。
  2. アラートが、ロックファイルで明示的に定義されていない間接的または推移的な依存関係に対するものである。
  3. プル要求 Dependabot 作成がブロックされたエラー。

エラーの詳細を表示するには、アラートをクリックします。

バージョン更新エラー

Dependabotエコシステムの依存関係を更新するプル要求の作成がブロックされている場合は、ジョブ ログの一覧を表示してエラーの詳細を確認できます。

ジョブ ログの一覧には、リポジトリの依存関係グラフからアクセスできます。 依存関係グラフから Dependabot タブをクリックし、影響を受けるマニフェスト ファイルの右側にある [最近の更新ジョブ] をクリックします。

特定のジョブの完全なログ ファイルを表示するには、目的のログ エントリの右側にある [ ログの表示] をクリックします。

マニフェスト ファイルの Dependabot ジョブ ログ エントリのスクリーンショット。 [ログを表示] というボタンが濃いオレンジ色の枠線で強調表示されます。

詳しくは、「Dependabot ジョブ ログの表示」をご覧ください。

依存関係解決エラー

DEPENDENCY を脆弱性のないバージョンに更新できない

適用対象: セキュリティ更新プログラムのみ

エラーメッセージ:Dependabot cannot update DEPENDENCY to a non-vulnerable version

Dependabot では、このリポジトリの依存関係グラフ内の他の依存関係を中断することなく、脆弱な依存関係をセキュリティで保護されたバージョンに更新するプル要求を作成できません。

依存関係を含むすべてのアプリケーションには、依存関係グラフ、つまり、アプリケーションが直接または間接的に依存するすべてのパッケージバージョンの有向非巡回グラフがあります。 依存関係が更新されるたびに、このグラフを解決する必要があります。解決しない場合、アプリケーションがビルドされません。 npm や RubyGems のように、エコシステムに深く複雑な依存関係グラフがある場合、エコシステム全体をアップグレードせずに単一の依存関係をアップグレードすることは不可能な場合があります。

解像 度: バージョンの更新を有効にするなどして、最新のリリースバージョンを最新の状態に保つ。 これにより、依存関係グラフを壊さない単純なアップグレードで 1 つの依存関係の脆弱性を解決できる可能性が高くなります。 「Dependabot バージョンの更新の構成」を参照してください。

アラートなしで依存関係を更新する

適用対象: セキュリティ更新プログラムのみ

エラーメッセージ:Dependabot tries to update dependencies without an alert

Dependabot は、すべてのエコシステムに対して脆弱である、明示的に定義された推移的な依存関係を更新します。 npm、 Dependabot は、推移的な依存関係を修正する唯一の方法である場合、親の依存関係も更新するプル要求を発生させます。

たとえば、A に解決され、~2.0.0 バージョン B への推移的な依存関係がある、~1.0.0 バージョン 1.0.1 への依存関係があるプロジェクトなどです。

my project
|
--> A (2.0.0) [~2.0.0]
       |
       --> B (1.0.1) [~1.0.0]

Bバージョンの<2.0.0に対してセキュリティ脆弱性がリリースされ、2.0.0でパッチが利用可能な場合、DependabotはBの更新を試みますが、Aによる制限により、脆弱なバージョンが低い場合にのみ許可されるため、それが不可能であることがわかります。 この脆弱性を修正するために、 Dependabot は依存関係 A の更新プログラムを探し、固定バージョンの B を使用できるようにします。

Dependabot は、ロックされた親と子の推移的な依存関係の両方をアップグレードするプル要求を自動的に生成します。

既に適用されている更新プログラムの pull request を閉じることはできません

エラーメッセージ:Dependabot fails to close a open pull request for an update that has already been applied on the default branch

Dependabot は、これらの更新が既定のブランチにコミットされたことを検出すると、依存関係の更新に対するプル要求を閉じます。 ただし、まれに、pull request が開いたままになる場合があります。

解像 度: 依存関係の更新を手動でコミットし、その同じ更新プログラムの pull request がまだ開いている場合は、pull request のコメントで次のいずれかのコマンドを使用できます。

  • @dependabot recreate、または
  • @dependabot rebase

どちらのコメントでも Dependabot がトリガーされ、依存関係がアップグレードできなくなったり脆弱になったりするかどうかを確認できます。 pull request が不要になった Dependabot 検出された場合、この特定のケースでは pull request が閉じられます。

Dependabotコメント コマンドの詳細については、AUTOTITLE を参照してください。

最新バージョンのオープン pull request が既に存在するため、必要なバージョンに更新できません

適用対象: セキュリティ更新プログラムのみ

エラーメッセージ:Dependabot cannot update to the required version as there is already an open pull request for the latest version

Dependabot では、脆弱な依存関係をセキュリティで保護されたバージョンに更新するプル要求は作成されません。この依存関係を更新するためのオープン pull request が既に存在するためです。 このエラーは、単一の依存関係で脆弱性が検出され、依存関係を最新バージョンに更新するためのオープンプルリクエストがすでに存在する場合に表示されます。

解像 度: オープン pull request を確認し、変更が安全であると確信したらすぐにマージするか、その pull request を閉じて新しいセキュリティ更新プログラムの pull request をトリガーすることができます。 Dependabotプル要求を手動でトリガーするを参照してください。

セキュリティ更新プログラムは必要ありません

適用対象: セキュリティ更新プログラムのみ

エラーメッセージ:No security update is needed as DEPENDENCY is no longer vulnerable

Dependabot では、依存関係が脆弱でない、もしくは脆弱ではなくなった場合、その依存関係を更新するプルリクエストを閉じることはできません。 依存関係グラフ のデータが古い場合、または依存関係の特定のバージョンが脆弱な場合、依存関係グラフと Dependabot が一致しない場合に、このエラーが表示されることがあります。

解像 度: まず、リポジトリの依存関係グラフを調べ、依存関係に対して検出されたバージョンを確認し、識別されたバージョンがリポジトリで使用されているものと一致するかどうかを確認します。

依存関係グラフ データが古くなっていると思われる場合は、リポジトリの依存関係グラフを手動で更新するか、依存関係情報をさらに調査する必要があります。 「依存関係グラフのトラブルシューティング」を参照してください。

依存関係のバージョンが脆弱でなくなったかどうかを確認できる場合は、 Dependabot pull request を閉じてください。

プル要求エラー

プル要求の制限に達しました

エラーメッセージ:Dependabot cannot open any more pull requests

Dependabot生成されるオープン プル要求の数には制限があります。 上限に達すると、新しいプルリクエストはオープンされず、このエラーが報告されます。

制限:

  • セキュリティ更新プログラムのプルリクエスト: 10
  • バージョン更新プル要求: 5 ( open-pull-requests-limitを使用して構成可能)

セキュリティアップデートとバージョン更新のプルリクエストには個別の制限があるため、オープンなバージョン更新のプルリクエストがセキュリティアップデートのプルリクエストの作成をブロックすることはできません。 詳しくは、「Dependabot オプション リファレンス」をご覧ください。

解像 度: 既存のプル要求の一部をマージまたは閉じ、新しいプル要求を手動でトリガーします。 「Dependabot pull request を手動でトリガーする」を参照してください。

タイムアウトとパフォーマンスエラー

更新がタイムアウトしました

エラーメッセージ:Dependabot timed out during its update

Dependabot は、必要な更新プログラムを評価し、プル要求を準備するのに許容される最大時間よりも長くかかりました。 このエラーは、通常、多くのマニフェスト ファイルを含む大規模なリポジトリでのみ発生します。たとえば、数百の package.json ファイルを含む npm や yarn monorepo プロジェクトなどです。 Composer エコシステムの更新も評価に時間がかかり、タイムアウトする可能性があります。

バージョン更新の解決策:allow パラメーターを使用して更新する最も重要な依存関係を指定するか、または ignore パラメーターを使用して一部の依存関係を更新から除外します。 構成を更新すると、 Dependabot がバージョンの更新を確認し、使用可能な時間内に pull request を生成できる場合があります。

セキュリティ更新プログラムの解決方法: バージョンの更新を有効にするなどして、依存関係を更新したままにすることで、タイムアウトの可能性を減らします。 詳しくは、「Dependabot バージョンの更新の構成」をご覧ください。

グループ化エラー

依存関係をグループ化できませんでした (バージョンの更新)

適用対象: バージョンの更新のみ

エラーメッセージ:Dependabot fails to group a set of dependencies into a single pull request for Dependabot version updates

groups ファイルの 構成設定は、バージョン アップデートとセキュリティ アップデートに適用されます。 applies-to キーを使用して、グループ化ルールのセットを適用する場所 (バージョン アップデートまたはセキュリティ アップデート) を指定します。

バージョン_更新と_セキュリティ アップデートの両方に、1 つのグループ化ルール セットを適用することはできません。 代わりに、同じ条件を使用してバージョン更新プログラムとセキュリティ アップデート プログラムの両方をグループ化する場合は、個別に名前を付けた 2 つのルール セットを定義する必要があります。

グループ化されたバージョン アップデートを構成する場合は、パッケージ エコシステムごとにグループを構成する必要があります。

一般的な原因 - 空のグループ: 意図せずに空のグループを作成した可能性があります。 たとえは、これは、全体のジョブに対して、dependency-type キーで allow を設定する際に発生します。

YAML
allow:
  dependency-type: production
  # this restricts the entire job to production dependencies
  groups:
      development-dependencies:
        dependency-type: "development"
        # this group will always be empty

この例では、 Dependabot は次のようになります。

  1. 依存関係リストを確認し、ジョブを production で使用する依存関係のみに制限します。
  2. この縮小リストのサブセットである、development-dependencies という名前のグループを作成してみます。
  3. 手順 1 ですべての development-dependencies 依存関係が削除され、development グループが空であることを確認します。
  4.           グループに含まれていないすべての依存関係を**個別に**更新します。 運用環境の依存関係のグループが空であるため、 Dependabot はグループを無視し、依存関係ごとに個別のプル要求を作成します。
    

解像 度: 構成設定が互いに取り消されないようにし、構成ファイルで適切に更新します。 問題をデバッグするには、ログを確認します。 マニフェストのログにアクセスする方法については、「 エラーを表示する方法」を参照してください。

Dependabot version updatesのグループを構成する方法の詳細については、Dependabot オプション リファレンス を参照してください。

依存関係をグループ化できませんでした (セキュリティ更新プログラム)

適用対象: セキュリティ更新プログラムのみ

エラーメッセージ:Dependabot fails to group a set of dependencies into a single pull request for Dependabot security updates

groups ファイルの 構成設定は、バージョン アップデートとセキュリティ アップデートに適用されます。 applies-to キーを使用して、グループ化ルールのセットを適用する場所 (バージョン アップデートまたはセキュリティ アップデート) を指定します。 セキュリティ アップデートに適用するようにグループ化が構成済みかどうかを確認します。 applies-to キーが構成内のグループ化ルールのセットに含まれていない場合、既定では、すべてのグループ ルールがバージョン アップデートにのみ適用されます。

バージョン_更新と_セキュリティ アップデートの両方に、1 つのグループ化ルール セットを適用することはできません。 代わりに、同じ条件を使用してバージョン更新プログラムとセキュリティ アップデート プログラムの両方をグループ化する場合は、個別に名前を付けた 2 つのルール セットを定義する必要があります。

セキュリティ更新プログラムのグループ化ガイドライン:

  • Dependabot では、directories キーを使用する構成にグループ化規則が指定されている場合、異なるディレクトリにある同じパッケージ エコシステムからの依存関係がグループ化されます。
  • Dependabot では、 グループ化されたセキュリティ更新プログラムのプル要求に、 dependabot.yml ファイルから関連するその他のカスタマイズ オプションが適用されます。 dependabot.yml ファイルで構成されたグループ ルールは、Organization またはリポジトリ レベルでグループ化されたセキュリティ アップデートを有効または無効にするためのユーザー インターフェイス設定をオーバーライドします。
  • Dependabot では、 異なるパッケージ エコシステムからの依存関係はグループ化されません。
  • Dependabot では、 セキュリティ更新プログラムはバージョン更新プログラムとグループ化されません。

詳細については、「Dependabot のセキュリティ アップデート」および「Dependabot セキュリティ更新プログラム用に pull request をカスタマイズする」を参照してください。

グループ化されたプル要求の依存関係を更新できませんでした

エラーメッセージ:Dependabot fails to update one of the dependencies in a grouped pull request

バージョン アップデートが失敗した場合と、セキュリティ アップデートが失敗した場合に使用できる、各種トラブルシューティング手法が用意されています。

バージョンの更新

適用対象: バージョンの更新のみ

Dependabot は、ログの最後にあるジョブの概要と同様に、失敗した更新をログに表示します。

解決策:

  1. pull request の @dependabot recreate コメントを使用して、グループをもう一度ビルドします。 「依存関係の更新に関するPull Requestを管理する」を参照してください。
  2. 依存関係の更新に失敗する場合は、 exclude-patterns 構成を使用して、依存関係がグループから除外されるようにします。 Dependabot では、依存関係を更新するために別のプル要求が発生します。
  3. それでも依存関係の更新に失敗する場合は、依存関係自体、またはその特定のエコシステムの Dependabot に問題がある可能性があります。

依存関係の更新を無視する場合は、以下のいずれかの操作を行う必要があります。

セキュリティ更新プログラム

適用対象: セキュリティ更新プログラムのみ

セキュリティ更新プログラムのグループ化されたプルリクエストが失敗した場合、またはマージできない場合は、手動でプルリクエストを開いて、互換性のない変更のバージョンを更新します。 グループ化されたプル要求に含まれるパッケージを手動で更新すると、 Dependabot は手動で更新されたパッケージを含めないようにプル要求をリベースします。

依存関係の更新を無視する場合は、以下のいずれかの操作を行う必要があります。

グループ化されたプル要求で継続的インテグレーションが失敗する

適用対象: バージョンの更新のみ

エラーメッセージ:Continuous integration (CI) fails on my grouped pull request

解決策:

単一の依存関係が原因でエラーが発生した場合は、 exclude-patterns 構成を使用して、依存関係がグループから除外されるようにします。 Dependabot では、依存関係を更新するために別のプル要求が発生します。

依存関係の更新を無視する場合は、以下のいずれかの操作を行う必要があります。

CI エラーが引き続き表示される場合は、グループ構成を削除して、 Dependabot が依存関係ごとに個々のプル要求を発生するように戻します。 次に、個々のプル要求ごとに更新プログラムが正しく動作することを確認して確認します。

認証とレジストリのエラー

依存関係を解決またはアクセスできない

エラーメッセージ:Dependabot can't resolve your LANGUAGE dependency files

API エラーの種類:git_dependencies_not_reachable

Dependabotリポジトリで依存関係参照を更新する必要があるかどうかを確認しようとしても、1 つ以上の参照ファイルにアクセスできない場合、操作は失敗します。

プライベート パッケージ のレジストリ エラー

Dependabot プライベート パッケージ レジストリにアクセスできない場合は、次のいずれかのエラーが発生する可能性があります。

エラーメッセージAPI エラーの種類
"Dependabot プライベート パッケージ レジストリの依存関係に到達できません"private_source_not_reachable
"プライベート パッケージ レジストリに対して認証できないDependabot "private_source_authentication_failure
"プライベート パッケージ レジストリの待機中にタイムアウトDependabot "private_source_timed_out
"Dependabot プライベート パッケージ レジストリの証明書を検証できませんでした"private_source_certificate_failure

解像 度: 参照されているすべての依存関係が、アクセス可能な場所でホストされていることを確認します。

**バージョンの更新のみ:**セキュリティあるいはバージョンアップデートを実行する際に、エコシステムによってはアップデートが成功したことを検証するためにすべての依存関係をソースから解決できなければならないことがあります。 マニフェストあるいはロックファイルにプライベートの依存関係が含まれているなら、Dependabotはそれらの依存関係がホストされている場所にアクセスできなければなりません。 Organizationのオーナーは、同じOrganization内のプロジェクトに対する依存関係を含むプライベートリポジトリへのアクセス権をDependabotに付与できます。 詳しくは、「組織のセキュリティおよび分析設定を管理する」をご覧ください。 リポジトリの dependabot.yml 構成ファイルで、プライベート レジストリへのアクセスを構成できます。 詳しくは、「Dependabot のプライベート レジストリへのアクセスの構成」をご覧ください。 さらに、 Dependabot では、すべてのパッケージ マネージャーのプライベート GitHub 依存関係はサポートされません。 「Dependabot でサポートされているエコシステムとリポジトリ」を参照してください。

Dependabot pull request を手動でトリガーする

Dependabotブロックを解除した場合は、pull request を作成する新しい試行を手動でトリガーできます。

セキュリティ更新プログラムの場合: 修正したエラーを示す Dependabot アラートを表示し、[ セキュリティ更新プログラム Dependabot 作成] をクリックします。

バージョン更新プログラムの場合: リポジトリの [分析情報] タブで、[依存関係グラフ] をクリックし、[Dependabot] タブをクリックします。[前回の確認_日時_] をクリックすると、前回のバージョン更新の確認中に生成Dependabotログ ファイルが表示されます。 [更新プログラムのチェック] をクリックします。

詳細については、次を参照してください。