Lesstep
GitLab・マージリクエスト・リベースの API・2026年10月24日に確認

GitLab がリベースしなかった理由

API でマージリクエストをリベースすると(PUT /projects/:id/merge_requests/:merge_request_iid/rebase)、その場で 403・409 で断られるか、202 で答えます。202 は GitLab がリベースを順番待ちに入れたという意味だけで、リベースはその後に走り、そこで失敗することもあります。以下はすべて GitLab のソース(lib/api/merge_requests.rb のリベースの窓口、MergeRequests::RebaseService、app/models/merge_request.rb の rebase_async)を 2026年10月24日に読んで確かめたものです。

答えの意味

202({"rebase_in_progress":true})の後に失敗したリベースは、その理由をマージリクエストの merge_error に残します。

GitLab は、失敗したマージの理由もここに書きます。merge_error は、元のブランチに次に push されるか、マージリクエストが閉じられるかマージされるまで残ります。

api の権限が無いトークンも 403 で断られますが、そのときの答えには insufficient_scope と書いてあります。足す権限の見つけ方へ。無いプロジェクトや見えないプロジェクトのパスは 404 です。住所か権限かへ。

いまどうなっているか

curl -H "PRIVATE-TOKEN: your-token" "https://gitlab.com/api/v4/projects/group%2Fproject/merge_requests/42?include_rebase_in_progress=true"

rebase_in_progress が true のあいだは、リベースはまだ順番待ちか実行中です。false になったら、merge_error がリベースが通れば null、失敗したならその理由です。state で、マージリクエストがまだ開いているかが分かります。gitlab.com はあなたのサーバーの住所に置き換えてください。

直し方

IntelliJ IDEA で GitLab のマージリクエストを見るなら

Lesstep の Merge Request Inbox for GitLab は、JetBrains IDE(2024.1 以降)のプラグインです。GitLab がマージリクエストにリベースが要ると言うと、元のブランチのリベースを出します。GitLab が 403 で答えたときは、プロジェクトでの役割か設定があなたのアカウントに許していない可能性がある、と GitLab の文を添えて伝え、ほかの断りは GitLab の文で伝えます。202 の後は、GitLab がブランチをリベースしているので少しして読み直すよう伝えます。1.0.14 からは、リベースが後から失敗すると、GitLab が merge_error に書いた文を概要に出します(ブランチに次に push されるか、マージできるようになるまで)。見るのは無料、リベース・承認・コメント・マージは Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。

GITLAB は GitLab Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitLab Inc.・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:GitLab のマージの断り(405・409・422) · GitLab の自動マージの断り(405)・取り消し · GitLab の承認の断り(401・409) · GitLab のコメント・スレッドの断り(400・403) · GitLab のマージリクエストが作れない(409・422・400) · GitLab の「insufficient_scope」 · GitLab の 401「invalid_token」 · GitLab の 404「Project Not Found」 · GitLab の MR の一覧の断り(400・404) · GitLab の MR の変更が欠ける(「1000+」・too_large) · GitLab の 429「Retry later」(回数の上限) · GitLab のスカッシュでマージが断られる・失敗する · GitLab の「compare_timeout」(差分の上限) · JetBrains の IDE で GitLab のマージリクエストを扱う · English