naftiko: 1.0.0-alpha2 info: label: GitLab API — container_registry description: 'GitLab API — container_registry. 9 operations. Lead operation: Receives notifications from the container registry when an operation occurs. Self-contained Naftiko capability covering one Gitlab Ci business surface.' tags: - Gitlab Ci - container_registry 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-container-registry baseUri: https://gitlab.com description: GitLab API — container_registry business capability. Self-contained, no shared references. resources: - name: api-v4-container_registry_event-events path: /api/v4/container_registry_event/events operations: - name: postapiv4containerregistryeventevents method: POST description: Receives notifications from the container registry when an operation occurs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v4-groups-id-registry-repositories path: /api/v4/groups/{id}/registry/repositories operations: - name: getapiv4groupsidregistryrepositories method: GET description: List registry repositories within a group 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 accessible by the authenticated user 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: api-v4-projects-id-registry-repositories path: /api/v4/projects/{id}/registry/repositories operations: - name: getapiv4projectsidregistryrepositories method: GET description: List container repositories within 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: page in: query type: integer description: Current page number - name: per_page in: query type: integer description: Number of items per page - name: tags in: query type: boolean description: Determines if tags should be included - name: tags_count in: query type: boolean description: Determines if the tags count should be included - name: api-v4-projects-id-registry-repositories-repository_id path: /api/v4/projects/{id}/registry/repositories/{repository_id} operations: - name: deleteapiv4projectsidregistryrepositoriesrepositoryid method: DELETE description: Delete repository 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: repository_id in: path type: integer description: The ID of the repository required: true - name: api-v4-projects-id-registry-repositories-repository_id-tags path: /api/v4/projects/{id}/registry/repositories/{repository_id}/tags operations: - name: getapiv4projectsidregistryrepositoriesrepositoryidtags method: GET description: List tags of a repository 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: repository_id in: path type: integer description: The ID of the repository 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: deleteapiv4projectsidregistryrepositoriesrepositoryidtags method: DELETE description: Delete repository tags (in bulk) 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: repository_id in: path type: integer description: The ID of the repository required: true - name: name_regex_delete in: query type: string description: The tag name regexp to delete, specify .* to delete all - name: name_regex in: query type: string description: The tag name regexp to delete, specify .* to delete all - name: name_regex_keep in: query type: string description: The tag name regexp to retain - name: keep_n in: query type: integer description: Keep n of latest tags with matching name - name: older_than in: query type: string description: 'Delete older than: 1h, 1d, 1month' - name: api-v4-projects-id-registry-repositories-repository_id-tags-tag_name path: /api/v4/projects/{id}/registry/repositories/{repository_id}/tags/{tag_name} operations: - name: getapiv4projectsidregistryrepositoriesrepositoryidtagstagname method: GET description: Get details about a repository tag 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: repository_id in: path type: integer description: The ID of the repository required: true - name: tag_name in: path type: string description: The name of the tag required: true - name: deleteapiv4projectsidregistryrepositoriesrepositoryidtagstagname method: DELETE description: Delete repository tag 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: repository_id in: path type: integer description: The ID of the repository required: true - name: tag_name in: path type: string description: The name of the tag required: true - name: api-v4-registry-repositories-id path: /api/v4/registry/repositories/{id} operations: - name: getapiv4registryrepositoriesid method: GET description: Get a container repository outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID of the repository required: true - name: tags in: query type: boolean description: Determines if tags should be included - name: tags_count in: query type: boolean description: Determines if the tags count should be included - name: size in: query type: boolean description: Determines if the size should be included exposes: - type: rest namespace: gitlab-ci-container-registry-rest port: 8080 description: REST adapter for GitLab API — container_registry. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v4/container-registry-event/events name: api-v4-container-registry-event-events description: REST surface for api-v4-container_registry_event-events. operations: - method: POST name: postapiv4containerregistryeventevents description: Receives notifications from the container registry when an operation occurs call: gitlab-ci-container-registry.postapiv4containerregistryeventevents outputParameters: - type: object mapping: $. - path: /v1/api/v4/groups/{id}/registry/repositories name: api-v4-groups-id-registry-repositories description: REST surface for api-v4-groups-id-registry-repositories. operations: - method: GET name: getapiv4groupsidregistryrepositories description: List registry repositories within a group call: gitlab-ci-container-registry.getapiv4groupsidregistryrepositories with: id: rest.id page: rest.page per_page: rest.per_page outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/registry/repositories name: api-v4-projects-id-registry-repositories description: REST surface for api-v4-projects-id-registry-repositories. operations: - method: GET name: getapiv4projectsidregistryrepositories description: List container repositories within a project call: gitlab-ci-container-registry.getapiv4projectsidregistryrepositories with: id: rest.id page: rest.page per_page: rest.per_page tags: rest.tags tags_count: rest.tags_count outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/registry/repositories/{repository-id} name: api-v4-projects-id-registry-repositories-repository-id description: REST surface for api-v4-projects-id-registry-repositories-repository_id. operations: - method: DELETE name: deleteapiv4projectsidregistryrepositoriesrepositoryid description: Delete repository call: gitlab-ci-container-registry.deleteapiv4projectsidregistryrepositoriesrepositoryid with: id: rest.id repository_id: rest.repository_id outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/registry/repositories/{repository-id}/tags name: api-v4-projects-id-registry-repositories-repository-id-tags description: REST surface for api-v4-projects-id-registry-repositories-repository_id-tags. operations: - method: GET name: getapiv4projectsidregistryrepositoriesrepositoryidtags description: List tags of a repository call: gitlab-ci-container-registry.getapiv4projectsidregistryrepositoriesrepositoryidtags with: id: rest.id repository_id: rest.repository_id page: rest.page per_page: rest.per_page outputParameters: - type: object mapping: $. - method: DELETE name: deleteapiv4projectsidregistryrepositoriesrepositoryidtags description: Delete repository tags (in bulk) call: gitlab-ci-container-registry.deleteapiv4projectsidregistryrepositoriesrepositoryidtags with: id: rest.id repository_id: rest.repository_id name_regex_delete: rest.name_regex_delete name_regex: rest.name_regex name_regex_keep: rest.name_regex_keep keep_n: rest.keep_n older_than: rest.older_than outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/registry/repositories/{repository-id}/tags/{tag-name} name: api-v4-projects-id-registry-repositories-repository-id-tags-tag-name description: REST surface for api-v4-projects-id-registry-repositories-repository_id-tags-tag_name. operations: - method: GET name: getapiv4projectsidregistryrepositoriesrepositoryidtagstagname description: Get details about a repository tag call: gitlab-ci-container-registry.getapiv4projectsidregistryrepositoriesrepositoryidtagstagname with: id: rest.id repository_id: rest.repository_id tag_name: rest.tag_name outputParameters: - type: object mapping: $. - method: DELETE name: deleteapiv4projectsidregistryrepositoriesrepositoryidtagstagname description: Delete repository tag call: gitlab-ci-container-registry.deleteapiv4projectsidregistryrepositoriesrepositoryidtagstagname with: id: rest.id repository_id: rest.repository_id tag_name: rest.tag_name outputParameters: - type: object mapping: $. - path: /v1/api/v4/registry/repositories/{id} name: api-v4-registry-repositories-id description: REST surface for api-v4-registry-repositories-id. operations: - method: GET name: getapiv4registryrepositoriesid description: Get a container repository call: gitlab-ci-container-registry.getapiv4registryrepositoriesid with: id: rest.id tags: rest.tags tags_count: rest.tags_count size: rest.size outputParameters: - type: object mapping: $. - type: mcp namespace: gitlab-ci-container-registry-mcp port: 9090 transport: http description: MCP adapter for GitLab API — container_registry. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: receives-notifications-container-registry-when description: Receives notifications from the container registry when an operation occurs hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-container-registry.postapiv4containerregistryeventevents outputParameters: - type: object mapping: $. - name: list-registry-repositories-within-group description: List registry repositories within a group hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-container-registry.getapiv4groupsidregistryrepositories with: id: tools.id page: tools.page per_page: tools.per_page outputParameters: - type: object mapping: $. - name: list-container-repositories-within-project description: List container repositories within a project hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-container-registry.getapiv4projectsidregistryrepositories with: id: tools.id page: tools.page per_page: tools.per_page tags: tools.tags tags_count: tools.tags_count outputParameters: - type: object mapping: $. - name: delete-repository description: Delete repository hints: readOnly: false destructive: true idempotent: true call: gitlab-ci-container-registry.deleteapiv4projectsidregistryrepositoriesrepositoryid with: id: tools.id repository_id: tools.repository_id outputParameters: - type: object mapping: $. - name: list-tags-repository description: List tags of a repository hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-container-registry.getapiv4projectsidregistryrepositoriesrepositoryidtags with: id: tools.id repository_id: tools.repository_id page: tools.page per_page: tools.per_page outputParameters: - type: object mapping: $. - name: delete-repository-tags-bulk description: Delete repository tags (in bulk) hints: readOnly: false destructive: true idempotent: true call: gitlab-ci-container-registry.deleteapiv4projectsidregistryrepositoriesrepositoryidtags with: id: tools.id repository_id: tools.repository_id name_regex_delete: tools.name_regex_delete name_regex: tools.name_regex name_regex_keep: tools.name_regex_keep keep_n: tools.keep_n older_than: tools.older_than outputParameters: - type: object mapping: $. - name: get-details-about-repository-tag description: Get details about a repository tag hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-container-registry.getapiv4projectsidregistryrepositoriesrepositoryidtagstagname with: id: tools.id repository_id: tools.repository_id tag_name: tools.tag_name outputParameters: - type: object mapping: $. - name: delete-repository-tag description: Delete repository tag hints: readOnly: false destructive: true idempotent: true call: gitlab-ci-container-registry.deleteapiv4projectsidregistryrepositoriesrepositoryidtagstagname with: id: tools.id repository_id: tools.repository_id tag_name: tools.tag_name outputParameters: - type: object mapping: $. - name: get-container-repository description: Get a container repository hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-container-registry.getapiv4registryrepositoriesid with: id: tools.id tags: tools.tags tags_count: tools.tags_count size: tools.size outputParameters: - type: object mapping: $.