Summary
mr:list and mr:status expose fewer MR fields than do.php gitlab:mrinfo. Agents reviewing or triaging an MR need to know whether it has conflicts and whether review threads are resolved without fetching the MR again through glab api.
Raised by @tedbow alongside #364: https://github.com/tedbow/ai-config/blob/533b03ec9d263ba9388b8900e8abccbd166ae3f2/todo/drupalorg-mr-list-bug.md
Missing fields
MergeRequestItem currently carries iid, title, source_branch, target_branch, state, web_url, is_mergeable, author, updated_at. GitLab's MR payload also provides:
| Field |
Source |
Why |
description |
description |
Agents read the MR body for context and issue links |
has_conflicts |
has_conflicts |
Distinguishes "needs rebase" from "blocked on review" |
blocking_discussions_resolved |
blocking_discussions_resolved |
Tells an agent whether review feedback is outstanding |
is_mergeable is derived from the deprecated merge_status; detailed_merge_status is the replacement and worth surfacing as-is.
Proposal
Add the fields to MergeRequestItem::fromStdClass() / toArray() and render them in MarkdownFormatter and LlmFormatter. The list endpoint returns them without extra requests, so mr:list gets them for free. mr:status is pipeline-centric today; deciding whether it should also report MR-level state, or whether that belongs in a new mr:show, is the open design question.
Summary
mr:listandmr:statusexpose fewer MR fields thando.php gitlab:mrinfo. Agents reviewing or triaging an MR need to know whether it has conflicts and whether review threads are resolved without fetching the MR again throughglab api.Raised by @tedbow alongside #364: https://github.com/tedbow/ai-config/blob/533b03ec9d263ba9388b8900e8abccbd166ae3f2/todo/drupalorg-mr-list-bug.md
Missing fields
MergeRequestItemcurrently carriesiid,title,source_branch,target_branch,state,web_url,is_mergeable,author,updated_at. GitLab's MR payload also provides:descriptiondescriptionhas_conflictshas_conflictsblocking_discussions_resolvedblocking_discussions_resolvedis_mergeableis derived from the deprecatedmerge_status;detailed_merge_statusis the replacement and worth surfacing as-is.Proposal
Add the fields to
MergeRequestItem::fromStdClass()/toArray()and render them inMarkdownFormatterandLlmFormatter. The list endpoint returns them without extra requests, somr:listgets them for free.mr:statusis pipeline-centric today; deciding whether it should also report MR-level state, or whether that belongs in a newmr:show, is the open design question.