naftiko: 1.0.0-alpha2 info: label: GitLab API — merge_request_approvals description: 'GitLab API — merge_request_approvals. 6 operations. Lead operation: Change approval-related configuration. Self-contained Naftiko capability covering one Gitlab Ci business surface.' tags: - Gitlab Ci - merge_request_approvals 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-request-approvals baseUri: https://gitlab.com description: GitLab API — merge_request_approvals business capability. Self-contained, no shared references. resources: - name: api-v4-projects-id-merge_requests-merge_request_iid-approval_state path: /api/v4/projects/{id}/merge_requests/{merge_request_iid}/approval_state operations: - name: getapiv4projectsidmergerequestsmergerequestiidapprovalstate method: GET description: Get approval state of merge request 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: merge_request_iid in: path type: integer description: The IID of a merge request required: true - name: api-v4-projects-id-merge_requests-merge_request_iid-approvals path: /api/v4/projects/{id}/merge_requests/{merge_request_iid}/approvals operations: - name: getapiv4projectsidmergerequestsmergerequestiidapprovals method: GET description: List approvals for merge request outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer required: true - name: merge_request_iid in: path type: integer required: true - name: postapiv4projectsidmergerequestsmergerequestiidapprovals method: POST description: Change approval-related configuration 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: merge_request_iid in: path type: integer description: The IID of a merge request required: true - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals in: body type: string required: true - name: api-v4-projects-id-merge_requests-merge_request_iid-approve path: /api/v4/projects/{id}/merge_requests/{merge_request_iid}/approve operations: - name: postapiv4projectsidmergerequestsmergerequestiidapprove method: POST description: Approve a merge request outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer required: true - name: merge_request_iid in: path type: integer required: true - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidApprove in: body type: string required: true - name: api-v4-projects-id-merge_requests-merge_request_iid-reset_approvals path: /api/v4/projects/{id}/merge_requests/{merge_request_iid}/reset_approvals operations: - name: putapiv4projectsidmergerequestsmergerequestiidresetapprovals method: PUT description: Remove all merge request approvals outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer required: true - name: merge_request_iid in: path type: integer required: true - name: api-v4-projects-id-merge_requests-merge_request_iid-unapprove path: /api/v4/projects/{id}/merge_requests/{merge_request_iid}/unapprove operations: - name: postapiv4projectsidmergerequestsmergerequestiidunapprove method: POST description: Remove an approval from a merge request outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer required: true - name: merge_request_iid in: path type: integer required: true exposes: - type: rest namespace: gitlab-ci-merge-request-approvals-rest port: 8080 description: REST adapter for GitLab API — merge_request_approvals. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/approval-state name: api-v4-projects-id-merge-requests-merge-request-iid-approval-state description: REST surface for api-v4-projects-id-merge_requests-merge_request_iid-approval_state. operations: - method: GET name: getapiv4projectsidmergerequestsmergerequestiidapprovalstate description: Get approval state of merge request call: gitlab-ci-merge-request-approvals.getapiv4projectsidmergerequestsmergerequestiidapprovalstate with: id: rest.id merge_request_iid: rest.merge_request_iid outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/approvals name: api-v4-projects-id-merge-requests-merge-request-iid-approvals description: REST surface for api-v4-projects-id-merge_requests-merge_request_iid-approvals. operations: - method: GET name: getapiv4projectsidmergerequestsmergerequestiidapprovals description: List approvals for merge request call: gitlab-ci-merge-request-approvals.getapiv4projectsidmergerequestsmergerequestiidapprovals with: id: rest.id merge_request_iid: rest.merge_request_iid outputParameters: - type: object mapping: $. - method: POST name: postapiv4projectsidmergerequestsmergerequestiidapprovals description: Change approval-related configuration call: gitlab-ci-merge-request-approvals.postapiv4projectsidmergerequestsmergerequestiidapprovals with: id: rest.id merge_request_iid: rest.merge_request_iid postApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals: rest.postApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/approve name: api-v4-projects-id-merge-requests-merge-request-iid-approve description: REST surface for api-v4-projects-id-merge_requests-merge_request_iid-approve. operations: - method: POST name: postapiv4projectsidmergerequestsmergerequestiidapprove description: Approve a merge request call: gitlab-ci-merge-request-approvals.postapiv4projectsidmergerequestsmergerequestiidapprove with: id: rest.id merge_request_iid: rest.merge_request_iid postApiV4ProjectsIdMergeRequestsMergeRequestIidApprove: rest.postApiV4ProjectsIdMergeRequestsMergeRequestIidApprove outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/reset-approvals name: api-v4-projects-id-merge-requests-merge-request-iid-reset-approvals description: REST surface for api-v4-projects-id-merge_requests-merge_request_iid-reset_approvals. operations: - method: PUT name: putapiv4projectsidmergerequestsmergerequestiidresetapprovals description: Remove all merge request approvals call: gitlab-ci-merge-request-approvals.putapiv4projectsidmergerequestsmergerequestiidresetapprovals with: id: rest.id merge_request_iid: rest.merge_request_iid outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/merge-requests/{merge-request-iid}/unapprove name: api-v4-projects-id-merge-requests-merge-request-iid-unapprove description: REST surface for api-v4-projects-id-merge_requests-merge_request_iid-unapprove. operations: - method: POST name: postapiv4projectsidmergerequestsmergerequestiidunapprove description: Remove an approval from a merge request call: gitlab-ci-merge-request-approvals.postapiv4projectsidmergerequestsmergerequestiidunapprove with: id: rest.id merge_request_iid: rest.merge_request_iid outputParameters: - type: object mapping: $. - type: mcp namespace: gitlab-ci-merge-request-approvals-mcp port: 9090 transport: http description: MCP adapter for GitLab API — merge_request_approvals. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-approval-state-merge-request description: Get approval state of merge request hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-merge-request-approvals.getapiv4projectsidmergerequestsmergerequestiidapprovalstate with: id: tools.id merge_request_iid: tools.merge_request_iid outputParameters: - type: object mapping: $. - name: list-approvals-merge-request description: List approvals for merge request hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-merge-request-approvals.getapiv4projectsidmergerequestsmergerequestiidapprovals with: id: tools.id merge_request_iid: tools.merge_request_iid outputParameters: - type: object mapping: $. - name: change-approval-related-configuration description: Change approval-related configuration hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-merge-request-approvals.postapiv4projectsidmergerequestsmergerequestiidapprovals with: id: tools.id merge_request_iid: tools.merge_request_iid postApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals: tools.postApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals outputParameters: - type: object mapping: $. - name: approve-merge-request description: Approve a merge request hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-merge-request-approvals.postapiv4projectsidmergerequestsmergerequestiidapprove with: id: tools.id merge_request_iid: tools.merge_request_iid postApiV4ProjectsIdMergeRequestsMergeRequestIidApprove: tools.postApiV4ProjectsIdMergeRequestsMergeRequestIidApprove outputParameters: - type: object mapping: $. - name: remove-all-merge-request-approvals description: Remove all merge request approvals hints: readOnly: false destructive: false idempotent: true call: gitlab-ci-merge-request-approvals.putapiv4projectsidmergerequestsmergerequestiidresetapprovals with: id: tools.id merge_request_iid: tools.merge_request_iid outputParameters: - type: object mapping: $. - name: remove-approval-merge-request description: Remove an approval from a merge request hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-merge-request-approvals.postapiv4projectsidmergerequestsmergerequestiidunapprove with: id: tools.id merge_request_iid: tools.merge_request_iid outputParameters: - type: object mapping: $.