Skip to main content

Dependabot でサポートされているエコシステムとリポジトリ

Dependabot では、さまざまなエコシステムとリポジトリがサポートされています

この記事では、Dependabot がサポートするパッケージ エコシステムとリポジトリの種類に関するリファレンス情報を提供します。

Dependabot は、 GitHub ツールであり、依存関係を安全かつ最新の状態に保つのに役立ちます。 リポジトリ内の脆弱または古い依存関係が自動的に検出され、更新するためのプル要求が作成されるため、ソフトウェア サプライ チェーンのセキュリティを維持しやすくなります。 詳しくは、「Dependabot クイックスタート ガイド」をご覧ください。

GitHub によって維持されるサポートされているエコシステム

サポートされているパッケージ マネージャーのいずれかの依存関係マニフェストまたはロック ファイルを含むリポジトリの更新を設定できます。 一部のパッケージマネージャーでは、依存関係のベンダーを設定することもできます。 詳細については、「vendor」を参照してください。 Dependabot でも、個人用レジストリの依存関係がサポートされています。 詳しくは、「Dependabot のプライベート レジストリへのアクセスの構成」をご覧ください。

メモ

GitHub Enterprise Server が、サポートされている最新のエコシステムの Dependabot updates をサポートしているか確認するには、Enterprise 所有者は、Dependabot アクションの最も最新のバージョンをダウンロードする必要があります。 アクションの詳細と、最新バージョンをダウンロードする方法の手順については、「公式のバンドルされたアクションの最新バージョンを使用する」を参照してください。

メモ

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

リポジトリですでに依存関係管理にインテグレーションを使用している場合は、Dependabot を有効にする前にそれを無効にする必要があります。

パッケージ マネージャーYAML値サポートされているバージョンバージョンの更新セキュリティ更新プログラムプライベート リポジトリプライベート レジストリベンダー

Bun | bun | >=v1.1.39 | | | | | | | | Bundler | bundler | v2 | | | | | |

貨物 | cargo | v1 | | | | | | Composer | composer | v2 | | | | | | | |

開発コンテナー | devcontainers | 適用なし | | | | | |

Docker | docker | v1 | | | | | 適用なし | | |

Docker Compose | docker-compose | v2、v3 | | | | | 適用なし | | | .NET SDK | dotnet-sdk | >=.NET Core 3.1 | | | 適用なし | 適用なし | 適用なし |

Helm チャート | helm | サポートされていません | | | | | 適用なし | Hex | mix | v1 | | | | | | | | elm-package | elm | v0.19 | | | | | | Gitサブモジュール | gitsubmodule | 適用なし | | | | | 適用なし | GitHub Actions | github-actions | 適用なし | | | | | 適用なし | Go モジュール | gomod | v1 | | | | | |

Gradle | gradle | 適用なし | | | | | |

Maven | maven | 適用なし | | | | | | | | npm | npm | v7、v8、v9、v10、v11 | | | | | |

NuGet | nuget | <=6.12.0 | | | | | | | |

pip | pip | 24.2 | | | | | | pipenv | pip | 2024.4.1 | | | | | |

pip-compile | pip | 7.5.3 | | | | | | | pnpm | npm | v7、v8、v9、v10 | | | | | |

| pip | v2 | | | | | | | |

pub | pub | v2 | | | | | | | |

速い | swift | v5 | | | | (git のみ) | |

Terraform | terraform | > = 0.13、<= 1.13.x | | | | | 適用なし | | | uv | uv | v0 | | | | | 適用なし | | | | |

yarn | npm | v1、v2、v3、v4 | | | | | |

ヒント

pipenvpoetry などのパッケージ マネージャーの場合、pip YAML 値を使用する必要があります。 たとえば、poetry を使用してPythonの依存関係を管理し、Dependabot で依存関係マニフェスト ファイルの新しいバージョンを監視する場合は、package-ecosystem: "pip" ファイルで dependabot.yml を使用します。

Dependabot security updatesのエコシステム サポートの詳細については、依存関係グラフがサポートされるパッケージ エコシステム も参照してください。

Bun

Dependabot は、現在の既定のテキスト ベースの bun.lock ファイルをサポートしますが、従来のバイナリ bun.lockb ファイルはサポートしていません。 bun.lock ファイルはバージョン 1.1.39 以降でサポートされています。 詳細については、Bun ドキュメントの「Lockfile」を参照してください。

Cargo

プライベートレジストリのサポートにはCargoレジストリが含まれているため、Dependabot を使用してRustの依存関係を最新の状態に保つことができます。 詳しくは、「Dependabot のプライベート レジストリの構成に関するガイダンス」をご覧ください。

開発コンテナー

devcontainers ファイルで package-ecosystemdependabot.yml として使用すると、devcontainer.json 構成ファイルで機能を更新できます。 このサポートの詳細と構成ファイルの例については、「開発コンテナー」ドキュメント の「 Dependabot 統合の一般提供 」を参照してください。

開発コンテナーは、 Codespacesなど、いくつかのツールとサービスで使用されます。 機能とサポートされているサービスの詳細については、開発コンテナー ドキュメントの「機能」と「サポート ツールとサービス」をそれぞれ参照してください。

このアップデーターにより、関連付けられた major ファイル内の最新の devcontainer.json バージョンに機能が固定されます。 開発コンテナーにロックファイルがある場合、そのファイルも更新されます。 ロックファイルの仕様の詳細については、 リポジトリ内の「devcontainers/spec」を参照してください。

任意の有効な開発コンテナーの場所にある機能は、1 つのプル リクエストで更新されます。 開発コンテナーの仕様の詳細については、開発コンテナー ドキュメントの「仕様」を参照してください。

Docker

Dependabot では、Docker イメージからメタデータを追加して、バージョン更新の要求をプルできます。 メタデータには、リリース ノート、変更ログ、コミット履歴が含まれます。 リポジトリ管理者は、このメタデータを使って、依存関係の更新の安定性リスクをすばやく評価できます。

Dependabotが Docker メタデータをフェッチするには、Docker イメージの保守担当者が Dockerfile に org.opencontainers.image.source ラベルを追加し、ソース リポジトリの URL を含める必要があります。 さらに、メンテナーは、発行された Docker イメージと同じタグでリポジトリにタグを付ける必要があります。 例については、「dependabot-fixtures/docker-with-source リポジトリ」を参照してください。 Docker のラベルについて詳しくは、Docker のドキュメントの「拡張イメージ ラベル」と「BUILDX_GIT_LABELS」をご覧ください。

Dependabot では、Kubernetes マニフェストの Docker イメージ タグを更新できます。 Docker イメージ タグを参照する Kubernetes マニフェストを含むディレクトリごとに、package-ecosystem ファイルの Docker dependabot.yml 要素にエントリを追加します。 Kubernetes マニフェストは、Kubernetes Deployment YAML ファイルまたは Helm チャートにすることができます。 dependabot.ymldocker ファイルの構成については、「package-ecosystem」の「」を参照してください。

Dependabot では、パブリックとプライベートの両方の Docker レジストリがサポートされています。 サポートされているレジストリの一覧については、「docker-registry」の「」を参照してください。

Dependabot は、セマンティック バージョン管理 (SemVer) の Docker イメージ タグを解析します。 Dependabotがプレリリースのタグを検出した場合、一致するプレリリースの最新バージョンへの更新のみが提案され、別のプレリリース ラベルを使用する新しいバージョンは提案されません。 詳細については、dependabot-docker リポジトリの「dependabot/dependabot-core」ファイルを参照してください。

Docker Compose

Dependabot では、Docker と同様の方法で Docker Compose がサポートされます。 詳細については、「Docker」を参照してください。

GitHub Actions

Dependabot では、 GitHub Actions のバージョン更新プログラムがサポートされています。次の注意事項があります。

  • Dependabot では、GitHub Actions リポジトリ構文 (GitHubactions/checkout@<commit> など) を使用した actions/checkout@v6 の更新のみがサポートされます。 Dependabot は、ローカルで参照されているアクションまたは再利用可能なワークフロー (たとえば、./.github/actions/foo.yml) を無視します。
  • Dependabot は、コメントが同じ行 ( actions/checkout@<commit> #<tag or link>actions/checkout@<tag> #<tag or link>など) にある場合に、GitHub Actions のバージョン ドキュメントを更新します。
  • 使用するコミットがどのタグにも関連付けられていない場合、Dependabot は GitHub Actions を最新のコミットに更新します(これが最新のリリースとは異なる場合があります)。
  • Docker Hub と GitHub Packages Container registry URL は現在、サポートされていません。 たとえば、docker:// 構文を使用した Docker コンテナー アクションへの参照はサポートされていません。
  • Dependabot では、GitHub Actions のパブリック リポジトリとプライベート リポジトリの両方がサポートされます。 プライベート レジストリ構成オプションについては、「git」の「」を参照してください。

Dependabot version updatesでのGitHub Actionsの使用の詳細については、セキュリティで保護された使用に関するリファレンス を参照してください。

Gradle

Dependabot では、Gradle を実行しなくても、次のファイルの更新がサポートされます。

  • build.gradlebuild.gradle.kts (Kotlin プロジェクトの場合)
  • gradle/libs.versions.toml (標準 Gradle バージョン カタログを使用するプロジェクトの場合)
  • gradle.lockfile (Gradle 依存関係ロックを使用するプロジェクトの場合)
  • apply 宣言を介して追加され、ファイル名に dependencies が含まれるファイル。 apply では、apply to、再帰、または高度な構文 (たとえば、ファイル名がプロパティで定義された、Kotlin の apply 付き mapOf) はサポートされていないことに注意してください。

Gradle ラッパーを更新するには、Gradle を実行し、Dependabot を更新します。

  • gradle/wrapper/gradle-wrapper.properties
  • gradlew
  • gradlew.bat
  • gradle/wrapper/gradle-wrapper.jar

Dependabot では、依存関係の pom.xml ファイルの情報を使用して、更新プログラムのプル要求でリリース情報へのリンクを追加します。 pom.xml ファイルから情報を省略した場合は、pull request のDependabotに含めることはできません。Dependabot更新のJavaパッケージメタデータ を参照してください。

Dependabot security updatesの場合、Gradle のサポートは、依存関係送信 APIを使用した依存関係グラフ データの手動アップロードに限定されます。 依存関係送信 API の詳細については、「依存関係サブミッション API を使用する」を参照してください。

メモ

依存関係送信 APIを使用して Gradle 依存関係を依存関係グラフにアップロードすると、依存関係ファイルに明示的に記述されていない推移的な依存関係であっても、すべてのプロジェクトの依存関係がアップロードされます。 推移的な依存関係でアラートが検出された場合、 Dependabot はリポジトリ内の脆弱な依存関係を見つけられないため、そのアラートのセキュリティ更新プログラムは作成されません。

* Dependabot version updates ただし、親依存関係がプロジェクトのマニフェスト ファイルで直接依存関係として明示的に宣言されている場合は、pull request を作成します。

Helm チャート

Dependabot では、レジストリのユーザー名とパスワードの使用がサポートされています。 詳しくは、「Dependabot のプライベート レジストリへのアクセスの構成」をご覧ください。

helm-registryの種類では、HTTP 基本認証のみがサポートされ、OCI 準拠のレジストリはサポートされません。 Helm チャートの OCI 準拠レジストリにアクセスする必要がある場合は、代わりに docker-registry を構成します。 詳しくは、「Dependabot のプライベート レジストリへのアクセスの構成」をご覧ください。

Helm グラフの Dependabot を構成すると、それらのグラフ内で参照されている Docker イメージも自動的に更新され、グラフのバージョンと含まれているイメージの両方が最新の状態に保たれようになります。

Maven

Dependabot は Maven を実行しませんが、 pom.xml ファイルの更新をサポートします。

Dependabot では、依存関係の pom.xml ファイルの情報を使用して、更新プログラムのプル要求でリリース情報へのリンクを追加します。 pom.xml ファイルから情報を省略した場合は、pull request のDependabotに含めることはできません。Dependabot更新のJavaパッケージメタデータ を参照してください。

NuGet CLI(コマンド ライン インターフェイス)

Dependabot は NuGet CLI を実行しませんが、バージョン 6.8.0 までほとんどの機能をサポートしています。

pip と pip-compile

Dependabot は、任意の .txt ファイルの更新をサポートします。

さらに、 Dependabot では、PEP 621 標準に従っている場合、 pyproject.toml ファイルの更新がサポートされます。

poetry

Dependabot 詩v2をサポートしています。 PEP 621 project セクションは現在、 poetryではサポートされていません。

Swift

プライベート レジストリのサポートは、git レジストリにのみ適用されます。 Swift レジストリはサポートされていません。 非宣言型マニフェストはサポートされていません。 非宣言型マニフェストの詳細については、Swift Evolution ドキュメントの「非宣言型マニフェストを編集する」を参照してください。

Terraform:

Terraform のサポートには、次が含まれます。

  • Terraform レジストリまたは一般アクセス可能な Git リポジトリでホストされているモジュール。
  • Terraform プロバイダー。
  • 個人用 Terraform レジストリ。 dependabot.yml ファイルで Git レジストリを指定することで、個人用 Git リポジトリのアクセスを構成できます。 詳細については、「git」を参照してください。

yarn

Dependabot では、v2 以降のベンダー依存関係がサポートされています。

Pub

Dependabot は、以前のバージョンが使用可能な場合でも、更新を試みるバージョンが無視された場合、 pub の更新を実行しません。

プライベートホスティングのパブリポジトリを利用する場合は、Dependabot を使用してDartの依存関係を最新の状態に保つことができます。 プライベートDependabot依存関係へのアクセスをGitHubに許可する方法については、「プライベート依存関係へのアクセスをDependabotに許可する」を参照してください。