consumes:
  - application/json
produces:
  - application/json
schemes:
  - https
  - http
swagger: '2.0'
info:
  description: This documentation describes the Gitea API.
  title: Gitea API
  license:
    name: MIT
    url: http://opensource.org/licenses/MIT
  version: dev
basePath: https://gitea.com/api/v1
paths:
  /admin/actions/jobs:
    get:
      produces:
        - application/json
      tags:
        - admin
      summary: Lists all jobs
      operationId: listAdminWorkflowJobs
      parameters:
        - type: string
          description: >-
            workflow status (pending, queued, in_progress, failure, success,
            skipped)
          name: status
          in: query
        - 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
        - type: string
          description: sort jobs by attribute. Supported values are "id". Default is "id"
          name: sort
          in: query
        - type: string
          description: >-
            sort order, either "asc" (ascending) or "desc" (descending). Default
            is "asc"
          name: order
          in: query
      responses:
        '200':
          $ref: '#/responses/WorkflowJobsList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /admin/actions/runners:
    get:
      produces:
        - application/json
      tags:
        - admin
      summary: Get all runners
      operationId: getAdminRunners
      parameters:
        - type: boolean
          description: filter by disabled status (true or false)
          name: disabled
          in: query
      responses:
        '200':
          $ref: '#/responses/RunnerList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /admin/actions/runners/registration-token:
    post:
      produces:
        - application/json
      tags:
        - admin
      summary: Get a global actions runner registration token
      operationId: adminCreateRunnerRegistrationToken
      responses:
        '200':
          $ref: '#/responses/RegistrationToken'
  /admin/actions/runners/{runner_id}:
    get:
      produces:
        - application/json
      tags:
        - admin
      summary: Get a global runner
      operationId: getAdminRunner
      parameters:
        - type: string
          description: id of the runner
          name: runner_id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Runner'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - admin
      summary: Delete a global runner
      operationId: deleteAdminRunner
      parameters:
        - type: string
          description: id of the runner
          name: runner_id
          in: path
          required: true
      responses:
        '204':
          description: runner has been deleted
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - admin
      summary: Update a global runner
      operationId: updateAdminRunner
      parameters:
        - type: string
          description: id of the runner
          name: runner_id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditActionRunnerOption'
      responses:
        '200':
          $ref: '#/responses/Runner'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /admin/actions/runs:
    get:
      produces:
        - application/json
      tags:
        - admin
      summary: Lists all runs
      operationId: listAdminWorkflowRuns
      parameters:
        - type: string
          description: workflow event name
          name: event
          in: query
        - type: string
          description: workflow branch
          name: branch
          in: query
        - type: string
          description: >-
            workflow status (pending, queued, in_progress, failure, success,
            skipped)
          name: status
          in: query
        - type: string
          description: triggered by user
          name: actor
          in: query
        - type: string
          description: triggering sha of the workflow run
          name: head_sha
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/WorkflowRunsList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /admin/cron:
    get:
      produces:
        - application/json
      tags:
        - admin
      summary: List cron tasks
      operationId: adminCronList
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/CronList'
        '403':
          $ref: '#/responses/forbidden'
  /admin/cron/{task}:
    post:
      produces:
        - application/json
      tags:
        - admin
      summary: Run cron task
      operationId: adminCronRun
      parameters:
        - type: string
          description: task to run
          name: task
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
  /admin/emails:
    get:
      produces:
        - application/json
      tags:
        - admin
      summary: List all emails
      operationId: adminGetAllEmails
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/EmailList'
        '403':
          $ref: '#/responses/forbidden'
  /admin/emails/search:
    get:
      produces:
        - application/json
      tags:
        - admin
      summary: Search all emails
      operationId: adminSearchEmails
      parameters:
        - type: string
          description: keyword
          name: q
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/EmailList'
        '403':
          $ref: '#/responses/forbidden'
  /admin/hooks:
    get:
      produces:
        - application/json
      tags:
        - admin
      summary: List system's webhooks
      operationId: adminListHooks
      parameters:
        - 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:
            - system
            - default
            - all
          type: string
          default: system
          description: system, default or both kinds of webhooks
          name: type
          in: query
      responses:
        '200':
          $ref: '#/responses/HookList'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - admin
      summary: Create a hook
      operationId: adminCreateHook
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreateHookOption'
      responses:
        '201':
          $ref: '#/responses/Hook'
  /admin/hooks/{id}:
    get:
      produces:
        - application/json
      tags:
        - admin
      summary: Get a hook
      operationId: adminGetHook
      parameters:
        - type: integer
          format: int64
          description: id of the hook to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Hook'
    delete:
      produces:
        - application/json
      tags:
        - admin
      summary: Delete a hook
      operationId: adminDeleteHook
      parameters:
        - type: integer
          format: int64
          description: id of the hook to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - admin
      summary: Update a hook
      operationId: adminEditHook
      parameters:
        - type: integer
          format: int64
          description: id of the hook to update
          name: id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditHookOption'
      responses:
        '200':
          $ref: '#/responses/Hook'
  /admin/orgs:
    get:
      produces:
        - application/json
      tags:
        - admin
      summary: List all organizations
      operationId: adminGetAllOrgs
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/OrganizationList'
        '403':
          $ref: '#/responses/forbidden'
  /admin/unadopted:
    get:
      produces:
        - application/json
      tags:
        - admin
      summary: List unadopted repositories
      operationId: adminUnadoptedList
      parameters:
        - 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
        - type: string
          description: pattern of repositories to search for
          name: pattern
          in: query
      responses:
        '200':
          $ref: '#/responses/StringSlice'
        '403':
          $ref: '#/responses/forbidden'
  /admin/unadopted/{owner}/{repo}:
    post:
      produces:
        - application/json
      tags:
        - admin
      summary: Adopt unadopted files as a repository
      operationId: adminAdoptRepository
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - admin
      summary: Delete unadopted files
      operationId: adminDeleteUnadoptedRepository
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
  /admin/users:
    get:
      produces:
        - application/json
      tags:
        - admin
      summary: Search users according filter conditions
      operationId: adminSearchUsers
      parameters:
        - type: integer
          format: int64
          description: ID of the user's login source to search for
          name: source_id
          in: query
        - type: string
          description: identifier of the user, provided by the external authenticator
          name: login_name
          in: query
        - 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
        - type: string
          description: >-
            sort users by attribute. Supported values are "name", "created",
            "updated" and "id". Default is "name"
          name: sort
          in: query
        - type: string
          description: >-
            sort order, either "asc" (ascending) or "desc" (descending). Default
            is "asc", ignored if "sort" is not specified.
          name: order
          in: query
        - type: string
          description: search term (username, full name, email)
          name: q
          in: query
        - type: string
          description: >-
            visibility filter. Supported values are "public", "limited" and
            "private".
          name: visibility
          in: query
        - type: boolean
          description: filter active users
          name: is_active
          in: query
        - type: boolean
          description: filter admin users
          name: is_admin
          in: query
        - type: boolean
          description: filter restricted users
          name: is_restricted
          in: query
        - type: boolean
          description: filter 2FA enabled users
          name: is_2fa_enabled
          in: query
        - type: boolean
          description: filter login prohibited users
          name: is_prohibit_login
          in: query
      responses:
        '200':
          $ref: '#/responses/UserList'
        '403':
          $ref: '#/responses/forbidden'
        '422':
          $ref: '#/responses/validationError'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - admin
      summary: Create a user
      operationId: adminCreateUser
      parameters:
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateUserOption'
      responses:
        '201':
          $ref: '#/responses/User'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '422':
          $ref: '#/responses/validationError'
  /admin/users/{username}:
    delete:
      produces:
        - application/json
      tags:
        - admin
      summary: Delete a user
      operationId: adminDeleteUser
      parameters:
        - type: string
          description: username of the user to delete
          name: username
          in: path
          required: true
        - type: boolean
          description: purge the user from the system completely
          name: purge
          in: query
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - admin
      summary: Edit an existing user
      operationId: adminEditUser
      parameters:
        - type: string
          description: username of the user whose data is to be edited
          name: username
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditUserOption'
      responses:
        '200':
          $ref: '#/responses/User'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '422':
          $ref: '#/responses/validationError'
  /admin/users/{username}/badges:
    get:
      produces:
        - application/json
      tags:
        - admin
      summary: List a user's badges
      operationId: adminListUserBadges
      parameters:
        - type: string
          description: username of the user whose badges are to be listed
          name: username
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/BadgeList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - admin
      summary: Add a badge to a user
      operationId: adminAddUserBadges
      parameters:
        - type: string
          description: username of the user to whom a badge is to be added
          name: username
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/UserBadgeOption'
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
    delete:
      produces:
        - application/json
      tags:
        - admin
      summary: Remove a badge from a user
      operationId: adminDeleteUserBadges
      parameters:
        - type: string
          description: username of the user whose badge is to be deleted
          name: username
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/UserBadgeOption'
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '422':
          $ref: '#/responses/validationError'
  /admin/users/{username}/keys:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - admin
      summary: Add a public key on behalf of a user
      operationId: adminCreatePublicKey
      parameters:
        - type: string
          description: username of the user who is to receive a public key
          name: username
          in: path
          required: true
        - name: key
          in: body
          schema:
            $ref: '#/definitions/CreateKeyOption'
      responses:
        '201':
          $ref: '#/responses/PublicKey'
        '403':
          $ref: '#/responses/forbidden'
        '422':
          $ref: '#/responses/validationError'
  /admin/users/{username}/keys/{id}:
    delete:
      produces:
        - application/json
      tags:
        - admin
      summary: Delete a user's public key
      operationId: adminDeleteUserPublicKey
      parameters:
        - type: string
          description: username of the user whose public key is to be deleted
          name: username
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the key to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /admin/users/{username}/orgs:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - admin
      summary: Create an organization
      operationId: adminCreateOrg
      parameters:
        - type: string
          description: username of the user who will own the created organization
          name: username
          in: path
          required: true
        - name: organization
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreateOrgOption'
      responses:
        '201':
          $ref: '#/responses/Organization'
        '403':
          $ref: '#/responses/forbidden'
        '422':
          $ref: '#/responses/validationError'
  /admin/users/{username}/rename:
    post:
      produces:
        - application/json
      tags:
        - admin
      summary: Rename a user
      operationId: adminRenameUser
      parameters:
        - type: string
          description: current username of the user
          name: username
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/RenameUserOption'
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '422':
          $ref: '#/responses/validationError'
  /admin/users/{username}/repos:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - admin
      summary: Create a repository on behalf of a user
      operationId: adminCreateRepo
      parameters:
        - type: string
          description: username of the user who will own the created repository
          name: username
          in: path
          required: true
        - name: repository
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreateRepoOption'
      responses:
        '201':
          $ref: '#/responses/Repository'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '409':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
  /gitignore/templates:
    get:
      produces:
        - application/json
      tags:
        - miscellaneous
      summary: Returns a list of all gitignore templates
      operationId: listGitignoresTemplates
      responses:
        '200':
          $ref: '#/responses/GitignoreTemplateList'
  /gitignore/templates/{name}:
    get:
      produces:
        - application/json
      tags:
        - miscellaneous
      summary: Returns information about a gitignore template
      operationId: getGitignoreTemplateInfo
      parameters:
        - type: string
          description: name of the template
          name: name
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/GitignoreTemplateInfo'
        '404':
          $ref: '#/responses/notFound'
  /label/templates:
    get:
      produces:
        - application/json
      tags:
        - miscellaneous
      summary: Returns a list of all label templates
      operationId: listLabelTemplates
      responses:
        '200':
          $ref: '#/responses/LabelTemplateList'
  /label/templates/{name}:
    get:
      produces:
        - application/json
      tags:
        - miscellaneous
      summary: Returns all labels in a template
      operationId: getLabelTemplateInfo
      parameters:
        - type: string
          description: name of the template
          name: name
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/LabelTemplateInfo'
        '404':
          $ref: '#/responses/notFound'
  /licenses:
    get:
      produces:
        - application/json
      tags:
        - miscellaneous
      summary: Returns a list of all license templates
      operationId: listLicenseTemplates
      responses:
        '200':
          $ref: '#/responses/LicenseTemplateList'
  /licenses/{name}:
    get:
      produces:
        - application/json
      tags:
        - miscellaneous
      summary: Returns information about a license template
      operationId: getLicenseTemplateInfo
      parameters:
        - type: string
          description: name of the license
          name: name
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/LicenseTemplateInfo'
        '404':
          $ref: '#/responses/notFound'
  /markdown:
    post:
      consumes:
        - application/json
      produces:
        - text/html
      tags:
        - miscellaneous
      summary: Render a markdown document as HTML
      operationId: renderMarkdown
      parameters:
        - name: body
          in: body
          schema:
            $ref: '#/definitions/MarkdownOption'
      responses:
        '200':
          $ref: '#/responses/MarkdownRender'
        '422':
          $ref: '#/responses/validationError'
  /markdown/raw:
    post:
      consumes:
        - text/plain
      produces:
        - text/html
      tags:
        - miscellaneous
      summary: Render raw markdown as HTML
      operationId: renderMarkdownRaw
      parameters:
        - description: Request body to render
          name: body
          in: body
          required: true
          schema:
            type: string
      responses:
        '200':
          $ref: '#/responses/MarkdownRender'
        '422':
          $ref: '#/responses/validationError'
  /markup:
    post:
      consumes:
        - application/json
      produces:
        - text/html
      tags:
        - miscellaneous
      summary: Render a markup document as HTML
      operationId: renderMarkup
      parameters:
        - name: body
          in: body
          schema:
            $ref: '#/definitions/MarkupOption'
      responses:
        '200':
          $ref: '#/responses/MarkupRender'
        '422':
          $ref: '#/responses/validationError'
  /notifications:
    get:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - notification
      summary: List users's notification threads
      operationId: notifyGetList
      parameters:
        - type: boolean
          description: If true, show notifications marked as read. Default value is false
          name: all
          in: query
        - type: array
          items:
            type: string
          collectionFormat: multi
          description: >-
            Show notifications with the provided status types. Options are:
            unread, read and/or pinned. Defaults to unread & pinned.
          name: status-types
          in: query
        - type: array
          items:
            enum:
              - issue
              - pull
              - commit
              - repository
            type: string
          collectionFormat: multi
          description: filter notifications by subject type
          name: subject-type
          in: query
        - type: string
          format: date-time
          description: >-
            Only show notifications updated after the given time. This is a
            timestamp in RFC 3339 format
          name: since
          in: query
        - type: string
          format: date-time
          description: >-
            Only show notifications updated before the given time. This is a
            timestamp in RFC 3339 format
          name: before
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/NotificationThreadList'
    put:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - notification
      summary: Mark notification threads as read, pinned or unread
      operationId: notifyReadList
      parameters:
        - type: string
          format: date-time
          description: >-
            Describes the last point that notifications were checked. Anything
            updated since this time will not be updated.
          name: last_read_at
          in: query
        - type: string
          description: If true, mark all notifications on this repo. Default value is false
          name: all
          in: query
        - type: array
          items:
            type: string
          collectionFormat: multi
          description: >-
            Mark notifications with the provided status types. Options are:
            unread, read and/or pinned. Defaults to unread.
          name: status-types
          in: query
        - type: string
          description: Status to mark notifications as, Defaults to read.
          name: to-status
          in: query
      responses:
        '205':
          $ref: '#/responses/NotificationThreadList'
  /notifications/new:
    get:
      tags:
        - notification
      summary: Check if unread notifications exist
      operationId: notifyNewAvailable
      responses:
        '200':
          $ref: '#/responses/NotificationCount'
  /notifications/threads/{id}:
    get:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - notification
      summary: Get notification thread by ID
      operationId: notifyGetThread
      parameters:
        - type: string
          description: id of notification thread
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/NotificationThread'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - notification
      summary: Mark notification thread as read by ID
      operationId: notifyReadThread
      parameters:
        - type: string
          description: id of notification thread
          name: id
          in: path
          required: true
        - type: string
          default: read
          description: Status to mark notifications as
          name: to-status
          in: query
      responses:
        '205':
          $ref: '#/responses/NotificationThread'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /org/{org}/repos:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Create a repository in an organization
      operationId: createOrgRepoDeprecated
      deprecated: true
      parameters:
        - type: string
          description: name of organization
          name: org
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateRepoOption'
      responses:
        '201':
          $ref: '#/responses/Repository'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /orgs:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: Get list of organizations
      operationId: orgGetAll
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/OrganizationList'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Create an organization
      operationId: orgCreate
      parameters:
        - name: organization
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreateOrgOption'
      responses:
        '201':
          $ref: '#/responses/Organization'
        '403':
          $ref: '#/responses/forbidden'
        '422':
          $ref: '#/responses/validationError'
  /orgs/{org}:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: Get an organization
      operationId: orgGet
      parameters:
        - type: string
          description: name of the organization to get
          name: org
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Organization'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - organization
      summary: Delete an organization
      operationId: orgDelete
      parameters:
        - type: string
          description: organization that is to be deleted
          name: org
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Edit an organization
      operationId: orgEdit
      parameters:
        - type: string
          description: name of the organization to edit
          name: org
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/EditOrgOption'
      responses:
        '200':
          $ref: '#/responses/Organization'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/actions/jobs:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: Get org-level workflow jobs
      operationId: getOrgWorkflowJobs
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: >-
            workflow status (pending, queued, in_progress, failure, success,
            skipped)
          name: status
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/WorkflowJobsList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/actions/runners:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: Get org-level runners
      operationId: getOrgRunners
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: boolean
          description: filter by disabled status (true or false)
          name: disabled
          in: query
      responses:
        '200':
          $ref: '#/responses/RunnerList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/actions/runners/registration-token:
    post:
      produces:
        - application/json
      tags:
        - organization
      summary: Get an organization's actions runner registration token
      operationId: orgCreateRunnerRegistrationToken
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/RegistrationToken'
  /orgs/{org}/actions/runners/{runner_id}:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: Get an org-level runner
      operationId: getOrgRunner
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: id of the runner
          name: runner_id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Runner'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - organization
      summary: Delete an org-level runner
      operationId: deleteOrgRunner
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: id of the runner
          name: runner_id
          in: path
          required: true
      responses:
        '204':
          description: runner has been deleted
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Update an org-level runner
      operationId: updateOrgRunner
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: id of the runner
          name: runner_id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditActionRunnerOption'
      responses:
        '200':
          $ref: '#/responses/Runner'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /orgs/{org}/actions/runs:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: Get org-level workflow runs
      operationId: getOrgWorkflowRuns
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: workflow event name
          name: event
          in: query
        - type: string
          description: workflow branch
          name: branch
          in: query
        - type: string
          description: >-
            workflow status (pending, queued, in_progress, failure, success,
            skipped)
          name: status
          in: query
        - type: string
          description: triggered by user
          name: actor
          in: query
        - type: string
          description: triggering sha of the workflow run
          name: head_sha
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/WorkflowRunsList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/actions/secrets:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List an organization's actions secrets
      operationId: orgListActionsSecrets
      parameters:
        - type: string
          description: name of the organization
          name: org
          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
      responses:
        '200':
          $ref: '#/responses/SecretList'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/actions/secrets/{secretname}:
    put:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Create or Update a secret value in an organization
      operationId: updateOrgSecret
      parameters:
        - type: string
          description: name of organization
          name: org
          in: path
          required: true
        - type: string
          description: name of the secret
          name: secretname
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateOrUpdateSecretOption'
      responses:
        '201':
          description: response when creating a secret
        '204':
          description: response when updating a secret
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    delete:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Delete a secret in an organization
      operationId: deleteOrgSecret
      parameters:
        - type: string
          description: name of organization
          name: org
          in: path
          required: true
        - type: string
          description: name of the secret
          name: secretname
          in: path
          required: true
      responses:
        '204':
          description: delete one secret of the organization
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/actions/variables:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: Get an org-level variables list
      operationId: getOrgVariablesList
      parameters:
        - type: string
          description: name of the organization
          name: org
          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
      responses:
        '200':
          $ref: '#/responses/VariableList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/actions/variables/{variablename}:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: Get an org-level variable
      operationId: getOrgVariable
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: name of the variable
          name: variablename
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/ActionVariable'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    put:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Update an org-level variable
      operationId: updateOrgVariable
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: name of the variable
          name: variablename
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/UpdateVariableOption'
      responses:
        '201':
          description: response when updating an org-level variable
        '204':
          description: response when updating an org-level variable
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Create an org-level variable
      operationId: createOrgVariable
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: name of the variable
          name: variablename
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateVariableOption'
      responses:
        '201':
          description: successfully created the org-level variable
        '400':
          $ref: '#/responses/error'
        '409':
          description: variable name already exists.
        '500':
          $ref: '#/responses/error'
    delete:
      produces:
        - application/json
      tags:
        - organization
      summary: Delete an org-level variable
      operationId: deleteOrgVariable
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: name of the variable
          name: variablename
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/ActionVariable'
        '201':
          description: response when deleting a variable
        '204':
          description: response when deleting a variable
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/activities/feeds:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List an organization's activity feeds
      operationId: orgListActivityFeeds
      parameters:
        - type: string
          description: name of the org
          name: org
          in: path
          required: true
        - type: string
          format: date
          description: the date of the activities to be found
          name: date
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/ActivityFeedsList'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/avatar:
    post:
      produces:
        - application/json
      tags:
        - organization
      summary: Update Avatar
      operationId: orgUpdateAvatar
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/UpdateUserAvatarOption'
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - organization
      summary: Delete Avatar
      operationId: orgDeleteAvatar
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/blocks:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List users blocked by the organization
      operationId: organizationListBlocks
      parameters:
        - type: string
          description: name of the organization
          name: org
          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
      responses:
        '200':
          $ref: '#/responses/UserList'
  /orgs/{org}/blocks/{username}:
    get:
      tags:
        - organization
      summary: Check if a user is blocked by the organization
      operationId: organizationCheckUserBlock
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: username of the user to check
          name: username
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    put:
      tags:
        - organization
      summary: Block a user
      operationId: organizationBlockUser
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: username of the user to block
          name: username
          in: path
          required: true
        - type: string
          description: optional note for the block
          name: note
          in: query
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
    delete:
      tags:
        - organization
      summary: Unblock a user
      operationId: organizationUnblockUser
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: username of the user to unblock
          name: username
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /orgs/{org}/hooks:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List an organization's webhooks
      operationId: orgListHooks
      parameters:
        - type: string
          description: name of the organization
          name: org
          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
      responses:
        '200':
          $ref: '#/responses/HookList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Create a hook
      operationId: orgCreateHook
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreateHookOption'
      responses:
        '201':
          $ref: '#/responses/Hook'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/hooks/{id}:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: Get a hook
      operationId: orgGetHook
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the hook to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Hook'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - organization
      summary: Delete a hook
      operationId: orgDeleteHook
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the hook to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Update a hook
      operationId: orgEditHook
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the hook to update
          name: id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditHookOption'
      responses:
        '200':
          $ref: '#/responses/Hook'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/labels:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List an organization's labels
      operationId: orgListLabels
      parameters:
        - type: string
          description: name of the organization
          name: org
          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
      responses:
        '200':
          $ref: '#/responses/LabelList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Create a label for an organization
      operationId: orgCreateLabel
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateLabelOption'
      responses:
        '201':
          $ref: '#/responses/Label'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /orgs/{org}/labels/{id}:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: Get a single label
      operationId: orgGetLabel
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the label to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Label'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - organization
      summary: Delete a label
      operationId: orgDeleteLabel
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the label to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Update a label
      operationId: orgEditLabel
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the label to edit
          name: id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditLabelOption'
      responses:
        '200':
          $ref: '#/responses/Label'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /orgs/{org}/members:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List an organization's members
      operationId: orgListMembers
      parameters:
        - type: string
          description: name of the organization
          name: org
          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
      responses:
        '200':
          $ref: '#/responses/UserList'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/members/{username}:
    get:
      tags:
        - organization
      summary: Check if a user is a member of an organization
      operationId: orgIsMember
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: username of the user to check for an organization membership
          name: username
          in: path
          required: true
      responses:
        '204':
          description: user is a member
        '303':
          description: redirection to /orgs/{org}/public_members/{username}
        '404':
          description: user is not a member
    delete:
      produces:
        - application/json
      tags:
        - organization
      summary: Remove a member from an organization
      operationId: orgDeleteMember
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: username of the user to remove from the organization
          name: username
          in: path
          required: true
      responses:
        '204':
          description: member removed
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/public_members:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List an organization's public members
      operationId: orgListPublicMembers
      parameters:
        - type: string
          description: name of the organization
          name: org
          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
      responses:
        '200':
          $ref: '#/responses/UserList'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/public_members/{username}:
    get:
      tags:
        - organization
      summary: Check if a user is a public member of an organization
      operationId: orgIsPublicMember
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: username of the user to check for a public organization membership
          name: username
          in: path
          required: true
      responses:
        '204':
          description: user is a public member
        '404':
          description: user is not a public member
    put:
      produces:
        - application/json
      tags:
        - organization
      summary: Publicize a user's membership
      operationId: orgPublicizeMember
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: username of the user whose membership is to be publicized
          name: username
          in: path
          required: true
      responses:
        '204':
          description: membership publicized
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - organization
      summary: Conceal a user's membership
      operationId: orgConcealMember
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: username of the user whose membership is to be concealed
          name: username
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/rename:
    post:
      produces:
        - application/json
      tags:
        - organization
      summary: Rename an organization
      operationId: renameOrg
      parameters:
        - type: string
          description: existing org name
          name: org
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/RenameOrgOption'
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '422':
          $ref: '#/responses/validationError'
  /orgs/{org}/repos:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List an organization's repos
      operationId: orgListRepos
      parameters:
        - type: string
          description: name of the organization
          name: org
          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
      responses:
        '200':
          $ref: '#/responses/RepositoryList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Create a repository in an organization
      operationId: createOrgRepo
      parameters:
        - type: string
          description: name of organization
          name: org
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateRepoOption'
      responses:
        '201':
          $ref: '#/responses/Repository'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - organization
      summary: Delete all repositories in an organization
      operationId: orgDeleteRepos
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
      responses:
        '202':
          $ref: '#/responses/empty'
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /orgs/{org}/teams:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List an organization's teams
      operationId: orgListTeams
      parameters:
        - type: string
          description: name of the organization
          name: org
          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
      responses:
        '200':
          $ref: '#/responses/TeamList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Create a team
      operationId: orgCreateTeam
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateTeamOption'
      responses:
        '201':
          $ref: '#/responses/Team'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /orgs/{org}/teams/search:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: Search for teams within an organization
      operationId: teamSearch
      parameters:
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
        - type: string
          description: keywords to search
          name: q
          in: query
        - type: boolean
          description: include search within team description (defaults to true)
          name: include_desc
          in: query
        - 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
      responses:
        '200':
          description: SearchResults of a successful search
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/Team'
              ok:
                type: boolean
        '404':
          $ref: '#/responses/notFound'
  /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
            - terraform
            - 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}:
    get:
      produces:
        - application/json
      tags:
        - package
      summary: Gets all versions of a package
      operationId: listPackageVersions
      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: 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
      responses:
        '200':
          $ref: '#/responses/PackageList'
        '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
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
  /packages/{owner}/{type}/{name}/-/latest:
    get:
      produces:
        - application/json
      tags:
        - package
      summary: Gets the latest version of a package
      operationId: getLatestPackageVersion
      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:
        '200':
          $ref: '#/responses/Package'
        '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 version
      operationId: deletePackageVersion
      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'
  /repos/issues/search:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: Search for issues across the repositories that the user has access to
      operationId: issueSearchIssues
      parameters:
        - enum:
            - open
            - closed
            - all
          type: string
          default: open
          description: State of the issue
          name: state
          in: query
        - type: string
          description: >-
            Comma-separated list of label names. Fetch only issues that have any
            of these labels. Non existent labels are discarded.
          name: labels
          in: query
        - type: string
          description: >-
            Comma-separated list of milestone names. Fetch only issues that have
            any of these milestones. Non existent milestones are discarded.
          name: milestones
          in: query
        - type: string
          description: Search string
          name: q
          in: query
        - enum:
            - issues
            - pulls
          type: string
          description: Filter by issue type
          name: type
          in: query
        - type: string
          format: date-time
          description: Only show issues updated after the given time (RFC 3339 format)
          name: since
          in: query
        - type: string
          format: date-time
          description: Only show issues updated before the given time (RFC 3339 format)
          name: before
          in: query
        - type: boolean
          default: false
          description: Filter issues or pulls assigned to the authenticated user
          name: assigned
          in: query
        - type: boolean
          default: false
          description: Filter issues or pulls created by the authenticated user
          name: created
          in: query
        - type: boolean
          default: false
          description: Filter issues or pulls mentioning the authenticated user
          name: mentioned
          in: query
        - type: boolean
          default: false
          description: >-
            Filter pull requests where the authenticated user's review was
            requested
          name: review_requested
          in: query
        - type: boolean
          default: false
          description: Filter pull requests reviewed by the authenticated user
          name: reviewed
          in: query
        - type: string
          description: Filter by repository owner
          name: owner
          in: query
        - type: string
          description: Only show items which were created by the given user
          name: created_by
          in: query
        - type: string
          description: Filter by team (requires organization owner parameter)
          name: team
          in: query
        - minimum: 1
          type: integer
          default: 1
          description: Page number of results to return (1-based)
          name: page
          in: query
        - minimum: 0
          type: integer
          description: Number of items per page
          name: limit
          in: query
      responses:
        '200':
          $ref: '#/responses/IssueList'
        '400':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
  /repos/migrate:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Migrate a remote git repository
      operationId: repoMigrate
      parameters:
        - name: body
          in: body
          schema:
            $ref: '#/definitions/MigrateRepoOptions'
      responses:
        '201':
          $ref: '#/responses/Repository'
        '403':
          $ref: '#/responses/forbidden'
        '409':
          description: The repository with the same name already exists.
        '422':
          $ref: '#/responses/validationError'
  /repos/search:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Search for repositories
      operationId: repoSearch
      parameters:
        - type: string
          description: keyword
          name: q
          in: query
        - type: boolean
          description: Limit search to repositories with keyword as topic
          name: topic
          in: query
        - type: boolean
          description: include search of keyword within repository description
          name: includeDesc
          in: query
        - type: integer
          format: int64
          description: >-
            search only for repos that the user with the given id owns or
            contributes to
          name: uid
          in: query
        - type: integer
          format: int64
          description: repo owner to prioritize in the results
          name: priority_owner_id
          in: query
        - type: integer
          format: int64
          description: search only for repos that belong to the given team id
          name: team_id
          in: query
        - type: integer
          format: int64
          description: search only for repos that the user with the given id has starred
          name: starredBy
          in: query
        - type: boolean
          description: >-
            include private repositories this user has access to (defaults to
            true)
          name: private
          in: query
        - type: boolean
          description: show only pubic, private or all repositories (defaults to all)
          name: is_private
          in: query
        - type: boolean
          description: >-
            include template repositories this user has access to (defaults to
            true)
          name: template
          in: query
        - type: boolean
          description: >-
            show only archived, non-archived or all repositories (defaults to
            all)
          name: archived
          in: query
        - type: string
          description: >-
            type of repository to search for. Supported values are "fork",
            "source", "mirror" and "collaborative"
          name: mode
          in: query
        - type: boolean
          description: if `uid` is given, search only for repos that the user owns
          name: exclusive
          in: query
        - type: string
          description: >-
            sort repos by attribute. Supported values are "alpha", "created",
            "updated", "size", "git_size", "lfs_size", "stars", "forks" and
            "id". Default is "alpha"
          name: sort
          in: query
        - type: string
          description: >-
            sort order, either "asc" (ascending) or "desc" (descending). Default
            is "asc", ignored if "sort" is not specified.
          name: order
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/SearchResults'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a repository
      operationId: repoGet
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Repository'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a repository
      operationId: repoDelete
      parameters:
        - type: string
          description: owner of the repo to delete
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo to delete
          name: repo
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    patch:
      produces:
        - application/json
      tags:
        - repository
      summary: >-
        Edit a repository's properties. Only fields that are set will be
        changed.
      operationId: repoEdit
      parameters:
        - type: string
          description: owner of the repo to edit
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo to edit
          name: repo
          in: path
          required: true
        - description: Properties of a repo that you can edit
          name: body
          in: body
          schema:
            $ref: '#/definitions/EditRepoOption'
      responses:
        '200':
          $ref: '#/responses/Repository'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/actions/artifacts:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Lists all artifacts for a repository
      operationId: getArtifacts
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: string
          description: name of the artifact
          name: name
          in: query
      responses:
        '200':
          $ref: '#/responses/ArtifactsList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/artifacts/{artifact_id}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Gets a specific artifact for a workflow run
      operationId: getArtifact
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: string
          description: id of the artifact
          name: artifact_id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Artifact'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Deletes a specific artifact for a workflow run
      operationId: deleteArtifact
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: string
          description: id of the artifact
          name: artifact_id
          in: path
          required: true
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/zip:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Downloads a specific artifact for a workflow run redirects to blob url
      operationId: downloadArtifact
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: string
          description: id of the artifact
          name: artifact_id
          in: path
          required: true
      responses:
        '302':
          description: redirect to the blob download
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/jobs:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Lists all jobs for a repository
      operationId: listWorkflowJobs
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: string
          description: >-
            workflow status (pending, queued, in_progress, failure, success,
            skipped)
          name: status
          in: query
        - 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
        - type: string
          description: sort jobs by attribute. Supported values are "id". Default is "id"
          name: sort
          in: query
        - type: string
          description: >-
            sort order, either "asc" (ascending) or "desc" (descending). Default
            is "asc"
          name: order
          in: query
      responses:
        '200':
          $ref: '#/responses/WorkflowJobsList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/actions/jobs/{job_id}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Gets a specific workflow job for a workflow run
      operationId: getWorkflowJob
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: string
          description: id of the job
          name: job_id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/WorkflowJob'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/jobs/{job_id}/logs:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Downloads the job logs for a workflow run
      operationId: downloadActionsRunJobLogs
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: integer
          description: id of the job
          name: job_id
          in: path
          required: true
      responses:
        '200':
          description: output blob content
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/runners:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get repo-level runners
      operationId: getRepoRunners
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: boolean
          description: filter by disabled status (true or false)
          name: disabled
          in: query
      responses:
        '200':
          $ref: '#/responses/RunnerList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/runners/registration-token:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a repository's actions runner registration token
      operationId: repoCreateRunnerRegistrationToken
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/RegistrationToken'
  /repos/{owner}/{repo}/actions/runners/{runner_id}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a repo-level runner
      operationId: getRepoRunner
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: id of the runner
          name: runner_id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Runner'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a repo-level runner
      operationId: deleteRepoRunner
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: id of the runner
          name: runner_id
          in: path
          required: true
      responses:
        '204':
          description: runner has been deleted
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Update a repo-level runner
      operationId: updateRepoRunner
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: id of the runner
          name: runner_id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditActionRunnerOption'
      responses:
        '200':
          $ref: '#/responses/Runner'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/actions/runs:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Lists all runs for a repository run
      operationId: getWorkflowRuns
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: string
          description: workflow event name
          name: event
          in: query
        - type: string
          description: workflow branch
          name: branch
          in: query
        - type: string
          description: >-
            workflow status (pending, queued, in_progress, failure, success,
            skipped)
          name: status
          in: query
        - type: string
          description: triggered by user
          name: actor
          in: query
        - type: string
          description: triggering sha of the workflow run
          name: head_sha
          in: query
        - type: boolean
          description: if true, the `pull_requests` field on each returned run is emptied
          name: exclude_pull_requests
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/WorkflowRunsList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/runs/{run}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Gets a specific workflow run
      operationId: GetWorkflowRun
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: integer
          description: id of the run
          name: run
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/WorkflowRun'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a workflow run
      operationId: deleteActionRun
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: integer
          description: runid of the workflow run
          name: run
          in: path
          required: true
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/runs/{run}/artifacts:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Lists all artifacts for a repository run
      operationId: getArtifactsOfRun
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: integer
          description: runid of the workflow run
          name: run
          in: path
          required: true
        - type: string
          description: name of the artifact
          name: name
          in: query
      responses:
        '200':
          $ref: '#/responses/ArtifactsList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/runs/{run}/attempts/{attempt}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Gets a specific workflow run attempt
      operationId: getWorkflowRunAttempt
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: integer
          description: id of the run
          name: run
          in: path
          required: true
        - type: integer
          description: logical attempt number of the run
          name: attempt
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/WorkflowRun'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/runs/{run}/attempts/{attempt}/jobs:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Lists all jobs for a workflow run attempt
      operationId: listWorkflowRunAttemptJobs
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: integer
          description: id of the workflow run
          name: run
          in: path
          required: true
        - type: integer
          description: logical attempt number of the run
          name: attempt
          in: path
          required: true
        - type: string
          description: >-
            workflow status (pending, queued, in_progress, failure, success,
            skipped)
          name: status
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/WorkflowJobsList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/runs/{run}/jobs:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Lists all jobs for a workflow run
      operationId: listWorkflowRunJobs
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: integer
          description: runid of the workflow run
          name: run
          in: path
          required: true
        - type: string
          description: >-
            workflow status (pending, queued, in_progress, failure, success,
            skipped)
          name: status
          in: query
        - 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
        - type: string
          description: sort jobs by attribute. Supported values are "id". Default is "id"
          name: sort
          in: query
        - type: string
          description: >-
            sort order, either "asc" (ascending) or "desc" (descending). Default
            is "asc"
          name: order
          in: query
      responses:
        '200':
          $ref: '#/responses/WorkflowJobsList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/actions/runs/{run}/jobs/{job_id}/rerun:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Reruns a specific workflow job in a run
      operationId: rerunWorkflowJob
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: integer
          description: id of the run
          name: run
          in: path
          required: true
        - type: integer
          description: id of the job
          name: job_id
          in: path
          required: true
      responses:
        '201':
          $ref: '#/responses/WorkflowJob'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '409':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/actions/runs/{run}/rerun:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Reruns an entire workflow run
      operationId: rerunWorkflowRun
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: integer
          description: id of the run
          name: run
          in: path
          required: true
      responses:
        '201':
          $ref: '#/responses/WorkflowRun'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '409':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/actions/runs/{run}/rerun-failed-jobs:
    post:
      tags:
        - repository
      summary: Reruns all failed jobs in a workflow run
      operationId: rerunFailedWorkflowRun
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: integer
          description: id of the run
          name: run
          in: path
          required: true
      responses:
        '201':
          $ref: '#/responses/empty'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '409':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/actions/secrets:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List an repo's actions secrets
      operationId: repoListActionsSecrets
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          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
      responses:
        '200':
          $ref: '#/responses/SecretList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/secrets/{secretname}:
    put:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Create or Update a secret value in a repository
      operationId: updateRepoSecret
      parameters:
        - type: string
          description: owner of the repository
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: string
          description: name of the secret
          name: secretname
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateOrUpdateSecretOption'
      responses:
        '201':
          description: response when creating a secret
        '204':
          description: response when updating a secret
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    delete:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a secret in a repository
      operationId: deleteRepoSecret
      parameters:
        - type: string
          description: owner of the repository
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: string
          description: name of the secret
          name: secretname
          in: path
          required: true
      responses:
        '204':
          description: delete one secret of the repository
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/tasks:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repository's action tasks
      operationId: ListActionTasks
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          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, default maximum page size is 50
          name: limit
          in: query
      responses:
        '200':
          $ref: '#/responses/TasksList'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '409':
          $ref: '#/responses/conflict'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/actions/variables:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get repo-level variables list
      operationId: getRepoVariablesList
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          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
      responses:
        '200':
          $ref: '#/responses/VariableList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/variables/{variablename}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a repo-level variable
      operationId: getRepoVariable
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: string
          description: name of the variable
          name: variablename
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/ActionVariable'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    put:
      produces:
        - application/json
      tags:
        - repository
      summary: Update a repo-level variable
      operationId: updateRepoVariable
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: string
          description: name of the variable
          name: variablename
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/UpdateVariableOption'
      responses:
        '201':
          description: response when updating a repo-level variable
        '204':
          description: response when updating a repo-level variable
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Create a repo-level variable
      operationId: createRepoVariable
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: string
          description: name of the variable
          name: variablename
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateVariableOption'
      responses:
        '201':
          description: response when creating a repo-level variable
        '400':
          $ref: '#/responses/error'
        '409':
          description: variable name already exists.
        '500':
          $ref: '#/responses/error'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a repo-level variable
      operationId: deleteRepoVariable
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repository
          name: repo
          in: path
          required: true
        - type: string
          description: name of the variable
          name: variablename
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/ActionVariable'
        '201':
          description: response when deleting a variable
        '204':
          description: response when deleting a variable
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/actions/workflows:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List repository workflows
      operationId: ActionsListRepositoryWorkflows
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/ActionWorkflowList'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
        '500':
          $ref: '#/responses/error'
  /repos/{owner}/{repo}/actions/workflows/{workflow_id}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a workflow
      operationId: ActionsGetWorkflow
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: id of the workflow
          name: workflow_id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/ActionWorkflow'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
        '500':
          $ref: '#/responses/error'
  /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable:
    put:
      produces:
        - application/json
      tags:
        - repository
      summary: Disable a workflow
      operationId: ActionsDisableWorkflow
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: id of the workflow
          name: workflow_id
          in: path
          required: true
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Create a workflow dispatch event
      operationId: ActionsDispatchWorkflow
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: id of the workflow
          name: workflow_id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateActionWorkflowDispatch'
        - type: boolean
          description: Whether the response should include the workflow run ID and URLs.
          name: return_run_details
          in: query
        - type: integer
          format: int64
          description: >-
            For a scoped workflow, the ID of the source repository providing it;
            omit or 0 for a repo-level workflow.
          name: scoped_workflow_source_repo_id
          in: query
      responses:
        '200':
          $ref: '#/responses/RunDetails'
        '204':
          description: No Content, if return_run_details is missing or false
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable:
    put:
      produces:
        - application/json
      tags:
        - repository
      summary: Enable a workflow
      operationId: ActionsEnableWorkflow
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: id of the workflow
          name: workflow_id
          in: path
          required: true
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '409':
          $ref: '#/responses/conflict'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List runs for a workflow
      operationId: ActionsListWorkflowRuns
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: >-
            id of the workflow, must be the workflow file name (e.g.
            `build.yml`)
          name: workflow_id
          in: path
          required: true
        - type: string
          description: workflow event name
          name: event
          in: query
        - type: string
          description: workflow branch
          name: branch
          in: query
        - type: string
          description: >-
            workflow status (pending, queued, in_progress, failure, success,
            skipped)
          name: status
          in: query
        - type: string
          description: triggered by user
          name: actor
          in: query
        - type: string
          description: triggering sha of the workflow run
          name: head_sha
          in: query
        - type: boolean
          description: if true, the `pull_requests` field on each returned run is emptied
          name: exclude_pull_requests
          in: query
        - type: integer
          format: int64
          description: >-
            For a scoped workflow, the ID of the source repository providing it;
            omit or 0 for a repo-level workflow.
          name: scoped_workflow_source_repo_id
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/WorkflowRunsList'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/activities/feeds:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repository's activity feeds
      operationId: repoListActivityFeeds
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          format: date
          description: the date of the activities to be found
          name: date
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/ActivityFeedsList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/archive/{archive}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get an archive of a repository
      operationId: repoGetArchive
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: >-
            the git reference for download with attached archive format (e.g.
            master.zip)
          name: archive
          in: path
          required: true
        - type: array
          items:
            type: string
          collectionFormat: multi
          description: subpath of the repository to download
          name: path
          in: query
      responses:
        '200':
          description: success
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/assignees:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Return all users that have write access and can be assigned to issues
      operationId: repoGetAssignees
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/UserList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/assignees/{assignee}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Check if a user can be assigned to issues in a repository
      operationId: repoCheckAssignee
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: username of the user to check for being an assignee
          name: assignee
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/avatar:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Update avatar
      operationId: repoUpdateAvatar
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/UpdateRepoAvatarOption'
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete avatar
      operationId: repoDeleteAvatar
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/branch_protections:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List branch protections for a repository
      operationId: repoListBranchProtection
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/BranchProtectionList'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Create a branch protections for a repository
      operationId: repoCreateBranchProtection
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateBranchProtectionOption'
      responses:
        '201':
          $ref: '#/responses/BranchProtection'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/branch_protections/priority:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Update the priorities of branch protections for a repository.
      operationId: repoUpdateBranchProtectionPriories
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/UpdateBranchProtectionPriories'
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/branch_protections/{name}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a specific branch protection for the repository
      operationId: repoGetBranchProtection
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of protected branch
          name: name
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/BranchProtection'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a specific branch protection for the repository
      operationId: repoDeleteBranchProtection
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of protected branch
          name: name
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: >-
        Edit a branch protections for a repository. Only fields that are set
        will be changed
      operationId: repoEditBranchProtection
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of protected branch
          name: name
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditBranchProtectionOption'
      responses:
        '200':
          $ref: '#/responses/BranchProtection'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/branches:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repository's branches
      operationId: repoListBranches
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          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
        - type: string
          description: branch name substring to filter by
          name: q
          in: query
      responses:
        '200':
          $ref: '#/responses/BranchList'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Create a branch
      operationId: repoCreateBranch
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateBranchRepoOption'
      responses:
        '201':
          $ref: '#/responses/Branch'
        '403':
          description: The branch is archived or a mirror.
        '404':
          description: The old branch does not exist.
        '409':
          description: The branch with the same name already exists.
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/branches/{branch}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: >-
        Retrieve a specific branch from a repository, including its effective
        branch protection
      operationId: repoGetBranch
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: branch to get
          name: branch
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Branch'
        '404':
          $ref: '#/responses/notFound'
    put:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Update a branch reference to a new commit
      operationId: repoUpdateBranch
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of the branch
          name: branch
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/UpdateBranchRepoOption'
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '409':
          $ref: '#/responses/conflict'
        '422':
          $ref: '#/responses/validationError'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a specific branch from a repository
      operationId: repoDeleteBranch
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: branch to delete
          name: branch
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
        '423':
          $ref: '#/responses/repoArchivedError'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Rename a branch
      operationId: repoRenameBranch
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of the branch
          name: branch
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/RenameBranchRepoOption'
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/collaborators:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repository's collaborators
      operationId: repoListCollaborators
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          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
      responses:
        '200':
          $ref: '#/responses/UserList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/collaborators/{collaborator}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Check if a user is a collaborator of a repository
      operationId: repoCheckCollaborator
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: username of the user to check for being a collaborator
          name: collaborator
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
    put:
      produces:
        - application/json
      tags:
        - repository
      summary: Add or Update a collaborator to a repository
      operationId: repoAddCollaborator
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: username of the user to add or update as a collaborator
          name: collaborator
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/AddCollaboratorOption'
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a collaborator from a repository
      operationId: repoDeleteCollaborator
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: username of the collaborator to delete
          name: collaborator
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/collaborators/{collaborator}/permission:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get repository permissions for a user
      operationId: repoGetRepoPermissions
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: username of the collaborator whose permissions are to be obtained
          name: collaborator
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/RepoCollaboratorPermission'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/commits:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a list of all commits from a repository
      operationId: repoGetAllCommits
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: SHA or branch to start listing commits from (usually 'master')
          name: sha
          in: query
        - type: string
          description: filepath of a file/dir
          name: path
          in: query
        - type: string
          format: date-time
          description: Only commits after this date will be returned (ISO 8601 format)
          name: since
          in: query
        - type: string
          format: date-time
          description: Only commits before this date will be returned (ISO 8601 format)
          name: until
          in: query
        - type: boolean
          description: >-
            include diff stats for every commit (disable for speedup, default
            'true')
          name: stat
          in: query
        - type: boolean
          description: >-
            include verification for every commit (disable for speedup, default
            'true')
          name: verification
          in: query
        - type: boolean
          description: >-
            include a list of affected files for every commit (disable for
            speedup, default 'true')
          name: files
          in: query
        - type: integer
          description: page number of results to return (1-based)
          name: page
          in: query
        - type: integer
          description: page size of results (ignored if used with 'path')
          name: limit
          in: query
        - type: string
          description: commits that match the given specifier will not be listed.
          name: not
          in: query
      responses:
        '200':
          $ref: '#/responses/CommitList'
        '404':
          $ref: '#/responses/notFound'
        '409':
          $ref: '#/responses/EmptyRepository'
  /repos/{owner}/{repo}/commits/{ref}/status:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a commit's combined status, by branch/tag/commit reference
      operationId: repoGetCombinedStatusByRef
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of branch/tag/commit
          name: ref
          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
      responses:
        '200':
          $ref: '#/responses/CombinedStatus'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/commits/{ref}/statuses:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a commit's statuses, by branch/tag/commit reference
      operationId: repoListStatusesByRef
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of branch/tag/commit
          name: ref
          in: path
          required: true
        - enum:
            - oldest
            - recentupdate
            - leastupdate
            - leastindex
            - highestindex
          type: string
          description: type of sort
          name: sort
          in: query
        - enum:
            - pending
            - success
            - error
            - failure
            - warning
          type: string
          description: type of state
          name: state
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/CommitStatusList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/commits/{sha}/pull:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get the merged pull request of the commit
      operationId: repoGetCommitPullRequest
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: SHA of the commit to get
          name: sha
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/PullRequest'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/compare/{basehead}:
    get:
      description: >
        By default returns JSON commit comparison information. The raw diff or
        patch can be

        requested with the `output` query parameter set to `diff` or `patch`
        respectively.
      produces:
        - application/json
        - text/plain
      tags:
        - repository
      summary: Get commit comparison information
      operationId: repoCompareDiff
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: >-
            compare two refs as `base...head` (or `base..head`); refs may be
            branches, tags, full or short SHAs (including branch names that
            contain slashes), optionally with a `^` or `~N` revision suffix.
          name: basehead
          in: path
          required: true
        - enum:
            - diff
            - patch
          type: string
          description: return the raw comparison as `diff` or `patch` instead of JSON
          name: output
          in: query
      responses:
        '200':
          $ref: '#/responses/Compare'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/contents:
    get:
      description: >-
        This API follows GitHub's design, and it is not easy to use. Recommend
        users to use our "contents-ext" API instead.
      produces:
        - application/json
      tags:
        - repository
      summary: Gets the metadata of all the entries of the root dir.
      operationId: repoGetContentsList
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: >-
            The name of the commit/branch/tag. Default to the repository’s
            default branch.
          name: ref
          in: query
      responses:
        '200':
          $ref: '#/responses/ContentsListResponse'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Modify multiple files in a repository
      operationId: repoChangeFiles
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/ChangeFilesOptions'
      responses:
        '201':
          $ref: '#/responses/FilesResponse'
        '403':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/error'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/contents-ext/{filepath}:
    get:
      description: >-
        It guarantees that only one of the response fields is set if the request
        succeeds. Users can pass "includes=file_content" or
        "includes=lfs_metadata" to retrieve more fields. "includes=file_content"
        only works for single file, if you need to retrieve file contents in
        batch, use "file-contents" API after listing the directory.
      produces:
        - application/json
      tags:
        - repository
      summary: >-
        The extended "contents" API, to get file metadata and/or content, or
        list a directory.
      operationId: repoGetContentsExt
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: >-
            path of the dir, file, symlink or submodule in the repo. Swagger
            requires path parameter to be "required", you can leave it empty or
            pass a single dot (".") to get the root directory.
          name: filepath
          in: path
          required: true
        - type: string
          description: >-
            the name of the commit/branch/tag, default to the repository’s
            default branch.
          name: ref
          in: query
        - type: string
          description: >-
            By default this API's response only contains file's metadata. Use
            comma-separated "includes" options to retrieve more fields. Option
            "file_content" will try to retrieve the file content, "lfs_metadata"
            will try to retrieve LFS metadata, "commit_metadata" will try to
            retrieve commit metadata, and "commit_message" will try to retrieve
            commit message.
          name: includes
          in: query
      responses:
        '200':
          $ref: '#/responses/ContentsExtResponse'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/contents/{filepath}:
    get:
      description: >-
        This API follows GitHub's design, and it is not easy to use. Recommend
        users to use the "contents-ext" API instead.
      produces:
        - application/json
      tags:
        - repository
      summary: >-
        Gets the metadata and contents (if a file) of an entry in a repository,
        or a list of entries if a dir.
      operationId: repoGetContents
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: path of the dir, file, symlink or submodule in the repo
          name: filepath
          in: path
          required: true
        - type: string
          description: >-
            The name of the commit/branch/tag. Default to the repository’s
            default branch.
          name: ref
          in: query
      responses:
        '200':
          $ref: '#/responses/ContentsResponse'
        '404':
          $ref: '#/responses/notFound'
    put:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: >-
        Update a file in a repository if SHA is set, or create the file if SHA
        is not set
      operationId: repoUpdateFile
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: path of the file to update
          name: filepath
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/UpdateFileOptions'
      responses:
        '200':
          $ref: '#/responses/FileResponse'
        '201':
          $ref: '#/responses/FileResponse'
        '403':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/error'
        '423':
          $ref: '#/responses/repoArchivedError'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Create a file in a repository
      operationId: repoCreateFile
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: path of the file to create
          name: filepath
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreateFileOptions'
      responses:
        '201':
          $ref: '#/responses/FileResponse'
        '403':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/error'
        '423':
          $ref: '#/responses/repoArchivedError'
    delete:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a file in a repository
      operationId: repoDeleteFile
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: path of the file to delete
          name: filepath
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/DeleteFileOptions'
      responses:
        '200':
          $ref: '#/responses/FileDeleteResponse'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/error'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/diffpatch:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Apply diff patch to repository
      operationId: repoApplyDiffPatch
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/ApplyDiffPatchFileOptions'
      responses:
        '200':
          $ref: '#/responses/FileResponse'
        '404':
          $ref: '#/responses/notFound'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/editorconfig/{filepath}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get the EditorConfig definitions of a file in a repository
      operationId: repoGetEditorConfig
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: filepath of file to get
          name: filepath
          in: path
          required: true
        - type: string
          description: >-
            The name of the commit/branch/tag. Default to the repository’s
            default branch.
          name: ref
          in: query
      responses:
        '200':
          description: success
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/file-contents:
    get:
      description: >-
        See the POST method. This GET method supports using JSON encoded request
        body in query parameter.
      produces:
        - application/json
      tags:
        - repository
      summary: Get the metadata and contents of requested files
      operationId: repoGetFileContents
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: >-
            The name of the commit/branch/tag. Default to the repository’s
            default branch.
          name: ref
          in: query
        - type: string
          description: >-
            The JSON encoded body (see the POST request): {"files":
            ["filename1", "filename2"]}
          name: body
          in: query
          required: true
      responses:
        '200':
          $ref: '#/responses/ContentsListResponse'
        '404':
          $ref: '#/responses/notFound'
    post:
      description: >-
        Uses automatic pagination based on default page size and max response
        size and returns the maximum allowed number of files. Files which could
        not be retrieved are null. Files which are too large are being returned
        with `encoding == null`, `content == null` and `size > 0`, they can be
        requested separately by using the `download_url`.
      produces:
        - application/json
      tags:
        - repository
      summary: Get the metadata and contents of requested files
      operationId: repoGetFileContentsPost
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: >-
            The name of the commit/branch/tag. Default to the repository’s
            default branch.
          name: ref
          in: query
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/GetFilesOptions'
      responses:
        '200':
          $ref: '#/responses/ContentsListResponse'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/forks:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repository's forks
      operationId: listForks
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          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
      responses:
        '200':
          $ref: '#/responses/RepositoryList'
        '404':
          $ref: '#/responses/notFound'
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Fork a repository
      operationId: createFork
      parameters:
        - type: string
          description: owner of the repo to fork
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo to fork
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateForkOption'
      responses:
        '202':
          $ref: '#/responses/Repository'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '409':
          description: The repository with the same name already exists.
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/git/blobs/{sha}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Gets the blob of a repository.
      operationId: GetBlob
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: sha of the commit
          name: sha
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/GitBlobResponse'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/git/commits/{sha}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a single commit from a repository
      operationId: repoGetSingleCommit
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: a git ref or commit sha
          name: sha
          in: path
          required: true
        - type: boolean
          description: >-
            include diff stats for every commit (disable for speedup, default
            'true')
          name: stat
          in: query
        - type: boolean
          description: >-
            include verification for every commit (disable for speedup, default
            'true')
          name: verification
          in: query
        - type: boolean
          description: >-
            include a list of affected files for every commit (disable for
            speedup, default 'true')
          name: files
          in: query
      responses:
        '200':
          $ref: '#/responses/Commit'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/git/commits/{sha}.{diffType}:
    get:
      produces:
        - text/plain
      tags:
        - repository
      summary: Get a commit's diff or patch
      operationId: repoDownloadCommitDiffOrPatch
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: SHA of the commit to get
          name: sha
          in: path
          required: true
        - enum:
            - diff
            - patch
          type: string
          description: whether the output is diff or patch
          name: diffType
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/string'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/git/notes/{sha}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a note corresponding to a single commit from a repository
      operationId: repoGetNote
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: a git ref or commit sha
          name: sha
          in: path
          required: true
        - type: boolean
          description: >-
            include verification for every commit (disable for speedup, default
            'true')
          name: verification
          in: query
        - type: boolean
          description: >-
            include a list of affected files for every commit (disable for
            speedup, default 'true')
          name: files
          in: query
      responses:
        '200':
          $ref: '#/responses/Note'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/git/refs:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get specified ref or filtered repository's refs
      operationId: repoListAllGitRefs
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/ReferenceList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/git/refs/{ref}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get specified ref or filtered repository's refs
      operationId: repoListGitRefs
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: part or full name of the ref
          name: ref
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/ReferenceList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/git/tags/{sha}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Gets the tag object of an annotated tag (not lightweight tags)
      operationId: GetAnnotatedTag
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: >-
            sha of the tag. The Git tags API only supports annotated tag
            objects, not lightweight tags.
          name: sha
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/AnnotatedTag'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/git/trees/{sha}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Gets the tree of a repository.
      operationId: GetTree
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: sha of the commit
          name: sha
          in: path
          required: true
        - type: boolean
          description: show all directories and files
          name: recursive
          in: query
        - type: integer
          description: >-
            page number; the 'truncated' field in the response will be true if
            there are still more items after this page, false if the last page
          name: page
          in: query
        - type: integer
          description: number of items per page
          name: per_page
          in: query
      responses:
        '200':
          $ref: '#/responses/GitTreeResponse'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/hooks:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List the hooks in a repository
      operationId: repoListHooks
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          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
      responses:
        '200':
          $ref: '#/responses/HookList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Create a hook
      operationId: repoCreateHook
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateHookOption'
      responses:
        '201':
          $ref: '#/responses/Hook'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/hooks/git:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List the Git hooks in a repository
      operationId: repoListGitHooks
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/GitHookList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/hooks/git/{id}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a Git hook
      operationId: repoGetGitHook
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: id of the hook to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/GitHook'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a Git hook in a repository
      operationId: repoDeleteGitHook
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: id of the hook to get
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    patch:
      produces:
        - application/json
      tags:
        - repository
      summary: Edit a Git hook in a repository
      operationId: repoEditGitHook
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: id of the hook to get
          name: id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditGitHookOption'
      responses:
        '200':
          $ref: '#/responses/GitHook'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/hooks/{id}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a hook
      operationId: repoGetHook
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the hook to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Hook'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a hook in a repository
      operationId: repoDeleteHook
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the hook to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    patch:
      produces:
        - application/json
      tags:
        - repository
      summary: Edit a hook in a repository
      operationId: repoEditHook
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the hook
          name: id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditHookOption'
      responses:
        '200':
          $ref: '#/responses/Hook'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/hooks/{id}/tests:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Test a push webhook
      operationId: repoTestHook
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the hook to test
          name: id
          in: path
          required: true
        - type: string
          description: >-
            The name of the commit/branch/tag, indicates which commit will be
            loaded to the webhook payload.
          name: ref
          in: query
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issue_config:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Returns the issue config for a repo
      operationId: repoGetIssueConfig
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/RepoIssueConfig'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issue_config/validate:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Returns the validation information for a issue config
      operationId: repoValidateIssueConfig
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/RepoIssueConfigValidation'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issue_templates:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get available issue templates for a repository
      operationId: repoGetIssueTemplates
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/IssueTemplates'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: List a repository's issues
      operationId: issueListIssues
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - enum:
            - closed
            - open
            - all
          type: string
          description: whether issue is open or closed
          name: state
          in: query
        - type: string
          description: >-
            comma separated list of label names. Fetch only issues that have any
            of this label names. Non existent labels are discarded.
          name: labels
          in: query
        - type: string
          description: search string
          name: q
          in: query
        - enum:
            - issues
            - pulls
          type: string
          description: filter by type (issues / pulls) if set
          name: type
          in: query
        - type: string
          description: >-
            comma separated list of milestone names or ids. It uses names and
            fall back to ids. Fetch only issues that have any of this
            milestones. Non existent milestones are discarded
          name: milestones
          in: query
        - type: string
          format: date-time
          description: >-
            Only show items updated after the given time. This is a timestamp in
            RFC 3339 format
          name: since
          in: query
        - type: string
          format: date-time
          description: >-
            Only show items updated before the given time. This is a timestamp
            in RFC 3339 format
          name: before
          in: query
        - type: string
          description: Only show items which were created by the given user
          name: created_by
          in: query
        - type: string
          description: Only show items for which the given user is assigned
          name: assigned_by
          in: query
        - type: string
          description: Only show items in which the given user was mentioned
          name: mentioned_by
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/IssueList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: >-
        Create an issue. If using deadline only the date will be taken into
        account, and time of day ignored.
      operationId: issueCreateIssue
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateIssueOption'
      responses:
        '201':
          $ref: '#/responses/Issue'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '412':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/issues/comments:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: List all comments in a repository
      operationId: issueGetRepoComments
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          format: date-time
          description: >-
            if provided, only comments updated since the provided time are
            returned.
          name: since
          in: query
        - type: string
          format: date-time
          description: >-
            if provided, only comments updated before the provided time are
            returned.
          name: before
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/CommentList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/comments/{id}:
    get:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Get a comment
      operationId: issueGetComment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the comment
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Comment'
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - issue
      summary: Delete a comment
      operationId: issueDeleteComment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of comment to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Edit a comment
      operationId: issueEditComment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the comment to edit
          name: id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditIssueCommentOption'
      responses:
        '200':
          $ref: '#/responses/Comment'
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/issues/comments/{id}/assets:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: List comment's attachments
      operationId: issueListIssueCommentAttachments
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the comment
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/AttachmentList'
        '404':
          $ref: '#/responses/error'
    post:
      consumes:
        - multipart/form-data
      produces:
        - application/json
      tags:
        - issue
      summary: Create a comment attachment
      operationId: issueCreateIssueCommentAttachment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the comment
          name: id
          in: path
          required: true
        - type: string
          description: name of the attachment
          name: name
          in: query
        - type: file
          description: attachment to upload
          name: attachment
          in: formData
          required: true
      responses:
        '201':
          $ref: '#/responses/Attachment'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/error'
        '413':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/issues/comments/{id}/assets/{attachment_id}:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: Get a comment attachment
      operationId: issueGetIssueCommentAttachment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the comment
          name: id
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the attachment to get
          name: attachment_id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Attachment'
        '404':
          $ref: '#/responses/error'
    delete:
      produces:
        - application/json
      tags:
        - issue
      summary: Delete a comment attachment
      operationId: issueDeleteIssueCommentAttachment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the comment
          name: id
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the attachment to delete
          name: attachment_id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/error'
        '423':
          $ref: '#/responses/repoArchivedError'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Edit a comment attachment
      operationId: issueEditIssueCommentAttachment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the comment
          name: id
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the attachment to edit
          name: attachment_id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditAttachmentOptions'
      responses:
        '201':
          $ref: '#/responses/Attachment'
        '404':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/issues/comments/{id}/reactions:
    get:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Get a list of reactions from a comment of an issue
      operationId: issueGetCommentReactions
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the comment to edit
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/ReactionList'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Add a reaction to a comment of an issue
      operationId: issuePostCommentReaction
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the comment to edit
          name: id
          in: path
          required: true
        - name: content
          in: body
          schema:
            $ref: '#/definitions/EditReactionOption'
      responses:
        '200':
          $ref: '#/responses/Reaction'
        '201':
          $ref: '#/responses/Reaction'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Remove a reaction from a comment of an issue
      operationId: issueDeleteCommentReaction
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the comment to edit
          name: id
          in: path
          required: true
        - name: content
          in: body
          schema:
            $ref: '#/definitions/EditReactionOption'
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/pinned:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repo's pinned issues
      operationId: repoListPinnedIssues
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/IssueList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: Get an issue
      operationId: issueGetIssue
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue to get
          name: index
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Issue'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - issue
      summary: Delete an issue
      operationId: issueDelete
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of issue to delete
          name: index
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    patch:
      description: >
        Pass `content_version` to enable optimistic locking on body edits.

        If the version doesn't match the current value, the request fails with
        409 Conflict.
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: >-
        Edit an issue. If using deadline only the date will be taken into
        account, and time of day ignored.
      operationId: issueEditIssue
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue to edit
          name: index
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditIssueOption'
      responses:
        '201':
          $ref: '#/responses/Issue'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '412':
          $ref: '#/responses/error'
  /repos/{owner}/{repo}/issues/{index}/assets:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: List issue's attachments
      operationId: issueListIssueAttachments
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/AttachmentList'
        '404':
          $ref: '#/responses/error'
    post:
      consumes:
        - multipart/form-data
      produces:
        - application/json
      tags:
        - issue
      summary: Create an issue attachment
      operationId: issueCreateIssueAttachment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - type: string
          description: name of the attachment
          name: name
          in: query
        - type: file
          description: attachment to upload
          name: attachment
          in: formData
          required: true
      responses:
        '201':
          $ref: '#/responses/Attachment'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/error'
        '413':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/issues/{index}/assets/{attachment_id}:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: Get an issue attachment
      operationId: issueGetIssueAttachment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the attachment to get
          name: attachment_id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Attachment'
        '404':
          $ref: '#/responses/error'
    delete:
      produces:
        - application/json
      tags:
        - issue
      summary: Delete an issue attachment
      operationId: issueDeleteIssueAttachment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the attachment to delete
          name: attachment_id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/error'
        '423':
          $ref: '#/responses/repoArchivedError'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Edit an issue attachment
      operationId: issueEditIssueAttachment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the attachment to edit
          name: attachment_id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditAttachmentOptions'
      responses:
        '201':
          $ref: '#/responses/Attachment'
        '404':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/issues/{index}/assignees:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Add assignees to an issue
      operationId: issueAddAssignees
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/IssueAssigneesOption'
      responses:
        '201':
          $ref: '#/responses/Issue'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
    delete:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Remove assignees from an issue
      operationId: issueRemoveAssignees
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/IssueAssigneesOption'
      responses:
        '200':
          $ref: '#/responses/Issue'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/issues/{index}/assignees/{assignee}:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: Check if a user can be assigned to an issue
      operationId: issueCheckAssignee
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - type: string
          description: username of the user to check for being an assignee
          name: assignee
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/blocks:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: List issues that are blocked by this issue
      operationId: issueListBlocks
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: index of the issue
          name: index
          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
      responses:
        '200':
          $ref: '#/responses/IssueList'
        '404':
          $ref: '#/responses/notFound'
    post:
      produces:
        - application/json
      tags:
        - issue
      summary: Block the issue given in the body by the issue in path
      operationId: issueCreateIssueBlocking
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: index of the issue
          name: index
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/IssueMeta'
      responses:
        '201':
          $ref: '#/responses/Issue'
        '404':
          description: the issue does not exist
    delete:
      produces:
        - application/json
      tags:
        - issue
      summary: Unblock the issue given in the body by the issue in path
      operationId: issueRemoveIssueBlocking
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: index of the issue
          name: index
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/IssueMeta'
      responses:
        '200':
          $ref: '#/responses/Issue'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/comments:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: List all comments on an issue
      operationId: issueGetComments
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - type: string
          format: date-time
          description: >-
            if provided, only comments updated since the specified time are
            returned.
          name: since
          in: query
        - type: string
          format: date-time
          description: >-
            if provided, only comments updated before the provided time are
            returned.
          name: before
          in: query
      responses:
        '200':
          $ref: '#/responses/CommentList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Add a comment to an issue
      operationId: issueCreateComment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateIssueCommentOption'
      responses:
        '201':
          $ref: '#/responses/Comment'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/issues/{index}/comments/{id}:
    delete:
      tags:
        - issue
      summary: Delete a comment
      operationId: issueDeleteCommentDeprecated
      deprecated: true
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          description: this parameter is ignored
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of comment to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Edit a comment
      operationId: issueEditCommentDeprecated
      deprecated: true
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          description: this parameter is ignored
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the comment to edit
          name: id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditIssueCommentOption'
      responses:
        '200':
          $ref: '#/responses/Comment'
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/deadline:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: >-
        Set an issue deadline. If set to null, the deadline is deleted. If using
        deadline only the date will be taken into account, and time of day
        ignored.
      operationId: issueEditIssueDeadline
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue to create or update a deadline on
          name: index
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditDeadlineOption'
      responses:
        '201':
          $ref: '#/responses/IssueDeadline'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/dependencies:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: List an issue's dependencies, i.e all issues that block this issue.
      operationId: issueListIssueDependencies
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: index of the issue
          name: index
          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
      responses:
        '200':
          $ref: '#/responses/IssueList'
        '404':
          $ref: '#/responses/notFound'
    post:
      produces:
        - application/json
      tags:
        - issue
      summary: Make the issue in the url depend on the issue in the form.
      operationId: issueCreateIssueDependencies
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: index of the issue
          name: index
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/IssueMeta'
      responses:
        '201':
          $ref: '#/responses/Issue'
        '404':
          description: the issue does not exist
        '423':
          $ref: '#/responses/repoArchivedError'
    delete:
      produces:
        - application/json
      tags:
        - issue
      summary: Remove an issue dependency
      operationId: issueRemoveIssueDependencies
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: index of the issue
          name: index
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/IssueMeta'
      responses:
        '200':
          $ref: '#/responses/Issue'
        '404':
          $ref: '#/responses/notFound'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/issues/{index}/labels:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: Get an issue's labels
      operationId: issueGetLabels
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/LabelList'
        '404':
          $ref: '#/responses/notFound'
    put:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Replace an issue's labels
      operationId: issueReplaceLabels
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/IssueLabelsOption'
      responses:
        '200':
          $ref: '#/responses/LabelList'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Add a label to an issue
      operationId: issueAddLabel
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/IssueLabelsOption'
      responses:
        '200':
          $ref: '#/responses/LabelList'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - issue
      summary: Remove all labels from an issue
      operationId: issueClearLabels
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/labels/{id}:
    delete:
      produces:
        - application/json
      tags:
        - issue
      summary: Remove a label from an issue
      operationId: issueRemoveLabel
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the label to remove
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/issues/{index}/lock:
    put:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Lock an issue
      operationId: issueLockIssue
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/LockIssueOption'
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Unlock an issue
      operationId: issueUnlockIssue
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/pin:
    post:
      tags:
        - issue
      summary: Pin an Issue
      operationId: pinIssue
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of issue to pin
          name: index
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - issue
      summary: Unpin an Issue
      operationId: unpinIssue
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of issue to unpin
          name: index
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/pin/{position}:
    patch:
      tags:
        - issue
      summary: Moves the Pin to the given Position
      operationId: moveIssuePin
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of issue
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: the new position
          name: position
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/reactions:
    get:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Get a list reactions of an issue
      operationId: issueGetIssueReactions
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          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
      responses:
        '200':
          $ref: '#/responses/ReactionList'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Add a reaction to an issue
      operationId: issuePostIssueReaction
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - name: content
          in: body
          schema:
            $ref: '#/definitions/EditReactionOption'
      responses:
        '200':
          $ref: '#/responses/Reaction'
        '201':
          $ref: '#/responses/Reaction'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Remove a reaction from an issue
      operationId: issueDeleteIssueReaction
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - name: content
          in: body
          schema:
            $ref: '#/definitions/EditReactionOption'
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/stopwatch/delete:
    delete:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Delete an issue's existing stopwatch.
      operationId: issueDeleteStopWatch
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue to stop the stopwatch on
          name: index
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          description: Not repo writer, user does not have rights to toggle stopwatch
        '404':
          $ref: '#/responses/notFound'
        '409':
          description: Cannot cancel a non-existent stopwatch
  /repos/{owner}/{repo}/issues/{index}/stopwatch/start:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Start stopwatch on an issue.
      operationId: issueStartStopWatch
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue to create the stopwatch on
          name: index
          in: path
          required: true
      responses:
        '201':
          $ref: '#/responses/empty'
        '403':
          description: Not repo writer, user does not have rights to toggle stopwatch
        '404':
          $ref: '#/responses/notFound'
        '409':
          description: Cannot start a stopwatch again if it already exists
  /repos/{owner}/{repo}/issues/{index}/stopwatch/stop:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Stop an issue's existing stopwatch.
      operationId: issueStopStopWatch
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue to stop the stopwatch on
          name: index
          in: path
          required: true
      responses:
        '201':
          $ref: '#/responses/empty'
        '403':
          description: Not repo writer, user does not have rights to toggle stopwatch
        '404':
          $ref: '#/responses/notFound'
        '409':
          description: Cannot stop a non-existent stopwatch
  /repos/{owner}/{repo}/issues/{index}/subscriptions:
    get:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Get users who subscribed on an issue.
      operationId: issueSubscriptions
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          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
      responses:
        '200':
          $ref: '#/responses/UserList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/subscriptions/check:
    get:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Check if user is subscribed to an issue
      operationId: issueCheckSubscription
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/WatchInfo'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/subscriptions/{user}:
    put:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Subscribe user to issue
      operationId: issueAddSubscription
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - type: string
          description: username of the user to subscribe the issue to
          name: user
          in: path
          required: true
      responses:
        '200':
          description: Already subscribed
        '201':
          description: Successfully Subscribed
        '304':
          description: User can only subscribe itself if he is no admin
        '404':
          $ref: '#/responses/notFound'
    delete:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Unsubscribe user from issue
      operationId: issueDeleteSubscription
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - type: string
          description: username of the user to unsubscribe from an issue
          name: user
          in: path
          required: true
      responses:
        '200':
          description: Already unsubscribed
        '201':
          description: Successfully Unsubscribed
        '304':
          description: User can only subscribe itself if he is no admin
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/timeline:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: List all comments and events on an issue
      operationId: issueGetCommentsAndTimeline
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - type: string
          format: date-time
          description: >-
            if provided, only comments updated since the specified time are
            returned.
          name: since
          in: query
        - 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
        - type: string
          format: date-time
          description: >-
            if provided, only comments updated before the provided time are
            returned.
          name: before
          in: query
      responses:
        '200':
          $ref: '#/responses/TimelineList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/times:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: List an issue's tracked times
      operationId: issueTrackedTimes
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - type: string
          description: optional filter by user (available for issue managers)
          name: user
          in: query
        - type: string
          format: date-time
          description: >-
            Only show times updated after the given time. This is a timestamp in
            RFC 3339 format
          name: since
          in: query
        - type: string
          format: date-time
          description: >-
            Only show times updated before the given time. This is a timestamp
            in RFC 3339 format
          name: before
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/TrackedTimeList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Add tracked time to a issue
      operationId: issueAddTime
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/AddTimeOption'
      responses:
        '200':
          $ref: '#/responses/TrackedTime'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Reset a tracked time of an issue
      operationId: issueResetTime
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue to add tracked time to
          name: index
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/issues/{index}/times/{id}:
    delete:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Delete specific tracked time
      operationId: issueDeleteTime
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the issue
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of time to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/keys:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repository's keys
      operationId: repoListKeys
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          description: the key_id to search for
          name: key_id
          in: query
        - type: string
          description: fingerprint of the key
          name: fingerprint
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/DeployKeyList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Add a key to a repository
      operationId: repoCreateKey
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateKeyOption'
      responses:
        '201':
          $ref: '#/responses/DeployKey'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/keys/{id}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a repository's key by id
      operationId: repoGetKey
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the key to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/DeployKey'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - repository
      summary: Delete a key from a repository
      operationId: repoDeleteKey
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the key to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/labels:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: Get all of a repository's labels
      operationId: issueListLabels
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          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
      responses:
        '200':
          $ref: '#/responses/LabelList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Create a label
      operationId: issueCreateLabel
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateLabelOption'
      responses:
        '201':
          $ref: '#/responses/Label'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/labels/{id}:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: Get a single label
      operationId: issueGetLabel
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the label to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Label'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - issue
      summary: Delete a label
      operationId: issueDeleteLabel
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the label to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Update a label
      operationId: issueEditLabel
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the label to edit
          name: id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditLabelOption'
      responses:
        '200':
          $ref: '#/responses/Label'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/languages:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get languages and number of bytes of code written
      operationId: repoGetLanguages
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/LanguageStatistics'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/licenses:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get repo licenses
      operationId: repoGetLicenses
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/LicensesList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/media/{filepath}:
    get:
      produces:
        - application/octet-stream
      tags:
        - repository
      summary: Get a file or it's LFS object from a repository
      operationId: repoGetRawFileOrLFS
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: >-
            path of the file to get, it should be "{ref}/{filepath}". If there
            is no ref could be inferred, it will be treated as the default
            branch
          name: filepath
          in: path
          required: true
        - type: string
          description: >-
            The name of the commit/branch/tag. Default to the repository’s
            default branch
          name: ref
          in: query
      responses:
        '200':
          description: Returns raw file content.
          schema:
            type: file
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/merge-upstream:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Merge a branch from upstream
      operationId: repoMergeUpstream
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/MergeUpstreamRequest'
      responses:
        '200':
          $ref: '#/responses/MergeUpstreamResponse'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/milestones:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: Get all of a repository's opened milestones
      operationId: issueGetMilestonesList
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: >-
            Milestone state, Recognized values are open, closed and all.
            Defaults to "open"
          name: state
          in: query
        - type: string
          description: filter by milestone name
          name: name
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/MilestoneList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Create a milestone
      operationId: issueCreateMilestone
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateMilestoneOption'
      responses:
        '201':
          $ref: '#/responses/Milestone'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/milestones/{id}:
    get:
      produces:
        - application/json
      tags:
        - issue
      summary: Get a milestone
      operationId: issueGetMilestone
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: the milestone to get, identified by ID and if not available by name
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Milestone'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - issue
      summary: Delete a milestone
      operationId: issueDeleteMilestone
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: >-
            the milestone to delete, identified by ID and if not available by
            name
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - issue
      summary: Update a milestone
      operationId: issueEditMilestone
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: the milestone to edit, identified by ID and if not available by name
          name: id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditMilestoneOption'
      responses:
        '200':
          $ref: '#/responses/Milestone'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/mirror-sync:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Sync a mirrored repository
      operationId: repoMirrorSync
      parameters:
        - type: string
          description: owner of the repo to sync
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo to sync
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/new_pin_allowed:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Returns if new Issue Pins are allowed
      operationId: repoNewPinAllowed
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/RepoNewIssuePinsAllowed'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/notifications:
    get:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - notification
      summary: List users's notification threads on a specific repo
      operationId: notifyGetRepoList
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: boolean
          description: If true, show notifications marked as read. Default value is false
          name: all
          in: query
        - type: array
          items:
            type: string
          collectionFormat: multi
          description: >-
            Show notifications with the provided status types. Options are:
            unread, read and/or pinned. Defaults to unread & pinned
          name: status-types
          in: query
        - type: array
          items:
            enum:
              - issue
              - pull
              - commit
              - repository
            type: string
          collectionFormat: multi
          description: filter notifications by subject type
          name: subject-type
          in: query
        - type: string
          format: date-time
          description: >-
            Only show notifications updated after the given time. This is a
            timestamp in RFC 3339 format
          name: since
          in: query
        - type: string
          format: date-time
          description: >-
            Only show notifications updated before the given time. This is a
            timestamp in RFC 3339 format
          name: before
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/NotificationThreadList'
    put:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - notification
      summary: Mark notification threads as read, pinned or unread on a specific repo
      operationId: notifyReadRepoList
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: If true, mark all notifications on this repo. Default value is false
          name: all
          in: query
        - type: array
          items:
            type: string
          collectionFormat: multi
          description: >-
            Mark notifications with the provided status types. Options are:
            unread, read and/or pinned. Defaults to unread.
          name: status-types
          in: query
        - type: string
          description: Status to mark notifications as. Defaults to read.
          name: to-status
          in: query
        - type: string
          format: date-time
          description: >-
            Describes the last point that notifications were checked. Anything
            updated since this time will not be updated.
          name: last_read_at
          in: query
      responses:
        '205':
          $ref: '#/responses/NotificationThreadList'
  /repos/{owner}/{repo}/pulls:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repo's pull requests
      operationId: repoListPullRequests
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: Name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: Filter by target base branch of the pull request
          name: base_branch
          in: query
        - enum:
            - open
            - closed
            - all
          type: string
          default: open
          description: State of pull request
          name: state
          in: query
        - enum:
            - oldest
            - recentupdate
            - recentclose
            - leastupdate
            - mostcomment
            - leastcomment
            - priority
          type: string
          description: Type of sort
          name: sort
          in: query
        - type: integer
          format: int64
          description: ID of the milestone
          name: milestone
          in: query
        - type: array
          items:
            type: integer
            format: int64
          collectionFormat: multi
          description: Label IDs
          name: labels
          in: query
        - type: string
          description: Filter by pull request author
          name: poster
          in: query
        - minimum: 1
          type: integer
          default: 1
          description: Page number of results to return (1-based)
          name: page
          in: query
        - minimum: 0
          type: integer
          description: Page size of results
          name: limit
          in: query
      responses:
        '200':
          $ref: '#/responses/PullRequestList'
        '404':
          $ref: '#/responses/notFound'
        '500':
          $ref: '#/responses/error'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Create a pull request
      operationId: repoCreatePullRequest
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreatePullRequestOption'
      responses:
        '201':
          $ref: '#/responses/PullRequest'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '409':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/pulls/comments/{id}/resolve:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Resolve a pull request review comment
      operationId: repoResolvePullReviewComment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the review comment
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '400':
          $ref: '#/responses/validationError'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/pulls/comments/{id}/unresolve:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Unresolve a pull request review comment
      operationId: repoUnresolvePullReviewComment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the review comment
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '400':
          $ref: '#/responses/validationError'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/pulls/pinned:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repo's pinned pull requests
      operationId: repoListPinnedPullRequests
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/PullRequestList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/pulls/{base}/{head}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a pull request by base and head
      operationId: repoGetPullRequestByBaseHead
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: base of the pull request to get
          name: base
          in: path
          required: true
        - type: string
          description: head of the pull request to get
          name: head
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/PullRequest'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/pulls/{index}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a pull request
      operationId: repoGetPullRequest
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request to get
          name: index
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/PullRequest'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: >-
        Update a pull request. If using deadline only the date will be taken
        into account, and time of day ignored.
      operationId: repoEditPullRequest
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request to edit
          name: index
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditPullRequestOption'
      responses:
        '201':
          $ref: '#/responses/PullRequest'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '409':
          $ref: '#/responses/error'
        '412':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/pulls/{index}.{diffType}:
    get:
      produces:
        - text/plain
      tags:
        - repository
      summary: Get a pull request diff or patch
      operationId: repoDownloadPullDiffOrPatch
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request to get
          name: index
          in: path
          required: true
        - enum:
            - diff
            - patch
          type: string
          description: whether the output is diff or patch
          name: diffType
          in: path
          required: true
        - type: boolean
          description: >-
            whether to include binary file changes. if true, the diff is
            applicable with `git apply`
          name: binary
          in: query
      responses:
        '200':
          $ref: '#/responses/string'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/pulls/{index}/comments/{id}/replies:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Reply to a pull request review comment
      operationId: repoCreatePullReviewCommentReply
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the review comment to reply to
          name: id
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreatePullReviewCommentReplyOptions'
      responses:
        '201':
          $ref: '#/responses/PullReviewComment'
        '400':
          $ref: '#/responses/validationError'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/pulls/{index}/commits:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get commits for a pull request
      operationId: repoGetPullRequestCommits
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request to get
          name: index
          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
        - type: boolean
          description: >-
            include verification for every commit (disable for speedup, default
            'true')
          name: verification
          in: query
        - type: boolean
          description: >-
            include a list of affected files for every commit (disable for
            speedup, default 'true')
          name: files
          in: query
      responses:
        '200':
          $ref: '#/responses/CommitList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/pulls/{index}/files:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get changed files for a pull request
      operationId: repoGetPullRequestFiles
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request to get
          name: index
          in: path
          required: true
        - type: string
          description: skip to given file
          name: skip-to
          in: query
        - enum:
            - ignore-all
            - ignore-change
            - ignore-eol
            - show-all
          type: string
          description: whitespace behavior
          name: whitespace
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/ChangedFileList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/pulls/{index}/merge:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Check if a pull request has been merged
      operationId: repoPullRequestIsMerged
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request
          name: index
          in: path
          required: true
      responses:
        '204':
          description: pull request has been merged
        '404':
          description: pull request has not been merged
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Merge a pull request
      operationId: repoMergePullRequest
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request to merge
          name: index
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/MergePullRequestOption'
      responses:
        '200':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '405':
          $ref: '#/responses/empty'
        '409':
          $ref: '#/responses/error'
        '423':
          $ref: '#/responses/repoArchivedError'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Cancel the scheduled auto merge for the given pull request
      operationId: repoCancelScheduledAutoMerge
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request to merge
          name: index
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/pulls/{index}/requested_reviewers:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: create review requests for a pull request
      operationId: repoCreatePullReviewRequests
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request
          name: index
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/PullReviewRequestOptions'
      responses:
        '201':
          $ref: '#/responses/PullReviewList'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: cancel review requests for a pull request
      operationId: repoDeletePullReviewRequests
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request
          name: index
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/PullReviewRequestOptions'
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/pulls/{index}/reviews:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List all reviews for a pull request
      operationId: repoListPullReviews
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request
          name: index
          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
      responses:
        '200':
          $ref: '#/responses/PullReviewList'
        '404':
          $ref: '#/responses/notFound'
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Create a review to a pull request
      operationId: repoCreatePullReview
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request
          name: index
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreatePullReviewOptions'
      responses:
        '200':
          $ref: '#/responses/PullReview'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/pulls/{index}/reviews/{id}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a specific review for a pull request
      operationId: repoGetPullReview
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the review
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/PullReview'
        '404':
          $ref: '#/responses/notFound'
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Submit a pending review to a pull request
      operationId: repoSubmitPullReview
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the review
          name: id
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/SubmitPullReviewOptions'
      responses:
        '200':
          $ref: '#/responses/PullReview'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a specific review from a pull request
      operationId: repoDeletePullReview
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the review
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/pulls/{index}/reviews/{id}/comments:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a specific review for a pull request
      operationId: repoGetPullReviewComments
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the review
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/PullReviewCommentList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/pulls/{index}/reviews/{id}/dismissals:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Dismiss a review for a pull request
      operationId: repoDismissPullReview
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the review
          name: id
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/DismissPullReviewOptions'
      responses:
        '200':
          $ref: '#/responses/PullReview'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/pulls/{index}/reviews/{id}/undismissals:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Cancel to dismiss a review for a pull request
      operationId: repoUnDismissPullReview
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request
          name: index
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the review
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/PullReview'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/pulls/{index}/update:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Merge PR's baseBranch into headBranch
      operationId: repoUpdatePullRequest
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: index of the pull request to get
          name: index
          in: path
          required: true
        - enum:
            - merge
            - rebase
          type: string
          description: how to update pull request
          name: style
          in: query
      responses:
        '200':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '409':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/push_mirrors:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get all push mirrors of the repository
      operationId: repoListPushMirrors
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          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
      responses:
        '200':
          $ref: '#/responses/PushMirrorList'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: add a push mirror to the repository
      operationId: repoAddPushMirror
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreatePushMirrorOption'
      responses:
        '200':
          $ref: '#/responses/PushMirror'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/push_mirrors-sync:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Sync all push mirrored repository
      operationId: repoPushMirrorSync
      parameters:
        - type: string
          description: owner of the repo to sync
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo to sync
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/empty'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/push_mirrors/{name}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get push mirror of the repository by remoteName
      operationId: repoGetPushMirrorByRemoteName
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: remote name of push mirror
          name: name
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/PushMirror'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: deletes a push mirror from a repository by remoteName
      operationId: repoDeletePushMirror
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: remote name of the pushMirror
          name: name
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/raw/{filepath}:
    get:
      produces:
        - application/octet-stream
      tags:
        - repository
      summary: Get a file from a repository
      operationId: repoGetRawFile
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: >-
            path of the file to get, it should be "{ref}/{filepath}". If there
            is no ref could be inferred, it will be treated as the default
            branch
          name: filepath
          in: path
          required: true
        - type: string
          description: >-
            The name of the commit/branch/tag. Default to the repository’s
            default branch
          name: ref
          in: query
      responses:
        '200':
          description: Returns raw file content.
          schema:
            type: file
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/releases:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repo's releases
      operationId: repoListReleases
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: boolean
          description: >-
            filter (exclude / include) drafts, if you don't have repo write
            access none will show
          name: draft
          in: query
        - type: boolean
          description: filter (exclude / include) pre-releases
          name: pre-release
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/ReleaseList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Create a release
      operationId: repoCreateRelease
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateReleaseOption'
      responses:
        '201':
          $ref: '#/responses/Release'
        '404':
          $ref: '#/responses/notFound'
        '409':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/releases/latest:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: >-
        Gets the most recent non-prerelease, non-draft release of a repository,
        sorted by created_at
      operationId: repoGetLatestRelease
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Release'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/releases/tags/{tag}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a release by tag name
      operationId: repoGetReleaseByTag
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: tag name of the release to get
          name: tag
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Release'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - repository
      summary: Delete a release by tag name
      operationId: repoDeleteReleaseByTag
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: tag name of the release to delete
          name: tag
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/releases/{id}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a release
      operationId: repoGetRelease
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the release to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Release'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - repository
      summary: Delete a release
      operationId: repoDeleteRelease
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the release to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Update a release
      operationId: repoEditRelease
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the release to edit
          name: id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditReleaseOption'
      responses:
        '200':
          $ref: '#/responses/Release'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/releases/{id}/assets:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List release's attachments
      operationId: repoListReleaseAttachments
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the release
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/AttachmentList'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - multipart/form-data
        - application/octet-stream
      produces:
        - application/json
      tags:
        - repository
      summary: Create a release attachment
      operationId: repoCreateReleaseAttachment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the release
          name: id
          in: path
          required: true
        - type: string
          description: name of the attachment
          name: name
          in: query
        - type: file
          description: attachment to upload
          name: attachment
          in: formData
      responses:
        '201':
          $ref: '#/responses/Attachment'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
        '413':
          $ref: '#/responses/error'
  /repos/{owner}/{repo}/releases/{id}/assets/{attachment_id}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a release attachment
      operationId: repoGetReleaseAttachment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the release
          name: id
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the attachment to get
          name: attachment_id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Attachment'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a release attachment
      operationId: repoDeleteReleaseAttachment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the release
          name: id
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the attachment to delete
          name: attachment_id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Edit a release attachment
      operationId: repoEditReleaseAttachment
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the release
          name: id
          in: path
          required: true
        - type: integer
          format: int64
          description: id of the attachment to edit
          name: attachment_id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditAttachmentOptions'
      responses:
        '201':
          $ref: '#/responses/Attachment'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/reviewers:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Return all users that can be requested to review in this repo
      operationId: repoGetReviewers
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/UserList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/signing-key.gpg:
    get:
      produces:
        - text/plain
      tags:
        - repository
      summary: Get signing-key.gpg for given repository
      operationId: repoSigningKey
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          description: GPG armored public key
          schema:
            type: string
  /repos/{owner}/{repo}/signing-key.pub:
    get:
      produces:
        - text/plain
      tags:
        - repository
      summary: Get signing-key.pub for given repository
      operationId: repoSigningKeySSH
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          description: ssh public key
          schema:
            type: string
  /repos/{owner}/{repo}/stargazers:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repo's stargazers
      operationId: repoListStargazers
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          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
      responses:
        '200':
          $ref: '#/responses/UserList'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/statuses/{sha}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a commit's statuses
      operationId: repoListStatuses
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: sha of the commit
          name: sha
          in: path
          required: true
        - enum:
            - oldest
            - recentupdate
            - leastupdate
            - leastindex
            - highestindex
          type: string
          description: type of sort
          name: sort
          in: query
        - enum:
            - pending
            - success
            - error
            - failure
            - warning
          type: string
          description: type of state
          name: state
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/CommitStatusList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Create a commit status
      operationId: repoCreateStatus
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: sha of the commit
          name: sha
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateStatusOption'
      responses:
        '201':
          $ref: '#/responses/CommitStatus'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/subscribers:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repo's watchers
      operationId: repoListSubscribers
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          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
      responses:
        '200':
          $ref: '#/responses/UserList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/subscription:
    get:
      tags:
        - repository
      summary: Check if the current user is watching a repo
      operationId: userCurrentCheckSubscription
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/WatchInfo'
        '404':
          description: User is not watching this repo or repo do not exist
    put:
      tags:
        - repository
      summary: Watch a repo
      operationId: userCurrentPutSubscription
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/WatchInfo'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - repository
      summary: Unwatch a repo
      operationId: userCurrentDeleteSubscription
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/tag_protections:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List tag protections for a repository
      operationId: repoListTagProtection
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/TagProtectionList'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Create a tag protections for a repository
      operationId: repoCreateTagProtection
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateTagProtectionOption'
      responses:
        '201':
          $ref: '#/responses/TagProtection'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/tag_protections/{id}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a specific tag protection for the repository
      operationId: repoGetTagProtection
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          description: id of the tag protect to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/TagProtection'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a specific tag protection for the repository
      operationId: repoDeleteTagProtection
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          description: id of protected tag
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: >-
        Edit a tag protections for a repository. Only fields that are set will
        be changed
      operationId: repoEditTagProtection
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: integer
          description: id of protected tag
          name: id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditTagProtectionOption'
      responses:
        '200':
          $ref: '#/responses/TagProtection'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/tags:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repository's tags
      operationId: repoListTags
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          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, default maximum page size is 50
          name: limit
          in: query
      responses:
        '200':
          $ref: '#/responses/TagList'
        '404':
          $ref: '#/responses/notFound'
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Create a new git tag in a repository
      operationId: repoCreateTag
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateTagOption'
      responses:
        '200':
          $ref: '#/responses/Tag'
        '404':
          $ref: '#/responses/notFound'
        '405':
          $ref: '#/responses/empty'
        '409':
          $ref: '#/responses/conflict'
        '422':
          $ref: '#/responses/validationError'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/tags/{tag}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get the tag of a repository by tag name
      operationId: repoGetTag
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of tag
          name: tag
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Tag'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a repository's tag by name
      operationId: repoDeleteTag
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of tag to delete
          name: tag
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '405':
          $ref: '#/responses/empty'
        '409':
          $ref: '#/responses/conflict'
        '422':
          $ref: '#/responses/validationError'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/teams:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repository's teams
      operationId: repoListTeams
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/TeamList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/teams/{team}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Check if a team is assigned to a repository
      operationId: repoCheckTeam
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: team name
          name: team
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Team'
        '404':
          $ref: '#/responses/notFound'
        '405':
          $ref: '#/responses/error'
    put:
      produces:
        - application/json
      tags:
        - repository
      summary: Add a team to a repository
      operationId: repoAddTeam
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: team name
          name: team
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '405':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a team from a repository
      operationId: repoDeleteTeam
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: team name
          name: team
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '405':
          $ref: '#/responses/error'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/times:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a repo's tracked times
      operationId: repoTrackedTimes
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: optional filter by user (available for issue managers)
          name: user
          in: query
        - type: string
          format: date-time
          description: >-
            Only show times updated after the given time. This is a timestamp in
            RFC 3339 format
          name: since
          in: query
        - type: string
          format: date-time
          description: >-
            Only show times updated before the given time. This is a timestamp
            in RFC 3339 format
          name: before
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/TrackedTimeList'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/times/{user}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: List a user's tracked times in a repo
      operationId: userTrackedTimes
      deprecated: true
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: username of the user whose tracked times are to be listed
          name: user
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/TrackedTimeList'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/topics:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get list of topics that a repository has
      operationId: repoListTopics
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          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
      responses:
        '200':
          $ref: '#/responses/TopicNames'
        '404':
          $ref: '#/responses/notFound'
    put:
      produces:
        - application/json
      tags:
        - repository
      summary: Replace list of topics for a repository
      operationId: repoUpdateTopics
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/RepoTopicOptions'
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/invalidTopicsError'
  /repos/{owner}/{repo}/topics/{topic}:
    put:
      produces:
        - application/json
      tags:
        - repository
      summary: Add a topic to a repository
      operationId: repoAddTopic
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of the topic to add
          name: topic
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/invalidTopicsError'
    delete:
      produces:
        - application/json
      tags:
        - repository
      summary: Delete a topic from a repository
      operationId: repoDeleteTopic
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of the topic to delete
          name: topic
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/invalidTopicsError'
  /repos/{owner}/{repo}/transfer:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Transfer a repo ownership
      operationId: repoTransfer
      parameters:
        - type: string
          description: owner of the repo to transfer
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo to transfer
          name: repo
          in: path
          required: true
        - description: Transfer Options
          name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/TransferRepoOption'
      responses:
        '202':
          $ref: '#/responses/Repository'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /repos/{owner}/{repo}/transfer/accept:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Accept a repo transfer
      operationId: acceptRepoTransfer
      parameters:
        - type: string
          description: owner of the repo to transfer
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo to transfer
          name: repo
          in: path
          required: true
      responses:
        '202':
          $ref: '#/responses/Repository'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/transfer/reject:
    post:
      produces:
        - application/json
      tags:
        - repository
      summary: Reject a repo transfer
      operationId: rejectRepoTransfer
      parameters:
        - type: string
          description: owner of the repo to transfer
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo to transfer
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Repository'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/wiki/new:
    post:
      consumes:
        - application/json
      tags:
        - repository
      summary: Create a wiki page
      operationId: repoCreateWikiPage
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateWikiPageOptions'
      responses:
        '201':
          $ref: '#/responses/WikiPage'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/wiki/page/{pageName}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a wiki page
      operationId: repoGetWikiPage
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of the page
          name: pageName
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/WikiPage'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - repository
      summary: Delete a wiki page
      operationId: repoDeleteWikiPage
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of the page
          name: pageName
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '423':
          $ref: '#/responses/repoArchivedError'
    patch:
      consumes:
        - application/json
      tags:
        - repository
      summary: Edit a wiki page
      operationId: repoEditWikiPage
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of the page
          name: pageName
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateWikiPageOptions'
      responses:
        '200':
          $ref: '#/responses/WikiPage'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '423':
          $ref: '#/responses/repoArchivedError'
  /repos/{owner}/{repo}/wiki/pages:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get all wiki pages
      operationId: repoGetWikiPages
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          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
      responses:
        '200':
          $ref: '#/responses/WikiPageList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{owner}/{repo}/wiki/revisions/{pageName}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get revisions of a wiki page
      operationId: repoGetWikiPageRevisions
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
        - type: string
          description: name of the page
          name: pageName
          in: path
          required: true
        - type: integer
          description: page number of results to return (1-based)
          name: page
          in: query
      responses:
        '200':
          $ref: '#/responses/WikiCommitList'
        '404':
          $ref: '#/responses/notFound'
  /repos/{template_owner}/{template_repo}/generate:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
      summary: Create a repository using a template
      operationId: generateRepo
      parameters:
        - type: string
          description: owner of the template repository
          name: template_owner
          in: path
          required: true
        - type: string
          description: name of the template repository
          name: template_repo
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/GenerateRepoOption'
      responses:
        '201':
          $ref: '#/responses/Repository'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '409':
          description: The repository with the same name already exists.
        '422':
          $ref: '#/responses/validationError'
  /repositories/{id}:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: Get a repository by id
      operationId: repoGetByID
      parameters:
        - type: integer
          format: int64
          description: id of the repo to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Repository'
        '404':
          $ref: '#/responses/notFound'
  /settings/api:
    get:
      produces:
        - application/json
      tags:
        - settings
      summary: Get instance's global settings for api
      operationId: getGeneralAPISettings
      responses:
        '200':
          $ref: '#/responses/GeneralAPISettings'
  /settings/attachment:
    get:
      produces:
        - application/json
      tags:
        - settings
      summary: Get instance's global settings for Attachment
      operationId: getGeneralAttachmentSettings
      responses:
        '200':
          $ref: '#/responses/GeneralAttachmentSettings'
  /settings/repository:
    get:
      produces:
        - application/json
      tags:
        - settings
      summary: Get instance's global settings for repositories
      operationId: getGeneralRepositorySettings
      responses:
        '200':
          $ref: '#/responses/GeneralRepoSettings'
  /settings/ui:
    get:
      produces:
        - application/json
      tags:
        - settings
      summary: Get instance's global settings for ui
      operationId: getGeneralUISettings
      responses:
        '200':
          $ref: '#/responses/GeneralUISettings'
  /signing-key.gpg:
    get:
      produces:
        - text/plain
      tags:
        - miscellaneous
      summary: Get default signing-key.gpg
      operationId: getSigningKey
      responses:
        '200':
          description: GPG armored public key
          schema:
            type: string
  /signing-key.pub:
    get:
      produces:
        - text/plain
      tags:
        - miscellaneous
      summary: Get default signing-key.pub
      operationId: getSigningKeySSH
      responses:
        '200':
          description: ssh public key
          schema:
            type: string
  /teams/{id}:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: Get a team
      operationId: orgGetTeam
      parameters:
        - type: integer
          format: int64
          description: id of the team to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Team'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - organization
      summary: Delete a team
      operationId: orgDeleteTeam
      parameters:
        - type: integer
          format: int64
          description: id of the team to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          description: team deleted
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - organization
      summary: Edit a team
      operationId: orgEditTeam
      parameters:
        - type: integer
          description: id of the team to edit
          name: id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditTeamOption'
      responses:
        '200':
          $ref: '#/responses/Team'
        '404':
          $ref: '#/responses/notFound'
  /teams/{id}/activities/feeds:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List a team's activity feeds
      operationId: orgListTeamActivityFeeds
      parameters:
        - type: integer
          format: int64
          description: id of the team
          name: id
          in: path
          required: true
        - type: string
          format: date
          description: the date of the activities to be found
          name: date
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/ActivityFeedsList'
        '404':
          $ref: '#/responses/notFound'
  /teams/{id}/members:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List a team's members
      operationId: orgListTeamMembers
      parameters:
        - type: integer
          format: int64
          description: id of the team
          name: id
          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
      responses:
        '200':
          $ref: '#/responses/UserList'
        '404':
          $ref: '#/responses/notFound'
  /teams/{id}/members/{username}:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List a particular member of team
      operationId: orgListTeamMember
      parameters:
        - type: integer
          format: int64
          description: id of the team
          name: id
          in: path
          required: true
        - type: string
          description: username of the user whose data is to be listed
          name: username
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/User'
        '404':
          $ref: '#/responses/notFound'
    put:
      produces:
        - application/json
      tags:
        - organization
      summary: Add a team member
      operationId: orgAddTeamMember
      parameters:
        - type: integer
          format: int64
          description: id of the team
          name: id
          in: path
          required: true
        - type: string
          description: username of the user to add to a team
          name: username
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - organization
      summary: Remove a team member
      operationId: orgRemoveTeamMember
      parameters:
        - type: integer
          format: int64
          description: id of the team
          name: id
          in: path
          required: true
        - type: string
          description: username of the user to remove from a team
          name: username
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
  /teams/{id}/repos:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List a team's repos
      operationId: orgListTeamRepos
      parameters:
        - type: integer
          format: int64
          description: id of the team
          name: id
          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
      responses:
        '200':
          $ref: '#/responses/RepositoryList'
        '404':
          $ref: '#/responses/notFound'
  /teams/{id}/repos/{org}/{repo}:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List a particular repo of team
      operationId: orgListTeamRepo
      parameters:
        - type: integer
          format: int64
          description: id of the team
          name: id
          in: path
          required: true
        - type: string
          description: organization that owns the repo to list
          name: org
          in: path
          required: true
        - type: string
          description: name of the repo to list
          name: repo
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Repository'
        '404':
          $ref: '#/responses/notFound'
    put:
      produces:
        - application/json
      tags:
        - organization
      summary: Add a repository to a team
      operationId: orgAddTeamRepository
      parameters:
        - type: integer
          format: int64
          description: id of the team
          name: id
          in: path
          required: true
        - type: string
          description: organization that owns the repo to add
          name: org
          in: path
          required: true
        - type: string
          description: name of the repo to add
          name: repo
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      description: >-
        This does not delete the repository, it only removes the repository from
        the team.
      produces:
        - application/json
      tags:
        - organization
      summary: Remove a repository from a team
      operationId: orgRemoveTeamRepository
      parameters:
        - type: integer
          format: int64
          description: id of the team
          name: id
          in: path
          required: true
        - type: string
          description: organization that owns the repo to remove
          name: org
          in: path
          required: true
        - type: string
          description: name of the repo to remove
          name: repo
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /token:
    get:
      produces:
        - application/json
      tags:
        - miscellaneous
      summary: Get the currently authenticated token
      operationId: getCurrentToken
      responses:
        '200':
          $ref: '#/responses/CurrentAccessToken'
    delete:
      produces:
        - application/json
      tags:
        - miscellaneous
      summary: Delete the currently authenticated token
      operationId: deleteCurrentToken
      responses:
        '204':
          description: token deleted
  /topics/search:
    get:
      produces:
        - application/json
      tags:
        - repository
      summary: search topics via keyword
      operationId: topicSearch
      parameters:
        - type: string
          description: keywords to search
          name: q
          in: query
          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
      responses:
        '200':
          $ref: '#/responses/TopicListResponse'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /user:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Get the authenticated user
      operationId: userGetCurrent
      responses:
        '200':
          $ref: '#/responses/User'
  /user/actions/jobs:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Get workflow jobs
      operationId: getUserWorkflowJobs
      parameters:
        - type: string
          description: >-
            workflow status (pending, queued, in_progress, failure, success,
            skipped)
          name: status
          in: query
        - 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
        - type: string
          description: sort jobs by attribute. Supported values are "id". Default is "id"
          name: sort
          in: query
        - type: string
          description: >-
            sort order, either "asc" (ascending) or "desc" (descending). Default
            is "asc"
          name: order
          in: query
      responses:
        '200':
          $ref: '#/responses/WorkflowJobsList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /user/actions/runners:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Get user-level runners
      operationId: getUserRunners
      parameters:
        - type: boolean
          description: filter by disabled status (true or false)
          name: disabled
          in: query
      responses:
        '200':
          $ref: '#/responses/RunnerList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /user/actions/runners/registration-token:
    post:
      produces:
        - application/json
      tags:
        - user
      summary: Get a user's actions runner registration token
      operationId: userCreateRunnerRegistrationToken
      responses:
        '200':
          $ref: '#/responses/RegistrationToken'
  /user/actions/runners/{runner_id}:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Get a user-level runner
      operationId: getUserRunner
      parameters:
        - type: string
          description: id of the runner
          name: runner_id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Runner'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - user
      summary: Delete a user-level runner
      operationId: deleteUserRunner
      parameters:
        - type: string
          description: id of the runner
          name: runner_id
          in: path
          required: true
      responses:
        '204':
          description: runner has been deleted
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - user
      summary: Update a user-level runner
      operationId: updateUserRunner
      parameters:
        - type: string
          description: id of the runner
          name: runner_id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditActionRunnerOption'
      responses:
        '200':
          $ref: '#/responses/Runner'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /user/actions/runs:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Get workflow runs
      operationId: getUserWorkflowRuns
      parameters:
        - type: string
          description: workflow event name
          name: event
          in: query
        - type: string
          description: workflow branch
          name: branch
          in: query
        - type: string
          description: >-
            workflow status (pending, queued, in_progress, failure, success,
            skipped)
          name: status
          in: query
        - type: string
          description: triggered by user
          name: actor
          in: query
        - type: string
          description: triggering sha of the workflow run
          name: head_sha
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/WorkflowRunsList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /user/actions/secrets/{secretname}:
    put:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - user
      summary: Create or Update a secret value in a user scope
      operationId: updateUserSecret
      parameters:
        - type: string
          description: name of the secret
          name: secretname
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateOrUpdateSecretOption'
      responses:
        '201':
          description: response when creating a secret
        '204':
          description: response when updating a secret
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    delete:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - user
      summary: Delete a secret in a user scope
      operationId: deleteUserSecret
      parameters:
        - type: string
          description: name of the secret
          name: secretname
          in: path
          required: true
      responses:
        '204':
          description: delete one secret of the user
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /user/actions/variables:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Get the user-level list of variables which is created by current doer
      operationId: getUserVariablesList
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/VariableList'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /user/actions/variables/{variablename}:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Get a user-level variable which is created by current doer
      operationId: getUserVariable
      parameters:
        - type: string
          description: name of the variable
          name: variablename
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/ActionVariable'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    put:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - user
      summary: Update a user-level variable which is created by current doer
      operationId: updateUserVariable
      parameters:
        - type: string
          description: name of the variable
          name: variablename
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/UpdateVariableOption'
      responses:
        '201':
          description: response when updating a variable
        '204':
          description: response when updating a variable
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - user
      summary: Create a user-level variable
      operationId: createUserVariable
      parameters:
        - type: string
          description: name of the variable
          name: variablename
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateVariableOption'
      responses:
        '201':
          description: successfully created the user-level variable
        '400':
          $ref: '#/responses/error'
        '409':
          description: variable name already exists.
    delete:
      produces:
        - application/json
      tags:
        - user
      summary: Delete a user-level variable which is created by current doer
      operationId: deleteUserVariable
      parameters:
        - type: string
          description: name of the variable
          name: variablename
          in: path
          required: true
      responses:
        '201':
          description: response when deleting a variable
        '204':
          description: response when deleting a variable
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /user/applications/oauth2:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the authenticated user's oauth2 applications
      operationId: userGetOauth2Application
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/OAuth2ApplicationList'
    post:
      produces:
        - application/json
      tags:
        - user
      summary: creates a new OAuth2 application
      operationId: userCreateOAuth2Application
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreateOAuth2ApplicationOptions'
      responses:
        '201':
          $ref: '#/responses/OAuth2Application'
        '400':
          $ref: '#/responses/error'
  /user/applications/oauth2/{id}:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: get an OAuth2 Application
      operationId: userGetOAuth2Application
      parameters:
        - type: integer
          format: int64
          description: Application ID to be found
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/OAuth2Application'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - user
      summary: delete an OAuth2 Application
      operationId: userDeleteOAuth2Application
      parameters:
        - type: integer
          format: int64
          description: token to be deleted
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    patch:
      produces:
        - application/json
      tags:
        - user
      summary: >-
        update an OAuth2 Application, this includes regenerating the client
        secret
      operationId: userUpdateOAuth2Application
      parameters:
        - type: integer
          format: int64
          description: application to be updated
          name: id
          in: path
          required: true
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreateOAuth2ApplicationOptions'
      responses:
        '200':
          $ref: '#/responses/OAuth2Application'
        '400':
          $ref: '#/responses/error'
        '404':
          $ref: '#/responses/notFound'
  /user/avatar:
    post:
      produces:
        - application/json
      tags:
        - user
      summary: Update Avatar
      operationId: userUpdateAvatar
      parameters:
        - name: body
          in: body
          schema:
            $ref: '#/definitions/UpdateUserAvatarOption'
      responses:
        '204':
          $ref: '#/responses/empty'
    delete:
      produces:
        - application/json
      tags:
        - user
      summary: Delete Avatar
      operationId: userDeleteAvatar
      responses:
        '204':
          $ref: '#/responses/empty'
  /user/blocks:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List users blocked by the authenticated user
      operationId: userListBlocks
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/UserList'
  /user/blocks/{username}:
    get:
      tags:
        - user
      summary: Check if a user is blocked by the authenticated user
      operationId: userCheckUserBlock
      parameters:
        - type: string
          description: username of the user to check
          name: username
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    put:
      tags:
        - user
      summary: Block a user
      operationId: userBlockUser
      parameters:
        - type: string
          description: username of the user to block
          name: username
          in: path
          required: true
        - type: string
          description: optional note for the block
          name: note
          in: query
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
    delete:
      tags:
        - user
      summary: Unblock a user
      operationId: userUnblockUser
      parameters:
        - type: string
          description: username of the user to unblock
          name: username
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /user/emails:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the authenticated user's email addresses
      operationId: userListEmails
      responses:
        '200':
          $ref: '#/responses/EmailList'
    post:
      produces:
        - application/json
      tags:
        - user
      summary: Add email addresses
      operationId: userAddEmail
      parameters:
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateEmailOption'
      responses:
        '201':
          $ref: '#/responses/EmailList'
        '422':
          $ref: '#/responses/validationError'
    delete:
      produces:
        - application/json
      tags:
        - user
      summary: Delete email addresses
      operationId: userDeleteEmail
      parameters:
        - name: body
          in: body
          schema:
            $ref: '#/definitions/DeleteEmailOption'
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
  /user/followers:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the authenticated user's followers
      operationId: userCurrentListFollowers
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/UserList'
  /user/following:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the users that the authenticated user is following
      operationId: userCurrentListFollowing
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/UserList'
  /user/following/{username}:
    get:
      tags:
        - user
      summary: Check whether a user is followed by the authenticated user
      operationId: userCurrentCheckFollowing
      parameters:
        - type: string
          description: username of the user to check for authenticated followers
          name: username
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
    put:
      tags:
        - user
      summary: Follow a user
      operationId: userCurrentPutFollow
      parameters:
        - type: string
          description: username of the user to follow
          name: username
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - user
      summary: Unfollow a user
      operationId: userCurrentDeleteFollow
      parameters:
        - type: string
          description: username of the user to unfollow
          name: username
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
  /user/gpg_key_token:
    get:
      produces:
        - text/plain
      tags:
        - user
      summary: Get a Token to verify
      operationId: getVerificationToken
      responses:
        '200':
          $ref: '#/responses/string'
        '404':
          $ref: '#/responses/notFound'
  /user/gpg_key_verify:
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - user
      summary: Verify a GPG key
      operationId: userVerifyGPGKey
      responses:
        '201':
          $ref: '#/responses/GPGKey'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /user/gpg_keys:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the authenticated user's GPG keys
      operationId: userCurrentListGPGKeys
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/GPGKeyList'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - user
      summary: Create a GPG key
      operationId: userCurrentPostGPGKey
      parameters:
        - name: Form
          in: body
          schema:
            $ref: '#/definitions/CreateGPGKeyOption'
      responses:
        '201':
          $ref: '#/responses/GPGKey'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/validationError'
  /user/gpg_keys/{id}:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Get a GPG key
      operationId: userCurrentGetGPGKey
      parameters:
        - type: integer
          format: int64
          description: id of key to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/GPGKey'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - user
      summary: Remove a GPG key
      operationId: userCurrentDeleteGPGKey
      parameters:
        - type: integer
          format: int64
          description: id of key to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /user/hooks:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the authenticated user's webhooks
      operationId: userListHooks
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/HookList'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - user
      summary: Create a hook
      operationId: userCreateHook
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreateHookOption'
      responses:
        '201':
          $ref: '#/responses/Hook'
  /user/hooks/{id}:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Get a hook
      operationId: userGetHook
      parameters:
        - type: integer
          format: int64
          description: id of the hook to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/Hook'
    delete:
      produces:
        - application/json
      tags:
        - user
      summary: Delete a hook
      operationId: userDeleteHook
      parameters:
        - type: integer
          format: int64
          description: id of the hook to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
    patch:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - user
      summary: Update a hook
      operationId: userEditHook
      parameters:
        - type: integer
          format: int64
          description: id of the hook to update
          name: id
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/EditHookOption'
      responses:
        '200':
          $ref: '#/responses/Hook'
  /user/keys:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the authenticated user's public keys
      operationId: userCurrentListKeys
      parameters:
        - type: string
          description: fingerprint of the key
          name: fingerprint
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/PublicKeyList'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - user
      summary: Create a public key
      operationId: userCurrentPostKey
      parameters:
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateKeyOption'
      responses:
        '201':
          $ref: '#/responses/PublicKey'
        '422':
          $ref: '#/responses/validationError'
  /user/keys/{id}:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Get a public key
      operationId: userCurrentGetKey
      parameters:
        - type: integer
          format: int64
          description: id of key to get
          name: id
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/PublicKey'
        '404':
          $ref: '#/responses/notFound'
    delete:
      produces:
        - application/json
      tags:
        - user
      summary: Delete a public key
      operationId: userCurrentDeleteKey
      parameters:
        - type: integer
          format: int64
          description: id of key to delete
          name: id
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /user/orgs:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List the current user's organizations
      operationId: orgListCurrentUserOrgs
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/OrganizationList'
        '404':
          $ref: '#/responses/notFound'
  /user/repos:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the repos that the authenticated user owns
      operationId: userCurrentListRepos
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/RepositoryList'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - repository
        - user
      summary: Create a repository
      operationId: createCurrentUserRepo
      parameters:
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateRepoOption'
      responses:
        '201':
          $ref: '#/responses/Repository'
        '400':
          $ref: '#/responses/error'
        '409':
          description: The repository with the same name already exists.
        '422':
          $ref: '#/responses/validationError'
  /user/settings:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Get user settings
      operationId: getUserSettings
      responses:
        '200':
          $ref: '#/responses/UserSettings'
    patch:
      produces:
        - application/json
      tags:
        - user
      summary: Update user settings
      operationId: updateUserSettings
      parameters:
        - name: body
          in: body
          schema:
            $ref: '#/definitions/UserSettingsOptions'
      responses:
        '200':
          $ref: '#/responses/UserSettings'
  /user/starred:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: The repos that the authenticated user has starred
      operationId: userCurrentListStarred
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/RepositoryList'
        '403':
          $ref: '#/responses/forbidden'
  /user/starred/{owner}/{repo}:
    get:
      tags:
        - user
      summary: Whether the authenticated is starring the repo
      operationId: userCurrentCheckStarring
      parameters:
        - type: string
          description: owner of the repo
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo
          name: repo
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    put:
      tags:
        - user
      summary: Star the given repo
      operationId: userCurrentPutStar
      parameters:
        - type: string
          description: owner of the repo to star
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo to star
          name: repo
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
    delete:
      tags:
        - user
      summary: Unstar the given repo
      operationId: userCurrentDeleteStar
      parameters:
        - type: string
          description: owner of the repo to unstar
          name: owner
          in: path
          required: true
        - type: string
          description: name of the repo to unstar
          name: repo
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /user/stopwatches:
    get:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - user
      summary: Get list of all existing stopwatches
      operationId: userGetStopWatches
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/StopWatchList'
  /user/subscriptions:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List repositories watched by the authenticated user
      operationId: userCurrentListSubscriptions
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/RepositoryList'
  /user/teams:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List all the teams a user belongs to
      operationId: userListTeams
      parameters:
        - 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
      responses:
        '200':
          $ref: '#/responses/TeamList'
  /user/times:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the current user's tracked times
      operationId: userCurrentTrackedTimes
      parameters:
        - 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
        - type: string
          format: date-time
          description: >-
            Only show times updated after the given time. This is a timestamp in
            RFC 3339 format
          name: since
          in: query
        - type: string
          format: date-time
          description: >-
            Only show times updated before the given time. This is a timestamp
            in RFC 3339 format
          name: before
          in: query
      responses:
        '200':
          $ref: '#/responses/TrackedTimeList'
  /users/search:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Search for users
      operationId: userSearch
      parameters:
        - type: string
          description: keyword
          name: q
          in: query
        - type: integer
          format: int64
          description: ID of the user to search for
          name: uid
          in: query
        - 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
      responses:
        '200':
          description: SearchResults of a successful search
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/User'
              ok:
                type: boolean
  /users/{username}:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Get a user
      operationId: userGet
      parameters:
        - type: string
          description: username of the user whose data is to be listed
          name: username
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/User'
        '404':
          $ref: '#/responses/notFound'
  /users/{username}/activities/feeds:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List a user's activity feeds
      operationId: userListActivityFeeds
      parameters:
        - type: string
          description: username of the user whose activity feeds are to be listed
          name: username
          in: path
          required: true
        - type: boolean
          description: if true, only show actions performed by the requested user
          name: only-performed-by
          in: query
        - type: string
          format: date
          description: the date of the activities to be found
          name: date
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/ActivityFeedsList'
        '404':
          $ref: '#/responses/notFound'
  /users/{username}/followers:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the given user's followers
      operationId: userListFollowers
      parameters:
        - type: string
          description: username of the user whose followers are to be listed
          name: username
          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
      responses:
        '200':
          $ref: '#/responses/UserList'
        '404':
          $ref: '#/responses/notFound'
  /users/{username}/following:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the users that the given user is following
      operationId: userListFollowing
      parameters:
        - type: string
          description: username of the user whose followed users are to be listed
          name: username
          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
      responses:
        '200':
          $ref: '#/responses/UserList'
        '404':
          $ref: '#/responses/notFound'
  /users/{username}/following/{target}:
    get:
      tags:
        - user
      summary: Check if one user is following another user
      operationId: userCheckFollowing
      parameters:
        - type: string
          description: username of the following user
          name: username
          in: path
          required: true
        - type: string
          description: username of the followed user
          name: target
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '404':
          $ref: '#/responses/notFound'
  /users/{username}/gpg_keys:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the given user's GPG keys
      operationId: userListGPGKeys
      parameters:
        - type: string
          description: username of the user whose GPG key list is to be obtained
          name: username
          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
      responses:
        '200':
          $ref: '#/responses/GPGKeyList'
        '404':
          $ref: '#/responses/notFound'
  /users/{username}/heatmap:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: Get a user's heatmap
      operationId: userGetHeatmapData
      parameters:
        - type: string
          description: username of the user whose heatmap is to be obtained
          name: username
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/UserHeatmapData'
        '404':
          $ref: '#/responses/notFound'
  /users/{username}/keys:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the given user's public keys
      operationId: userListKeys
      parameters:
        - type: string
          description: username of the user whose public keys are to be listed
          name: username
          in: path
          required: true
        - type: string
          description: fingerprint of the key
          name: fingerprint
          in: query
        - 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
      responses:
        '200':
          $ref: '#/responses/PublicKeyList'
        '404':
          $ref: '#/responses/notFound'
  /users/{username}/orgs:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: List a user's organizations
      operationId: orgListUserOrgs
      parameters:
        - type: string
          description: username of the user whose organizations are to be listed
          name: username
          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
      responses:
        '200':
          $ref: '#/responses/OrganizationList'
        '404':
          $ref: '#/responses/notFound'
  /users/{username}/orgs/{org}/permissions:
    get:
      produces:
        - application/json
      tags:
        - organization
      summary: Get user permissions in organization
      operationId: orgGetUserPermissions
      parameters:
        - type: string
          description: username of the user whose permissions are to be obtained
          name: username
          in: path
          required: true
        - type: string
          description: name of the organization
          name: org
          in: path
          required: true
      responses:
        '200':
          $ref: '#/responses/OrganizationPermissions'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /users/{username}/repos:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the repos owned by the given user
      operationId: userListRepos
      parameters:
        - type: string
          description: username of the user whose owned repos are to be listed
          name: username
          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
      responses:
        '200':
          $ref: '#/responses/RepositoryList'
        '404':
          $ref: '#/responses/notFound'
  /users/{username}/starred:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: The repos that the given user has starred
      operationId: userListStarred
      parameters:
        - type: string
          description: username of the user whose starred repos are to be listed
          name: username
          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
      responses:
        '200':
          $ref: '#/responses/RepositoryList'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
  /users/{username}/subscriptions:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the repositories watched by a user
      operationId: userListSubscriptions
      parameters:
        - type: string
          description: username of the user whose watched repos are to be listed
          name: username
          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
      responses:
        '200':
          $ref: '#/responses/RepositoryList'
        '404':
          $ref: '#/responses/notFound'
  /users/{username}/tokens:
    get:
      produces:
        - application/json
      tags:
        - user
      summary: List the authenticated user's access tokens
      operationId: userGetTokens
      parameters:
        - type: string
          description: username of to user whose access tokens are to be listed
          name: username
          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
      responses:
        '200':
          $ref: '#/responses/AccessTokenList'
        '403':
          $ref: '#/responses/forbidden'
    post:
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - user
      summary: Create an access token
      operationId: userCreateToken
      parameters:
        - type: string
          description: username of the user whose token is to be created
          name: username
          in: path
          required: true
        - name: body
          in: body
          schema:
            $ref: '#/definitions/CreateAccessTokenOption'
      responses:
        '201':
          $ref: '#/responses/AccessToken'
        '400':
          $ref: '#/responses/error'
        '403':
          $ref: '#/responses/forbidden'
  /users/{username}/tokens/{token}:
    delete:
      produces:
        - application/json
      tags:
        - user
      summary: delete an access token
      operationId: userDeleteAccessToken
      parameters:
        - type: string
          description: username of the user whose token is to be deleted
          name: username
          in: path
          required: true
        - type: string
          description: token to be deleted, identified by ID and if not available by name
          name: token
          in: path
          required: true
      responses:
        '204':
          $ref: '#/responses/empty'
        '403':
          $ref: '#/responses/forbidden'
        '404':
          $ref: '#/responses/notFound'
        '422':
          $ref: '#/responses/error'
  /version:
    get:
      produces:
        - application/json
      tags:
        - miscellaneous
      summary: Returns the version of the Gitea application
      operationId: getVersion
      responses:
        '200':
          $ref: '#/responses/ServerVersion'
definitions:
  APIError:
    description: APIError is an api error with a message
    type: object
    properties:
      message:
        description: Message contains the error description
        type: string
        x-go-name: Message
      url:
        description: URL contains the documentation URL for this error
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  AccessToken:
    type: object
    title: AccessToken represents an API access token.
    properties:
      created_at:
        description: The timestamp when the token was created
        type: string
        format: date-time
        x-go-name: Created
      id:
        description: The unique identifier of the access token
        type: integer
        format: int64
        x-go-name: ID
      last_used_at:
        description: The timestamp when the token was last used
        type: string
        format: date-time
        x-go-name: Updated
      name:
        description: The name of the access token
        type: string
        x-go-name: Name
      scopes:
        description: The scopes granted to this access token
        type: array
        items:
          type: string
        x-go-name: Scopes
      sha1:
        description: The SHA1 hash of the access token
        type: string
        x-go-name: Token
      token_last_eight:
        description: The last eight characters of the token
        type: string
        x-go-name: TokenLastEight
    x-go-package: gitea.dev/modules/structs
  ActionArtifact:
    description: ActionArtifact represents a ActionArtifact
    type: object
    properties:
      archive_download_url:
        type: string
        x-go-name: ArchiveDownloadURL
      created_at:
        type: string
        format: date-time
        x-go-name: CreatedAt
      expired:
        type: boolean
        x-go-name: Expired
      expires_at:
        type: string
        format: date-time
        x-go-name: ExpiresAt
      id:
        type: integer
        format: int64
        x-go-name: ID
      name:
        type: string
        x-go-name: Name
      size_in_bytes:
        type: integer
        format: int64
        x-go-name: SizeInBytes
      updated_at:
        type: string
        format: date-time
        x-go-name: UpdatedAt
      url:
        type: string
        x-go-name: URL
      workflow_run:
        $ref: '#/definitions/ActionWorkflowRun'
    x-go-package: gitea.dev/modules/structs
  ActionArtifactsResponse:
    description: ActionArtifactsResponse returns ActionArtifacts
    type: object
    properties:
      artifacts:
        type: array
        items:
          $ref: '#/definitions/ActionArtifact'
        x-go-name: Entries
      total_count:
        type: integer
        format: int64
        x-go-name: TotalCount
    x-go-package: gitea.dev/modules/structs
  ActionRunner:
    description: ActionRunner represents a Runner
    type: object
    properties:
      busy:
        type: boolean
        x-go-name: Busy
      disabled:
        type: boolean
        x-go-name: Disabled
      ephemeral:
        type: boolean
        x-go-name: Ephemeral
      id:
        type: integer
        format: int64
        x-go-name: ID
      labels:
        type: array
        items:
          $ref: '#/definitions/ActionRunnerLabel'
        x-go-name: Labels
      name:
        type: string
        x-go-name: Name
      status:
        type: string
        x-go-name: Status
    x-go-package: gitea.dev/modules/structs
  ActionRunnerLabel:
    description: ActionRunnerLabel represents a Runner Label
    type: object
    properties:
      id:
        type: integer
        format: int64
        x-go-name: ID
      name:
        type: string
        x-go-name: Name
      type:
        type: string
        x-go-name: Type
    x-go-package: gitea.dev/modules/structs
  ActionRunnersResponse:
    description: ActionRunnersResponse returns Runners
    type: object
    properties:
      runners:
        type: array
        items:
          $ref: '#/definitions/ActionRunner'
        x-go-name: Entries
      total_count:
        type: integer
        format: int64
        x-go-name: TotalCount
    x-go-package: gitea.dev/modules/structs
  ActionTask:
    description: ActionTask represents a ActionTask
    type: object
    properties:
      created_at:
        type: string
        format: date-time
        x-go-name: CreatedAt
      display_title:
        description: DisplayTitle is the display title for the workflow run
        type: string
        x-go-name: DisplayTitle
      event:
        description: Event is the type of event that triggered the workflow
        type: string
        x-go-name: Event
      head_branch:
        description: HeadBranch is the branch that triggered the workflow
        type: string
        x-go-name: HeadBranch
      head_sha:
        description: HeadSHA is the commit SHA that triggered the workflow
        type: string
        x-go-name: HeadSHA
      id:
        description: ID is the unique identifier for the action task
        type: integer
        format: int64
        x-go-name: ID
      name:
        description: Name is the name of the workflow
        type: string
        x-go-name: Name
      run_number:
        description: RunNumber is the sequential number of the workflow run
        type: integer
        format: int64
        x-go-name: RunNumber
      run_started_at:
        type: string
        format: date-time
        x-go-name: RunStartedAt
      status:
        description: Status indicates the current status of the workflow run
        type: string
        x-go-name: Status
      updated_at:
        type: string
        format: date-time
        x-go-name: UpdatedAt
      url:
        description: URL is the API URL for this workflow run
        type: string
        x-go-name: URL
      workflow_id:
        description: WorkflowID is the identifier of the workflow
        type: string
        x-go-name: WorkflowID
    x-go-package: gitea.dev/modules/structs
  ActionTaskResponse:
    description: ActionTaskResponse returns a ActionTask
    type: object
    properties:
      total_count:
        description: TotalCount is the total number of workflow runs
        type: integer
        format: int64
        x-go-name: TotalCount
      workflow_runs:
        description: Entries contains the list of workflow runs
        type: array
        items:
          $ref: '#/definitions/ActionTask'
        x-go-name: Entries
    x-go-package: gitea.dev/modules/structs
  ActionVariable:
    description: ActionVariable return value of the query API
    type: object
    properties:
      data:
        description: the value of the variable
        type: string
        x-go-name: Data
      description:
        description: the description of the variable
        type: string
        x-go-name: Description
      name:
        description: the name of the variable
        type: string
        x-go-name: Name
      owner_id:
        description: the owner to which the variable belongs
        type: integer
        format: int64
        x-go-name: OwnerID
      repo_id:
        description: the repository to which the variable belongs
        type: integer
        format: int64
        x-go-name: RepoID
    x-go-package: gitea.dev/modules/structs
  ActionWorkflow:
    description: ActionWorkflow represents a ActionWorkflow
    type: object
    properties:
      badge_url:
        description: BadgeURL is the URL for the workflow badge
        type: string
        x-go-name: BadgeURL
      created_at:
        type: string
        format: date-time
        x-go-name: CreatedAt
      deleted_at:
        type: string
        format: date-time
        x-go-name: DeletedAt
      html_url:
        description: HTMLURL is the web URL for viewing the workflow
        type: string
        x-go-name: HTMLURL
      id:
        description: ID is the unique identifier for the workflow
        type: string
        x-go-name: ID
      name:
        description: Name is the name of the workflow
        type: string
        x-go-name: Name
      path:
        description: Path is the file path of the workflow
        type: string
        x-go-name: Path
      state:
        description: State indicates if the workflow is active or disabled
        type: string
        x-go-name: State
      updated_at:
        type: string
        format: date-time
        x-go-name: UpdatedAt
      url:
        description: URL is the API URL for this workflow
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  ActionWorkflowJob:
    description: ActionWorkflowJob represents a WorkflowJob
    type: object
    properties:
      completed_at:
        type: string
        format: date-time
        x-go-name: CompletedAt
      conclusion:
        type: string
        x-go-name: Conclusion
      created_at:
        type: string
        format: date-time
        x-go-name: CreatedAt
      head_branch:
        type: string
        x-go-name: HeadBranch
      head_sha:
        type: string
        x-go-name: HeadSha
      html_url:
        type: string
        x-go-name: HTMLURL
      id:
        type: integer
        format: int64
        x-go-name: ID
      labels:
        type: array
        items:
          type: string
        x-go-name: Labels
      name:
        type: string
        x-go-name: Name
      run_attempt:
        type: integer
        format: int64
        x-go-name: RunAttempt
      run_id:
        type: integer
        format: int64
        x-go-name: RunID
      run_url:
        type: string
        x-go-name: RunURL
      runner_id:
        type: integer
        format: int64
        x-go-name: RunnerID
      runner_name:
        type: string
        x-go-name: RunnerName
      started_at:
        type: string
        format: date-time
        x-go-name: StartedAt
      status:
        type: string
        x-go-name: Status
      steps:
        type: array
        items:
          $ref: '#/definitions/ActionWorkflowStep'
        x-go-name: Steps
      url:
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  ActionWorkflowJobsResponse:
    description: ActionWorkflowJobsResponse returns ActionWorkflowJobs
    type: object
    properties:
      jobs:
        type: array
        items:
          $ref: '#/definitions/ActionWorkflowJob'
        x-go-name: Entries
      total_count:
        type: integer
        format: int64
        x-go-name: TotalCount
    x-go-package: gitea.dev/modules/structs
  ActionWorkflowResponse:
    description: ActionWorkflowResponse returns a ActionWorkflow
    type: object
    properties:
      total_count:
        type: integer
        format: int64
        x-go-name: TotalCount
      workflows:
        type: array
        items:
          $ref: '#/definitions/ActionWorkflow'
        x-go-name: Workflows
    x-go-package: gitea.dev/modules/structs
  ActionWorkflowRun:
    description: ActionWorkflowRun represents a WorkflowRun
    type: object
    properties:
      actor:
        $ref: '#/definitions/User'
      completed_at:
        type: string
        format: date-time
        x-go-name: CompletedAt
      conclusion:
        type: string
        x-go-name: Conclusion
      display_title:
        type: string
        x-go-name: DisplayTitle
      event:
        type: string
        x-go-name: Event
      head_branch:
        type: string
        x-go-name: HeadBranch
      head_repository:
        $ref: '#/definitions/Repository'
      head_sha:
        type: string
        x-go-name: HeadSha
      html_url:
        type: string
        x-go-name: HTMLURL
      id:
        type: integer
        format: int64
        x-go-name: ID
      path:
        type: string
        x-go-name: Path
      previous_attempt_url:
        description: >-
          PreviousAttemptURL is the API URL of the previous attempt of this run,
          e.g. ".../actions/runs/{run_id}/attempts/{attempt-1}".

          It is set only when the current attempt is > 1 (i.e. a rerun). For the
          first attempt, or for legacy runs that pre-date ActionRunAttempt, it
          is null.
        type: string
        x-go-name: PreviousAttemptURL
      pull_requests:
        type: array
        items:
          $ref: '#/definitions/PullRequestMinimal'
        x-go-name: PullRequests
      repository:
        $ref: '#/definitions/Repository'
      repository_id:
        type: integer
        format: int64
        x-go-name: RepositoryID
      run_attempt:
        description: >-
          RunAttempt is 1-based for runs created after ActionRunAttempt was
          introduced.

          A value of 0 is a legacy-only sentinel for runs created before
          attempts existed

          and indicates no corresponding /attempts/{n} resource is available.
        type: integer
        format: int64
        x-go-name: RunAttempt
      run_number:
        type: integer
        format: int64
        x-go-name: RunNumber
      started_at:
        type: string
        format: date-time
        x-go-name: StartedAt
      status:
        type: string
        x-go-name: Status
      trigger_actor:
        $ref: '#/definitions/User'
      url:
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  ActionWorkflowRunsResponse:
    description: ActionWorkflowRunsResponse returns ActionWorkflowRuns
    type: object
    properties:
      total_count:
        type: integer
        format: int64
        x-go-name: TotalCount
      workflow_runs:
        type: array
        items:
          $ref: '#/definitions/ActionWorkflowRun'
        x-go-name: Entries
    x-go-package: gitea.dev/modules/structs
  ActionWorkflowStep:
    description: ActionWorkflowStep represents a step of a WorkflowJob
    type: object
    properties:
      completed_at:
        type: string
        format: date-time
        x-go-name: CompletedAt
      conclusion:
        type: string
        x-go-name: Conclusion
      name:
        type: string
        x-go-name: Name
      number:
        type: integer
        format: int64
        x-go-name: Number
      started_at:
        type: string
        format: date-time
        x-go-name: StartedAt
      status:
        type: string
        x-go-name: Status
    x-go-package: gitea.dev/modules/structs
  Activity:
    type: object
    properties:
      act_user:
        $ref: '#/definitions/User'
      act_user_id:
        description: The ID of the user who performed the action
        type: integer
        format: int64
        x-go-name: ActUserID
      comment:
        $ref: '#/definitions/Comment'
      comment_id:
        description: The ID of the comment associated with the activity (if applicable)
        type: integer
        format: int64
        x-go-name: CommentID
      content:
        description: Additional content or details about the activity
        type: string
        x-go-name: Content
      created:
        description: The date and time when the activity occurred
        type: string
        format: date-time
        x-go-name: Created
      id:
        description: The unique identifier of the activity
        type: integer
        format: int64
        x-go-name: ID
      is_private:
        description: Whether this activity is from a private repository
        type: boolean
        x-go-name: IsPrivate
      op_type:
        description: the type of action
        type: string
        enum:
          - create_repo
          - rename_repo
          - star_repo
          - watch_repo
          - commit_repo
          - create_issue
          - create_pull_request
          - transfer_repo
          - push_tag
          - comment_issue
          - merge_pull_request
          - close_issue
          - reopen_issue
          - close_pull_request
          - reopen_pull_request
          - delete_tag
          - delete_branch
          - mirror_sync_push
          - mirror_sync_create
          - mirror_sync_delete
          - approve_pull_request
          - reject_pull_request
          - comment_pull
          - publish_release
          - pull_review_dismissed
          - pull_request_ready_for_review
          - auto_merge_pull_request
        x-go-name: OpType
      ref_name:
        description: >-
          The name of the git reference (branch/tag) associated with the
          activity
        type: string
        x-go-name: RefName
      repo:
        $ref: '#/definitions/Repository'
      repo_id:
        description: The ID of the repository associated with the activity
        type: integer
        format: int64
        x-go-name: RepoID
      user_id:
        description: The ID of the user who receives/sees this activity
        type: integer
        format: int64
        x-go-name: UserID
    x-go-package: gitea.dev/modules/structs
  AddCollaboratorOption:
    description: >-
      AddCollaboratorOption options when adding a user as a collaborator of a
      repository
    type: object
    properties:
      permission:
        description: |-
          Permission level to grant the collaborator
          read RepoWritePermissionRead
          write RepoWritePermissionWrite
          admin RepoWritePermissionAdmin
        type: string
        enum:
          - read
          - write
          - admin
        x-go-enum-desc: |-
          read RepoWritePermissionRead
          write RepoWritePermissionWrite
          admin RepoWritePermissionAdmin
        x-go-name: Permission
    x-go-package: gitea.dev/modules/structs
  AddTimeOption:
    description: AddTimeOption options for adding time to an issue
    type: object
    required:
      - time
    properties:
      created:
        type: string
        format: date-time
        x-go-name: Created
      time:
        description: time in seconds
        type: integer
        format: int64
        x-go-name: Time
      user_name:
        description: >-
          username of the user who spent the time working on the issue
          (optional)
        type: string
        x-go-name: User
    x-go-package: gitea.dev/modules/structs
  AnnotatedTag:
    description: AnnotatedTag represents an annotated tag
    type: object
    properties:
      message:
        description: The message associated with the annotated tag
        type: string
        x-go-name: Message
      object:
        $ref: '#/definitions/AnnotatedTagObject'
      sha:
        description: The SHA hash of the annotated tag
        type: string
        x-go-name: SHA
      tag:
        description: The name of the annotated tag
        type: string
        x-go-name: Tag
      tagger:
        $ref: '#/definitions/CommitUser'
      url:
        description: The URL to access the annotated tag
        type: string
        x-go-name: URL
      verification:
        $ref: '#/definitions/PayloadCommitVerification'
    x-go-package: gitea.dev/modules/structs
  AnnotatedTagObject:
    description: AnnotatedTagObject contains meta information of the tag object
    type: object
    properties:
      sha:
        description: The SHA hash of the tagged object
        type: string
        x-go-name: SHA
      type:
        description: The type of the tagged object (e.g., commit, tree)
        type: string
        x-go-name: Type
      url:
        description: The URL to access the tagged object
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  ApplyDiffPatchFileOptions:
    description: >-
      ApplyDiffPatchFileOptions options for applying a diff patch

      Note: `author` and `committer` are optional (if only one is given, it will
      be used for the other, otherwise the authenticated user will be used)
    type: object
    required:
      - content
    properties:
      author:
        $ref: '#/definitions/Identity'
      branch:
        description: >-
          branch (optional) is the base branch for the changes. If not supplied,
          the default branch is used
        type: string
        x-go-name: BranchName
      committer:
        $ref: '#/definitions/Identity'
      content:
        type: string
        x-go-name: Content
      dates:
        $ref: '#/definitions/CommitDateOptions'
      force_push:
        description: >-
          force_push (optional) will do a force-push if the new branch already
          exists
        type: boolean
        x-go-name: ForcePush
      message:
        description: >-
          message (optional) is the commit message of the changes. If not
          supplied, a default message will be used
        type: string
        x-go-name: Message
      new_branch:
        description: >-
          new_branch (optional) will make a new branch from base branch for the
          changes. If not supplied, the changes will be committed to the base
          branch
        type: string
        x-go-name: NewBranchName
      signoff:
        description: >-
          Add a Signed-off-by trailer by the committer at the end of the commit
          log message.
        type: boolean
        x-go-name: Signoff
    x-go-package: gitea.dev/modules/structs
  Attachment:
    description: Attachment a generic attachment
    type: object
    properties:
      browser_download_url:
        description: DownloadURL is the URL to download the attachment
        type: string
        x-go-name: DownloadURL
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      download_count:
        description: >-
          DownloadCount is the number of times the attachment has been
          downloaded
        type: integer
        format: int64
        x-go-name: DownloadCount
      id:
        description: ID is the unique identifier for the attachment
        type: integer
        format: int64
        x-go-name: ID
      name:
        description: Name is the filename of the attachment
        type: string
        x-go-name: Name
      size:
        description: Size is the file size in bytes
        type: integer
        format: int64
        x-go-name: Size
      uuid:
        description: UUID is the unique identifier for the attachment file
        type: string
        x-go-name: UUID
    x-go-package: gitea.dev/modules/structs
  Badge:
    description: Badge represents a user badge
    type: object
    properties:
      description:
        type: string
        x-go-name: Description
      id:
        type: integer
        format: int64
        x-go-name: ID
      image_url:
        type: string
        x-go-name: ImageURL
      slug:
        type: string
        x-go-name: Slug
    x-go-package: gitea.dev/modules/structs
  Branch:
    description: Branch represents a repository branch
    type: object
    properties:
      commit:
        $ref: '#/definitions/PayloadCommit'
      effective_branch_protection_name:
        description: >-
          EffectiveBranchProtectionName is the name of the effective branch
          protection rule
        type: string
        x-go-name: EffectiveBranchProtectionName
      enable_status_check:
        description: EnableStatusCheck indicates if status checks are enabled
        type: boolean
        x-go-name: EnableStatusCheck
      name:
        description: Name is the branch name
        type: string
        x-go-name: Name
      protected:
        description: Protected indicates if the branch is protected
        type: boolean
        x-go-name: Protected
      required_approvals:
        description: >-
          RequiredApprovals is the number of required approvals for pull
          requests
        type: integer
        format: int64
        x-go-name: RequiredApprovals
      status_check_contexts:
        description: >-
          StatusCheckContexts contains the list of required status check
          contexts
        type: array
        items:
          type: string
        x-go-name: StatusCheckContexts
      user_can_merge:
        description: UserCanMerge indicates if the current user can merge to this branch
        type: boolean
        x-go-name: UserCanMerge
      user_can_push:
        description: UserCanPush indicates if the current user can push to this branch
        type: boolean
        x-go-name: UserCanPush
    x-go-package: gitea.dev/modules/structs
  BranchProtection:
    description: BranchProtection represents a branch protection for a repository
    type: object
    properties:
      approvals_whitelist_teams:
        type: array
        items:
          type: string
        x-go-name: ApprovalsWhitelistTeams
      approvals_whitelist_username:
        type: array
        items:
          type: string
        x-go-name: ApprovalsWhitelistUsernames
      block_admin_merge_override:
        type: boolean
        x-go-name: BlockAdminMergeOverride
      block_on_official_review_requests:
        type: boolean
        x-go-name: BlockOnOfficialReviewRequests
      block_on_outdated_branch:
        type: boolean
        x-go-name: BlockOnOutdatedBranch
      block_on_rejected_reviews:
        type: boolean
        x-go-name: BlockOnRejectedReviews
      branch_name:
        description: 'Deprecated: true'
        type: string
        x-go-name: BranchName
      bypass_allowlist_teams:
        type: array
        items:
          type: string
        x-go-name: BypassAllowlistTeams
      bypass_allowlist_usernames:
        type: array
        items:
          type: string
        x-go-name: BypassAllowlistUsernames
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      dismiss_stale_approvals:
        type: boolean
        x-go-name: DismissStaleApprovals
      enable_approvals_whitelist:
        type: boolean
        x-go-name: EnableApprovalsWhitelist
      enable_bypass_allowlist:
        type: boolean
        x-go-name: EnableBypassAllowlist
      enable_force_push:
        type: boolean
        x-go-name: EnableForcePush
      enable_force_push_allowlist:
        type: boolean
        x-go-name: EnableForcePushAllowlist
      enable_merge_whitelist:
        type: boolean
        x-go-name: EnableMergeWhitelist
      enable_push:
        type: boolean
        x-go-name: EnablePush
      enable_push_whitelist:
        type: boolean
        x-go-name: EnablePushWhitelist
      enable_status_check:
        type: boolean
        x-go-name: EnableStatusCheck
      force_push_allowlist_deploy_keys:
        type: boolean
        x-go-name: ForcePushAllowlistDeployKeys
      force_push_allowlist_teams:
        type: array
        items:
          type: string
        x-go-name: ForcePushAllowlistTeams
      force_push_allowlist_usernames:
        type: array
        items:
          type: string
        x-go-name: ForcePushAllowlistUsernames
      ignore_stale_approvals:
        type: boolean
        x-go-name: IgnoreStaleApprovals
      merge_whitelist_teams:
        type: array
        items:
          type: string
        x-go-name: MergeWhitelistTeams
      merge_whitelist_usernames:
        type: array
        items:
          type: string
        x-go-name: MergeWhitelistUsernames
      priority:
        description: Priority is the priority of this branch protection rule
        type: integer
        format: int64
        x-go-name: Priority
      protected_file_patterns:
        type: string
        x-go-name: ProtectedFilePatterns
      push_whitelist_deploy_keys:
        type: boolean
        x-go-name: PushWhitelistDeployKeys
      push_whitelist_teams:
        type: array
        items:
          type: string
        x-go-name: PushWhitelistTeams
      push_whitelist_usernames:
        type: array
        items:
          type: string
        x-go-name: PushWhitelistUsernames
      require_signed_commits:
        type: boolean
        x-go-name: RequireSignedCommits
      required_approvals:
        type: integer
        format: int64
        x-go-name: RequiredApprovals
      rule_name:
        description: RuleName is the name of the branch protection rule
        type: string
        x-go-name: RuleName
      status_check_contexts:
        type: array
        items:
          type: string
        x-go-name: StatusCheckContexts
      unprotected_file_patterns:
        type: string
        x-go-name: UnprotectedFilePatterns
      updated_at:
        type: string
        format: date-time
        x-go-name: Updated
    x-go-package: gitea.dev/modules/structs
  ChangeFileOperation:
    description: ChangeFileOperation for creating, updating or deleting a file
    type: object
    required:
      - operation
      - path
    properties:
      content:
        description: new or updated file content, it must be base64 encoded
        type: string
        x-go-name: ContentBase64
      from_path:
        description: old path of the file to move
        type: string
        x-go-name: FromPath
      operation:
        description: >-
          indicates what to do with the file: "create" for creating a new file,
          "update" for updating an existing file,

          "upload" for creating or updating a file, "rename" for renaming a
          file, and "delete" for deleting an existing file.
        type: string
        enum:
          - create
          - update
          - upload
          - rename
          - delete
        x-go-name: Operation
      path:
        description: path to the existing or new file
        type: string
        x-go-name: Path
      sha:
        description: >-
          the blob ID (SHA) for the file that already exists, required for
          changing existing files
        type: string
        x-go-name: SHA
    x-go-package: gitea.dev/modules/structs
  ChangeFilesOptions:
    description: >-
      ChangeFilesOptions options for creating, updating or deleting multiple
      files

      Note: `author` and `committer` are optional (if only one is given, it will
      be used for the other, otherwise the authenticated user will be used)
    type: object
    required:
      - files
    properties:
      author:
        $ref: '#/definitions/Identity'
      branch:
        description: >-
          branch (optional) is the base branch for the changes. If not supplied,
          the default branch is used
        type: string
        x-go-name: BranchName
      committer:
        $ref: '#/definitions/Identity'
      dates:
        $ref: '#/definitions/CommitDateOptions'
      files:
        description: list of file operations
        type: array
        items:
          $ref: '#/definitions/ChangeFileOperation'
        x-go-name: Files
      force_push:
        description: >-
          force_push (optional) will do a force-push if the new branch already
          exists
        type: boolean
        x-go-name: ForcePush
      message:
        description: >-
          message (optional) is the commit message of the changes. If not
          supplied, a default message will be used
        type: string
        x-go-name: Message
      new_branch:
        description: >-
          new_branch (optional) will make a new branch from base branch for the
          changes. If not supplied, the changes will be committed to the base
          branch
        type: string
        x-go-name: NewBranchName
      signoff:
        description: >-
          Add a Signed-off-by trailer by the committer at the end of the commit
          log message.
        type: boolean
        x-go-name: Signoff
    x-go-package: gitea.dev/modules/structs
  ChangedFile:
    description: ChangedFile store information about files affected by the pull request
    type: object
    properties:
      additions:
        description: The number of lines added to the file
        type: integer
        format: int64
        x-go-name: Additions
      changes:
        description: The total number of changes to the file
        type: integer
        format: int64
        x-go-name: Changes
      contents_url:
        description: The API URL to get the file contents
        type: string
        x-go-name: ContentsURL
      deletions:
        description: The number of lines deleted from the file
        type: integer
        format: int64
        x-go-name: Deletions
      filename:
        description: The name of the changed file
        type: string
        x-go-name: Filename
      html_url:
        description: The HTML URL to view the file changes
        type: string
        x-go-name: HTMLURL
      previous_filename:
        description: The previous filename if the file was renamed
        type: string
        x-go-name: PreviousFilename
      raw_url:
        description: The raw URL to download the file
        type: string
        x-go-name: RawURL
      status:
        description: The status of the file change (added, modified, deleted, etc.)
        type: string
        x-go-name: Status
    x-go-package: gitea.dev/modules/structs
  CombinedStatus:
    description: >-
      CombinedStatus holds the combined state of several statuses for a single
      commit
    type: object
    properties:
      commit_url:
        description: CommitURL is the API URL for the commit
        type: string
        x-go-name: CommitURL
      repository:
        $ref: '#/definitions/Repository'
      sha:
        description: SHA is the commit SHA this status applies to
        type: string
        x-go-name: SHA
      state:
        description: |-
          State is the overall combined status state
          pending CommitStatusPending is for when the CommitStatus is Pending
          success CommitStatusSuccess is for when the CommitStatus is Success
          error CommitStatusError is for when the CommitStatus is Error
          failure CommitStatusFailure is for when the CommitStatus is Failure
          warning CommitStatusWarning is for when the CommitStatus is Warning
          skipped CommitStatusSkipped is for when CommitStatus is Skipped
        type: string
        enum:
          - pending
          - success
          - error
          - failure
          - warning
          - skipped
        x-go-enum-desc: |-
          pending CommitStatusPending is for when the CommitStatus is Pending
          success CommitStatusSuccess is for when the CommitStatus is Success
          error CommitStatusError is for when the CommitStatus is Error
          failure CommitStatusFailure is for when the CommitStatus is Failure
          warning CommitStatusWarning is for when the CommitStatus is Warning
          skipped CommitStatusSkipped is for when CommitStatus is Skipped
        x-go-name: State
      statuses:
        description: Statuses contains all individual commit statuses
        type: array
        items:
          $ref: '#/definitions/CommitStatus'
        x-go-name: Statuses
      total_count:
        description: TotalCount is the total number of statuses
        type: integer
        format: int64
        x-go-name: TotalCount
      url:
        description: URL is the API URL for this combined status
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  Comment:
    description: Comment represents a comment on a commit or issue
    type: object
    properties:
      assets:
        description: Attachments contains files attached to the comment
        type: array
        items:
          $ref: '#/definitions/Attachment'
        x-go-name: Attachments
      body:
        description: Body contains the comment text content
        type: string
        x-go-name: Body
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      html_url:
        description: HTMLURL is the web URL for viewing the comment
        type: string
        x-go-name: HTMLURL
      id:
        description: ID is the unique identifier for the comment
        type: integer
        format: int64
        x-go-name: ID
      issue_url:
        description: IssueURL is the API URL for the issue
        type: string
        x-go-name: IssueURL
      original_author:
        description: OriginalAuthor is the original author name (for imported comments)
        type: string
        x-go-name: OriginalAuthor
      original_author_id:
        description: OriginalAuthorID is the original author ID (for imported comments)
        type: integer
        format: int64
        x-go-name: OriginalAuthorID
      pull_request_url:
        description: PRURL is the API URL for the pull request (if applicable)
        type: string
        x-go-name: PRURL
      updated_at:
        type: string
        format: date-time
        x-go-name: Updated
      user:
        $ref: '#/definitions/User'
    x-go-package: gitea.dev/modules/structs
  Commit:
    type: object
    title: Commit contains information generated from a Git commit.
    properties:
      author:
        $ref: '#/definitions/User'
      commit:
        $ref: '#/definitions/RepoCommit'
      committer:
        $ref: '#/definitions/User'
      created:
        type: string
        format: date-time
        x-go-name: Created
      files:
        description: Files contains information about files affected by the commit
        type: array
        items:
          $ref: '#/definitions/CommitAffectedFiles'
        x-go-name: Files
      html_url:
        description: HTMLURL is the web URL for viewing the commit
        type: string
        x-go-name: HTMLURL
      parents:
        description: Parents contains the parent commit information
        type: array
        items:
          $ref: '#/definitions/CommitMeta'
        x-go-name: Parents
      sha:
        description: SHA is the commit SHA hash
        type: string
        x-go-name: SHA
      stats:
        $ref: '#/definitions/CommitStats'
      url:
        description: URL is the API URL for the commit
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  CommitAffectedFiles:
    description: CommitAffectedFiles store information about files affected by the commit
    type: object
    properties:
      filename:
        description: Filename is the path of the affected file
        type: string
        x-go-name: Filename
      status:
        description: Status indicates how the file was affected (added, modified, deleted)
        type: string
        x-go-name: Status
    x-go-package: gitea.dev/modules/structs
  CommitDateOptions:
    description: CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE
    type: object
    properties:
      author:
        type: string
        format: date-time
        x-go-name: Author
      committer:
        type: string
        format: date-time
        x-go-name: Committer
    x-go-package: gitea.dev/modules/structs
  CommitMeta:
    type: object
    title: CommitMeta contains meta information of a commit in terms of API.
    properties:
      created:
        type: string
        format: date-time
        x-go-name: Created
      sha:
        description: SHA is the commit SHA hash
        type: string
        x-go-name: SHA
      url:
        description: URL is the API URL for the commit
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  CommitStats:
    description: CommitStats is statistics for a RepoCommit
    type: object
    properties:
      additions:
        description: Additions is the number of lines added
        type: integer
        format: int64
        x-go-name: Additions
      deletions:
        description: Deletions is the number of lines deleted
        type: integer
        format: int64
        x-go-name: Deletions
      total:
        description: Total is the total number of lines changed
        type: integer
        format: int64
        x-go-name: Total
    x-go-package: gitea.dev/modules/structs
  CommitStatus:
    description: CommitStatus holds a single status of a single Commit
    type: object
    properties:
      context:
        description: Context is the unique context identifier for the status
        type: string
        x-go-name: Context
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      creator:
        $ref: '#/definitions/User'
      description:
        description: Description provides a brief description of the status
        type: string
        x-go-name: Description
      id:
        description: ID is the unique identifier for the commit status
        type: integer
        format: int64
        x-go-name: ID
      status:
        description: |-
          State represents the status state (pending, success, error, failure)
          pending CommitStatusPending is for when the CommitStatus is Pending
          success CommitStatusSuccess is for when the CommitStatus is Success
          error CommitStatusError is for when the CommitStatus is Error
          failure CommitStatusFailure is for when the CommitStatus is Failure
          warning CommitStatusWarning is for when the CommitStatus is Warning
          skipped CommitStatusSkipped is for when CommitStatus is Skipped
        type: string
        enum:
          - pending
          - success
          - error
          - failure
          - warning
          - skipped
        x-go-enum-desc: |-
          pending CommitStatusPending is for when the CommitStatus is Pending
          success CommitStatusSuccess is for when the CommitStatus is Success
          error CommitStatusError is for when the CommitStatus is Error
          failure CommitStatusFailure is for when the CommitStatus is Failure
          warning CommitStatusWarning is for when the CommitStatus is Warning
          skipped CommitStatusSkipped is for when CommitStatus is Skipped
        x-go-name: State
      target_url:
        description: TargetURL is the URL to link to for more details
        type: string
        x-go-name: TargetURL
      updated_at:
        type: string
        format: date-time
        x-go-name: Updated
      url:
        description: URL is the API URL for this status
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  CommitUser:
    type: object
    title: CommitUser contains information of a user in the context of a commit.
    properties:
      date:
        description: Date is the commit date in string format
        type: string
        x-go-name: Date
      email:
        type: string
        format: email
        x-go-name: Email
      name:
        description: Name is the person's name
        type: string
        x-go-name: Name
    x-go-package: gitea.dev/modules/structs
  Compare:
    type: object
    title: Compare represents a comparison between two commits.
    properties:
      commits:
        type: array
        items:
          $ref: '#/definitions/Commit'
        x-go-name: Commits
      total_commits:
        type: integer
        format: int64
        x-go-name: TotalCommits
    x-go-package: gitea.dev/modules/structs
  ContentsExtResponse:
    type: object
    properties:
      dir_contents:
        description: >-
          DirContents contains directory listing when the path represents a
          directory
        type: array
        items:
          $ref: '#/definitions/ContentsResponse'
        x-go-name: DirContents
      file_contents:
        $ref: '#/definitions/ContentsResponse'
    x-go-package: gitea.dev/modules/structs
  ContentsResponse:
    description: >-
      ContentsResponse contains information about a repo's entry's (dir, file,
      symlink, submodule) metadata and content
    type: object
    properties:
      _links:
        $ref: '#/definitions/FileLinksResponse'
      content:
        description: '`content` is populated when `type` is `file`, otherwise null'
        type: string
        x-go-name: Content
      download_url:
        description: DownloadURL is the direct download URL for this file
        type: string
        x-go-name: DownloadURL
      encoding:
        description: '`encoding` is populated when `type` is `file`, otherwise null'
        type: string
        x-go-name: Encoding
      git_url:
        description: GitURL is the Git API URL for this blob or tree
        type: string
        x-go-name: GitURL
      html_url:
        description: HTMLURL is the web URL for this file or directory
        type: string
        x-go-name: HTMLURL
      last_author_date:
        type: string
        format: date-time
        x-go-name: LastAuthorDate
      last_commit_message:
        description: >-
          LastCommitMessage is the message of the last commit that affected this
          file
        type: string
        x-go-name: LastCommitMessage
      last_commit_sha:
        description: LastCommitSHA is the SHA of the last commit that affected this file
        type: string
        x-go-name: LastCommitSHA
      last_committer_date:
        type: string
        format: date-time
        x-go-name: LastCommitterDate
      lfs_oid:
        description: LfsOid is the Git LFS object ID if this file is stored in LFS
        type: string
        x-go-name: LfsOid
      lfs_size:
        description: LfsSize is the file size if this file is stored in LFS
        type: integer
        format: int64
        x-go-name: LfsSize
      name:
        description: Name is the file or directory name
        type: string
        x-go-name: Name
      path:
        description: Path is the full path to the file or directory
        type: string
        x-go-name: Path
      sha:
        description: SHA is the Git blob or tree SHA
        type: string
        x-go-name: SHA
      size:
        description: Size is the file size in bytes
        type: integer
        format: int64
        x-go-name: Size
      submodule_git_url:
        description: >-
          `submodule_git_url` is populated when `type` is `submodule`, otherwise
          null
        type: string
        x-go-name: SubmoduleGitURL
      target:
        description: '`target` is populated when `type` is `symlink`, otherwise null'
        type: string
        x-go-name: Target
      type:
        description: '`type` will be `file`, `dir`, `symlink`, or `submodule`'
        type: string
        x-go-name: Type
      url:
        description: URL is the API URL for this file or directory
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  CreateAccessTokenOption:
    description: CreateAccessTokenOption options when create access token
    type: object
    required:
      - name
    properties:
      name:
        type: string
        x-go-name: Name
      scopes:
        type: array
        items:
          type: string
        x-go-name: Scopes
        example:
          - all
          - read:activitypub
          - read:issue
          - write:misc
          - read:notification
          - read:organization
          - read:package
          - read:repository
          - read:user
    x-go-package: gitea.dev/modules/structs
  CreateActionWorkflowDispatch:
    description: >-
      CreateActionWorkflowDispatch represents the payload for triggering a
      workflow dispatch event
    type: object
    required:
      - ref
    properties:
      inputs:
        type: object
        additionalProperties:
          type: string
        x-go-name: Inputs
      ref:
        type: string
        x-go-name: Ref
        example: refs/heads/main
    x-go-package: gitea.dev/modules/structs
  CreateBranchProtectionOption:
    description: CreateBranchProtectionOption options for creating a branch protection
    type: object
    properties:
      approvals_whitelist_teams:
        type: array
        items:
          type: string
        x-go-name: ApprovalsWhitelistTeams
      approvals_whitelist_username:
        type: array
        items:
          type: string
        x-go-name: ApprovalsWhitelistUsernames
      block_admin_merge_override:
        type: boolean
        x-go-name: BlockAdminMergeOverride
      block_on_official_review_requests:
        type: boolean
        x-go-name: BlockOnOfficialReviewRequests
      block_on_outdated_branch:
        type: boolean
        x-go-name: BlockOnOutdatedBranch
      block_on_rejected_reviews:
        type: boolean
        x-go-name: BlockOnRejectedReviews
      branch_name:
        description: 'Deprecated: true'
        type: string
        x-go-name: BranchName
      bypass_allowlist_teams:
        type: array
        items:
          type: string
        x-go-name: BypassAllowlistTeams
      bypass_allowlist_usernames:
        type: array
        items:
          type: string
        x-go-name: BypassAllowlistUsernames
      dismiss_stale_approvals:
        type: boolean
        x-go-name: DismissStaleApprovals
      enable_approvals_whitelist:
        type: boolean
        x-go-name: EnableApprovalsWhitelist
      enable_bypass_allowlist:
        type: boolean
        x-go-name: EnableBypassAllowlist
      enable_force_push:
        type: boolean
        x-go-name: EnableForcePush
      enable_force_push_allowlist:
        type: boolean
        x-go-name: EnableForcePushAllowlist
      enable_merge_whitelist:
        type: boolean
        x-go-name: EnableMergeWhitelist
      enable_push:
        type: boolean
        x-go-name: EnablePush
      enable_push_whitelist:
        type: boolean
        x-go-name: EnablePushWhitelist
      enable_status_check:
        type: boolean
        x-go-name: EnableStatusCheck
      force_push_allowlist_deploy_keys:
        type: boolean
        x-go-name: ForcePushAllowlistDeployKeys
      force_push_allowlist_teams:
        type: array
        items:
          type: string
        x-go-name: ForcePushAllowlistTeams
      force_push_allowlist_usernames:
        type: array
        items:
          type: string
        x-go-name: ForcePushAllowlistUsernames
      ignore_stale_approvals:
        type: boolean
        x-go-name: IgnoreStaleApprovals
      merge_whitelist_teams:
        type: array
        items:
          type: string
        x-go-name: MergeWhitelistTeams
      merge_whitelist_usernames:
        type: array
        items:
          type: string
        x-go-name: MergeWhitelistUsernames
      priority:
        type: integer
        format: int64
        x-go-name: Priority
      protected_file_patterns:
        type: string
        x-go-name: ProtectedFilePatterns
      push_whitelist_deploy_keys:
        type: boolean
        x-go-name: PushWhitelistDeployKeys
      push_whitelist_teams:
        type: array
        items:
          type: string
        x-go-name: PushWhitelistTeams
      push_whitelist_usernames:
        type: array
        items:
          type: string
        x-go-name: PushWhitelistUsernames
      require_signed_commits:
        type: boolean
        x-go-name: RequireSignedCommits
      required_approvals:
        type: integer
        format: int64
        x-go-name: RequiredApprovals
      rule_name:
        type: string
        x-go-name: RuleName
      status_check_contexts:
        type: array
        items:
          type: string
        x-go-name: StatusCheckContexts
      unprotected_file_patterns:
        type: string
        x-go-name: UnprotectedFilePatterns
    x-go-package: gitea.dev/modules/structs
  CreateBranchRepoOption:
    description: CreateBranchRepoOption options when creating a branch in a repository
    type: object
    required:
      - new_branch_name
    properties:
      new_branch_name:
        description: Name of the branch to create
        type: string
        uniqueItems: true
        x-go-name: BranchName
      old_branch_name:
        description: |-
          Deprecated: true
          Name of the old branch to create from
        type: string
        uniqueItems: true
        x-go-name: OldBranchName
      old_ref_name:
        description: Name of the old branch/tag/commit to create from
        type: string
        uniqueItems: true
        x-go-name: OldRefName
    x-go-package: gitea.dev/modules/structs
  CreateEmailOption:
    description: CreateEmailOption options when creating email addresses
    type: object
    properties:
      emails:
        description: email addresses to add
        type: array
        items:
          type: string
        x-go-name: Emails
    x-go-package: gitea.dev/modules/structs
  CreateFileOptions:
    description: >-
      CreateFileOptions options for creating a file

      Note: `author` and `committer` are optional (if only one is given, it will
      be used for the other, otherwise the authenticated user will be used)
    type: object
    required:
      - content
    properties:
      author:
        $ref: '#/definitions/Identity'
      branch:
        description: >-
          branch (optional) is the base branch for the changes. If not supplied,
          the default branch is used
        type: string
        x-go-name: BranchName
      committer:
        $ref: '#/definitions/Identity'
      content:
        description: content must be base64 encoded
        type: string
        x-go-name: ContentBase64
      dates:
        $ref: '#/definitions/CommitDateOptions'
      force_push:
        description: >-
          force_push (optional) will do a force-push if the new branch already
          exists
        type: boolean
        x-go-name: ForcePush
      message:
        description: >-
          message (optional) is the commit message of the changes. If not
          supplied, a default message will be used
        type: string
        x-go-name: Message
      new_branch:
        description: >-
          new_branch (optional) will make a new branch from base branch for the
          changes. If not supplied, the changes will be committed to the base
          branch
        type: string
        x-go-name: NewBranchName
      signoff:
        description: >-
          Add a Signed-off-by trailer by the committer at the end of the commit
          log message.
        type: boolean
        x-go-name: Signoff
    x-go-package: gitea.dev/modules/structs
  CreateForkOption:
    description: CreateForkOption options for creating a fork
    type: object
    properties:
      name:
        description: name of the forked repository
        type: string
        x-go-name: Name
      organization:
        description: organization name, if forking into an organization
        type: string
        x-go-name: Organization
    x-go-package: gitea.dev/modules/structs
  CreateGPGKeyOption:
    description: CreateGPGKeyOption options create user GPG key
    type: object
    required:
      - armored_public_key
    properties:
      armored_public_key:
        description: An armored GPG key to add
        type: string
        uniqueItems: true
        x-go-name: ArmoredKey
      armored_signature:
        description: An optional armored signature for the GPG key
        type: string
        x-go-name: Signature
    x-go-package: gitea.dev/modules/structs
  CreateHookOption:
    description: CreateHookOption options when create a hook
    type: object
    required:
      - type
      - config
    properties:
      active:
        type: boolean
        default: false
        x-go-name: Active
      authorization_header:
        description: Authorization header to include in webhook requests
        type: string
        x-go-name: AuthorizationHeader
      branch_filter:
        description: Branch filter pattern to determine which branches trigger the webhook
        type: string
        x-go-name: BranchFilter
      config:
        $ref: '#/definitions/CreateHookOptionConfig'
      events:
        description: List of events that will trigger this webhook
        type: array
        items:
          type: string
        x-go-name: Events
      name:
        description: Optional human-readable name for the webhook
        type: string
        x-go-name: Name
      type:
        type: string
        enum:
          - dingtalk
          - discord
          - gitea
          - gogs
          - msteams
          - slack
          - telegram
          - feishu
          - wechatwork
          - packagist
        x-go-name: Type
    x-go-package: gitea.dev/modules/structs
  CreateHookOptionConfig:
    description: |-
      CreateHookOptionConfig has all config options in it
      required are "content_type" and "url" Required
    type: object
    additionalProperties:
      type: string
    x-go-package: gitea.dev/modules/structs
  CreateIssueCommentOption:
    description: CreateIssueCommentOption options for creating a comment on an issue
    type: object
    required:
      - body
    properties:
      body:
        type: string
        x-go-name: Body
    x-go-package: gitea.dev/modules/structs
  CreateIssueOption:
    description: CreateIssueOption options to create one issue
    type: object
    required:
      - title
    properties:
      assignee:
        description: deprecated
        type: string
        x-go-name: Assignee
      assignees:
        type: array
        items:
          type: string
        x-go-name: Assignees
      body:
        type: string
        x-go-name: Body
      closed:
        type: boolean
        x-go-name: Closed
      due_date:
        type: string
        format: date-time
        x-go-name: Deadline
      labels:
        description: list of label ids
        type: array
        items:
          type: integer
          format: int64
        x-go-name: Labels
      milestone:
        description: milestone id
        type: integer
        format: int64
        x-go-name: Milestone
      projects:
        description: list of project ids
        type: array
        items:
          type: integer
          format: int64
        x-go-name: Projects
      ref:
        type: string
        x-go-name: Ref
      title:
        type: string
        x-go-name: Title
    x-go-package: gitea.dev/modules/structs
  CreateKeyOption:
    description: CreateKeyOption options when creating a key
    type: object
    required:
      - title
      - key
    properties:
      key:
        description: An armored SSH key to add
        type: string
        uniqueItems: true
        x-go-name: Key
      read_only:
        description: Describe if the key has only read access or read/write
        type: boolean
        x-go-name: ReadOnly
      title:
        description: Title of the key to add
        type: string
        uniqueItems: true
        x-go-name: Title
    x-go-package: gitea.dev/modules/structs
  CreateLabelOption:
    description: CreateLabelOption options for creating a label
    type: object
    required:
      - name
      - color
    properties:
      color:
        type: string
        x-go-name: Color
        example: '#00aabb'
      description:
        description: Description provides additional context about the label's purpose
        type: string
        x-go-name: Description
      exclusive:
        type: boolean
        x-go-name: Exclusive
        example: false
      is_archived:
        type: boolean
        x-go-name: IsArchived
        example: false
      name:
        type: string
        x-go-name: Name
    x-go-package: gitea.dev/modules/structs
  CreateMilestoneOption:
    description: CreateMilestoneOption options for creating a milestone
    type: object
    properties:
      description:
        description: Description provides details about the milestone
        type: string
        x-go-name: Description
      due_on:
        type: string
        format: date-time
        x-go-name: Deadline
      state:
        type: string
        enum:
          - open
          - closed
        x-go-name: State
      title:
        description: Title is the title of the new milestone
        type: string
        x-go-name: Title
    x-go-package: gitea.dev/modules/structs
  CreateOAuth2ApplicationOptions:
    description: >-
      CreateOAuth2ApplicationOptions holds options to create an oauth2
      application
    type: object
    properties:
      confidential_client:
        description: Whether the client is confidential
        type: boolean
        x-go-name: ConfidentialClient
      name:
        description: The name of the OAuth2 application
        type: string
        x-go-name: Name
      redirect_uris:
        description: The list of allowed redirect URIs
        type: array
        items:
          type: string
        x-go-name: RedirectURIs
      skip_secondary_authorization:
        description: Whether to skip secondary authorization
        type: boolean
        x-go-name: SkipSecondaryAuthorization
    x-go-package: gitea.dev/modules/structs
  CreateOrUpdateSecretOption:
    description: CreateOrUpdateSecretOption options when creating or updating secret
    type: object
    required:
      - data
    properties:
      data:
        description: Data of the secret to update
        type: string
        x-go-name: Data
      description:
        description: Description of the secret to update
        type: string
        x-go-name: Description
    x-go-package: gitea.dev/modules/structs
  CreateOrgOption:
    description: CreateOrgOption options for creating an organization
    type: object
    required:
      - username
    properties:
      description:
        description: The description of the organization
        type: string
        x-go-name: Description
      email:
        description: The email address of the organization
        type: string
        x-go-name: Email
      full_name:
        description: The full display name of the organization
        type: string
        x-go-name: FullName
      location:
        description: The location of the organization
        type: string
        x-go-name: Location
      repo_admin_change_team_access:
        description: Whether repository administrators can change team access
        type: boolean
        x-go-name: RepoAdminChangeTeamAccess
      username:
        description: username of the organization
        type: string
        x-go-name: UserName
      visibility:
        description: |-
          possible values are `public` (default), `limited` or `private`
          public UserVisibilityPublic
          limited UserVisibilityLimited
          private UserVisibilityPrivate
        type: string
        enum:
          - public
          - limited
          - private
        x-go-enum-desc: |-
          public UserVisibilityPublic
          limited UserVisibilityLimited
          private UserVisibilityPrivate
        x-go-name: Visibility
      website:
        description: The website URL of the organization
        type: string
        x-go-name: Website
    x-go-package: gitea.dev/modules/structs
  CreatePullRequestOption:
    description: CreatePullRequestOption options when creating a pull request
    type: object
    properties:
      allow_maintainer_edit:
        description: Whether maintainers can edit the pull request
        type: boolean
        x-go-name: AllowMaintainerEdit
      assignee:
        description: The primary assignee username
        type: string
        x-go-name: Assignee
      assignees:
        description: The list of assignee usernames
        type: array
        items:
          type: string
        x-go-name: Assignees
      base:
        description: The base branch for the pull request
        type: string
        x-go-name: Base
      body:
        description: The description body of the pull request
        type: string
        x-go-name: Body
      due_date:
        type: string
        format: date-time
        x-go-name: Deadline
      head:
        description: >-
          The head branch for the pull request, it could be a branch name on the
          base repository or

          a form like `<username>:<branch>` which refers to the user's fork
          repository's branch.
        type: string
        x-go-name: Head
      labels:
        description: The list of label IDs to assign to the pull request
        type: array
        items:
          type: integer
          format: int64
        x-go-name: Labels
      milestone:
        description: The milestone ID to assign to the pull request
        type: integer
        format: int64
        x-go-name: Milestone
      reviewers:
        description: The list of reviewer usernames
        type: array
        items:
          type: string
        x-go-name: Reviewers
      team_reviewers:
        description: The list of team reviewer names
        type: array
        items:
          type: string
        x-go-name: TeamReviewers
      title:
        description: The title of the pull request
        type: string
        x-go-name: Title
    x-go-package: gitea.dev/modules/structs
  CreatePullReviewComment:
    description: CreatePullReviewComment represent a review comment for creation api
    type: object
    properties:
      body:
        type: string
        x-go-name: Body
      new_position:
        description: if comment to new file line or 0
        type: integer
        format: int64
        x-go-name: NewLineNum
      old_position:
        description: if comment to old file line or 0
        type: integer
        format: int64
        x-go-name: OldLineNum
      path:
        description: the tree path
        type: string
        x-go-name: Path
    x-go-package: gitea.dev/modules/structs
  CreatePullReviewCommentReplyOptions:
    description: >-
      CreatePullReviewCommentReplyOptions are options to reply to a pull request
      review comment
    type: object
    properties:
      body:
        type: string
        x-go-name: Body
    x-go-package: gitea.dev/modules/structs
  CreatePullReviewOptions:
    description: CreatePullReviewOptions are options to create a pull request review
    type: object
    properties:
      body:
        type: string
        x-go-name: Body
      comments:
        type: array
        items:
          $ref: '#/definitions/CreatePullReviewComment'
        x-go-name: Comments
      commit_id:
        type: string
        x-go-name: CommitID
      event:
        type: string
        enum:
          - APPROVED
          - PENDING
          - COMMENT
          - REQUEST_CHANGES
          - REQUEST_REVIEW
        x-go-enum-desc: |-
          APPROVED ReviewStateApproved pr is approved
          PENDING ReviewStatePending pr state is pending
          COMMENT ReviewStateComment is a comment review
          REQUEST_CHANGES ReviewStateRequestChanges changes for pr are requested
          REQUEST_REVIEW ReviewStateRequestReview review is requested from user
        x-go-name: Event
    x-go-package: gitea.dev/modules/structs
  CreatePushMirrorOption:
    type: object
    title: >-
      CreatePushMirrorOption represents need information to create a push mirror
      of a repository.
    properties:
      interval:
        description: The sync interval for automatic updates
        type: string
        x-go-name: Interval
      remote_address:
        description: The remote repository URL to push to
        type: string
        x-go-name: RemoteAddress
      remote_password:
        description: The password for authentication with the remote repository
        type: string
        x-go-name: RemotePassword
      remote_username:
        description: The username for authentication with the remote repository
        type: string
        x-go-name: RemoteUsername
      sync_on_commit:
        description: Whether to sync on every commit
        type: boolean
        x-go-name: SyncOnCommit
    x-go-package: gitea.dev/modules/structs
  CreateReleaseOption:
    description: CreateReleaseOption options when creating a release
    type: object
    required:
      - tag_name
    properties:
      body:
        description: The release notes or description
        type: string
        x-go-name: Note
      draft:
        description: Whether to create the release as a draft
        type: boolean
        x-go-name: IsDraft
      name:
        description: The display title of the release
        type: string
        x-go-name: Title
      prerelease:
        description: Whether to mark the release as a prerelease
        type: boolean
        x-go-name: IsPrerelease
      tag_message:
        description: The message for the git tag
        type: string
        x-go-name: TagMessage
      tag_name:
        type: string
        x-go-name: TagName
      target_commitish:
        description: The target commitish for the release
        type: string
        x-go-name: Target
    x-go-package: gitea.dev/modules/structs
  CreateRepoOption:
    description: CreateRepoOption options when creating repository
    type: object
    required:
      - name
    properties:
      auto_init:
        description: Whether the repository should be auto-initialized?
        type: boolean
        x-go-name: AutoInit
      default_branch:
        description: >-
          DefaultBranch of the repository (used when initializes and in
          template)
        type: string
        x-go-name: DefaultBranch
      description:
        description: Description of the repository to create
        type: string
        x-go-name: Description
      gitignores:
        description: Gitignores to use
        type: string
        x-go-name: Gitignores
      issue_labels:
        description: Label-Set to use
        type: string
        x-go-name: IssueLabels
      license:
        description: License to use
        type: string
        x-go-name: License
      name:
        description: Name of the repository to create
        type: string
        uniqueItems: true
        x-go-name: Name
      object_format_name:
        description: >-
          ObjectFormatName of the underlying git repository, empty string for
          default (sha1)

          sha1 ObjectFormatSHA1

          sha256 ObjectFormatSHA256
        type: string
        enum:
          - sha1
          - sha256
        x-go-enum-desc: |-
          sha1 ObjectFormatSHA1
          sha256 ObjectFormatSHA256
        x-go-name: ObjectFormatName
      private:
        description: Whether the repository is private
        type: boolean
        x-go-name: Private
      readme:
        description: Readme of the repository to create
        type: string
        x-go-name: Readme
      template:
        description: Whether the repository is template
        type: boolean
        x-go-name: Template
      trust_model:
        description: TrustModel of the repository
        type: string
        enum:
          - default
          - collaborator
          - committer
          - collaboratorcommitter
        x-go-name: TrustModel
    x-go-package: gitea.dev/modules/structs
  CreateStatusOption:
    description: >-
      CreateStatusOption holds the information needed to create a new
      CommitStatus for a Commit
    type: object
    properties:
      context:
        description: Context is the unique context identifier for the status
        type: string
        x-go-name: Context
      description:
        description: Description provides a brief description of the status
        type: string
        x-go-name: Description
      state:
        description: >-
          State represents the status state to set (pending, success, error,
          failure)

          pending CommitStatusPending is for when the CommitStatus is Pending

          success CommitStatusSuccess is for when the CommitStatus is Success

          error CommitStatusError is for when the CommitStatus is Error

          failure CommitStatusFailure is for when the CommitStatus is Failure

          warning CommitStatusWarning is for when the CommitStatus is Warning

          skipped CommitStatusSkipped is for when CommitStatus is Skipped
        type: string
        enum:
          - pending
          - success
          - error
          - failure
          - warning
          - skipped
        x-go-enum-desc: |-
          pending CommitStatusPending is for when the CommitStatus is Pending
          success CommitStatusSuccess is for when the CommitStatus is Success
          error CommitStatusError is for when the CommitStatus is Error
          failure CommitStatusFailure is for when the CommitStatus is Failure
          warning CommitStatusWarning is for when the CommitStatus is Warning
          skipped CommitStatusSkipped is for when CommitStatus is Skipped
        x-go-name: State
      target_url:
        description: TargetURL is the URL to link to for more details
        type: string
        x-go-name: TargetURL
    x-go-package: gitea.dev/modules/structs
  CreateTagOption:
    description: CreateTagOption options when creating a tag
    type: object
    required:
      - tag_name
    properties:
      message:
        description: The message to associate with the tag
        type: string
        x-go-name: Message
      tag_name:
        type: string
        x-go-name: TagName
      target:
        description: The target commit SHA or branch name for the tag
        type: string
        x-go-name: Target
    x-go-package: gitea.dev/modules/structs
  CreateTagProtectionOption:
    description: CreateTagProtectionOption options for creating a tag protection
    type: object
    properties:
      name_pattern:
        description: The pattern to match tag names for protection
        type: string
        x-go-name: NamePattern
      whitelist_teams:
        description: List of team names allowed to create/delete protected tags
        type: array
        items:
          type: string
        x-go-name: WhitelistTeams
      whitelist_usernames:
        description: List of usernames allowed to create/delete protected tags
        type: array
        items:
          type: string
        x-go-name: WhitelistUsernames
    x-go-package: gitea.dev/modules/structs
  CreateTeamOption:
    description: CreateTeamOption options for creating a team
    type: object
    required:
      - name
    properties:
      can_create_org_repo:
        description: Whether the team can create repositories in the organization
        type: boolean
        x-go-name: CanCreateOrgRepo
      description:
        description: The description of the team
        type: string
        x-go-name: Description
      includes_all_repositories:
        description: Whether the team has access to all repositories in the organization
        type: boolean
        x-go-name: IncludesAllRepositories
      name:
        type: string
        x-go-name: Name
      permission:
        type: string
        enum:
          - read
          - write
          - admin
        x-go-enum-desc: |-
          read RepoWritePermissionRead
          write RepoWritePermissionWrite
          admin RepoWritePermissionAdmin
        x-go-name: Permission
      units:
        type: array
        items:
          type: string
        x-go-name: Units
        example:
          - repo.actions
          - repo.code
          - repo.issues
          - repo.ext_issues
          - repo.wiki
          - repo.ext_wiki
          - repo.pulls
          - repo.releases
          - repo.projects
          - repo.ext_wiki
      units_map:
        type: object
        additionalProperties:
          type: string
        x-go-name: UnitsMap
        example: >-
          {"repo.actions","repo.packages","repo.code":"read","repo.issues":"write","repo.ext_issues":"none","repo.wiki":"admin","repo.pulls":"owner","repo.releases":"none","repo.projects":"none","repo.ext_wiki":"none"}
      visibility:
        description: |-
          Team visibility within the organization. Defaults to "private".
          public TeamVisibilityPublic
          limited TeamVisibilityLimited
          private TeamVisibilityPrivate
        type: string
        enum:
          - public
          - limited
          - private
        x-go-enum-desc: |-
          public TeamVisibilityPublic
          limited TeamVisibilityLimited
          private TeamVisibilityPrivate
        x-go-name: Visibility
    x-go-package: gitea.dev/modules/structs
  CreateUserOption:
    description: CreateUserOption create user options
    type: object
    required:
      - username
      - email
    properties:
      created_at:
        description: >-
          For explicitly setting the user creation timestamp. Useful when users
          are

          migrated from other systems. When omitted, the user's creation
          timestamp

          will be set to "now".
        type: string
        format: date-time
        x-go-name: Created
      email:
        type: string
        format: email
        x-go-name: Email
      full_name:
        description: The full display name of the user
        type: string
        x-go-name: FullName
      login_name:
        description: >-
          identifier of the user, provided by the external authenticator (if
          configured)
        type: string
        default: empty
        x-go-name: LoginName
      must_change_password:
        description: Whether the user must change password on first login
        type: boolean
        x-go-name: MustChangePassword
      password:
        description: The plain text password for the user
        type: string
        x-go-name: Password
      restricted:
        description: Whether the user has restricted access privileges
        type: boolean
        x-go-name: Restricted
      send_notify:
        description: Whether to send welcome notification email to the user
        type: boolean
        x-go-name: SendNotify
      source_id:
        description: The authentication source ID to associate with the user
        type: integer
        format: int64
        x-go-name: SourceID
      username:
        description: username of the user
        type: string
        x-go-name: Username
      visibility:
        description: |-
          User visibility level: public, limited, or private
          public UserVisibilityPublic
          limited UserVisibilityLimited
          private UserVisibilityPrivate
        type: string
        enum:
          - public
          - limited
          - private
        x-go-enum-desc: |-
          public UserVisibilityPublic
          limited UserVisibilityLimited
          private UserVisibilityPrivate
        x-go-name: Visibility
    x-go-package: gitea.dev/modules/structs
  CreateVariableOption:
    description: CreateVariableOption the option when creating variable
    type: object
    required:
      - value
    properties:
      description:
        description: Description of the variable to create
        type: string
        x-go-name: Description
      value:
        description: Value of the variable to create
        type: string
        x-go-name: Value
    x-go-package: gitea.dev/modules/structs
  CreateWikiPageOptions:
    description: CreateWikiPageOptions form for creating wiki
    type: object
    properties:
      content_base64:
        description: content must be base64 encoded
        type: string
        x-go-name: ContentBase64
      message:
        description: optional commit message summarizing the change
        type: string
        x-go-name: Message
      title:
        description: page title. leave empty to keep unchanged
        type: string
        x-go-name: Title
    x-go-package: gitea.dev/modules/structs
  Cron:
    description: Cron represents a Cron task
    type: object
    properties:
      exec_times:
        description: The total number of times this cron task has been executed
        type: integer
        format: int64
        x-go-name: ExecTimes
      name:
        description: The name of the cron task
        type: string
        x-go-name: Name
      next:
        description: The next scheduled execution time
        type: string
        format: date-time
        x-go-name: Next
      prev:
        description: The previous execution time
        type: string
        format: date-time
        x-go-name: Prev
      schedule:
        description: The cron schedule expression (e.g., "0 0 * * *")
        type: string
        x-go-name: Schedule
    x-go-package: gitea.dev/modules/structs
  CurrentAccessToken:
    type: object
    title: >-
      CurrentAccessToken represents the metadata of the currently authenticated
      token.
    properties:
      created_at:
        description: The timestamp when the token was created
        type: string
        format: date-time
        x-go-name: CreatedAt
      id:
        description: The unique identifier of the access token
        type: integer
        format: int64
        x-go-name: ID
      last_used_at:
        description: The timestamp when the token was last used
        type: string
        format: date-time
        x-go-name: LastUsedAt
      name:
        description: The name of the access token
        type: string
        x-go-name: Name
      scopes:
        description: The scopes granted to this access token
        type: array
        items:
          type: string
        x-go-name: Scopes
      user:
        $ref: '#/definitions/UserMeta'
    x-go-package: gitea.dev/modules/structs
  DeleteEmailOption:
    description: DeleteEmailOption options when deleting email addresses
    type: object
    properties:
      emails:
        description: email addresses to delete
        type: array
        items:
          type: string
        x-go-name: Emails
    x-go-package: gitea.dev/modules/structs
  DeleteFileOptions:
    description: >-
      DeleteFileOptions options for deleting a file

      Note: `author` and `committer` are optional (if only one is given, it will
      be used for the other, otherwise the authenticated user will be used)
    type: object
    required:
      - sha
    properties:
      author:
        $ref: '#/definitions/Identity'
      branch:
        description: >-
          branch (optional) is the base branch for the changes. If not supplied,
          the default branch is used
        type: string
        x-go-name: BranchName
      committer:
        $ref: '#/definitions/Identity'
      dates:
        $ref: '#/definitions/CommitDateOptions'
      force_push:
        description: >-
          force_push (optional) will do a force-push if the new branch already
          exists
        type: boolean
        x-go-name: ForcePush
      message:
        description: >-
          message (optional) is the commit message of the changes. If not
          supplied, a default message will be used
        type: string
        x-go-name: Message
      new_branch:
        description: >-
          new_branch (optional) will make a new branch from base branch for the
          changes. If not supplied, the changes will be committed to the base
          branch
        type: string
        x-go-name: NewBranchName
      sha:
        description: the blob ID (SHA) for the file to delete
        type: string
        x-go-name: SHA
      signoff:
        description: >-
          Add a Signed-off-by trailer by the committer at the end of the commit
          log message.
        type: boolean
        x-go-name: Signoff
    x-go-package: gitea.dev/modules/structs
  DeployKey:
    description: DeployKey a deploy key
    type: object
    properties:
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      fingerprint:
        description: Fingerprint is the key's fingerprint
        type: string
        x-go-name: Fingerprint
      id:
        description: ID is the unique identifier for the deploy key
        type: integer
        format: int64
        x-go-name: ID
      key:
        description: Key contains the actual SSH key content
        type: string
        x-go-name: Key
      key_id:
        description: KeyID is the associated public key ID
        type: integer
        format: int64
        x-go-name: KeyID
      read_only:
        description: ReadOnly indicates if the key has read-only access
        type: boolean
        x-go-name: ReadOnly
      repository:
        $ref: '#/definitions/Repository'
      title:
        description: Title is the human-readable name for the key
        type: string
        x-go-name: Title
      url:
        description: URL is the API URL for this deploy key
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  DismissPullReviewOptions:
    description: DismissPullReviewOptions are options to dismiss a pull request review
    type: object
    properties:
      message:
        type: string
        x-go-name: Message
      priors:
        type: boolean
        x-go-name: Priors
    x-go-package: gitea.dev/modules/structs
  EditActionRunnerOption:
    type: object
    title: EditActionRunnerOption represents the editable fields for a runner.
    required:
      - disabled
    properties:
      disabled:
        type: boolean
        x-go-name: Disabled
    x-go-package: gitea.dev/modules/structs
  EditAttachmentOptions:
    description: EditAttachmentOptions options for editing attachments
    type: object
    properties:
      name:
        description: Name is the new filename for the attachment
        type: string
        x-go-name: Name
    x-go-package: gitea.dev/modules/structs
  EditBranchProtectionOption:
    description: EditBranchProtectionOption options for editing a branch protection
    type: object
    properties:
      approvals_whitelist_teams:
        type: array
        items:
          type: string
        x-go-name: ApprovalsWhitelistTeams
      approvals_whitelist_username:
        type: array
        items:
          type: string
        x-go-name: ApprovalsWhitelistUsernames
      block_admin_merge_override:
        type: boolean
        x-go-name: BlockAdminMergeOverride
      block_on_official_review_requests:
        type: boolean
        x-go-name: BlockOnOfficialReviewRequests
      block_on_outdated_branch:
        type: boolean
        x-go-name: BlockOnOutdatedBranch
      block_on_rejected_reviews:
        type: boolean
        x-go-name: BlockOnRejectedReviews
      bypass_allowlist_teams:
        type: array
        items:
          type: string
        x-go-name: BypassAllowlistTeams
      bypass_allowlist_usernames:
        type: array
        items:
          type: string
        x-go-name: BypassAllowlistUsernames
      dismiss_stale_approvals:
        type: boolean
        x-go-name: DismissStaleApprovals
      enable_approvals_whitelist:
        type: boolean
        x-go-name: EnableApprovalsWhitelist
      enable_bypass_allowlist:
        type: boolean
        x-go-name: EnableBypassAllowlist
      enable_force_push:
        type: boolean
        x-go-name: EnableForcePush
      enable_force_push_allowlist:
        type: boolean
        x-go-name: EnableForcePushAllowlist
      enable_merge_whitelist:
        type: boolean
        x-go-name: EnableMergeWhitelist
      enable_push:
        type: boolean
        x-go-name: EnablePush
      enable_push_whitelist:
        type: boolean
        x-go-name: EnablePushWhitelist
      enable_status_check:
        type: boolean
        x-go-name: EnableStatusCheck
      force_push_allowlist_deploy_keys:
        type: boolean
        x-go-name: ForcePushAllowlistDeployKeys
      force_push_allowlist_teams:
        type: array
        items:
          type: string
        x-go-name: ForcePushAllowlistTeams
      force_push_allowlist_usernames:
        type: array
        items:
          type: string
        x-go-name: ForcePushAllowlistUsernames
      ignore_stale_approvals:
        type: boolean
        x-go-name: IgnoreStaleApprovals
      merge_whitelist_teams:
        type: array
        items:
          type: string
        x-go-name: MergeWhitelistTeams
      merge_whitelist_usernames:
        type: array
        items:
          type: string
        x-go-name: MergeWhitelistUsernames
      priority:
        type: integer
        format: int64
        x-go-name: Priority
      protected_file_patterns:
        type: string
        x-go-name: ProtectedFilePatterns
      push_whitelist_deploy_keys:
        type: boolean
        x-go-name: PushWhitelistDeployKeys
      push_whitelist_teams:
        type: array
        items:
          type: string
        x-go-name: PushWhitelistTeams
      push_whitelist_usernames:
        type: array
        items:
          type: string
        x-go-name: PushWhitelistUsernames
      require_signed_commits:
        type: boolean
        x-go-name: RequireSignedCommits
      required_approvals:
        type: integer
        format: int64
        x-go-name: RequiredApprovals
      status_check_contexts:
        type: array
        items:
          type: string
        x-go-name: StatusCheckContexts
      unprotected_file_patterns:
        type: string
        x-go-name: UnprotectedFilePatterns
    x-go-package: gitea.dev/modules/structs
  EditDeadlineOption:
    description: EditDeadlineOption options for creating a deadline
    type: object
    required:
      - due_date
    properties:
      due_date:
        type: string
        format: date-time
        x-go-name: Deadline
    x-go-package: gitea.dev/modules/structs
  EditGitHookOption:
    description: EditGitHookOption options when modifying one Git hook
    type: object
    properties:
      content:
        description: Content is the new script content for the hook
        type: string
        x-go-name: Content
    x-go-package: gitea.dev/modules/structs
  EditHookOption:
    description: EditHookOption options when modify one hook
    type: object
    properties:
      active:
        description: Whether the webhook is active and will be triggered
        type: boolean
        x-go-name: Active
      authorization_header:
        description: Authorization header to include in webhook requests
        type: string
        x-go-name: AuthorizationHeader
      branch_filter:
        description: Branch filter pattern to determine which branches trigger the webhook
        type: string
        x-go-name: BranchFilter
      config:
        description: Configuration settings for the webhook
        type: object
        additionalProperties:
          type: string
        x-go-name: Config
      events:
        description: List of events that trigger this webhook
        type: array
        items:
          type: string
        x-go-name: Events
      name:
        description: Optional human-readable name
        type: string
        x-go-name: Name
    x-go-package: gitea.dev/modules/structs
  EditIssueCommentOption:
    description: EditIssueCommentOption options for editing a comment
    type: object
    required:
      - body
    properties:
      body:
        type: string
        x-go-name: Body
    x-go-package: gitea.dev/modules/structs
  EditIssueOption:
    description: EditIssueOption options for editing an issue
    type: object
    properties:
      assignee:
        description: deprecated
        type: string
        x-go-name: Assignee
      assignees:
        type: array
        items:
          type: string
        x-go-name: Assignees
      body:
        type: string
        x-go-name: Body
      content_version:
        description: >-
          The current version of the issue content to detect conflicts during
          editing
        type: integer
        format: int64
        x-go-name: ContentVersion
      due_date:
        type: string
        format: date-time
        x-go-name: Deadline
      milestone:
        type: integer
        format: int64
        x-go-name: Milestone
      projects:
        description: list of project ids to set (replaces existing projects)
        type: array
        items:
          type: integer
          format: int64
        x-go-name: Projects
      ref:
        type: string
        x-go-name: Ref
      state:
        type: string
        x-go-name: State
      title:
        type: string
        x-go-name: Title
      unset_due_date:
        type: boolean
        x-go-name: RemoveDeadline
    x-go-package: gitea.dev/modules/structs
  EditLabelOption:
    description: EditLabelOption options for editing a label
    type: object
    properties:
      color:
        type: string
        x-go-name: Color
        example: '#00aabb'
      description:
        description: Description provides additional context about the label's purpose
        type: string
        x-go-name: Description
      exclusive:
        type: boolean
        x-go-name: Exclusive
        example: false
      is_archived:
        type: boolean
        x-go-name: IsArchived
        example: false
      name:
        description: Name is the new display name for the label
        type: string
        x-go-name: Name
    x-go-package: gitea.dev/modules/structs
  EditMilestoneOption:
    description: EditMilestoneOption options for editing a milestone
    type: object
    properties:
      description:
        description: Description provides updated details about the milestone
        type: string
        x-go-name: Description
      due_on:
        description: Deadline is the updated due date for the milestone
        type: string
        format: date-time
        x-go-name: Deadline
      state:
        description: State indicates the updated state of the milestone
        type: string
        enum:
          - open
          - closed
        x-go-name: State
      title:
        description: Title is the updated title of the milestone
        type: string
        x-go-name: Title
    x-go-package: gitea.dev/modules/structs
  EditOrgOption:
    description: EditOrgOption options for editing an organization
    type: object
    properties:
      description:
        description: The description of the organization
        type: string
        x-go-name: Description
      email:
        description: The email address of the organization; use empty string to clear
        type: string
        x-go-name: Email
      full_name:
        description: The full display name of the organization
        type: string
        x-go-name: FullName
      location:
        description: The location of the organization
        type: string
        x-go-name: Location
      repo_admin_change_team_access:
        description: Whether repository administrators can change team access
        type: boolean
        x-go-name: RepoAdminChangeTeamAccess
      visibility:
        description: |-
          possible values are `public`, `limited` or `private`
          public UserVisibilityPublic
          limited UserVisibilityLimited
          private UserVisibilityPrivate
        type: string
        enum:
          - public
          - limited
          - private
        x-go-enum-desc: |-
          public UserVisibilityPublic
          limited UserVisibilityLimited
          private UserVisibilityPrivate
        x-go-name: Visibility
      website:
        description: The website URL of the organization
        type: string
        x-go-name: Website
    x-go-package: gitea.dev/modules/structs
  EditPullRequestOption:
    description: EditPullRequestOption options when modify pull request
    type: object
    properties:
      allow_maintainer_edit:
        description: Whether to allow maintainer edits
        type: boolean
        x-go-name: AllowMaintainerEdit
      assignee:
        description: The new primary assignee username
        type: string
        x-go-name: Assignee
      assignees:
        description: The new list of assignee usernames
        type: array
        items:
          type: string
        x-go-name: Assignees
      base:
        description: The new base branch for the pull request
        type: string
        x-go-name: Base
      body:
        description: The new description body for the pull request
        type: string
        x-go-name: Body
      content_version:
        description: >-
          The current version of the pull request content to detect conflicts
          during editing
        type: integer
        format: int64
        x-go-name: ContentVersion
      due_date:
        type: string
        format: date-time
        x-go-name: Deadline
      labels:
        description: The new list of label IDs for the pull request
        type: array
        items:
          type: integer
          format: int64
        x-go-name: Labels
      milestone:
        description: The new milestone ID for the pull request
        type: integer
        format: int64
        x-go-name: Milestone
      state:
        description: The new state for the pull request
        type: string
        x-go-name: State
      title:
        description: The new title for the pull request
        type: string
        x-go-name: Title
      unset_due_date:
        description: Whether to remove the current deadline
        type: boolean
        x-go-name: RemoveDeadline
    x-go-package: gitea.dev/modules/structs
  EditReactionOption:
    description: EditReactionOption contain the reaction type
    type: object
    properties:
      content:
        description: The reaction content (e.g., emoji or reaction type)
        type: string
        x-go-name: Reaction
    x-go-package: gitea.dev/modules/structs
  EditReleaseOption:
    description: EditReleaseOption options when editing a release
    type: object
    properties:
      body:
        description: The new release notes or description
        type: string
        x-go-name: Note
      draft:
        description: Whether to change the draft status
        type: boolean
        x-go-name: IsDraft
      name:
        description: The new display title of the release
        type: string
        x-go-name: Title
      prerelease:
        description: Whether to change the prerelease status
        type: boolean
        x-go-name: IsPrerelease
      tag_name:
        description: The new name of the git tag
        type: string
        x-go-name: TagName
      target_commitish:
        description: The new target commitish for the release
        type: string
        x-go-name: Target
    x-go-package: gitea.dev/modules/structs
  EditRepoOption:
    description: EditRepoOption options when editing a repository's properties
    type: object
    properties:
      allow_fast_forward_only_merge:
        description: >-
          either `true` to allow fast-forward-only merging pull requests, or
          `false` to prevent fast-forward-only merging.
        type: boolean
        x-go-name: AllowFastForwardOnly
      allow_manual_merge:
        description: >-
          either `true` to allow mark pr as merged manually, or `false` to
          prevent it.
        type: boolean
        x-go-name: AllowManualMerge
      allow_merge_commits:
        description: >-
          either `true` to allow merging pull requests with a merge commit, or
          `false` to prevent merging pull requests with merge commits.
        type: boolean
        x-go-name: AllowMerge
      allow_merge_update:
        description: >-
          either `true` to allow updating pull request branch by merge, or
          `false` to prevent it.
        type: boolean
        x-go-name: AllowMergeUpdate
      allow_rebase:
        description: >-
          either `true` to allow rebase-merging pull requests, or `false` to
          prevent rebase-merging.
        type: boolean
        x-go-name: AllowRebase
      allow_rebase_explicit:
        description: >-
          either `true` to allow rebase with explicit merge commits (--no-ff),
          or `false` to prevent rebase with explicit merge commits.
        type: boolean
        x-go-name: AllowRebaseMerge
      allow_rebase_update:
        description: >-
          either `true` to allow updating pull request branch by rebase, or
          `false` to prevent it.
        type: boolean
        x-go-name: AllowRebaseUpdate
      allow_squash_merge:
        description: >-
          either `true` to allow squash-merging pull requests, or `false` to
          prevent squash-merging.
        type: boolean
        x-go-name: AllowSquash
      archived:
        description: set to `true` to archive this repository.
        type: boolean
        x-go-name: Archived
      autodetect_manual_merge:
        description: >-
          either `true` to enable AutodetectManualMerge, or `false` to prevent
          it. Note: In some special cases, misjudgments can occur.
        type: boolean
        x-go-name: AutodetectManualMerge
      default_allow_maintainer_edit:
        description: set to `true` to allow edits from maintainers by default
        type: boolean
        x-go-name: DefaultAllowMaintainerEdit
      default_branch:
        description: sets the default branch for this repository.
        type: string
        x-go-name: DefaultBranch
      default_delete_branch_after_merge:
        description: set to `true` to delete pr branch after merge by default
        type: boolean
        x-go-name: DefaultDeleteBranchAfterMerge
      default_merge_style:
        description: >-
          set to a merge style to be used by this repository: "merge", "rebase",
          "rebase-merge", "squash", or "fast-forward-only".
        type: string
        x-go-name: DefaultMergeStyle
      default_update_style:
        description: >-
          set to an update style to be used by this repository: "merge" or
          "rebase".
        type: string
        x-go-name: DefaultUpdateStyle
      description:
        description: a short description of the repository.
        type: string
        x-go-name: Description
      enable_prune:
        description: >-
          enable prune - remove obsolete remote-tracking references when
          mirroring
        type: boolean
        x-go-name: EnablePrune
      external_tracker:
        $ref: '#/definitions/ExternalTracker'
      external_wiki:
        $ref: '#/definitions/ExternalWiki'
      has_actions:
        description: either `true` to enable actions unit, or `false` to disable them.
        type: boolean
        x-go-name: HasActions
      has_code:
        description: >-
          either `true` to enable code for this repository or `false` to disable
          it.
        type: boolean
        x-go-name: HasCode
      has_issues:
        description: >-
          either `true` to enable issues for this repository or `false` to
          disable them.
        type: boolean
        x-go-name: HasIssues
      has_packages:
        description: either `true` to enable packages unit, or `false` to disable them.
        type: boolean
        x-go-name: HasPackages
      has_projects:
        description: either `true` to enable project unit, or `false` to disable them.
        type: boolean
        x-go-name: HasProjects
      has_pull_requests:
        description: >-
          either `true` to allow pull requests, or `false` to prevent pull
          request.
        type: boolean
        x-go-name: HasPullRequests
      has_releases:
        description: either `true` to enable releases unit, or `false` to disable them.
        type: boolean
        x-go-name: HasReleases
      has_wiki:
        description: >-
          either `true` to enable the wiki for this repository or `false` to
          disable it.
        type: boolean
        x-go-name: HasWiki
      ignore_whitespace_conflicts:
        description: >-
          either `true` to ignore whitespace for conflicts, or `false` to not
          ignore whitespace.
        type: boolean
        x-go-name: IgnoreWhitespaceConflicts
      internal_tracker:
        $ref: '#/definitions/InternalTracker'
      mirror_interval:
        description: set to a string like `8h30m0s` to set the mirror interval time
        type: string
        x-go-name: MirrorInterval
      mirror_password:
        description: authentication password for the remote repository (mirrors)
        type: string
        x-go-name: MirrorPassword
      mirror_token:
        description: authentication token for the remote repository (mirrors)
        type: string
        x-go-name: MirrorToken
      mirror_username:
        description: authentication username for the remote repository (mirrors)
        type: string
        x-go-name: MirrorUsername
      name:
        description: name of the repository
        type: string
        uniqueItems: true
        x-go-name: Name
      private:
        description: >-
          either `true` to make the repository private or `false` to make it
          public.

          Note: you will get a 422 error if the organization restricts changing
          repository visibility to organization

          owners and a non-owner tries to change the value of private.
        type: boolean
        x-go-name: Private
      projects_mode:
        description: >-
          `repo` to only allow repo-level projects, `owner` to only allow owner
          projects, `all` to allow both.
        type: string
        x-go-name: ProjectsMode
      template:
        description: >-
          either `true` to make this repository a template or `false` to make it
          a normal repository
        type: boolean
        x-go-name: Template
      website:
        description: a URL with more information about the repository.
        type: string
        x-go-name: Website
    x-go-package: gitea.dev/modules/structs
  EditTagProtectionOption:
    description: EditTagProtectionOption options for editing a tag protection
    type: object
    properties:
      name_pattern:
        description: The pattern to match tag names for protection
        type: string
        x-go-name: NamePattern
      whitelist_teams:
        description: List of team names allowed to create/delete protected tags
        type: array
        items:
          type: string
        x-go-name: WhitelistTeams
      whitelist_usernames:
        description: List of usernames allowed to create/delete protected tags
        type: array
        items:
          type: string
        x-go-name: WhitelistUsernames
    x-go-package: gitea.dev/modules/structs
  EditTeamOption:
    description: EditTeamOption options for editing a team
    type: object
    required:
      - name
    properties:
      can_create_org_repo:
        description: Whether the team can create repositories in the organization
        type: boolean
        x-go-name: CanCreateOrgRepo
      description:
        description: The description of the team
        type: string
        x-go-name: Description
      includes_all_repositories:
        description: Whether the team has access to all repositories in the organization
        type: boolean
        x-go-name: IncludesAllRepositories
      name:
        type: string
        x-go-name: Name
      permission:
        type: string
        enum:
          - read
          - write
          - admin
        x-go-enum-desc: |-
          read RepoWritePermissionRead
          write RepoWritePermissionWrite
          admin RepoWritePermissionAdmin
        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.code: read
          repo.ext_issues: none
          repo.ext_wiki: none
          repo.issues: write
          repo.projects: none
          repo.pulls: owner
          repo.releases: none
          repo.wiki: admin
      visibility:
        description: |-
          Team visibility within the organization. When omitted, visibility is
          left unchanged.
          public TeamVisibilityPublic
          limited TeamVisibilityLimited
          private TeamVisibilityPrivate
        type: string
        enum:
          - public
          - limited
          - private
        x-go-enum-desc: |-
          public TeamVisibilityPublic
          limited TeamVisibilityLimited
          private TeamVisibilityPrivate
        x-go-name: Visibility
    x-go-package: gitea.dev/modules/structs
  EditUserOption:
    description: EditUserOption edit user options
    type: object
    required:
      - source_id
      - login_name
    properties:
      active:
        description: Whether the user account is active
        type: boolean
        x-go-name: Active
      admin:
        description: Whether the user has administrator privileges
        type: boolean
        x-go-name: Admin
      allow_create_organization:
        description: Whether the user can create organizations
        type: boolean
        x-go-name: AllowCreateOrganization
      allow_git_hook:
        description: Whether the user can use Git hooks
        type: boolean
        x-go-name: AllowGitHook
      allow_import_local:
        description: Whether the user can import local repositories
        type: boolean
        x-go-name: AllowImportLocal
      description:
        description: The user's personal description or bio
        type: string
        x-go-name: Description
      email:
        type: string
        format: email
        x-go-name: Email
      full_name:
        description: The full display name of the user
        type: string
        x-go-name: FullName
      location:
        description: The user's location or address
        type: string
        x-go-name: Location
      login_name:
        description: >-
          identifier of the user, provided by the external authenticator (if
          configured)
        type: string
        default: empty
        x-go-name: LoginName
      max_repo_creation:
        description: Maximum number of repositories the user can create
        type: integer
        format: int64
        x-go-name: MaxRepoCreation
      must_change_password:
        description: Whether the user must change password on next login
        type: boolean
        x-go-name: MustChangePassword
      password:
        description: The plain text password for the user
        type: string
        x-go-name: Password
      prohibit_login:
        description: Whether the user is prohibited from logging in
        type: boolean
        x-go-name: ProhibitLogin
      restricted:
        description: Whether the user has restricted access privileges
        type: boolean
        x-go-name: Restricted
      source_id:
        type: integer
        format: int64
        x-go-name: SourceID
      visibility:
        description: |-
          User visibility level: public, limited, or private
          public UserVisibilityPublic
          limited UserVisibilityLimited
          private UserVisibilityPrivate
        type: string
        enum:
          - public
          - limited
          - private
        x-go-enum-desc: |-
          public UserVisibilityPublic
          limited UserVisibilityLimited
          private UserVisibilityPrivate
        x-go-name: Visibility
      website:
        description: The user's personal website URL
        type: string
        x-go-name: Website
    x-go-package: gitea.dev/modules/structs
  Email:
    description: Email an email address belonging to a user
    type: object
    properties:
      email:
        type: string
        format: email
        x-go-name: Email
      primary:
        description: Whether this is the primary email address
        type: boolean
        x-go-name: Primary
      user_id:
        description: The unique identifier of the user who owns this email
        type: integer
        format: int64
        x-go-name: UserID
      username:
        description: username of the user
        type: string
        x-go-name: UserName
      verified:
        description: Whether the email address has been verified
        type: boolean
        x-go-name: Verified
    x-go-package: gitea.dev/modules/structs
  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: gitea.dev/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: gitea.dev/modules/structs
  FileCommitResponse:
    type: object
    title: >-
      FileCommitResponse contains information generated from a Git commit for a
      repo's file.
    properties:
      author:
        $ref: '#/definitions/CommitUser'
      committer:
        $ref: '#/definitions/CommitUser'
      created:
        type: string
        format: date-time
        x-go-name: Created
      html_url:
        description: HTMLURL is the web URL for viewing this commit
        type: string
        x-go-name: HTMLURL
      message:
        description: Message is the commit message
        type: string
        x-go-name: Message
      parents:
        description: Parents contains parent commit metadata
        type: array
        items:
          $ref: '#/definitions/CommitMeta'
        x-go-name: Parents
      sha:
        description: SHA is the commit SHA hash
        type: string
        x-go-name: SHA
      tree:
        $ref: '#/definitions/CommitMeta'
      url:
        description: URL is the API URL for the commit
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  FileDeleteResponse:
    description: >-
      FileDeleteResponse contains information about a repo's file that was
      deleted
    type: object
    properties:
      commit:
        $ref: '#/definitions/FileCommitResponse'
      content:
        description: Content is always null for delete operations
        x-go-name: Content
      verification:
        $ref: '#/definitions/PayloadCommitVerification'
    x-go-package: gitea.dev/modules/structs
  FileLinksResponse:
    description: FileLinksResponse contains the links for a repo's file
    type: object
    properties:
      git:
        description: GitURL is the Git API URL for this file
        type: string
        x-go-name: GitURL
      html:
        description: HTMLURL is the web URL for this file
        type: string
        x-go-name: HTMLURL
      self:
        description: Self is the API URL for this file
        type: string
        x-go-name: Self
    x-go-package: gitea.dev/modules/structs
  FileResponse:
    description: FileResponse contains information about a repo's file
    type: object
    properties:
      commit:
        $ref: '#/definitions/FileCommitResponse'
      content:
        $ref: '#/definitions/ContentsResponse'
      verification:
        $ref: '#/definitions/PayloadCommitVerification'
    x-go-package: gitea.dev/modules/structs
  FilesResponse:
    description: FilesResponse contains information about multiple files from a repo
    type: object
    properties:
      commit:
        $ref: '#/definitions/FileCommitResponse'
      files:
        description: Files contains the list of file contents and metadata
        type: array
        items:
          $ref: '#/definitions/ContentsResponse'
        x-go-name: Files
      verification:
        $ref: '#/definitions/PayloadCommitVerification'
    x-go-package: gitea.dev/modules/structs
  GPGKey:
    description: GPGKey a user GPG key to sign commit and tag in repository
    type: object
    properties:
      can_certify:
        description: Whether the key can be used for certification
        type: boolean
        x-go-name: CanCertify
      can_encrypt_comms:
        description: Whether the key can be used for encrypting communications
        type: boolean
        x-go-name: CanEncryptComms
      can_encrypt_storage:
        description: Whether the key can be used for encrypting storage
        type: boolean
        x-go-name: CanEncryptStorage
      can_sign:
        description: Whether the key can be used for signing
        type: boolean
        x-go-name: CanSign
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      emails:
        description: List of email addresses associated with this GPG key
        type: array
        items:
          $ref: '#/definitions/GPGKeyEmail'
        x-go-name: Emails
      expires_at:
        type: string
        format: date-time
        x-go-name: Expires
      id:
        description: The unique identifier of the GPG key
        type: integer
        format: int64
        x-go-name: ID
      key_id:
        description: The key ID of the GPG key
        type: string
        x-go-name: KeyID
      primary_key_id:
        description: The primary key ID of the GPG key
        type: string
        x-go-name: PrimaryKeyID
      public_key:
        description: The public key content in armored format
        type: string
        x-go-name: PublicKey
      subkeys:
        description: List of subkeys of this GPG key
        type: array
        items:
          $ref: '#/definitions/GPGKey'
        x-go-name: SubsKey
      verified:
        description: Whether the GPG key has been verified
        type: boolean
        x-go-name: Verified
    x-go-package: gitea.dev/modules/structs
  GPGKeyEmail:
    description: GPGKeyEmail an email attached to a GPGKey
    type: object
    properties:
      email:
        description: The email address associated with the GPG key
        type: string
        x-go-name: Email
      verified:
        description: Whether the email address has been verified
        type: boolean
        x-go-name: Verified
    x-go-package: gitea.dev/modules/structs
  GeneralAPISettings:
    description: GeneralAPISettings contains global api settings exposed by it
    type: object
    properties:
      default_git_trees_per_page:
        description: >-
          DefaultGitTreesPerPage is the default number of Git tree items per
          page
        type: integer
        format: int64
        x-go-name: DefaultGitTreesPerPage
      default_max_blob_size:
        description: DefaultMaxBlobSize is the default maximum blob size for API responses
        type: integer
        format: int64
        x-go-name: DefaultMaxBlobSize
      default_max_response_size:
        description: DefaultMaxResponseSize is the default maximum response size
        type: integer
        format: int64
        x-go-name: DefaultMaxResponseSize
      default_paging_num:
        description: DefaultPagingNum is the default number of items per page
        type: integer
        format: int64
        x-go-name: DefaultPagingNum
      max_response_items:
        description: >-
          MaxResponseItems is the maximum number of items returned in API
          responses
        type: integer
        format: int64
        x-go-name: MaxResponseItems
    x-go-package: gitea.dev/modules/structs
  GeneralAttachmentSettings:
    description: >-
      GeneralAttachmentSettings contains global Attachment settings exposed by
      API
    type: object
    properties:
      allowed_types:
        description: AllowedTypes contains the allowed file types for attachments
        type: string
        x-go-name: AllowedTypes
      enabled:
        description: Enabled indicates if file attachments are enabled
        type: boolean
        x-go-name: Enabled
      max_files:
        description: MaxFiles is the maximum number of files per attachment
        type: integer
        format: int64
        x-go-name: MaxFiles
      max_size:
        description: MaxSize is the maximum size for individual attachments
        type: integer
        format: int64
        x-go-name: MaxSize
    x-go-package: gitea.dev/modules/structs
  GeneralRepoSettings:
    description: GeneralRepoSettings contains global repository settings exposed by API
    type: object
    properties:
      http_git_disabled:
        description: HTTPGitDisabled indicates if HTTP Git operations are disabled
        type: boolean
        x-go-name: HTTPGitDisabled
      lfs_disabled:
        description: LFSDisabled indicates if Git LFS support is disabled
        type: boolean
        x-go-name: LFSDisabled
      migrations_disabled:
        description: MigrationsDisabled indicates if repository migrations are disabled
        type: boolean
        x-go-name: MigrationsDisabled
      mirrors_disabled:
        description: MirrorsDisabled indicates if repository mirroring is disabled
        type: boolean
        x-go-name: MirrorsDisabled
      stars_disabled:
        description: StarsDisabled indicates if repository starring is disabled
        type: boolean
        x-go-name: StarsDisabled
      time_tracking_disabled:
        description: TimeTrackingDisabled indicates if time tracking is disabled
        type: boolean
        x-go-name: TimeTrackingDisabled
    x-go-package: gitea.dev/modules/structs
  GeneralUISettings:
    description: GeneralUISettings contains global ui settings exposed by API
    type: object
    properties:
      allowed_reactions:
        description: AllowedReactions contains the list of allowed emoji reactions
        type: array
        items:
          type: string
        x-go-name: AllowedReactions
      custom_emojis:
        description: CustomEmojis contains the list of custom emojis
        type: array
        items:
          type: string
        x-go-name: CustomEmojis
      default_theme:
        description: DefaultTheme is the default UI theme
        type: string
        x-go-name: DefaultTheme
    x-go-package: gitea.dev/modules/structs
  GenerateRepoOption:
    description: GenerateRepoOption options when creating a repository using a template
    type: object
    required:
      - owner
      - name
    properties:
      avatar:
        description: include avatar of the template repo
        type: boolean
        x-go-name: Avatar
      default_branch:
        description: Default branch of the new repository
        type: string
        x-go-name: DefaultBranch
      description:
        description: Description of the repository to create
        type: string
        x-go-name: Description
      git_content:
        description: include git content of default branch in template repo
        type: boolean
        x-go-name: GitContent
      git_hooks:
        description: include git hooks in template repo
        type: boolean
        x-go-name: GitHooks
      labels:
        description: include labels in template repo
        type: boolean
        x-go-name: Labels
      name:
        type: string
        uniqueItems: true
        x-go-name: Name
      owner:
        description: >-
          the organization's name or individual user's name who will own the new
          repository
        type: string
        x-go-name: Owner
      private:
        description: Whether the repository is private
        type: boolean
        x-go-name: Private
      protected_branch:
        description: include protected branches in template repo
        type: boolean
        x-go-name: ProtectedBranch
      topics:
        description: include topics in template repo
        type: boolean
        x-go-name: Topics
      webhooks:
        description: include webhooks in template repo
        type: boolean
        x-go-name: Webhooks
    x-go-package: gitea.dev/modules/structs
  GetFilesOptions:
    description: >-
      GetFilesOptions options for retrieving metadate and content of multiple
      files
    type: object
    properties:
      files:
        description: Files is the list of file paths to retrieve
        type: array
        items:
          type: string
        x-go-name: Files
    x-go-package: gitea.dev/modules/structs
  GitBlobResponse:
    description: GitBlobResponse represents a git blob
    type: object
    properties:
      content:
        description: The content of the git blob (may be base64 encoded)
        type: string
        x-go-name: Content
      encoding:
        description: The encoding used for the content (e.g., "base64")
        type: string
        x-go-name: Encoding
      lfs_oid:
        description: The LFS object ID if this blob is stored in LFS
        type: string
        x-go-name: LfsOid
      lfs_size:
        description: The size of the LFS object if this blob is stored in LFS
        type: integer
        format: int64
        x-go-name: LfsSize
      sha:
        description: The SHA hash of the git blob
        type: string
        x-go-name: SHA
      size:
        description: The size of the git blob in bytes
        type: integer
        format: int64
        x-go-name: Size
      url:
        description: The URL to access this git blob
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  GitEntry:
    description: GitEntry represents a git tree
    type: object
    properties:
      mode:
        description: Mode is the file mode (permissions)
        type: string
        x-go-name: Mode
      path:
        description: Path is the file or directory path
        type: string
        x-go-name: Path
      sha:
        description: SHA is the Git object SHA
        type: string
        x-go-name: SHA
      size:
        description: Size is the file size in bytes
        type: integer
        format: int64
        x-go-name: Size
      type:
        description: Type indicates if this is a file, directory, or symlink
        type: string
        x-go-name: Type
      url:
        description: URL is the API URL for this tree entry
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  GitHook:
    description: GitHook represents a Git repository hook
    type: object
    properties:
      content:
        description: Content contains the script content of the hook
        type: string
        x-go-name: Content
      is_active:
        description: IsActive indicates if the hook is active
        type: boolean
        x-go-name: IsActive
      name:
        description: Name is the name of the Git hook
        type: string
        x-go-name: Name
    x-go-package: gitea.dev/modules/structs
  GitObject:
    type: object
    title: GitObject represents a Git object.
    properties:
      sha:
        description: The SHA hash of the Git object
        type: string
        x-go-name: SHA
      type:
        description: The type of the Git object (e.g., commit, tag, tree, blob)
        type: string
        x-go-name: Type
      url:
        description: The URL to access this Git object
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  GitTreeResponse:
    description: GitTreeResponse returns a git tree
    type: object
    properties:
      page:
        description: Page is the current page number for pagination
        type: integer
        format: int64
        x-go-name: Page
      sha:
        description: SHA is the tree object SHA
        type: string
        x-go-name: SHA
      total_count:
        description: TotalCount is the total number of entries in the tree
        type: integer
        format: int64
        x-go-name: TotalCount
      tree:
        description: Entries contains the tree entries (files and directories)
        type: array
        items:
          $ref: '#/definitions/GitEntry'
        x-go-name: Entries
      truncated:
        description: Truncated indicates if the response was truncated due to size
        type: boolean
        x-go-name: Truncated
      url:
        description: URL is the API URL for this tree
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  GitignoreTemplateInfo:
    description: GitignoreTemplateInfo name and text of a gitignore template
    type: object
    properties:
      name:
        description: Name is the name of the gitignore template
        type: string
        x-go-name: Name
      source:
        description: Source contains the content of the gitignore template
        type: string
        x-go-name: Source
    x-go-package: gitea.dev/modules/structs
  Hook:
    description: Hook a hook is a web hook when one repository changed
    type: object
    properties:
      active:
        description: Whether the webhook is active and will be triggered
        type: boolean
        x-go-name: Active
      authorization_header:
        description: Authorization header to include in webhook requests
        type: string
        x-go-name: AuthorizationHeader
      branch_filter:
        description: Branch filter pattern to determine which branches trigger the webhook
        type: string
        x-go-name: BranchFilter
      config:
        description: Configuration settings for the webhook
        type: object
        additionalProperties:
          type: string
        x-go-name: Config
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      events:
        description: List of events that trigger this webhook
        type: array
        items:
          type: string
        x-go-name: Events
      id:
        description: The unique identifier of the webhook
        type: integer
        format: int64
        x-go-name: ID
      name:
        description: Optional human-readable name for the webhook
        type: string
        x-go-name: Name
      type:
        description: The type of the webhook (e.g., gitea, slack, discord)
        type: string
        x-go-name: Type
      updated_at:
        type: string
        format: date-time
        x-go-name: Updated
    x-go-package: gitea.dev/modules/structs
  Identity:
    description: Identity for a person's identity like an author or committer
    type: object
    properties:
      email:
        type: string
        format: email
        x-go-name: Email
      name:
        description: Name is the person's name
        type: string
        x-go-name: Name
    x-go-package: gitea.dev/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: gitea.dev/modules/structs
  Issue:
    description: Issue represents an issue in a repository
    type: object
    properties:
      assets:
        type: array
        items:
          $ref: '#/definitions/Attachment'
        x-go-name: Attachments
      assignee:
        $ref: '#/definitions/User'
      assignees:
        type: array
        items:
          $ref: '#/definitions/User'
        x-go-name: Assignees
      body:
        type: string
        x-go-name: Body
      closed_at:
        type: string
        format: date-time
        x-go-name: Closed
      comments:
        type: integer
        format: int64
        x-go-name: Comments
      content_version:
        description: The version of the issue content for optimistic locking
        type: integer
        format: int64
        x-go-name: ContentVersion
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      due_date:
        type: string
        format: date-time
        x-go-name: Deadline
      html_url:
        type: string
        x-go-name: HTMLURL
      id:
        type: integer
        format: int64
        x-go-name: ID
      is_locked:
        type: boolean
        x-go-name: IsLocked
      labels:
        type: array
        items:
          $ref: '#/definitions/Label'
        x-go-name: Labels
      milestone:
        $ref: '#/definitions/Milestone'
      number:
        type: integer
        format: int64
        x-go-name: Index
      original_author:
        type: string
        x-go-name: OriginalAuthor
      original_author_id:
        type: integer
        format: int64
        x-go-name: OriginalAuthorID
      pin_order:
        type: integer
        format: int64
        x-go-name: PinOrder
      projects:
        type: array
        items:
          $ref: '#/definitions/Project'
        x-go-name: Projects
      pull_request:
        $ref: '#/definitions/PullRequestMeta'
      ref:
        type: string
        x-go-name: Ref
      repository:
        $ref: '#/definitions/RepositoryMeta'
      state:
        type: string
        enum:
          - open
          - closed
        x-go-enum-desc: |-
          open StateOpen pr is opened
          closed StateClosed pr is closed
        x-go-name: State
      time_estimate:
        type: integer
        format: int64
        x-go-name: TimeEstimate
      title:
        type: string
        x-go-name: Title
      updated_at:
        type: string
        format: date-time
        x-go-name: Updated
      url:
        type: string
        x-go-name: URL
      user:
        $ref: '#/definitions/User'
    x-go-package: gitea.dev/modules/structs
  IssueAssigneesOption:
    description: IssueAssigneesOption options for adding/removing issue assignees
    type: object
    properties:
      assignees:
        type: array
        items:
          type: string
        x-go-name: Assignees
    x-go-package: gitea.dev/modules/structs
  IssueConfig:
    type: object
    properties:
      blank_issues_enabled:
        type: boolean
        x-go-name: BlankIssuesEnabled
      contact_links:
        type: array
        items:
          $ref: '#/definitions/IssueConfigContactLink'
        x-go-name: ContactLinks
    x-go-package: gitea.dev/modules/structs
  IssueConfigContactLink:
    type: object
    properties:
      about:
        type: string
        x-go-name: About
      name:
        type: string
        x-go-name: Name
      url:
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  IssueConfigValidation:
    type: object
    properties:
      message:
        type: string
        x-go-name: Message
      valid:
        type: boolean
        x-go-name: Valid
    x-go-package: gitea.dev/modules/structs
  IssueDeadline:
    description: IssueDeadline represents an issue deadline
    type: object
    properties:
      due_date:
        type: string
        format: date-time
        x-go-name: Deadline
    x-go-package: gitea.dev/modules/structs
  IssueFormField:
    description: IssueFormField represents a form field
    type: object
    properties:
      attributes:
        type: object
        additionalProperties: {}
        x-go-name: Attributes
      id:
        type: string
        x-go-name: ID
      type:
        type: string
        enum:
          - markdown
          - textarea
          - input
          - dropdown
          - checkboxes
        x-go-enum-desc: |-
          markdown IssueFormFieldTypeMarkdown
          textarea IssueFormFieldTypeTextarea
          input IssueFormFieldTypeInput
          dropdown IssueFormFieldTypeDropdown
          checkboxes IssueFormFieldTypeCheckboxes
        x-go-name: Type
      validations:
        type: object
        additionalProperties: {}
        x-go-name: Validations
      visible:
        type: array
        items:
          type: string
          enum:
            - form
            - content
          x-go-enum-desc: |-
            form IssueFormFieldVisibleForm
            content IssueFormFieldVisibleContent
        x-go-name: Visible
    x-go-package: gitea.dev/modules/structs
  IssueLabelsOption:
    description: IssueLabelsOption a collection of labels
    type: object
    properties:
      labels:
        description: |-
          Labels can be a list of integers representing label IDs
          or a list of strings representing label names
        type: array
        items: {}
        x-go-name: Labels
    x-go-package: gitea.dev/modules/structs
  IssueMeta:
    description: IssueMeta basic issue information
    type: object
    properties:
      index:
        type: integer
        format: int64
        x-go-name: Index
      owner:
        description: owner of the issue's repo
        type: string
        x-go-name: Owner
      repo:
        type: string
        x-go-name: Name
    x-go-package: gitea.dev/modules/structs
  IssueTemplate:
    description: IssueTemplate represents an issue template for a repository
    type: object
    properties:
      about:
        type: string
        x-go-name: About
      assignees:
        $ref: '#/definitions/IssueTemplateStringSlice'
      body:
        type: array
        items:
          $ref: '#/definitions/IssueFormField'
        x-go-name: Fields
      content:
        type: string
        x-go-name: Content
      file_name:
        type: string
        x-go-name: FileName
      labels:
        $ref: '#/definitions/IssueTemplateStringSlice'
      name:
        type: string
        x-go-name: Name
      ref:
        type: string
        x-go-name: Ref
      title:
        type: string
        x-go-name: Title
    x-go-package: gitea.dev/modules/structs
  IssueTemplateStringSlice:
    type: array
    items:
      type: string
    x-go-package: gitea.dev/modules/structs
  Label:
    description: Label a label to an issue or a pr
    type: object
    properties:
      color:
        type: string
        x-go-name: Color
        example: 00aabb
      description:
        description: Description provides additional context about the label's purpose
        type: string
        x-go-name: Description
      exclusive:
        type: boolean
        x-go-name: Exclusive
        example: false
      id:
        description: ID is the unique identifier for the label
        type: integer
        format: int64
        x-go-name: ID
      is_archived:
        type: boolean
        x-go-name: IsArchived
        example: false
      name:
        description: Name is the display name of the label
        type: string
        x-go-name: Name
      url:
        description: URL is the API endpoint for accessing this label
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  LabelTemplate:
    description: LabelTemplate info of a Label template
    type: object
    properties:
      color:
        type: string
        x-go-name: Color
        example: 00aabb
      description:
        description: >-
          Description provides additional context about the label template's
          purpose
        type: string
        x-go-name: Description
      exclusive:
        type: boolean
        x-go-name: Exclusive
        example: false
      name:
        description: Name is the display name of the label template
        type: string
        x-go-name: Name
    x-go-package: gitea.dev/modules/structs
  LicenseTemplateInfo:
    description: LicensesInfo contains information about a License
    type: object
    properties:
      body:
        description: Body contains the full text of the license
        type: string
        x-go-name: Body
      implementation:
        description: Implementation contains license implementation details
        type: string
        x-go-name: Implementation
      key:
        description: Key is the unique identifier for the license template
        type: string
        x-go-name: Key
      name:
        description: Name is the display name of the license
        type: string
        x-go-name: Name
      url:
        description: URL is the reference URL for the license
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  LicensesTemplateListEntry:
    description: LicensesListEntry is used for the API
    type: object
    properties:
      key:
        description: Key is the unique identifier for the license template
        type: string
        x-go-name: Key
      name:
        description: Name is the display name of the license
        type: string
        x-go-name: Name
      url:
        description: URL is the reference URL for the license
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  LockIssueOption:
    description: LockIssueOption options to lock an issue
    type: object
    properties:
      lock_reason:
        type: string
        x-go-name: Reason
    x-go-package: gitea.dev/modules/structs
  MarkdownOption:
    description: MarkdownOption markdown options
    type: object
    properties:
      Context:
        description: >-
          URL path for rendering issue, media and file links

          Expected format: /subpath/{user}/{repo}/src/{branch, commit,
          tag}/{identifier/path}/{file/dir}
        type: string
      Mode:
        description: Mode to render (markdown, comment, wiki, file)
        type: string
      Text:
        description: Text markdown to render
        type: string
      Wiki:
        description: |-
          Is it a wiki page? (use mode=wiki instead)

          Deprecated: true
        type: boolean
    x-go-package: gitea.dev/modules/structs
  MarkupOption:
    description: MarkupOption markup options
    type: object
    properties:
      Context:
        description: >-
          URL path for rendering issue, media and file links

          Expected format: /subpath/{user}/{repo}/src/{branch, commit,
          tag}/{identifier/path}/{file/dir}
        type: string
      FilePath:
        description: File path for detecting extension in file mode
        type: string
      Mode:
        description: Mode to render (markdown, comment, wiki, file)
        type: string
      Text:
        description: Text markup to render
        type: string
      Wiki:
        description: |-
          Is it a wiki page? (use mode=wiki instead)

          Deprecated: true
        type: boolean
    x-go-package: gitea.dev/modules/structs
  MergePullRequestOption:
    description: MergePullRequestForm form for merging Pull Request
    type: object
    required:
      - do
    properties:
      delete_branch_after_merge:
        type: boolean
        x-go-name: DeleteBranchAfterMerge
      do:
        type: string
        enum:
          - merge
          - rebase
          - rebase-merge
          - squash
          - fast-forward-only
          - manually-merged
        x-go-name: Do
      force_merge:
        type: boolean
        x-go-name: ForceMerge
      head_commit_id:
        type: string
        x-go-name: HeadCommitID
      merge_commit_id:
        type: string
        x-go-name: MergeCommitID
      merge_message_field:
        type: string
        x-go-name: MergeMessageField
      merge_title_field:
        type: string
        x-go-name: MergeTitleField
      merge_when_checks_succeed:
        type: boolean
        x-go-name: MergeWhenChecksSucceed
    x-go-name: MergePullRequestForm
    x-go-package: gitea.dev/services/forms
  MergeUpstreamRequest:
    type: object
    properties:
      branch:
        type: string
        x-go-name: Branch
      ff_only:
        type: boolean
        x-go-name: FfOnly
    x-go-package: gitea.dev/modules/structs
  MergeUpstreamResponse:
    type: object
    properties:
      merge_type:
        type: string
        x-go-name: MergeStyle
    x-go-package: gitea.dev/modules/structs
  MigrateRepoOptions:
    description: |-
      MigrateRepoOptions options for migrating repository's
      this is used to interact with api v1
    type: object
    required:
      - clone_addr
      - repo_name
    properties:
      auth_password:
        type: string
        x-go-name: AuthPassword
      auth_token:
        type: string
        x-go-name: AuthToken
      auth_username:
        type: string
        x-go-name: AuthUsername
      aws_access_key_id:
        type: string
        x-go-name: AWSAccessKeyID
      aws_secret_access_key:
        type: string
        x-go-name: AWSSecretAccessKey
      clone_addr:
        type: string
        x-go-name: CloneAddr
      description:
        type: string
        x-go-name: Description
      issues:
        type: boolean
        x-go-name: Issues
      labels:
        type: boolean
        x-go-name: Labels
      lfs:
        type: boolean
        x-go-name: LFS
      lfs_endpoint:
        type: string
        x-go-name: LFSEndpoint
      milestones:
        type: boolean
        x-go-name: Milestones
      mirror:
        type: boolean
        x-go-name: Mirror
      mirror_interval:
        type: string
        x-go-name: MirrorInterval
      private:
        type: boolean
        x-go-name: Private
      pull_requests:
        type: boolean
        x-go-name: PullRequests
      releases:
        type: boolean
        x-go-name: Releases
      repo_name:
        type: string
        x-go-name: RepoName
      repo_owner:
        description: >-
          the organization's name or individual user's name who will own the
          migrated repository
        type: string
        x-go-name: RepoOwner
      service:
        type: string
        enum:
          - git
          - github
          - gitea
          - gitlab
          - gogs
          - onedev
          - gitbucket
          - codebase
          - codecommit
        x-go-name: Service
      uid:
        description: deprecated (only for backwards compatibility, use repo_owner instead)
        type: integer
        format: int64
        x-go-name: RepoOwnerID
      wiki:
        type: boolean
        x-go-name: Wiki
    x-go-package: gitea.dev/modules/structs
  Milestone:
    description: Milestone milestone is a collection of issues on one repository
    type: object
    properties:
      closed_at:
        type: string
        format: date-time
        x-go-name: Closed
      closed_issues:
        description: ClosedIssues is the number of closed issues in this milestone
        type: integer
        format: int64
        x-go-name: ClosedIssues
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      description:
        description: Description provides details about the milestone
        type: string
        x-go-name: Description
      due_on:
        type: string
        format: date-time
        x-go-name: Deadline
      id:
        description: ID is the unique identifier for the milestone
        type: integer
        format: int64
        x-go-name: ID
      open_issues:
        description: OpenIssues is the number of open issues in this milestone
        type: integer
        format: int64
        x-go-name: OpenIssues
      state:
        description: |-
          State indicates if the milestone is open or closed
          open StateOpen pr is opened
          closed StateClosed pr is closed
        type: string
        enum:
          - open
          - closed
        x-go-enum-desc: |-
          open StateOpen pr is opened
          closed StateClosed pr is closed
        x-go-name: State
      title:
        description: Title is the title of the milestone
        type: string
        x-go-name: Title
      updated_at:
        type: string
        format: date-time
        x-go-name: Updated
    x-go-package: gitea.dev/modules/structs
  NewIssuePinsAllowed:
    description: >-
      NewIssuePinsAllowed represents an API response that says if new Issue Pins
      are allowed
    type: object
    properties:
      issues:
        type: boolean
        x-go-name: Issues
      pull_requests:
        type: boolean
        x-go-name: PullRequests
    x-go-package: gitea.dev/modules/structs
  NodeInfo:
    description: >-
      NodeInfo contains standardized way of exposing metadata about a server
      running one of the distributed social networks
    type: object
    properties:
      metadata:
        description: >-
          Metadata contains free form key value pairs for software specific
          values
        type: object
        x-go-name: Metadata
      openRegistrations:
        description: OpenRegistrations indicates if new user registrations are accepted
        type: boolean
        x-go-name: OpenRegistrations
      protocols:
        description: Protocols lists the protocols supported by this server
        type: array
        items:
          type: string
        x-go-name: Protocols
      services:
        $ref: '#/definitions/NodeInfoServices'
      software:
        $ref: '#/definitions/NodeInfoSoftware'
      usage:
        $ref: '#/definitions/NodeInfoUsage'
      version:
        description: Version specifies the schema version
        type: string
        x-go-name: Version
    x-go-package: gitea.dev/modules/structs
  NodeInfoServices:
    description: >-
      NodeInfoServices contains the third party sites this server can connect to
      via their application API
    type: object
    properties:
      inbound:
        description: Inbound lists services that can deliver content to this server
        type: array
        items:
          type: string
        x-go-name: Inbound
      outbound:
        description: Outbound lists services this server can deliver content to
        type: array
        items:
          type: string
        x-go-name: Outbound
    x-go-package: gitea.dev/modules/structs
  NodeInfoSoftware:
    description: NodeInfoSoftware contains Metadata about server software in use
    type: object
    properties:
      homepage:
        description: Homepage is the URL to the homepage of this server software
        type: string
        x-go-name: Homepage
      name:
        description: Name is the canonical name of this server software
        type: string
        x-go-name: Name
      repository:
        description: Repository is the URL to the source code repository
        type: string
        x-go-name: Repository
      version:
        description: Version is the version of this server software
        type: string
        x-go-name: Version
    x-go-package: gitea.dev/modules/structs
  NodeInfoUsage:
    description: NodeInfoUsage contains usage statistics for this server
    type: object
    properties:
      localComments:
        description: >-
          LocalComments is the total amount of comments made by users local to
          this server
        type: integer
        format: int64
        x-go-name: LocalComments
      localPosts:
        description: >-
          LocalPosts is the total amount of posts made by users local to this
          server
        type: integer
        format: int64
        x-go-name: LocalPosts
      users:
        $ref: '#/definitions/NodeInfoUsageUsers'
    x-go-package: gitea.dev/modules/structs
  NodeInfoUsageUsers:
    description: NodeInfoUsageUsers contains statistics about the users of this server
    type: object
    properties:
      activeHalfyear:
        description: >-
          ActiveHalfyear is the amount of users that signed in at least once in
          the last 180 days
        type: integer
        format: int64
        x-go-name: ActiveHalfyear
      activeMonth:
        description: >-
          ActiveMonth is the amount of users that signed in at least once in the
          last 30 days
        type: integer
        format: int64
        x-go-name: ActiveMonth
      total:
        description: Total is the total amount of users on this server
        type: integer
        format: int64
        x-go-name: Total
    x-go-package: gitea.dev/modules/structs
  Note:
    description: Note contains information related to a git note
    type: object
    properties:
      commit:
        $ref: '#/definitions/Commit'
      message:
        description: The content message of the git note
        type: string
        x-go-name: Message
    x-go-package: gitea.dev/modules/structs
  NotificationCount:
    description: NotificationCount number of unread notifications
    type: object
    properties:
      new:
        description: New is the number of unread notifications
        type: integer
        format: int64
        x-go-name: New
    x-go-package: gitea.dev/modules/structs
  NotificationSubject:
    description: NotificationSubject contains the notification subject (Issue/Pull/Commit)
    type: object
    properties:
      html_url:
        description: HTMLURL is the web URL for the notification subject
        type: string
        x-go-name: HTMLURL
      latest_comment_html_url:
        description: LatestCommentHTMLURL is the web URL for the latest comment
        type: string
        x-go-name: LatestCommentHTMLURL
      latest_comment_url:
        description: LatestCommentURL is the API URL for the latest comment
        type: string
        x-go-name: LatestCommentURL
      state:
        description: |-
          State indicates the current state of the notification subject
          open NotifySubjectStateOpen is an open subject
          closed NotifySubjectStateClosed is a closed subject
          merged NotifySubjectStateMerged is a merged pull request
        type: string
        enum:
          - open
          - closed
          - merged
        x-go-enum-desc: |-
          open NotifySubjectStateOpen is an open subject
          closed NotifySubjectStateClosed is a closed subject
          merged NotifySubjectStateMerged is a merged pull request
        x-go-name: State
      title:
        description: Title is the title of the notification subject
        type: string
        x-go-name: Title
      type:
        description: >-
          Type indicates the type of the notification subject

          Issue NotifySubjectIssue a issue is subject of an notification

          Pull NotifySubjectPull a pull is subject of an notification

          Commit NotifySubjectCommit a commit is subject of an notification

          Repository NotifySubjectRepository a repository is subject of an
          notification
        type: string
        enum:
          - Issue
          - Pull
          - Commit
          - Repository
        x-go-enum-desc: >-
          Issue NotifySubjectIssue a issue is subject of an notification

          Pull NotifySubjectPull a pull is subject of an notification

          Commit NotifySubjectCommit a commit is subject of an notification

          Repository NotifySubjectRepository a repository is subject of an
          notification
        x-go-name: Type
      url:
        description: URL is the API URL for the notification subject
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  NotificationThread:
    description: NotificationThread expose Notification on API
    type: object
    properties:
      id:
        description: ID is the unique identifier for the notification thread
        type: integer
        format: int64
        x-go-name: ID
      pinned:
        description: Pinned indicates if the notification is pinned
        type: boolean
        x-go-name: Pinned
      repository:
        $ref: '#/definitions/Repository'
      subject:
        $ref: '#/definitions/NotificationSubject'
      unread:
        description: Unread indicates if the notification has been read
        type: boolean
        x-go-name: Unread
      updated_at:
        description: UpdatedAt is the time when the notification was last updated
        type: string
        format: date-time
        x-go-name: UpdatedAt
      url:
        description: URL is the API URL for this notification thread
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  OAuth2Application:
    type: object
    title: OAuth2Application represents an OAuth2 application.
    properties:
      client_id:
        description: The client ID of the OAuth2 application
        type: string
        x-go-name: ClientID
      client_secret:
        description: The client secret of the OAuth2 application
        type: string
        x-go-name: ClientSecret
      confidential_client:
        description: Whether the client is confidential
        type: boolean
        x-go-name: ConfidentialClient
      created:
        description: The timestamp when the application was created
        type: string
        format: date-time
        x-go-name: Created
      id:
        description: The unique identifier of the OAuth2 application
        type: integer
        format: int64
        x-go-name: ID
      name:
        description: The name of the OAuth2 application
        type: string
        x-go-name: Name
      redirect_uris:
        description: The list of allowed redirect URIs
        type: array
        items:
          type: string
        x-go-name: RedirectURIs
      skip_secondary_authorization:
        description: Whether to skip secondary authorization
        type: boolean
        x-go-name: SkipSecondaryAuthorization
    x-go-package: gitea.dev/modules/structs
  Organization:
    description: Organization represents an organization
    type: object
    properties:
      avatar_url:
        description: The URL of the organization's avatar
        type: string
        x-go-name: AvatarURL
      description:
        description: The description of the organization
        type: string
        x-go-name: Description
      email:
        description: The email address of the organization
        type: string
        x-go-name: Email
      full_name:
        description: The full display name of the organization
        type: string
        x-go-name: FullName
      id:
        description: The unique identifier of the organization
        type: integer
        format: int64
        x-go-name: ID
      location:
        description: The location of the organization
        type: string
        x-go-name: Location
      name:
        description: The name of the organization
        type: string
        x-go-name: Name
      repo_admin_change_team_access:
        description: Whether repository administrators can change team access
        type: boolean
        x-go-name: RepoAdminChangeTeamAccess
      username:
        description: |-
          username of the organization
          deprecated
        type: string
        x-go-name: UserName
      visibility:
        description: |-
          The visibility level of the organization (public, limited, private)
          public UserVisibilityPublic
          limited UserVisibilityLimited
          private UserVisibilityPrivate
        type: string
        enum:
          - public
          - limited
          - private
        x-go-enum-desc: |-
          public UserVisibilityPublic
          limited UserVisibilityLimited
          private UserVisibilityPrivate
        x-go-name: Visibility
      website:
        description: The website URL of the organization
        type: string
        x-go-name: Website
    x-go-package: gitea.dev/modules/structs
  OrganizationPermissions:
    description: >-
      OrganizationPermissions list different users permissions on an
      organization
    type: object
    properties:
      can_create_repository:
        description: Whether the user can create repositories in the organization
        type: boolean
        x-go-name: CanCreateRepository
      can_read:
        description: Whether the user can read the organization
        type: boolean
        x-go-name: CanRead
      can_write:
        description: Whether the user can write to the organization
        type: boolean
        x-go-name: CanWrite
      is_admin:
        description: Whether the user is an admin of the organization
        type: boolean
        x-go-name: IsAdmin
      is_owner:
        description: Whether the user is an owner of the organization
        type: boolean
        x-go-name: IsOwner
    x-go-package: gitea.dev/modules/structs
  PRBranchInfo:
    description: PRBranchInfo information about a branch
    type: object
    properties:
      label:
        description: The display name of the branch
        type: string
        x-go-name: Name
      ref:
        description: The git reference of the branch
        type: string
        x-go-name: Ref
      repo:
        $ref: '#/definitions/Repository'
      repo_id:
        description: The unique identifier of the repository
        type: integer
        format: int64
        x-go-name: RepoID
      sha:
        description: The commit SHA of the branch head
        type: string
        x-go-name: Sha
    x-go-package: gitea.dev/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:
        description: The HTML URL to view the package
        type: string
        x-go-name: HTMLURL
      id:
        description: The unique identifier of the package
        type: integer
        format: int64
        x-go-name: ID
      name:
        description: The name of the package
        type: string
        x-go-name: Name
      owner:
        $ref: '#/definitions/User'
      repository:
        $ref: '#/definitions/Repository'
      type:
        description: The type of the package (e.g., npm, maven, docker)
        type: string
        x-go-name: Type
      version:
        description: The version of the package
        type: string
        x-go-name: Version
    x-go-package: gitea.dev/modules/structs
  PackageFile:
    description: PackageFile represents a package file
    type: object
    properties:
      id:
        description: The unique identifier of the package file
        type: integer
        format: int64
        x-go-name: ID
      md5:
        description: The MD5 hash of the package file
        type: string
        x-go-name: HashMD5
      name:
        description: The name of the package file
        type: string
        x-go-name: Name
      sha1:
        description: The SHA1 hash of the package file
        type: string
        x-go-name: HashSHA1
      sha256:
        description: The SHA256 hash of the package file
        type: string
        x-go-name: HashSHA256
      sha512:
        description: The SHA512 hash of the package file
        type: string
        x-go-name: HashSHA512
      size:
        description: The size of the package file in bytes
        type: integer
        format: int64
        x-go-name: Size
    x-go-package: gitea.dev/modules/structs
  PayloadCommit:
    description: PayloadCommit represents a commit
    type: object
    properties:
      added:
        description: List of files added in this commit
        type: array
        items:
          type: string
        x-go-name: Added
      author:
        $ref: '#/definitions/PayloadUser'
      committer:
        $ref: '#/definitions/PayloadUser'
      id:
        description: sha1 hash of the commit
        type: string
        x-go-name: ID
      message:
        description: The commit message
        type: string
        x-go-name: Message
      modified:
        description: List of files modified in this commit
        type: array
        items:
          type: string
        x-go-name: Modified
      removed:
        description: List of files removed in this commit
        type: array
        items:
          type: string
        x-go-name: Removed
      timestamp:
        type: string
        format: date-time
        x-go-name: Timestamp
      url:
        description: The URL to view this commit
        type: string
        x-go-name: URL
      verification:
        $ref: '#/definitions/PayloadCommitVerification'
    x-go-package: gitea.dev/modules/structs
  PayloadCommitVerification:
    description: PayloadCommitVerification represents the GPG verification of a commit
    type: object
    properties:
      payload:
        description: The signed payload content
        type: string
        x-go-name: Payload
      reason:
        description: The reason for the verification status
        type: string
        x-go-name: Reason
      signature:
        description: The GPG signature of the commit
        type: string
        x-go-name: Signature
      signer:
        $ref: '#/definitions/PayloadUser'
      verified:
        description: Whether the commit signature is verified
        type: boolean
        x-go-name: Verified
    x-go-package: gitea.dev/modules/structs
  PayloadUser:
    description: PayloadUser represents the author or committer of a commit
    type: object
    properties:
      email:
        type: string
        format: email
        x-go-name: Email
      name:
        description: Full name of the commit author
        type: string
        x-go-name: Name
      username:
        description: username of the user
        type: string
        x-go-name: UserName
    x-go-package: gitea.dev/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: gitea.dev/modules/structs
  Project:
    description: Project represents a project
    type: object
    properties:
      closed_at:
        type: string
        format: date-time
        x-go-name: Closed
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      creator_id:
        description: CreatorID is the user who created the project
        type: integer
        format: int64
        x-go-name: CreatorID
      description:
        description: Description provides details about the project
        type: string
        x-go-name: Description
      id:
        description: ID is the unique identifier for the project
        type: integer
        format: int64
        x-go-name: ID
      is_closed:
        description: IsClosed indicates if the project is closed
        type: boolean
        x-go-name: IsClosed
      owner_id:
        description: OwnerID is the owner of the project (for org-level projects)
        type: integer
        format: int64
        x-go-name: OwnerID
      repo_id:
        description: >-
          RepoID is the repository this project belongs to (for repo-level
          projects)
        type: integer
        format: int64
        x-go-name: RepoID
      title:
        description: Title is the title of the project
        type: string
        x-go-name: Title
      updated_at:
        type: string
        format: date-time
        x-go-name: Updated
    x-go-package: gitea.dev/modules/structs
  PublicKey:
    description: PublicKey publickey is a user key to push code to repository
    type: object
    properties:
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      fingerprint:
        description: Fingerprint is the key's fingerprint
        type: string
        x-go-name: Fingerprint
      id:
        description: ID is the unique identifier for the public key
        type: integer
        format: int64
        x-go-name: ID
      key:
        description: Key contains the actual SSH public key content
        type: string
        x-go-name: Key
      key_type:
        description: KeyType indicates the type of the SSH key
        type: string
        x-go-name: KeyType
      last_used_at:
        description: Updated is the time when the key was last used
        type: string
        format: date-time
        x-go-name: Updated
      read_only:
        description: ReadOnly indicates if the key has read-only access
        type: boolean
        x-go-name: ReadOnly
      title:
        description: Title is the human-readable name for the key
        type: string
        x-go-name: Title
      url:
        description: URL is the API URL for this key
        type: string
        x-go-name: URL
      user:
        $ref: '#/definitions/User'
    x-go-package: gitea.dev/modules/structs
  PullRequest:
    description: PullRequest represents a pull request
    type: object
    properties:
      additions:
        description: The number of lines added in the pull request
        type: integer
        format: int64
        x-go-name: Additions
      allow_maintainer_edit:
        description: Whether maintainers can edit the pull request
        type: boolean
        x-go-name: AllowMaintainerEdit
      assignee:
        $ref: '#/definitions/User'
      assignees:
        description: The list of users assigned to the pull request
        type: array
        items:
          $ref: '#/definitions/User'
        x-go-name: Assignees
      base:
        $ref: '#/definitions/PRBranchInfo'
      body:
        description: The description body of the pull request
        type: string
        x-go-name: Body
      changed_files:
        description: The number of files changed in the pull request
        type: integer
        format: int64
        x-go-name: ChangedFiles
      closed_at:
        type: string
        format: date-time
        x-go-name: Closed
      comments:
        description: The number of comments on the pull request
        type: integer
        format: int64
        x-go-name: Comments
      content_version:
        description: The version of the pull request content for optimistic locking
        type: integer
        format: int64
        x-go-name: ContentVersion
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      deletions:
        description: The number of lines deleted in the pull request
        type: integer
        format: int64
        x-go-name: Deletions
      diff_url:
        description: The URL to download the diff patch
        type: string
        x-go-name: DiffURL
      draft:
        description: Whether the pull request is a draft
        type: boolean
        x-go-name: Draft
      due_date:
        type: string
        format: date-time
        x-go-name: Deadline
      head:
        $ref: '#/definitions/PRBranchInfo'
      html_url:
        description: The HTML URL to view the pull request
        type: string
        x-go-name: HTMLURL
      id:
        description: The unique identifier of the pull request
        type: integer
        format: int64
        x-go-name: ID
      is_locked:
        description: Whether the pull request conversation is locked
        type: boolean
        x-go-name: IsLocked
      labels:
        description: The labels attached to the pull request
        type: array
        items:
          $ref: '#/definitions/Label'
        x-go-name: Labels
      merge_base:
        description: The merge base commit SHA
        type: string
        x-go-name: MergeBase
      merge_commit_sha:
        description: The SHA of the merge commit
        type: string
        x-go-name: MergedCommitID
      mergeable:
        description: Whether the pull request can be merged
        type: boolean
        x-go-name: Mergeable
      merged:
        description: Whether the pull request has been merged
        type: boolean
        x-go-name: HasMerged
      merged_at:
        type: string
        format: date-time
        x-go-name: Merged
      merged_by:
        $ref: '#/definitions/User'
      milestone:
        $ref: '#/definitions/Milestone'
      number:
        description: The pull request number
        type: integer
        format: int64
        x-go-name: Index
      patch_url:
        description: The URL to download the patch file
        type: string
        x-go-name: PatchURL
      pin_order:
        description: The pin order for the pull request
        type: integer
        format: int64
        x-go-name: PinOrder
      requested_reviewers:
        description: The users requested to review the pull request
        type: array
        items:
          $ref: '#/definitions/User'
        x-go-name: RequestedReviewers
      requested_reviewers_teams:
        description: The teams requested to review the pull request
        type: array
        items:
          $ref: '#/definitions/Team'
        x-go-name: RequestedReviewersTeams
      review_comments:
        description: >-
          number of review comments made on the diff of a PR review (not
          including comments on commits or issues in a PR)
        type: integer
        format: int64
        x-go-name: ReviewComments
      state:
        description: |-
          The current state of the pull request
          open StateOpen pr is opened
          closed StateClosed pr is closed
        type: string
        enum:
          - open
          - closed
        x-go-enum-desc: |-
          open StateOpen pr is opened
          closed StateClosed pr is closed
        x-go-name: State
      title:
        description: The title of the pull request
        type: string
        x-go-name: Title
      updated_at:
        type: string
        format: date-time
        x-go-name: Updated
      url:
        description: The API URL of the pull request
        type: string
        x-go-name: URL
      user:
        $ref: '#/definitions/User'
    x-go-package: gitea.dev/modules/structs
  PullRequestMeta:
    description: PullRequestMeta PR info if an issue is a PR
    type: object
    properties:
      draft:
        type: boolean
        x-go-name: IsWorkInProgress
      html_url:
        type: string
        x-go-name: HTMLURL
      merged:
        type: boolean
        x-go-name: HasMerged
      merged_at:
        type: string
        format: date-time
        x-go-name: Merged
    x-go-package: gitea.dev/modules/structs
  PullRequestMinimal:
    description: |-
      PullRequestMinimal is the minimal information about a pull request, as
      returned in the `pull_requests` field of a workflow run.
    type: object
    properties:
      base:
        $ref: '#/definitions/PullRequestMinimalHead'
      head:
        $ref: '#/definitions/PullRequestMinimalHead'
      id:
        type: integer
        format: int64
        x-go-name: ID
      number:
        type: integer
        format: int64
        x-go-name: Number
      url:
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  PullRequestMinimalHead:
    type: object
    title: >-
      PullRequestMinimalHead is a minimal description of one side of a pull
      request.
    properties:
      ref:
        type: string
        x-go-name: Ref
      repo:
        $ref: '#/definitions/PullRequestMinimalHeadRepo'
      sha:
        type: string
        x-go-name: SHA
    x-go-package: gitea.dev/modules/structs
  PullRequestMinimalHeadRepo:
    type: object
    title: >-
      PullRequestMinimalHeadRepo is a minimal description of the repository on
      one side of a pull request.
    properties:
      id:
        type: integer
        format: int64
        x-go-name: ID
      name:
        type: string
        x-go-name: Name
      url:
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  PullReview:
    description: PullReview represents a pull request review
    type: object
    properties:
      body:
        type: string
        x-go-name: Body
      comments_count:
        type: integer
        format: int64
        x-go-name: CodeCommentsCount
      commit_id:
        type: string
        x-go-name: CommitID
      dismissed:
        type: boolean
        x-go-name: Dismissed
      html_url:
        description: HTMLURL is the web URL for viewing the review
        type: string
        x-go-name: HTMLURL
      id:
        type: integer
        format: int64
        x-go-name: ID
      official:
        type: boolean
        x-go-name: Official
      pull_request_url:
        description: HTMLPullURL is the web URL for the pull request
        type: string
        x-go-name: HTMLPullURL
      stale:
        type: boolean
        x-go-name: Stale
      state:
        type: string
        enum:
          - APPROVED
          - PENDING
          - COMMENT
          - REQUEST_CHANGES
          - REQUEST_REVIEW
        x-go-enum-desc: |-
          APPROVED ReviewStateApproved pr is approved
          PENDING ReviewStatePending pr state is pending
          COMMENT ReviewStateComment is a comment review
          REQUEST_CHANGES ReviewStateRequestChanges changes for pr are requested
          REQUEST_REVIEW ReviewStateRequestReview review is requested from user
        x-go-name: State
      submitted_at:
        type: string
        format: date-time
        x-go-name: Submitted
      team:
        $ref: '#/definitions/Team'
      updated_at:
        type: string
        format: date-time
        x-go-name: Updated
      user:
        $ref: '#/definitions/User'
    x-go-package: gitea.dev/modules/structs
  PullReviewComment:
    description: PullReviewComment represents a comment on a pull request review
    type: object
    properties:
      body:
        type: string
        x-go-name: Body
      commit_id:
        type: string
        x-go-name: CommitID
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      diff_hunk:
        type: string
        x-go-name: DiffHunk
      html_url:
        type: string
        x-go-name: HTMLURL
      id:
        type: integer
        format: int64
        x-go-name: ID
      original_commit_id:
        type: string
        x-go-name: OrigCommitID
      original_position:
        type: integer
        format: uint64
        x-go-name: OldLineNum
      path:
        type: string
        x-go-name: Path
      position:
        type: integer
        format: uint64
        x-go-name: LineNum
      pull_request_review_id:
        type: integer
        format: int64
        x-go-name: ReviewID
      pull_request_url:
        type: string
        x-go-name: HTMLPullURL
      resolver:
        $ref: '#/definitions/User'
      updated_at:
        type: string
        format: date-time
        x-go-name: Updated
      user:
        $ref: '#/definitions/User'
    x-go-package: gitea.dev/modules/structs
  PullReviewRequestOptions:
    description: >-
      PullReviewRequestOptions are options to add or remove pull request review
      requests
    type: object
    properties:
      reviewers:
        type: array
        items:
          type: string
        x-go-name: Reviewers
      team_reviewers:
        type: array
        items:
          type: string
        x-go-name: TeamReviewers
    x-go-package: gitea.dev/modules/structs
  PushMirror:
    description: PushMirror represents information of a push mirror
    type: object
    properties:
      created:
        type: string
        format: date-time
        x-go-name: CreatedUnix
      interval:
        description: The sync interval for automatic updates
        type: string
        x-go-name: Interval
      last_error:
        description: The last error message encountered during sync
        type: string
        x-go-name: LastError
      last_update:
        type: string
        format: date-time
        x-go-name: LastUpdateUnix
      remote_address:
        description: The remote repository URL being mirrored to
        type: string
        x-go-name: RemoteAddress
      remote_name:
        description: The name of the remote in the git configuration
        type: string
        x-go-name: RemoteName
      repo_name:
        description: The name of the source repository
        type: string
        x-go-name: RepoName
      sync_on_commit:
        description: Whether to sync on every commit
        type: boolean
        x-go-name: SyncOnCommit
    x-go-package: gitea.dev/modules/structs
  Reaction:
    description: Reaction contain one reaction
    type: object
    properties:
      content:
        description: The reaction content (e.g., emoji or reaction type)
        type: string
        x-go-name: Reaction
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      user:
        $ref: '#/definitions/User'
    x-go-package: gitea.dev/modules/structs
  Reference:
    type: object
    title: Reference represents a Git reference.
    properties:
      object:
        $ref: '#/definitions/GitObject'
      ref:
        description: The name of the Git reference (e.g., refs/heads/main)
        type: string
        x-go-name: Ref
      url:
        description: The URL to access this Git reference
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  Release:
    description: Release represents a repository release
    type: object
    properties:
      assets:
        description: The files attached to the release
        type: array
        items:
          $ref: '#/definitions/Attachment'
        x-go-name: Attachments
      author:
        $ref: '#/definitions/User'
      body:
        description: The release notes or description
        type: string
        x-go-name: Note
      created_at:
        type: string
        format: date-time
        x-go-name: CreatedAt
      draft:
        description: Whether the release is a draft
        type: boolean
        x-go-name: IsDraft
      html_url:
        description: The HTML URL to view the release
        type: string
        x-go-name: HTMLURL
      id:
        description: The unique identifier of the release
        type: integer
        format: int64
        x-go-name: ID
      name:
        description: The display title of the release
        type: string
        x-go-name: Title
      prerelease:
        description: Whether the release is a prerelease
        type: boolean
        x-go-name: IsPrerelease
      published_at:
        type: string
        format: date-time
        x-go-name: PublishedAt
      tag_name:
        description: The name of the git tag associated with the release
        type: string
        x-go-name: TagName
      tarball_url:
        description: The URL to download the tarball archive
        type: string
        x-go-name: TarURL
      target_commitish:
        description: The target commitish for the release
        type: string
        x-go-name: Target
      upload_url:
        description: The URL template for uploading release assets
        type: string
        x-go-name: UploadURL
      url:
        description: The API URL of the release
        type: string
        x-go-name: URL
      zipball_url:
        description: The URL to download the zip archive
        type: string
        x-go-name: ZipURL
    x-go-package: gitea.dev/modules/structs
  RenameBranchRepoOption:
    description: RenameBranchRepoOption options when renaming a branch in a repository
    type: object
    required:
      - name
    properties:
      name:
        description: New branch name
        type: string
        uniqueItems: true
        x-go-name: Name
    x-go-package: gitea.dev/modules/structs
  RenameOrgOption:
    description: RenameOrgOption options when renaming an organization
    type: object
    required:
      - new_name
    properties:
      new_name:
        description: >-
          New username for this org. This name cannot be in use yet by any other
          user.
        type: string
        uniqueItems: true
        x-go-name: NewName
    x-go-package: gitea.dev/modules/structs
  RenameUserOption:
    description: RenameUserOption options when renaming a user
    type: object
    required:
      - new_username
    properties:
      new_username:
        description: >-
          New username for this user. This name cannot be in use yet by any
          other user.
        type: string
        uniqueItems: true
        x-go-name: NewName
    x-go-package: gitea.dev/modules/structs
  RepoCollaboratorPermission:
    description: RepoCollaboratorPermission to get repository permission for a collaborator
    type: object
    properties:
      permission:
        description: |-
          Permission level of the collaborator
          none AccessLevelNameNone
          read AccessLevelNameRead
          write AccessLevelNameWrite
          admin AccessLevelNameAdmin
          owner AccessLevelNameOwner
        type: string
        enum:
          - none
          - read
          - write
          - admin
          - owner
        x-go-enum-desc: |-
          none AccessLevelNameNone
          read AccessLevelNameRead
          write AccessLevelNameWrite
          admin AccessLevelNameAdmin
          owner AccessLevelNameOwner
        x-go-name: Permission
      role_name:
        description: RoleName is the name of the permission role
        type: string
        x-go-name: RoleName
      user:
        $ref: '#/definitions/User'
    x-go-package: gitea.dev/modules/structs
  RepoCommit:
    type: object
    title: >-
      RepoCommit contains information of a commit in the context of a
      repository.
    properties:
      author:
        $ref: '#/definitions/CommitUser'
      committer:
        $ref: '#/definitions/CommitUser'
      message:
        description: Message is the commit message
        type: string
        x-go-name: Message
      tree:
        $ref: '#/definitions/CommitMeta'
      url:
        description: URL is the API URL for the commit
        type: string
        x-go-name: URL
      verification:
        $ref: '#/definitions/PayloadCommitVerification'
    x-go-package: gitea.dev/modules/structs
  RepoTopicOptions:
    description: RepoTopicOptions a collection of repo topic names
    type: object
    properties:
      topics:
        description: list of topic names
        type: array
        items:
          type: string
        x-go-name: Topics
    x-go-package: gitea.dev/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: gitea.dev/modules/structs
  Repository:
    description: Repository represents a repository
    type: object
    properties:
      allow_fast_forward_only_merge:
        type: boolean
        x-go-name: AllowFastForwardOnly
      allow_manual_merge:
        type: boolean
        x-go-name: AllowManualMerge
      allow_merge_commits:
        type: boolean
        x-go-name: AllowMerge
      allow_merge_update:
        type: boolean
        x-go-name: AllowMergeUpdate
      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
      autodetect_manual_merge:
        type: boolean
        x-go-name: AutodetectManualMerge
      avatar_url:
        type: string
        x-go-name: AvatarURL
      branch_count:
        type: integer
        format: int64
        x-go-name: BranchCount
      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_target_branch:
        type: string
        x-go-name: DefaultTargetBranch
      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
      has_actions:
        type: boolean
        x-go-name: HasActions
      has_code:
        type: boolean
        x-go-name: HasCode
      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:
        type: boolean
        x-go-name: HasWiki
      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
      licenses:
        type: array
        items:
          type: string
        x-go-name: Licenses
      link:
        type: string
        x-go-name: Link
      mirror:
        type: boolean
        x-go-name: Mirror
      mirror_interval:
        type: string
        x-go-name: MirrorInterval
      mirror_last_sync_at:
        type: string
        format: date-time
        x-go-name: MirrorLastSyncAt
      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
          sha1 ObjectFormatSHA1
          sha256 ObjectFormatSHA256
        type: string
        enum:
          - sha1
          - sha256
        x-go-enum-desc: |-
          sha1 ObjectFormatSHA1
          sha256 ObjectFormatSHA256
        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
      projects_mode:
        type: string
        x-go-name: ProjectsMode
      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
    x-go-package: gitea.dev/modules/structs
  RepositoryMeta:
    description: RepositoryMeta basic repository information
    type: object
    properties:
      full_name:
        type: string
        x-go-name: FullName
      id:
        type: integer
        format: int64
        x-go-name: ID
      name:
        type: string
        x-go-name: Name
      owner:
        type: string
        x-go-name: Owner
    x-go-package: gitea.dev/modules/structs
  RunDetails:
    description: RunDetails returns workflow_dispatch runid and url
    type: object
    properties:
      html_url:
        type: string
        x-go-name: HTMLURL
      run_url:
        type: string
        x-go-name: RunURL
      workflow_run_id:
        type: integer
        format: int64
        x-go-name: WorkflowRunID
    x-go-package: gitea.dev/modules/structs
  SearchResults:
    description: SearchResults results of a successful search
    type: object
    properties:
      data:
        description: Data contains the repository search results
        type: array
        items:
          $ref: '#/definitions/Repository'
        x-go-name: Data
      ok:
        description: OK indicates if the search was successful
        type: boolean
        x-go-name: OK
    x-go-package: gitea.dev/modules/structs
  Secret:
    description: Secret represents a secret
    type: object
    properties:
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      description:
        description: the secret's description
        type: string
        x-go-name: Description
      name:
        description: the secret's name
        type: string
        x-go-name: Name
    x-go-package: gitea.dev/modules/structs
  ServerVersion:
    description: ServerVersion wraps the version of the server
    type: object
    properties:
      version:
        description: Version is the server version string
        type: string
        x-go-name: Version
    x-go-package: gitea.dev/modules/structs
  StopWatch:
    description: StopWatch represent a running stopwatch
    type: object
    properties:
      created:
        type: string
        format: date-time
        x-go-name: Created
      duration:
        description: Duration is a human-readable duration string
        type: string
        x-go-name: Duration
      issue_index:
        description: IssueIndex is the index number of the associated issue
        type: integer
        format: int64
        x-go-name: IssueIndex
      issue_title:
        description: IssueTitle is the title of the associated issue
        type: string
        x-go-name: IssueTitle
      repo_name:
        description: RepoName is the name of the repository
        type: string
        x-go-name: RepoName
      repo_owner_name:
        description: RepoOwnerName is the name of the repository owner
        type: string
        x-go-name: RepoOwnerName
      seconds:
        description: Seconds is the total elapsed time in seconds
        type: integer
        format: int64
        x-go-name: Seconds
    x-go-package: gitea.dev/modules/structs
  SubmitPullReviewOptions:
    description: >-
      SubmitPullReviewOptions are options to submit a pending pull request
      review
    type: object
    properties:
      body:
        type: string
        x-go-name: Body
      event:
        type: string
        enum:
          - APPROVED
          - PENDING
          - COMMENT
          - REQUEST_CHANGES
          - REQUEST_REVIEW
        x-go-enum-desc: |-
          APPROVED ReviewStateApproved pr is approved
          PENDING ReviewStatePending pr state is pending
          COMMENT ReviewStateComment is a comment review
          REQUEST_CHANGES ReviewStateRequestChanges changes for pr are requested
          REQUEST_REVIEW ReviewStateRequestReview review is requested from user
        x-go-name: Event
    x-go-package: gitea.dev/modules/structs
  Tag:
    description: Tag represents a repository tag
    type: object
    properties:
      commit:
        $ref: '#/definitions/CommitMeta'
      id:
        description: The ID (SHA) of the tag
        type: string
        x-go-name: ID
      message:
        description: The message associated with the tag
        type: string
        x-go-name: Message
      name:
        description: The name of the tag
        type: string
        x-go-name: Name
      tarball_url:
        description: The URL to download the tarball archive
        type: string
        x-go-name: TarballURL
      zipball_url:
        description: The URL to download the zipball archive
        type: string
        x-go-name: ZipballURL
    x-go-package: gitea.dev/modules/structs
  TagProtection:
    description: TagProtection represents a tag protection
    type: object
    properties:
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      id:
        description: The unique identifier of the tag protection
        type: integer
        format: int64
        x-go-name: ID
      name_pattern:
        description: The pattern to match tag names for protection
        type: string
        x-go-name: NamePattern
      updated_at:
        type: string
        format: date-time
        x-go-name: Updated
      whitelist_teams:
        description: List of team names allowed to create/delete protected tags
        type: array
        items:
          type: string
        x-go-name: WhitelistTeams
      whitelist_usernames:
        description: List of usernames allowed to create/delete protected tags
        type: array
        items:
          type: string
        x-go-name: WhitelistUsernames
    x-go-package: gitea.dev/modules/structs
  Team:
    description: Team represents a team in an organization
    type: object
    properties:
      can_create_org_repo:
        description: Whether the team can create repositories in the organization
        type: boolean
        x-go-name: CanCreateOrgRepo
      description:
        description: The description of the team
        type: string
        x-go-name: Description
      id:
        description: The unique identifier of the team
        type: integer
        format: int64
        x-go-name: ID
      includes_all_repositories:
        description: Whether the team has access to all repositories in the organization
        type: boolean
        x-go-name: IncludesAllRepositories
      name:
        description: The name of the team
        type: string
        x-go-name: Name
      organization:
        $ref: '#/definitions/Organization'
      permission:
        type: string
        enum:
          - none
          - read
          - write
          - admin
          - owner
        x-go-enum-desc: |-
          none AccessLevelNameNone
          read AccessLevelNameRead
          write AccessLevelNameWrite
          admin AccessLevelNameAdmin
          owner AccessLevelNameOwner
        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.code: read
          repo.ext_issues: none
          repo.ext_wiki: none
          repo.issues: write
          repo.projects: none
          repo.pulls: owner
          repo.releases: none
          repo.wiki: admin
      visibility:
        description: |-
          Team visibility within the organization. "private" teams are only
          listable by members and org owners; "limited" teams are listable by
          any organization member; "public" teams are listable by any signed-in
          user.
          public TeamVisibilityPublic
          limited TeamVisibilityLimited
          private TeamVisibilityPrivate
        type: string
        enum:
          - public
          - limited
          - private
        x-go-enum-desc: |-
          public TeamVisibilityPublic
          limited TeamVisibilityLimited
          private TeamVisibilityPrivate
        x-go-name: Visibility
    x-go-package: gitea.dev/modules/structs
  TimeStamp:
    description: TimeStamp defines a timestamp
    type: integer
    format: int64
    x-go-package: gitea.dev/modules/timeutil
  TimelineComment:
    description: >-
      TimelineComment represents a timeline comment (comment of any type) on a
      commit or issue
    type: object
    properties:
      assignee:
        $ref: '#/definitions/User'
      assignee_team:
        $ref: '#/definitions/Team'
      body:
        description: Body contains the timeline event content
        type: string
        x-go-name: Body
      created_at:
        type: string
        format: date-time
        x-go-name: Created
      dependent_issue:
        $ref: '#/definitions/Issue'
      html_url:
        description: HTMLURL is the web URL for viewing the comment
        type: string
        x-go-name: HTMLURL
      id:
        description: ID is the unique identifier for the timeline comment
        type: integer
        format: int64
        x-go-name: ID
      issue_url:
        description: IssueURL is the API URL for the issue
        type: string
        x-go-name: IssueURL
      label:
        $ref: '#/definitions/Label'
      milestone:
        $ref: '#/definitions/Milestone'
      new_ref:
        type: string
        x-go-name: NewRef
      new_title:
        type: string
        x-go-name: NewTitle
      old_milestone:
        $ref: '#/definitions/Milestone'
      old_project_id:
        type: integer
        format: int64
        x-go-name: OldProjectID
      old_ref:
        type: string
        x-go-name: OldRef
      old_title:
        type: string
        x-go-name: OldTitle
      project_id:
        type: integer
        format: int64
        x-go-name: ProjectID
      pull_request_url:
        description: PRURL is the API URL for the pull request (if applicable)
        type: string
        x-go-name: PRURL
      ref_action:
        type: string
        x-go-name: RefAction
      ref_comment:
        $ref: '#/definitions/Comment'
      ref_commit_sha:
        description: commit SHA where issue/PR was referenced
        type: string
        x-go-name: RefCommitSHA
      ref_issue:
        $ref: '#/definitions/Issue'
      removed_assignee:
        description: whether the assignees were removed or added
        type: boolean
        x-go-name: RemovedAssignee
      resolve_doer:
        $ref: '#/definitions/User'
      review_id:
        type: integer
        format: int64
        x-go-name: ReviewID
      tracked_time:
        $ref: '#/definitions/TrackedTime'
      type:
        description: Type indicates the type of timeline event
        type: string
        x-go-name: Type
      updated_at:
        type: string
        format: date-time
        x-go-name: Updated
      user:
        $ref: '#/definitions/User'
    x-go-package: gitea.dev/modules/structs
  TopicName:
    description: TopicName a list of repo topic names
    type: object
    properties:
      topics:
        description: List of topic names
        type: array
        items:
          type: string
        x-go-name: TopicNames
    x-go-package: gitea.dev/modules/structs
  TopicResponse:
    description: TopicResponse for returning topics
    type: object
    properties:
      created:
        description: The date and time when the topic was created
        type: string
        format: date-time
        x-go-name: Created
      id:
        description: The unique identifier of the topic
        type: integer
        format: int64
        x-go-name: ID
      repo_count:
        description: The number of repositories using this topic
        type: integer
        format: int64
        x-go-name: RepoCount
      topic_name:
        description: The name of the topic
        type: string
        x-go-name: Name
      updated:
        description: The date and time when the topic was last updated
        type: string
        format: date-time
        x-go-name: Updated
    x-go-package: gitea.dev/modules/structs
  TrackedTime:
    description: TrackedTime worked time for an issue / pr
    type: object
    properties:
      created:
        type: string
        format: date-time
        x-go-name: Created
      id:
        description: ID is the unique identifier for the tracked time entry
        type: integer
        format: int64
        x-go-name: ID
      issue:
        $ref: '#/definitions/Issue'
      issue_id:
        description: deprecated (only for backwards compatibility)
        type: integer
        format: int64
        x-go-name: IssueID
      time:
        description: Time in seconds
        type: integer
        format: int64
        x-go-name: Time
      user_id:
        description: deprecated (only for backwards compatibility)
        type: integer
        format: int64
        x-go-name: UserID
      user_name:
        description: username of the user
        type: string
        x-go-name: UserName
    x-go-package: gitea.dev/modules/structs
  TransferRepoOption:
    description: TransferRepoOption options when transfer a repository's ownership
    type: object
    required:
      - new_owner
    properties:
      new_owner:
        type: string
        x-go-name: NewOwner
      team_ids:
        description: >-
          ID of the team or teams to add to the repository. Teams can only be
          added to organization-owned repositories.
        type: array
        items:
          type: integer
          format: int64
        x-go-name: TeamIDs
    x-go-package: gitea.dev/modules/structs
  UpdateBranchProtectionPriories:
    description: >-
      UpdateBranchProtectionPriories a list to update the branch protection rule
      priorities
    type: object
    properties:
      ids:
        type: array
        items:
          type: integer
          format: int64
        x-go-name: IDs
    x-go-package: gitea.dev/modules/structs
  UpdateBranchRepoOption:
    description: >-
      UpdateBranchRepoOption options when updating a branch reference in a
      repository
    type: object
    required:
      - new_commit_id
    properties:
      force:
        description: Force update even if the change is not a fast-forward
        type: boolean
        x-go-name: Force
      new_commit_id:
        description: New commit SHA (or any ref) the branch should point to
        type: string
        x-go-name: NewCommitID
      old_commit_id:
        description: >-
          Expected old commit SHA of the branch; if provided it must match the
          current tip
        type: string
        x-go-name: OldCommitID
    x-go-package: gitea.dev/modules/structs
  UpdateFileOptions:
    description: >-
      UpdateFileOptions options for updating or creating a file

      Note: `author` and `committer` are optional (if only one is given, it will
      be used for the other, otherwise the authenticated user will be used)
    type: object
    required:
      - content
    properties:
      author:
        $ref: '#/definitions/Identity'
      branch:
        description: >-
          branch (optional) is the base branch for the changes. If not supplied,
          the default branch is used
        type: string
        x-go-name: BranchName
      committer:
        $ref: '#/definitions/Identity'
      content:
        description: content must be base64 encoded
        type: string
        x-go-name: ContentBase64
      dates:
        $ref: '#/definitions/CommitDateOptions'
      force_push:
        description: >-
          force_push (optional) will do a force-push if the new branch already
          exists
        type: boolean
        x-go-name: ForcePush
      from_path:
        description: >-
          from_path (optional) is the path of the original file which will be
          moved/renamed to the path in the URL
        type: string
        x-go-name: FromPath
      message:
        description: >-
          message (optional) is the commit message of the changes. If not
          supplied, a default message will be used
        type: string
        x-go-name: Message
      new_branch:
        description: >-
          new_branch (optional) will make a new branch from base branch for the
          changes. If not supplied, the changes will be committed to the base
          branch
        type: string
        x-go-name: NewBranchName
      sha:
        description: >-
          the blob ID (SHA) for the file that already exists to update, or leave
          it empty to create a new file
        type: string
        x-go-name: SHA
      signoff:
        description: >-
          Add a Signed-off-by trailer by the committer at the end of the commit
          log message.
        type: boolean
        x-go-name: Signoff
    x-go-package: gitea.dev/modules/structs
  UpdateRepoAvatarOption:
    description: UpdateRepoAvatarUserOption options when updating the repo avatar
    type: object
    properties:
      image:
        description: image must be base64 encoded
        type: string
        x-go-name: Image
    x-go-package: gitea.dev/modules/structs
  UpdateUserAvatarOption:
    description: UpdateUserAvatarUserOption options when updating the user avatar
    type: object
    properties:
      image:
        description: image must be base64 encoded
        type: string
        x-go-name: Image
    x-go-package: gitea.dev/modules/structs
  UpdateVariableOption:
    description: UpdateVariableOption the option when updating variable
    type: object
    required:
      - value
    properties:
      description:
        description: Description of the variable to update
        type: string
        x-go-name: Description
      name:
        description: >-
          New name for the variable. If the field is empty, the variable name
          won't be updated.
        type: string
        x-go-name: Name
      value:
        description: Value of the variable to update
        type: string
        x-go-name: Value
    x-go-package: gitea.dev/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 gitea 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: login of the user, same as `username`
        type: string
        x-go-name: UserName
      login_name:
        description: >-
          identifier of the user, provided by the external authenticator (if
          configured)
        type: string
        default: empty
        x-go-name: LoginName
      prohibit_login:
        description: Is user login prohibited
        type: boolean
        x-go-name: ProhibitLogin
      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
          public UserVisibilityPublic
          limited UserVisibilityLimited
          private UserVisibilityPrivate
        type: string
        enum:
          - public
          - limited
          - private
        x-go-enum-desc: |-
          public UserVisibilityPublic
          limited UserVisibilityLimited
          private UserVisibilityPrivate
        x-go-name: Visibility
      website:
        description: the user's website
        type: string
        x-go-name: Website
    x-go-package: gitea.dev/modules/structs
  UserBadgeOption:
    description: UserBadgeOption options for link between users and badges
    type: object
    properties:
      badge_slugs:
        type: array
        items:
          type: string
        x-go-name: BadgeSlugs
        example:
          - badge1
          - badge2
    x-go-package: gitea.dev/modules/structs
  UserHeatmapData:
    description: UserHeatmapData represents the data needed to create a heatmap
    type: object
    properties:
      contributions:
        type: integer
        format: int64
        x-go-name: Contributions
      timestamp:
        $ref: '#/definitions/TimeStamp'
    x-go-package: gitea.dev/models/activities
  UserMeta:
    type: object
    title: UserMeta represents minimal user information for the token owner.
    properties:
      id:
        description: The unique identifier of the user
        type: integer
        format: int64
        x-go-name: ID
      login:
        description: The username of the user
        type: string
        x-go-name: Login
    x-go-package: gitea.dev/modules/structs
  UserSettings:
    description: UserSettings represents user settings
    type: object
    properties:
      description:
        type: string
        x-go-name: Description
      diff_view_style:
        type: string
        x-go-name: DiffViewStyle
      full_name:
        type: string
        x-go-name: FullName
      hide_activity:
        type: boolean
        x-go-name: HideActivity
      hide_email:
        description: Privacy
        type: boolean
        x-go-name: HideEmail
      language:
        type: string
        x-go-name: Language
      location:
        type: string
        x-go-name: Location
      theme:
        type: string
        x-go-name: Theme
      website:
        type: string
        x-go-name: Website
    x-go-package: gitea.dev/modules/structs
  UserSettingsOptions:
    description: UserSettingsOptions represents options to change user settings
    type: object
    properties:
      description:
        type: string
        x-go-name: Description
      diff_view_style:
        type: string
        x-go-name: DiffViewStyle
      full_name:
        type: string
        x-go-name: FullName
      hide_activity:
        type: boolean
        x-go-name: HideActivity
      hide_email:
        description: Privacy
        type: boolean
        x-go-name: HideEmail
      language:
        type: string
        x-go-name: Language
      location:
        type: string
        x-go-name: Location
      theme:
        type: string
        x-go-name: Theme
      website:
        type: string
        x-go-name: Website
    x-go-package: gitea.dev/modules/structs
  WatchInfo:
    description: WatchInfo represents an API watch status of one repository
    type: object
    properties:
      created_at:
        description: The timestamp when the watch status was created
        type: string
        format: date-time
        x-go-name: CreatedAt
      ignored:
        description: Whether notifications for the repository are ignored
        type: boolean
        x-go-name: Ignored
      reason:
        description: The reason for the current watch status
        x-go-name: Reason
      repository_url:
        description: The URL of the repository being watched
        type: string
        x-go-name: RepositoryURL
      subscribed:
        description: Whether the repository is being watched for notifications
        type: boolean
        x-go-name: Subscribed
      url:
        description: The URL for managing the watch status
        type: string
        x-go-name: URL
    x-go-package: gitea.dev/modules/structs
  WikiCommit:
    description: WikiCommit page commit/revision
    type: object
    properties:
      author:
        $ref: '#/definitions/CommitUser'
      commiter:
        $ref: '#/definitions/CommitUser'
      message:
        description: The commit message
        type: string
        x-go-name: Message
      sha:
        description: The commit SHA hash
        type: string
        x-go-name: ID
    x-go-package: gitea.dev/modules/structs
  WikiCommitList:
    description: WikiCommitList commit/revision list
    type: object
    properties:
      commits:
        description: The list of wiki commits
        type: array
        items:
          $ref: '#/definitions/WikiCommit'
        x-go-name: WikiCommits
      count:
        description: The total count of commits
        type: integer
        format: int64
        x-go-name: Count
    x-go-package: gitea.dev/modules/structs
  WikiPage:
    description: WikiPage a wiki page
    type: object
    properties:
      commit_count:
        description: The number of commits that modified this page
        type: integer
        format: int64
        x-go-name: CommitCount
      content_base64:
        description: Page content, base64 encoded
        type: string
        x-go-name: ContentBase64
      footer:
        description: The footer content for the wiki page
        type: string
        x-go-name: Footer
      html_url:
        description: The HTML URL to view the wiki page
        type: string
        x-go-name: HTMLURL
      last_commit:
        $ref: '#/definitions/WikiCommit'
      sidebar:
        description: The sidebar content for the wiki page
        type: string
        x-go-name: Sidebar
      sub_url:
        description: The sub URL path for the wiki page
        type: string
        x-go-name: SubURL
      title:
        description: The title of the wiki page
        type: string
        x-go-name: Title
    x-go-package: gitea.dev/modules/structs
  WikiPageMetaData:
    description: WikiPageMetaData wiki page meta information
    type: object
    properties:
      html_url:
        description: The HTML URL to view the wiki page
        type: string
        x-go-name: HTMLURL
      last_commit:
        $ref: '#/definitions/WikiCommit'
      sub_url:
        description: The sub URL path for the wiki page
        type: string
        x-go-name: SubURL
      title:
        description: The title of the wiki page
        type: string
        x-go-name: Title
    x-go-package: gitea.dev/modules/structs
responses:
  AccessToken:
    description: AccessToken represents an API access token.
    schema:
      $ref: '#/definitions/AccessToken'
  AccessTokenList:
    description: AccessTokenList represents a list of API access token.
    schema:
      type: array
      items:
        $ref: '#/definitions/AccessToken'
  ActionVariable:
    description: ActionVariable
    schema:
      $ref: '#/definitions/ActionVariable'
  ActionWorkflow:
    description: ActionWorkflow
    schema:
      $ref: '#/definitions/ActionWorkflow'
  ActionWorkflowList:
    description: ActionWorkflowList
    schema:
      $ref: '#/definitions/ActionWorkflowResponse'
  ActivityFeedsList:
    description: ActivityFeedsList
    schema:
      type: array
      items:
        $ref: '#/definitions/Activity'
  AnnotatedTag:
    description: AnnotatedTag
    schema:
      $ref: '#/definitions/AnnotatedTag'
  Artifact:
    description: Artifact
    schema:
      $ref: '#/definitions/ActionArtifact'
  ArtifactsList:
    description: ArtifactsList
    schema:
      $ref: '#/definitions/ActionArtifactsResponse'
  Attachment:
    description: Attachment
    schema:
      $ref: '#/definitions/Attachment'
  AttachmentList:
    description: AttachmentList
    schema:
      type: array
      items:
        $ref: '#/definitions/Attachment'
  BadgeList:
    description: BadgeList
    schema:
      type: array
      items:
        $ref: '#/definitions/Badge'
  Branch:
    description: Branch
    schema:
      $ref: '#/definitions/Branch'
  BranchList:
    description: BranchList
    schema:
      type: array
      items:
        $ref: '#/definitions/Branch'
  BranchProtection:
    description: BranchProtection
    schema:
      $ref: '#/definitions/BranchProtection'
  BranchProtectionList:
    description: BranchProtectionList
    schema:
      type: array
      items:
        $ref: '#/definitions/BranchProtection'
  ChangedFileList:
    description: ChangedFileList
    schema:
      type: array
      items:
        $ref: '#/definitions/ChangedFile'
    headers:
      X-HasMore:
        type: boolean
        description: True if there is another page
      X-Page:
        type: integer
        format: int64
        description: The current page
      X-PageCount:
        type: integer
        format: int64
        description: Total number of pages
      X-PerPage:
        type: integer
        format: int64
        description: Commits per page
      X-Total:
        type: integer
        format: int64
        description: Total commit count
  CombinedStatus:
    description: CombinedStatus
    schema:
      $ref: '#/definitions/CombinedStatus'
  Comment:
    description: Comment
    schema:
      $ref: '#/definitions/Comment'
  CommentList:
    description: CommentList
    schema:
      type: array
      items:
        $ref: '#/definitions/Comment'
  Commit:
    description: Commit
    schema:
      $ref: '#/definitions/Commit'
  CommitList:
    description: CommitList
    schema:
      type: array
      items:
        $ref: '#/definitions/Commit'
    headers:
      X-HasMore:
        type: boolean
        description: True if there is another page
      X-Page:
        type: integer
        format: int64
        description: The current page
      X-PageCount:
        type: integer
        format: int64
        description: Total number of pages
      X-PerPage:
        type: integer
        format: int64
        description: Commits per page
      X-Total:
        type: integer
        format: int64
        description: Total commit count
  CommitStatus:
    description: CommitStatus
    schema:
      $ref: '#/definitions/CommitStatus'
  CommitStatusList:
    description: CommitStatusList
    schema:
      type: array
      items:
        $ref: '#/definitions/CommitStatus'
  Compare:
    description: ''
    schema:
      $ref: '#/definitions/Compare'
  ContentsExtResponse:
    description: ''
    schema:
      $ref: '#/definitions/ContentsExtResponse'
  ContentsListResponse:
    description: ContentsListResponse
    schema:
      type: array
      items:
        $ref: '#/definitions/ContentsResponse'
  ContentsResponse:
    description: ContentsResponse
    schema:
      $ref: '#/definitions/ContentsResponse'
  CronList:
    description: CronList
    schema:
      type: array
      items:
        $ref: '#/definitions/Cron'
  CurrentAccessToken:
    description: CurrentAccessToken represents the currently authenticated access token.
    schema:
      $ref: '#/definitions/CurrentAccessToken'
  DeployKey:
    description: DeployKey
    schema:
      $ref: '#/definitions/DeployKey'
  DeployKeyList:
    description: DeployKeyList
    schema:
      type: array
      items:
        $ref: '#/definitions/DeployKey'
  EmailList:
    description: EmailList
    schema:
      type: array
      items:
        $ref: '#/definitions/Email'
  EmptyRepository:
    description: EmptyRepository
    schema:
      $ref: '#/definitions/APIError'
  FileDeleteResponse:
    description: FileDeleteResponse
    schema:
      $ref: '#/definitions/FileDeleteResponse'
  FileResponse:
    description: FileResponse
    schema:
      $ref: '#/definitions/FileResponse'
  FilesResponse:
    description: FilesResponse
    schema:
      $ref: '#/definitions/FilesResponse'
  GPGKey:
    description: GPGKey
    schema:
      $ref: '#/definitions/GPGKey'
  GPGKeyList:
    description: GPGKeyList
    schema:
      type: array
      items:
        $ref: '#/definitions/GPGKey'
  GeneralAPISettings:
    description: GeneralAPISettings
    schema:
      $ref: '#/definitions/GeneralAPISettings'
  GeneralAttachmentSettings:
    description: GeneralAttachmentSettings
    schema:
      $ref: '#/definitions/GeneralAttachmentSettings'
  GeneralRepoSettings:
    description: GeneralRepoSettings
    schema:
      $ref: '#/definitions/GeneralRepoSettings'
  GeneralUISettings:
    description: GeneralUISettings
    schema:
      $ref: '#/definitions/GeneralUISettings'
  GitBlobResponse:
    description: GitBlobResponse
    schema:
      $ref: '#/definitions/GitBlobResponse'
  GitHook:
    description: GitHook
    schema:
      $ref: '#/definitions/GitHook'
  GitHookList:
    description: GitHookList
    schema:
      type: array
      items:
        $ref: '#/definitions/GitHook'
  GitTreeResponse:
    description: GitTreeResponse
    schema:
      $ref: '#/definitions/GitTreeResponse'
  GitignoreTemplateInfo:
    description: GitignoreTemplateInfo
    schema:
      $ref: '#/definitions/GitignoreTemplateInfo'
  GitignoreTemplateList:
    description: GitignoreTemplateList
    schema:
      type: array
      items:
        type: string
  Hook:
    description: Hook
    schema:
      $ref: '#/definitions/Hook'
  HookList:
    description: HookList
    schema:
      type: array
      items:
        $ref: '#/definitions/Hook'
  Issue:
    description: Issue
    schema:
      $ref: '#/definitions/Issue'
  IssueDeadline:
    description: IssueDeadline
    schema:
      $ref: '#/definitions/IssueDeadline'
  IssueList:
    description: IssueList
    schema:
      type: array
      items:
        $ref: '#/definitions/Issue'
  IssueTemplates:
    description: IssueTemplates
    schema:
      type: array
      items:
        $ref: '#/definitions/IssueTemplate'
  Label:
    description: Label
    schema:
      $ref: '#/definitions/Label'
  LabelList:
    description: LabelList
    schema:
      type: array
      items:
        $ref: '#/definitions/Label'
  LabelTemplateInfo:
    description: LabelTemplateInfo
    schema:
      type: array
      items:
        $ref: '#/definitions/LabelTemplate'
  LabelTemplateList:
    description: LabelTemplateList
    schema:
      type: array
      items:
        type: string
  LanguageStatistics:
    description: LanguageStatistics
    schema:
      type: object
      additionalProperties:
        type: integer
        format: int64
  LicenseTemplateInfo:
    description: LicenseTemplateInfo
    schema:
      $ref: '#/definitions/LicenseTemplateInfo'
  LicenseTemplateList:
    description: LicenseTemplateList
    schema:
      type: array
      items:
        $ref: '#/definitions/LicensesTemplateListEntry'
  LicensesList:
    description: LicensesList
    schema:
      type: array
      items:
        type: string
  MarkdownRender:
    description: MarkdownRender is a rendered markdown document
    schema:
      type: string
  MarkupRender:
    description: MarkupRender is a rendered markup document
    schema:
      type: string
  MergeUpstreamRequest:
    description: ''
    schema:
      $ref: '#/definitions/MergeUpstreamRequest'
  MergeUpstreamResponse:
    description: ''
    schema:
      $ref: '#/definitions/MergeUpstreamResponse'
  Milestone:
    description: Milestone
    schema:
      $ref: '#/definitions/Milestone'
  MilestoneList:
    description: MilestoneList
    schema:
      type: array
      items:
        $ref: '#/definitions/Milestone'
  NodeInfo:
    description: NodeInfo
    schema:
      $ref: '#/definitions/NodeInfo'
  Note:
    description: Note
    schema:
      $ref: '#/definitions/Note'
  NotificationCount:
    description: Number of unread notifications
    schema:
      $ref: '#/definitions/NotificationCount'
  NotificationThread:
    description: NotificationThread
    schema:
      $ref: '#/definitions/NotificationThread'
  NotificationThreadList:
    description: NotificationThreadList
    schema:
      type: array
      items:
        $ref: '#/definitions/NotificationThread'
  OAuth2Application:
    description: OAuth2Application
    schema:
      $ref: '#/definitions/OAuth2Application'
  OAuth2ApplicationList:
    description: OAuth2ApplicationList represents a list of OAuth2 applications.
    schema:
      type: array
      items:
        $ref: '#/definitions/OAuth2Application'
  Organization:
    description: Organization
    schema:
      $ref: '#/definitions/Organization'
  OrganizationList:
    description: OrganizationList
    schema:
      type: array
      items:
        $ref: '#/definitions/Organization'
  OrganizationPermissions:
    description: OrganizationPermissions
    schema:
      $ref: '#/definitions/OrganizationPermissions'
  Package:
    description: Package
    schema:
      $ref: '#/definitions/Package'
  PackageFileList:
    description: PackageFileList
    schema:
      type: array
      items:
        $ref: '#/definitions/PackageFile'
  PackageList:
    description: PackageList
    schema:
      type: array
      items:
        $ref: '#/definitions/Package'
  PublicKey:
    description: PublicKey
    schema:
      $ref: '#/definitions/PublicKey'
  PublicKeyList:
    description: PublicKeyList
    schema:
      type: array
      items:
        $ref: '#/definitions/PublicKey'
  PullRequest:
    description: PullRequest
    schema:
      $ref: '#/definitions/PullRequest'
  PullRequestList:
    description: PullRequestList
    schema:
      type: array
      items:
        $ref: '#/definitions/PullRequest'
  PullReview:
    description: PullReview
    schema:
      $ref: '#/definitions/PullReview'
  PullReviewComment:
    description: PullComment
    schema:
      $ref: '#/definitions/PullReviewComment'
  PullReviewCommentList:
    description: PullCommentList
    schema:
      type: array
      items:
        $ref: '#/definitions/PullReviewComment'
  PullReviewList:
    description: PullReviewList
    schema:
      type: array
      items:
        $ref: '#/definitions/PullReview'
  PushMirror:
    description: PushMirror
    schema:
      $ref: '#/definitions/PushMirror'
  PushMirrorList:
    description: PushMirrorList
    schema:
      type: array
      items:
        $ref: '#/definitions/PushMirror'
  Reaction:
    description: Reaction
    schema:
      $ref: '#/definitions/Reaction'
  ReactionList:
    description: ReactionList
    schema:
      type: array
      items:
        $ref: '#/definitions/Reaction'
  Reference:
    description: Reference
    schema:
      $ref: '#/definitions/Reference'
  ReferenceList:
    description: ReferenceList
    schema:
      type: array
      items:
        $ref: '#/definitions/Reference'
  RegistrationToken:
    description: RegistrationToken is response related to registration token
    headers:
      token:
        type: string
  Release:
    description: Release
    schema:
      $ref: '#/definitions/Release'
  ReleaseList:
    description: ReleaseList
    schema:
      type: array
      items:
        $ref: '#/definitions/Release'
  RepoCollaboratorPermission:
    description: RepoCollaboratorPermission
    schema:
      $ref: '#/definitions/RepoCollaboratorPermission'
  RepoIssueConfig:
    description: RepoIssueConfig
    schema:
      $ref: '#/definitions/IssueConfig'
  RepoIssueConfigValidation:
    description: RepoIssueConfigValidation
    schema:
      $ref: '#/definitions/IssueConfigValidation'
  RepoNewIssuePinsAllowed:
    description: RepoNewIssuePinsAllowed
    schema:
      $ref: '#/definitions/NewIssuePinsAllowed'
  Repository:
    description: Repository
    schema:
      $ref: '#/definitions/Repository'
  RepositoryList:
    description: RepositoryList
    schema:
      type: array
      items:
        $ref: '#/definitions/Repository'
  RunDetails:
    description: RunDetails
    schema:
      $ref: '#/definitions/RunDetails'
  Runner:
    description: Runner
    schema:
      $ref: '#/definitions/ActionRunner'
  RunnerList:
    description: RunnerList
    schema:
      $ref: '#/definitions/ActionRunnersResponse'
  SearchResults:
    description: SearchResults
    schema:
      $ref: '#/definitions/SearchResults'
  Secret:
    description: Secret
    schema:
      $ref: '#/definitions/Secret'
  SecretList:
    description: SecretList
    schema:
      type: array
      items:
        $ref: '#/definitions/Secret'
  ServerVersion:
    description: ServerVersion
    schema:
      $ref: '#/definitions/ServerVersion'
  StopWatch:
    description: StopWatch
    schema:
      $ref: '#/definitions/StopWatch'
  StopWatchList:
    description: StopWatchList
    schema:
      type: array
      items:
        $ref: '#/definitions/StopWatch'
  StringSlice:
    description: StringSlice
    schema:
      type: array
      items:
        type: string
  Tag:
    description: Tag
    schema:
      $ref: '#/definitions/Tag'
  TagList:
    description: TagList
    schema:
      type: array
      items:
        $ref: '#/definitions/Tag'
  TagProtection:
    description: TagProtection
    schema:
      $ref: '#/definitions/TagProtection'
  TagProtectionList:
    description: TagProtectionList
    schema:
      type: array
      items:
        $ref: '#/definitions/TagProtection'
  TasksList:
    description: TasksList
    schema:
      $ref: '#/definitions/ActionTaskResponse'
  Team:
    description: Team
    schema:
      $ref: '#/definitions/Team'
  TeamList:
    description: TeamList
    schema:
      type: array
      items:
        $ref: '#/definitions/Team'
  TimelineList:
    description: TimelineList
    schema:
      type: array
      items:
        $ref: '#/definitions/TimelineComment'
  TopicListResponse:
    description: TopicListResponse
    schema:
      type: array
      items:
        $ref: '#/definitions/TopicResponse'
  TopicNames:
    description: TopicNames
    schema:
      $ref: '#/definitions/TopicName'
  TrackedTime:
    description: TrackedTime
    schema:
      $ref: '#/definitions/TrackedTime'
  TrackedTimeList:
    description: TrackedTimeList
    schema:
      type: array
      items:
        $ref: '#/definitions/TrackedTime'
  User:
    description: User
    schema:
      $ref: '#/definitions/User'
  UserHeatmapData:
    description: UserHeatmapData
    schema:
      type: array
      items:
        $ref: '#/definitions/UserHeatmapData'
  UserList:
    description: UserList
    schema:
      type: array
      items:
        $ref: '#/definitions/User'
  UserSettings:
    description: UserSettings
    schema:
      type: array
      items:
        $ref: '#/definitions/UserSettings'
  VariableList:
    description: VariableList
    schema:
      type: array
      items:
        $ref: '#/definitions/ActionVariable'
  WatchInfo:
    description: WatchInfo
    schema:
      $ref: '#/definitions/WatchInfo'
  WikiCommitList:
    description: WikiCommitList
    schema:
      $ref: '#/definitions/WikiCommitList'
  WikiPage:
    description: WikiPage
    schema:
      $ref: '#/definitions/WikiPage'
  WikiPageList:
    description: WikiPageList
    schema:
      type: array
      items:
        $ref: '#/definitions/WikiPageMetaData'
  WorkflowJob:
    description: WorkflowJob
    schema:
      $ref: '#/definitions/ActionWorkflowJob'
  WorkflowJobsList:
    description: WorkflowJobsList
    schema:
      $ref: '#/definitions/ActionWorkflowJobsResponse'
  WorkflowRun:
    description: WorkflowRun
    schema:
      $ref: '#/definitions/ActionWorkflowRun'
  WorkflowRunsList:
    description: WorkflowRunsList
    schema:
      $ref: '#/definitions/ActionWorkflowRunsResponse'
  conflict:
    description: APIConflict is a conflict empty response
  empty:
    description: APIEmpty is an empty response
  error:
    description: APIError is error format response
    headers:
      message:
        type: string
      url:
        type: string
  forbidden:
    description: APIForbiddenError is a forbidden error response
    headers:
      message:
        type: string
      url:
        type: string
  invalidTopicsError:
    description: APIInvalidTopicsError is error format response to invalid topics
    headers:
      invalidTopics:
        type: array
        items:
          type: string
      message:
        type: string
  notFound:
    description: APINotFound is a not found empty response
  parameterBodies:
    description: parameterBodies
    schema:
      $ref: '#/definitions/LockIssueOption'
  redirect:
    description: APIRedirect is a redirect response
  repoArchivedError:
    description: >-
      APIRepoArchivedError is an error that is raised when an archived repo
      should be modified
    headers:
      message:
        type: string
      url:
        type: string
  string:
    description: APIString is a string response
    schema:
      type: string
  validationError:
    description: APIValidationError is error format response related to input validation
    headers:
      message:
        type: string
      url:
        type: string
securityDefinitions:
  AccessToken:
    description: >-
      This authentication option is deprecated for removal in Gitea 1.23. Please
      use AuthorizationHeaderToken instead.
    type: apiKey
    name: access_token
    in: query
  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-GITEA-OTP
    in: header
  Token:
    description: >-
      This authentication option is deprecated for removal in Gitea 1.23. Please
      use AuthorizationHeaderToken instead.
    type: apiKey
    name: token
    in: query
security:
  - BasicAuth: []
  - Token: []
  - AccessToken: []
  - AuthorizationHeaderToken: []
  - SudoParam: []
  - SudoHeader: []
  - TOTPHeader: []
