naftiko: 1.0.0-alpha2 info: label: GitLab API — gitlab_pages description: 'GitLab API — gitlab_pages. 10 operations. Lead operation: Unpublish pages. Self-contained Naftiko capability covering one Gitlab Ci business surface.' tags: - Gitlab Ci - gitlab_pages 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-gitlab-pages baseUri: https://gitlab.com description: GitLab API — gitlab_pages business capability. Self-contained, no shared references. resources: - name: api-v4-pages-domains path: /api/v4/pages/domains operations: - name: getapiv4pagesdomains method: GET description: Get all pages domains outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: domain in: query type: string description: The domain of the GitLab Pages site to filter on. - 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-pages path: /api/v4/projects/{id}/pages operations: - name: deleteapiv4projectsidpages method: DELETE description: Unpublish pages 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 owned by the authenticated user required: true - name: patchapiv4projectsidpages method: PATCH description: Update pages settings 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 owned by the authenticated user required: true - name: patchApiV4ProjectsIdPages in: body type: string required: true - name: getapiv4projectsidpages method: GET description: Get pages settings 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 owned by the authenticated user required: true - name: api-v4-projects-id-pages-domains path: /api/v4/projects/{id}/pages/domains operations: - name: getapiv4projectsidpagesdomains method: GET description: Get all pages domains 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 owned 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: postapiv4projectsidpagesdomains method: POST description: Create a new pages domain 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 owned by the authenticated user required: true - name: postApiV4ProjectsIdPagesDomains in: body type: string required: true - name: api-v4-projects-id-pages-domains-domain path: /api/v4/projects/{id}/pages/domains/{domain} operations: - name: getapiv4projectsidpagesdomainsdomain method: GET description: Get a single pages domain 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 owned by the authenticated user required: true - name: domain in: path type: string description: The domain required: true - name: putapiv4projectsidpagesdomainsdomain method: PUT description: Updates a pages domain 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 owned by the authenticated user required: true - name: domain in: path type: string description: The domain required: true - name: putApiV4ProjectsIdPagesDomainsDomain in: body type: string required: true - name: deleteapiv4projectsidpagesdomainsdomain method: DELETE description: Delete a pages domain 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 owned by the authenticated user required: true - name: domain in: path type: string description: The domain required: true - name: api-v4-projects-id-pages-domains-domain-verify path: /api/v4/projects/{id}/pages/domains/{domain}/verify operations: - name: putapiv4projectsidpagesdomainsdomainverify method: PUT description: Verify a pages domain 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 owned by the authenticated user required: true - name: domain in: path type: string description: The domain to verify required: true exposes: - type: rest namespace: gitlab-ci-gitlab-pages-rest port: 8080 description: REST adapter for GitLab API — gitlab_pages. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v4/pages/domains name: api-v4-pages-domains description: REST surface for api-v4-pages-domains. operations: - method: GET name: getapiv4pagesdomains description: Get all pages domains call: gitlab-ci-gitlab-pages.getapiv4pagesdomains with: domain: rest.domain page: rest.page per_page: rest.per_page outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pages name: api-v4-projects-id-pages description: REST surface for api-v4-projects-id-pages. operations: - method: DELETE name: deleteapiv4projectsidpages description: Unpublish pages call: gitlab-ci-gitlab-pages.deleteapiv4projectsidpages with: id: rest.id outputParameters: - type: object mapping: $. - method: PATCH name: patchapiv4projectsidpages description: Update pages settings call: gitlab-ci-gitlab-pages.patchapiv4projectsidpages with: id: rest.id patchApiV4ProjectsIdPages: rest.patchApiV4ProjectsIdPages outputParameters: - type: object mapping: $. - method: GET name: getapiv4projectsidpages description: Get pages settings call: gitlab-ci-gitlab-pages.getapiv4projectsidpages with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pages/domains name: api-v4-projects-id-pages-domains description: REST surface for api-v4-projects-id-pages-domains. operations: - method: GET name: getapiv4projectsidpagesdomains description: Get all pages domains call: gitlab-ci-gitlab-pages.getapiv4projectsidpagesdomains with: id: rest.id page: rest.page per_page: rest.per_page outputParameters: - type: object mapping: $. - method: POST name: postapiv4projectsidpagesdomains description: Create a new pages domain call: gitlab-ci-gitlab-pages.postapiv4projectsidpagesdomains with: id: rest.id postApiV4ProjectsIdPagesDomains: rest.postApiV4ProjectsIdPagesDomains outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pages/domains/{domain} name: api-v4-projects-id-pages-domains-domain description: REST surface for api-v4-projects-id-pages-domains-domain. operations: - method: GET name: getapiv4projectsidpagesdomainsdomain description: Get a single pages domain call: gitlab-ci-gitlab-pages.getapiv4projectsidpagesdomainsdomain with: id: rest.id domain: rest.domain outputParameters: - type: object mapping: $. - method: PUT name: putapiv4projectsidpagesdomainsdomain description: Updates a pages domain call: gitlab-ci-gitlab-pages.putapiv4projectsidpagesdomainsdomain with: id: rest.id domain: rest.domain putApiV4ProjectsIdPagesDomainsDomain: rest.putApiV4ProjectsIdPagesDomainsDomain outputParameters: - type: object mapping: $. - method: DELETE name: deleteapiv4projectsidpagesdomainsdomain description: Delete a pages domain call: gitlab-ci-gitlab-pages.deleteapiv4projectsidpagesdomainsdomain with: id: rest.id domain: rest.domain outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/pages/domains/{domain}/verify name: api-v4-projects-id-pages-domains-domain-verify description: REST surface for api-v4-projects-id-pages-domains-domain-verify. operations: - method: PUT name: putapiv4projectsidpagesdomainsdomainverify description: Verify a pages domain call: gitlab-ci-gitlab-pages.putapiv4projectsidpagesdomainsdomainverify with: id: rest.id domain: rest.domain outputParameters: - type: object mapping: $. - type: mcp namespace: gitlab-ci-gitlab-pages-mcp port: 9090 transport: http description: MCP adapter for GitLab API — gitlab_pages. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-all-pages-domains description: Get all pages domains hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-gitlab-pages.getapiv4pagesdomains with: domain: tools.domain page: tools.page per_page: tools.per_page outputParameters: - type: object mapping: $. - name: unpublish-pages description: Unpublish pages hints: readOnly: false destructive: true idempotent: true call: gitlab-ci-gitlab-pages.deleteapiv4projectsidpages with: id: tools.id outputParameters: - type: object mapping: $. - name: update-pages-settings description: Update pages settings hints: readOnly: false destructive: false idempotent: true call: gitlab-ci-gitlab-pages.patchapiv4projectsidpages with: id: tools.id patchApiV4ProjectsIdPages: tools.patchApiV4ProjectsIdPages outputParameters: - type: object mapping: $. - name: get-pages-settings description: Get pages settings hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-gitlab-pages.getapiv4projectsidpages with: id: tools.id outputParameters: - type: object mapping: $. - name: get-all-pages-domains-2 description: Get all pages domains hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-gitlab-pages.getapiv4projectsidpagesdomains with: id: tools.id page: tools.page per_page: tools.per_page outputParameters: - type: object mapping: $. - name: create-new-pages-domain description: Create a new pages domain hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-gitlab-pages.postapiv4projectsidpagesdomains with: id: tools.id postApiV4ProjectsIdPagesDomains: tools.postApiV4ProjectsIdPagesDomains outputParameters: - type: object mapping: $. - name: get-single-pages-domain description: Get a single pages domain hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-gitlab-pages.getapiv4projectsidpagesdomainsdomain with: id: tools.id domain: tools.domain outputParameters: - type: object mapping: $. - name: updates-pages-domain description: Updates a pages domain hints: readOnly: false destructive: false idempotent: true call: gitlab-ci-gitlab-pages.putapiv4projectsidpagesdomainsdomain with: id: tools.id domain: tools.domain putApiV4ProjectsIdPagesDomainsDomain: tools.putApiV4ProjectsIdPagesDomainsDomain outputParameters: - type: object mapping: $. - name: delete-pages-domain description: Delete a pages domain hints: readOnly: false destructive: true idempotent: true call: gitlab-ci-gitlab-pages.deleteapiv4projectsidpagesdomainsdomain with: id: tools.id domain: tools.domain outputParameters: - type: object mapping: $. - name: verify-pages-domain description: Verify a pages domain hints: readOnly: false destructive: false idempotent: true call: gitlab-ci-gitlab-pages.putapiv4projectsidpagesdomainsdomainverify with: id: tools.id domain: tools.domain outputParameters: - type: object mapping: $.