Skip to content
GitmoapAPIBeta
Schema

MergeRequestCard

A merge request as a list shows it: its main fields, with its author, reviewers, approvals, comment and thread counts, diff size and merge readiness resolved.

Shape

  • approvalsApprovalSummary
  • authorActorSummary
  • comments_countinteger · int320–∞
  • commits_countinteger · int320–∞
  • created_atstring
  • diffDiffSummary
  • is_draftboolean
  • merge_request_idMergeRequestId (integer · int64)
  • repository_idRepositoryId (string · uuid)
  • reviewersarray of CardReviewer
    • The CardReviewer schema
    • emailstring
    • idstring
    • review_statusReviewStatuspendingapprovedrejected
    • stalebooleanWhether this reviewer's approval predates the current source-branch tip (approved an older revision). Computed at read time; always present.
    • usernamestring
    • avatar_urlstring or nulloptional
  • source_branchBranchName (string)
  • statusMergeRequestStatusopenmergedclosed
  • target_branchBranchName (string)
  • threadsThreadSummary
  • titleMrTitle (string)
  • updated_atstring
  • author_can_pushboolean or nulloptionalWhether the author can push to the repository — false for a drive-by contributor's merge request. Absent where it was not computed.
  • is_stackedbooleanoptionalTrue when the merge request is part of a stack: an open merge request is based on it, or it is based on one.
  • mergeMergeStatusSummary or nulloptional
  • my_review_statusReviewStatuspendingapprovedrejectedor nulloptionalYour own review status on the merge request. Present only in the listing of merge requests awaiting your review.
  • pipeline_stateMrPipelineStatependingrunningfailedpassedemptyor nulloptionalWhere the merge request's pipelines stand at its head: pending, running, failed, passed, or empty when no pipeline applies. Present only in a repository's own listing, whether or not the repository requires the pipelines to pass.

Example

Synthesized example
{
"approvals": {
"given": 20,
"required": 40
},
"author": {
"email": "tomas@acme.example",
"id": "id-5cc6",
"username": "tomas",
"avatar_url": "https://gitmoap.example/acme/404ce706"
},
"comments_count": 2,
"commits_count": 0,
"created_at": "2026-10-15T04:43:50Z",
"diff": {
"additions": 30,
"deletions": 64
},
"is_draft": false,
"merge_request_id": 42,
"repository_id": "5b0e7c2a-9d14-4e8b-a6f1-2c3d4e5f6a70",
"reviewers": [
{
"email": "lin@acme.example",
"id": "id-f9d6",
"review_status": "pending",
"stale": false,
"username": "lin"
}
],
"source_branch": "refactor/brand-inline",
"status": "open",
"target_branch": "main",
"threads": {
"resolved": 15,
"total": 5
},
"title": "Inline scalar newtypes but keep their brand",
"updated_at": "2026-10-13T05:45:36Z",
"author_can_push": false,
"is_stacked": false,
"merge": {
"has_conflicts": false,
"mergeable": true
},
"my_review_status": "pending",
"pipeline_state": "passed"
}

Graph

Used by