Gitea issue API

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

Operations 69

GET /repos/issues/search Search for issues across the repositories that the user has access to #
GET /repos/{owner}/{repo}/issues List a repository's issues #
POST /repos/{owner}/{repo}/issues Create an issue. If using deadline only the date will be taken into account, and time of day ignored. #
GET /repos/{owner}/{repo}/issues/comments List all comments in a repository #
GET /repos/{owner}/{repo}/issues/comments/{id} Get a comment #
DELETE /repos/{owner}/{repo}/issues/comments/{id} Delete a comment #
PATCH /repos/{owner}/{repo}/issues/comments/{id} Edit a comment #
GET /repos/{owner}/{repo}/issues/comments/{id}/assets List comment's attachments #
POST /repos/{owner}/{repo}/issues/comments/{id}/assets Create a comment attachment #
GET /repos/{owner}/{repo}/issues/comments/{id}/assets/{attachment_id} Get a comment attachment #
DELETE /repos/{owner}/{repo}/issues/comments/{id}/assets/{attachment_id} Delete a comment attachment #
PATCH /repos/{owner}/{repo}/issues/comments/{id}/assets/{attachment_id} Edit a comment attachment #
GET /repos/{owner}/{repo}/issues/comments/{id}/reactions Get a list of reactions from a comment of an issue #
POST /repos/{owner}/{repo}/issues/comments/{id}/reactions Add a reaction to a comment of an issue #
DELETE /repos/{owner}/{repo}/issues/comments/{id}/reactions Remove a reaction from a comment of an issue #
GET /repos/{owner}/{repo}/issues/{index} Get an issue #
DELETE /repos/{owner}/{repo}/issues/{index} Delete an issue #
PATCH /repos/{owner}/{repo}/issues/{index} Edit an issue. If using deadline only the date will be taken into account, and time of day ignored. #
GET /repos/{owner}/{repo}/issues/{index}/assets List issue's attachments #
POST /repos/{owner}/{repo}/issues/{index}/assets Create an issue attachment #
GET /repos/{owner}/{repo}/issues/{index}/assets/{attachment_id} Get an issue attachment #
DELETE /repos/{owner}/{repo}/issues/{index}/assets/{attachment_id} Delete an issue attachment #
PATCH /repos/{owner}/{repo}/issues/{index}/assets/{attachment_id} Edit an issue attachment #
GET /repos/{owner}/{repo}/issues/{index}/blocks List issues that are blocked by this issue #
POST /repos/{owner}/{repo}/issues/{index}/blocks Block the issue given in the body by the issue in path #
DELETE /repos/{owner}/{repo}/issues/{index}/blocks Unblock the issue given in the body by the issue in path #
GET /repos/{owner}/{repo}/issues/{index}/comments List all comments on an issue #
POST /repos/{owner}/{repo}/issues/{index}/comments Add a comment to an issue #
DELETE /repos/{owner}/{repo}/issues/{index}/comments/{id} Delete a comment #
PATCH /repos/{owner}/{repo}/issues/{index}/comments/{id} Edit a comment #
POST /repos/{owner}/{repo}/issues/{index}/deadline 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. #
GET /repos/{owner}/{repo}/issues/{index}/dependencies List an issue's dependencies, i.e all issues that block this issue. #
POST /repos/{owner}/{repo}/issues/{index}/dependencies Make the issue in the url depend on the issue in the form. #
DELETE /repos/{owner}/{repo}/issues/{index}/dependencies Remove an issue dependency #
GET /repos/{owner}/{repo}/issues/{index}/labels Get an issue's labels #
PUT /repos/{owner}/{repo}/issues/{index}/labels Replace an issue's labels #
POST /repos/{owner}/{repo}/issues/{index}/labels Add a label to an issue #
DELETE /repos/{owner}/{repo}/issues/{index}/labels Remove all labels from an issue #
DELETE /repos/{owner}/{repo}/issues/{index}/labels/{id} Remove a label from an issue #
PUT /repos/{owner}/{repo}/issues/{index}/lock Lock an issue #
DELETE /repos/{owner}/{repo}/issues/{index}/lock Unlock an issue #
POST /repos/{owner}/{repo}/issues/{index}/pin Pin an Issue #
DELETE /repos/{owner}/{repo}/issues/{index}/pin Unpin an Issue #
PATCH /repos/{owner}/{repo}/issues/{index}/pin/{position} Moves the Pin to the given Position #
GET /repos/{owner}/{repo}/issues/{index}/reactions Get a list reactions of an issue #
POST /repos/{owner}/{repo}/issues/{index}/reactions Add a reaction to an issue #
DELETE /repos/{owner}/{repo}/issues/{index}/reactions Remove a reaction from an issue #
DELETE /repos/{owner}/{repo}/issues/{index}/stopwatch/delete Delete an issue's existing stopwatch. #
POST /repos/{owner}/{repo}/issues/{index}/stopwatch/start Start stopwatch on an issue. #
POST /repos/{owner}/{repo}/issues/{index}/stopwatch/stop Stop an issue's existing stopwatch. #
GET /repos/{owner}/{repo}/issues/{index}/subscriptions Get users who subscribed on an issue. #
GET /repos/{owner}/{repo}/issues/{index}/subscriptions/check Check if user is subscribed to an issue #
PUT /repos/{owner}/{repo}/issues/{index}/subscriptions/{user} Subscribe user to issue #
DELETE /repos/{owner}/{repo}/issues/{index}/subscriptions/{user} Unsubscribe user from issue #
GET /repos/{owner}/{repo}/issues/{index}/timeline List all comments and events on an issue #
GET /repos/{owner}/{repo}/issues/{index}/times List an issue's tracked times #
POST /repos/{owner}/{repo}/issues/{index}/times Add tracked time to a issue #
DELETE /repos/{owner}/{repo}/issues/{index}/times Reset a tracked time of an issue #
DELETE /repos/{owner}/{repo}/issues/{index}/times/{id} Delete specific tracked time #
GET /repos/{owner}/{repo}/labels Get all of a repository's labels #
POST /repos/{owner}/{repo}/labels Create a label #
GET /repos/{owner}/{repo}/labels/{id} Get a single label #
DELETE /repos/{owner}/{repo}/labels/{id} Delete a label #
PATCH /repos/{owner}/{repo}/labels/{id} Update a label #
GET /repos/{owner}/{repo}/milestones Get all of a repository's opened milestones #
POST /repos/{owner}/{repo}/milestones Create a milestone #
GET /repos/{owner}/{repo}/milestones/{id} Get a milestone #
DELETE /repos/{owner}/{repo}/milestones/{id} Delete a milestone #
PATCH /repos/{owner}/{repo}/milestones/{id} Update a milestone #

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

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gitea-issue-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

gitea-issue-api-openapi.yml Raw ↑
openapi: 3.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
servers:
- url: /api/v1
security:
- BasicAuth: []
- Token: []
- AccessToken: []
- AuthorizationHeaderToken: []
- SudoParam: []
- SudoHeader: []
- TOTPHeader: []
tags:
- name: issue
paths:
  /repos/issues/search:
    get:
      tags:
      - issue
      summary: Search for issues across the repositories that the user has access to
      operationId: issueSearchIssues
      parameters:
      - description: State of the issue
        name: state
        in: query
        schema:
          type: string
          enum:
          - open
          - closed
          - all
          default: open
      - 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
        schema:
          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
        schema:
          type: string
      - description: Search string
        name: q
        in: query
        schema:
          type: string
      - description: Filter by issue type
        name: type
        in: query
        schema:
          type: string
          enum:
          - issues
          - pulls
      - description: Only show issues updated after the given time (RFC 3339 format)
        name: since
        in: query
        schema:
          type: string
          format: date-time
      - description: Only show issues updated before the given time (RFC 3339 format)
        name: before
        in: query
        schema:
          type: string
          format: date-time
      - description: Filter issues or pulls assigned to the authenticated user
        name: assigned
        in: query
        schema:
          type: boolean
          default: false
      - description: Filter issues or pulls created by the authenticated user
        name: created
        in: query
        schema:
          type: boolean
          default: false
      - description: Filter issues or pulls mentioning the authenticated user
        name: mentioned
        in: query
        schema:
          type: boolean
          default: false
      - description: Filter pull requests where the authenticated user's review was requested
        name: review_requested
        in: query
        schema:
          type: boolean
          default: false
      - description: Filter pull requests reviewed by the authenticated user
        name: reviewed
        in: query
        schema:
          type: boolean
          default: false
      - description: Filter by repository owner
        name: owner
        in: query
        schema:
          type: string
      - description: Only show items which were created by the given user
        name: created_by
        in: query
        schema:
          type: string
      - description: Filter by team (requires organization owner parameter)
        name: team
        in: query
        schema:
          type: string
      - description: Page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
          default: 1
          minimum: 1
      - description: Number of items per page
        name: limit
        in: query
        schema:
          type: integer
          minimum: 0
      responses:
        '200':
          $ref: '#/components/responses/IssueList'
        '400':
          $ref: '#/components/responses/error'
        '422':
          $ref: '#/components/responses/validationError'
  /repos/{owner}/{repo}/issues:
    get:
      tags:
      - issue
      summary: List a repository's issues
      operationId: issueListIssues
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: whether issue is open or closed
        name: state
        in: query
        schema:
          type: string
          enum:
          - closed
          - open
          - all
      - 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
        schema:
          type: string
      - description: search string
        name: q
        in: query
        schema:
          type: string
      - description: filter by type (issues / pulls) if set
        name: type
        in: query
        schema:
          type: string
          enum:
          - issues
          - pulls
      - 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
        schema:
          type: string
      - description: Only show items updated after the given time. This is a timestamp in RFC 3339 format
        name: since
        in: query
        schema:
          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
        schema:
          type: string
          format: date-time
      - description: Only show items which were created by the given user
        name: created_by
        in: query
        schema:
          type: string
      - description: Only show items for which the given user is assigned
        name: assigned_by
        in: query
        schema:
          type: string
      - description: Only show items in which the given user was mentioned
        name: mentioned_by
        in: query
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/IssueList'
        '404':
          $ref: '#/components/responses/notFound'
    post:
      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:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          $ref: '#/components/responses/Issue'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '412':
          $ref: '#/components/responses/error'
        '422':
          $ref: '#/components/responses/validationError'
        '423':
          $ref: '#/components/responses/repoArchivedError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateIssueOption'
  /repos/{owner}/{repo}/issues/comments:
    get:
      tags:
      - issue
      summary: List all comments in a repository
      operationId: issueGetRepoComments
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: if provided, only comments updated since the provided time are returned.
        name: since
        in: query
        schema:
          type: string
          format: date-time
      - description: if provided, only comments updated before the provided time are returned.
        name: before
        in: query
        schema:
          type: string
          format: date-time
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/CommentList'
        '404':
          $ref: '#/components/responses/notFound'
  /repos/{owner}/{repo}/issues/comments/{id}:
    get:
      tags:
      - issue
      summary: Get a comment
      operationId: issueGetComment
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the comment
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/Comment'
        '204':
          $ref: '#/components/responses/empty'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
    delete:
      tags:
      - issue
      summary: Delete a comment
      operationId: issueDeleteComment
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of comment to delete
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          $ref: '#/components/responses/empty'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
    patch:
      tags:
      - issue
      summary: Edit a comment
      operationId: issueEditComment
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the comment to edit
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/Comment'
        '204':
          $ref: '#/components/responses/empty'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '423':
          $ref: '#/components/responses/repoArchivedError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditIssueCommentOption'
  /repos/{owner}/{repo}/issues/comments/{id}/assets:
    get:
      tags:
      - issue
      summary: List comment's attachments
      operationId: issueListIssueCommentAttachments
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the comment
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/AttachmentList'
        '404':
          $ref: '#/components/responses/error'
    post:
      tags:
      - issue
      summary: Create a comment attachment
      operationId: issueCreateIssueCommentAttachment
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the comment
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - description: name of the attachment
        name: name
        in: query
        schema:
          type: string
      responses:
        '201':
          $ref: '#/components/responses/Attachment'
        '400':
          $ref: '#/components/responses/error'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/error'
        '413':
          $ref: '#/components/responses/error'
        '422':
          $ref: '#/components/responses/validationError'
        '423':
          $ref: '#/components/responses/repoArchivedError'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                attachment:
                  type: string
                  description: attachment to upload
                  format: binary
              required:
              - attachment
  /repos/{owner}/{repo}/issues/comments/{id}/assets/{attachment_id}:
    get:
      tags:
      - issue
      summary: Get a comment attachment
      operationId: issueGetIssueCommentAttachment
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the comment
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - description: id of the attachment to get
        name: attachment_id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/Attachment'
        '404':
          $ref: '#/components/responses/error'
    delete:
      tags:
      - issue
      summary: Delete a comment attachment
      operationId: issueDeleteIssueCommentAttachment
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the comment
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - description: id of the attachment to delete
        name: attachment_id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          $ref: '#/components/responses/empty'
        '404':
          $ref: '#/components/responses/error'
        '423':
          $ref: '#/components/responses/repoArchivedError'
    patch:
      tags:
      - issue
      summary: Edit a comment attachment
      operationId: issueEditIssueCommentAttachment
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the comment
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - description: id of the attachment to edit
        name: attachment_id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '201':
          $ref: '#/components/responses/Attachment'
        '404':
          $ref: '#/components/responses/error'
        '422':
          $ref: '#/components/responses/validationError'
        '423':
          $ref: '#/components/responses/repoArchivedError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditAttachmentOptions'
  /repos/{owner}/{repo}/issues/comments/{id}/reactions:
    get:
      tags:
      - issue
      summary: Get a list of reactions from a comment of an issue
      operationId: issueGetCommentReactions
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the comment to edit
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/ReactionList'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
    post:
      tags:
      - issue
      summary: Add a reaction to a comment of an issue
      operationId: issuePostCommentReaction
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the comment to edit
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/Reaction'
        '201':
          $ref: '#/components/responses/Reaction'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditReactionOption'
    delete:
      tags:
      - issue
      summary: Remove a reaction from a comment of an issue
      operationId: issueDeleteCommentReaction
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: id of the comment to edit
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          $ref: '#/components/responses/empty'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditReactionOption'
  /repos/{owner}/{repo}/issues/{index}:
    get:
      tags:
      - issue
      summary: Get an issue
      operationId: issueGetIssue
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: index of the issue to get
        name: index
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/Issue'
        '404':
          $ref: '#/components/responses/notFound'
    delete:
      tags:
      - issue
      summary: Delete an issue
      operationId: issueDelete
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: index of issue to delete
        name: index
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          $ref: '#/components/responses/empty'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/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.

        '
      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:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: index of the issue to edit
        name: index
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '201':
          $ref: '#/components/responses/Issue'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '412':
          $ref: '#/components/responses/error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditIssueOption'
  /repos/{owner}/{repo}/issues/{index}/assets:
    get:
      tags:
      - issue
      summary: List issue's attachments
      operationId: issueListIssueAttachments
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: index of the issue
        name: index
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/AttachmentList'
        '404':
          $ref: '#/components/responses/error'
    post:
      tags:
      - issue
      summary: Create an issue attachment
      operationId: issueCreateIssueAttachment
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: index of the issue
        name: index
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - description: name of the attachment
        name: name
        in: query
        schema:
          type: string
      responses:
        '201':
          $ref: '#/components/responses/Attachment'
        '400':
          $ref: '#/components/responses/error'
        '404':
          $ref: '#/components/responses/error'
        '413':
          $ref: '#/components/responses/error'
        '422':
          $ref: '#/components/responses/validationError'
        '423':
          $ref: '#/components/responses/repoArchivedError'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                attachment:
                  type: string
                  description: attachment to upload
                  format: binary
              required:
              - attachment
  /repos/{owner}/{repo}/issues/{index}/assets/{attachment_id}:
    get:
      tags:
      - issue
      summary: Get an issue attachment
      operationId: issueGetIssueAttachment
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: index of the issue
        name: index
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - description: id of the attachment to get
        name: attachment_id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/Attachment'
        '404':
          $ref: '#/components/responses/error'
    delete:
      tags:
      - issue
      summary: Delete an issue attachment
      operationId: issueDeleteIssueAttachment
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: index of the issue
        name: index
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - description: id of the attachment to delete
        name: attachment_id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          $ref: '#/components/responses/empty'
        '404':
          $ref: '#/components/responses/error'
        '423':
          $ref: '#/components/responses/repoArchivedError'
    patch:
      tags:
      - issue
      summary: Edit an issue attachment
      operationId: issueEditIssueAttachment
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: index of the issue
        name: index
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - description: id of the attachment to edit
        name: attachment_id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '201':
          $ref: '#/components/responses/Attachment'
        '404':
          $ref: '#/components/responses/error'
        '422':
          $ref: '#/components/responses/validationError'
        '423':
          $ref: '#/components/responses/repoArchivedError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditAttachmentOptions'
  /repos/{owner}/{repo}/issues/{index}/blocks:
    get:
      tags:
      - issue
      summary: List issues that are blocked by this issue
      operationId: issueListBlocks
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: index of the issue
        name: index
        in: path
        required: true
        schema:
          type: string
      - description: page number of results to return (1-based)
        name: page
        in: query
        schema:
          type: integer
      - description: page size of results
        name: limit
        in: query
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/IssueList'
        '404':
          $ref: '#/components/responses/notFound'
    post:
      tags:
      - issue
      summary: Block the issue given in the body by the issue in path
      operationId: issueCreateIssueBlocking
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: index of the issue
        name: index
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          $ref: '#/components/responses/Issue'
        '404':
          description: the issue does not exist
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueMeta'
    delete:
      tags:
      - issue
      summary: Unblock the issue given in the body by the issue in path
      operationId: issueRemoveIssueBlocking
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: index of the issue
        name: index
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Issue'
        '404':
          $ref: '#/components/responses/notFound'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueMeta'
  /repos/{owner}/{repo}/issues/{index}/comments:
    get:
      tags:
      - issue
      summary: List all comments on an issue
      operationId: issueGetComments
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: index of the issue
        name: index
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - description: if provided, only comments updated since the specified time are returned.
        name: since
        in: query
        schema:
          type: string
          format: date-time
      - description: if provided, only comments updated before the provided time are returned.
        name: before
        in: query
        schema:
          type: string
          format: date-time
      responses:
        '200':
          $ref: '#/components/responses/CommentList'
        '404':
          $ref: '#/components/responses/notFound'
    post:
      tags:
      - issue
      summary: Add a comment to an issue
      operationId: issueCreateComment
      parameters:
      - description: owner of the repo
        name: owner
        in: path
        required: true
        schema:
          type: string
      - description: name of the repo
        name: repo
        in: path
        required: true
        schema:
          type: string
      - description: index of the issue
        name: index
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '201':
          $ref: '#/components/responses/Comment'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound

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