Files
Gogs/docs/api-reference/openapi.json
2026-02-07 17:32:52 -05:00

6269 lines
154 KiB
JSON

{
"openapi": "3.0.3",
"info": {
"title": "Gogs API",
"version": "v1",
"description": "RESTful API for interacting with your Gogs instance. Follows a format similar to the GitHub REST API v3."
},
"servers": [
{
"url": "https://gogs.example.com/api/v1"
}
],
"security": [
{
"AccessToken": []
}
],
"tags": [
{
"name": "Repositories",
"description": "Create, search, and manage repositories, branches, commits, and contents"
},
{
"name": "Collaborators and Deploy Keys",
"description": "Manage repository collaborators and deploy keys"
},
{
"name": "Releases",
"description": "List repository releases"
},
{
"name": "Webhooks",
"description": "Create, edit, and delete repository webhooks"
},
{
"name": "Issues",
"description": "Manage issues, comments, labels, and milestones"
},
{
"name": "Users",
"description": "Search users, manage access tokens, emails, followers, and public keys"
},
{
"name": "Organizations",
"description": "Manage organizations, members, and teams"
},
{
"name": "Administration",
"description": "Site administration endpoints (requires admin privileges)"
},
{
"name": "Miscellaneous",
"description": "Markdown rendering and Git data endpoints"
}
],
"paths": {
"/repos/search": {
"get": {
"operationId": "searchRepos",
"summary": "Search repositories",
"tags": [
"Repositories"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Repository"
}
},
"ok": {
"type": "boolean"
}
}
}
}
}
}
},
"parameters": [
{
"name": "q",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Search keyword"
},
{
"name": "uid",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "User ID to filter by"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 10
},
"description": "Max results"
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 1
},
"description": "Page number"
}
]
}
},
"/user/repos": {
"get": {
"operationId": "listYourRepos",
"summary": "List your repositories",
"tags": [
"Repositories"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Repository"
}
}
}
}
}
}
},
"post": {
"operationId": "createRepo",
"summary": "Create a repository",
"tags": [
"Repositories"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Repository"
}
}
}
},
"422": {
"description": "Validation error."
}
},
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"private": {
"type": "boolean",
"default": false
},
"auto_init": {
"type": "boolean",
"default": false
},
"gitignores": {
"type": "string"
},
"license": {
"type": "string"
},
"readme": {
"type": "string",
"default": "Default"
}
},
"required": [
"name"
]
}
}
}
}
}
},
"/users/{username}/repos": {
"get": {
"operationId": "listUserRepos",
"summary": "List user repositories",
"tags": [
"Repositories"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Repository"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
]
}
},
"/orgs/{orgname}/repos": {
"get": {
"operationId": "listOrgRepos",
"summary": "List organization repositories",
"tags": [
"Repositories"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Repository"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "orgname",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Organization name"
}
]
}
},
"/org/{org}/repos": {
"post": {
"operationId": "createOrgRepo",
"summary": "Create a repository in an organization",
"tags": [
"Repositories"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Repository"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "org",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Organization name"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"private": {
"type": "boolean",
"default": false
},
"auto_init": {
"type": "boolean",
"default": false
},
"gitignores": {
"type": "string"
},
"license": {
"type": "string"
},
"readme": {
"type": "string",
"default": "Default"
}
},
"required": [
"name"
]
}
}
}
},
"description": "The authenticated user must be an owner of the specified organization."
}
},
"/repos/migrate": {
"post": {
"operationId": "migrateRepo",
"summary": "Migrate a repository",
"tags": [
"Repositories"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Repository"
}
}
}
},
"422": {
"description": "Validation error."
}
},
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"clone_addr": {
"type": "string"
},
"auth_username": {
"type": "string"
},
"auth_password": {
"type": "string"
},
"uid": {
"type": "integer"
},
"repo_name": {
"type": "string"
},
"mirror": {
"type": "boolean",
"default": false
},
"private": {
"type": "boolean",
"default": false
},
"description": {
"type": "string"
}
},
"required": [
"clone_addr",
"uid",
"repo_name"
]
}
}
}
}
}
},
"/repos/{owner}/{repo}": {
"get": {
"operationId": "getRepo",
"summary": "Get a repository",
"tags": [
"Repositories"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Repository"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
]
},
"delete": {
"operationId": "deleteRepo",
"summary": "Delete a repository",
"tags": [
"Repositories"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
],
"description": "Requires owner access to the repository."
}
},
"/repos/{owner}/{repo}/issue-tracker": {
"patch": {
"operationId": "editIssueTracker",
"summary": "Edit issue tracker settings",
"tags": [
"Repositories"
],
"responses": {
"204": {
"description": "Settings updated successfully."
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"enable_issues": {
"type": "boolean"
},
"enable_external_tracker": {
"type": "boolean"
},
"external_tracker_url": {
"type": "string"
},
"tracker_url_format": {
"type": "string"
},
"tracker_issue_style": {
"type": "string",
"enum": [
"numeric",
"alphanumeric"
]
}
}
}
}
}
}
}
},
"/repos/{owner}/{repo}/mirror-sync": {
"post": {
"operationId": "mirrorSync",
"summary": "Mirror sync",
"tags": [
"Repositories"
],
"responses": {
"202": {
"description": "Mirror sync has been queued."
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
],
"description": "Add a mirror repository to the sync queue. Returns 404 if the repository is not a mirror."
}
},
"/repos/{owner}/{repo}/branches": {
"get": {
"operationId": "listBranches",
"summary": "List branches",
"tags": [
"Repositories"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Branch"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
]
}
},
"/repos/{owner}/{repo}/branches/{branch}": {
"get": {
"operationId": "getBranch",
"summary": "Get a branch",
"tags": [
"Repositories"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Branch"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "branch",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Branch name"
}
]
}
},
"/repos/{owner}/{repo}/commits/{sha}": {
"get": {
"operationId": "getCommit",
"summary": "Get a single commit",
"tags": [
"Repositories"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Commit"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "sha",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Commit SHA"
}
],
"description": "Get details for a single commit. Set Accept header to application/vnd.gogs.sha to return only the SHA-1 hash of a commit reference."
}
},
"/repos/{owner}/{repo}/raw/{ref}/{filepath}": {
"get": {
"operationId": "getRawContent",
"summary": "Download raw content",
"tags": [
"Repositories"
],
"responses": {
"200": {
"description": "Raw file content",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "ref",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Branch, tag, or commit"
},
{
"name": "filepath",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "File path"
}
]
}
},
"/repos/{owner}/{repo}/archive/{archive}": {
"get": {
"operationId": "downloadArchive",
"summary": "Download archive",
"tags": [
"Repositories"
],
"responses": {
"200": {
"description": "Archive file",
"content": {
"application/octet-stream": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "archive",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Ref and format, e.g. master.zip or master.tar.gz"
}
]
}
},
"/repos/{owner}/{repo}/contents/{path}": {
"get": {
"operationId": "getContents",
"summary": "Get contents",
"tags": [
"Repositories"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Content"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "path",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "File or directory path"
},
{
"name": "ref",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Branch, tag, or commit. Defaults to the default branch."
}
],
"description": "Get the contents of a file, directory, symlink, or submodule in a repository."
},
"put": {
"operationId": "putContents",
"summary": "Create or update a file",
"description": "Creates or updates a file in the repository. The content must be base64 encoded.",
"tags": [
"Repositories"
],
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Owner of the repository"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Name of the repository"
},
{
"name": "path",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Path of the file to create or update"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Commit message"
},
"content": {
"type": "string",
"description": "Base64-encoded file content"
},
"branch": {
"type": "string",
"description": "Branch to commit to. Defaults to the repository's default branch."
}
},
"required": [
"message",
"content"
]
}
}
}
},
"responses": {
"201": {
"description": "File created or updated successfully.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"content": {
"$ref": "#/components/schemas/Content"
},
"commit": {
"$ref": "#/components/schemas/Commit"
}
}
}
}
}
},
"404": {
"description": "Repository not found."
},
"422": {
"description": "Validation error."
}
}
}
},
"/repos/{owner}/{repo}/collaborators": {
"get": {
"operationId": "listCollaborators",
"summary": "List collaborators",
"tags": [
"Collaborators and Deploy Keys"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Collaborator"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
]
}
},
"/repos/{owner}/{repo}/collaborators/{collaborator}": {
"put": {
"operationId": "addCollaborator",
"summary": "Add a collaborator",
"tags": [
"Collaborators and Deploy Keys"
],
"responses": {
"204": {
"description": "Collaborator has been added."
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "collaborator",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Collaborator username"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"permission": {
"type": "string",
"enum": [
"read",
"write",
"admin"
],
"default": "write"
}
}
}
}
}
}
},
"delete": {
"operationId": "removeCollaborator",
"summary": "Remove a collaborator",
"tags": [
"Collaborators and Deploy Keys"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "collaborator",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Collaborator username"
}
]
},
"get": {
"operationId": "isCollaborator",
"summary": "Check if a user is a collaborator",
"description": "Returns 204 if the user is a collaborator, 404 if not.",
"tags": [
"Collaborators and Deploy Keys"
],
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Owner of the repository"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Name of the repository"
},
{
"name": "collaborator",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username to check"
}
],
"responses": {
"204": {
"description": "User is a collaborator."
},
"404": {
"description": "User is not a collaborator."
},
"422": {
"description": "The specified user does not exist."
}
}
}
},
"/repos/{owner}/{repo}/keys": {
"get": {
"operationId": "listDeployKeys",
"summary": "List deploy keys",
"tags": [
"Collaborators and Deploy Keys"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DeployKey"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
]
},
"post": {
"operationId": "createDeployKey",
"summary": "Add a deploy key",
"tags": [
"Collaborators and Deploy Keys"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeployKey"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"key": {
"type": "string"
}
},
"required": [
"title",
"key"
]
}
}
}
}
}
},
"/repos/{owner}/{repo}/keys/{id}": {
"get": {
"operationId": "getDeployKey",
"summary": "Get a deploy key",
"tags": [
"Collaborators and Deploy Keys"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeployKey"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Key ID"
}
]
},
"delete": {
"operationId": "removeDeployKey",
"summary": "Remove a deploy key",
"tags": [
"Collaborators and Deploy Keys"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Key ID"
}
]
}
},
"/repos/{owner}/{repo}/releases": {
"get": {
"operationId": "listReleases",
"summary": "List releases",
"tags": [
"Releases"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Release"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
]
}
},
"/repos/{owner}/{repo}/hooks": {
"get": {
"operationId": "listHooks",
"summary": "List hooks",
"tags": [
"Webhooks"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Hook"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
]
},
"post": {
"operationId": "createHook",
"summary": "Create a hook",
"tags": [
"Webhooks"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Hook"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"gogs",
"slack",
"discord",
"dingtalk"
]
},
"config": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"content_type": {
"type": "string",
"enum": [
"json",
"form"
]
},
"secret": {
"type": "string"
}
},
"required": [
"url",
"content_type"
]
},
"events": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"push"
]
},
"active": {
"type": "boolean",
"default": false
}
},
"required": [
"type",
"config"
]
}
}
}
}
}
},
"/repos/{owner}/{repo}/hooks/{id}": {
"patch": {
"operationId": "editHook",
"summary": "Edit a hook",
"tags": [
"Webhooks"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Hook"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Hook ID"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"config": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"content_type": {
"type": "string"
},
"secret": {
"type": "string"
}
}
},
"events": {
"type": "array",
"items": {
"type": "string"
}
},
"active": {
"type": "boolean"
}
},
"required": [
"config"
]
}
}
}
}
},
"delete": {
"operationId": "deleteHook",
"summary": "Delete a hook",
"tags": [
"Webhooks"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Hook ID"
}
]
}
},
"/repos/{owner}/{repo}/issues": {
"get": {
"operationId": "listIssues",
"summary": "List issues for a repository",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Issue"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
],
"description": "This endpoint may also return pull requests. If an issue is a pull request, the object will include a pull_request key."
},
"post": {
"operationId": "createIssue",
"summary": "Create an issue",
"tags": [
"Issues"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Issue"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"body": {
"type": "string"
},
"assignee": {
"type": "string"
},
"milestone": {
"type": "integer"
},
"labels": {
"type": "array",
"items": {
"type": "integer"
}
},
"closed": {
"type": "boolean",
"default": false
}
},
"required": [
"title"
]
}
}
}
}
}
},
"/repos/{owner}/{repo}/issues/{index}": {
"get": {
"operationId": "getIssue",
"summary": "Get a single issue",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Issue"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "index",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Issue index"
}
]
},
"patch": {
"operationId": "editIssue",
"summary": "Edit an issue",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Issue"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "index",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Issue index"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"body": {
"type": "string"
},
"assignee": {
"type": "string"
},
"milestone": {
"type": "integer"
},
"state": {
"type": "string",
"enum": [
"open",
"closed"
]
}
}
}
}
}
}
}
},
"/repos/{owner}/{repo}/issues/{index}/comments": {
"get": {
"operationId": "listIssueComments",
"summary": "List comments on an issue",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Comment"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "index",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Issue index"
},
{
"name": "since",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Only comments updated at or after this time (RFC 3339)"
}
]
},
"post": {
"operationId": "createComment",
"summary": "Create a comment",
"tags": [
"Issues"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Comment"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "index",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Issue index"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"body": {
"type": "string"
}
},
"required": [
"body"
]
}
}
}
}
}
},
"/repos/{owner}/{repo}/issues/comments": {
"get": {
"operationId": "listRepoComments",
"summary": "List comments in a repository",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Comment"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "since",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Only comments updated at or after this time (RFC 3339)"
}
]
}
},
"/repos/{owner}/{repo}/issues/{index}/comments/{id}": {
"patch": {
"operationId": "editComment",
"summary": "Edit a comment",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Comment"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "index",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Issue index"
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Comment ID"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"body": {
"type": "string"
}
},
"required": [
"body"
]
}
}
}
}
},
"delete": {
"operationId": "deleteComment",
"summary": "Delete a comment",
"tags": [
"Issues"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "index",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Issue index"
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Comment ID"
}
]
}
},
"/repos/{owner}/{repo}/labels": {
"get": {
"operationId": "listLabels",
"summary": "List all labels for a repository",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Label"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
]
},
"post": {
"operationId": "createLabel",
"summary": "Create a label",
"tags": [
"Issues"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Label"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"color": {
"type": "string",
"description": "Hex color code with leading #"
}
},
"required": [
"name",
"color"
]
}
}
}
}
}
},
"/repos/{owner}/{repo}/labels/{id}": {
"get": {
"operationId": "getLabel",
"summary": "Get a single label",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Label"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Label ID"
}
]
},
"patch": {
"operationId": "updateLabel",
"summary": "Update a label",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Label"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Label ID"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"color": {
"type": "string"
}
}
}
}
}
}
},
"delete": {
"operationId": "deleteLabel",
"summary": "Delete a label",
"tags": [
"Issues"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Label ID"
}
]
}
},
"/repos/{owner}/{repo}/issues/{index}/labels": {
"get": {
"operationId": "listIssueLabels",
"summary": "List labels on an issue",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Label"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "index",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Issue index"
}
]
},
"post": {
"operationId": "addIssueLabels",
"summary": "Add labels to an issue",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Label"
}
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "index",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Issue index"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"labels": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"required": [
"labels"
]
}
}
}
}
},
"put": {
"operationId": "replaceIssueLabels",
"summary": "Replace all labels for an issue",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Label"
}
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "index",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Issue index"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"labels": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"required": [
"labels"
]
}
}
}
}
},
"delete": {
"operationId": "removeAllIssueLabels",
"summary": "Remove all labels from an issue",
"tags": [
"Issues"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "index",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Issue index"
}
]
}
},
"/repos/{owner}/{repo}/issues/{index}/labels/{id}": {
"delete": {
"operationId": "removeIssueLabel",
"summary": "Remove a label from an issue",
"tags": [
"Issues"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "index",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Issue index"
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Label ID"
}
]
}
},
"/repos/{owner}/{repo}/milestones": {
"get": {
"operationId": "listMilestones",
"summary": "List milestones for a repository",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Milestone"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
]
},
"post": {
"operationId": "createMilestone",
"summary": "Create a milestone",
"tags": [
"Issues"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Milestone"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"due_on": {
"type": "string",
"format": "date-time"
}
},
"required": [
"title"
]
}
}
}
}
}
},
"/repos/{owner}/{repo}/milestones/{id}": {
"get": {
"operationId": "getMilestone",
"summary": "Get a single milestone",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Milestone"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Milestone ID"
}
]
},
"patch": {
"operationId": "editMilestone",
"summary": "Edit a milestone",
"tags": [
"Issues"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Milestone"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Milestone ID"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"due_on": {
"type": "string",
"format": "date-time"
},
"state": {
"type": "string",
"enum": [
"open",
"closed"
]
}
}
}
}
}
}
},
"delete": {
"operationId": "deleteMilestone",
"summary": "Delete a milestone",
"tags": [
"Issues"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Milestone ID"
}
],
"description": "Only users with write access to a repository can delete a milestone."
}
},
"/users/search": {
"get": {
"operationId": "searchUsers",
"summary": "Search for users",
"tags": [
"Users"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/User"
}
},
"ok": {
"type": "boolean"
}
}
}
}
}
}
},
"parameters": [
{
"name": "q",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Keyword of username"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 10
},
"description": "Max results"
}
],
"description": "Requests without authentication will return an empty email field for anti-spam purposes."
}
},
"/users/{username}": {
"get": {
"operationId": "getUser",
"summary": "Get a single user",
"tags": [
"Users"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
]
}
},
"/user": {
"get": {
"operationId": "getAuthenticatedUser",
"summary": "Get the authenticated user",
"tags": [
"Users"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
}
}
}
},
"/users/{username}/tokens": {
"get": {
"operationId": "listAccessTokens",
"summary": "List access tokens",
"tags": [
"Users"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AccessToken"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
],
"security": [
{
"BasicAuth": []
}
],
"description": "Requires basic authentication."
},
"post": {
"operationId": "createAccessToken",
"summary": "Create an access token",
"tags": [
"Users"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccessToken"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
},
"required": [
"name"
]
}
}
}
},
"security": [
{
"BasicAuth": []
}
],
"description": "Requires basic authentication."
}
},
"/user/emails": {
"get": {
"operationId": "listEmails",
"summary": "List email addresses",
"tags": [
"Users"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Email"
}
}
}
}
}
}
},
"post": {
"operationId": "addEmails",
"summary": "Add email addresses",
"tags": [
"Users"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Email"
}
}
}
}
},
"422": {
"description": "Validation error."
}
},
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string",
"format": "email"
}
}
},
"required": [
"emails"
]
}
}
}
}
},
"delete": {
"operationId": "deleteEmails",
"summary": "Delete email addresses",
"tags": [
"Users"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
}
},
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string",
"format": "email"
}
}
},
"required": [
"emails"
]
}
}
}
}
}
},
"/users/{username}/followers": {
"get": {
"operationId": "listUserFollowers",
"summary": "List followers of a user",
"tags": [
"Users"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/User"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
]
}
},
"/user/followers": {
"get": {
"operationId": "listMyFollowers",
"summary": "List your followers",
"tags": [
"Users"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/User"
}
}
}
}
}
}
}
},
"/users/{username}/following": {
"get": {
"operationId": "listUserFollowing",
"summary": "List users followed by a user",
"tags": [
"Users"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/User"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
]
}
},
"/user/following": {
"get": {
"operationId": "listMyFollowing",
"summary": "List who you are following",
"tags": [
"Users"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/User"
}
}
}
}
}
}
}
},
"/user/following/{target}": {
"get": {
"operationId": "checkFollowing",
"summary": "Check if you follow a user",
"tags": [
"Users"
],
"responses": {
"204": {
"description": "The user is being followed."
},
"404": {
"description": "Not following"
}
},
"parameters": [
{
"name": "target",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Target username"
}
]
},
"put": {
"operationId": "followUser",
"summary": "Follow a user",
"tags": [
"Users"
],
"responses": {
"204": {
"description": "Successfully followed the user."
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "target",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Target username"
}
]
},
"delete": {
"operationId": "unfollowUser",
"summary": "Unfollow a user",
"tags": [
"Users"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "target",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Target username"
}
]
}
},
"/users/{username}/following/{target}": {
"get": {
"operationId": "checkUserFollowing",
"summary": "Check if a user follows another",
"tags": [
"Users"
],
"responses": {
"204": {
"description": "The user is being followed."
},
"404": {
"description": "Not following"
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
},
{
"name": "target",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Target username"
}
]
}
},
"/users/{username}/keys": {
"get": {
"operationId": "listUserKeys",
"summary": "List public keys for a user",
"tags": [
"Users"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PublicKey"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
]
}
},
"/user/keys/{id}": {
"get": {
"operationId": "getPublicKey",
"summary": "Get a single public key",
"tags": [
"Users"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PublicKey"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Key ID"
}
]
},
"delete": {
"operationId": "deletePublicKey",
"summary": "Delete a public key",
"tags": [
"Users"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Key ID"
}
]
}
},
"/user/keys": {
"get": {
"operationId": "listMyKeys",
"summary": "List your public keys",
"tags": [
"Users"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PublicKey"
}
}
}
}
}
}
},
"post": {
"operationId": "createPublicKey",
"summary": "Create a public key",
"tags": [
"Users"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PublicKey"
}
}
}
},
"422": {
"description": "Validation error."
}
},
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"key": {
"type": "string"
}
},
"required": [
"title",
"key"
]
}
}
}
}
}
},
"/user/orgs": {
"get": {
"operationId": "listMyOrgs",
"summary": "List your organizations",
"tags": [
"Organizations"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Organization"
}
}
}
}
}
}
},
"post": {
"operationId": "createMyOrg",
"summary": "Create an organization",
"description": "Creates an organization for the authenticated user.",
"tags": [
"Organizations"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"username": {
"type": "string"
},
"full_name": {
"type": "string"
},
"description": {
"type": "string"
},
"website": {
"type": "string"
},
"location": {
"type": "string"
}
},
"required": [
"username"
]
}
}
}
},
"responses": {
"201": {
"description": "Organization created successfully.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Organization"
}
}
}
},
"422": {
"description": "Organization name already exists or is not allowed."
}
}
}
},
"/users/{username}/orgs": {
"get": {
"operationId": "listUserOrgs",
"summary": "List user organizations",
"tags": [
"Organizations"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Organization"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
]
}
},
"/orgs/{orgname}": {
"get": {
"operationId": "getOrg",
"summary": "Get an organization",
"tags": [
"Organizations"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Organization"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "orgname",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Organization name"
}
]
},
"patch": {
"operationId": "editOrg",
"summary": "Edit an organization",
"tags": [
"Organizations"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Organization"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "orgname",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Organization name"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"full_name": {
"type": "string"
},
"description": {
"type": "string"
},
"website": {
"type": "string"
},
"location": {
"type": "string"
}
}
}
}
}
}
}
},
"/orgs/{orgname}/teams": {
"get": {
"operationId": "listOrgTeams",
"summary": "List teams of an organization",
"tags": [
"Organizations"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Team"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "orgname",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Organization name"
}
]
}
},
"/admin/users": {
"post": {
"operationId": "adminCreateUser",
"summary": "Create a new user",
"tags": [
"Administration"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
},
"422": {
"description": "Validation error."
}
},
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"source_id": {
"type": "integer"
},
"login_name": {
"type": "string"
},
"username": {
"type": "string"
},
"full_name": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
},
"password": {
"type": "string"
},
"send_notify": {
"type": "boolean"
}
},
"required": [
"username",
"email"
]
}
}
}
},
"description": "Requires the authenticated user to be a site administrator."
}
},
"/admin/users/{username}": {
"patch": {
"operationId": "adminEditUser",
"summary": "Edit an existing user",
"tags": [
"Administration"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"source_id": {
"type": "integer"
},
"login_name": {
"type": "string"
},
"full_name": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
},
"password": {
"type": "string"
},
"website": {
"type": "string"
},
"location": {
"type": "string"
},
"active": {
"type": "boolean"
},
"admin": {
"type": "boolean"
},
"allow_git_hook": {
"type": "boolean"
},
"allow_import_local": {
"type": "boolean"
},
"max_repo_creation": {
"type": "integer",
"description": "Maximum number of repositories the user can create. -1 means no limit."
}
},
"required": [
"email"
]
}
}
}
},
"description": "Requires the authenticated user to be a site administrator."
},
"delete": {
"operationId": "adminDeleteUser",
"summary": "Delete a user",
"tags": [
"Administration"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
],
"description": "Requires the authenticated user to be a site administrator."
}
},
"/admin/users/{username}/keys": {
"post": {
"operationId": "adminCreateUserKey",
"summary": "Create a public key for a user",
"tags": [
"Administration"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PublicKey"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"key": {
"type": "string"
}
},
"required": [
"title",
"key"
]
}
}
}
},
"description": "Requires the authenticated user to be a site administrator."
}
},
"/admin/users/{username}/repos": {
"post": {
"operationId": "adminCreateRepo",
"summary": "Create a repository for a user",
"tags": [
"Administration"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Repository"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"private": {
"type": "boolean",
"default": false
},
"auto_init": {
"type": "boolean",
"default": false
},
"gitignores": {
"type": "string"
},
"license": {
"type": "string"
},
"readme": {
"type": "string",
"default": "Default"
}
},
"required": [
"name"
]
}
}
}
},
"description": "Requires the authenticated user to be a site administrator."
}
},
"/admin/users/{username}/orgs": {
"post": {
"operationId": "adminCreateOrg",
"summary": "Create an organization",
"tags": [
"Administration"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Organization"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"username": {
"type": "string"
},
"full_name": {
"type": "string"
},
"description": {
"type": "string"
},
"website": {
"type": "string"
},
"location": {
"type": "string"
}
},
"required": [
"username"
]
}
}
}
},
"description": "Requires the authenticated user to be a site administrator."
}
},
"/admin/orgs/{orgname}/teams": {
"post": {
"operationId": "adminCreateTeam",
"summary": "Create a team",
"tags": [
"Administration"
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Team"
}
}
}
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "orgname",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Organization name"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"permission": {
"type": "string",
"enum": [
"read",
"write",
"admin"
],
"default": "read"
}
},
"required": [
"name"
]
}
}
}
},
"description": "Requires the authenticated user to be a site administrator."
}
},
"/admin/teams/{teamid}/members": {
"get": {
"operationId": "adminListTeamMembers",
"summary": "List all members of a team",
"tags": [
"Administration"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/User"
}
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "teamid",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Team ID"
}
],
"description": "Requires the authenticated user to be a site administrator."
}
},
"/admin/teams/{teamid}/members/{username}": {
"put": {
"operationId": "adminAddTeamMember",
"summary": "Add team membership",
"tags": [
"Administration"
],
"responses": {
"204": {
"description": "Team membership has been updated."
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "teamid",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Team ID"
},
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
],
"description": "Requires the authenticated user to be a site administrator."
},
"delete": {
"operationId": "adminRemoveTeamMember",
"summary": "Remove team membership",
"tags": [
"Administration"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "teamid",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Team ID"
},
{
"name": "username",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Username"
}
],
"description": "Requires the authenticated user to be a site administrator."
}
},
"/admin/teams/{teamid}/repos/{reponame}": {
"put": {
"operationId": "adminAddTeamRepo",
"summary": "Add or update team repository",
"tags": [
"Administration"
],
"responses": {
"204": {
"description": "Team repository has been updated."
},
"404": {
"description": "Resource not found."
},
"422": {
"description": "Validation error."
}
},
"parameters": [
{
"name": "teamid",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Team ID"
},
{
"name": "reponame",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
],
"description": "Requires the authenticated user to be a site administrator."
},
"delete": {
"operationId": "adminRemoveTeamRepo",
"summary": "Remove team repository",
"tags": [
"Administration"
],
"responses": {
"204": {
"description": "The resource has been successfully deleted."
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "teamid",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Team ID"
},
{
"name": "reponame",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
}
],
"description": "Requires the authenticated user to be a site administrator."
}
},
"/markdown": {
"post": {
"operationId": "renderMarkdown",
"summary": "Render a Markdown document",
"tags": [
"Miscellaneous"
],
"responses": {
"200": {
"description": "Rendered HTML",
"content": {
"text/html": {
"schema": {
"type": "string"
}
}
}
},
"422": {
"description": "Validation error."
}
},
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"context": {
"type": "string",
"description": "Repository context URL"
}
},
"required": [
"text"
]
}
}
}
}
}
},
"/markdown/raw": {
"post": {
"operationId": "renderMarkdownRaw",
"summary": "Render a Markdown document in raw mode",
"tags": [
"Miscellaneous"
],
"responses": {
"200": {
"description": "Rendered HTML",
"content": {
"text/html": {
"schema": {
"type": "string"
}
}
}
},
"422": {
"description": "Validation error."
}
},
"requestBody": {
"required": true,
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
},
"description": "Takes a Markdown document as plaintext and renders it without a repository context."
}
},
"/repos/{owner}/{repo}/git/trees/{sha}": {
"get": {
"operationId": "getTree",
"summary": "Get a tree",
"tags": [
"Miscellaneous"
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GitTree"
}
}
}
},
"404": {
"description": "Resource not found."
}
},
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository owner"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Repository name"
},
{
"name": "sha",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Tree SHA"
}
]
}
},
"/repos/{owner}/{repo}/forks": {
"get": {
"operationId": "listForks",
"summary": "List forks",
"tags": [
"Repositories"
],
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Owner of the repository"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Name of the repository"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Repository"
}
}
}
}
},
"404": {
"description": "Repository not found."
}
}
}
},
"/repos/{owner}/{repo}/tags": {
"get": {
"operationId": "listTags",
"summary": "List tags",
"tags": [
"Repositories"
],
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Owner of the repository"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Name of the repository"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Tag"
}
}
}
}
},
"404": {
"description": "Repository not found."
}
}
}
},
"/repos/{owner}/{repo}/commits": {
"get": {
"operationId": "getAllCommits",
"summary": "List all commits",
"description": "Returns commits from the HEAD of the default branch.",
"tags": [
"Repositories"
],
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Owner of the repository"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Name of the repository"
},
{
"name": "pageSize",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 30
},
"description": "Number of commits to return"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Commit"
}
}
}
}
},
"404": {
"description": "Repository not found."
}
}
}
},
"/repos/{owner}/{repo}/wiki": {
"patch": {
"operationId": "editWiki",
"summary": "Edit wiki settings",
"tags": [
"Repositories"
],
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Owner of the repository"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Name of the repository"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"enable_wiki": {
"type": "boolean",
"description": "Whether to enable the wiki"
},
"allow_public_wiki": {
"type": "boolean",
"description": "Whether the wiki is publicly accessible"
},
"enable_external_wiki": {
"type": "boolean",
"description": "Whether to use an external wiki"
},
"external_wiki_url": {
"type": "string",
"description": "URL of the external wiki"
}
}
}
}
}
},
"responses": {
"204": {
"description": "Wiki settings updated successfully."
},
"404": {
"description": "Repository not found."
},
"422": {
"description": "Validation error."
}
}
}
},
"/repos/{owner}/{repo}/editorconfig/{filename}": {
"get": {
"operationId": "getEditorconfig",
"summary": "Get editorconfig definition",
"description": "Returns the editorconfig definition for the given filename in the repository.",
"tags": [
"Repositories"
],
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Owner of the repository"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Name of the repository"
},
{
"name": "filename",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Filename to get the editorconfig definition for"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EditorConfigDefinition"
}
}
}
},
"404": {
"description": "No editorconfig file exists or no matching definition for the filename."
}
}
}
},
"/repos/{owner}/{repo}/git/blobs/{sha}": {
"get": {
"operationId": "getGitBlob",
"summary": "Get a git blob",
"description": "Returns the content of a git blob object, base64 encoded.",
"tags": [
"Miscellaneous"
],
"parameters": [
{
"name": "owner",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Owner of the repository"
},
{
"name": "repo",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Name of the repository"
},
{
"name": "sha",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "SHA of the git blob"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GitBlob"
}
}
}
},
"404": {
"description": "Blob not found."
}
}
}
},
"/user/issues": {
"get": {
"operationId": "listUserIssues",
"summary": "List issues assigned to the authenticated user",
"description": "Lists issues across all repositories assigned to the authenticated user. Also available at `GET /issues`.",
"tags": [
"Issues"
],
"parameters": [
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "Page number"
},
{
"name": "state",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"open",
"closed"
],
"default": "open"
},
"description": "Filter by state"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Issue"
}
}
}
}
}
}
}
}
},
"components": {
"securitySchemes": {
"BasicAuth": {
"type": "http",
"scheme": "basic"
},
"AccessToken": {
"type": "apiKey",
"in": "header",
"name": "Authorization",
"description": "Personal access token. Use format: token {YOUR_ACCESS_TOKEN}"
},
"TokenQuery": {
"type": "apiKey",
"in": "query",
"name": "token",
"description": "Access token as query parameter"
}
},
"schemas": {
"User": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"username": {
"type": "string"
},
"login": {
"type": "string",
"description": "Alias of username for GitHub API compatibility"
},
"full_name": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
},
"avatar_url": {
"type": "string"
}
}
},
"Collaborator": {
"description": "A repository collaborator with permission information",
"allOf": [
{
"$ref": "#/components/schemas/User"
},
{
"type": "object",
"properties": {
"permissions": {
"type": "object",
"properties": {
"admin": {
"type": "boolean"
},
"push": {
"type": "boolean"
},
"pull": {
"type": "boolean"
}
}
}
}
}
]
},
"Repository": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"owner": {
"$ref": "#/components/schemas/User"
},
"name": {
"type": "string"
},
"full_name": {
"type": "string"
},
"description": {
"type": "string"
},
"private": {
"type": "boolean"
},
"fork": {
"type": "boolean"
},
"parent": {
"$ref": "#/components/schemas/Repository",
"nullable": true,
"description": "Present when fork is true"
},
"empty": {
"type": "boolean"
},
"mirror": {
"type": "boolean"
},
"size": {
"type": "integer"
},
"html_url": {
"type": "string"
},
"ssh_url": {
"type": "string"
},
"clone_url": {
"type": "string"
},
"website": {
"type": "string"
},
"stars_count": {
"type": "integer"
},
"forks_count": {
"type": "integer"
},
"watchers_count": {
"type": "integer"
},
"open_issues_count": {
"type": "integer"
},
"default_branch": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"permissions": {
"type": "object",
"properties": {
"admin": {
"type": "boolean"
},
"push": {
"type": "boolean"
},
"pull": {
"type": "boolean"
}
}
}
}
},
"Branch": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"commit": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"message": {
"type": "string"
},
"url": {
"type": "string"
},
"author": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"committer": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"timestamp": {
"type": "string",
"format": "date-time"
}
}
}
}
},
"Commit": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"sha": {
"type": "string"
},
"html_url": {
"type": "string"
},
"commit": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"message": {
"type": "string"
},
"author": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"date": {
"type": "string"
}
}
},
"committer": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"date": {
"type": "string"
}
}
},
"tree": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"sha": {
"type": "string"
}
}
}
}
},
"author": {
"$ref": "#/components/schemas/User"
},
"committer": {
"$ref": "#/components/schemas/User"
},
"parents": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"sha": {
"type": "string"
}
}
}
}
}
},
"Issue": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"number": {
"type": "integer"
},
"state": {
"type": "string",
"enum": [
"open",
"closed"
]
},
"title": {
"type": "string"
},
"body": {
"type": "string"
},
"user": {
"$ref": "#/components/schemas/User"
},
"labels": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Label"
}
},
"assignee": {
"$ref": "#/components/schemas/User",
"nullable": true
},
"milestone": {
"$ref": "#/components/schemas/Milestone",
"nullable": true
},
"comments": {
"type": "integer"
},
"pull_request": {
"type": "object",
"nullable": true
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"Comment": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"html_url": {
"type": "string"
},
"user": {
"$ref": "#/components/schemas/User"
},
"body": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"Label": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"color": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"Milestone": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"state": {
"type": "string",
"enum": [
"open",
"closed"
]
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"open_issues": {
"type": "integer"
},
"closed_issues": {
"type": "integer"
},
"closed_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"due_on": {
"type": "string",
"format": "date-time",
"nullable": true
}
}
},
"Hook": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"type": {
"type": "string",
"enum": [
"gogs",
"slack",
"discord",
"dingtalk"
]
},
"events": {
"type": "array",
"items": {
"type": "string"
}
},
"active": {
"type": "boolean"
},
"config": {
"type": "object"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
},
"Release": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"tag_name": {
"type": "string"
},
"target_commitish": {
"type": "string"
},
"name": {
"type": "string"
},
"body": {
"type": "string"
},
"draft": {
"type": "boolean"
},
"prerelease": {
"type": "boolean"
},
"author": {
"$ref": "#/components/schemas/User"
},
"created_at": {
"type": "string",
"format": "date-time"
}
}
},
"DeployKey": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"key": {
"type": "string"
},
"url": {
"type": "string"
},
"title": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"read_only": {
"type": "boolean"
}
}
},
"PublicKey": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"key": {
"type": "string"
},
"url": {
"type": "string"
},
"title": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
}
}
},
"AccessToken": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"sha1": {
"type": "string"
}
}
},
"Email": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email"
},
"verified": {
"type": "boolean"
},
"primary": {
"type": "boolean"
}
}
},
"Organization": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"username": {
"type": "string"
},
"full_name": {
"type": "string"
},
"avatar_url": {
"type": "string"
},
"description": {
"type": "string"
},
"website": {
"type": "string"
},
"location": {
"type": "string"
}
}
},
"Team": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"permission": {
"type": "string",
"enum": [
"read",
"write",
"admin",
"owner"
]
}
}
},
"Content": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"file",
"dir",
"symlink",
"submodule"
]
},
"encoding": {
"type": "string"
},
"size": {
"type": "integer"
},
"name": {
"type": "string"
},
"path": {
"type": "string"
},
"content": {
"type": "string"
},
"sha": {
"type": "string"
},
"url": {
"type": "string"
},
"git_url": {
"type": "string"
},
"html_url": {
"type": "string"
},
"download_url": {
"type": "string"
},
"_links": {
"type": "object",
"properties": {
"git": {
"type": "string"
},
"self": {
"type": "string"
},
"html": {
"type": "string"
}
}
}
}
},
"GitTree": {
"type": "object",
"properties": {
"sha": {
"type": "string"
},
"url": {
"type": "string"
},
"tree": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"mode": {
"type": "string"
},
"type": {
"type": "string"
},
"size": {
"type": "integer"
},
"sha": {
"type": "string"
},
"url": {
"type": "string"
}
}
}
}
}
},
"Error": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"GitBlob": {
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "Base64-encoded blob content"
},
"encoding": {
"type": "string",
"example": "base64"
},
"url": {
"type": "string"
},
"sha": {
"type": "string"
},
"size": {
"type": "integer"
}
}
},
"Tag": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"commit": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"message": {
"type": "string"
},
"url": {
"type": "string"
},
"author": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
},
"username": {
"type": "string"
}
}
},
"committer": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
},
"username": {
"type": "string"
}
}
},
"timestamp": {
"type": "string",
"format": "date-time"
}
}
}
}
},
"EditorConfigDefinition": {
"type": "object",
"properties": {
"charset": {
"type": "string"
},
"indent_style": {
"type": "string"
},
"indent_size": {
"type": "string"
},
"end_of_line": {
"type": "string"
}
}
}
}
}
}