Gitea issue API

The issue API from Gitea — 34 operation(s) for issue.

Documentation

Specifications

Code Examples

💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-repo-get-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-repo-update-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-issues-list-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-issue-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-pulls-list-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-pull-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-branches-list-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-commits-list-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-release-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-webhook-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-org-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-org-repos-list-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-user-get-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-user-repo-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-admin-user-create-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-notifications-list-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-packages-list-owner-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-repository-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-issue-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-pullrequest-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-release-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-hook-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/examples/gitea-rest-api-package-example.json

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-repository-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-issue-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-pullrequest-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-branch-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-commit-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-release-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-hook-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-organization-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-team-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-user-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-notificationthread-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-package-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-label-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-milestone-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-tag-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-schema/gitea-rest-api-comment-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-repository-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-issue-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-pullrequest-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-branch-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-commit-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-release-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-hook-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-organization-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-team-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-user-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-notificationthread-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-package-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-label-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-milestone-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-tag-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/json-structure/gitea-rest-api-comment-structure.json

Other Resources

OpenAPI Specification

gitea-issue-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: This documentation describes the Gitea API.
  title: Gitea admin issue API
  license:
    name: MIT
    url: http://opensource.org/licenses/MIT
  version: 1.27.0+dev-89-gf52b6f3315
basePath: /api/v1
schemes:
- https
- http
consumes:
- application/json
produces:
- application/json
security:
- BasicAuth: []
- Token: []
- AccessToken: []
- AuthorizationHeaderToken: []
- SudoParam: []
- SudoHeader: []
- TOTPHeader: []
tags:
- name: issue
paths:
  /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/{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/{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}/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 int

# --- truncated at 32 KB (97 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitea/refs/heads/main/openapi/gitea-issue-api-openapi.yml