naftiko: 1.0.0-alpha2 info: label: GitLab API — ci_lint description: 'GitLab API — ci_lint. 2 operations. Lead operation: Validates a CI YAML configuration with a namespace. Self-contained Naftiko capability covering one Gitlab Ci business surface.' tags: - Gitlab Ci - ci_lint 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-ci-lint baseUri: https://gitlab.com description: GitLab API — ci_lint business capability. Self-contained, no shared references. resources: - name: api-v4-projects-id-ci-lint path: /api/v4/projects/{id}/ci/lint operations: - name: getapiv4projectsidcilint method: GET description: Validates a CI YAML configuration with a namespace outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sha in: query type: string description: 'Deprecated: Use content_ref instead' - name: content_ref in: query type: string description: The CI/CD configuration content is taken from this commit SHA, branch or tag. Defaults to the HEAD of the project's default branch - name: dry_run in: query type: boolean description: Run pipeline creation simulation, or only do static check. This is false by default - name: include_jobs in: query type: boolean description: If the list of jobs that would exist in a static check or pipeline - name: ref in: query type: string description: 'Deprecated: Use dry_run_ref instead' - name: dry_run_ref in: query type: string description: Branch or tag used as context when executing a dry run. Defaults to the default branch of the project. Only used when dry_run is true - name: id in: path type: integer required: true - name: postapiv4projectsidcilint method: POST description: Validate a CI YAML configuration with a namespace outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer required: true - name: postApiV4ProjectsIdCiLint in: body type: string required: true exposes: - type: rest namespace: gitlab-ci-ci-lint-rest port: 8080 description: REST adapter for GitLab API — ci_lint. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v4/projects/{id}/ci/lint name: api-v4-projects-id-ci-lint description: REST surface for api-v4-projects-id-ci-lint. operations: - method: GET name: getapiv4projectsidcilint description: Validates a CI YAML configuration with a namespace call: gitlab-ci-ci-lint.getapiv4projectsidcilint with: sha: rest.sha content_ref: rest.content_ref dry_run: rest.dry_run include_jobs: rest.include_jobs ref: rest.ref dry_run_ref: rest.dry_run_ref id: rest.id outputParameters: - type: object mapping: $. - method: POST name: postapiv4projectsidcilint description: Validate a CI YAML configuration with a namespace call: gitlab-ci-ci-lint.postapiv4projectsidcilint with: id: rest.id postApiV4ProjectsIdCiLint: rest.postApiV4ProjectsIdCiLint outputParameters: - type: object mapping: $. - type: mcp namespace: gitlab-ci-ci-lint-mcp port: 9090 transport: http description: MCP adapter for GitLab API — ci_lint. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: validates-ci-yaml-configuration-namespace description: Validates a CI YAML configuration with a namespace hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-ci-lint.getapiv4projectsidcilint with: sha: tools.sha content_ref: tools.content_ref dry_run: tools.dry_run include_jobs: tools.include_jobs ref: tools.ref dry_run_ref: tools.dry_run_ref id: tools.id outputParameters: - type: object mapping: $. - name: validate-ci-yaml-configuration-namespace description: Validate a CI YAML configuration with a namespace hints: readOnly: true destructive: false idempotent: false call: gitlab-ci-ci-lint.postapiv4projectsidcilint with: id: tools.id postApiV4ProjectsIdCiLint: tools.postApiV4ProjectsIdCiLint outputParameters: - type: object mapping: $.