{
  "consumes": [
    "application/json",
    "text/plain"
  ],
  "produces": [
    "application/json",
    "text/html"
  ],
  "schemes": [
    "http",
    "https"
  ],
  "swagger": "2.0",
  "info": {
    "description": "This documentation describes the Gitea API.",
    "title": "Gitea API.",
    "license": {
      "name": "MIT",
      "url": "http://opensource.org/licenses/MIT"
    },
    "version": "1.1.1"
  },
  "basePath": "{{AppSubUrl}}/api/v1",
  "paths": {
    "/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, maximum page size is 50",
            "name": "limit",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/OrganizationList"
          },
          "403": {
            "$ref": "#/responses/forbidden"
          }
        }
      }
    },
    "/admin/users": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "admin"
        ],
        "summary": "List all users",
        "operationId": "adminGetAllUsers",
        "responses": {
          "200": {
            "$ref": "#/responses/UserList"
          },
          "403": {
            "$ref": "#/responses/forbidden"
          }
        }
      },
      "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 user to delete",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/responses/empty"
          },
          "403": {
            "$ref": "#/responses/forbidden"
          },
          "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 user to edit",
            "name": "username",
            "in": "path",
            "required": true
          },
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/EditUserOption"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/User"
          },
          "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",
            "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 user",
            "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 that 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}/repos": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "admin"
        ],
        "summary": "Create a repository on behalf a user",
        "operationId": "adminCreateRepo",
        "parameters": [
          {
            "type": "string",
            "description": "username of the user. This user 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"
          },
          "403": {
            "$ref": "#/responses/forbidden"
          },
          "404": {
            "$ref": "#/responses/notFound"
          },
          "409": {
            "$ref": "#/responses/error"
          },
          "422": {
            "$ref": "#/responses/validationError"
          }
        }
      }
    },
    "/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"
          }
        }
      }
    },
    "/org/{org}/repos": {
      "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"
          },
          "403": {
            "$ref": "#/responses/forbidden"
          },
          "422": {
            "$ref": "#/responses/validationError"
          }
        }
      }
    },
    "/orgs": {
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/HookList"
          }
        }
      }
    },
    "/orgs/{org}/hooks/": {
      "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"
          }
        }
      }
    },
    "/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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/UserList"
          }
        }
      }
    },
    "/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",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "user is a member"
          },
          "302": {
            "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",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "member removed"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/UserList"
          }
        }
      }
    },
    "/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",
            "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",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "membership publicized"
          },
          "403": {
            "$ref": "#/responses/forbidden"
          }
        }
      },
      "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",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/responses/empty"
          },
          "403": {
            "$ref": "#/responses/forbidden"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/RepositoryList"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/TeamList"
          }
        }
      },
      "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"
          },
          "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": "limit size of results",
            "name": "limit",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "page number of results to return (1-based)",
            "name": "page",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "SearchResults of a successful search",
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Team"
                  }
                },
                "ok": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/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": [
          {
            "type": "string",
            "description": "whether issue is open or closed",
            "name": "state",
            "in": "query"
          },
          {
            "type": "string",
            "description": "comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded",
            "name": "labels",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "page number of requested issues",
            "name": "page",
            "in": "query"
          },
          {
            "type": "string",
            "description": "search string",
            "name": "q",
            "in": "query"
          },
          {
            "type": "integer",
            "format": "int64",
            "description": "repository to prioritize in the results",
            "name": "priority_repo_id",
            "in": "query"
          },
          {
            "type": "string",
            "description": "filter by type (issues / pulls) if set",
            "name": "type",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/IssueList"
          }
        }
      }
    },
    "/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/MigrateRepoForm"
            }
          }
        ],
        "responses": {
          "201": {
            "$ref": "#/responses/Repository"
          },
          "403": {
            "$ref": "#/responses/forbidden"
          },
          "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 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": "include template repositories this user has access to (defaults to true)",
            "name": "template",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "page number of results to return (1-based)",
            "name": "page",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "page size of results, maximum page size is 50",
            "name": "limit",
            "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\", 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"
          }
        ],
        "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          },
          "422": {
            "$ref": "#/responses/validationError"
          }
        }
      }
    },
    "/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": "archive to download, consisting of a git reference and archive",
            "name": "archive",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "success"
          },
          "404": {
            "$ref": "#/responses/notFound"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/BranchList"
          }
        }
      }
    },
    "/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"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/UserList"
          }
        }
      }
    },
    "/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 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 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 collaborator to add",
            "name": "collaborator",
            "in": "path",
            "required": true
          },
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/AddCollaboratorOption"
            }
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/responses/empty"
          },
          "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"
          },
          "422": {
            "$ref": "#/responses/validationError"
          }
        }
      }
    },
    "/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": "integer",
            "description": "page number of requested commits",
            "name": "page",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/CommitList"
          },
          "404": {
            "$ref": "#/responses/notFound"
          },
          "409": {
            "$ref": "#/responses/EmptyRepository"
          }
        }
      }
    },
    "/repos/{owner}/{repo}/commits/{ref}/statuses": {
      "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",
            "name": "page",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/Status"
          },
          "400": {
            "$ref": "#/responses/error"
          }
        }
      }
    },
    "/repos/{owner}/{repo}/contents": {
      "get": {
        "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 the repository’s default branch (usually master)",
            "name": "ref",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/ContentsListResponse"
          }
        }
      }
    },
    "/repos/{owner}/{repo}/contents/{filepath}": {
      "get": {
        "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 the repository’s default branch (usually master)",
            "name": "ref",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/ContentsResponse"
          }
        }
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "repository"
        ],
        "summary": "Update a file in a repository",
        "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "description": "success"
          },
          "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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/RepositoryList"
          }
        }
      },
      "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"
          },
          "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"
          }
        }
      }
    },
    "/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": "the commit hash",
            "name": "sha",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/Commit"
          },
          "404": {
            "$ref": "#/responses/notFound"
          }
        }
      }
    },
    "/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": "GetTag",
        "parameters": [
          {
            "type": "string",
            "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"
          }
        }
      }
    },
    "/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; default is 1000 or what is set in app.ini as DEFAULT_GIT_TREES_PER_PAGE",
            "name": "per_page",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/GitTreeResponse"
          },
          "400": {
            "$ref": "#/responses/error"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/HookList"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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"
          }
        }
      }
    },
    "/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"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/responses/empty"
          }
        }
      }
    },
    "/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
          },
          {
            "type": "string",
            "description": "whether issue is open or closed",
            "name": "state",
            "in": "query"
          },
          {
            "type": "string",
            "description": "comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded",
            "name": "labels",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "page number of requested issues",
            "name": "page",
            "in": "query"
          },
          {
            "type": "string",
            "description": "search string",
            "name": "q",
            "in": "query"
          },
          {
            "type": "string",
            "description": "filter by type (issues / pulls) if set",
            "name": "type",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/IssueList"
          }
        }
      },
      "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"
          },
          "412": {
            "$ref": "#/responses/error"
          },
          "422": {
            "$ref": "#/responses/validationError"
          }
        }
      }
    },
    "/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",
            "description": "if provided, only comments updated since the provided time are returned.",
            "name": "since",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/CommentList"
          }
        }
      }
    },
    "/repos/{owner}/{repo}/issues/comments/{id}": {
      "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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"
          }
        }
      },
      "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"
          }
        }
      },
      "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": {
          "200": {
            "$ref": "#/responses/empty"
          },
          "403": {
            "$ref": "#/responses/forbidden"
          }
        }
      }
    },
    "/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"
          }
        }
      },
      "patch": {
        "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}/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",
            "description": "if provided, only comments updated since the specified time are returned.",
            "name": "since",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/CommentList"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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}/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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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"
          },
          "422": {
            "$ref": "#/responses/validationError"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/ReactionList"
          },
          "403": {
            "$ref": "#/responses/forbidden"
          }
        }
      },
      "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"
          }
        }
      },
      "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": {
          "200": {
            "$ref": "#/responses/empty"
          },
          "403": {
            "$ref": "#/responses/forbidden"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/UserList"
          },
          "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": "user to subscribe",
            "name": "user",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "201": {
            "$ref": "#/responses/empty"
          },
          "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": "user witch unsubscribe",
            "name": "user",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "201": {
            "$ref": "#/responses/empty"
          },
          "304": {
            "description": "User can only subscribe itself if he is no admin"
          },
          "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
          }
        ],
        "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"
          }
        }
      },
      "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/error"
          }
        }
      }
    },
    "/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/error"
          }
        }
      }
    },
    "/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"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/DeployKeyList"
          }
        }
      },
      "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"
          },
          "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/LabelList"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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, Recognised values are open, closed and all. Defaults to \"open\"",
            "name": "state",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/MilestoneList"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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": "integer",
            "format": "int64",
            "description": "id of the milestone",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/Milestone"
          }
        }
      },
      "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": "integer",
            "format": "int64",
            "description": "id of the milestone to delete",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/responses/empty"
          }
        }
      },
      "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": "integer",
            "format": "int64",
            "description": "id of the milestone",
            "name": "id",
            "in": "path",
            "required": true
          },
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/EditMilestoneOption"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/Milestone"
          }
        }
      }
    },
    "/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"
          }
        }
      }
    },
    "/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": "integer",
            "description": "Page number",
            "name": "page",
            "in": "query"
          },
          {
            "enum": [
              "closed",
              "open",
              "all"
            ],
            "type": "string",
            "description": "State of pull request: open or closed (optional)",
            "name": "state",
            "in": "query"
          },
          {
            "enum": [
              "oldest",
              "recentupdate",
              "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"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/PullRequestList"
          }
        }
      },
      "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"
          },
          "409": {
            "$ref": "#/responses/error"
          },
          "422": {
            "$ref": "#/responses/validationError"
          }
        }
      }
    },
    "/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"
          }
        }
      },
      "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"
          },
          "412": {
            "$ref": "#/responses/error"
          },
          "422": {
            "$ref": "#/responses/validationError"
          }
        }
      }
    },
    "/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"
          },
          "405": {
            "$ref": "#/responses/empty"
          },
          "409": {
            "$ref": "#/responses/error"
          }
        }
      }
    },
    "/repos/{owner}/{repo}/raw/{filepath}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "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": "filepath of the file to get",
            "name": "filepath",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "success"
          },
          "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": "integer",
            "description": "page wants to load",
            "name": "page",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "items count every page wants to load",
            "name": "per_page",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/ReleaseList"
          }
        }
      },
      "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"
          },
          "409": {
            "$ref": "#/responses/error"
          }
        }
      }
    },
    "/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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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"
          }
        }
      },
      "post": {
        "consumes": [
          "multipart/form-data"
        ],
        "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",
            "required": true
          }
        ],
        "responses": {
          "201": {
            "$ref": "#/responses/Attachment"
          },
          "400": {
            "$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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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}/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/UserList"
          }
        }
      }
    },
    "/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
          },
          {
            "type": "integer",
            "description": "page number of results",
            "name": "page",
            "in": "query"
          },
          {
            "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"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/StatusList"
          },
          "400": {
            "$ref": "#/responses/error"
          }
        }
      },
      "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/Status"
          },
          "400": {
            "$ref": "#/responses/error"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/UserList"
          }
        }
      }
    },
    "/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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/TagList"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/TrackedTimeList"
          },
          "400": {
            "$ref": "#/responses/error"
          }
        }
      }
    },
    "/repos/{owner}/{repo}/times/{user}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "List a user's tracked times in a repo",
        "operationId": "userTrackedTimes",
        "parameters": [
          {
            "type": "string",
            "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 user",
            "name": "user",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/TrackedTimeList"
          },
          "400": {
            "$ref": "#/responses/error"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/TopicNames"
          }
        }
      },
      "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"
          },
          "422": {
            "$ref": "#/responses/invalidTopicsError"
          }
        }
      }
    },
    "/repos/{owner}/{repo}/topics/{topic}": {
      "put": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "repository"
        ],
        "summary": "Add a topic to a repository",
        "operationId": "repoAddTopíc",
        "parameters": [
          {
            "type": "string",
            "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"
          },
          "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"
          },
          "422": {
            "$ref": "#/responses/invalidTopicsError"
          }
        }
      }
    },
    "/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"
          }
        }
      }
    },
    "/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"
            }
          }
        }
      }
    },
    "/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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/UserList"
          }
        }
      }
    },
    "/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 member to list",
            "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",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/responses/empty"
          },
          "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",
            "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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/RepositoryList"
          }
        }
      }
    },
    "/teams/{id}/repos/{org}/{repo}": {
      "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/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
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/TopicListResponse"
          },
          "403": {
            "$ref": "#/responses/forbidden"
          }
        }
      }
    },
    "/user": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "Get the authenticated user",
        "operationId": "userGetCurrent",
        "responses": {
          "200": {
            "$ref": "#/responses/User"
          }
        }
      }
    },
    "/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"
          }
        }
      }
    },
    "/user/followers": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "List the authenticated user's followers",
        "operationId": "userCurrentListFollowers",
        "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",
        "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 followed user",
            "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 user to follow",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/responses/empty"
          }
        }
      },
      "delete": {
        "tags": [
          "user"
        ],
        "summary": "Unfollow a user",
        "operationId": "userCurrentDeleteFollow",
        "parameters": [
          {
            "type": "string",
            "description": "username of user to unfollow",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/responses/empty"
          }
        }
      }
    },
    "/user/gpg_keys": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "List the authenticated user's GPG keys",
        "operationId": "userCurrentListGPGKeys",
        "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"
          },
          "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"
          }
        }
      }
    },
    "/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"
          }
        ],
        "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",
        "responses": {
          "200": {
            "$ref": "#/responses/OrganizationList"
          }
        }
      }
    },
    "/user/repos": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "List the repos that the authenticated user owns or has access to",
        "operationId": "userCurrentListRepos",
        "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"
          },
          "409": {
            "description": "The repository with the same name already exists."
          },
          "422": {
            "$ref": "#/responses/validationError"
          }
        }
      }
    },
    "/user/starred": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "The repos that the authenticated user has starred",
        "operationId": "userCurrentListStarred",
        "responses": {
          "200": {
            "$ref": "#/responses/RepositoryList"
          }
        }
      }
    },
    "/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"
          },
          "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/user/stopwatches": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "Get list of all existing stopwatches",
        "operationId": "userGetStopWatches",
        "responses": {
          "200": {
            "$ref": "#/responses/StopWatchList"
          }
        }
      }
    },
    "/user/subscriptions": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "List repositories watched by the authenticated user",
        "operationId": "userCurrentListSubscriptions",
        "responses": {
          "200": {
            "$ref": "#/responses/RepositoryList"
          }
        }
      }
    },
    "/user/teams": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "List all the teams a user belongs to",
        "operationId": "userListTeams",
        "responses": {
          "200": {
            "$ref": "#/responses/TeamList"
          }
        }
      }
    },
    "/user/times": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "List the current user's tracked times",
        "operationId": "userCurrentTrackedTimes",
        "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": "maximum number of users to return",
            "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/{follower}/following/{followee}": {
      "get": {
        "tags": [
          "user"
        ],
        "summary": "Check if one user is following another user",
        "operationId": "userCheckFollowing",
        "parameters": [
          {
            "type": "string",
            "description": "username of following user",
            "name": "follower",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "username of followed user",
            "name": "followee",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/responses/empty"
          },
          "404": {
            "$ref": "#/responses/notFound"
          }
        }
      }
    },
    "/users/{username}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "Get a user",
        "operationId": "userGet",
        "parameters": [
          {
            "type": "string",
            "description": "username of user to get",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/User"
          },
          "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 user",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/UserList"
          }
        }
      }
    },
    "/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 user",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/UserList"
          }
        }
      }
    },
    "/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 user",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/GPGKeyList"
          }
        }
      }
    },
    "/users/{username}/heatmap": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "Get a user's heatmap",
        "operationId": "userGetHeatmapData",
        "parameters": [
          {
            "type": "string",
            "description": "username of user to get",
            "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 user",
            "name": "username",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "fingerprint of the key",
            "name": "fingerprint",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/PublicKeyList"
          }
        }
      }
    },
    "/users/{username}/orgs": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "organization"
        ],
        "summary": "List a user's organizations",
        "operationId": "orgListUserOrgs",
        "parameters": [
          {
            "type": "string",
            "description": "username of user",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/OrganizationList"
          }
        }
      }
    },
    "/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 user",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/RepositoryList"
          }
        }
      }
    },
    "/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 user",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/RepositoryList"
          }
        }
      }
    },
    "/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",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/RepositoryList"
          }
        }
      }
    },
    "/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 user",
            "name": "username",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/AccessTokenList"
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "Create an access token",
        "operationId": "userCreateToken",
        "parameters": [
          {
            "type": "string",
            "x-go-name": "Name",
            "description": "username of user",
            "name": "username",
            "in": "path",
            "required": true
          },
          {
            "name": "accessToken",
            "in": "body",
            "schema": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "name": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/AccessToken"
          }
        }
      }
    },
    "/users/{username}/tokens/{token}": {
      "delete": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "delete an access token",
        "operationId": "userDeleteAccessToken",
        "parameters": [
          {
            "type": "string",
            "description": "username of user",
            "name": "username",
            "in": "path",
            "required": true
          },
          {
            "type": "integer",
            "format": "int64",
            "description": "token to be deleted",
            "name": "token",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/responses/empty"
          }
        }
      }
    },
    "/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": {
          "type": "string",
          "x-go-name": "Message"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "AccessToken": {
      "type": "object",
      "title": "AccessToken represents an API access token.",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "sha1": {
          "type": "string",
          "x-go-name": "Token"
        },
        "token_last_eight": {
          "type": "string",
          "x-go-name": "TokenLastEight"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "AddCollaboratorOption": {
      "description": "AddCollaboratorOption options when adding a user as a collaborator of a repository",
      "type": "object",
      "properties": {
        "permission": {
          "type": "string",
          "x-go-name": "Permission"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": "User who spent the time (optional)",
          "type": "string",
          "x-go-name": "User"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "AnnotatedTag": {
      "description": "AnnotatedTag represents an annotated tag",
      "type": "object",
      "properties": {
        "message": {
          "type": "string",
          "x-go-name": "Message"
        },
        "object": {
          "$ref": "#/definitions/AnnotatedTagObject"
        },
        "sha": {
          "type": "string",
          "x-go-name": "SHA"
        },
        "tag": {
          "type": "string",
          "x-go-name": "Tag"
        },
        "tagger": {
          "$ref": "#/definitions/CommitUser"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        },
        "verification": {
          "$ref": "#/definitions/PayloadCommitVerification"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "AnnotatedTagObject": {
      "description": "AnnotatedTagObject contains meta information of the tag object",
      "type": "object",
      "properties": {
        "sha": {
          "type": "string",
          "x-go-name": "SHA"
        },
        "type": {
          "type": "string",
          "x-go-name": "Type"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "Attachment": {
      "description": "Attachment a generic attachment",
      "type": "object",
      "properties": {
        "browser_download_url": {
          "type": "string",
          "x-go-name": "DownloadURL"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Created"
        },
        "download_count": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "DownloadCount"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "size": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "Size"
        },
        "uuid": {
          "type": "string",
          "x-go-name": "UUID"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "Branch": {
      "description": "Branch represents a repository branch",
      "type": "object",
      "properties": {
        "commit": {
          "$ref": "#/definitions/PayloadCommit"
        },
        "enable_status_check": {
          "type": "boolean",
          "x-go-name": "EnableStatusCheck"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "protected": {
          "type": "boolean",
          "x-go-name": "Protected"
        },
        "required_approvals": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "RequiredApprovals"
        },
        "status_check_contexts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "StatusCheckContexts"
        },
        "user_can_merge": {
          "type": "boolean",
          "x-go-name": "UserCanMerge"
        },
        "user_can_push": {
          "type": "boolean",
          "x-go-name": "UserCanPush"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "Comment": {
      "description": "Comment represents a comment on a commit or issue",
      "type": "object",
      "properties": {
        "body": {
          "type": "string",
          "x-go-name": "Body"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Created"
        },
        "html_url": {
          "type": "string",
          "x-go-name": "HTMLURL"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "issue_url": {
          "type": "string",
          "x-go-name": "IssueURL"
        },
        "original_author": {
          "type": "string",
          "x-go-name": "OriginalAuthor"
        },
        "original_author_id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "OriginalAuthorID"
        },
        "pull_request_url": {
          "type": "string",
          "x-go-name": "PRURL"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Updated"
        },
        "user": {
          "$ref": "#/definitions/User"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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"
        },
        "html_url": {
          "type": "string",
          "x-go-name": "HTMLURL"
        },
        "parents": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CommitMeta"
          },
          "x-go-name": "Parents"
        },
        "sha": {
          "type": "string",
          "x-go-name": "SHA"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": "code.gitea.io/gitea/modules/structs"
    },
    "CommitMeta": {
      "type": "object",
      "title": "CommitMeta contains meta information of a commit in terms of API.",
      "properties": {
        "sha": {
          "type": "string",
          "x-go-name": "SHA"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "CommitUser": {
      "type": "object",
      "title": "CommitUser contains information of a user in the context of a commit.",
      "properties": {
        "date": {
          "type": "string",
          "x-go-name": "Date"
        },
        "email": {
          "type": "string",
          "format": "email",
          "x-go-name": "Email"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": {
          "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": {
          "type": "string",
          "x-go-name": "GitURL"
        },
        "html_url": {
          "type": "string",
          "x-go-name": "HTMLURL"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "path": {
          "type": "string",
          "x-go-name": "Path"
        },
        "sha": {
          "type": "string",
          "x-go-name": "SHA"
        },
        "size": {
          "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": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": "code.gitea.io/gitea/modules/structs"
    },
    "CreateFileOptions": {
      "description": "CreateFileOptions options for creating files\nNote: `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) to base this file from. if not given, 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": "Content"
        },
        "dates": {
          "$ref": "#/definitions/CommitDateOptions"
        },
        "message": {
          "description": "message (optional) for the commit of this file. 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 `branch` before creating the file",
          "type": "string",
          "x-go-name": "NewBranchName"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "CreateForkOption": {
      "description": "CreateForkOption options for creating a fork",
      "type": "object",
      "properties": {
        "organization": {
          "description": "organization name, if forking into an organization",
          "type": "string",
          "x-go-name": "Organization"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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"
        },
        "branch_filter": {
          "type": "string",
          "x-go-name": "BranchFilter"
        },
        "config": {
          "$ref": "#/definitions/CreateHookOptionConfig"
        },
        "events": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "Events"
        },
        "type": {
          "type": "string",
          "enum": [
            "dingtalk",
            "discord",
            "gitea",
            "gogs",
            "msteams",
            "slack",
            "telegram"
          ],
          "x-go-name": "Type"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "CreateHookOptionConfig": {
      "description": "CreateHookOptionConfig has all config options in it\nrequired are \"content_type\" and \"url\" Required",
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "x-go-package": "code.gitea.io/gitea/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": "code.gitea.io/gitea/modules/structs"
    },
    "CreateIssueOption": {
      "description": "CreateIssueOption options to create one issue",
      "type": "object",
      "required": [
        "title"
      ],
      "properties": {
        "assignee": {
          "description": "username of assignee",
          "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"
        },
        "title": {
          "type": "string",
          "x-go-name": "Title"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": "code.gitea.io/gitea/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": {
          "type": "string",
          "x-go-name": "Description"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "CreateMilestoneOption": {
      "description": "CreateMilestoneOption options for creating a milestone",
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "x-go-name": "Description"
        },
        "due_on": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Deadline"
        },
        "title": {
          "type": "string",
          "x-go-name": "Title"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "CreateOrgOption": {
      "description": "CreateOrgOption options for creating an organization",
      "type": "object",
      "required": [
        "username"
      ],
      "properties": {
        "description": {
          "type": "string",
          "x-go-name": "Description"
        },
        "full_name": {
          "type": "string",
          "x-go-name": "FullName"
        },
        "location": {
          "type": "string",
          "x-go-name": "Location"
        },
        "repo_admin_change_team_access": {
          "type": "boolean",
          "x-go-name": "RepoAdminChangeTeamAccess"
        },
        "username": {
          "type": "string",
          "x-go-name": "UserName"
        },
        "visibility": {
          "description": "possible values are `public` (default), `limited` or `private`",
          "type": "string",
          "enum": [
            "public",
            "limited",
            "private"
          ],
          "x-go-name": "Visibility"
        },
        "website": {
          "type": "string",
          "x-go-name": "Website"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "CreatePullRequestOption": {
      "description": "CreatePullRequestOption options when creating a pull request",
      "type": "object",
      "properties": {
        "assignee": {
          "type": "string",
          "x-go-name": "Assignee"
        },
        "assignees": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "Assignees"
        },
        "base": {
          "type": "string",
          "x-go-name": "Base"
        },
        "body": {
          "type": "string",
          "x-go-name": "Body"
        },
        "due_date": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Deadline"
        },
        "head": {
          "type": "string",
          "x-go-name": "Head"
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64"
          },
          "x-go-name": "Labels"
        },
        "milestone": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "Milestone"
        },
        "title": {
          "type": "string",
          "x-go-name": "Title"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "CreateReleaseOption": {
      "description": "CreateReleaseOption options when creating a release",
      "type": "object",
      "required": [
        "tag_name"
      ],
      "properties": {
        "body": {
          "type": "string",
          "x-go-name": "Note"
        },
        "draft": {
          "type": "boolean",
          "x-go-name": "IsDraft"
        },
        "name": {
          "type": "string",
          "x-go-name": "Title"
        },
        "prerelease": {
          "type": "boolean",
          "x-go-name": "IsPrerelease"
        },
        "tag_name": {
          "type": "string",
          "x-go-name": "TagName"
        },
        "target_commitish": {
          "type": "string",
          "x-go-name": "Target"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "CreateRepoOption": {
      "description": "CreateRepoOption options when creating repository",
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "auto_init": {
          "description": "Whether the repository should be auto-intialized?",
          "type": "boolean",
          "x-go-name": "AutoInit"
        },
        "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": "Issue 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"
        },
        "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"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "CreateStatusOption": {
      "description": "CreateStatusOption holds the information needed to create a new Status for a Commit",
      "type": "object",
      "properties": {
        "context": {
          "type": "string",
          "x-go-name": "Context"
        },
        "description": {
          "type": "string",
          "x-go-name": "Description"
        },
        "state": {
          "$ref": "#/definitions/StatusState"
        },
        "target_url": {
          "type": "string",
          "x-go-name": "TargetURL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "CreateTeamOption": {
      "description": "CreateTeamOption options for creating a team",
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "can_create_org_repo": {
          "type": "boolean",
          "x-go-name": "CanCreateOrgRepo"
        },
        "description": {
          "type": "string",
          "x-go-name": "Description"
        },
        "includes_all_repositories": {
          "type": "boolean",
          "x-go-name": "IncludesAllRepositories"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "permission": {
          "type": "string",
          "enum": [
            "read",
            "write",
            "admin"
          ],
          "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.ext_wiki"
          ]
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "CreateUserOption": {
      "description": "CreateUserOption create user options",
      "type": "object",
      "required": [
        "username",
        "email",
        "password"
      ],
      "properties": {
        "email": {
          "type": "string",
          "format": "email",
          "x-go-name": "Email"
        },
        "full_name": {
          "type": "string",
          "x-go-name": "FullName"
        },
        "login_name": {
          "type": "string",
          "x-go-name": "LoginName"
        },
        "must_change_password": {
          "type": "boolean",
          "x-go-name": "MustChangePassword"
        },
        "password": {
          "type": "string",
          "x-go-name": "Password"
        },
        "send_notify": {
          "type": "boolean",
          "x-go-name": "SendNotify"
        },
        "source_id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "SourceID"
        },
        "username": {
          "type": "string",
          "x-go-name": "Username"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": "code.gitea.io/gitea/modules/structs"
    },
    "DeleteFileOptions": {
      "description": "DeleteFileOptions options for deleting files (used for other File structs below)\nNote: `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) to base this file from. if not given, the default branch is used",
          "type": "string",
          "x-go-name": "BranchName"
        },
        "committer": {
          "$ref": "#/definitions/Identity"
        },
        "dates": {
          "$ref": "#/definitions/CommitDateOptions"
        },
        "message": {
          "description": "message (optional) for the commit of this file. 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 `branch` before creating the file",
          "type": "string",
          "x-go-name": "NewBranchName"
        },
        "sha": {
          "description": "sha is the SHA for the file that already exists",
          "type": "string",
          "x-go-name": "SHA"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "DeployKey": {
      "description": "DeployKey a deploy key",
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Created"
        },
        "fingerprint": {
          "type": "string",
          "x-go-name": "Fingerprint"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "key": {
          "type": "string",
          "x-go-name": "Key"
        },
        "key_id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "KeyID"
        },
        "read_only": {
          "type": "boolean",
          "x-go-name": "ReadOnly"
        },
        "repository": {
          "$ref": "#/definitions/Repository"
        },
        "title": {
          "type": "string",
          "x-go-name": "Title"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "EditAttachmentOptions": {
      "description": "EditAttachmentOptions options for editing attachments",
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-go-name": "Name"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": "code.gitea.io/gitea/modules/structs"
    },
    "EditGitHookOption": {
      "description": "EditGitHookOption options when modifying one Git hook",
      "type": "object",
      "properties": {
        "content": {
          "type": "string",
          "x-go-name": "Content"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "EditHookOption": {
      "description": "EditHookOption options when modify one hook",
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean",
          "x-go-name": "Active"
        },
        "branch_filter": {
          "type": "string",
          "x-go-name": "BranchFilter"
        },
        "config": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "x-go-name": "Config"
        },
        "events": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "Events"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": "code.gitea.io/gitea/modules/structs"
    },
    "EditIssueOption": {
      "description": "EditIssueOption options for editing an issue",
      "type": "object",
      "properties": {
        "assignee": {
          "type": "string",
          "x-go-name": "Assignee"
        },
        "assignees": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "Assignees"
        },
        "body": {
          "type": "string",
          "x-go-name": "Body"
        },
        "due_date": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Deadline"
        },
        "milestone": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "Milestone"
        },
        "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": "code.gitea.io/gitea/modules/structs"
    },
    "EditLabelOption": {
      "description": "EditLabelOption options for editing a label",
      "type": "object",
      "properties": {
        "color": {
          "type": "string",
          "x-go-name": "Color"
        },
        "description": {
          "type": "string",
          "x-go-name": "Description"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "EditMilestoneOption": {
      "description": "EditMilestoneOption options for editing a milestone",
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "x-go-name": "Description"
        },
        "due_on": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Deadline"
        },
        "state": {
          "type": "string",
          "x-go-name": "State"
        },
        "title": {
          "type": "string",
          "x-go-name": "Title"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "EditOrgOption": {
      "description": "EditOrgOption options for editing an organization",
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "x-go-name": "Description"
        },
        "full_name": {
          "type": "string",
          "x-go-name": "FullName"
        },
        "location": {
          "type": "string",
          "x-go-name": "Location"
        },
        "repo_admin_change_team_access": {
          "type": "boolean",
          "x-go-name": "RepoAdminChangeTeamAccess"
        },
        "visibility": {
          "description": "possible values are `public`, `limited` or `private`",
          "type": "string",
          "enum": [
            "public",
            "limited",
            "private"
          ],
          "x-go-name": "Visibility"
        },
        "website": {
          "type": "string",
          "x-go-name": "Website"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "EditPullRequestOption": {
      "description": "EditPullRequestOption options when modify pull request",
      "type": "object",
      "properties": {
        "assignee": {
          "type": "string",
          "x-go-name": "Assignee"
        },
        "assignees": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "Assignees"
        },
        "body": {
          "type": "string",
          "x-go-name": "Body"
        },
        "due_date": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Deadline"
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64"
          },
          "x-go-name": "Labels"
        },
        "milestone": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "Milestone"
        },
        "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": "code.gitea.io/gitea/modules/structs"
    },
    "EditReactionOption": {
      "description": "EditReactionOption contain the reaction type",
      "type": "object",
      "properties": {
        "content": {
          "type": "string",
          "x-go-name": "Reaction"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "EditReleaseOption": {
      "description": "EditReleaseOption options when editing a release",
      "type": "object",
      "properties": {
        "body": {
          "type": "string",
          "x-go-name": "Note"
        },
        "draft": {
          "type": "boolean",
          "x-go-name": "IsDraft"
        },
        "name": {
          "type": "string",
          "x-go-name": "Title"
        },
        "prerelease": {
          "type": "boolean",
          "x-go-name": "IsPrerelease"
        },
        "tag_name": {
          "type": "string",
          "x-go-name": "TagName"
        },
        "target_commitish": {
          "type": "string",
          "x-go-name": "Target"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "EditRepoOption": {
      "description": "EditRepoOption options when editing a repository's properties",
      "type": "object",
      "properties": {
        "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. `has_pull_requests` must be `true`.",
          "type": "boolean",
          "x-go-name": "AllowMerge"
        },
        "allow_rebase": {
          "description": "either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. `has_pull_requests` must be `true`.",
          "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. `has_pull_requests` must be `true`.",
          "type": "boolean",
          "x-go-name": "AllowRebaseMerge"
        },
        "allow_squash_merge": {
          "description": "either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. `has_pull_requests` must be `true`.",
          "type": "boolean",
          "x-go-name": "AllowSquash"
        },
        "archived": {
          "description": "set to `true` to archive this repository.",
          "type": "boolean",
          "x-go-name": "Archived"
        },
        "default_branch": {
          "description": "sets the default branch for this repository.",
          "type": "string",
          "x-go-name": "DefaultBranch"
        },
        "description": {
          "description": "a short description of the repository.",
          "type": "string",
          "x-go-name": "Description"
        },
        "external_tracker": {
          "$ref": "#/definitions/ExternalTracker"
        },
        "external_wiki": {
          "$ref": "#/definitions/ExternalWiki"
        },
        "has_issues": {
          "description": "either `true` to enable issues for this repository or `false` to disable them.",
          "type": "boolean",
          "x-go-name": "HasIssues"
        },
        "has_pull_requests": {
          "description": "either `true` to allow pull requests, or `false` to prevent pull request.",
          "type": "boolean",
          "x-go-name": "HasPullRequests"
        },
        "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. `has_pull_requests` must be `true`.",
          "type": "boolean",
          "x-go-name": "IgnoreWhitespaceConflicts"
        },
        "internal_tracker": {
          "$ref": "#/definitions/InternalTracker"
        },
        "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.\nNote: you will get a 422 error if the organization restricts changing repository visibility to organization\nowners and a non-owner tries to change the value of private.",
          "type": "boolean",
          "x-go-name": "Private"
        },
        "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": "code.gitea.io/gitea/modules/structs"
    },
    "EditTeamOption": {
      "description": "EditTeamOption options for editing a team",
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "can_create_org_repo": {
          "type": "boolean",
          "x-go-name": "CanCreateOrgRepo"
        },
        "description": {
          "type": "string",
          "x-go-name": "Description"
        },
        "includes_all_repositories": {
          "type": "boolean",
          "x-go-name": "IncludesAllRepositories"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "permission": {
          "type": "string",
          "enum": [
            "read",
            "write",
            "admin"
          ],
          "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.ext_wiki"
          ]
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "EditUserOption": {
      "description": "EditUserOption edit user options",
      "type": "object",
      "required": [
        "email"
      ],
      "properties": {
        "active": {
          "type": "boolean",
          "x-go-name": "Active"
        },
        "admin": {
          "type": "boolean",
          "x-go-name": "Admin"
        },
        "allow_create_organization": {
          "type": "boolean",
          "x-go-name": "AllowCreateOrganization"
        },
        "allow_git_hook": {
          "type": "boolean",
          "x-go-name": "AllowGitHook"
        },
        "allow_import_local": {
          "type": "boolean",
          "x-go-name": "AllowImportLocal"
        },
        "email": {
          "type": "string",
          "format": "email",
          "x-go-name": "Email"
        },
        "full_name": {
          "type": "string",
          "x-go-name": "FullName"
        },
        "location": {
          "type": "string",
          "x-go-name": "Location"
        },
        "login_name": {
          "type": "string",
          "x-go-name": "LoginName"
        },
        "max_repo_creation": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "MaxRepoCreation"
        },
        "must_change_password": {
          "type": "boolean",
          "x-go-name": "MustChangePassword"
        },
        "password": {
          "type": "string",
          "x-go-name": "Password"
        },
        "prohibit_login": {
          "type": "boolean",
          "x-go-name": "ProhibitLogin"
        },
        "source_id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "SourceID"
        },
        "website": {
          "type": "string",
          "x-go-name": "Website"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": {
          "type": "boolean",
          "x-go-name": "Primary"
        },
        "verified": {
          "type": "boolean",
          "x-go-name": "Verified"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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_style": {
          "description": "External Issue Tracker Number Format, either `numeric` or `alphanumeric`",
          "type": "string",
          "x-go-name": "ExternalTrackerStyle"
        },
        "external_tracker_url": {
          "description": "URL of external issue tracker.",
          "type": "string",
          "x-go-name": "ExternalTrackerURL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": "code.gitea.io/gitea/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"
        },
        "html_url": {
          "type": "string",
          "x-go-name": "HTMLURL"
        },
        "message": {
          "type": "string",
          "x-go-name": "Message"
        },
        "parents": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CommitMeta"
          },
          "x-go-name": "Parents"
        },
        "sha": {
          "type": "string",
          "x-go-name": "SHA"
        },
        "tree": {
          "$ref": "#/definitions/CommitMeta"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "FileDeleteResponse": {
      "description": "FileDeleteResponse contains information about a repo's file that was deleted",
      "type": "object",
      "properties": {
        "commit": {
          "$ref": "#/definitions/FileCommitResponse"
        },
        "content": {
          "type": "object",
          "x-go-name": "Content"
        },
        "verification": {
          "$ref": "#/definitions/PayloadCommitVerification"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "FileLinksResponse": {
      "description": "FileLinksResponse contains the links for a repo's file",
      "type": "object",
      "properties": {
        "git": {
          "type": "string",
          "x-go-name": "GitURL"
        },
        "html": {
          "type": "string",
          "x-go-name": "HTMLURL"
        },
        "self": {
          "type": "string",
          "x-go-name": "Self"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": "code.gitea.io/gitea/modules/structs"
    },
    "GPGKey": {
      "description": "GPGKey a user GPG key to sign commit and tag in repository",
      "type": "object",
      "properties": {
        "can_certify": {
          "type": "boolean",
          "x-go-name": "CanCertify"
        },
        "can_encrypt_comms": {
          "type": "boolean",
          "x-go-name": "CanEncryptComms"
        },
        "can_encrypt_storage": {
          "type": "boolean",
          "x-go-name": "CanEncryptStorage"
        },
        "can_sign": {
          "type": "boolean",
          "x-go-name": "CanSign"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Created"
        },
        "emails": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GPGKeyEmail"
          },
          "x-go-name": "Emails"
        },
        "expires_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Expires"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "key_id": {
          "type": "string",
          "x-go-name": "KeyID"
        },
        "primary_key_id": {
          "type": "string",
          "x-go-name": "PrimaryKeyID"
        },
        "public_key": {
          "type": "string",
          "x-go-name": "PublicKey"
        },
        "subkeys": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GPGKey"
          },
          "x-go-name": "SubsKey"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "GPGKeyEmail": {
      "description": "GPGKeyEmail an email attached to a GPGKey",
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "x-go-name": "Email"
        },
        "verified": {
          "type": "boolean",
          "x-go-name": "Verified"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "GitBlobResponse": {
      "description": "GitBlobResponse represents a git blob",
      "type": "object",
      "properties": {
        "content": {
          "type": "string",
          "x-go-name": "Content"
        },
        "encoding": {
          "type": "string",
          "x-go-name": "Encoding"
        },
        "sha": {
          "type": "string",
          "x-go-name": "SHA"
        },
        "size": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "Size"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "GitEntry": {
      "description": "GitEntry represents a git tree",
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "x-go-name": "Mode"
        },
        "path": {
          "type": "string",
          "x-go-name": "Path"
        },
        "sha": {
          "type": "string",
          "x-go-name": "SHA"
        },
        "size": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "Size"
        },
        "type": {
          "type": "string",
          "x-go-name": "Type"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "GitHook": {
      "description": "GitHook represents a Git repository hook",
      "type": "object",
      "properties": {
        "content": {
          "type": "string",
          "x-go-name": "Content"
        },
        "is_active": {
          "type": "boolean",
          "x-go-name": "IsActive"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "GitObject": {
      "type": "object",
      "title": "GitObject represents a Git object.",
      "properties": {
        "sha": {
          "type": "string",
          "x-go-name": "SHA"
        },
        "type": {
          "type": "string",
          "x-go-name": "Type"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "GitTreeResponse": {
      "description": "GitTreeResponse returns a git tree",
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "Page"
        },
        "sha": {
          "type": "string",
          "x-go-name": "SHA"
        },
        "total_count": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "TotalCount"
        },
        "tree": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GitEntry"
          },
          "x-go-name": "Entries"
        },
        "truncated": {
          "type": "boolean",
          "x-go-name": "Truncated"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "Hook": {
      "description": "Hook a hook is a web hook when one repository changed",
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean",
          "x-go-name": "Active"
        },
        "config": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "x-go-name": "Config"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Created"
        },
        "events": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "Events"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "type": {
          "type": "string",
          "x-go-name": "Type"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Updated"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": {
          "type": "string",
          "x-go-name": "Name"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": "code.gitea.io/gitea/modules/structs"
    },
    "Issue": {
      "description": "Issue represents an issue in a repository",
      "type": "object",
      "properties": {
        "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"
        },
        "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"
        },
        "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"
        },
        "pull_request": {
          "$ref": "#/definitions/PullRequestMeta"
        },
        "repository": {
          "$ref": "#/definitions/RepositoryMeta"
        },
        "state": {
          "$ref": "#/definitions/StateType"
        },
        "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": "code.gitea.io/gitea/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": "code.gitea.io/gitea/modules/structs"
    },
    "IssueLabelsOption": {
      "description": "IssueLabelsOption a collection of labels",
      "type": "object",
      "properties": {
        "labels": {
          "description": "list of label IDs",
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64"
          },
          "x-go-name": "Labels"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": {
          "type": "string",
          "x-go-name": "Description"
        },
        "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": "code.gitea.io/gitea/modules/structs"
    },
    "MarkdownOption": {
      "description": "MarkdownOption markdown options",
      "type": "object",
      "properties": {
        "Context": {
          "description": "Context to render\n\nin: body",
          "type": "string"
        },
        "Mode": {
          "description": "Mode to render\n\nin: body",
          "type": "string"
        },
        "Text": {
          "description": "Text markdown to render\n\nin: body",
          "type": "string"
        },
        "Wiki": {
          "description": "Is it a wiki page ?\n\nin: body",
          "type": "boolean"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "MergePullRequestOption": {
      "description": "MergePullRequestForm form for merging Pull Request",
      "type": "object",
      "required": [
        "Do"
      ],
      "properties": {
        "Do": {
          "type": "string",
          "enum": [
            "merge",
            "rebase",
            "rebase-merge",
            "squash"
          ]
        },
        "MergeMessageField": {
          "type": "string"
        },
        "MergeTitleField": {
          "type": "string"
        }
      },
      "x-go-name": "MergePullRequestForm",
      "x-go-package": "code.gitea.io/gitea/modules/auth"
    },
    "MigrateRepoForm": {
      "description": "MigrateRepoForm form for migrating repository",
      "type": "object",
      "required": [
        "clone_addr",
        "uid",
        "repo_name"
      ],
      "properties": {
        "auth_password": {
          "type": "string",
          "x-go-name": "AuthPassword"
        },
        "auth_username": {
          "type": "string",
          "x-go-name": "AuthUsername"
        },
        "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"
        },
        "milestones": {
          "type": "boolean",
          "x-go-name": "Milestones"
        },
        "mirror": {
          "type": "boolean",
          "x-go-name": "Mirror"
        },
        "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"
        },
        "uid": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "UID"
        },
        "wiki": {
          "type": "boolean",
          "x-go-name": "Wiki"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/auth"
    },
    "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": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ClosedIssues"
        },
        "description": {
          "type": "string",
          "x-go-name": "Description"
        },
        "due_on": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Deadline"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "open_issues": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "OpenIssues"
        },
        "state": {
          "$ref": "#/definitions/StateType"
        },
        "title": {
          "type": "string",
          "x-go-name": "Title"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "Organization": {
      "description": "Organization represents an organization",
      "type": "object",
      "properties": {
        "avatar_url": {
          "type": "string",
          "x-go-name": "AvatarURL"
        },
        "description": {
          "type": "string",
          "x-go-name": "Description"
        },
        "full_name": {
          "type": "string",
          "x-go-name": "FullName"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "location": {
          "type": "string",
          "x-go-name": "Location"
        },
        "repo_admin_change_team_access": {
          "type": "boolean",
          "x-go-name": "RepoAdminChangeTeamAccess"
        },
        "username": {
          "type": "string",
          "x-go-name": "UserName"
        },
        "visibility": {
          "type": "string",
          "x-go-name": "Visibility"
        },
        "website": {
          "type": "string",
          "x-go-name": "Website"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "PRBranchInfo": {
      "description": "PRBranchInfo information about a branch",
      "type": "object",
      "properties": {
        "label": {
          "type": "string",
          "x-go-name": "Name"
        },
        "ref": {
          "type": "string",
          "x-go-name": "Ref"
        },
        "repo": {
          "$ref": "#/definitions/Repository"
        },
        "repo_id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "RepoID"
        },
        "sha": {
          "type": "string",
          "x-go-name": "Sha"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "PayloadCommit": {
      "description": "PayloadCommit represents a commit",
      "type": "object",
      "properties": {
        "added": {
          "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": {
          "type": "string",
          "x-go-name": "Message"
        },
        "modified": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "Modified"
        },
        "removed": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "Removed"
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Timestamp"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        },
        "verification": {
          "$ref": "#/definitions/PayloadCommitVerification"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "PayloadCommitVerification": {
      "description": "PayloadCommitVerification represents the GPG verification of a commit",
      "type": "object",
      "properties": {
        "payload": {
          "type": "string",
          "x-go-name": "Payload"
        },
        "reason": {
          "type": "string",
          "x-go-name": "Reason"
        },
        "signature": {
          "type": "string",
          "x-go-name": "Signature"
        },
        "signer": {
          "$ref": "#/definitions/PayloadUser"
        },
        "verified": {
          "type": "boolean",
          "x-go-name": "Verified"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": {
          "type": "string",
          "x-go-name": "UserName"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": "code.gitea.io/gitea/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": {
          "type": "string",
          "x-go-name": "Fingerprint"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "key": {
          "type": "string",
          "x-go-name": "Key"
        },
        "key_type": {
          "type": "string",
          "x-go-name": "KeyType"
        },
        "read_only": {
          "type": "boolean",
          "x-go-name": "ReadOnly"
        },
        "title": {
          "type": "string",
          "x-go-name": "Title"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        },
        "user": {
          "$ref": "#/definitions/User"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "PullRequest": {
      "description": "PullRequest represents a pull request",
      "type": "object",
      "properties": {
        "assignee": {
          "$ref": "#/definitions/User"
        },
        "assignees": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/User"
          },
          "x-go-name": "Assignees"
        },
        "base": {
          "$ref": "#/definitions/PRBranchInfo"
        },
        "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"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Created"
        },
        "diff_url": {
          "type": "string",
          "x-go-name": "DiffURL"
        },
        "due_date": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Deadline"
        },
        "head": {
          "$ref": "#/definitions/PRBranchInfo"
        },
        "html_url": {
          "type": "string",
          "x-go-name": "HTMLURL"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "labels": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Label"
          },
          "x-go-name": "Labels"
        },
        "merge_base": {
          "type": "string",
          "x-go-name": "MergeBase"
        },
        "merge_commit_sha": {
          "type": "string",
          "x-go-name": "MergedCommitID"
        },
        "mergeable": {
          "type": "boolean",
          "x-go-name": "Mergeable"
        },
        "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": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "Index"
        },
        "patch_url": {
          "type": "string",
          "x-go-name": "PatchURL"
        },
        "state": {
          "$ref": "#/definitions/StateType"
        },
        "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": "code.gitea.io/gitea/modules/structs"
    },
    "PullRequestMeta": {
      "description": "PullRequestMeta PR info if an issue is a PR",
      "type": "object",
      "properties": {
        "merged": {
          "type": "boolean",
          "x-go-name": "HasMerged"
        },
        "merged_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Merged"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "Reaction": {
      "description": "Reaction contain one reaction",
      "type": "object",
      "properties": {
        "content": {
          "type": "string",
          "x-go-name": "Reaction"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Created"
        },
        "user": {
          "$ref": "#/definitions/User"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "Reference": {
      "type": "object",
      "title": "Reference represents a Git reference.",
      "properties": {
        "object": {
          "$ref": "#/definitions/GitObject"
        },
        "ref": {
          "type": "string",
          "x-go-name": "Ref"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "Release": {
      "description": "Release represents a repository release",
      "type": "object",
      "properties": {
        "assets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Attachment"
          },
          "x-go-name": "Attachments"
        },
        "author": {
          "$ref": "#/definitions/User"
        },
        "body": {
          "type": "string",
          "x-go-name": "Note"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "CreatedAt"
        },
        "draft": {
          "type": "boolean",
          "x-go-name": "IsDraft"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "name": {
          "type": "string",
          "x-go-name": "Title"
        },
        "prerelease": {
          "type": "boolean",
          "x-go-name": "IsPrerelease"
        },
        "published_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "PublishedAt"
        },
        "tag_name": {
          "type": "string",
          "x-go-name": "TagName"
        },
        "tarball_url": {
          "type": "string",
          "x-go-name": "TarURL"
        },
        "target_commitish": {
          "type": "string",
          "x-go-name": "Target"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        },
        "zipball_url": {
          "type": "string",
          "x-go-name": "ZipURL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": {
          "type": "string",
          "x-go-name": "Message"
        },
        "tree": {
          "$ref": "#/definitions/CommitMeta"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": "code.gitea.io/gitea/modules/structs"
    },
    "Repository": {
      "description": "Repository represents a repository",
      "type": "object",
      "properties": {
        "allow_merge_commits": {
          "type": "boolean",
          "x-go-name": "AllowMerge"
        },
        "allow_rebase": {
          "type": "boolean",
          "x-go-name": "AllowRebase"
        },
        "allow_rebase_explicit": {
          "type": "boolean",
          "x-go-name": "AllowRebaseMerge"
        },
        "allow_squash_merge": {
          "type": "boolean",
          "x-go-name": "AllowSquash"
        },
        "archived": {
          "type": "boolean",
          "x-go-name": "Archived"
        },
        "avatar_url": {
          "type": "string",
          "x-go-name": "AvatarURL"
        },
        "clone_url": {
          "type": "string",
          "x-go-name": "CloneURL"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Created"
        },
        "default_branch": {
          "type": "string",
          "x-go-name": "DefaultBranch"
        },
        "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_issues": {
          "type": "boolean",
          "x-go-name": "HasIssues"
        },
        "has_pull_requests": {
          "type": "boolean",
          "x-go-name": "HasPullRequests"
        },
        "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_tracker": {
          "$ref": "#/definitions/InternalTracker"
        },
        "mirror": {
          "type": "boolean",
          "x-go-name": "Mirror"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "open_issues_count": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "OpenIssues"
        },
        "open_pr_counter": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "OpenPulls"
        },
        "original_url": {
          "type": "string",
          "x-go-name": "OriginalURL"
        },
        "owner": {
          "$ref": "#/definitions/User"
        },
        "parent": {
          "$ref": "#/definitions/Repository"
        },
        "permissions": {
          "$ref": "#/definitions/Permission"
        },
        "private": {
          "type": "boolean",
          "x-go-name": "Private"
        },
        "release_counter": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "Releases"
        },
        "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"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Updated"
        },
        "watchers_count": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "Watchers"
        },
        "website": {
          "type": "string",
          "x-go-name": "Website"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "SearchResults": {
      "description": "SearchResults results of a successful search",
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Repository"
          },
          "x-go-name": "Data"
        },
        "ok": {
          "type": "boolean",
          "x-go-name": "OK"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "ServerVersion": {
      "description": "ServerVersion wraps the version of the server",
      "type": "object",
      "properties": {
        "version": {
          "type": "string",
          "x-go-name": "Version"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "StateType": {
      "description": "StateType issue state type",
      "type": "string",
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "Status": {
      "description": "Status holds a single Status of a single Commit",
      "type": "object",
      "properties": {
        "context": {
          "type": "string",
          "x-go-name": "Context"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Created"
        },
        "creator": {
          "$ref": "#/definitions/User"
        },
        "description": {
          "type": "string",
          "x-go-name": "Description"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "status": {
          "$ref": "#/definitions/StatusState"
        },
        "target_url": {
          "type": "string",
          "x-go-name": "TargetURL"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Updated"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "StatusState": {
      "description": "StatusState holds the state of a Status\nIt can be \"pending\", \"success\", \"error\", \"failure\", and \"warning\"",
      "type": "string",
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "StopWatch": {
      "description": "StopWatch represent a running stopwatch",
      "type": "object",
      "properties": {
        "created": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Created"
        },
        "issue_index": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "IssueIndex"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "Tag": {
      "description": "Tag represents a repository tag",
      "type": "object",
      "properties": {
        "commit": {
          "$ref": "#/definitions/CommitMeta"
        },
        "id": {
          "type": "string",
          "x-go-name": "ID"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "tarball_url": {
          "type": "string",
          "x-go-name": "TarballURL"
        },
        "zipball_url": {
          "type": "string",
          "x-go-name": "ZipballURL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "Team": {
      "description": "Team represents a team in an organization",
      "type": "object",
      "properties": {
        "can_create_org_repo": {
          "type": "boolean",
          "x-go-name": "CanCreateOrgRepo"
        },
        "description": {
          "type": "string",
          "x-go-name": "Description"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "includes_all_repositories": {
          "type": "boolean",
          "x-go-name": "IncludesAllRepositories"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "organization": {
          "$ref": "#/definitions/Organization"
        },
        "permission": {
          "type": "string",
          "enum": [
            "none",
            "read",
            "write",
            "admin",
            "owner"
          ],
          "x-go-name": "Permission"
        },
        "units": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "Units",
          "example": [
            "repo.code",
            "repo.issues",
            "repo.ext_issues",
            "repo.wiki",
            "repo.pulls",
            "repo.releases",
            "repo.ext_wiki"
          ]
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "TimeStamp": {
      "description": "TimeStamp defines a timestamp",
      "type": "integer",
      "format": "int64",
      "x-go-package": "code.gitea.io/gitea/modules/timeutil"
    },
    "TopicName": {
      "description": "TopicName a list of repo topic names",
      "type": "object",
      "properties": {
        "topics": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "TopicNames"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "TopicResponse": {
      "description": "TopicResponse for returning topics",
      "type": "object",
      "properties": {
        "created": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Created"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "ID"
        },
        "repo_count": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "RepoCount"
        },
        "topic_name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "updated": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "Updated"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": {
          "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": {
          "type": "string",
          "x-go-name": "UserName"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "UpdateFileOptions": {
      "description": "UpdateFileOptions options for updating files\nNote: `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",
        "content"
      ],
      "properties": {
        "author": {
          "$ref": "#/definitions/Identity"
        },
        "branch": {
          "description": "branch (optional) to base this file from. if not given, 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": "Content"
        },
        "dates": {
          "$ref": "#/definitions/CommitDateOptions"
        },
        "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) for the commit of this file. 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 `branch` before creating the file",
          "type": "string",
          "x-go-name": "NewBranchName"
        },
        "sha": {
          "description": "sha is the SHA for the file that already exists",
          "type": "string",
          "x-go-name": "SHA"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    },
    "User": {
      "description": "User represents a user",
      "type": "object",
      "properties": {
        "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"
        },
        "email": {
          "type": "string",
          "format": "email",
          "x-go-name": "Email"
        },
        "full_name": {
          "description": "the user's full name",
          "type": "string",
          "x-go-name": "FullName"
        },
        "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"
        },
        "login": {
          "description": "the user's username",
          "type": "string",
          "x-go-name": "UserName"
        }
      },
      "x-go-package": "code.gitea.io/gitea/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": "code.gitea.io/gitea/models"
    },
    "WatchInfo": {
      "description": "WatchInfo represents an API watch status of one repository",
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string",
          "format": "date-time",
          "x-go-name": "CreatedAt"
        },
        "ignored": {
          "type": "boolean",
          "x-go-name": "Ignored"
        },
        "reason": {
          "type": "object",
          "x-go-name": "Reason"
        },
        "repository_url": {
          "type": "string",
          "x-go-name": "RepositoryURL"
        },
        "subscribed": {
          "type": "boolean",
          "x-go-name": "Subscribed"
        },
        "url": {
          "type": "string",
          "x-go-name": "URL"
        }
      },
      "x-go-package": "code.gitea.io/gitea/modules/structs"
    }
  },
  "responses": {
    "AccessToken": {
      "description": "AccessToken represents an API access token.",
      "headers": {
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "name": {
          "type": "string"
        },
        "sha1": {
          "type": "string"
        },
        "token_last_eight": {
          "type": "string"
        }
      }
    },
    "AccessTokenList": {
      "description": "AccessTokenList represents a list of API access token.",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/AccessToken"
        }
      }
    },
    "AnnotatedTag": {
      "description": "AnnotatedTag",
      "schema": {
        "$ref": "#/definitions/AnnotatedTag"
      }
    },
    "Attachment": {
      "description": "Attachment",
      "schema": {
        "$ref": "#/definitions/Attachment"
      }
    },
    "AttachmentList": {
      "description": "AttachmentList",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/Attachment"
        }
      }
    },
    "Branch": {
      "description": "Branch",
      "schema": {
        "$ref": "#/definitions/Branch"
      }
    },
    "BranchList": {
      "description": "BranchList",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/Branch"
        }
      }
    },
    "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"
        }
      }
    },
    "ContentsListResponse": {
      "description": "ContentsListResponse",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/ContentsResponse"
        }
      }
    },
    "ContentsResponse": {
      "description": "ContentsResponse",
      "schema": {
        "$ref": "#/definitions/ContentsResponse"
      }
    },
    "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"
      }
    },
    "GPGKey": {
      "description": "GPGKey",
      "schema": {
        "$ref": "#/definitions/GPGKey"
      }
    },
    "GPGKeyList": {
      "description": "GPGKeyList",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/GPGKey"
        }
      }
    },
    "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"
      }
    },
    "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"
        }
      }
    },
    "Label": {
      "description": "Label",
      "schema": {
        "$ref": "#/definitions/Label"
      }
    },
    "LabelList": {
      "description": "LabelList",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/Label"
        }
      }
    },
    "MarkdownRender": {
      "description": "MarkdownRender is a rendered markdown document",
      "schema": {
        "type": "string"
      }
    },
    "Milestone": {
      "description": "Milestone",
      "schema": {
        "$ref": "#/definitions/Milestone"
      }
    },
    "MilestoneList": {
      "description": "MilestoneList",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/Milestone"
        }
      }
    },
    "Organization": {
      "description": "Organization",
      "schema": {
        "$ref": "#/definitions/Organization"
      }
    },
    "OrganizationList": {
      "description": "OrganizationList",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/Organization"
        }
      }
    },
    "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"
        }
      }
    },
    "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"
        }
      }
    },
    "Release": {
      "description": "Release",
      "schema": {
        "$ref": "#/definitions/Release"
      }
    },
    "ReleaseList": {
      "description": "ReleaseList",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/Release"
        }
      }
    },
    "Repository": {
      "description": "Repository",
      "schema": {
        "$ref": "#/definitions/Repository"
      }
    },
    "RepositoryList": {
      "description": "RepositoryList",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/Repository"
        }
      }
    },
    "SearchResults": {
      "description": "SearchResults",
      "schema": {
        "$ref": "#/definitions/SearchResults"
      }
    },
    "ServerVersion": {
      "description": "ServerVersion",
      "schema": {
        "$ref": "#/definitions/ServerVersion"
      }
    },
    "Status": {
      "description": "Status",
      "schema": {
        "$ref": "#/definitions/Status"
      }
    },
    "StatusList": {
      "description": "StatusList",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/Status"
        }
      }
    },
    "StopWatch": {
      "description": "StopWatch",
      "schema": {
        "$ref": "#/definitions/StopWatch"
      }
    },
    "StopWatchList": {
      "description": "StopWatchList",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/StopWatch"
        }
      }
    },
    "Tag": {
      "description": "Tag",
      "schema": {
        "$ref": "#/definitions/Tag"
      }
    },
    "TagList": {
      "description": "TagList",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/Tag"
        }
      }
    },
    "Team": {
      "description": "Team",
      "schema": {
        "$ref": "#/definitions/Team"
      }
    },
    "TeamList": {
      "description": "TeamList",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/Team"
        }
      }
    },
    "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"
        }
      }
    },
    "WatchInfo": {
      "description": "WatchInfo",
      "schema": {
        "$ref": "#/definitions/WatchInfo"
      }
    },
    "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/EditReactionOption"
      }
    },
    "redirect": {
      "description": "APIRedirect is a redirect response"
    },
    "validationError": {
      "description": "APIValidationError is error format response related to input validation",
      "headers": {
        "message": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      }
    }
  },
  "securityDefinitions": {
    "AccessToken": {
      "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"
    },
    "Token": {
      "type": "apiKey",
      "name": "token",
      "in": "query"
    }
  },
  "security": [
    {
      "BasicAuth": []
    },
    {
      "Token": []
    },
    {
      "AccessToken": []
    },
    {
      "AuthorizationHeaderToken": []
    },
    {
      "SudoParam": []
    },
    {
      "SudoHeader": []
    }
  ]
}
