Bitbucket のプルリクのビルド:ビルドの状態と、ビルドを待つマージチェック
ビルドサーバー(Bitbucket Pipelines・Bamboo・Jenkins など)は、コミットにビルドの状態(build status)を報告し、プルリクはそのコミットの状態を表示します。マージチェックはそれを待てます。以下は Bitbucket Cloud と Bitbucket Data Center での仕組みを、Atlassian の Check build status in a pull request、Suggest or require checks before a merge、Data Center の View builds information と Checks for merging pull requests、Cloud と Data Center の REST リファレンス(いずれも英語)からまとめたものです。
Bitbucket Cloud
- ビルドが出る場所:プルリクの Commits タブの Builds の列に、コミットごとの状態が出ます。右のサイドバーの Builds パネルからは各ビルドへ飛べます。コミットの表示は、ビルドが全部通れば Passed、失敗がなく1つ以上が実行中なら In progress、1つでも失敗すれば Failed です。
- 状態の報告:
POST /2.0/repositories/{workspace}/{repo_slug}/commit/{commit}/statuses/buildにkeyとstate、必要ならurl・name・description・refnameを送ります。状態はSUCCESSFUL・FAILED・INPROGRESS・STOPPEDの4つです。そのコミットにすでにある key で送ると、前の状態を上書きします。PUT …/statuses/build/{key}で状態・名前・説明・URL・ref の名前を変えられますが、key は変えられません。状態を消す呼び出しはありません。失敗の状態を置き換えるには、同じ key でもう一度報告します。 - 読む:
GET …/pullrequests/{id}/statusesでプルリクの状態を、GET …/commit/{commit}/statusesでコミットの状態を一覧にします。2026年10月26日に公開リポジトリで読んだ時は、プルリクの一覧には最新のコミットの状態だけが入っていました。 - マージチェック:Minimum number of successful builds for the last commit with no failed builds and no in progress builds。マージのチェックリストには At least {#} successful builds on last commit や No failed builds on last commit と出ます。ソース ブランチの最新のコミットにある状態を全部数えるので、同じビルドを走らせ直して通っても、前の失敗の状態が1つ残っていれば満たしません。走らせ直しが同じ key で報告すれば置き換わります(Atlassian の記事)。ほかのマージチェックと同じく、マージを本当に止めるのは Premium で Prevent a merge with unresolved merge checks がある時だけで、それ以外は警告です。
- [skip ci]:メッセージに
[skip ci]があるコミットはビルドされないので、チェックは満たされないままです。Atlassian の回避策は、そのコミットに API で成功の状態を報告することです(Allow merge checks to succeed when [skip ci] build is present)。 - ビルドが通ったらマージ:マージチェック Allow automatic merge when builds pass があれば、ビルドの実行中に Merge を押せます(自動マージ)。
Bitbucket Data Center
- ビルドが出る場所:Bitbucket をビルドサーバーとつなぐと、プルリクの Overview タブに最新のビルドの状態が、Builds タブにコミットごとのビルドが、ログと成果物のリンクつきで出ます。Builds のページには、インスタンス全体のビルドがブランチやコミットで絞って並びます。
- ビルドの操作:Bamboo や Jenkins なら、最初に1回 Bitbucket を承認すると、Builds のページとプルリクの Builds タブからビルドを操作できます。どの操作が出るかは、ビルドサーバーの設定と自分の権限によります(Perform build actions)。
- 状態の報告:
POST /rest/api/latest/projects/{projectKey}/repos/{repositorySlug}/commits/{commitId}/builds(7.14 から・リポジトリの読み取り権限)にkey・state・url、必要ならname・description・parent・ref・buildNumber・duration・testResultsを送ります。状態はSUCCESSFUL・FAILED・INPROGRESS・CANCELLED・UNKNOWNの5つです。古い/rest/build-status/latest/commits/{commitId}は 7.14 から非推奨で、最初の3つしか受け取りません。同じ住所へのDELETE(?key=つき)で状態を消せます(リポジトリの管理者)。 - Minimum successful builds:組み込みのマージチェックで、決めた数以上の成功したビルドがあるまでマージさせません。
- Required builds:Repository settings → Required builds で、通っていなければならないビルドの key を、選んだターゲット ブランチ(どのブランチでも・ブランチ名・パターン・ブランチモデル)へのプルリクについて決めます。
hotfix-*のように、外すソース ブランチも決められます。Data Center のライセンスと、Bamboo 7.1 以降か Bitbucket integration plugin 2.0.0 以降が要ります。key はビルドサーバーで決まり、Bamboo ではプロジェクトキーとプランキー(PROJ-COREBUILDS)、Jenkins ではジョブまでの経路の名前をスラッシュでつないだものです。REST では/rest/required-builds/latest/projects/{projectKey}/repos/{repositorySlug}/condition(リポジトリの管理者)にbuildParentKeys・refMatcher・exemptRefMatcherを送ります。
IntelliJ IDEA でビルドを見る
Pull Request Inbox for Bitbucket は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。自分のレビューを待っている Bitbucket Cloud と Bitbucket Data Center のプルリクを IDE のツールウィンドウに並べます。ビルドの欄には、プルリクの最新のコミットのビルドの状態を、合格・不合格・実行中・停止とビルドへのリンクつきで出し、その隣にマージチェックを「成功したビルド 2 件中 1 件」のような平易な文で出します(Data Center ではサーバー自身の言葉で)。レビューの受信箱・差分・マージチェック・ビルドは無料、承認・コメント・マージは Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。
そのビルドが Jenkins で動いているなら:Lesstep の別のプラグイン Pipeline Inbox for Jenkins が、Jenkins のビルドを Pipeline のステージ・失敗したテスト・コンソールログつきで IDE に並べます(見るのは無料、ビルドの開始・停止・入力ステップへの応答は Pro)。
Bitbucket・Bamboo・Atlassian は Atlassian の商標、Jenkins® は LF Charities Inc. の登録商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Atlassian・Jenkins プロジェクト・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:Bitbucket のマージチェック · Bitbucket の自動マージ · 「変更を依頼」と Needs work · 下書きのプルリク · IntelliJ IDEA で使える Bitbucket のプルリクエストのプラグインの比較 · English