naftiko: 1.0.0-alpha2 info: label: GitLab API — remote_mirrors description: 'GitLab API — remote_mirrors. 7 operations. Lead operation: Delete a single remote mirror. Self-contained Naftiko capability covering one Gitlab Ci business surface.' tags: - Gitlab Ci - remote_mirrors 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-remote-mirrors baseUri: https://gitlab.com description: GitLab API — remote_mirrors business capability. Self-contained, no shared references. resources: - name: api-v4-projects-id-remote_mirrors path: /api/v4/projects/{id}/remote_mirrors operations: - name: getapiv4projectsidremotemirrors method: GET description: List the project's remote mirrors 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: page in: query type: integer description: Current page number - name: per_page in: query type: integer description: Number of items per page - name: postapiv4projectsidremotemirrors method: POST description: Create remote mirror for a project 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: postApiV4ProjectsIdRemoteMirrors in: body type: string required: true - name: api-v4-projects-id-remote_mirrors-mirror_id path: /api/v4/projects/{id}/remote_mirrors/{mirror_id} operations: - name: getapiv4projectsidremotemirrorsmirrorid method: GET description: Get a single remote mirror 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: mirror_id in: path type: string description: The ID of a remote mirror required: true - name: putapiv4projectsidremotemirrorsmirrorid method: PUT description: Update the attributes of a single remote mirror 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: mirror_id in: path type: string description: The ID of a remote mirror required: true - name: putApiV4ProjectsIdRemoteMirrorsMirrorId in: body type: string required: true - name: deleteapiv4projectsidremotemirrorsmirrorid method: DELETE description: Delete a single remote mirror 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: mirror_id in: path type: string description: The ID of a remote mirror required: true - name: api-v4-projects-id-remote_mirrors-mirror_id-public_key path: /api/v4/projects/{id}/remote_mirrors/{mirror_id}/public_key operations: - name: getapiv4projectsidremotemirrorsmirroridpublickey method: GET description: Get the public key of a single remote mirror 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: mirror_id in: path type: string description: The ID of a remote mirror required: true - name: api-v4-projects-id-remote_mirrors-mirror_id-sync path: /api/v4/projects/{id}/remote_mirrors/{mirror_id}/sync operations: - name: postapiv4projectsidremotemirrorsmirroridsync method: POST description: Triggers a push mirror operation 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: mirror_id in: path type: string description: The ID of a remote mirror required: true exposes: - type: rest namespace: gitlab-ci-remote-mirrors-rest port: 8080 description: REST adapter for GitLab API — remote_mirrors. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v4/projects/{id}/remote-mirrors name: api-v4-projects-id-remote-mirrors description: REST surface for api-v4-projects-id-remote_mirrors. operations: - method: GET name: getapiv4projectsidremotemirrors description: List the project's remote mirrors call: gitlab-ci-remote-mirrors.getapiv4projectsidremotemirrors with: id: rest.id page: rest.page per_page: rest.per_page outputParameters: - type: object mapping: $. - method: POST name: postapiv4projectsidremotemirrors description: Create remote mirror for a project call: gitlab-ci-remote-mirrors.postapiv4projectsidremotemirrors with: id: rest.id postApiV4ProjectsIdRemoteMirrors: rest.postApiV4ProjectsIdRemoteMirrors outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/remote-mirrors/{mirror-id} name: api-v4-projects-id-remote-mirrors-mirror-id description: REST surface for api-v4-projects-id-remote_mirrors-mirror_id. operations: - method: GET name: getapiv4projectsidremotemirrorsmirrorid description: Get a single remote mirror call: gitlab-ci-remote-mirrors.getapiv4projectsidremotemirrorsmirrorid with: id: rest.id mirror_id: rest.mirror_id outputParameters: - type: object mapping: $. - method: PUT name: putapiv4projectsidremotemirrorsmirrorid description: Update the attributes of a single remote mirror call: gitlab-ci-remote-mirrors.putapiv4projectsidremotemirrorsmirrorid with: id: rest.id mirror_id: rest.mirror_id putApiV4ProjectsIdRemoteMirrorsMirrorId: rest.putApiV4ProjectsIdRemoteMirrorsMirrorId outputParameters: - type: object mapping: $. - method: DELETE name: deleteapiv4projectsidremotemirrorsmirrorid description: Delete a single remote mirror call: gitlab-ci-remote-mirrors.deleteapiv4projectsidremotemirrorsmirrorid with: id: rest.id mirror_id: rest.mirror_id outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/remote-mirrors/{mirror-id}/public-key name: api-v4-projects-id-remote-mirrors-mirror-id-public-key description: REST surface for api-v4-projects-id-remote_mirrors-mirror_id-public_key. operations: - method: GET name: getapiv4projectsidremotemirrorsmirroridpublickey description: Get the public key of a single remote mirror call: gitlab-ci-remote-mirrors.getapiv4projectsidremotemirrorsmirroridpublickey with: id: rest.id mirror_id: rest.mirror_id outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/remote-mirrors/{mirror-id}/sync name: api-v4-projects-id-remote-mirrors-mirror-id-sync description: REST surface for api-v4-projects-id-remote_mirrors-mirror_id-sync. operations: - method: POST name: postapiv4projectsidremotemirrorsmirroridsync description: Triggers a push mirror operation call: gitlab-ci-remote-mirrors.postapiv4projectsidremotemirrorsmirroridsync with: id: rest.id mirror_id: rest.mirror_id outputParameters: - type: object mapping: $. - type: mcp namespace: gitlab-ci-remote-mirrors-mcp port: 9090 transport: http description: MCP adapter for GitLab API — remote_mirrors. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-project-s-remote-mirrors description: List the project's remote mirrors hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-remote-mirrors.getapiv4projectsidremotemirrors with: id: tools.id page: tools.page per_page: tools.per_page outputParameters: - type: object mapping: $. - name: create-remote-mirror-project description: Create remote mirror for a project hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-remote-mirrors.postapiv4projectsidremotemirrors with: id: tools.id postApiV4ProjectsIdRemoteMirrors: tools.postApiV4ProjectsIdRemoteMirrors outputParameters: - type: object mapping: $. - name: get-single-remote-mirror description: Get a single remote mirror hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-remote-mirrors.getapiv4projectsidremotemirrorsmirrorid with: id: tools.id mirror_id: tools.mirror_id outputParameters: - type: object mapping: $. - name: update-attributes-single-remote-mirror description: Update the attributes of a single remote mirror hints: readOnly: false destructive: false idempotent: true call: gitlab-ci-remote-mirrors.putapiv4projectsidremotemirrorsmirrorid with: id: tools.id mirror_id: tools.mirror_id putApiV4ProjectsIdRemoteMirrorsMirrorId: tools.putApiV4ProjectsIdRemoteMirrorsMirrorId outputParameters: - type: object mapping: $. - name: delete-single-remote-mirror description: Delete a single remote mirror hints: readOnly: false destructive: true idempotent: true call: gitlab-ci-remote-mirrors.deleteapiv4projectsidremotemirrorsmirrorid with: id: tools.id mirror_id: tools.mirror_id outputParameters: - type: object mapping: $. - name: get-public-key-single-remote description: Get the public key of a single remote mirror hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-remote-mirrors.getapiv4projectsidremotemirrorsmirroridpublickey with: id: tools.id mirror_id: tools.mirror_id outputParameters: - type: object mapping: $. - name: triggers-push-mirror-operation description: Triggers a push mirror operation hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-remote-mirrors.postapiv4projectsidremotemirrorsmirroridsync with: id: tools.id mirror_id: tools.mirror_id outputParameters: - type: object mapping: $.