Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

Dependabot のバージョン アップデートの設定

Dependabot が使用するパッケージを自動的に更新するようにリポジトリを設定できます。

この機能を使用できるユーザー

People with write permissions to a repository can enable or disable Dependabot version updates for the repository.

依存関係のバージョン更新について

リポジトリの .github ディレクトリに dependabot.yml 構成ファイルをチェックインして、Dependabot version updates を有効にします。 すると、Dependabot は設定した依存関係を最新の状態に保つためにプルリクエストを発行します。 更新するパッケージマネージャーの依存関係ごとに、パッケージマニフェストファイルの場所と、それらのファイルにリストされている依存関係の更新をチェックする頻度を指定する必要があります。 セキュリティ更新プログラムの有効化の詳細については、「Configuring Dependabot security updates (Dependabot セキュリティ アップデートの構成)」を参照してください。

最初にバージョンアップデートを有効にすると、古くなった依存関係が大量にあり、中には最新バージョンまでにいくつものバージョンが存在しているものもあるかもしれません。 Dependabotは、有効化されるとすぐに古くなった依存関係をチェックします。 設定が更新するマニフェストファイルの数に応じて、設定ファイルの追加後数分のうちに、バージョンアップデートの新しいPull Requestが発行されるかもしれません。 Dependabotは、設定ファイルに対するその後の変更に対しても更新を実行します。

Dependabotは、アップデートの失敗後にマニフェストファイルを変更した際にもPull Requestを作成することがあります。 これは、アップデート失敗の原因となった依存関係の削除などのマニフェストへの変更によって、新たにトリガーされたアップデートが成功するかもしれないためです。

Pull Requestを管理可能でレビューしやすく保つために、Dependabotは依存関係を最新バージョンにし始めるためのPull Requestを最大で5つまで発行します。 次にスケジュールされているアップデートの前にこれらの最初のPull Requestの一部をマージした場合、残りのPull Requestは上限まで次のアップデート時にオープンとなります。 オープン pull request の最大数は、open-pull-requests-limit 構成オプションを設定することで変更できます。詳細については「依存関係の更新をカスタマイズする」を参照してください。

既定では、マニフェストで明示的に定義されている直接の依存関係のみが、Dependabot version updates によって最新の状態に保たれます。 ロック ファイルで定義されている間接的な依存関係に対する更新を受け取ることができます。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。

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

Dependabot version updates を有効化する

dependabot.yml 構成ファイルをリポジトリにコミットして、Dependabot version updates を有効にします。 設定ページでこの機能を有効にした場合、GitHub によって編集可能な基本ファイルが作成されます。それ以外の場合は、任意のファイル エディターを使用してファイルを作成できます。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。

  4. Code security and analysis の Dependabot version updates の右側にある Enable をクリックして、リポジトリの .github ディレクトリにある基本的な dependabot.yml 構成ファイルを開きます。

  5. version を追加します。

  6. プライベート レジストリに依存関係がある場合は、必要に応じて、認証情報が含まれている registries セクションを追加します。

  7. updates セクションを追加し、Dependabot で監視したい各パッケージ モニターのエントリを追加します。

  8. パッケージマネージャーごとに、以下を使用します。

    • package-ecosystem: パッケージ マネージャーを指定します。
    • directory: マニフェストや他の定義ファイルの場所を指定します。
    • schedule.interval: 新しいバージョンをチェックする頻度を指定します。
  9. リポジトリの .github ディレクトリにある dependabot.yml 構成ファイルを確認します。

すべての構成オプションの情報については「dependabot.yml ファイルの構成オプション」を参照してください。

dependabot.yml ファイルの例

次の dependabot.yml ファイルの例では、npm と Docker の 2 つのパッケージ マネージャーのバージョン アップデートを構成します。 このファイルがチェックインされると、Dependabot が、デフォルトブランチのマニフェストファイルで古い依存関係がないかをチェックします。 古い依存関係が見つかった場合、デフォルトブランチに対してプルリクエストを発行して依存関係を更新します。

# Basic dependabot.yml file with
# minimum configuration for two package managers

version: 2
updates:
  # Enable version updates for npm
  - package-ecosystem: "npm"
    # Look for `package.json` and `lock` files in the `root` directory
    directory: "/"
    # Check the npm registry for updates every day (weekdays)
    schedule:
      interval: "daily"

  # Enable version updates for Docker
  - package-ecosystem: "docker"
    # Look for a `Dockerfile` in the `root` directory
    directory: "/"
    # Check for updates once a week
    schedule:
      interval: "weekly"

上記の例では、Docker の依存関係がとても古い場合、その依存関係が最新の状態になるまで、まずは daily (毎日) スケジュールを設定して、その後 Weekly (毎週) スケジュールに戻すことができます。

フォークのバージョン更新を有効にする

フォークでバージョン更新を有効にする場合は、追加の手順があります。 dependabot.yml 構成ファイルが存在していると、フォークでのバージョン アップデートが自動的に有効になることはありません。 これにより、元のリポジトリからの dependabot.yml 構成ファイルを含む変更をプルするときに、フォーク所有者が意図せずバージョン アップデートを有効にしてしまうことがなくなります。

フォークでは、Dependabot を明示的に有効にする必要もあります。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。

  4. Code security and analysis の [Dependabot version updates] の右側にある [有効にする] をクリックし、Dependabot がバージョン更新を開始できるようにします。

バージョン更新のステータスを確認する

バージョン アップデートを有効にすると、リポジトリの依存関係グラフにある [Dependabot] タブが設定されます。 このタブには、Dependabot が監視するように設定されているパッケージマネージャーと、Dependabot が最後に新しいバージョンをチェックした日時が表示されます。

[依存関係グラフ] ページのスクリーンショット。 Dependabot というタイトルのタブが、オレンジ色の枠線で強調表示されています。

詳しくは、「バージョン更新用に設定された依存関係を一覧表示する」をご覧ください。

Dependabot version updates を無効にする

リポジトリから dependabot.yml ファイルを削除することで、バージョン アップデートを完全に無効にすることができます。 通常、1 つ以上の依存関係やパッケージマネージャーの更新を一時的に無効にする必要がある場合があります。

  • パッケージ マネージャー: 構成ファイル内で open-pull-requests-limit: 0 を設定するか、関連する package-ecosystem をコメントアウトして無効にします。
  • 特定の依存関係: アップデートから除外したいパッケージまたはアプリケーションの ignore 属性を追加して無効にします。

依存関係を無効にすると、ワイルドカードを使用して、関連する一連のライブラリを照合できます。 除外するバージョンを指定することもできます。 これは、ライブラリの更新をブロックする必要がある場合や、API の重大な変更をサポートするために作業を保留する必要があるが、使用するバージョンのセキュリティ修正を取得する場合に特に便利です。

一部の依存関係のバージョン更新を無効にする例

次の dependabot.yml ファイルの例には、別の方法で一部の依存関係の更新を無効にしながら他の更新を引き続き行うことができるようにする例が含まれています。

# dependabot.yml file with updates
# disabled for Docker and limited for npm

version: 2
updates:
  # Configuration for Dockerfile
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
      # Disable all pull requests for Docker dependencies
    open-pull-requests-limit: 0

  # Configuration for npm
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    ignore:
      # Ignore updates to packages that start with 'aws'
      # Wildcards match zero or more arbitrary characters
      - dependency-name: "aws*"
      # Ignore some updates to the 'express' package
      - dependency-name: "express"
        # Ignore only new versions for 4.x and 5.x
        versions: ["4.x", "5.x"]
      # For all packages, ignore all patch updates
      - dependency-name: "*"
        update-types: ["version-update:semver-patch"]

既存の無視設定の詳細については「dependabot.yml ファイルの構成オプション」を参照してください。