Skip to main content

Dependabot エラー

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

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

エラーを表示する方法

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

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

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

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

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

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

バージョン更新エラー

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

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

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

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

依存関係解決エラー

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

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

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

Dependabot は、このリポジトリの依存関係グラフの他の依存関係を壊さずに、脆弱性のある依存関係を安全なバージョンに更新するための pull request を作成することはできません。

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

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

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

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

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

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

たとえば、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 を自動的に生成します。

既に適用されている更新プログラムの 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 がまだ開いている場合は、pull request のコメントで次のいずれかのコマンドを使用できます。

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

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

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

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

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

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

この依存関係を更新するための pull request は既に開かれているため、Dependabot で脆弱性のある依存関係を安全なバージョンに更新するための pull request は作成されません。 このエラーは、単一の依存関係で脆弱性が検出され、依存関係を最新バージョンに更新するためのオープンプルリクエストがすでに存在する場合に表示されます。

          **解像 度:** オープン pull request を確認し、変更が安全であると確信したらすぐにマージするか、その pull request を閉じて新しいセキュリティ更新プログラムの pull request をトリガーすることができます。 
          [Dependabot プルリクエスト (pull request) を手動でトリガーする方法](#triggering-a-dependabot-pull-request-manually)を参照してください。

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

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

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

Dependabot では、脆弱ではない、または脆弱ではなくなった依存関係を更新するために pull request を閉じることはできません。 このエラーは、依存関係グラフ データが古い場合や、依存関係の特定のバージョンが脆弱な場合に依存関係グラフと Dependabot が一致しないときに発生する可能性があります。

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

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

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

プル要求エラー

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

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

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

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

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

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

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

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

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

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

          **バージョン更新の解決策:**`allow` パラメーターを使用して更新する最も重要な依存関係を指定するか、または `ignore` パラメーターを使用して一部の依存関係を更新から除外します。 設定を更新すると、Dependabot がバージョンの更新を確認し、利用可能な時間内にプルリクエストを生成できます。

          **セキュリティ更新プログラムの解決方法:** バージョンの更新を有効にするなどして、依存関係を更新したままにすることで、タイムアウトの可能性を減らします。 詳しくは、「[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates)」をご覧ください。

グループ化エラー

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

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

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

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

データ 再利用可能.dependabot.dependabot-グループ化された更新-適用 %}

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

          **一般的な原因 - 空のグループ:** 意図せずに空のグループを作成した可能性があります。 たとえは、これは、全体のジョブに対して、`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 はグループを無視し、依存関係ごとに個別の pull request を作成します。
    
           **解像 度:** 構成設定が互いに取り消されないようにし、構成ファイルで適切に更新します。 問題をデバッグするには、ログを確認します。 マニフェストのログにアクセスする方法については、「 [エラーを表示する方法](#how-to-view-errors)」を参照してください。
    

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

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

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

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

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

データ 再利用可能.dependabot.dependabot-グループ化された更新-適用 %}

          **セキュリティ更新プログラムのグループ化ガイドライン:**
  • Dependabot は、**** キーを使用する構成に対してグループ化ルールが指定されている場合に、異なるディレクトリにある同じパッケージ エコシステムからの依存関係をグループ化directories
  • Dependabot は、**** ファイルからのその他の関連するカスタム オプションをグループ化されたセキュリティ アップデートの pull request に適用dependabot.ymldependabot.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 によって個別の pull request が生成され、依存関係が更新されます。
  3. それでも依存関係が更新されない場合は、その依存関係自体か、その特定のエコシステムの Dependabot に問題がある場合があります。

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

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

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

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

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

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

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

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

          **解決策:**

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

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

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に付与できます。 詳しくは、「[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization#allowing-dependabot-to-access-private-or-internal-dependencies)」をご覧ください。 リポジトリの `dependabot.yml` 構成ファイルで、プライベート レジストリへのアクセスを構成できます。 詳しくは、「[AUTOTITLE](/code-security/dependabot/working-with-dependabot/configuring-access-to-private-registries-for-dependabot)」をご覧ください。 さらに、Dependabot では、全てのパッケージマネージャーに対するプライベートな GitHub 依存関係をサポートしていません。 「[AUTOTITLE](/code-security/dependabot/ecosystems-supported-by-dependabot/supported-ecosystems-and-repositories)」を参照してください。

Dependabot のプルリクエストを手動でトリガーする

Dependabot のブロックを解除すると、プルリクエストを作成するための新規の試行を手動でトリガーできます。

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

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

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

  •         [AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/troubleshooting-the-dependency-graph)
    
  •         [AUTOTITLE](/code-security/reference/supply-chain-security/troubleshoot-dependabot/vulnerable-dependency-detection)