Bitbucket の既定のレビュアー:設定・承認の必須化・REST API
既定のレビュアー(default reviewers)は、新しいプルリクエストに Bitbucket が付けてくれるレビュアーです。Bitbucket の作成画面では最初から入っていますが、REST API で作ったプルリクエストには付かないことがあります。Data Center の作成の API は付けません。Atlassian の回答では、既定のレビュアーは作る人への提案という扱いです(BSERV-9860)。Cloud の公式説明にも、作成の API で付くとは書かれていません。プルリクエストを作る道具は、既定のレビュアーを読んで送るのが確実です。
Bitbucket Cloud
- プロジェクトとリポジトリ:プロジェクトの設定(Pull Requests > Default reviewers)で入れた既定のレビュアーは、リポジトリの設定で別に決めていない限り、そのプロジェクトの全リポジトリのプルリクエストに付きます。リポジトリにも自分の分を足せます。ワークスペースのメンバーで、プロジェクトに少なくとも Read の権限がある人に限ります(Atlassian の説明)。
- 承認を求める:マージチェックの「Minimum number of approvals from default reviewers」は既定のレビュアーの承認だけを数えます。マージを止めるのは Premium で「Prevent a merge with unresolved merge checks」を選んだ時だけで、それ以外は警告が出てもマージできます(マージチェック・詳しくは Bitbucket のマージチェック)。
- REST API で:
GET /2.0/repositories/{workspace}/{repo_slug}/effective-default-reviewersは、リポジトリの既定のレビュアーとプロジェクトから受け継いだ分を合わせて返します(default-reviewersだけだとリポジトリの分のみ)。作成の時に"reviewers": [{"uuid": "{…}"}]として、作成者を除いて送ります。 - ワークスペースを抜けた人:ワークスペースから外された人が既定のレビュアーの一覧に残り、プルリクエストの作成が「… is not a member of this workspace and cannot be added to this pull request」で失敗していました。一覧からその人を外すまで続きます(BCLOUD-23332・修正済みで閉じられています)。
- コードオーナーは別の仕組み:CODEOWNERS のファイルからのレビュアーは、Web の画面で作った時だけ付き、REST API で作った時は付きません(BCLOUD-23663・未対応)。
Bitbucket Data Center
- ルール:プロジェクトの管理者は Project settings > Default reviewers、リポジトリの管理者は Repository settings > Default reviewers でルールを作ります。ルールごとに、元のブランチと先のブランチ(ブランチ名・ブランチのパターン・ブランチモデルの種類・どのブランチでも)、既定のレビュアー(ユーザー、またはメンバーが付くレビュアーのグループ)、任意で Approvals required(マージの前に何人の承認が要るか)を決めます(Atlassian の説明)。
- 作成画面では:先のブランチに既定のレビュアーがあれば、新しいプルリクエストにも下書きにも最初から入ります。作る人は一部を外せて、外した分は「Default reviewers」のボタンで戻せます。
- REST API で:作成(
POST …/pull-requests)では付きません。先にGET /rest/default-reviewers/1.0/projects/{projectKey}/repos/{repositorySlug}/reviewers?sourceRepoId=…&targetRepoId=…&sourceRefId=…&targetRefId=…で、当てはまるルールのユーザーを読みます。8.0 からは ref にブランチ名かタグを入れ、コミットのハッシュは使えません(Atlassian のナレッジベース)。それを"reviewers": [{"user": {"name": "…"}}]として送ります。
IntelliJ IDEA での既定のレビュアー
Pull Request Inbox for Bitbucket は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。Bitbucket Cloud と、ベータ版として Bitbucket Data Center 8.9 以降のプルリクエストを IDE のツールウィンドウに並べ、それぞれのレビュアーとマージチェックを出します。1.0.37 からは、いまのブランチから作るプルリクエストに、上の方法で読んだリポジトリの既定のレビュアーを(自分を除いて)付けます。Bitbucket がその中の誰かを受け付けなかった時は、レビュアー無しで作り、理由を知らせます。1.0.46 からは、開いているプルリクエストにも後からレビュアーを追加できます(このリポジトリの最近のプルリクエストに出てくる人から選び、今いるレビュアーはそのまま)。レビューの受け箱・差分・議論・マージチェックは無料、作成・承認・コメント・レビュアーの追加・マージは Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。
Bitbucket と Atlassian は Atlassian の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Atlassian・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:自分のレビュー待ちを全部見つける · Bitbucket のマージチェック · 既定のタスク · Bitbucket の下書きプルリクエスト · IntelliJ IDEA で使える Bitbucket のプルリクエストのプラグインの比較 · English