1
1
mirror of https://github.com/go-gitea/gitea synced 2025-07-22 18:28:37 +00:00

Add API to manage issue dependencies (#17935)

Adds API endpoints to manage issue/PR dependencies
* `GET /repos/{owner}/{repo}/issues/{index}/blocks` List issues that are
blocked by this issue
* `POST /repos/{owner}/{repo}/issues/{index}/blocks` Block the issue
given in the body by the issue in path
* `DELETE /repos/{owner}/{repo}/issues/{index}/blocks` Unblock the issue
given in the body by the issue in path
* `GET /repos/{owner}/{repo}/issues/{index}/dependencies` List an
issue's dependencies
* `POST /repos/{owner}/{repo}/issues/{index}/dependencies` Create a new
issue dependencies
* `DELETE /repos/{owner}/{repo}/issues/{index}/dependencies` Remove an
issue dependency

Closes https://github.com/go-gitea/gitea/issues/15393
Closes #22115

Co-authored-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
qwerty287
2023-03-28 19:23:25 +02:00
committed by GitHub
parent 85e8c837b8
commit 3cab9c6b0c
12 changed files with 1074 additions and 34 deletions

View File

@@ -6256,6 +6256,151 @@
}
}
},
"/repos/{owner}/{repo}/issues/{index}/blocks": {
"get": {
"produces": [
"application/json"
],
"tags": [
"issue"
],
"summary": "List issues that are blocked by this issue",
"operationId": "issueListBlocks",
"parameters": [
{
"type": "string",
"description": "owner of the repo",
"name": "owner",
"in": "path",
"required": true
},
{
"type": "string",
"description": "name of the repo",
"name": "repo",
"in": "path",
"required": true
},
{
"type": "string",
"description": "index of the issue",
"name": "index",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "page number of results to return (1-based)",
"name": "page",
"in": "query"
},
{
"type": "integer",
"description": "page size of results",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"$ref": "#/responses/IssueList"
}
}
},
"post": {
"produces": [
"application/json"
],
"tags": [
"issue"
],
"summary": "Block the issue given in the body by the issue in path",
"operationId": "issueCreateIssueBlocking",
"parameters": [
{
"type": "string",
"description": "owner of the repo",
"name": "owner",
"in": "path",
"required": true
},
{
"type": "string",
"description": "name of the repo",
"name": "repo",
"in": "path",
"required": true
},
{
"type": "string",
"description": "index of the issue",
"name": "index",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/IssueMeta"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/Issue"
},
"404": {
"description": "the issue does not exist"
}
}
},
"delete": {
"produces": [
"application/json"
],
"tags": [
"issue"
],
"summary": "Unblock the issue given in the body by the issue in path",
"operationId": "issueRemoveIssueBlocking",
"parameters": [
{
"type": "string",
"description": "owner of the repo",
"name": "owner",
"in": "path",
"required": true
},
{
"type": "string",
"description": "name of the repo",
"name": "repo",
"in": "path",
"required": true
},
{
"type": "string",
"description": "index of the issue",
"name": "index",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/IssueMeta"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Issue"
}
}
}
},
"/repos/{owner}/{repo}/issues/{index}/comments": {
"get": {
"produces": [
@@ -6538,6 +6683,151 @@
}
}
},
"/repos/{owner}/{repo}/issues/{index}/dependencies": {
"get": {
"produces": [
"application/json"
],
"tags": [
"issue"
],
"summary": "List an issue's dependencies, i.e all issues that block this issue.",
"operationId": "issueListIssueDependencies",
"parameters": [
{
"type": "string",
"description": "owner of the repo",
"name": "owner",
"in": "path",
"required": true
},
{
"type": "string",
"description": "name of the repo",
"name": "repo",
"in": "path",
"required": true
},
{
"type": "string",
"description": "index of the issue",
"name": "index",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "page number of results to return (1-based)",
"name": "page",
"in": "query"
},
{
"type": "integer",
"description": "page size of results",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"$ref": "#/responses/IssueList"
}
}
},
"post": {
"produces": [
"application/json"
],
"tags": [
"issue"
],
"summary": "Make the issue in the url depend on the issue in the form.",
"operationId": "issueCreateIssueDependencies",
"parameters": [
{
"type": "string",
"description": "owner of the repo",
"name": "owner",
"in": "path",
"required": true
},
{
"type": "string",
"description": "name of the repo",
"name": "repo",
"in": "path",
"required": true
},
{
"type": "string",
"description": "index of the issue",
"name": "index",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/IssueMeta"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/Issue"
},
"404": {
"description": "the issue does not exist"
}
}
},
"delete": {
"produces": [
"application/json"
],
"tags": [
"issue"
],
"summary": "Remove an issue dependency",
"operationId": "issueRemoveIssueDependencies",
"parameters": [
{
"type": "string",
"description": "owner of the repo",
"name": "owner",
"in": "path",
"required": true
},
{
"type": "string",
"description": "name of the repo",
"name": "repo",
"in": "path",
"required": true
},
{
"type": "string",
"description": "index of the issue",
"name": "index",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/IssueMeta"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Issue"
}
}
}
},
"/repos/{owner}/{repo}/issues/{index}/labels": {
"get": {
"produces": [
@@ -17932,6 +18222,26 @@
},
"x-go-package": "code.gitea.io/gitea/modules/structs"
},
"IssueMeta": {
"description": "IssueMeta basic issue information",
"type": "object",
"properties": {
"index": {
"type": "integer",
"format": "int64",
"x-go-name": "Index"
},
"owner": {
"type": "string",
"x-go-name": "Owner"
},
"repo": {
"type": "string",
"x-go-name": "Name"
}
},
"x-go-package": "code.gitea.io/gitea/modules/structs"
},
"IssueTemplate": {
"description": "IssueTemplate represents an issue template for a repository",
"type": "object",