Skip to content

mr:list / mr:status: expose description, has_conflicts, and blocking_discussions_resolved #366

Description

@mglaman

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.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions