Skip to main content

このバージョンの GitHub Enterprise サーバーはこの日付をもって終了となりました: 2024-09-25. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise サーバーにアップグレードしてください。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせください

実際のプロセスに合わせて Dependabot pull request をカスタマイズする

実際の内部ワークフローに合わせて Dependabot pull request を調整する方法について説明します。

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

Users with write access

実際の内部プロセスに適合するように Dependabot pull request をカスタマイズするには、さまざまな方法があります。

次に例を示します。

  • 効率を最大化するために、Dependabot を使って、特定のパッケージ エコシステムの pull request に、特定の個人またはチームをレビュー担当者として自動的に追加することができます。
  • Dependabot の pull request を CI/CD パイプラインに統合するには、pull request にカスタム ラベルを適用し、これを使ってアクション ワークフローをトリガーできます。

複数のカスタマイズ オプションがあり、すべてを組み合わせて使って、パッケージ エコシステムごとに調整できます。

レビュー担当者と担当者を自動的に追加する

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

ただし、そのパッケージ エコシステムの専門知識を持つ特定の個人またはチームが pull request を一貫してレビューまたは処理することや、指定したセキュリティ チームに自動的に割り当てることが必要になることがあります。 その場合、reviewersassignees を使って、パッケージ エコシステムごとにこれらの値を設定できます。

次の dependabot.yml ファイル例では、npm のバージョンおよびセキュリティ更新プログラムを使って開かれたすべての pull request が次のようになるように npm の構成を変更しています。

  • レビュー担当者として pull request に自動的に追加されるチーム ("my-org/team-name") と個人 ("octocat")。
  • Pull request に自動的に割り当てられる個人 ("user-name")。
YAML
# `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 構成を変更しています。

YAML
# `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:
    • パッケージ マネージャーまたはエコシステムによって定義されているように、開発の依存関係を更新するすべてのコミット メッセージに個別のプレフィックスを指定します。
    • bundlercomposermixmavennpmpip に対してサポートされています。
  • include: "scope":
    • 任意のプレフィックスの後に、コミットで更新された依存関係の種類 (deps または deps-dev) が続くことを指定します。

次の例は、パッケージ エコシステムごとに調整された複数のオプションを示しています。

YAML
# 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" はマイルストーンの数値識別子です。

YAML
# 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 リストの開始として解釈されないように、引用符で囲む必要があることに注意してください。

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: "-"

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 を使うと、結果として、そのパッケージ マネージャーのすべての構成設定は、セキュリティ更新プログラムではなくバージョン更新プログラムに "のみ" 適用されます。__

YAML
# 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.