Skip to main content

依存関係の更新に関するPull Requestを管理する

Dependabot によって生成されたPull Requestは、他のPull Requestとほぼ同じ方法で管理しますが、いくつかの追加オプションがあります。

Dependabot のPull Requestについて

Dependabot は、依存関係を更新するPull Requestを生成します。 リポジトリの設定によっては、Dependabot がバージョン更新やセキュリティアップデートのPull Requestを発行する場合があります。 これらのPull Requestは、他のPull Requestと同じ方法で管理しますが、追加のコマンドもいくつか用意されています。 Dependabot の依存関係更新プログラムの有効化については、「Configuring Dependabot security updates (Dependabot セキュリティ アップデートの構成)」と「Dependabot のバージョン アップデートの設定」を参照してください。

Dependabot がPull Requestを発行すると、リポジトリに対して選択した方法で通知されます。 各Pull Requestには、パッケージマネージャーから取得した、提案された変更に関する詳細情報が含まれています。 これらのPull Requestは、リポジトリで定義されている通常のチェックとテストに従います。 さらに、十分な情報が利用可能な場合は、互換性スコアが表示されます。 これは、変更をマージするかどうかを決める際にも役立ちます。 このスコアについては、「Dependabot のセキュリティ アップデート」を参照してください。

管理する依存関係が多数ある場合は、各パッケージマネージャーの設定をカスタマイズして、プルリクエストに特定のレビュー担当者、アサインされた人、ラベルを付けることができます。 1 つの pull request で複数の依存関係が更新されるように、依存関係のセットをまとめてグループ化することもできます。詳しくは、「依存関係の更新をカスタマイズする」と「Configuring Dependabot security updates (Dependabot セキュリティ アップデートの構成)」をご覧ください。

: 90 日間、リポジトリに対する Dependabot pull request を操作しない場合、Dependabot はリポジトリを非アクティブと見なし、Dependabot updates を自動的に一時停止します。 非アクティブ状態の条件の詳細については、「GitHub Dependabot のバージョンアップデートについて」と「Dependabot のセキュリティ アップデート」を参照してください。

Dependabot のPull Requestを表示する

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

  2. リポジトリ名の下にある [pull request] をクリックします。

    リポジトリのメイン ページのスクリーンショット。 水平ナビゲーション バーでは、[pull request] というラベルが付いたタブが濃いオレンジ色の枠線で囲まれています。

  3. セキュリティまたはバージョン更新の pull requests は、簡単に特定できます。

    • 作成者は dependabot です。これは、Dependabot によって使用されるボット アカウントです。
    • 既定では、dependencies ラベルが付けられています。

Dependabot Pull Requestのリベース戦略を変更する

デフォルトでは、Dependabot は自動的にPull Requestをリベースして競合を解決します。 pull request が 30 日間マージされていない場合、Dependabot は pull request のリベースを停止します。 pull request の手動でのリベースとマージは引き続きできます。 マージの競合を手動で処理する方がよい場合は、rebase-strategy オプションを使ってこれを無効にできます。 詳細については、「dependabot.yml ファイルの構成オプション」を参照してください。

リベースと追加コミットに対するプッシュの適用を Dependabot に許可する

既定では、追加コミットがプッシュされると Dependabot によって pull request のリベースが停止されます。 そのブランチに追加されたコミットにプッシュを適用することを Dependabot に許可するには、文字列 [dependabot skip][skip dependabot][dependabot-skip]、または [skip-dependabot] を小文字または大文字でコミット メッセージに追加します。

Dependabot Pull Requestをコメントコマンドで管理する

Dependabot はコメント内の単純なコマンドに応答します。 それぞれのPull Requestには、"Dependabot commands and options"セクションの下に、そのPull Requestを処理するのに使えるコマンド(たとえばPull Requestのマージ、squash、再オープン、クローズ、リベース)の詳細があります。 これらの自動生成されたPull Requestをできるだけ簡単にトリアージできるようにすることが目的です。

Dependabot Pull Requestでは、以下のいずれのコマンドを使うこともできます。

  • @dependabot cancel merge は、以前に要求されたマージを取り消します。
  • @dependabot close は、pull request をクローズし、Dependabot がその pull request を再生成しないようにします。 同じ結果は、Pull Requestを手動でクローズしても得られます。
  • @dependabot ignore this dependency は、pull request をクローズし、Dependabot がこの依存関係に対してそれ以上 pull request を生成しないようにします (pull request を再オープンするか、提案されたバージョンの依存関係にアップグレードしないかぎり)。
  • @dependabot ignore this major version は、pull request をクローズし、Dependabot がこのメジャー バージョンに対してそれ以上 pull request を生成しないようにします (pull request を再オープンするか、このメジャー バージョンにアップグレードしないかぎり)。
  • @dependabot ignore this minor version は、pull request をクローズし、Dependabot がこのマイナー バージョンに対してそれ以上 pull request を生成しないようにします (pull request を再オープンするか、このマイナー バージョンにアップグレードしないかぎり)。
  • @dependabot ignore this patch version は、pull request をクローズし、Dependabot がこのパッチ バージョンに対してそれ以上 pull request を生成しないようにします (pull request を再オープンするか、このパッチ バージョンにアップグレードしないかぎり)。
  • @dependabot merge は、CI テストに合格すると pull request をマージします。
  • @dependabot rebase は、pull request をリベースします。
  • @dependabot recreate は pull request を再作成し、pull request に対して行われたすべての編集を上書きします。
  • @dependabot reopen は、pull request が閉じている場合に pull request を再度開きます。
  • @dependabot show DEPENDENCY_NAME ignore conditions は、指定された依存関係の無視条件に関する情報を取得し、依存関係のすべての無視条件を表示するテーブルを持つ pull request に関するコメントを行います。 たとえば、@dependabot show express ignore conditions で Express 依存関係に格納されているすべての ignore 条件を検索し、その情報を含む pull request にコメントします。
  • @dependabot squash and merge は、CI テストに合格すると pull request をスカッシュしてマージします。

Dependabotはコマンドを認識すると"thumbs up"の絵文字で反応し、Pull Requestのコメントで応答することがあります。 Dependabotは通常すぐに反応しますが、コマンドによってはDependabotが他の更新やコマンドを処理するのに忙しい場合、完了に数分かかることがあります。

依存関係やバージョンを無視するコマンドを実行すると、Dependabot はリポジトリの設定を一元的に保存します。 これは簡単な解決策ですが、複数のコントリビューターがいるリポジトリの場合は、設定ファイルで無視する依存関係とバージョンを明示的に定義することをお勧めします。 これにより、特定の依存関係が自動的に更新されない理由をすべてのコントリビューターが簡単に確認できます。

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

グループ化したアップデートに関する Dependabot pull request をコメント コマンドで管理する

グループ化されたバージョン更新とセキュリティ アップデートに対する Dependabot pull request では、コメント コマンドを使用して、特定の依存関係とバージョンの更新を無視および無視解除できます。 以下のいずれかのコマンドを使用して、グループ化されたアップデートの無視条件を管理できます。

  • @dependabot ignore DEPENDENCY_NAME は、pull request をクローズし、Dependabot がその依存関係をアップデートしないようにします。
  • @dependabot ignore DEPENDENCY_NAME major version は、pull request をクローズし、Dependabot がその依存関係のメジャー バージョンをアップデートしないようにします。
  • @dependabot ignore DEPENDENCY_NAME minor version は、pull request をクローズし、Dependabot がその依存関係のバージョンバージョンをアップデートしないようにします。
  • @dependabot ignore DEPENDENCY_NAME patch version は、pull request をクローズし、Dependabot がこの依存関係のパッチ バージョンを更新しないようにします。
  • @dependabot unignore * は、現在の pull request をクローズし、グループ内のすべての依存関係に格納されているすべての ignore 条件をクリアしてから、新しい pull request を開きます。
  • @dependabot unignore DEPENDENCY_NAME は、現在の pull request を閉じ、依存関係に格納されているすべての ignore 条件をクリアしてから、指定された依存関係に対して使用できるアップデートを含む新しい pull request を開きます。 たとえば、@dependabot unignore lodash で Lodash 依存関係のアップデートを含む新しい pull request を開きます。
  • @dependabot unignore DEPENDENCY_NAME IGNORE_CONDITION は、現在の pull request を閉じ、依存関係に格納されているすべての ignore 条件をクリアしてから、指定された無視条件に対して使用できるアップデートを含む新しい pull request を開きます。 たとえば、@dependabot unignore express [< 1.9, > 1.8.0] でバージョン 1.8.0 と 1.9.0 の間の Express のアップデートを含む新しい pull request を開きます。

ヒント: 特定の無視条件を解除する場合は、@dependabot show DEPENDENCY_NAME ignore conditions コマンドで、依存関係に現在存在する無視条件をすばやく確認します。