diff options
author | Cyborus <cyborus@noreply.codeberg.org> | 2024-10-23 20:53:11 +0200 |
---|---|---|
committer | Cyborus <cyborus@noreply.codeberg.org> | 2024-10-23 20:53:11 +0200 |
commit | 2539731dd8197055ce6176ccbc4a1bf77e7bc79e (patch) | |
tree | 0de68f13331a2a2a27f9b634c1f6a9c400f9d06f /swagger.v1.json | |
parent | Merge pull request 'Clippy Fixes' (#74) from Pi-Cla/forgejo-api:clippy into main (diff) | |
parent | ci: update ci forgejo to 9.0 (diff) | |
download | forgejo-api-main.tar.xz forgejo-api-main.zip |
Reviewed-on: https://codeberg.org/Cyborus/forgejo-api/pulls/75
Diffstat (limited to 'swagger.v1.json')
-rw-r--r-- | swagger.v1.json | 1545 |
1 files changed, 1508 insertions, 37 deletions
diff --git a/swagger.v1.json b/swagger.v1.json index 4fe69c0..13b13ad 100644 --- a/swagger.v1.json +++ b/swagger.v1.json @@ -7,13 +7,39 @@ "description": "This documentation describes the Forgejo API.", "title": "Forgejo API", "license": { - "name": "MIT", + "name": "This file is distributed under the MIT license for the purpose of interoperability", "url": "http://opensource.org/licenses/MIT" }, - "version": "8.0.0-dev-1514-f9ad844fd6+gitea-1.22.0" + "version": "9.0.0-dev-1111-0496e72d15+gitea-1.22.0" }, "basePath": "/api/v1", "paths": { + "/activitypub/actor": { + "get": { + "produces": ["application/json"], + "tags": ["activitypub"], + "summary": "Returns the instance's Actor", + "operationId": "activitypubInstanceActor", + "responses": { + "200": { + "$ref": "#/responses/ActivityPub" + } + } + } + }, + "/activitypub/actor/inbox": { + "post": { + "produces": ["application/json"], + "tags": ["activitypub"], + "summary": "Send to the inbox", + "operationId": "activitypubInstanceActorInbox", + "responses": { + "204": { + "$ref": "#/responses/empty" + } + } + } + }, "/activitypub/repository-id/{repository-id}": { "get": { "produces": ["application/json"], @@ -392,6 +418,457 @@ } } }, + "/admin/quota/groups": { + "get": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "List the available quota groups", + "operationId": "adminListQuotaGroups", + "responses": { + "200": { + "$ref": "#/responses/QuotaGroupList" + }, + "403": { + "$ref": "#/responses/forbidden" + } + } + }, + "post": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "Create a new quota group", + "operationId": "adminCreateQuotaGroup", + "parameters": [ + { + "description": "Definition of the quota group", + "name": "group", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateQuotaGroupOptions" + } + } + ], + "responses": { + "201": { + "$ref": "#/responses/QuotaGroup" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "409": { + "$ref": "#/responses/error" + }, + "422": { + "$ref": "#/responses/validationError" + } + } + } + }, + "/admin/quota/groups/{quotagroup}": { + "get": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "Get information about the quota group", + "operationId": "adminGetQuotaGroup", + "parameters": [ + { + "type": "string", + "description": "quota group to query", + "name": "quotagroup", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/responses/QuotaGroup" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + } + } + }, + "delete": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "Delete a quota group", + "operationId": "adminDeleteQuotaGroup", + "parameters": [ + { + "type": "string", + "description": "quota group to delete", + "name": "quotagroup", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "$ref": "#/responses/empty" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + } + } + } + }, + "/admin/quota/groups/{quotagroup}/rules/{quotarule}": { + "put": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "Adds a rule to a quota group", + "operationId": "adminAddRuleToQuotaGroup", + "parameters": [ + { + "type": "string", + "description": "quota group to add a rule to", + "name": "quotagroup", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "the name of the quota rule to add to the group", + "name": "quotarule", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "$ref": "#/responses/empty" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + }, + "409": { + "$ref": "#/responses/error" + }, + "422": { + "$ref": "#/responses/validationError" + } + } + }, + "delete": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "Removes a rule from a quota group", + "operationId": "adminRemoveRuleFromQuotaGroup", + "parameters": [ + { + "type": "string", + "description": "quota group to remove a rule from", + "name": "quotagroup", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "the name of the quota rule to remove from the group", + "name": "quotarule", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "$ref": "#/responses/empty" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + } + } + } + }, + "/admin/quota/groups/{quotagroup}/users": { + "get": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "List users in a quota group", + "operationId": "adminListUsersInQuotaGroup", + "parameters": [ + { + "type": "string", + "description": "quota group to list members of", + "name": "quotagroup", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/responses/UserList" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + } + } + } + }, + "/admin/quota/groups/{quotagroup}/users/{username}": { + "put": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "Add a user to a quota group", + "operationId": "adminAddUserToQuotaGroup", + "parameters": [ + { + "type": "string", + "description": "quota group to add the user to", + "name": "quotagroup", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "username of the user to add to the quota group", + "name": "username", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "$ref": "#/responses/empty" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + }, + "409": { + "$ref": "#/responses/error" + }, + "422": { + "$ref": "#/responses/validationError" + } + } + }, + "delete": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "Remove a user from a quota group", + "operationId": "adminRemoveUserFromQuotaGroup", + "parameters": [ + { + "type": "string", + "description": "quota group to remove a user from", + "name": "quotagroup", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "username of the user to remove from the quota group", + "name": "username", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "$ref": "#/responses/empty" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + } + } + } + }, + "/admin/quota/rules": { + "get": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "List the available quota rules", + "operationId": "adminListQuotaRules", + "responses": { + "200": { + "$ref": "#/responses/QuotaRuleInfoList" + }, + "403": { + "$ref": "#/responses/forbidden" + } + } + }, + "post": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "Create a new quota rule", + "operationId": "adminCreateQuotaRule", + "parameters": [ + { + "description": "Definition of the quota rule", + "name": "rule", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateQuotaRuleOptions" + } + } + ], + "responses": { + "201": { + "$ref": "#/responses/QuotaRuleInfo" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "409": { + "$ref": "#/responses/error" + }, + "422": { + "$ref": "#/responses/validationError" + } + } + } + }, + "/admin/quota/rules/{quotarule}": { + "get": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "Get information about a quota rule", + "operationId": "adminGetQuotaRule", + "parameters": [ + { + "type": "string", + "description": "quota rule to query", + "name": "quotarule", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/responses/QuotaRuleInfo" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + } + } + }, + "delete": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "Deletes a quota rule", + "operationId": "adminDeleteQuotaRule", + "parameters": [ + { + "type": "string", + "description": "quota rule to delete", + "name": "quotarule", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "$ref": "#/responses/empty" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + } + } + }, + "patch": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "Change an existing quota rule", + "operationId": "adminEditQuotaRule", + "parameters": [ + { + "type": "string", + "description": "Quota rule to change", + "name": "quotarule", + "in": "path", + "required": true + }, + { + "name": "rule", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/EditQuotaRuleOptions" + } + } + ], + "responses": { + "200": { + "$ref": "#/responses/QuotaRuleInfo" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + }, + "422": { + "$ref": "#/responses/validationError" + } + } + } + }, "/admin/runners/registration-token": { "get": { "produces": ["application/json"], @@ -766,6 +1243,83 @@ } } }, + "/admin/users/{username}/quota": { + "get": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "Get the user's quota info", + "operationId": "adminGetUserQuota", + "parameters": [ + { + "type": "string", + "description": "username of user to query", + "name": "username", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/responses/QuotaInfo" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + }, + "422": { + "$ref": "#/responses/validationError" + } + } + } + }, + "/admin/users/{username}/quota/groups": { + "post": { + "produces": ["application/json"], + "tags": ["admin"], + "summary": "Set the user's quota groups to a given list.", + "operationId": "adminSetUserQuotaGroups", + "parameters": [ + { + "type": "string", + "description": "username of the user to modify the quota groups from", + "name": "username", + "in": "path", + "required": true + }, + { + "description": "list of groups that the user should be a member of", + "name": "groups", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SetUserQuotaGroupsOptions" + } + } + ], + "responses": { + "204": { + "$ref": "#/responses/empty" + }, + "400": { + "$ref": "#/responses/error" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + }, + "422": { + "$ref": "#/responses/validationError" + } + } + } + }, "/admin/users/{username}/rename": { "post": { "produces": ["application/json"], @@ -1075,7 +1629,7 @@ "type": "string" }, "collectionFormat": "multi", - "description": "Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread & pinned.", + "description": "Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread \u0026 pinned.", "name": "status-types", "in": "query" }, @@ -1578,12 +2132,14 @@ }, { "type": "integer", + "format": "uint32", "description": "page number of results to return (1-based)", "name": "page", "in": "query" }, { "type": "integer", + "format": "uint32", "description": "page size of results", "name": "limit", "in": "query" @@ -2527,6 +3083,191 @@ } } }, + "/orgs/{org}/quota": { + "get": { + "produces": ["application/json"], + "tags": ["organization"], + "summary": "Get quota information for an organization", + "operationId": "orgGetQuota", + "parameters": [ + { + "type": "string", + "description": "name of the organization", + "name": "org", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/responses/QuotaInfo" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + } + } + } + }, + "/orgs/{org}/quota/artifacts": { + "get": { + "produces": ["application/json"], + "tags": ["organization"], + "summary": "List the artifacts affecting the organization's quota", + "operationId": "orgListQuotaArtifacts", + "parameters": [ + { + "type": "string", + "description": "name of the organization", + "name": "org", + "in": "path", + "required": true + }, + { + "type": "integer", + "format": "uint32", + "description": "page number of results to return (1-based)", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "format": "uint32", + "description": "page size of results", + "name": "limit", + "in": "query" + } + ], + "responses": { + "200": { + "$ref": "#/responses/QuotaUsedArtifactList" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + } + } + } + }, + "/orgs/{org}/quota/attachments": { + "get": { + "produces": ["application/json"], + "tags": ["organization"], + "summary": "List the attachments affecting the organization's quota", + "operationId": "orgListQuotaAttachments", + "parameters": [ + { + "type": "string", + "description": "name of the organization", + "name": "org", + "in": "path", + "required": true + }, + { + "type": "integer", + "format": "uint32", + "description": "page number of results to return (1-based)", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "format": "uint32", + "description": "page size of results", + "name": "limit", + "in": "query" + } + ], + "responses": { + "200": { + "$ref": "#/responses/QuotaUsedAttachmentList" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + } + } + } + }, + "/orgs/{org}/quota/check": { + "get": { + "produces": ["application/json"], + "tags": ["organization"], + "summary": "Check if the organization is over quota for a given subject", + "operationId": "orgCheckQuota", + "parameters": [ + { + "type": "string", + "description": "name of the organization", + "name": "org", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/responses/boolean" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + }, + "422": { + "$ref": "#/responses/validationError" + } + } + } + }, + "/orgs/{org}/quota/packages": { + "get": { + "produces": ["application/json"], + "tags": ["organization"], + "summary": "List the packages affecting the organization's quota", + "operationId": "orgListQuotaPackages", + "parameters": [ + { + "type": "string", + "description": "name of the organization", + "name": "org", + "in": "path", + "required": true + }, + { + "type": "integer", + "format": "uint32", + "description": "page number of results to return (1-based)", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "format": "uint32", + "description": "page size of results", + "name": "limit", + "in": "query" + } + ], + "responses": { + "200": { + "$ref": "#/responses/QuotaUsedPackageList" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + } + } + } + }, "/orgs/{org}/repos": { "get": { "produces": ["application/json"], @@ -3133,6 +3874,9 @@ "409": { "description": "The repository with the same name already exists." }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "422": { "$ref": "#/responses/validationError" } @@ -3374,6 +4118,35 @@ } } }, + "/repos/{owner}/{repo}/actions/runners/registration-token": { + "get": { + "produces": ["application/json"], + "tags": ["repository"], + "summary": "Get a repository's actions runner registration token", + "operationId": "repoGetRunnerRegistrationToken", + "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/RegistrationToken" + } + } + } + }, "/repos/{owner}/{repo}/actions/secrets": { "get": { "produces": ["application/json"], @@ -3397,12 +4170,14 @@ }, { "type": "integer", + "format": "uint32", "description": "page number of results to return (1-based)", "name": "page", "in": "query" }, { "type": "integer", + "format": "uint32", "description": "page size of results", "name": "limit", "in": "query" @@ -3535,12 +4310,14 @@ }, { "type": "integer", + "format": "uint32", "description": "page number of results to return (1-based)", "name": "page", "in": "query" }, { "type": "integer", + "format": "uint32", "description": "page size of results, default maximum page size is 50", "name": "limit", "in": "query" @@ -3591,12 +4368,14 @@ }, { "type": "integer", + "format": "uint32", "description": "page number of results to return (1-based)", "name": "page", "in": "query" }, { "type": "integer", + "format": "uint32", "description": "page size of results", "name": "limit", "in": "query" @@ -4333,6 +5112,9 @@ "409": { "description": "The branch with the same name already exists." }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "423": { "$ref": "#/responses/repoArchivedError" } @@ -5013,6 +5795,9 @@ "404": { "$ref": "#/responses/notFound" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "422": { "$ref": "#/responses/error" }, @@ -5113,6 +5898,9 @@ "404": { "$ref": "#/responses/notFound" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "422": { "$ref": "#/responses/error" }, @@ -5168,6 +5956,9 @@ "404": { "$ref": "#/responses/notFound" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "422": { "$ref": "#/responses/error" }, @@ -5226,6 +6017,9 @@ "404": { "$ref": "#/responses/error" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "423": { "$ref": "#/responses/repoArchivedError" } @@ -5270,6 +6064,9 @@ "404": { "$ref": "#/responses/notFound" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "423": { "$ref": "#/responses/repoArchivedError" } @@ -5637,6 +6434,9 @@ "409": { "description": "The repository with the same name already exists." }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "422": { "$ref": "#/responses/validationError" } @@ -6983,6 +7783,9 @@ "404": { "$ref": "#/responses/error" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "422": { "$ref": "#/responses/validationError" }, @@ -7140,6 +7943,9 @@ "404": { "$ref": "#/responses/error" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "423": { "$ref": "#/responses/repoArchivedError" } @@ -7554,6 +8360,9 @@ "404": { "$ref": "#/responses/error" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "422": { "$ref": "#/responses/validationError" }, @@ -7711,6 +8520,9 @@ "404": { "$ref": "#/responses/error" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "423": { "$ref": "#/responses/repoArchivedError" } @@ -9873,7 +10685,7 @@ }, "/repos/{owner}/{repo}/media/{filepath}": { "get": { - "produces": ["*/*"], + "produces": ["application/octet-stream"], "tags": ["repository"], "summary": "Get a file or it's LFS object from a repository", "operationId": "repoGetRawFileOrLFS", @@ -10163,6 +10975,9 @@ }, "404": { "$ref": "#/responses/notFound" + }, + "413": { + "$ref": "#/responses/quotaExceeded" } } } @@ -10233,7 +11048,7 @@ "type": "string" }, "collectionFormat": "multi", - "description": "Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread & pinned", + "description": "Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread \u0026 pinned", "name": "status-types", "in": "query" }, @@ -10464,6 +11279,9 @@ "409": { "$ref": "#/responses/error" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "422": { "$ref": "#/responses/validationError" }, @@ -10924,6 +11742,9 @@ "409": { "$ref": "#/responses/error" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "423": { "$ref": "#/responses/repoArchivedError" } @@ -11721,6 +12542,9 @@ "409": { "$ref": "#/responses/error" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "422": { "$ref": "#/responses/validationError" } @@ -11819,6 +12643,9 @@ }, "404": { "$ref": "#/responses/notFound" + }, + "413": { + "$ref": "#/responses/quotaExceeded" } } } @@ -11857,6 +12684,9 @@ }, "404": { "$ref": "#/responses/notFound" + }, + "413": { + "$ref": "#/responses/quotaExceeded" } } } @@ -11948,7 +12778,7 @@ }, "/repos/{owner}/{repo}/raw/{filepath}": { "get": { - "produces": ["*/*"], + "produces": ["application/octet-stream"], "tags": ["repository"], "summary": "Get a file from a repository", "operationId": "repoGetRawFile", @@ -12405,9 +13235,15 @@ }, { "type": "file", - "description": "attachment to upload", + "description": "attachment to upload (this parameter is incompatible with `external_url`)", "name": "attachment", "in": "formData" + }, + { + "type": "string", + "description": "url to external asset (this parameter is incompatible with `attachment`)", + "name": "external_url", + "in": "formData" } ], "responses": { @@ -12419,6 +13255,9 @@ }, "404": { "$ref": "#/responses/notFound" + }, + "413": { + "$ref": "#/responses/quotaExceeded" } } } @@ -12567,6 +13406,9 @@ }, "404": { "$ref": "#/responses/notFound" + }, + "413": { + "$ref": "#/responses/quotaExceeded" } } } @@ -12603,35 +13445,6 @@ } } }, - "/repos/{owner}/{repo}/runners/registration-token": { - "get": { - "produces": ["application/json"], - "tags": ["repository"], - "summary": "Get a repository's actions runner registration token", - "operationId": "repoGetRunnerRegistrationToken", - "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/RegistrationToken" - } - } - } - }, "/repos/{owner}/{repo}/signing-key.gpg": { "get": { "produces": ["text/plain"], @@ -13257,6 +14070,9 @@ "409": { "$ref": "#/responses/conflict" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "422": { "$ref": "#/responses/validationError" }, @@ -13841,6 +14657,9 @@ "404": { "$ref": "#/responses/notFound" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "422": { "$ref": "#/responses/validationError" } @@ -13878,6 +14697,9 @@ }, "404": { "$ref": "#/responses/notFound" + }, + "413": { + "$ref": "#/responses/quotaExceeded" } } } @@ -13959,6 +14781,9 @@ "404": { "$ref": "#/responses/notFound" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "423": { "$ref": "#/responses/repoArchivedError" } @@ -14093,6 +14918,9 @@ "404": { "$ref": "#/responses/notFound" }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "423": { "$ref": "#/responses/repoArchivedError" } @@ -14234,6 +15062,9 @@ "409": { "description": "The repository with the same name already exists." }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "422": { "$ref": "#/responses/validationError" } @@ -14902,12 +15733,14 @@ "parameters": [ { "type": "integer", + "format": "uint32", "description": "page number of results to return (1-based)", "name": "page", "in": "query" }, { "type": "integer", + "format": "uint32", "description": "page size of results", "name": "limit", "in": "query" @@ -15883,6 +16716,137 @@ } } }, + "/user/quota": { + "get": { + "produces": ["application/json"], + "tags": ["user"], + "summary": "Get quota information for the authenticated user", + "operationId": "userGetQuota", + "responses": { + "200": { + "$ref": "#/responses/QuotaInfo" + }, + "403": { + "$ref": "#/responses/forbidden" + } + } + } + }, + "/user/quota/artifacts": { + "get": { + "produces": ["application/json"], + "tags": ["user"], + "summary": "List the artifacts affecting the authenticated user's quota", + "operationId": "userListQuotaArtifacts", + "parameters": [ + { + "type": "integer", + "format": "uint32", + "description": "page number of results to return (1-based)", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "format": "uint32", + "description": "page size of results", + "name": "limit", + "in": "query" + } + ], + "responses": { + "200": { + "$ref": "#/responses/QuotaUsedArtifactList" + }, + "403": { + "$ref": "#/responses/forbidden" + } + } + } + }, + "/user/quota/attachments": { + "get": { + "produces": ["application/json"], + "tags": ["user"], + "summary": "List the attachments affecting the authenticated user's quota", + "operationId": "userListQuotaAttachments", + "parameters": [ + { + "type": "integer", + "format": "uint32", + "description": "page number of results to return (1-based)", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "format": "uint32", + "description": "page size of results", + "name": "limit", + "in": "query" + } + ], + "responses": { + "200": { + "$ref": "#/responses/QuotaUsedAttachmentList" + }, + "403": { + "$ref": "#/responses/forbidden" + } + } + } + }, + "/user/quota/check": { + "get": { + "produces": ["application/json"], + "tags": ["user"], + "summary": "Check if the authenticated user is over quota for a given subject", + "operationId": "userCheckQuota", + "responses": { + "200": { + "$ref": "#/responses/boolean" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "422": { + "$ref": "#/responses/validationError" + } + } + } + }, + "/user/quota/packages": { + "get": { + "produces": ["application/json"], + "tags": ["user"], + "summary": "List the packages affecting the authenticated user's quota", + "operationId": "userListQuotaPackages", + "parameters": [ + { + "type": "integer", + "format": "uint32", + "description": "page number of results to return (1-based)", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "format": "uint32", + "description": "page size of results", + "name": "limit", + "in": "query" + } + ], + "responses": { + "200": { + "$ref": "#/responses/QuotaUsedPackageList" + }, + "403": { + "$ref": "#/responses/forbidden" + } + } + } + }, "/user/repos": { "get": { "produces": ["application/json"], @@ -15903,11 +16867,20 @@ "description": "page size of results", "name": "limit", "in": "query" + }, + { + "type": "string", + "description": "order the repositories by name (default), id, or size", + "name": "order_by", + "in": "query" } ], "responses": { "200": { "$ref": "#/responses/RepositoryList" + }, + "422": { + "$ref": "#/responses/validationError" } } }, @@ -15936,6 +16909,9 @@ "409": { "description": "The repository with the same name already exists." }, + "413": { + "$ref": "#/responses/quotaExceeded" + }, "422": { "$ref": "#/responses/validationError" } @@ -17188,6 +18164,7 @@ "properties": { "permission": { "type": "string", + "enum": ["read", "write", "admin"], "x-go-name": "Permission" } }, @@ -17306,6 +18283,11 @@ "format": "int64", "x-go-name": "Size" }, + "type": { + "type": "string", + "enum": ["attachment", "external"], + "x-go-name": "Type" + }, "uuid": { "type": "string", "x-go-name": "UUID" @@ -18733,6 +19715,72 @@ "sync_on_commit": { "type": "boolean", "x-go-name": "SyncOnCommit" + }, + "use_ssh": { + "type": "boolean", + "x-go-name": "UseSSH" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateQuotaGroupOptions": { + "description": "CreateQutaGroupOptions represents the options for creating a quota group", + "type": "object", + "properties": { + "name": { + "description": "Name of the quota group to create", + "type": "string", + "x-go-name": "Name" + }, + "rules": { + "description": "Rules to add to the newly created group.\nIf a rule does not exist, it will be created.", + "type": "array", + "items": { + "$ref": "#/definitions/CreateQuotaRuleOptions" + }, + "x-go-name": "Rules" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateQuotaRuleOptions": { + "description": "CreateQuotaRuleOptions represents the options for creating a quota rule", + "type": "object", + "properties": { + "limit": { + "description": "The limit set by the rule", + "type": "integer", + "format": "int64", + "x-go-name": "Limit" + }, + "name": { + "description": "Name of the rule to create", + "type": "string", + "x-go-name": "Name" + }, + "subjects": { + "description": "The subjects affected by the rule", + "type": "array", + "items": { + "type": "string", + "enum": [ + "none", + "size:all", + "size:repos:all", + "size:repos:public", + "size:repos:private", + "size:git:all", + "size:git:lfs", + "size:assets:all", + "size:assets:attachments:all", + "size:assets:attachments:issues", + "size:assets:attachments:releases", + "size:assets:artifacts", + "size:assets:packages:all", + "size:assets:wiki" + ] + }, + "x-go-name": "Subjects" } }, "x-go-package": "code.gitea.io/gitea/modules/structs" @@ -19250,6 +20298,12 @@ "description": "EditAttachmentOptions options for editing attachments", "type": "object", "properties": { + "browser_download_url": { + "description": "(Can only be set if existing attachment is of external type)", + "type": "string", + "format": "url", + "x-go-name": "DownloadURL" + }, "name": { "type": "string", "x-go-name": "Name" @@ -19657,6 +20711,27 @@ }, "x-go-package": "code.gitea.io/gitea/modules/structs" }, + "EditQuotaRuleOptions": { + "description": "EditQuotaRuleOptions represents the options for editing a quota rule", + "type": "object", + "properties": { + "limit": { + "description": "The limit set by the rule", + "type": "integer", + "format": "int64", + "x-go-name": "Limit" + }, + "subjects": { + "description": "The subjects affected by the rule", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Subjects" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, "EditReactionOption": { "description": "EditReactionOption contain the reaction type", "type": "object", @@ -22207,6 +23282,13 @@ }, "x-go-name": "RequestedReviewers" }, + "requested_reviewers_teams": { + "type": "array", + "items": { + "$ref": "#/definitions/Team" + }, + "x-go-name": "RequestedReviewersTeams" + }, "review_comments": { "description": "number of review comments made on the diff of a PR review (not including comments on commits or issues in a PR)", "type": "integer", @@ -22446,6 +23528,10 @@ "format": "date-time", "x-go-name": "LastUpdateUnix" }, + "public_key": { + "type": "string", + "x-go-name": "PublicKey" + }, "remote_address": { "type": "string", "x-go-name": "RemoteAddress" @@ -22465,6 +23551,306 @@ }, "x-go-package": "code.gitea.io/gitea/modules/structs" }, + "QuotaGroup": { + "description": "QuotaGroup represents a quota group", + "type": "object", + "properties": { + "name": { + "description": "Name of the group", + "type": "string", + "x-go-name": "Name" + }, + "rules": { + "description": "Rules associated with the group", + "type": "array", + "items": { + "$ref": "#/definitions/QuotaRuleInfo" + }, + "x-go-name": "Rules" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaGroupList": { + "description": "QuotaGroupList represents a list of quota groups", + "type": "array", + "items": { + "$ref": "#/definitions/QuotaGroup" + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaInfo": { + "description": "QuotaInfo represents information about a user's quota", + "type": "object", + "properties": { + "groups": { + "$ref": "#/definitions/QuotaGroupList" + }, + "used": { + "$ref": "#/definitions/QuotaUsed" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaRuleInfo": { + "description": "QuotaRuleInfo contains information about a quota rule", + "type": "object", + "properties": { + "limit": { + "description": "The limit set by the rule", + "type": "integer", + "format": "int64", + "x-go-name": "Limit" + }, + "name": { + "description": "Name of the rule (only shown to admins)", + "type": "string", + "x-go-name": "Name" + }, + "subjects": { + "description": "Subjects the rule affects", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Subjects" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaUsed": { + "description": "QuotaUsed represents the quota usage of a user", + "type": "object", + "properties": { + "size": { + "$ref": "#/definitions/QuotaUsedSize" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaUsedArtifact": { + "description": "QuotaUsedArtifact represents an artifact counting towards a user's quota", + "type": "object", + "properties": { + "html_url": { + "description": "HTML URL to the action run containing the artifact", + "type": "string", + "format": "url", + "x-go-name": "HTMLURL" + }, + "name": { + "description": "Name of the artifact", + "type": "string", + "x-go-name": "Name" + }, + "size": { + "description": "Size of the artifact (compressed)", + "type": "integer", + "format": "int64", + "x-go-name": "Size" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaUsedArtifactList": { + "description": "QuotaUsedArtifactList represents a list of artifacts counting towards a user's quota", + "type": "array", + "items": { + "$ref": "#/definitions/QuotaUsedArtifact" + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaUsedAttachment": { + "description": "QuotaUsedAttachment represents an attachment counting towards a user's quota", + "type": "object", + "properties": { + "api_url": { + "description": "API URL for the attachment", + "type": "string", + "format": "url", + "x-go-name": "APIURL" + }, + "contained_in": { + "description": "Context for the attachment: URLs to the containing object", + "type": "object", + "properties": { + "api_url": { + "description": "API URL for the object that contains this attachment", + "type": "string", + "format": "url", + "x-go-name": "APIURL" + }, + "html_url": { + "description": "HTML URL for the object that contains this attachment", + "type": "string", + "format": "url", + "x-go-name": "HTMLURL" + } + }, + "x-go-name": "ContainedIn" + }, + "name": { + "description": "Filename of the attachment", + "type": "string", + "x-go-name": "Name" + }, + "size": { + "description": "Size of the attachment (in bytes)", + "type": "integer", + "format": "int64", + "x-go-name": "Size" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaUsedAttachmentList": { + "description": "QuotaUsedAttachmentList represents a list of attachment counting towards a user's quota", + "type": "array", + "items": { + "$ref": "#/definitions/QuotaUsedAttachment" + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaUsedPackage": { + "description": "QuotaUsedPackage represents a package counting towards a user's quota", + "type": "object", + "properties": { + "html_url": { + "description": "HTML URL to the package version", + "type": "string", + "format": "url", + "x-go-name": "HTMLURL" + }, + "name": { + "description": "Name of the package", + "type": "string", + "x-go-name": "Name" + }, + "size": { + "description": "Size of the package version", + "type": "integer", + "format": "int64", + "x-go-name": "Size" + }, + "type": { + "description": "Type of the package", + "type": "string", + "x-go-name": "Type" + }, + "version": { + "description": "Version of the package", + "type": "string", + "x-go-name": "Version" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaUsedPackageList": { + "description": "QuotaUsedPackageList represents a list of packages counting towards a user's quota", + "type": "array", + "items": { + "$ref": "#/definitions/QuotaUsedPackage" + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaUsedSize": { + "description": "QuotaUsedSize represents the size-based quota usage of a user", + "type": "object", + "properties": { + "assets": { + "$ref": "#/definitions/QuotaUsedSizeAssets" + }, + "git": { + "$ref": "#/definitions/QuotaUsedSizeGit" + }, + "repos": { + "$ref": "#/definitions/QuotaUsedSizeRepos" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaUsedSizeAssets": { + "description": "QuotaUsedSizeAssets represents the size-based asset usage of a user", + "type": "object", + "properties": { + "artifacts": { + "description": "Storage size used for the user's artifacts", + "type": "integer", + "format": "int64", + "x-go-name": "Artifacts" + }, + "attachments": { + "$ref": "#/definitions/QuotaUsedSizeAssetsAttachments" + }, + "packages": { + "$ref": "#/definitions/QuotaUsedSizeAssetsPackages" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaUsedSizeAssetsAttachments": { + "description": "QuotaUsedSizeAssetsAttachments represents the size-based attachment quota usage of a user", + "type": "object", + "properties": { + "issues": { + "description": "Storage size used for the user's issue \u0026 comment attachments", + "type": "integer", + "format": "int64", + "x-go-name": "Issues" + }, + "releases": { + "description": "Storage size used for the user's release attachments", + "type": "integer", + "format": "int64", + "x-go-name": "Releases" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaUsedSizeAssetsPackages": { + "description": "QuotaUsedSizeAssetsPackages represents the size-based package quota usage of a user", + "type": "object", + "properties": { + "all": { + "description": "Storage suze used for the user's packages", + "type": "integer", + "format": "int64", + "x-go-name": "All" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaUsedSizeGit": { + "description": "QuotaUsedSizeGit represents the size-based git (lfs) quota usage of a user", + "type": "object", + "properties": { + "LFS": { + "description": "Storage size of the user's Git LFS objects", + "type": "integer", + "format": "int64" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "QuotaUsedSizeRepos": { + "description": "QuotaUsedSizeRepos represents the size-based repository quota usage of a user", + "type": "object", + "properties": { + "private": { + "description": "Storage size of the user's private repositories", + "type": "integer", + "format": "int64", + "x-go-name": "Private" + }, + "public": { + "description": "Storage size of the user's public repositories", + "type": "integer", + "format": "int64", + "x-go-name": "Public" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, "Reaction": { "description": "Reaction contain one reaction", "type": "object", @@ -23043,6 +24429,22 @@ }, "x-go-package": "code.gitea.io/gitea/modules/structs" }, + "SetUserQuotaGroupsOptions": { + "description": "SetUserQuotaGroupsOptions represents the quota groups of a user", + "type": "object", + "required": ["groups"], + "properties": { + "groups": { + "description": "Quota groups the user shall have", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Groups" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, "StateType": { "description": "StateType issue state type", "type": "string", @@ -24648,6 +26050,57 @@ } } }, + "QuotaGroup": { + "description": "QuotaGroup", + "schema": { + "$ref": "#/definitions/QuotaGroup" + } + }, + "QuotaGroupList": { + "description": "QuotaGroupList", + "schema": { + "$ref": "#/definitions/QuotaGroupList" + } + }, + "QuotaInfo": { + "description": "QuotaInfo", + "schema": { + "$ref": "#/definitions/QuotaInfo" + } + }, + "QuotaRuleInfo": { + "description": "QuotaRuleInfo", + "schema": { + "$ref": "#/definitions/QuotaRuleInfo" + } + }, + "QuotaRuleInfoList": { + "description": "QuotaRuleInfoList", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/QuotaRuleInfo" + } + } + }, + "QuotaUsedArtifactList": { + "description": "QuotaUsedArtifactList", + "schema": { + "$ref": "#/definitions/QuotaUsedArtifactList" + } + }, + "QuotaUsedAttachmentList": { + "description": "QuotaUsedAttachmentList", + "schema": { + "$ref": "#/definitions/QuotaUsedAttachmentList" + } + }, + "QuotaUsedPackageList": { + "description": "QuotaUsedPackageList", + "schema": { + "$ref": "#/definitions/QuotaUsedPackageList" + } + }, "Reaction": { "description": "Reaction", "schema": { @@ -24947,6 +26400,9 @@ } } }, + "boolean": { + "description": "Boolean" + }, "conflict": { "description": "APIConflict is a conflict empty response" }, @@ -24997,7 +26453,22 @@ "parameterBodies": { "description": "parameterBodies", "schema": { - "$ref": "#/definitions/DispatchWorkflowOption" + "$ref": "#/definitions/SetUserQuotaGroupsOptions" + } + }, + "quotaExceeded": { + "description": "QuotaExceeded", + "headers": { + "message": { + "type": "string" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "username": { + "type": "string" + } } }, "redirect": { |