Skip to main content
Skip to content

Dependabot 更新ジョブでブロックされたホストを解決する

Dependabotがホストに到達できず、必要なホストを許可できないために失敗した更新ジョブを診断します。

すべての Dependabot 更新ジョブは、HTTP/HTTPS プロキシの背後で実行されます。 プロキシは、すべての送信要求のホストを エグレス許可リストと照合します。 この関数は、ホスト上にないホストへの要求をブロックします。

これにより、悪意のある依存関係またはビルド スクリプトによって、リポジトリの内容またはレジストリ資格情報が未承認の宛先に送信されるリスクが軽減されます。 許可されたホストまたは侵害されたホストにデータが送信されるのを防ぐことはできません。

ほとんどのジョブは影響を受けません。 この許可リストには、パブリック レジストリ、ミラー、CDN、サポートされているエコシステムのダウンロード ホスト、および GitHubのインフラストラクチャが既に含まれています。 ジョブ用に構成され、参照されているレジストリも自動的に許可されます。

レジストリは、dependabot.yml ファイルの最上位registries キーで宣言した場合にのみ、構成済みとしてカウントされます。 .npmrc、nuget.config、pip.conf、Maven のsettings.xmlなど、エコシステムネイティブ構成ファイルでのみレジストリを定義しても、そのホストは許可されません。 パッケージ マネージャーは、そのファイルからレジストリを読み取り、そのファイルに到達しようとしますが、プロキシは要求をブロックします。

ジョブ ログでのブロックされた要求の識別

プロキシが要求をブロックすると、更新ジョブに 403 Forbidden が返されます。 通常、このエラーは、パッケージ マネージャーからのネットワークまたは認証エラーとして発生します。 ジョブ ログのプロキシ行を調べて、原因を確認します。 ジョブ ログを開く方法については、 Dependabot ジョブ ログの表示 を参照してください。

ブロックされた要求は次のようになります。

proxy | 2026/09/24 20:58:15 [052] GET https://packages.example.com:443/v2/my-package/tags/list
proxy | 2026/09/24 20:58:15 [052] * egress not allowlisted packages.example.com
proxy | 2026/09/24 20:58:15 [052] 403 https://packages.example.com:443/v2/my-package/tags/list
proxy | 2026/09/24 20:58:15 [052] Remote response: Forbidden

プロキシからの行には proxy |が付き、 [052] は 1 つの要求の行をグループ化する要求番号です。 egress not allowlisted行には、チェックに失敗した正確なホストの名前が付けられます。 そのホストを使用して、次に何を行うかを決定します。

ホストの許可方法

ジョブごとに 2 つの独立したホスト セットを使用できます。

既定のホスト には、パブリック レジストリ、ミラー、CDN、サポートされているエコシステム用のダウンロード ホストが含まれます。 また、 GitHub と Dependabot インフラストラクチャも含まれます。 GitHub は、このリストを dependabot/proxy リポジトリに保持し、すべてのジョブに適用されます。

ジョブごとのホストは、特定の ジョブ用に構成されたレジストリから取得されます。 dependabot.yml ファイルの最上位registries キーでレジストリを宣言し、updates エントリから参照します。 その後、レジストリのホストは、既定値を変更せずに、そのジョブに対して許可されます。

匿名アクセスが許可されている場合でも、レジストリを宣言します。 ホストに到達可能になるのは、資格情報の存在ではなく、 dependabot.ymlでの宣言です。

この分割により、ブロックされたホストが属する場所が決まります。

ホストを既定値に追加する

ブロックされたホストがパブリック レジストリ、ミラー、CDN、またはダウンロード ホストである場合は、 dependabot/proxyに対してプル要求を開くことで追加を提案できます。 承認された追加は、組織内のジョブだけでなく、すべての Dependabot 更新ジョブに適用されます。

リポジトリには、ホストが既定値に属しているかどうかを確認してプル要求を開くまで、このプロセスをCopilotするエージェント スキルが用意されています。 dependabot/proxy リポジトリで作業し、ホストがブロックされていることをCopilotに通知するか、ホストの許可リストを要求するか、ブロックされた行をジョブ ログから貼り付けます。 たとえば、「repo.example.org がブロックされています」や「foo.bar.com を許可リストに追加してください」などです。 それ以外の場合は、次の手順に従います。

  1. ホストが既定値に属しているのを確認します。 これは、組織に固有のものではなく、他のユーザーのジョブが正当な理由で必要とする可能性のあるパブリックホストである必要があります。 ホストを制御するユーザーと、サポートされているエコシステムがホストへのアクセスを必要とする理由を確認します。 ホストが組織に固有の場合は、代わりに dependabot.yml ファイルで構成します。
  2. ジョブ ログからホストを確認します。 egress not allowlisted行に名前が付けられた正確なホストに注意してください。 レジストリは、ダウンロードを別のストレージまたは CDN ホストにリダイレクトすることがよくあります。そのため、複数のホストがブロックされたかどうかを確認します。
  3. pull request を開いて 、 internal/handlers/egress_allowlist_defaults.yamlの適切なセクションに正確なホストを追加します。 ホストを制御するユーザーとホストが提供する内容を説明する短いメモを含めます。 ファイル内のコメントに従って適切なセクションを選択し、その規則を適用します。 メンテナーが変更を確認します。

ブロックされたホストを既定値に追加するか、 dependabot.yml ファイルで構成するかがわからない場合は、 dependabot/proxy リポジトリで確認してください。