Azure DevOps のコメントの状態と、コメントの解決のポリシー
Azure Repos のプルリクエストのコメントのスレッドには、それぞれ状態があります。ブランチ ポリシー Check for comment resolution を付けると、その状態でプルリクエストを完了できるかが決まります。以下は Microsoft の プル リクエストのレビュー、ブランチ ポリシーの設定と管理、REST リファレンスの Pull Request Threads - Update(英語)からまとめた、状態の一覧、ポリシーが確かめること、よく止まる所です。
状態の一覧
- Active(アクティブ・
active):新しいコメントは必ずこの状態で始まります。 - Pending(保留中・
pending):問題を確かめている途中で、ほかの何かを待っています。 - Resolved(解決済み・
fixed):問題に対応しました。Reply & resolve(返信して解決)で、返信と同時にこの状態になります。 - Won't fix(修正しない・
wontFix):問題は受け取ったが、直しません。 - Closed(クローズ・
closed):議論を閉じました。 - By design(仕様どおり・
byDesign):REST API では「仕様どおりとして解決」。Microsoft の今のページは Web の選択肢にこれを挙げていませんが、この状態のスレッドはあり得ます。
Microsoft は、プルリクエストの作成者が、指摘ごとにどう対応したかを状態で示す、と説明しています。REST API の説明では、fixed・wontFix・byDesign は「〜として解決」、closed は「閉じた」で、active と pending は解決していない状態です。
ポリシー「Check for comment resolution」
- ターゲット ブランチのポリシーで Check for comment resolution をオンにし、Required(必須)か Optional(任意)を選びます。プルリクエストのコメントがすべて解決しているかを確かめます。
- Required なら、未解決のコメントがある間はプルリクエストを完了できず、自動完了も終わりません。Optional なら知らせるだけです。
- コマンドラインでは
az repos policy comment-required create --blocking true --branch main --enabled true --repository-id <id>。--blockingが必須かどうかの切り替えです。ポリシーの評価では、種類の名前は Comment requirements です。
それでもポリシーが通らない理由
- 保留中のスレッドがある。保留中は、ほかの何かを待っているという意味で、解決ではありません。話が付いたら、解決済み・修正しない・クローズのどれかにします。
- 未解決のスレッドが見えていない。Overview タブのコメントの絞り込みで議論を絞れ、選択肢ごとに件数が出ます。ファイルに付いたコメントもスレッドです。
- レビュー担当者が返事を待っている。黙って解決にするより、返信して解決にすると、どう対応したかが伝わります。
- ポリシーを回避できる権限の人にも失敗は表示されますが、ほかのポリシーと同じく、その人にとっては参考の表示です。
REST API で状態を変える
GET …/_apis/git/repositories/{repository}/pullRequests/{id}/threadsで、スレッドがstatusと一緒に並びます。PATCH …/pullRequests/{id}/threads/{threadId}に{"status": "fixed"}を送ると解決になります(スコープは Code (Read & write))。activeを送ると再開します。
IntelliJ IDEA でのコメントの解決
Azure DevOps Pull Requests は、Lesstep が作っている JetBrains IDE(2024.1 以降)と Android Studio のプラグインです。Azure DevOps Services と Azure DevOps Server のプルリクエストを IDE のツールウィンドウに並べます。プルリクエストごとに、コメントのスレッドを IDE の言語の状態の名前で出し、未解決(アクティブか保留中)と解決済みの件数、解決済みを表示で畳んだ解決済みのスレッド、ほかのブランチ ポリシーと並べた「すべてのコメントの解決」の行を出します。差分の画面では、コードの横のアイコンで解決済みかが分かります。Pro では、プルリクエストのコメントから返信・解決にする・再開するができます。レビューの受信箱とブランチ ポリシーは無料、投票・コメント・解決・完了・プルリクの作成は Pro(30日間の無料試用つき)です。画面は日本語です。
Azure DevOps は Microsoft Corporation の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Microsoft・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:作業項目のリンクのポリシー · ビルド検証と期限切れのビルド · 自動完了と任意のポリシー · 承認が「最低レビュー担当者数」に数えられない理由 · ポリシーを回避する明示的なオーバーライド · 前回のレビューから変わったもの · English