Bitbucket の自動マージ:チェックやビルドが通ったらマージする
最後の承認やビルドを待ってから Merge を押しに戻る代わりに、Bitbucket にマージを任せられます。Data Center と Cloud の両方にありますが、形が違います。Data Center には自動マージ(8.15 から)があり、すべてのマージチェックを待ちます。Cloud にはマージチェックの Allow automatic merge when builds pass があり、待つのはビルドだけです。以下は Atlassian の Merge a pull request(Data Center)、8.15 のリリースノート、Data Center の REST リファレンス、Cloud の Suggest or require checks before a merge からまとめたものです。
Data Center:自動マージ
- オンにする:Project settings か Repository settings で Auto-merge を選び、Enable auto-merge を選びます。プロジェクトでオフのときは、リポジトリで先に Use custom settings を選びます。管理者はサーバー全体でこの機能を切ることもできます。
- 頼む:Merge ボタンに時計が付いていれば自動マージが使えます。ふつうのマージと同じようにマージの方法とコミットメッセージを選び、Merge を選びます。チェックがすでに全部通っていれば、その場でマージされます。
- 誰がマージするか:マージチェックがすべて通った時点で、頼んだ人に代わって Bitbucket がマージします。頼む人にはターゲット リポジトリへの書き込み権限が要ります。他の人のプルリクエストにも頼めます。
- 取り消す:プルリクエストの右上の Cancel merge。次の場合は Bitbucket が自分で取り消し、理由をプルリクエストとメールで知らせます:マージの競合がある、新しい変更がプッシュされた、ターゲット ブランチが変わった、マージチェックが時間切れになった、選んだマージの方法が使えなくなった、頼んだ人が無効になったか権限を失った、2週間マージできなかった(既定・管理者が変えられます)。
Data Center:REST API
- マージの呼び出し(
POST …/pull-requests/{id}/merge)の本文に、strategyId・message・versionと並べて"autoMerge": trueを入れます。マージできればその場でマージし、できなければマージチェックがすべて通った時にマージするよう設定します。リポジトリの自動マージがオフなら 403 を返します。 GET …/pull-requests/{id}/auto-mergeで頼んだ内容(方法・コミットメッセージ・ソースのコミット・頼んだ時刻)を読み、同じ住所へのDELETEで取り消します。…/repos/{slug}/settings/auto-mergeと…/projects/{key}/settings/auto-mergeで設定を読み書きします。
Cloud:Allow automatic merge when builds pass
- ブランチ制限(Repository settings > Branch restrictions)の中のマージチェックで、プルリクエストのマージ先のブランチに付けます。
- ビルドの成功以外の必須のマージチェックが全部済んでいれば、ビルドの途中でも Merge を選べます。ビルドが成功したらすぐにマージされ、失敗したら止まります。
- 承認やほかのチェックは待ちません。それらは Merge を選べるようになる前に済ませておく必要があります。Atlassian の文書に、これを操作する API の説明はありません。
IntelliJ IDEA での自動マージ
Pull Request Inbox for Bitbucket は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。Bitbucket Cloud と Bitbucket Data Center のプルリクエストを、マージチェックと一緒に IDE のツールウィンドウに並べます。1.0.38 からは、Data Center 8.15 以降で自動マージがオンなら、チェックがマージを止めている間、マージの画面で自動マージを選べます。方法とメッセージは自分で選んだものになります。設定後はプルリクエストに自動マージがオンであることと、取り消しのリンクが出ます。Cloud では出しません。レビューの受け箱とマージチェックは無料、承認・コメント・マージは Pro(30日間の無料試用つき)です。画面は日本語です。
Bitbucket は Atlassian Pty Ltd の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Atlassian・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:プルリクのビルド · Bitbucket のマージチェック · Bitbucket のマージ方法 · modify a pull request based on out-of-date information(Data Center) · Bitbucket のマージキュー · IntelliJ IDEA で使える Bitbucket のプルリクエストのプラグインの比較 · English