Skip to main content

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

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

Dependabot について

Dependabot は、依存関係エコシステムを常に把握するのに役立ちます。 Dependabot を使用すると、依存している依存関係を最新の状態に保ち、サプライ チェーン内の潜在的なセキュリティの問題に対処できます。

Dependabot は、依存関係の管理に役立つ 3 つの異なる機能で構成されています。

  • Dependabot alerts — リポジトリで使っている依存関係に内在する脆弱性について通知します。
  • Dependabot security updates — 使っている依存関係のうち、既知のセキュリティ脆弱性があるものを更新するための pull request を自動的に生成します。
  • Dependabot version updates — 依存関係を最新に保つための pull request を自動的に発行します。

Dependabot について詳しくは、「Dependabot クイックスタート ガイド」をご覧ください。

この記事では、サポートされているエコシステムとリポジトリについて説明します。

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

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

Note

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

Note

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

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

パッケージ マネージャーYAML値サポートされているバージョンバージョン アップデートセキュリティ更新プログラムプライベートリポジトリプライベート レジストリベンダー
Bundlerbundlerv1, v2
Cargocargov1 (Git only)
Composercomposerv1, v2
Dockerdockerv1適用できません
Hexmixv1
elm-packageelmv0.19
Gitサブモジュールgitsubmodule適用できません適用できません
GitHub Actionsgithub-actions適用できません適用できません
Go モジュールgomodv1
Gradlegradle適用できません
Mavenmaven適用できません
npmnpmv6, v7, v8, v9
NuGetnuget<= 4.8
pippipv21.1.2
pipenvpip<= 2021-05-29
pip-compilepip6.1.0
pnpmnpmv7、v8、v9 (v7 and v8 only)
poetrypipv1
pubpubv2
Swiftswiftv5 (git only)
Terraformterraform>= 0.13, <= 1.8.x適用なし
yarnnpmv1、v2、v3

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

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

Cargo

プライベート レジストリのサポートは Git レジストリに適用され、cargo レジストリは含まれません。

Docker

Dependabot は、バージョンの更新に関する pull request に 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 Image タグを参照する Kubernetes マニフェストを含むディレクトリごとに、dependabot.yml ファイルの Docker package-ecosystem 要素に入力を追加します。 Kubernetes マニフェストは、Kubernetes Deployment YAML ファイルまたは Helm チャートにすることができます。 dependabot.yml ファイルをdockerに構成する情報提供については、「dependabot.yml ファイルの構成オプション」の「package-ecosystem」を参照してください。

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

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

GitHub Actions

Dependabot では、GitHub Actions のバージョン更新がサポートされていますが、次の点に注意してください。

  • Dependabot は、actions/checkout@v4 などの GitHub リポジトリ構文を使って、GitHub Actions に対する更新のみをサポートします。 Dependabot は、ローカルで参照されているアクションまたは再利用可能なワークフロー (たとえば、./.github/actions/foo.yml) を無視します。
  • Docker Hub と GitHub Packages Container registry URL は現在、サポートされていません。 たとえば、docker:// 構文を使用した Docker コンテナー アクションへの参照はサポートされていません。
  • Dependabot では、GitHub Actions のパブリック リポジトリとプライベート リポジトリの両方がサポートされます。 プライベート レジストリの構成オプションについては、「dependabot.yml ファイルの構成オプション」の「git」を参照してください。

GitHub Actions での Dependabot version updates の使用について詳しくは、「GitHub のセキュリティ機能を使用して GitHub Actions の使用をセキュリティで保護する」をご覧ください。

Gradle

Dependabot では Gradle は実行されませんが、次のファイルの更新はサポートされます。

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

Dependabot は、依存関係の pom.xml ファイルの情報を使用して、更新 pull request にリリース情報へのリンクを追加します。 pom.xml ファイルでこの情報が省略されている場合、Dependabot pull request に含めることはできません。「Dependabot の更新のための Java パッケージの最適化」を参照してください。

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

注:

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

Maven

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

Dependabot は、依存関係の pom.xml ファイルの情報を使用して、更新 pull request にリリース情報へのリンクを追加します。 pom.xml ファイルでこの情報が省略されている場合、Dependabot pull request に含めることはできません。「Dependabot の更新のための Java パッケージの最適化」を参照してください。

NuGet CLI

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

pip と pip-compile

requirements.txt ファイルの更新のサポートに加え、Dependabot は、PEP 621 標準に従っている pyproject.toml ファイルの更新をサポートします。

pnpm

pnpm は、Dependabot version updates (v7、v8、v9) と Dependabot security updates (v7 と v8 のみ) でサポートされています。

pub

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

Swift

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

Terraform

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

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

yarn

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