GitLab CI/CD · Capability

GitLab API — merge_requests

GitLab API — merge_requests. 32 operations. Lead operation: List group merge requests. Self-contained Naftiko capability covering one Gitlab Ci business surface.

Run with Naftiko Gitlab Cimerge_requests

What You Can Do

GET
Getapiv4groupsidmergerequests — List group merge requests
/v1/api/v4/groups/{id}/merge-requests
GET
Getapiv4mergerequests — List merge requests
/v1/api/v4/merge-requests
POST
Postapiv4projectsidcreateciconfig — Create merge request for missing ci config in project
/v1/api/v4/projects/{id}/create-ci-config
GET
Getapiv4projectsidmergerequests — List project merge requests
/v1/api/v4/projects/{id}/merge-requests
POST
Postapiv4projectsidmergerequests — Create merge request
/v1/api/v4/projects/{id}/merge-requests
DELETE
Deleteapiv4projectsidmergerequestsmergerequestiid — Delete a merge request
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}
GET
Getapiv4projectsidmergerequestsmergerequestiid — Get single merge request
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}
PUT
Putapiv4projectsidmergerequestsmergerequestiid — Update merge request
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}
POST
Postapiv4projectsidmergerequestsmergerequestiidaddspenttime — Add spent time for a merge_request
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/add-spent-time
POST
Postapiv4projectsidmergerequestsmergerequestiidcancelmergewhenpipelinesucceeds — Cancel Merge When Pipeline Succeeds
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/cancel-merge-when-pipeline-succeeds
GET
Getapiv4projectsidmergerequestsmergerequestiidchanges — Get single merge request changes
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/changes
GET
Getapiv4projectsidmergerequestsmergerequestiidclosesissues — List issues that close on merge
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/closes-issues
GET
Getapiv4projectsidmergerequestsmergerequestiidcommits — Get single merge request commits
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/commits
GET
Getapiv4projectsidmergerequestsmergerequestiidcontextcommits — List merge request context commits
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/context-commits
POST
Postapiv4projectsidmergerequestsmergerequestiidcontextcommits — Create merge request context commits
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/context-commits
DELETE
Deleteapiv4projectsidmergerequestsmergerequestiidcontextcommits — Delete merge request context commits
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/context-commits
GET
Getapiv4projectsidmergerequestsmergerequestiiddiffs — Get the merge request diffs
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/diffs
PUT
Putapiv4projectsidmergerequestsmergerequestiidmerge — Merge a merge request
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/merge
GET
Getapiv4projectsidmergerequestsmergerequestiidmergeref — Returns the up to date merge-ref HEAD commit
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/merge-ref
GET
Getapiv4projectsidmergerequestsmergerequestiidparticipants — Get single merge request participants
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/participants
GET
Getapiv4projectsidmergerequestsmergerequestiidpipelines — Get single merge request pipelines
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/pipelines
POST
Postapiv4projectsidmergerequestsmergerequestiidpipelines — Create merge request pipeline
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/pipelines
GET
Getapiv4projectsidmergerequestsmergerequestiidrawdiffs — Get the merge request raw diffs
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/raw-diffs
PUT
Putapiv4projectsidmergerequestsmergerequestiidrebase — Rebase a merge request
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/rebase
GET
Getapiv4projectsidmergerequestsmergerequestiidrelatedissues — List issues related to merge request
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/related-issues
POST
Postapiv4projectsidmergerequestsmergerequestiidresetspenttime — Reset spent time for a merge_request
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/reset-spent-time
POST
Postapiv4projectsidmergerequestsmergerequestiidresettimeestimate — Reset the time estimate for a project merge_request
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/reset-time-estimate
GET
Getapiv4projectsidmergerequestsmergerequestiidreviewers — Get single merge request reviewers
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/reviewers
POST
Postapiv4projectsidmergerequestsmergerequestiidtimeestimate — Set a time estimate for a merge_request
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/time-estimate
GET
Getapiv4projectsidmergerequestsmergerequestiidtimestats — Get time tracking stats
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/time-stats
GET
Getapiv4projectsidmergerequestsmergerequestiidversions — Get a list of merge request diff versions
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/versions
GET
Getapiv4projectsidmergerequestsmergerequestiidversionsversionid — Get a single merge request diff version
/v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/versions/{version-id}

MCP Tools

list-group-merge-requests

List group merge requests

read-only idempotent
list-merge-requests

List merge requests

read-only idempotent
create-merge-request-missing-ci

Create merge request for missing ci config in project

list-project-merge-requests

List project merge requests

read-only idempotent
create-merge-request

Create merge request

delete-merge-request

Delete a merge request

idempotent
get-single-merge-request

Get single merge request

read-only idempotent
update-merge-request

Update merge request

idempotent
add-spent-time-merge-request

Add spent time for a merge_request

cancel-merge-when-pipeline-succeeds

Cancel Merge When Pipeline Succeeds

get-single-merge-request-changes

Get single merge request changes

read-only idempotent
list-issues-that-close-merge

List issues that close on merge

read-only idempotent
get-single-merge-request-commits

Get single merge request commits

read-only idempotent
list-merge-request-context-commits

List merge request context commits

read-only idempotent
create-merge-request-context-commits

Create merge request context commits

delete-merge-request-context-commits

Delete merge request context commits

idempotent
get-merge-request-diffs

Get the merge request diffs

read-only idempotent
merge-merge-request

Merge a merge request

idempotent
returns-up-date-merge-ref

Returns the up to date merge-ref HEAD commit

read-only idempotent
get-single-merge-request-participants

Get single merge request participants

read-only idempotent
get-single-merge-request-pipelines

Get single merge request pipelines

read-only idempotent
create-merge-request-pipeline

Create merge request pipeline

get-merge-request-raw-diffs

Get the merge request raw diffs

read-only idempotent
rebase-merge-request

Rebase a merge request

idempotent
list-issues-related-merge-request

List issues related to merge request

read-only idempotent
reset-spent-time-merge-request

Reset spent time for a merge_request

reset-time-estimate-project-merge

Reset the time estimate for a project merge_request

get-single-merge-request-reviewers

Get single merge request reviewers

read-only idempotent
set-time-estimate-merge-request

Set a time estimate for a merge_request

get-time-tracking-stats

Get time tracking stats

read-only idempotent
get-list-merge-request-diff

Get a list of merge request diff versions

read-only idempotent
get-single-merge-request-diff

Get a single merge request diff version

read-only idempotent

Capability Spec

gitlab-ci-merge-requests.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: GitLab API — merge_requests
  description: 'GitLab API — merge_requests. 32 operations. Lead operation: List group merge requests. Self-contained Naftiko
    capability covering one Gitlab Ci business surface.'
  tags:
  - Gitlab Ci
  - merge_requests
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    GITLAB_CI_API_KEY: GITLAB_CI_API_KEY
capability:
  consumes:
  - type: http
    namespace: gitlab-ci-merge-requests
    baseUri: https://gitlab.com
    description: GitLab API — merge_requests business capability. Self-contained, no shared references.
    resources:
    - name: api-v4-groups-id-merge_requests
      path: /api/v4/groups/{id}/merge_requests
      operations:
      - name: getapiv4groupsidmergerequests
        method: GET
        description: List group merge requests
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the group owned by the authenticated user.
          required: true
        - name: author_id
          in: query
          type: integer
          description: Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. Combine
            with `scope=all` or `scope=assigned_to_me`.
        - name: author_username
          in: query
          type: string
          description: Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.
        - name: assignee_id
          in: query
          type: integer
          description: Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any`
            returns merge requests with an assignee.
        - name: assignee_username
          in: query
          type: array
          description: Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.
        - name: reviewer_username
          in: query
          type: string
          description: Returns merge requests which have the user as a reviewer with the given `username`. `None` returns
            merge requests with no reviewers. `Any` returns merge request
        - name: labels
          in: query
          type: array
          description: Returns merge requests matching a comma-separated list of labels. `None` lists all merge requests with
            no labels. `Any` lists all merge requests with at least o
        - name: milestone
          in: query
          type: string
          description: Returns merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any`
            returns merge requests that have an assigned milestone.
        - name: my_reaction_emoji
          in: query
          type: string
          description: Returns merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues
            not given a reaction. `Any` returns issues given at least o
        - name: reviewer_id
          in: query
          type: integer
          description: Returns merge requests which have the user as a reviewer with the given user `id`. `None` returns merge
            requests with no reviewers. `Any` returns merge requests
        - name: state
          in: query
          type: string
          description: Returns `all` merge requests or just those that are `opened`, `closed`, `locked`, or `merged`.
        - name: order_by
          in: query
          type: string
          description: Returns merge requests ordered by `created_at`, `label_priority`, `milestone_due`, `popularity`, `priority`,
            `title`, `updated_at` or `merged_at` fields. Introd
        - name: sort
          in: query
          type: string
          description: Returns merge requests sorted in `asc` or `desc` order.
        - name: with_labels_details
          in: query
          type: boolean
          description: 'If `true`, response returns more details for each label in labels field: `:name`,`:color`, `:description`,
            `:description_html`, `:text_color`'
        - name: with_merge_status_recheck
          in: query
          type: boolean
          description: If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated
            asynchronously. Introduced in GitLab 13.0.
        - name: created_after
          in: query
          type: string
          description: Returns merge requests created on or after the given time. Expected in ISO 8601 format.
        - name: created_before
          in: query
          type: string
          description: Returns merge requests created on or before the given time. Expected in ISO 8601 format.
        - name: updated_after
          in: query
          type: string
          description: Returns merge requests updated on or after the given time. Expected in ISO 8601 format.
        - name: updated_before
          in: query
          type: string
          description: Returns merge requests updated on or before the given time. Expected in ISO 8601 format.
        - name: view
          in: query
          type: string
          description: If simple, returns the `iid`, URL, title, description, and basic state of merge request
        - name: scope
          in: query
          type: string
          description: 'Returns merge requests for the given scope: `created_by_me`, `assigned_to_me`, `reviews_for_me` or
            `all`'
        - name: source_branch
          in: query
          type: string
          description: Returns merge requests with the given source branch
        - name: source_project_id
          in: query
          type: integer
          description: Returns merge requests with the given source project id
        - name: target_branch
          in: query
          type: string
          description: Returns merge requests with the given target branch
        - name: search
          in: query
          type: string
          description: Search merge requests against their `title` and `description`.
        - name: in
          in: query
          type: string
          description: Modify the scope of the search attribute. `title`, `description`, or a string joining them with comma.
        - name: wip
          in: query
          type: string
          description: Deprecated. Use `draft` instead. Filter merge requests against their `wip` status. `yes` to return
            only draft merge requests, `no` to return non-draft merge req
        - name: draft
          in: query
          type: boolean
          description: Filter merge requests against their `draft` status. `true` to return only draft merge requests, `false`
            to return non-draft merge requests.
        - name: not[author_id]
          in: query
          type: integer
          description: '`<Negated>` Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`.
            Combine with `scope=all` or `scope=assigned_to_me`'
        - name: not[author_username]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.'
        - name: not[assignee_id]
          in: query
          type: integer
          description: '`<Negated>` Returns merge requests assigned to the given user `id`. `None` returns unassigned merge
            requests. `Any` returns merge requests with an assignee.'
        - name: not[assignee_username]
          in: query
          type: array
          description: '`<Negated>` Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.'
        - name: not[reviewer_username]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests which have the user as a reviewer with the given `username`. `None`
            returns merge requests with no reviewers. `Any` returns m'
        - name: not[labels]
          in: query
          type: array
          description: '`<Negated>` Returns merge requests matching a comma-separated list of labels. `None` lists all merge
            requests with no labels. `Any` lists all merge requests wit'
        - name: not[milestone]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests for a specific milestone. `None` returns merge requests with no
            milestone. `Any` returns merge requests that have an assigned'
        - name: not[my_reaction_emoji]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests reacted by the authenticated user by the given `emoji`. `None`
            returns issues not given a reaction. `Any` returns issues give'
        - name: not[reviewer_id]
          in: query
          type: integer
          description: '`<Negated>` Returns merge requests which have the user as a reviewer with the given user `id`. `None`
            returns merge requests with no reviewers. `Any` returns me'
        - name: deployed_before
          in: query
          type: string
          description: Returns merge requests deployed before the given date/time. Expected in ISO 8601 format.
        - name: deployed_after
          in: query
          type: string
          description: Returns merge requests deployed after the given date/time. Expected in ISO 8601 format
        - name: environment
          in: query
          type: string
          description: Returns merge requests deployed to the given environment
        - name: approved
          in: query
          type: string
          description: Filters merge requests by their `approved` status. `yes` returns only approved merge requests. `no`
            returns only non-approved merge requests.
        - name: merge_user_id
          in: query
          type: integer
          description: Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive
            with `merge_user_username`.
        - name: merge_user_username
          in: query
          type: string
          description: Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive
            with `merge_user_id`.
        - name: approver_ids
          in: query
          type: string
          description: Return merge requests which have specified the users with the given IDs as an individual approver
        - name: approved_by_ids
          in: query
          type: string
          description: Return merge requests which have been approved by the specified users with the given IDs
        - name: approved_by_usernames
          in: query
          type: string
          description: Return merge requests which have been approved by the specified users with the given
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
        - name: non_archived
          in: query
          type: boolean
          description: Returns merge requests from non archived projects only.
    - name: api-v4-merge_requests
      path: /api/v4/merge_requests
      operations:
      - name: getapiv4mergerequests
        method: GET
        description: List merge requests
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: author_id
          in: query
          type: integer
          description: Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. Combine
            with `scope=all` or `scope=assigned_to_me`.
        - name: author_username
          in: query
          type: string
          description: Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.
        - name: assignee_id
          in: query
          type: integer
          description: Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any`
            returns merge requests with an assignee.
        - name: assignee_username
          in: query
          type: array
          description: Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.
        - name: reviewer_username
          in: query
          type: string
          description: Returns merge requests which have the user as a reviewer with the given `username`. `None` returns
            merge requests with no reviewers. `Any` returns merge request
        - name: labels
          in: query
          type: array
          description: Returns merge requests matching a comma-separated list of labels. `None` lists all merge requests with
            no labels. `Any` lists all merge requests with at least o
        - name: milestone
          in: query
          type: string
          description: Returns merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any`
            returns merge requests that have an assigned milestone.
        - name: my_reaction_emoji
          in: query
          type: string
          description: Returns merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues
            not given a reaction. `Any` returns issues given at least o
        - name: reviewer_id
          in: query
          type: integer
          description: Returns merge requests which have the user as a reviewer with the given user `id`. `None` returns merge
            requests with no reviewers. `Any` returns merge requests
        - name: state
          in: query
          type: string
          description: Returns `all` merge requests or just those that are `opened`, `closed`, `locked`, or `merged`.
        - name: order_by
          in: query
          type: string
          description: Returns merge requests ordered by `created_at`, `label_priority`, `milestone_due`, `popularity`, `priority`,
            `title`, `updated_at` or `merged_at` fields. Introd
        - name: sort
          in: query
          type: string
          description: Returns merge requests sorted in `asc` or `desc` order.
        - name: with_labels_details
          in: query
          type: boolean
          description: 'If `true`, response returns more details for each label in labels field: `:name`,`:color`, `:description`,
            `:description_html`, `:text_color`'
        - name: with_merge_status_recheck
          in: query
          type: boolean
          description: If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated
            asynchronously. Introduced in GitLab 13.0.
        - name: created_after
          in: query
          type: string
          description: Returns merge requests created on or after the given time. Expected in ISO 8601 format.
        - name: created_before
          in: query
          type: string
          description: Returns merge requests created on or before the given time. Expected in ISO 8601 format.
        - name: updated_after
          in: query
          type: string
          description: Returns merge requests updated on or after the given time. Expected in ISO 8601 format.
        - name: updated_before
          in: query
          type: string
          description: Returns merge requests updated on or before the given time. Expected in ISO 8601 format.
        - name: view
          in: query
          type: string
          description: If simple, returns the `iid`, URL, title, description, and basic state of merge request
        - name: scope
          in: query
          type: string
          description: 'Returns merge requests for the given scope: `created_by_me`, `assigned_to_me`, `reviews_for_me` or
            `all`'
        - name: source_branch
          in: query
          type: string
          description: Returns merge requests with the given source branch
        - name: source_project_id
          in: query
          type: integer
          description: Returns merge requests with the given source project id
        - name: target_branch
          in: query
          type: string
          description: Returns merge requests with the given target branch
        - name: search
          in: query
          type: string
          description: Search merge requests against their `title` and `description`.
        - name: in
          in: query
          type: string
          description: Modify the scope of the search attribute. `title`, `description`, or a string joining them with comma.
        - name: wip
          in: query
          type: string
          description: Deprecated. Use `draft` instead. Filter merge requests against their `wip` status. `yes` to return
            only draft merge requests, `no` to return non-draft merge req
        - name: draft
          in: query
          type: boolean
          description: Filter merge requests against their `draft` status. `true` to return only draft merge requests, `false`
            to return non-draft merge requests.
        - name: not[author_id]
          in: query
          type: integer
          description: '`<Negated>` Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`.
            Combine with `scope=all` or `scope=assigned_to_me`'
        - name: not[author_username]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.'
        - name: not[assignee_id]
          in: query
          type: integer
          description: '`<Negated>` Returns merge requests assigned to the given user `id`. `None` returns unassigned merge
            requests. `Any` returns merge requests with an assignee.'
        - name: not[assignee_username]
          in: query
          type: array
          description: '`<Negated>` Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.'
        - name: not[reviewer_username]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests which have the user as a reviewer with the given `username`. `None`
            returns merge requests with no reviewers. `Any` returns m'
        - name: not[labels]
          in: query
          type: array
          description: '`<Negated>` Returns merge requests matching a comma-separated list of labels. `None` lists all merge
            requests with no labels. `Any` lists all merge requests wit'
        - name: not[milestone]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests for a specific milestone. `None` returns merge requests with no
            milestone. `Any` returns merge requests that have an assigned'
        - name: not[my_reaction_emoji]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests reacted by the authenticated user by the given `emoji`. `None`
            returns issues not given a reaction. `Any` returns issues give'
        - name: not[reviewer_id]
          in: query
          type: integer
          description: '`<Negated>` Returns merge requests which have the user as a reviewer with the given user `id`. `None`
            returns merge requests with no reviewers. `Any` returns me'
        - name: deployed_before
          in: query
          type: string
          description: Returns merge requests deployed before the given date/time. Expected in ISO 8601 format.
        - name: deployed_after
          in: query
          type: string
          description: Returns merge requests deployed after the given date/time. Expected in ISO 8601 format
        - name: environment
          in: query
          type: string
          description: Returns merge requests deployed to the given environment
        - name: approved
          in: query
          type: string
          description: Filters merge requests by their `approved` status. `yes` returns only approved merge requests. `no`
            returns only non-approved merge requests.
        - name: merge_user_id
          in: query
          type: integer
          description: Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive
            with `merge_user_username`.
        - name: merge_user_username
          in: query
          type: string
          description: Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive
            with `merge_user_id`.
        - name: approver_ids
          in: query
          type: string
          description: Return merge requests which have specified the users with the given IDs as an individual approver
        - name: approved_by_ids
          in: query
          type: string
          description: Return merge requests which have been approved by the specified users with the given IDs
        - name: approved_by_usernames
          in: query
          type: string
          description: Return merge requests which have been approved by the specified users with the given
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
        - name: non_archived
          in: query
          type: boolean
          description: Returns merge requests from non archived projects only.
    - name: api-v4-projects-id-create_ci_config
      path: /api/v4/projects/{id}/create_ci_config
      operations:
      - name: postapiv4projectsidcreateciconfig
        method: POST
        description: Create merge request for missing ci config in project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          required: true
    - name: api-v4-projects-id-merge_requests
      path: /api/v4/projects/{id}/merge_requests
      operations:
      - name: getapiv4projectsidmergerequests
        method: GET
        description: List project merge requests
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project.
          required: true
        - name: author_id
          in: query
          type: integer
          description: Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. Combine
            with `scope=all` or `scope=assigned_to_me`.
        - name: author_username
          in: query
          type: string
          description: Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.
        - name: assignee_id
          in: query
          type: integer
          description: Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any`
            returns merge requests with an assignee.
        - name: assignee_username
          in: query
          type: array
          description: Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.
        - name: reviewer_username
          in: query
          type: string
          description: Returns merge requests which have the user as a reviewer with the given `username`. `None` returns
            merge requests with no reviewers. `Any` returns merge request
        - name: labels
          in: query
          type: array
          description: Returns merge requests matching a comma-separated list of labels. `None` lists all merge requests with
            no labels. `Any` lists all merge requests with at least o
        - name: milestone
          in: query
          type: string
          description: Returns merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any`
            returns merge requests that have an assigned milestone.
        - name: my_reaction_emoji
          in: query
          type: string
          description: Returns merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues
            not given a reaction. `Any` returns issues given at least o
        - name: reviewer_id
          in: query
          type: integer
          description: Returns merge requests which have the user as a reviewer with the given user `id`. `None` returns merge
            requests with no reviewers. `Any` returns merge requests
        - name: state
          in: query
          type: string
          description: Returns `all` merge requests or just those that are `opened`, `closed`, `locked`, or `merged`.
        - name: order_by
          in: query
          type: string
          description: Returns merge requests ordered by `created_at`, `label_priority`, `milestone_due`, `popularity`, `priority`,
            `title`, `updated_at` or `merged_at` fields. Introd
        - name: sort
          in: query
          type: string
          description: Returns merge requests sorted in `asc` or `desc` order.
        - name: with_labels_details
          in: query
          type: boolean
          description: 'If `true`, response returns more details for each label in labels field: `:name`,`:color`, `:description`,
            `:description_html`, `:text_color`'
        - name: with_merge_status_recheck
          in: query
          type: boolean
          description: If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated
            asynchronously. Introduced in GitLab 13.0.
        - name: created_after
          in: query
          type: string
          description: Returns merge requests created on or after the given time. Expected in ISO 8601 format.
        - name: created_before
          in: query
          type: string
          description: Returns merge requests created on or before the given time. Expected in ISO 8601 format.
        - name: updated_after
          in: query
          type: string
          description: Returns merge requests updated on or after the given time. Expected in ISO 8601 format.
        - name: updated_before
          in: query
          type: string
          description: Returns merge requests updated on or before the given time. Expected in ISO 8601 format.
        - name: view
          in: query
          type: string
          description: If simple, returns the `iid`, URL, title, description, and basic state of merge request
        - name: scope
          in: query
          type: string
          description: 'Returns merge requests for the given scope: `created_by_me`, `assigned_to_me`, `reviews_for_me` or
            `all`'
        - name: source_branch
          in: query
          type: string
          description: Returns merge requests with the given source branch
        - name: source_project_id
          in: query
          type: integer
          description: Returns merge requests with the given source project id
        - name: target_branch
          in: query
          type: string
          description: Returns merge requests with the given target branch
        - name: search
          in: query
          type: string
          description: Search merge requests against their `title` and `description`.
        - name: in
          in: query
          type: string
          description: Modify the scope of the search attribute. `title`, `description`, or a string joining them with comma.
        - name: wip
          in: query
          type: string
          description: Deprecated. Use `draft` instead. Filter merge requests against their `wip` status. `yes` to return
            only draft merge requests, `no` to return non-draft merge req
        - name: draft
          in: query
          type: boolean
          description: Filter merge requests against their `draft` status. `true` to return only draft merge requests, `false`
            to return non-draft merge requests.
        - name: not[author_id]
          in: query
          type: integer
          description: '`<Negated>` Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`.
            Combine with `scope=all` or `scope=assigned_to_me`'
        - name: not[author_username]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.'
        - name: not[assignee_id]
          in: query
          type: integer
          description: '`<Negated>` Returns merge requests assigned to the given user `id`. `None` returns unassigned merge
            requests. `Any` returns merge requests with an assignee.'
        - name: not[assignee_username]
          in: query
          type: array
          description: '`<Negated>` Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.'
        - name: not[reviewer_username]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests which have the user as a reviewer with the given `username`. `None`
            returns merge requests with no reviewers. `Any` returns m'
        - name: not[labels]
          in: query
          type: array
          description: '`<Negated>` Returns merge requests matching a comma-separated list of labels. `None` lists all merge
            requests with no labels. `Any` lists all merge requests wit'
        - name: not[milestone]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests for a specific milestone. `None` returns merge requests with no
            milestone. `Any` returns merge requests that have an assigned'
        - name: not[my_reaction_emoji]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests reacted by the authenticated user by the given `emoji`. `None`
            returns issues not given a reaction. `Any` returns issues give'
        - name: not[reviewer_id]
          in: query
          type: integer
          description: '`<Negated>` Returns merge requests which have the user as a reviewer with the given user `id`. `None`
            returns merge requests with no reviewers. `Any` returns me'
        - name: deployed_before
          in: query
          type: string
          description: Returns merge requests deployed before the given date/time. Expected in ISO 8601 format.
        - name: deployed_after
          in: query
          type: string
          description: Returns merge requests deployed after the given date/time. Expected in ISO 8601 format
        - name: environment
          in: query
          type: string
          description: Returns merge requests deployed to the given environment
        - name: approved
          in: query
          type: string
          description: Filters merge requests by their `approved` status. `yes` returns only approved merge requests. `no`
            returns only non-approved merge requests.
        - name: merge_user_id
          in: query
          type: integer
          description: Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive
            with `merge_user_username`.
        - name: merge_user_username
          in: query
          type: string
          description: Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive
            with `merge_user_id`.
        - name: approver_ids
          in: query
          type: string
          description: Return merge requests which have specified the users with the given IDs as an individual approver
        - name: approved_by_ids
          in: query
          type: string
      

# --- truncated at 32 KB (102 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitlab-ci/refs/heads/main/capabilities/gitlab-ci-merge-requests.yaml