Azure DevOps の自動完了:必須と任意のポリシー、完了しない理由
Set auto-complete(自動完了)は、ブランチ ポリシーを満たした時点で、選んだマージの種類とオプションのままプルリクエストを完了します。どのポリシーを待つかは、設定の仕方で変わります。Web ポータルは必須のポリシーだけを待ちますが、コマンドラインと REST API では任意のポリシーまで待つことがあります。以下は Microsoft の プルリクエストを自動完了に設定すると、REST API リファレンスの Pull Requests - Update からまとめたものです。
Web ポータルでの設定
- Complete の横の矢印から Set auto-complete を選び、ふつうの完了と同じようにマージの種類と完了後のオプション(関連する作業項目の完了・ソース ブランチの削除・マージ コミットのメッセージ)を選びます。
- 既定では必須のポリシーだけを待ちます。Enable automatic completion の画面で、任意のポリシーも待つように選べます。そこで必須にしたポリシーは、Overview のページで任意に戻せます。
- Overview のページには、まだ待っているポリシーの条件が並びます(TFS 2018 Update 2 以降)。プルリクエストの一覧には Auto-complete の印が付きます。Cancel auto-complete で取り消せます。
- 完了した時、または競合やエラーで完了できなかった時に、メールで知らせが来ます。
自動完了が完了しない理由
- 必須のポリシーが通っていない:レビュー担当者が承認していない、ビルドが失敗または期限切れ、コメントが解決されていない、作業項目がリンクされていない、など。何を待っているかは Overview のページに出ます。
- 任意のポリシーまで待っている:任意のポリシーも待つように選んだ時や、コマンドラインや API で設定した時(下記)は、失敗した任意のビルドでも止まります。
- 競合がある:マージの競合を解くまでは、マージも自動完了の設定もできません(マージ競合の解消)。
- 新しいコミットで承認が消えた:自動完了はコミットを指定しないので、完了までにプッシュされたコミットも一緒に完了されます。最低レビュー担当者数のポリシーが新しいプッシュで投票を消す設定なら、レビュー担当者が承認し直すまで待ちます。
- Set auto-complete がそもそも無い:Microsoft の注記では、ブランチ ポリシーがある時にだけ出ます。ポリシーが無ければ待つものも無いので、そのまま完了できます。
コマンドラインと REST API
az repos pr create --auto-complete trueとaz repos pr update --id <id> --auto-complete true。Microsoft のページでは--auto-completeを、すべてのポリシーが通ってソース ブランチをターゲットにマージできる時に完了する、と説明しています。完了のオプションに任意のポリシーを外すものはありません。Azure DevOps CLI は Azure DevOps Server では使えません。- REST API では、
autoCompleteSetByに自動完了をオンにした人の ID が入っていれば自動完了がオンです。マージの種類とオプションはcompletionOptionsに入れます。 completionOptions.autoCompleteIgnoreConfigIdsは、自動完了が待たないポリシー構成の ID の一覧です。対象は任意のポリシー(isBlockingが false)だけで、必須のポリシーは必ず待ちます。つまり空のまま送ると、Web ポータルの既定(必須だけを待つ)にはなりません。同じにするには、そのプルリクエストの任意のポリシーの ID を入れます。ID はポリシー評価(policy evaluations)の構成(configuration)にあります。
IntelliJ IDEA での自動完了
Azure DevOps Pull Requests は、Lesstep が作っている JetBrains IDE(2024.1 以降)と Android Studio のプラグインです。Azure DevOps Services と Azure DevOps Server のプルリクエストを、ブランチ ポリシーと一緒に IDE のツールウィンドウに並べます。完了の画面から、選んだマージの種類とブランチの削除のまま自動完了を設定できます。プルリクエストを開いた後にソース ブランチへ新しいコミットが来ていれば設定を断ります。1.0.54 からは Web ポータルと同じく必須のポリシーだけを待ちます。自動完了はプルリクエストの画面から取り消せます。レビューの受け箱とブランチ ポリシーは無料、投票・コメント・完了・プルリクエストの作成は Pro(30日間の無料試用つき)です。画面は日本語です。
Azure DevOps は Microsoft Corporation の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Microsoft・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:az repos pr のコマンド · リンクした作業項目の完了 · ビルド検証と期限切れのビルド · コメントの状態とコメントの解決のポリシー · マージの種類と Limit merge types · 必須のレビュー担当者とパスの絞り込み · 承認が「最低レビュー担当者数」に数えられない理由 · ポリシーを回避する明示的なオーバーライド · English