Azure DevOps のプルリクで、前回のレビューから何が変わったかを見る
Azure Repos のプルリクエストでは、ソース ブランチへのプッシュのたびに更新が1つ増え、1から番号が付きます(REST API ではイテレーションと呼びます)。以下は Microsoft の プル リクエストのレビューと、REST リファレンスの Pull Request Iterations・Pull Request Threads(英語)からまとめた、更新を見る所、前回見たあとにプッシュされた分だけを見る方法、前の更新で書かれたコメントがどうなるかです。
Web の画面で更新を見る所
- [更新] タブ:プッシュの一覧。番号付きで新しいものが上、それぞれにそのプッシュで入ったコミットが付きます。強制プッシュでもこの履歴は上書きされず、更新が1つ増えるだけです。[コミット] タブは今のソース ブランチを見せるので、強制プッシュの後は2つが食い違うことがあります。
- [ファイル] タブの変更ドロップダウン:更新を1つ以上選ぶと(複数は Shift キーを押しながら)、差分にはその分の変更だけが出ます。前回のレビューの後にプッシュされた分だけを見るときに使います。各項目の名前は、そのプッシュの最後のコミットのメッセージです。
- [概要] タブの [What's new](最新情報)の絞り込み:最後にプルリクエストを開いた後の、新しいコメントと更新です。
プッシュで承認が消えることもあります。最低レビュー担当者数のポリシーの When new changes are pushed で投票をリセットする設定にしていると、レビュー担当者は新しいコミットをもう一度承認します(承認が「最低レビュー担当者数」に数えられない理由)。
前の更新で書かれたコメント
行へのコメントは、ある差分を画面に出している時に書かれ、その行番号はその更新のファイルの行番号です。REST API では、スレッドがその文脈を pullRequestThreadContext に持っています。
iterationContext:スレッドが書かれた時に比べていた更新(firstComparingIteration・secondComparingIteration)。trackingCriteria:Azure DevOps がスレッドを元の場所から追いかけた時に入ります。追いかけた先の更新と、元の位置(origFilePath・origRightFileStartなど)を持ちます。- スレッドの一覧を
$iteration(と$baseIteration)を付けて読むと、その2つの更新に合わせて追いかけた位置を返します。付けなければ、各スレッドが今持っている位置のままです。
このため、コメントしたファイルを変えるプッシュの後は、最新の差分の同じ行番号に別のコードが来ていることがあります。最新の差分を見せる道具は、スレッドの行番号がどの更新のものかを確かめてから、そこに置く必要があります。
REST API での更新
GET …/_apis/git/repositories/{repository}/pullRequests/{id}/iterationsは更新の一覧です。sourceRefCommit(そのプッシュのソースのコミット)、commonRefCommit(ソースとターゲットの最初の共通のコミット)、reasonと日付が入ります。イテレーション 1 はプルリクエストを作った時のソース ブランチの先頭で、プッシュのたびに1つ増えます。includeCommits=trueでコミットも付きます。GET …/pullRequests/{id}/iterations/{iterationId}/changesは変わったファイルの一覧です。$compareToは比べる相手の更新で、既定の 0 はソースとターゲットの共通のコミット=その更新までのプルリク全体です。$topで最大 2,000 件(指定しなければ 100 件)。GET …/pullRequests/{id}/threads?$iteration={n}&$baseIteration={m}は、更新nとmに合わせて位置を追いかけたスレッドの一覧です。
どれもスコープ Code (Read) で読めます。
IntelliJ IDEA で、前回見たあとに変わったもの
Azure DevOps Pull Requests は、Lesstep が作っている JetBrains IDE(2024.1 以降)と Android Studio のプラグインです。Azure DevOps Services と Azure DevOps Server のプルリクエストを IDE のツールウィンドウに並べ、前回見たあとに何が変わったかを示します。前回見たあとに変わったファイルには印が付き、既読にしたファイルは、あとのプッシュでそのファイルが変わった時だけ既読が外れます。差分はプルリク全体(共通のコミットから最新のプッシュまで)です。1.0.65 からは、あとのプッシュで変わったファイルの行へのコメントを、差分の古い行番号には置きません。コメントの一覧に「古いコメント」の印を付けて残し、押すとそのファイルの先頭が開きます。レビューの受信箱・差分・既読の印は無料、投票・コメント・解決・完了・プルリクの作成は Pro(30日間の無料試用つき)です。画面は日本語です。
Azure DevOps は Microsoft Corporation の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Microsoft・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:コメントの状態と、コメントの解決のポリシー · 投票 · 承認が「最低レビュー担当者数」に数えられない理由 · マージ競合 · English