Forgejo package API

The package API from Forgejo — 5 operation(s) for package.

OpenAPI Specification

forgejo-package-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: This documentation describes the Forgejo API.
  title: Forgejo activitypub package API
  license:
    name: This file is distributed under the MIT license for the purpose of interoperability
    url: http://opensource.org/licenses/MIT
  version: 16.0.0-dev-465-4b83448b7d+gitea-1.22.0
basePath: /api/v1
schemes:
- https
- http
consumes:
- application/json
- text/plain
produces:
- application/json
- text/html
security:
- BasicAuth: []
- AuthorizationHeaderToken: []
- SudoParam: []
- SudoHeader: []
- TOTPHeader: []
tags:
- name: package
paths:
  /packages/{owner}:
    get:
      produces:
      - application/json
      tags:
      - package
      summary: Gets all packages of an owner
      operationId: listPackages
      parameters:
      - type: string
        description: owner of the packages
        name: owner
        in: path
        required: true
      - type: integer
        description: page number of results to return (1-based)
        name: page
        in: query
      - type: integer
        description: page size of results
        name: limit
        in: query
      - enum:
        - alpine
        - cargo
        - chef
        - composer
        - conan
        - conda
        - container
        - cran
        - debian
        - generic
        - go
        - helm
        - maven
        - npm
        - nuget
        - pub
        - pypi
        - rpm
        - rubygems
        - swift
        - vagrant
        type: string
        description: package type filter
        name: type
        in: query
      - type: string
        description: name filter
        name: q
        in: query
      responses:
        '200':
          $ref: '#/responses/PackageList'
        '404':
          $ref: '#/responses/notFound'
  /packages/{owner}/{type}/{name}/-/link/{repo_name}:
    post:
      tags:
      - package
      summary: Link a package to a repository
      operationId: linkPackage
      parameters:
      - type: string
        description: owner of the package
        name: owner
        in: path
        required: true
      - type: string
        description: type of the package
        name: type
        in: path
        required: true
      - type: string
        description: name of the package
        name: name
        in: path
        required: true
      - type: string
        description: name of the repository to link.
        name: repo_name
        in: path
        required: true
      responses:
        '201':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
  /packages/{owner}/{type}/{name}/-/unlink:
    post:
      tags:
      - package
      summary: Unlink a package from a repository
      operationId: unlinkPackage
      parameters:
      - type: string
        description: owner of the package
        name: owner
        in: path
        required: true
      - type: string
        description: type of the package
        name: type
        in: path
        required: true
      - type: string
        description: name of the package
        name: name
        in: path
        required: true
      responses:
        '201':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
  /packages/{owner}/{type}/{name}/{version}:
    get:
      produces:
      - application/json
      tags:
      - package
      summary: Gets a package
      operationId: getPackage
      parameters:
      - type: string
        description: owner of the package
        name: owner
        in: path
        required: true
      - type: string
        description: type of the package
        name: type
        in: path
        required: true
      - type: string
        description: name of the package
        name: name
        in: path
        required: true
      - type: string
        description: version of the package
        name: version
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/Package'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
      - package
      summary: Delete a package
      operationId: deletePackage
      parameters:
      - type: string
        description: owner of the package
        name: owner
        in: path
        required: true
      - type: string
        description: type of the package
        name: type
        in: path
        required: true
      - type: string
        description: name of the package
        name: name
        in: path
        required: true
      - type: string
        description: version of the package
        name: version
        in: path
        required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
  /packages/{owner}/{type}/{name}/{version}/files:
    get:
      produces:
      - application/json
      tags:
      - package
      summary: Gets all files of a package
      operationId: listPackageFiles
      parameters:
      - type: string
        description: owner of the package
        name: owner
        in: path
        required: true
      - type: string
        description: type of the package
        name: type
        in: path
        required: true
      - type: string
        description: name of the package
        name: name
        in: path
        required: true
      - type: string
        description: version of the package
        name: version
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/PackageFileList'
        '404':
          $ref: '#/responses/notFound'
definitions:
  Team:
    description: Team represents a team in an organization
    type: object
    properties:
      can_create_org_repo:
        type: boolean
        x-go-name: CanCreateOrgRepo
      description:
        type: string
        x-go-name: Description
      id:
        type: integer
        format: int64
        x-go-name: ID
      includes_all_repositories:
        type: boolean
        x-go-name: IncludesAllRepositories
      name:
        type: string
        x-go-name: Name
      organization:
        $ref: '#/definitions/Organization'
      permission:
        type: string
        enum:
        - none
        - read
        - write
        - admin
        - owner
        x-go-name: Permission
      units:
        type: array
        items:
          type: string
        x-go-name: Units
        example:
        - repo.code
        - repo.issues
        - repo.ext_issues
        - repo.wiki
        - repo.pulls
        - repo.releases
        - repo.projects
        - repo.ext_wiki
      units_map:
        type: object
        additionalProperties:
          type: string
        x-go-name: UnitsMap
        example:
          repo.actions: none
          repo.code: read
          repo.ext_issues: none
          repo.ext_wiki: none
          repo.issues: write
          repo.packages: none
          repo.projects: none
          repo.pulls: owner
          repo.releases: none
          repo.wiki: admin
    x-go-package: forgejo.org/modules/structs
  Organization:
    description: Organization represents an organization
    type: object
    properties:
      avatar_url:
        type: string
        x-go-name: AvatarURL
      created:
        type: string
        format: date-time
        x-go-name: Created
      description:
        type: string
        x-go-name: Description
      email:
        type: string
        x-go-name: Email
      full_name:
        type: string
        x-go-name: FullName
      id:
        type: integer
        format: int64
        x-go-name: ID
      location:
        type: string
        x-go-name: Location
      name:
        type: string
        x-go-name: Name
      repo_admin_change_team_access:
        type: boolean
        x-go-name: RepoAdminChangeTeamAccess
      username:
        description: deprecated
        type: string
        x-go-name: UserName
      visibility:
        type: string
        x-go-name: Visibility
      website:
        type: string
        x-go-name: Website
    x-go-package: forgejo.org/modules/structs
  ExternalWiki:
    description: ExternalWiki represents setting for external wiki
    type: object
    properties:
      external_wiki_url:
        description: URL of external wiki.
        type: string
        x-go-name: ExternalWikiURL
    x-go-package: forgejo.org/modules/structs
  Package:
    description: Package represents a package
    type: object
    properties:
      created_at:
        type: string
        format: date-time
        x-go-name: CreatedAt
      creator:
        $ref: '#/definitions/User'
      html_url:
        type: string
        x-go-name: HTMLURL
      id:
        type: integer
        format: int64
        x-go-name: ID
      name:
        type: string
        x-go-name: Name
      owner:
        $ref: '#/definitions/User'
      repository:
        $ref: '#/definitions/Repository'
      type:
        type: string
        x-go-name: Type
      version:
        type: string
        x-go-name: Version
    x-go-package: forgejo.org/modules/structs
  User:
    description: User represents a user
    type: object
    properties:
      active:
        description: Is user active
        type: boolean
        x-go-name: IsActive
      avatar_url:
        description: URL to the user's avatar
        type: string
        x-go-name: AvatarURL
      created:
        type: string
        format: date-time
        x-go-name: Created
      description:
        description: the user's description
        type: string
        x-go-name: Description
      email:
        type: string
        format: email
        x-go-name: Email
      followers_count:
        description: user counts
        type: integer
        format: int64
        x-go-name: Followers
      following_count:
        type: integer
        format: int64
        x-go-name: Following
      full_name:
        description: the user's full name
        type: string
        x-go-name: FullName
      html_url:
        description: URL to the user's profile page
        type: string
        x-go-name: HTMLURL
      id:
        description: the user's id
        type: integer
        format: int64
        x-go-name: ID
      is_admin:
        description: Is the user an administrator
        type: boolean
        x-go-name: IsAdmin
      language:
        description: User locale
        type: string
        x-go-name: Language
      last_login:
        type: string
        format: date-time
        x-go-name: LastLogin
      location:
        description: the user's location
        type: string
        x-go-name: Location
      login:
        description: the user's username
        type: string
        x-go-name: UserName
      login_name:
        description: the user's authentication sign-in name.
        type: string
        default: empty
        x-go-name: LoginName
      prohibit_login:
        description: Is user login prohibited
        type: boolean
        x-go-name: ProhibitLogin
      pronouns:
        description: the user's pronouns
        type: string
        x-go-name: Pronouns
      restricted:
        description: Is user restricted
        type: boolean
        x-go-name: Restricted
      source_id:
        description: The ID of the user's Authentication Source
        type: integer
        format: int64
        x-go-name: SourceID
      starred_repos_count:
        type: integer
        format: int64
        x-go-name: StarredRepos
      visibility:
        description: 'User visibility level option: public, limited, private'
        type: string
        x-go-name: Visibility
      website:
        description: the user's website
        type: string
        x-go-name: Website
    x-go-package: forgejo.org/modules/structs
  PackageFile:
    description: PackageFile represents a package file
    type: object
    properties:
      Size:
        type: integer
        format: int64
      id:
        type: integer
        format: int64
        x-go-name: ID
      md5:
        type: string
        x-go-name: HashMD5
      name:
        type: string
        x-go-name: Name
      sha1:
        type: string
        x-go-name: HashSHA1
      sha256:
        type: string
        x-go-name: HashSHA256
      sha512:
        type: string
        x-go-name: HashSHA512
    x-go-package: forgejo.org/modules/structs
  Permission:
    description: Permission represents a set of permissions
    type: object
    properties:
      admin:
        type: boolean
        x-go-name: Admin
      pull:
        type: boolean
        x-go-name: Pull
      push:
        type: boolean
        x-go-name: Push
    x-go-package: forgejo.org/modules/structs
  APINotFound:
    type: object
    properties:
      errors:
        type: array
        items:
          type: string
        x-go-name: Errors
      message:
        type: string
        x-go-name: Message
      url:
        type: string
        x-go-name: URL
    x-go-package: forgejo.org/services/context
  ExternalTracker:
    description: ExternalTracker represents settings for external tracker
    type: object
    properties:
      external_tracker_format:
        description: External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index.
        type: string
        x-go-name: ExternalTrackerFormat
      external_tracker_regexp_pattern:
        description: External Issue Tracker issue regular expression
        type: string
        x-go-name: ExternalTrackerRegexpPattern
      external_tracker_style:
        description: External Issue Tracker Number Format, either `numeric`, `alphanumeric`, or `regexp`
        type: string
        x-go-name: ExternalTrackerStyle
      external_tracker_url:
        description: URL of external issue tracker.
        type: string
        x-go-name: ExternalTrackerURL
    x-go-package: forgejo.org/modules/structs
  Repository:
    description: Repository represents a repository
    type: object
    properties:
      allow_fast_forward_only_merge:
        type: boolean
        x-go-name: AllowFastForwardOnly
      allow_merge_commits:
        type: boolean
        x-go-name: AllowMerge
      allow_rebase:
        type: boolean
        x-go-name: AllowRebase
      allow_rebase_explicit:
        type: boolean
        x-go-name: AllowRebaseMerge
      allow_rebase_update:
        type: boolean
        x-go-name: AllowRebaseUpdate
      allow_squash_merge:
        type: boolean
        x-go-name: AllowSquash
      archived:
        type: boolean
        x-go-name: Archived
      archived_at:
        type: string
        format: date-time
        x-go-name: ArchivedAt
      avatar_url:
        type: string
        x-go-name: AvatarURL
      clone_url:
        type: string
        x-go-name: CloneURL
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      default_allow_maintainer_edit:
        type: boolean
        x-go-name: DefaultAllowMaintainerEdit
      default_branch:
        type: string
        x-go-name: DefaultBranch
      default_delete_branch_after_merge:
        type: boolean
        x-go-name: DefaultDeleteBranchAfterMerge
      default_merge_style:
        type: string
        x-go-name: DefaultMergeStyle
      default_update_style:
        type: string
        x-go-name: DefaultUpdateStyle
      description:
        type: string
        x-go-name: Description
      empty:
        type: boolean
        x-go-name: Empty
      external_tracker:
        $ref: '#/definitions/ExternalTracker'
      external_wiki:
        $ref: '#/definitions/ExternalWiki'
      fork:
        type: boolean
        x-go-name: Fork
      forks_count:
        type: integer
        format: int64
        x-go-name: Forks
      full_name:
        type: string
        x-go-name: FullName
      globally_editable_wiki:
        type: boolean
        x-go-name: GloballyEditableWiki
      has_actions:
        type: boolean
        x-go-name: HasActions
      has_issues:
        type: boolean
        x-go-name: HasIssues
      has_packages:
        type: boolean
        x-go-name: HasPackages
      has_projects:
        type: boolean
        x-go-name: HasProjects
      has_pull_requests:
        type: boolean
        x-go-name: HasPullRequests
      has_releases:
        type: boolean
        x-go-name: HasReleases
      has_wiki:
        description: is the wiki enabled
        type: boolean
        x-go-name: HasWiki
      has_wiki_contents:
        description: have wiki pages ever been created
        type: boolean
        x-go-name: HasWikiContents
      html_url:
        type: string
        x-go-name: HTMLURL
      id:
        type: integer
        format: int64
        x-go-name: ID
      ignore_whitespace_conflicts:
        type: boolean
        x-go-name: IgnoreWhitespaceConflicts
      internal:
        type: boolean
        x-go-name: Internal
      internal_tracker:
        $ref: '#/definitions/InternalTracker'
      language:
        type: string
        x-go-name: Language
      languages_url:
        type: string
        x-go-name: LanguagesURL
      link:
        type: string
        x-go-name: Link
      mirror:
        type: boolean
        x-go-name: Mirror
      mirror_interval:
        type: string
        x-go-name: MirrorInterval
      mirror_updated:
        type: string
        format: date-time
        x-go-name: MirrorUpdated
      name:
        type: string
        x-go-name: Name
      object_format_name:
        description: ObjectFormatName of the underlying git repository
        type: string
        enum:
        - sha1
        - sha256
        x-go-name: ObjectFormatName
      open_issues_count:
        type: integer
        format: int64
        x-go-name: OpenIssues
      open_pr_counter:
        type: integer
        format: int64
        x-go-name: OpenPulls
      original_url:
        type: string
        x-go-name: OriginalURL
      owner:
        $ref: '#/definitions/User'
      parent:
        $ref: '#/definitions/Repository'
      permissions:
        $ref: '#/definitions/Permission'
      private:
        type: boolean
        x-go-name: Private
      release_counter:
        type: integer
        format: int64
        x-go-name: Releases
      repo_transfer:
        $ref: '#/definitions/RepoTransfer'
      size:
        type: integer
        format: int64
        x-go-name: Size
      ssh_url:
        type: string
        x-go-name: SSHURL
      stars_count:
        type: integer
        format: int64
        x-go-name: Stars
      template:
        type: boolean
        x-go-name: Template
      topics:
        type: array
        items:
          type: string
        x-go-name: Topics
      updated_at:
        type: string
        format: date-time
        x-go-name: Updated
      url:
        type: string
        x-go-name: URL
      watchers_count:
        type: integer
        format: int64
        x-go-name: Watchers
      website:
        type: string
        x-go-name: Website
      wiki_branch:
        type: string
        x-go-name: WikiBranch
      wiki_clone_url:
        type: string
        x-go-name: WikiCloneURL
      wiki_ssh_url:
        type: string
        x-go-name: WikiSSHURL
    x-go-package: forgejo.org/modules/structs
  InternalTracker:
    description: InternalTracker represents settings for internal tracker
    type: object
    properties:
      allow_only_contributors_to_track_time:
        description: Let only contributors track time (Built-in issue tracker)
        type: boolean
        x-go-name: AllowOnlyContributorsToTrackTime
      enable_issue_dependencies:
        description: Enable dependencies for issues and pull requests (Built-in issue tracker)
        type: boolean
        x-go-name: EnableIssueDependencies
      enable_time_tracker:
        description: Enable time tracking (Built-in issue tracker)
        type: boolean
        x-go-name: EnableTimeTracker
    x-go-package: forgejo.org/modules/structs
  RepoTransfer:
    description: RepoTransfer represents a pending repo transfer
    type: object
    properties:
      doer:
        $ref: '#/definitions/User'
      recipient:
        $ref: '#/definitions/User'
      teams:
        type: array
        items:
          $ref: '#/definitions/Team'
        x-go-name: Teams
    x-go-package: forgejo.org/modules/structs
responses:
  notFound:
    description: APINotFound is a not found error response
    schema:
      $ref: '#/definitions/APINotFound'
  PackageList:
    description: PackageList
    schema:
      type: array
      items:
        $ref: '#/definitions/Package'
    headers:
      X-Total-Count:
        type: integer
        format: int64
        description: The total number of packages
  Package:
    description: Package
    schema:
      $ref: '#/definitions/Package'
  empty:
    description: APIEmpty is an empty response
  PackageFileList:
    description: PackageFileList
    schema:
      type: array
      items:
        $ref: '#/definitions/PackageFile'
securityDefinitions:
  AuthorizationHeaderToken:
    description: API tokens must be prepended with "token" followed by a space.
    type: apiKey
    name: Authorization
    in: header
  BasicAuth:
    type: basic
  SudoHeader:
    description: Sudo API request as the user provided as the key. Admin privileges are required.
    type: apiKey
    name: Sudo
    in: header
  SudoParam:
    description: Sudo API request as the user provided as the key. Admin privileges are required.
    type: apiKey
    name: sudo
    in: query
  TOTPHeader:
    description: Must be used in combination with BasicAuth if two-factor authentication is enabled.
    type: apiKey
    name: X-FORGEJO-OTP
    in: header