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

GitLab がコメントやスレッドの操作を断った理由

マージリクエストへのコメントは、GitLab の discussions API を通ります。新しいスレッド(POST /projects/:id/merge_requests/:iid/discussions。差分の行には position を付けて)、返信(…/discussions/:discussion_id/notes)、スレッドの解決と再開(PUT …/discussions/:discussion_id に resolved)、提案された変更の適用(PUT /projects/:id/suggestions/:id/apply)です。以下はすべて GitLab のソース(lib/api/discussions.rb・lib/api/helpers/notes_helpers.rb・lib/api/suggestions.rb、コメントと提案のモデルと権限の決まり)と文書を 2026年10月24日に読んで確かめたものです。

新しいコメント

api の権限が無いトークンも 403 で断られますが、そのときの答えには insufficient_scope と書いてあります。足す権限の見つけ方へ。

返信

スレッドの解決と再開:何も書いていない 403

{"message":"403 Forbidden"} には、ソースでは原因が2つあり、答えはどちらも同じです。

無いスレッドの ID は {"message":"404 Discussion Not Found"} です。

提案の適用

いまどうなっているか

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

スレッドごとに individual_note(普通のコメントなら true)があり、その中のコメントごとに resolvable・resolved・system(GitLab 自身の記録か)があります。マージリクエストそのもの(…/merge_requests/42)には discussion_locked と、最新の版の3つのコミットである diff_refs があります。gitlab.com はあなたのサーバーの住所に置き換えてください。

直し方

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

Lesstep の Merge Request Inbox for GitLab は、JetBrains IDE(2024.1 以降)のプラグインです。マージリクエストそのものや差分の行へのコメント(行の範囲。GitLab が範囲を断ったときは範囲の最後の行へ)、返信、スレッドの解決と再開、提案された変更の適用ができます。「解決」は GitLab が解決できると言うスレッドにだけ、「適用」は GitLab が適用できる間だけ出し、GitLab 自身の記録は出しません。GitLab が断ったときは、そう言います。403 なら GitLab の文を添えて、プロジェクトでの役割か設定があなたのアカウントに許していない可能性がある、と。ほかの断りは GitLab の文で伝えます。見るのは無料、承認・コメント・マージは Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。

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

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