Gitea · Capability

Gitea API — package

Gitea API — package. 9 operations. Lead operation: Gets All Packages of an Owner. Self-contained Naftiko capability covering one Gitea business surface.

Run with Naftiko Giteapackage

What You Can Do

GET
Listpackages — Gets All Packages of an Owner
/v1/packages/{owner}
GET
Listpackageversions — Gets All Versions of a Package
/v1/packages/{owner}/{type}/{name}
DELETE
Deletepackage — Delete a Package
/v1/packages/{owner}/{type}/{name}
GET
Getlatestpackageversion — Gets the Latest Version of a Package
/v1/packages/{owner}/{type}/{name}//latest
POST
Linkpackage — Link a Package to a Repository
/v1/packages/{owner}/{type}/{name}//link/{repo-name}
POST
Unlinkpackage — Unlink a Package from a Repository
/v1/packages/{owner}/{type}/{name}//unlink
GET
Getpackage — Gets a Package
/v1/packages/{owner}/{type}/{name}/{version}
DELETE
Deletepackageversion — Delete a Package Version
/v1/packages/{owner}/{type}/{name}/{version}
GET
Listpackagefiles — Gets All Files of a Package
/v1/packages/{owner}/{type}/{name}/{version}/files

MCP Tools

gets-all-packages-owner

Gets All Packages of an Owner

read-only idempotent
gets-all-versions-package

Gets All Versions of a Package

read-only idempotent
delete-package

Delete a Package

idempotent
gets-latest-version-package

Gets the Latest Version of a Package

read-only idempotent
link-package-repository

Link a Package to a Repository

unlink-package-repository

Unlink a Package from a Repository

gets-package

Gets a Package

read-only idempotent
delete-package-version

Delete a Package Version

idempotent
gets-all-files-package

Gets All Files of a Package

read-only idempotent

Capability Spec

rest-package.yaml Raw ↑
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: $.