Azure DevOps のプルリクの投票:Approve with suggestions・Wait for author・Reject の意味
Azure DevOps のプルリクエストのレビュー担当者は、プルリクのページの投票のメニューから投票し、レビュー担当者のアイコンにその投票が出ます。投票でプルリクが完了することはなく、完了できるかどうかが決まります。以下は、それぞれの投票が何をするかを、Microsoft の Review pull requests、ブランチ ポリシー、Pull Request Reviewers の REST リファレンス、Sprint 167 のリリースノート(いずれも英語)からまとめたものです。
5つの選択肢
- Approve(REST API では
10):変更を承認します。 - Approve with suggestions(
5):承認し、任意の改善の提案を添えます。 - Wait for author(
-5):作成者にレビュー担当者のコメントを見るよう求めます。作成者は、直したらもう一度見てほしいとレビュー担当者に伝えます。必須のレビュー担当者がこれを選ぶと、プルリクの承認を止めます。 - Reject(
-10):変更を受け入れられないことを示します。Microsoft は理由をコメントに書くよう勧めています。必須のレビュー担当者がこれを選ぶと、これも承認を止めます。 - Reset feedback(
0):自分の投票を消します。投票がないことは、プルリクの完了を妨げません。
投票が完了を止める時
- 必須のレビュー担当者:全員が承認するまで変更はマージされず、その Wait for author や Reject はプルリクを止めます。ブランチ ポリシーが加えた必須のレビュー担当者は、外すことも任意にすることもできません(必須のレビュー担当者)。
- 最低レビュー担当者数:このポリシーがあると、誰か1人の Wait for author や Reject でプルリクを完了できません。Allow completion even if some reviewers vote to wait or reject をオンにすれば完了できますが、決めた数の承認はどちらにしても要ります(承認が数えられない理由)。
- プッシュの後:Reset all approval votes (does not reset votes to reject or wait) は承認だけを消し、Wait for author と Reject は残します。残った投票は、レビュー担当者が変えるまでそのままです。Reset all code reviewer votes はすべての投票を消します。
- チームとグループ:チームやグループはレビュー担当者になれますが、自分では投票できません。メンバーが投票すると、その投票がグループの投票にまとめられます(REST API では
votedForに並びます。チームに割り当てられたプルリク)。
レビューの辞退とフラグ
Sprint 167(2020年4月)から、自分が加えられたプルリクのレビューを、投票のメニューかプルリクの一覧の右クリックのメニューから辞退(decline)できます。一覧の自分で作った区分には、レビューしたものと辞退したものが別のタブで出ます。フラグを付けたプルリクは一覧のいちばん上に出ます。REST API では、どちらもレビュー担当者の hasDeclined と isFlagged で分かります。
スクリプトから投票する
- Azure CLI(Azure DevOps Services。Azure DevOps Server では使えません):
az repos pr set-vote --id 21 --vote approve。値はapprove・approve-with-suggestions・reject・reset・wait-for-authorです。 - REST API:
PUT https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/reviewers/{reviewerId}?api-version=7.1に{"vote": 10, "id": "{reviewerId}"}を送ります。同じ呼び出しに"vote": 0を送るとレビュー担当者に加わります。値は 10 承認・5 提案付きで承認・0 投票なし・-5 作成者を待機・-10 却下です。スコープvso.code_writeが要り、個人用アクセス トークンでは Code (Read & write) です。
IntelliJ IDEA と Rider で投票する
Azure DevOps Pull Requests は、Lesstep が作っている JetBrains IDE(2024.1 以降)と Android Studio のプラグインです。Azure DevOps Services と Azure DevOps Server のプルリクエストを IDE のツールウィンドウに並べます。自分の投票待ちの絞り込みは、自分が投票したか辞退したプルリクと、自分のチームに頼まれたものはチームの誰かが投票したら、外します。投票…のメニューには承認・提案付きで承認・作成者を待機・却下・投票をリセットがあり、レビュー担当者ごとに投票と(必須)を出します。プルリクを開いた後にソース ブランチへ新しいコミットが来ていれば承認を断るので、見たものを承認することになります。ブランチ ポリシーは文で出し、ブランチがそう決めていれば「「却下」か「作成者を待機」があると完了できない」と出ます。レビューの受信箱とブランチ ポリシーは無料、投票・コメント・完了は Pro(月 US$1・30日間の無料試用つき)です。画面は日本語です。
Azure DevOps は Microsoft Corporation の商標、IntelliJ IDEA と Rider は JetBrains s.r.o. の商標です。このページは Microsoft・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:コメントでの変更の提案 · 承認が「最低レビュー担当者数」に数えられない理由 · 必須のレビュー担当者とパスの絞り込み · チームに割り当てられたプルリクエスト · コメントの状態と解決 · English