Bitbucket の「変更を依頼」と Needs work:Cloud と Data Center のレビュアーの状態
Bitbucket のレビュアーは、承認するだけでなく、先に変更が要ると伝えることもできます。Bitbucket Cloud ではこれを Request changes と呼び、レビュアーは Changes requested と表示されます。Bitbucket Data Center では Needs work と呼んでいました。REST リファレンスによれば、画面では 8.10 から Requested changes と呼び、API では今も NEEDS_WORK です。以下は Atlassian の Changes requested の告知(2020年12月)、Suggest or require checks before a merge、Cloud の REST リファレンス、Data Center の Reviewing a pull request、Data Center の REST リファレンス(いずれも英語)からまとめたものです。
Bitbucket Cloud:Changes requested
- 意味:レビュアーは、承認する前に変更を見たいと思っています。Atlassian の告知は、作成者が何をすればよいかを伝えるコメントやタスクと組み合わせる形で説明しています。
- マージを止める:マージチェック No changes are requested は、Changes requested のレビュアーがいる間、警告を出します。ほかのマージチェックと同じく、マージを本当に止めるのは Premium で Prevent a merge with unresolved merge checks がある時だけで、それ以外は警告です。
- プッシュの後:Reset requested changes when the source branch is modified は、ソース ブランチが変わった時に Changes requested をすべて外します。同じブランチ制限の設定の中にあります。プッシュで承認を外すのは別の設定で、こちらは Premium だけです。
- REST API:
POST …/pullrequests/{id}/request-changesで、認証したユーザーとして変更を依頼し、同じ住所へのDELETEで取り下げます(スコープwrite:pullrequest。マージ済みのプルリクではどちらも 400)。参加者のstateはchanges_requestedになります。ブランチ制限の種類はrequire_no_changes_requestedとreset_pullrequest_changes_requested_on_changeです。 - Webhook:Repository settings > Webhooks の Changes Request created と Changes Request removed(Atlassian の告知・英語)。
Bitbucket Data Center:Needs work、今は Requested changes
- 名前:Data Center 8.8 の説明は Approve と Needs work、10.2 の説明は Approve と Request changes を挙げていて、意味は同じです(変更はレビューしたが、まだマージする段階ではない)。検索や古い記事では、同じ状態が両方の名前で出てきます。
- マージを止める:マージチェック No 'changes requested' status は、この状態のレビュアーがいる間マージを拒否します(マージチェック)。
- REST API:
PUT …/pull-requests/{id}/participants/{userSlug}に"status": "NEEDS_WORK"を送るとこの状態になり、"APPROVED"で承認、"UNAPPROVED"でどちらも外れます。変わるのは今のユーザーの状態で、まだ参加者でなければ参加者に加わり、作成者だと失敗します。ソース ブランチの最新のコミットが、その参加者のlastReviewedCommitになります。
IntelliJ IDEA で変更を依頼する
Pull Request Inbox for Bitbucket は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。自分のレビューを待っている Bitbucket Cloud と Bitbucket Data Center のプルリクを IDE のツールウィンドウに並べます。レビュー…のメニューには承認と変更を依頼があり、すでにしたほうは取り消す選択肢に替わります(承認を取り消す・変更の依頼を取り下げる)。Data Center では同じ参加者の呼び出しで Needs work にします。レビュアーごとに承認済み・変更を依頼・まだレビューしていないを出し、マージチェックは平易な文で出します(Data Center ではサーバー自身の言葉で)。プルリクを開いた後に新しいコミットが来ていれば承認を断るので、見たものを承認することになります。レビューの受信箱とマージチェックは無料、承認・変更の依頼・コメント・マージは Pro(30日間の無料試用つき)です。画面は日本語です。
Bitbucket は Atlassian Pty Ltd の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Atlassian・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:却下と再オープン · Bitbucket のマージチェック · レビューの依頼 · Bitbucket の既定のレビュアー · Bitbucket の自動マージ · English