注: この機能を使用するには、サイト管理者が お使いの 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
) - 各パッケージ マネージャーのレビュー担当者、担当者、ラベルを設定する:
reviewers
、assignees
、labels
- 各マニフェスト ファイルの変更に対するバージョン管理戦略を定義する (
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 は、レビュー担当者やアサインされた人なしでプルリクエストを発行します。
reviewers
と assignees
を使うと、パッケージ マネージャーに対して発行されたすべての 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 ファイルの構成オプション」を参照してください。