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
開発コンテナーdevcontainers適用なし
Dockerdockerv1適用できません
Hexmixv1
elm-packageelmv0.19
Gitサブモジュールgitsubmodule適用なし適用できません
GitHub Actionsgithub-actions適用なし適用できません
Go モジュールgomodv1
Gradlegradle適用なし
Mavenmaven適用なし
npmnpmv6, v7, v8, v9
NuGetnuget<=6.8.0
pippipv21.1.2
pipenvpip<= 2021-05-29
pip-compilepip6.1.0
pnpmnpmv7、v8、v9
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 レジストリは含まれません。

開発コンテナー

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

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

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

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

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

注:

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

Maven

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

NuGet CLI

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

pip と pip-compile

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

pnpm

pnpm は、Dependabot version updates と Dependabot security updates でサポートされています。

pub

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

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

Swift

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

Terraform

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

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

yarn

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