naftiko: 1.0.0-alpha2 info: label: Gitea API — package description: 'Gitea API — package. 9 operations. Lead operation: Gets All Packages of an Owner. Self-contained Naftiko capability covering one Gitea business surface.' tags: - Gitea - package created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GITEA_API_KEY: GITEA_API_KEY capability: consumes: - type: http namespace: rest-package baseUri: https://gitea.com/api/v1 description: Gitea API — package business capability. Self-contained, no shared references. resources: - name: packages-owner path: /packages/{owner} operations: - name: listpackages method: GET description: Gets All Packages of an Owner outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner in: path type: string description: owner of the packages required: true - name: page in: query type: integer description: page number of results to return (1-based) - name: limit in: query type: integer description: page size of results - name: type in: query type: string description: package type filter - name: q in: query type: string description: name filter - name: packages-owner-type-name path: /packages/{owner}/{type}/{name} operations: - name: listpackageversions method: GET description: Gets All Versions of a Package outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner in: path type: string description: owner of the package required: true - name: type in: path type: string description: type of the package required: true - name: name in: path type: string description: name of the package required: true - name: page in: query type: integer description: page number of results to return (1-based) - name: limit in: query type: integer description: page size of results - name: deletepackage method: DELETE description: Delete a Package outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner in: path type: string description: owner of the package required: true - name: type in: path type: string description: type of the package required: true - name: name in: path type: string description: name of the package required: true - name: packages-owner-type-name---latest path: /packages/{owner}/{type}/{name}/-/latest operations: - name: getlatestpackageversion method: GET description: Gets the Latest Version of a Package outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner in: path type: string description: owner of the package required: true - name: type in: path type: string description: type of the package required: true - name: name in: path type: string description: name of the package required: true - name: packages-owner-type-name---link-repo_name path: /packages/{owner}/{type}/{name}/-/link/{repo_name} operations: - name: linkpackage method: POST description: Link a Package to a Repository outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner in: path type: string description: owner of the package required: true - name: type in: path type: string description: type of the package required: true - name: name in: path type: string description: name of the package required: true - name: repo_name in: path type: string description: name of the repository to link. required: true - name: packages-owner-type-name---unlink path: /packages/{owner}/{type}/{name}/-/unlink operations: - name: unlinkpackage method: POST description: Unlink a Package from a Repository outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner in: path type: string description: owner of the package required: true - name: type in: path type: string description: type of the package required: true - name: name in: path type: string description: name of the package required: true - name: packages-owner-type-name-version path: /packages/{owner}/{type}/{name}/{version} operations: - name: getpackage method: GET description: Gets a Package outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner in: path type: string description: owner of the package required: true - name: type in: path type: string description: type of the package required: true - name: name in: path type: string description: name of the package required: true - name: version in: path type: string description: version of the package required: true - name: deletepackageversion method: DELETE description: Delete a Package Version outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner in: path type: string description: owner of the package required: true - name: type in: path type: string description: type of the package required: true - name: name in: path type: string description: name of the package required: true - name: version in: path type: string description: version of the package required: true - name: packages-owner-type-name-version-files path: /packages/{owner}/{type}/{name}/{version}/files operations: - name: listpackagefiles method: GET description: Gets All Files of a Package outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: owner in: path type: string description: owner of the package required: true - name: type in: path type: string description: type of the package required: true - name: name in: path type: string description: name of the package required: true - name: version in: path type: string description: version of the package required: true authentication: type: apikey key: access_token value: '{{env.GITEA_API_KEY}}' placement: query exposes: - type: rest namespace: rest-package-rest port: 8080 description: REST adapter for Gitea API — package. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/packages/{owner} name: packages-owner description: REST surface for packages-owner. operations: - method: GET name: listpackages description: Gets All Packages of an Owner call: rest-package.listpackages with: owner: rest.owner page: rest.page limit: rest.limit type: rest.type q: rest.q outputParameters: - type: object mapping: $. - path: /v1/packages/{owner}/{type}/{name} name: packages-owner-type-name description: REST surface for packages-owner-type-name. operations: - method: GET name: listpackageversions description: Gets All Versions of a Package call: rest-package.listpackageversions with: owner: rest.owner type: rest.type name: rest.name page: rest.page limit: rest.limit outputParameters: - type: object mapping: $. - method: DELETE name: deletepackage description: Delete a Package call: rest-package.deletepackage with: owner: rest.owner type: rest.type name: rest.name outputParameters: - type: object mapping: $. - path: /v1/packages/{owner}/{type}/{name}//latest name: packages-owner-type-name-latest description: REST surface for packages-owner-type-name---latest. operations: - method: GET name: getlatestpackageversion description: Gets the Latest Version of a Package call: rest-package.getlatestpackageversion with: owner: rest.owner type: rest.type name: rest.name outputParameters: - type: object mapping: $. - path: /v1/packages/{owner}/{type}/{name}//link/{repo-name} name: packages-owner-type-name-link-repo-name description: REST surface for packages-owner-type-name---link-repo_name. operations: - method: POST name: linkpackage description: Link a Package to a Repository call: rest-package.linkpackage with: owner: rest.owner type: rest.type name: rest.name repo_name: rest.repo_name outputParameters: - type: object mapping: $. - path: /v1/packages/{owner}/{type}/{name}//unlink name: packages-owner-type-name-unlink description: REST surface for packages-owner-type-name---unlink. operations: - method: POST name: unlinkpackage description: Unlink a Package from a Repository call: rest-package.unlinkpackage with: owner: rest.owner type: rest.type name: rest.name outputParameters: - type: object mapping: $. - path: /v1/packages/{owner}/{type}/{name}/{version} name: packages-owner-type-name-version description: REST surface for packages-owner-type-name-version. operations: - method: GET name: getpackage description: Gets a Package call: rest-package.getpackage with: owner: rest.owner type: rest.type name: rest.name version: rest.version outputParameters: - type: object mapping: $. - method: DELETE name: deletepackageversion description: Delete a Package Version call: rest-package.deletepackageversion with: owner: rest.owner type: rest.type name: rest.name version: rest.version outputParameters: - type: object mapping: $. - path: /v1/packages/{owner}/{type}/{name}/{version}/files name: packages-owner-type-name-version-files description: REST surface for packages-owner-type-name-version-files. operations: - method: GET name: listpackagefiles description: Gets All Files of a Package call: rest-package.listpackagefiles with: owner: rest.owner type: rest.type name: rest.name version: rest.version outputParameters: - type: object mapping: $. - type: mcp namespace: rest-package-mcp port: 9090 transport: http description: MCP adapter for Gitea API — package. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: gets-all-packages-owner description: Gets All Packages of an Owner hints: readOnly: true destructive: false idempotent: true call: rest-package.listpackages with: owner: tools.owner page: tools.page limit: tools.limit type: tools.type q: tools.q outputParameters: - type: object mapping: $. - name: gets-all-versions-package description: Gets All Versions of a Package hints: readOnly: true destructive: false idempotent: true call: rest-package.listpackageversions with: owner: tools.owner type: tools.type name: tools.name page: tools.page limit: tools.limit outputParameters: - type: object mapping: $. - name: delete-package description: Delete a Package hints: readOnly: false destructive: true idempotent: true call: rest-package.deletepackage with: owner: tools.owner type: tools.type name: tools.name outputParameters: - type: object mapping: $. - name: gets-latest-version-package description: Gets the Latest Version of a Package hints: readOnly: true destructive: false idempotent: true call: rest-package.getlatestpackageversion with: owner: tools.owner type: tools.type name: tools.name outputParameters: - type: object mapping: $. - name: link-package-repository description: Link a Package to a Repository hints: readOnly: false destructive: false idempotent: false call: rest-package.linkpackage with: owner: tools.owner type: tools.type name: tools.name repo_name: tools.repo_name outputParameters: - type: object mapping: $. - name: unlink-package-repository description: Unlink a Package from a Repository hints: readOnly: false destructive: false idempotent: false call: rest-package.unlinkpackage with: owner: tools.owner type: tools.type name: tools.name outputParameters: - type: object mapping: $. - name: gets-package description: Gets a Package hints: readOnly: true destructive: false idempotent: true call: rest-package.getpackage with: owner: tools.owner type: tools.type name: tools.name version: tools.version outputParameters: - type: object mapping: $. - name: delete-package-version description: Delete a Package Version hints: readOnly: false destructive: true idempotent: true call: rest-package.deletepackageversion with: owner: tools.owner type: tools.type name: tools.name version: tools.version outputParameters: - type: object mapping: $. - name: gets-all-files-package description: Gets All Files of a Package hints: readOnly: true destructive: false idempotent: true call: rest-package.listpackagefiles with: owner: tools.owner type: tools.type name: tools.name version: tools.version outputParameters: - type: object mapping: $.