Skip to main content

依存関係の更新をカスタマイズする

Dependabot が依存関係を維持する方法をカスタマイズできます。

この機能を使用できるユーザーについて

People with write permissions to a repository can configure Dependabot for the repository.

注: この機能を使用するには、サイト管理者が お使いの GitHub Enterprise Server インスタンスの Dependabot updatesを設定する必要があります。 詳しくは、「Enabling Dependabot for your enterprise」を参照してください。

Enterprise 所有者が Enterprise レベルでポリシーを設定している場合、Dependabot updatesを有効または無効にできない場合があります。 詳しくは、「Enforcing policies for code security and analysis for your enterprise」をご覧ください。

依存関係の更新のカスタマイズについて

バージョン アップデートを有効にすると、dependabot.yml ファイルにその他のオプションを追加することで、Dependabot を使って依存関係を維持する方法をカスタマイズできます。 たとえば、次のことが可能です。

  • バージョン アップデートの pull request をオープンする曜日を指定する (schedule.day)
  • 各パッケージ マネージャーのレビュー担当者、担当者、ラベルを設定する: reviewersassigneeslabels
  • 各マニフェスト ファイルの変更に対するバージョン管理戦略を定義する (versioning-strategy)
  • バージョン アップデートの pull requests オープンする回数を、既定の 5 回から最大の回数に変更する (open-pull-requests-limit)
  • バージョン アップデートの pull request をオープンして、既定のブランチの代わりに特定のブランチをターゲットにする (target-branch)

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

リポジトリ内の dependabot.yml ファイルを更新すると、Dependabot によって、新しい構成で、すぐにチェックが実行されます。 数分以内に、 [Dependabot] タブに依存関係の更新済みリストが表示されます。リポジトリにある依存関係が多い場合は、時間がかかることがあります。 バージョン更新に関する新しいプルリクエストが表示されることもあります。 詳しくは、「バージョン更新用に設定された依存関係を一覧表示する」を参照してください。

設定変更によるセキュリティアップデートへの影響

dependabot.yml ファイルをカスタマイズしていると、セキュリティ アップデートに対して発行された pull request の変更点に気づくかもしれません。 これらのプルリクエストは、Dependabot スケジュールではなく、常に依存関係のセキュリティアドバイザリによってトリガーされます。 ただし、バージョン アップデートに別のターゲット ブランチを指定していなければ、関連する構成設定は dependabot.yml ファイルから継承されます。

例については、カスタム ラベルの設定に関する以下のセクションを参照してください。

スケジュールを変更する

アップデート スケジュールを daily に設定すると、既定の 05:00 (UTC) に Dependabot で新しいバージョンのチェックが行われます。 schedule.time を使うと、アップデートのチェックを別の時刻に指定できます (hh:mm 形式)。

次の dependabot.yml ファイルの例では、npm 構成を拡張して、Dependabot で依存関係のバージョン アップデートをチェックするタイミングを指定します。

# `dependabot.yml` file with
# customized schedule for version updates

version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    # Check the npm registry for updates at 2am UTC
    schedule:
      interval: "daily"
      time: "02:00"

レビュー担当者とアサインされた人を設定する

デフォルトでは、Dependabot は、レビュー担当者やアサインされた人なしでプルリクエストを発行します。

reviewersassignees を使うと、パッケージ マネージャーに対して発行されたすべての pull request のレビュー担当者と担当者を指定できます。 Team を指定する場合は、その Team (組織を含む) を @mentioning していたように、Team のフル ネームを使う必要があります。

次の dependabot.yml ファイルの例では、npm のバージョン アップデートとセキュリティ アップデートでオープンしたすべての pull request に 2 人のレビュー担当者と 1 人の担当者が存在するように、npm 構成を変更します。

# `dependabot.yml` file with
# reviews and an assignee for all npm pull requests

version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Raise all npm pull requests with reviewers
    reviewers:
      - "my-org/team-name"
      - "octocat"
    # Raise all npm pull requests with an assignee
    assignees:
      - "user-name"

カスタムラベルを設定する

既定では、Dependabot ではすべての pull request を dependencies ラベル付きで発行します。 複数のパッケージマネージャが定義されている場合、DependabotはそれぞれのPull Requestに追加のラベルを含めます。 これは、その pull request によってどの言語またはエコシステムが更新されるかを示します。たとえば、Gradle の更新には java、Git サブモジュールの更新には submodules というようになります。 Dependabotは、リポジトリ中の必要に応じて自動的にこれらのデフォルトラベルを作成します。

labels を使うと、既定のラベルを上書きして、パッケージ マネージャーに対して発行されたすべての pull request に代替ラベルを指定できます。 dependabot.yml ファイルでは新しいラベルを作成できないため、リポジトリ内に代替ラベルが既に存在している必要があります。

次の dependabot.yml ファイルの例では、npm のバージョン アップデートとセキュリティ アップデートでオープンしたすべての pull request にカスタム ラベルが存在するように、npm 構成を変更します。 また、Docker 設定を変更して、カスタムブランチに対するバージョン更新を確認し、そのカスタムブランチに対するカスタムラベルを使用してプルリクエストを発行します。 セキュリティアップデートは常にデフォルトのブランチに対して行われるため、Docker への変更はセキュリティアップデートのプルリクエストには影響しません。

注: 新しい target-branch には、更新する Dockerfile が含まれている必要があります。含まれていない場合、この変更を行うと、Docker のバージョン アップデートが無効になります。

# `dependabot.yml` file with
# customized npm configuration

version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Raise all npm pull requests with custom labels
    labels:
      - "npm dependencies"
      - "triage-board"

    # Keep Docker dependencies up to date
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
    # Raise pull requests for Docker version updates
    # against the "develop" branch. The Docker configuration
    # no longer affects security update pull requests.
    target-branch: "develop"
    # Use custom labels on pull requests for Docker version updates
    labels:
      - "Docker dependencies"
      - "triage-board"

Dependabot version updates の特定の依存関係を無視する

プロジェクト内の依存関係からの変更を採用する準備ができていない場合は、Dependabot を構成して、バージョン更新の pull request を開いたときにそれらの依存関係を無視できます。 次のいずれかの方法で実行できます:

  • dependabot.yml ファイル内の依存関係に ignore オプションを構成します。 これで、特定の依存関係、バージョン、更新プログラムの種類のアップデートを無視できます。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
  • バージョン更新の Dependabot pull request で @dependabot ignore コメント コマンドを使用します。 これで、特定の依存関係およびバージョンの種類のアップデートを無視できます。 詳しくは、「依存関係の更新に関するPull Requestを管理する」を参照してください。

依存関係を無視解除する、または無視条件を解除する場合は、無視条件を dependabot.yml ファイルから削除するか、pull requestを再度開きます。

その他の例

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