実際の内部プロセスに適合するように Dependabot pull request をカスタマイズするには、さまざまな方法があります。
次に例を示します。
- 効率を最大化するために、Dependabot を使って、特定のパッケージ エコシステムの pull request に、特定の個人またはチームをレビュー担当者として自動的に追加することができます。
- Dependabot の pull request を CI/CD パイプラインに統合するには、pull request にカスタム ラベルを適用し、これを使ってアクション ワークフローをトリガーできます。
複数のカスタマイズ オプションがあり、すべてを組み合わせて使って、パッケージ エコシステムごとに調整できます。
レビュー担当者と担当者を自動的に追加する
デフォルトでは、Dependabot は、レビュー担当者やアサインされた人なしでプルリクエストを発行します。
ただし、そのパッケージ エコシステムの専門知識を持つ特定の個人またはチームが pull request を一貫してレビューまたは処理することや、指定したセキュリティ チームに自動的に割り当てることが必要になることがあります。 その場合、reviewers
と assignees
を使って、パッケージ エコシステムごとにこれらの値を設定できます。
次の dependabot.yml
ファイル例では、npm のバージョンおよびセキュリティ更新プログラムを使って開かれたすべての pull request が次のようになるように npm の構成を変更しています。
- レビュー担当者として pull request に自動的に追加されるチーム ("
my-org/team-name
") と個人 ("octocat
")。 - Pull request に自動的に割り当てられる個人 ("
user-name
")。
# `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 assignees assignees: - "user-name"
# `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 assignees
assignees:
- "user-name"
target-branch
を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラムの pull request に影響します。
assignees
および reviewers
も参照してください。
カスタム ラベルを使って pull request にラベルを付ける
既定では、Dependabot ではすべての pull request を dependencies
ラベル付きで発行します。
複数のパッケージ マネージャーが定義されている場合、Dependabot には、pull request が更新する言語またはエコシステムを示す追加のラベルが各 pull request に含まれます。 たとえば、Gradle の更新プログラムの場合は java
を、git サブモジュールの更新プログラムの場合は submodules
を追加します。
リポジトリにまだ存在しない場合に、pull request に適用される既定のラベルが、Dependabot によって作成されます。 カスタム ラベルを使う場合は、手動でラベルを作成する必要があります。 詳細については、「ラベルを管理する」を参照してください。
labels
を使うと、既定のラベルをオーバーライドし、パッケージ エコシステムごとに独自のカスタム ラベルを指定できます。 これは、たとえば次のような場合に便利です。
- ラベルを使って、特定の pull request に優先順位を割り当てます。
- ラベルを使って、pull request をプロジェクト ボードに自動的に追加するなど、別のワークフローをトリガーします。
次の dependabot.yml
ファイル例では、npm のバージョンおよびセキュリティ更新プログラムで開かれたすべての pull request にカスタム ラベルが割り当てられるように npm 構成を変更しています。
# `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"
# `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"
target-branch
を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラムの pull request に影響します。
参照 labels
.
コミット メッセージにプレフィックスを追加する
デフォルトでは、Dependabot はコミットメッセージの設定を検出し、同様のパターンを使用しようとします。 さらに、Dependabot で、コミット メッセージに基づいて pull request のタイトルを設定します。
特定のパッケージ エコシステムに対して Dependabot のコミット メッセージ (および pull request のタイトル) に独自のプレフィックスを指定できます。 これは、たとえば、コミット メッセージや pull request のタイトルを処理する自動化を実行している場合に便利です。
設定を明示的に指定するには、commit-message
を次のサポートされているオプションと共に使います。
prefix
:- すべてのコミット メッセージのプレフィックスを指定します。
- Pull request のタイトルの先頭にもプレフィックスが追加されます。
prefix-development
:- パッケージ マネージャーまたはエコシステムによって定義されているように、開発の依存関係を更新するすべてのコミット メッセージに個別のプレフィックスを指定します。
bundler
、composer
、mix
、maven
、npm
、pip
に対してサポートされています。
include: "scope"
:- 任意のプレフィックスの後に、コミットで更新された依存関係の種類 (
deps
またはdeps-dev
) が続くことを指定します。
- 任意のプレフィックスの後に、コミットで更新された依存関係の種類 (
次の例は、パッケージ エコシステムごとに調整された複数のオプションを示しています。
# Customize commit messages version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" commit-message: # Prefix all commit messages with "npm: " prefix: "npm" - package-ecosystem: "docker" directory: "/" schedule: interval: "weekly" commit-message: # Prefix all commit messages with [docker] " (no colon, but a trailing whitespace) prefix: [docker] " - package-ecosystem: "composer" directory: "/" schedule: interval: "weekly" # Prefix all commit messages with "Composer" plus its scope, that is, a # list of updated dependencies commit-message: prefix: "Composer" include: "scope" - package-ecosystem: "pip" directory: "/" schedule: interval: "weekly" # Include a list of updated dependencies # with a prefix determined by the dependency group commit-message: prefix: "pip prod" prefix-development: "pip dev"
# Customize commit messages
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
commit-message:
# Prefix all commit messages with "npm: "
prefix: "npm"
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
commit-message:
# Prefix all commit messages with [docker] " (no colon, but a trailing whitespace)
prefix: [docker] "
- package-ecosystem: "composer"
directory: "/"
schedule:
interval: "weekly"
# Prefix all commit messages with "Composer" plus its scope, that is, a
# list of updated dependencies
commit-message:
prefix: "Composer"
include: "scope"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
# Include a list of updated dependencies
# with a prefix determined by the dependency group
commit-message:
prefix: "pip prod"
prefix-development: "pip dev"
target-branch
を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラムの pull request に影響します。
参照 commit-message
.
Pull request とマイルストーンを関連付ける
マイルストーンは、プロジェクトの目標またはリリースに向けた pull request (または issue) のグループの進行状況を追跡するのに役立ちます。 Dependabot では、milestone
オプションを使って、依存関係の更新に対する pull request を特定のマイルストーンに関連付けることができます。
マイルストーンのラベルではなく、その数値識別子を指定する必要があります。 数値識別子を見つけるには、ページ URL の最後の部分 (milestone
の後) をチェックします。 たとえば、https://github.com/<org>/<repo>/milestone/3
の場合、"3
" はマイルストーンの数値識別子です。
# Specify a milestone for pull requests version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" # Associate pull requests with milestone "4" milestone: 4
# Specify a milestone for pull requests
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Associate pull requests with milestone "4"
milestone: 4
target-branch
を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラムの pull request に影響します。
「milestones
」と「マイルストーンについて」も参照してください。
Pull request ブランチ名の区切り記号を変更する
Dependabot は、pull request ごとにブランチを生成します。 各ブランチ名には、dependabot
に加えて、パッケージ マネージャーの名前と更新対象の依存関係が含まれます。 既定では、ブランチ名のこれらの部分は、/
記号で区切られています。次に例を示します。
dependabot/npm_and_yarn/next_js/acorn-6.4.1
既存のプロセスとのサポート性または整合性を保持するには、必要に応じて、ブランチ名がチームの既存の規約と一致していることを確認します。 この場合、pull-request-branch-name.separator
を使って別の区切り記号を指定し、_
、/
、または "-"
のいずれかを選択できます。
次の例では、npm の構成により、既定の区切り記号が /
から "-"
に変更され、次のようになります。
- 既定値 (
/
):dependabot/npm_and_yarn/next_js/acorn-6.4.1
- カスタマイズ後 (
"-"
):dependabot-npm_and_yarn-next_js-acorn-6.4.1
ハイフン記号 ("-"
) は、空の YAML リストの開始として解釈されないように、引用符で囲む必要があることに注意してください。
# Specify a different separator for branch names version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" pull-request-branch-name: # Change the default separator (/) to a hyphen (-) separator: "-"
# Specify a different separator for branch names
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
pull-request-branch-name:
# Change the default separator (/) to a hyphen (-)
separator: "-"
target-branch
を使って既定以外のブランチのバージョン アップデートをチェックしないかぎり、このオプションの設定も、このパッケージ マネージャーのマニフェスト ファイルに対するセキュリティ更新プログラムの pull request に影響します。
参照 pull-request-branch-name.separator
.
既定ではないブランチに対する pull request をターゲットに設定する
Dependabot の既定では、既定のブランチ上のマニフェスト ファイルがチェックされ、既定のブランチに対して更新プログラムの pull request が生成されます。
一般に、Dependabot のチェックと更新プログラムを既定のブランチに保持することが最も理にかなっています。 ただし、場合によっては、別のターゲット ブランチを指定する必要があります。 たとえば、チームのプロセスで、最初に非本番ブランチで更新プログラムをテストして検証する必要がある場合は、target-branch
を使って、Dependabot に別のブランチを指定して、pull request を生成できます。
Note
Dependabot により、既定のブランチのみに対してセキュリティ更新プログラム用の pull request が生成されます。 target-branch
を使うと、結果として、そのパッケージ マネージャーのすべての構成設定は、セキュリティ更新プログラムではなくバージョン更新プログラムに "のみ" 適用されます。__
# Specify a non-default branch for pull requests for pip version: 2 updates: - package-ecosystem: "pip" directory: "/" schedule: interval: "weekly" # Raise pull requests for version updates # to pip against the `develop` branch target-branch: "develop" # Labels on pull requests for version updates only labels: - "pip dependencies" - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" # Check for npm updates on Sundays day: "sunday" # Labels on pull requests for security and version updates labels: - "npm dependencies"
# Specify a non-default branch for pull requests for pip
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
# Raise pull requests for version updates
# to pip against the `develop` branch
target-branch: "develop"
# Labels on pull requests for version updates only
labels:
- "pip dependencies"
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Check for npm updates on Sundays
day: "sunday"
# Labels on pull requests for security and version updates
labels:
- "npm dependencies"
参照 target-branch
.