From aaeec2a3925c8e45c14179a3e6260b92e53197d2 Mon Sep 17 00:00:00 2001 From: JakobDev Date: Wed, 13 Sep 2023 04:37:54 +0200 Subject: [PATCH] Add missing 404 response to Swagger (#27038) Most middleware throw a 404 in case something is not found e.g. a Repo that is not existing. But most API endpoints don't include the 404 response in their documentation. This PR changes this. --- routers/api/v1/org/action.go | 2 + routers/api/v1/org/avatar.go | 4 + routers/api/v1/org/hook.go | 10 + routers/api/v1/org/label.go | 10 + routers/api/v1/org/member.go | 10 + routers/api/v1/org/org.go | 10 + routers/api/v1/org/team.go | 20 + routers/api/v1/packages/package.go | 2 + routers/api/v1/repo/avatar.go | 4 + routers/api/v1/repo/blob.go | 2 + routers/api/v1/repo/collaborators.go | 10 + routers/api/v1/repo/fork.go | 4 + routers/api/v1/repo/git_hook.go | 2 + routers/api/v1/repo/hook.go | 8 + routers/api/v1/repo/issue.go | 4 + routers/api/v1/repo/issue_comment.go | 8 + routers/api/v1/repo/issue_dependency.go | 8 + routers/api/v1/repo/issue_label.go | 8 + routers/api/v1/repo/issue_pin.go | 6 + routers/api/v1/repo/issue_reaction.go | 12 + routers/api/v1/repo/issue_tracked_time.go | 10 + routers/api/v1/repo/key.go | 8 + routers/api/v1/repo/label.go | 10 + routers/api/v1/repo/milestone.go | 10 + routers/api/v1/repo/mirror.go | 10 + routers/api/v1/repo/patch.go | 2 + routers/api/v1/repo/pull.go | 8 + routers/api/v1/repo/pull_review.go | 4 + routers/api/v1/repo/release.go | 2 + routers/api/v1/repo/release_attachment.go | 10 + routers/api/v1/repo/repo.go | 16 + routers/api/v1/repo/star.go | 2 + routers/api/v1/repo/status.go | 8 + routers/api/v1/repo/subscriber.go | 2 + routers/api/v1/repo/tag.go | 4 + routers/api/v1/repo/teams.go | 6 + routers/api/v1/repo/topic.go | 10 + routers/api/v1/repo/tree.go | 2 + routers/api/v1/repo/wiki.go | 4 + routers/api/v1/user/follower.go | 8 + routers/api/v1/user/gpg_key.go | 2 + routers/api/v1/user/key.go | 2 + routers/api/v1/user/repo.go | 4 + routers/api/v1/user/star.go | 6 + routers/api/v1/user/watch.go | 6 + templates/swagger/v1_json.tmpl | 450 ++++++++++++++++++++++ 46 files changed, 750 insertions(+) diff --git a/routers/api/v1/org/action.go b/routers/api/v1/org/action.go index e50a77f36..5af612577 100644 --- a/routers/api/v1/org/action.go +++ b/routers/api/v1/org/action.go @@ -40,6 +40,8 @@ func ListActionsSecrets(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/SecretList" + // "404": + // "$ref": "#/responses/notFound" opts := &secret_model.FindSecretsOptions{ OwnerID: ctx.Org.Organization.ID, diff --git a/routers/api/v1/org/avatar.go b/routers/api/v1/org/avatar.go index b3cb0b81a..a7b500852 100644 --- a/routers/api/v1/org/avatar.go +++ b/routers/api/v1/org/avatar.go @@ -33,6 +33,8 @@ func UpdateAvatar(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.UpdateUserAvatarOption) content, err := base64.StdEncoding.DecodeString(form.Image) @@ -65,6 +67,8 @@ func DeleteAvatar(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" err := user_service.DeleteAvatar(ctx.Org.Organization.AsUser()) if err != nil { ctx.Error(http.StatusInternalServerError, "DeleteAvatar", err) diff --git a/routers/api/v1/org/hook.go b/routers/api/v1/org/hook.go index a6ea618a7..3c3f058b5 100644 --- a/routers/api/v1/org/hook.go +++ b/routers/api/v1/org/hook.go @@ -37,6 +37,8 @@ func ListHooks(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/HookList" + // "404": + // "$ref": "#/responses/notFound" utils.ListOwnerHooks( ctx, @@ -66,6 +68,8 @@ func GetHook(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Hook" + // "404": + // "$ref": "#/responses/notFound" hook, err := utils.GetOwnerHook(ctx, ctx.ContextUser.ID, ctx.ParamsInt64("id")) if err != nil { @@ -103,6 +107,8 @@ func CreateHook(ctx *context.APIContext) { // responses: // "201": // "$ref": "#/responses/Hook" + // "404": + // "$ref": "#/responses/notFound" utils.AddOwnerHook( ctx, @@ -139,6 +145,8 @@ func EditHook(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Hook" + // "404": + // "$ref": "#/responses/notFound" utils.EditOwnerHook( ctx, @@ -170,6 +178,8 @@ func DeleteHook(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" utils.DeleteOwnerHook( ctx, diff --git a/routers/api/v1/org/label.go b/routers/api/v1/org/label.go index 9ef28d4db..2dd4505a9 100644 --- a/routers/api/v1/org/label.go +++ b/routers/api/v1/org/label.go @@ -41,6 +41,8 @@ func ListLabels(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/LabelList" + // "404": + // "$ref": "#/responses/notFound" labels, err := issues_model.GetLabelsByOrgID(ctx, ctx.Org.Organization.ID, ctx.FormString("sort"), utils.GetListOptions(ctx)) if err != nil { @@ -80,6 +82,8 @@ func CreateLabel(ctx *context.APIContext) { // responses: // "201": // "$ref": "#/responses/Label" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/validationError" form := web.GetForm(ctx).(*api.CreateLabelOption) @@ -128,6 +132,8 @@ func GetLabel(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Label" + // "404": + // "$ref": "#/responses/notFound" var ( label *issues_model.Label @@ -179,6 +185,8 @@ func EditLabel(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Label" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/validationError" form := web.GetForm(ctx).(*api.EditLabelOption) @@ -238,6 +246,8 @@ func DeleteLabel(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" if err := issues_model.DeleteLabel(ctx.Org.Organization.ID, ctx.ParamsInt64(":id")); err != nil { ctx.Error(http.StatusInternalServerError, "DeleteLabel", err) diff --git a/routers/api/v1/org/member.go b/routers/api/v1/org/member.go index e4afd7f3c..e5ea584d5 100644 --- a/routers/api/v1/org/member.go +++ b/routers/api/v1/org/member.go @@ -70,6 +70,8 @@ func ListMembers(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/UserList" + // "404": + // "$ref": "#/responses/notFound" publicOnly := true if ctx.Doer != nil { @@ -107,6 +109,8 @@ func ListPublicMembers(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/UserList" + // "404": + // "$ref": "#/responses/notFound" listMembers(ctx, true) } @@ -225,6 +229,8 @@ func PublicizeMember(ctx *context.APIContext) { // description: membership publicized // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" userToPublicize := user.GetUserByParams(ctx) if ctx.Written() { @@ -265,6 +271,8 @@ func ConcealMember(ctx *context.APIContext) { // "$ref": "#/responses/empty" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" userToConceal := user.GetUserByParams(ctx) if ctx.Written() { @@ -303,6 +311,8 @@ func DeleteMember(ctx *context.APIContext) { // responses: // "204": // description: member removed + // "404": + // "$ref": "#/responses/notFound" member := user.GetUserByParams(ctx) if ctx.Written() { diff --git a/routers/api/v1/org/org.go b/routers/api/v1/org/org.go index b0666c87f..0216b6235 100644 --- a/routers/api/v1/org/org.go +++ b/routers/api/v1/org/org.go @@ -70,6 +70,8 @@ func ListMyOrgs(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/OrganizationList" + // "404": + // "$ref": "#/responses/notFound" listUserOrgs(ctx, ctx.Doer) } @@ -98,6 +100,8 @@ func ListUserOrgs(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/OrganizationList" + // "404": + // "$ref": "#/responses/notFound" listUserOrgs(ctx, ctx.ContextUser) } @@ -295,6 +299,8 @@ func Get(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Organization" + // "404": + // "$ref": "#/responses/notFound" if !organization.HasOrgOrUserVisible(ctx, ctx.Org.Organization.AsUser(), ctx.Doer) { ctx.NotFound("HasOrgOrUserVisible", nil) @@ -334,6 +340,8 @@ func Edit(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Organization" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.EditOrgOption) org := ctx.Org.Organization org.FullName = form.FullName @@ -374,6 +382,8 @@ func Delete(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" if err := org.DeleteOrganization(ctx.Org.Organization); err != nil { ctx.Error(http.StatusInternalServerError, "DeleteOrganization", err) diff --git a/routers/api/v1/org/team.go b/routers/api/v1/org/team.go index 4b52fb898..abb5381a7 100644 --- a/routers/api/v1/org/team.go +++ b/routers/api/v1/org/team.go @@ -50,6 +50,8 @@ func ListTeams(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/TeamList" + // "404": + // "$ref": "#/responses/notFound" teams, count, err := organization.SearchTeam(&organization.SearchTeamOptions{ ListOptions: utils.GetListOptions(ctx), @@ -126,6 +128,8 @@ func GetTeam(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Team" + // "404": + // "$ref": "#/responses/notFound" apiTeam, err := convert.ToTeam(ctx, ctx.Org.Team, true) if err != nil { @@ -204,6 +208,8 @@ func CreateTeam(ctx *context.APIContext) { // responses: // "201": // "$ref": "#/responses/Team" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/validationError" form := web.GetForm(ctx).(*api.CreateTeamOption) @@ -272,6 +278,8 @@ func EditTeam(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Team" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.EditTeamOption) team := ctx.Org.Team @@ -350,6 +358,8 @@ func DeleteTeam(ctx *context.APIContext) { // responses: // "204": // description: team deleted + // "404": + // "$ref": "#/responses/notFound" if err := models.DeleteTeam(ctx.Org.Team); err != nil { ctx.Error(http.StatusInternalServerError, "DeleteTeam", err) @@ -383,6 +393,8 @@ func GetTeamMembers(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/UserList" + // "404": + // "$ref": "#/responses/notFound" isMember, err := organization.IsOrganizationMember(ctx, ctx.Org.Team.OrgID, ctx.Doer.ID) if err != nil { @@ -550,6 +562,8 @@ func GetTeamRepos(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/RepositoryList" + // "404": + // "$ref": "#/responses/notFound" team := ctx.Org.Team teamRepos, err := organization.GetTeamRepositories(ctx, &organization.SearchTeamRepoOptions{ @@ -665,6 +679,8 @@ func AddTeamRepository(ctx *context.APIContext) { // "$ref": "#/responses/empty" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" repo := getRepositoryByParams(ctx) if ctx.Written() { @@ -715,6 +731,8 @@ func RemoveTeamRepository(ctx *context.APIContext) { // "$ref": "#/responses/empty" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" repo := getRepositoryByParams(ctx) if ctx.Written() { @@ -775,6 +793,8 @@ func SearchTeam(ctx *context.APIContext) { // type: array // items: // "$ref": "#/definitions/Team" + // "404": + // "$ref": "#/responses/notFound" listOptions := utils.GetListOptions(ctx) diff --git a/routers/api/v1/packages/package.go b/routers/api/v1/packages/package.go index 5129c7d4f..53724179a 100644 --- a/routers/api/v1/packages/package.go +++ b/routers/api/v1/packages/package.go @@ -48,6 +48,8 @@ func ListPackages(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/PackageList" + // "404": + // "$ref": "#/responses/notFound" listOptions := utils.GetListOptions(ctx) diff --git a/routers/api/v1/repo/avatar.go b/routers/api/v1/repo/avatar.go index 48bd143d0..1b661955f 100644 --- a/routers/api/v1/repo/avatar.go +++ b/routers/api/v1/repo/avatar.go @@ -38,6 +38,8 @@ func UpdateAvatar(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.UpdateRepoAvatarOption) content, err := base64.StdEncoding.DecodeString(form.Image) @@ -75,6 +77,8 @@ func DeleteAvatar(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" err := repo_service.DeleteAvatar(ctx, ctx.Repo.Repository) if err != nil { ctx.Error(http.StatusInternalServerError, "DeleteAvatar", err) diff --git a/routers/api/v1/repo/blob.go b/routers/api/v1/repo/blob.go index d0004f068..26605bba0 100644 --- a/routers/api/v1/repo/blob.go +++ b/routers/api/v1/repo/blob.go @@ -38,6 +38,8 @@ func GetBlob(ctx *context.APIContext) { // "$ref": "#/responses/GitBlobResponse" // "400": // "$ref": "#/responses/error" + // "404": + // "$ref": "#/responses/notFound" sha := ctx.Params("sha") if len(sha) == 0 { diff --git a/routers/api/v1/repo/collaborators.go b/routers/api/v1/repo/collaborators.go index 66e7577a4..4be43d46a 100644 --- a/routers/api/v1/repo/collaborators.go +++ b/routers/api/v1/repo/collaborators.go @@ -50,6 +50,8 @@ func ListCollaborators(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/UserList" + // "404": + // "$ref": "#/responses/notFound" count, err := repo_model.CountCollaborators(ctx.Repo.Repository.ID) if err != nil { @@ -154,6 +156,8 @@ func AddCollaborator(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/validationError" @@ -215,6 +219,8 @@ func DeleteCollaborator(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/validationError" @@ -311,6 +317,8 @@ func GetReviewers(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/UserList" + // "404": + // "$ref": "#/responses/notFound" reviewers, err := repo_model.GetReviewers(ctx, ctx.Repo.Repository, ctx.Doer.ID, 0) if err != nil { @@ -341,6 +349,8 @@ func GetAssignees(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/UserList" + // "404": + // "$ref": "#/responses/notFound" assignees, err := repo_model.GetRepoAssignees(ctx, ctx.Repo.Repository) if err != nil { diff --git a/routers/api/v1/repo/fork.go b/routers/api/v1/repo/fork.go index f75153ab2..7ae435620 100644 --- a/routers/api/v1/repo/fork.go +++ b/routers/api/v1/repo/fork.go @@ -52,6 +52,8 @@ func ListForks(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/RepositoryList" + // "404": + // "$ref": "#/responses/notFound" forks, err := repo_model.GetForks(ctx.Repo.Repository, utils.GetListOptions(ctx)) if err != nil { @@ -99,6 +101,8 @@ func CreateFork(ctx *context.APIContext) { // "$ref": "#/responses/Repository" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" // "409": // description: The repository with the same name already exists. // "422": diff --git a/routers/api/v1/repo/git_hook.go b/routers/api/v1/repo/git_hook.go index 40bd35542..7e471e263 100644 --- a/routers/api/v1/repo/git_hook.go +++ b/routers/api/v1/repo/git_hook.go @@ -34,6 +34,8 @@ func ListGitHooks(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/GitHookList" + // "404": + // "$ref": "#/responses/notFound" hooks, err := ctx.Repo.GitRepo.Hooks() if err != nil { diff --git a/routers/api/v1/repo/hook.go b/routers/api/v1/repo/hook.go index d0b77b568..e0f99b48f 100644 --- a/routers/api/v1/repo/hook.go +++ b/routers/api/v1/repo/hook.go @@ -50,6 +50,8 @@ func ListHooks(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/HookList" + // "404": + // "$ref": "#/responses/notFound" opts := &webhook.ListWebhookOptions{ ListOptions: utils.GetListOptions(ctx), @@ -157,6 +159,8 @@ func TestHook(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" if ctx.Repo.Commit == nil { // if repo does not have any commits, then don't send a webhook @@ -224,6 +228,8 @@ func CreateHook(ctx *context.APIContext) { // responses: // "201": // "$ref": "#/responses/Hook" + // "404": + // "$ref": "#/responses/notFound" utils.AddRepoHook(ctx, web.GetForm(ctx).(*api.CreateHookOption)) } @@ -259,6 +265,8 @@ func EditHook(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Hook" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.EditHookOption) hookID := ctx.ParamsInt64(":id") utils.EditRepoHook(ctx, form, hookID) diff --git a/routers/api/v1/repo/issue.go b/routers/api/v1/repo/issue.go index 2fad55df3..c6248bace 100644 --- a/routers/api/v1/repo/issue.go +++ b/routers/api/v1/repo/issue.go @@ -388,6 +388,8 @@ func ListIssues(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/IssueList" + // "404": + // "$ref": "#/responses/notFound" before, since, err := context.GetQueryBeforeSince(ctx.Base) if err != nil { ctx.Error(http.StatusUnprocessableEntity, "GetQueryBeforeSince", err) @@ -623,6 +625,8 @@ func CreateIssue(ctx *context.APIContext) { // "$ref": "#/responses/Issue" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" // "412": // "$ref": "#/responses/error" // "422": diff --git a/routers/api/v1/repo/issue_comment.go b/routers/api/v1/repo/issue_comment.go index 1f8e16147..c9179e69d 100644 --- a/routers/api/v1/repo/issue_comment.go +++ b/routers/api/v1/repo/issue_comment.go @@ -58,6 +58,8 @@ func ListIssueComments(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/CommentList" + // "404": + // "$ref": "#/responses/notFound" before, since, err := context.GetQueryBeforeSince(ctx.Base) if err != nil { @@ -155,6 +157,8 @@ func ListIssueCommentsAndTimeline(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/TimelineList" + // "404": + // "$ref": "#/responses/notFound" before, since, err := context.GetQueryBeforeSince(ctx.Base) if err != nil { @@ -258,6 +262,8 @@ func ListRepoIssueComments(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/CommentList" + // "404": + // "$ref": "#/responses/notFound" before, since, err := context.GetQueryBeforeSince(ctx.Base) if err != nil { @@ -350,6 +356,8 @@ func CreateIssueComment(ctx *context.APIContext) { // "$ref": "#/responses/Comment" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.CreateIssueCommentOption) issue, err := issues_model.GetIssueByIndex(ctx, ctx.Repo.Repository.ID, ctx.ParamsInt64(":index")) if err != nil { diff --git a/routers/api/v1/repo/issue_dependency.go b/routers/api/v1/repo/issue_dependency.go index b0eb208a3..5ea3836da 100644 --- a/routers/api/v1/repo/issue_dependency.go +++ b/routers/api/v1/repo/issue_dependency.go @@ -52,6 +52,8 @@ func GetIssueDependencies(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/IssueList" + // "404": + // "$ref": "#/responses/notFound" // If this issue's repository does not enable dependencies then there can be no dependencies by default if !ctx.Repo.Repository.IsDependenciesEnabled(ctx) { @@ -242,6 +244,8 @@ func RemoveIssueDependency(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Issue" + // "404": + // "$ref": "#/responses/notFound" // We want to make <:index> depend on
, i.e. <:index> is the target target := getParamsIssue(ctx) @@ -303,6 +307,8 @@ func GetIssueBlocks(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/IssueList" + // "404": + // "$ref": "#/responses/notFound" // We need to list the issues that DEPEND on this issue not the other way round // Therefore whether dependencies are enabled or not in this repository is potentially irrelevant. @@ -458,6 +464,8 @@ func RemoveIssueBlocking(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Issue" + // "404": + // "$ref": "#/responses/notFound" dependency := getParamsIssue(ctx) if ctx.Written() { diff --git a/routers/api/v1/repo/issue_label.go b/routers/api/v1/repo/issue_label.go index a2814a03d..b050a397f 100644 --- a/routers/api/v1/repo/issue_label.go +++ b/routers/api/v1/repo/issue_label.go @@ -98,6 +98,8 @@ func AddIssueLabels(ctx *context.APIContext) { // "$ref": "#/responses/LabelList" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.IssueLabelsOption) issue, labels, err := prepareForReplaceOrAdd(ctx, *form) @@ -154,6 +156,8 @@ func DeleteIssueLabel(ctx *context.APIContext) { // "$ref": "#/responses/empty" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/validationError" @@ -225,6 +229,8 @@ func ReplaceIssueLabels(ctx *context.APIContext) { // "$ref": "#/responses/LabelList" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.IssueLabelsOption) issue, labels, err := prepareForReplaceOrAdd(ctx, *form) if err != nil { @@ -274,6 +280,8 @@ func ClearIssueLabels(ctx *context.APIContext) { // "$ref": "#/responses/empty" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" issue, err := issues_model.GetIssueByIndex(ctx, ctx.Repo.Repository.ID, ctx.ParamsInt64(":index")) if err != nil { diff --git a/routers/api/v1/repo/issue_pin.go b/routers/api/v1/repo/issue_pin.go index 687673908..d9b1bcc89 100644 --- a/routers/api/v1/repo/issue_pin.go +++ b/routers/api/v1/repo/issue_pin.go @@ -199,6 +199,8 @@ func ListPinnedIssues(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/IssueList" + // "404": + // "$ref": "#/responses/notFound" issues, err := issues_model.GetPinnedIssues(ctx, ctx.Repo.Repository.ID, false) if err != nil { ctx.Error(http.StatusInternalServerError, "LoadPinnedIssues", err) @@ -229,6 +231,8 @@ func ListPinnedPullRequests(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/PullRequestList" + // "404": + // "$ref": "#/responses/notFound" issues, err := issues_model.GetPinnedIssues(ctx, ctx.Repo.Repository.ID, true) if err != nil { ctx.Error(http.StatusInternalServerError, "LoadPinnedPullRequests", err) @@ -290,6 +294,8 @@ func AreNewIssuePinsAllowed(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/RepoNewIssuePinsAllowed" + // "404": + // "$ref": "#/responses/notFound" pinsAllowed := api.NewIssuePinsAllowed{} var err error diff --git a/routers/api/v1/repo/issue_reaction.go b/routers/api/v1/repo/issue_reaction.go index 49e5a74aa..5210d4cce 100644 --- a/routers/api/v1/repo/issue_reaction.go +++ b/routers/api/v1/repo/issue_reaction.go @@ -46,6 +46,8 @@ func GetIssueCommentReactions(ctx *context.APIContext) { // "$ref": "#/responses/ReactionList" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" comment, err := issues_model.GetCommentByID(ctx, ctx.ParamsInt64(":id")) if err != nil { @@ -126,6 +128,8 @@ func PostIssueCommentReaction(ctx *context.APIContext) { // "$ref": "#/responses/Reaction" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.EditReactionOption) @@ -167,6 +171,8 @@ func DeleteIssueCommentReaction(ctx *context.APIContext) { // "$ref": "#/responses/empty" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.EditReactionOption) @@ -268,6 +274,8 @@ func GetIssueReactions(ctx *context.APIContext) { // "$ref": "#/responses/ReactionList" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" issue, err := issues_model.GetIssueWithAttrsByIndex(ctx, ctx.Repo.Repository.ID, ctx.ParamsInt64(":index")) if err != nil { @@ -345,6 +353,8 @@ func PostIssueReaction(ctx *context.APIContext) { // "$ref": "#/responses/Reaction" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.EditReactionOption) changeIssueReaction(ctx, *form, true) } @@ -384,6 +394,8 @@ func DeleteIssueReaction(ctx *context.APIContext) { // "$ref": "#/responses/empty" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.EditReactionOption) changeIssueReaction(ctx, *form, false) } diff --git a/routers/api/v1/repo/issue_tracked_time.go b/routers/api/v1/repo/issue_tracked_time.go index 3286a7c82..ecbc5cf00 100644 --- a/routers/api/v1/repo/issue_tracked_time.go +++ b/routers/api/v1/repo/issue_tracked_time.go @@ -178,6 +178,8 @@ func AddTime(ctx *context.APIContext) { // "$ref": "#/responses/error" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.AddTimeOption) issue, err := issues_model.GetIssueByIndex(ctx, ctx.Repo.Repository.ID, ctx.ParamsInt64(":index")) if err != nil { @@ -259,6 +261,8 @@ func ResetIssueTime(ctx *context.APIContext) { // "$ref": "#/responses/error" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" issue, err := issues_model.GetIssueByIndex(ctx, ctx.Repo.Repository.ID, ctx.ParamsInt64(":index")) if err != nil { @@ -330,6 +334,8 @@ func DeleteTime(ctx *context.APIContext) { // "$ref": "#/responses/error" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" issue, err := issues_model.GetIssueByIndex(ctx, ctx.Repo.Repository.ID, ctx.ParamsInt64(":index")) if err != nil { @@ -409,6 +415,8 @@ func ListTrackedTimesByUser(ctx *context.APIContext) { // "$ref": "#/responses/error" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" if !ctx.Repo.Repository.IsTimetrackerEnabled(ctx) { ctx.Error(http.StatusBadRequest, "", "time tracking disabled") @@ -497,6 +505,8 @@ func ListTrackedTimesByRepository(ctx *context.APIContext) { // "$ref": "#/responses/error" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" if !ctx.Repo.Repository.IsTimetrackerEnabled(ctx) { ctx.Error(http.StatusBadRequest, "", "time tracking disabled") diff --git a/routers/api/v1/repo/key.go b/routers/api/v1/repo/key.go index 824880880..b7d820d1d 100644 --- a/routers/api/v1/repo/key.go +++ b/routers/api/v1/repo/key.go @@ -80,6 +80,8 @@ func ListDeployKeys(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/DeployKeyList" + // "404": + // "$ref": "#/responses/notFound" opts := &asymkey_model.ListDeployKeysOptions{ ListOptions: utils.GetListOptions(ctx), @@ -144,6 +146,8 @@ func GetDeployKey(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/DeployKey" + // "404": + // "$ref": "#/responses/notFound" key, err := asymkey_model.GetDeployKeyByID(ctx, ctx.ParamsInt64(":id")) if err != nil { @@ -222,6 +226,8 @@ func CreateDeployKey(ctx *context.APIContext) { // responses: // "201": // "$ref": "#/responses/DeployKey" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/validationError" @@ -270,6 +276,8 @@ func DeleteDeploykey(ctx *context.APIContext) { // "$ref": "#/responses/empty" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" if err := asymkey_service.DeleteDeployKey(ctx.Doer, ctx.ParamsInt64(":id")); err != nil { if asymkey_model.IsErrKeyAccessDenied(err) { diff --git a/routers/api/v1/repo/label.go b/routers/api/v1/repo/label.go index fc9a16b58..e93c72a9f 100644 --- a/routers/api/v1/repo/label.go +++ b/routers/api/v1/repo/label.go @@ -46,6 +46,8 @@ func ListLabels(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/LabelList" + // "404": + // "$ref": "#/responses/notFound" labels, err := issues_model.GetLabelsByRepoID(ctx, ctx.Repo.Repository.ID, ctx.FormString("sort"), utils.GetListOptions(ctx)) if err != nil { @@ -90,6 +92,8 @@ func GetLabel(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Label" + // "404": + // "$ref": "#/responses/notFound" var ( l *issues_model.Label @@ -140,6 +144,8 @@ func CreateLabel(ctx *context.APIContext) { // responses: // "201": // "$ref": "#/responses/Label" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/validationError" @@ -200,6 +206,8 @@ func EditLabel(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Label" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/validationError" @@ -265,6 +273,8 @@ func DeleteLabel(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" if err := issues_model.DeleteLabel(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id")); err != nil { ctx.Error(http.StatusInternalServerError, "DeleteLabel", err) diff --git a/routers/api/v1/repo/milestone.go b/routers/api/v1/repo/milestone.go index b77fe8aca..fff9493a2 100644 --- a/routers/api/v1/repo/milestone.go +++ b/routers/api/v1/repo/milestone.go @@ -55,6 +55,8 @@ func ListMilestones(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/MilestoneList" + // "404": + // "$ref": "#/responses/notFound" milestones, total, err := issues_model.GetMilestones(issues_model.GetMilestonesOption{ ListOptions: utils.GetListOptions(ctx), @@ -102,6 +104,8 @@ func GetMilestone(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Milestone" + // "404": + // "$ref": "#/responses/notFound" milestone := getMilestoneByIDOrName(ctx) if ctx.Written() { @@ -138,6 +142,8 @@ func CreateMilestone(ctx *context.APIContext) { // responses: // "201": // "$ref": "#/responses/Milestone" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.CreateMilestoneOption) if form.Deadline == nil { @@ -196,6 +202,8 @@ func EditMilestone(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Milestone" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.EditMilestoneOption) milestone := getMilestoneByIDOrName(ctx) if ctx.Written() { @@ -248,6 +256,8 @@ func DeleteMilestone(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" m := getMilestoneByIDOrName(ctx) if ctx.Written() { diff --git a/routers/api/v1/repo/mirror.go b/routers/api/v1/repo/mirror.go index 60f1bfe0d..12542c808 100644 --- a/routers/api/v1/repo/mirror.go +++ b/routers/api/v1/repo/mirror.go @@ -48,6 +48,8 @@ func MirrorSync(ctx *context.APIContext) { // "$ref": "#/responses/empty" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" repo := ctx.Repo.Repository @@ -99,6 +101,8 @@ func PushMirrorSync(ctx *context.APIContext) { // "$ref": "#/responses/error" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" if !setting.Mirror.Enabled { ctx.Error(http.StatusBadRequest, "PushMirrorSync", "Mirror feature is disabled") @@ -154,6 +158,8 @@ func ListPushMirrors(ctx *context.APIContext) { // "$ref": "#/responses/error" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" if !setting.Mirror.Enabled { ctx.Error(http.StatusBadRequest, "GetPushMirrorsByRepoID", "Mirror feature is disabled") @@ -211,6 +217,8 @@ func GetPushMirrorByName(ctx *context.APIContext) { // "$ref": "#/responses/error" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" if !setting.Mirror.Enabled { ctx.Error(http.StatusBadRequest, "GetPushMirrorByRemoteName", "Mirror feature is disabled") @@ -263,6 +271,8 @@ func AddPushMirror(ctx *context.APIContext) { // "$ref": "#/responses/forbidden" // "400": // "$ref": "#/responses/error" + // "404": + // "$ref": "#/responses/notFound" if !setting.Mirror.Enabled { ctx.Error(http.StatusBadRequest, "AddPushMirror", "Mirror feature is disabled") diff --git a/routers/api/v1/repo/patch.go b/routers/api/v1/repo/patch.go index d2f055355..080908ab7 100644 --- a/routers/api/v1/repo/patch.go +++ b/routers/api/v1/repo/patch.go @@ -45,6 +45,8 @@ func ApplyDiffPatch(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/FileResponse" + // "404": + // "$ref": "#/responses/notFound" apiOpts := web.GetForm(ctx).(*api.ApplyDiffPatchFileOptions) opts := &files.ApplyDiffPatchOptions{ diff --git a/routers/api/v1/repo/pull.go b/routers/api/v1/repo/pull.go index f0b958c4c..01ce754c7 100644 --- a/routers/api/v1/repo/pull.go +++ b/routers/api/v1/repo/pull.go @@ -92,6 +92,8 @@ func ListPullRequests(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/PullRequestList" + // "404": + // "$ref": "#/responses/notFound" listOptions := utils.GetListOptions(ctx) @@ -274,6 +276,8 @@ func CreatePullRequest(ctx *context.APIContext) { // responses: // "201": // "$ref": "#/responses/PullRequest" + // "404": + // "$ref": "#/responses/notFound" // "409": // "$ref": "#/responses/error" // "422": @@ -463,6 +467,8 @@ func EditPullRequest(ctx *context.APIContext) { // "$ref": "#/responses/PullRequest" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" // "409": // "$ref": "#/responses/error" // "412": @@ -729,6 +735,8 @@ func MergePullRequest(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" // "405": // "$ref": "#/responses/empty" // "409": diff --git a/routers/api/v1/repo/pull_review.go b/routers/api/v1/repo/pull_review.go index a568cd565..82cbb3e76 100644 --- a/routers/api/v1/repo/pull_review.go +++ b/routers/api/v1/repo/pull_review.go @@ -819,6 +819,8 @@ func DismissPullReview(ctx *context.APIContext) { // "$ref": "#/responses/PullReview" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/validationError" opts := web.GetForm(ctx).(*api.DismissPullReviewOptions) @@ -860,6 +862,8 @@ func UnDismissPullReview(ctx *context.APIContext) { // "$ref": "#/responses/PullReview" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/validationError" dismissReview(ctx, "", false, false) diff --git a/routers/api/v1/repo/release.go b/routers/api/v1/repo/release.go index af7199d1d..be9c0cd00 100644 --- a/routers/api/v1/repo/release.go +++ b/routers/api/v1/repo/release.go @@ -150,6 +150,8 @@ func ListReleases(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/ReleaseList" + // "404": + // "$ref": "#/responses/notFound" listOptions := utils.GetListOptions(ctx) if listOptions.PageSize == 0 && ctx.FormInt("per_page") != 0 { listOptions.PageSize = ctx.FormInt("per_page") diff --git a/routers/api/v1/repo/release_attachment.go b/routers/api/v1/repo/release_attachment.go index a7d73acce..9571c8ebb 100644 --- a/routers/api/v1/repo/release_attachment.go +++ b/routers/api/v1/repo/release_attachment.go @@ -50,6 +50,8 @@ func GetReleaseAttachment(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Attachment" + // "404": + // "$ref": "#/responses/notFound" releaseID := ctx.ParamsInt64(":id") attachID := ctx.ParamsInt64(":attachment_id") @@ -98,6 +100,8 @@ func ListReleaseAttachments(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/AttachmentList" + // "404": + // "$ref": "#/responses/notFound" releaseID := ctx.ParamsInt64(":id") release, err := repo_model.GetReleaseByID(ctx, releaseID) @@ -161,6 +165,8 @@ func CreateReleaseAttachment(ctx *context.APIContext) { // "$ref": "#/responses/Attachment" // "400": // "$ref": "#/responses/error" + // "404": + // "$ref": "#/responses/notFound" // Check if attachments are enabled if !setting.Attachment.Enabled { @@ -251,6 +257,8 @@ func EditReleaseAttachment(ctx *context.APIContext) { // responses: // "201": // "$ref": "#/responses/Attachment" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.EditAttachmentOptions) @@ -315,6 +323,8 @@ func DeleteReleaseAttachment(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" // Check if release exists an load release releaseID := ctx.ParamsInt64(":id") diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go index e86743d55..e06fc2df6 100644 --- a/routers/api/v1/repo/repo.go +++ b/routers/api/v1/repo/repo.go @@ -451,6 +451,8 @@ func CreateOrgRepoDeprecated(ctx *context.APIContext) { // "$ref": "#/responses/validationError" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" CreateOrgRepo(ctx) } @@ -533,6 +535,8 @@ func Get(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Repository" + // "404": + // "$ref": "#/responses/notFound" if err := ctx.Repo.Repository.LoadAttributes(ctx); err != nil { ctx.Error(http.StatusInternalServerError, "Repository.LoadAttributes", err) @@ -559,6 +563,8 @@ func GetByID(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Repository" + // "404": + // "$ref": "#/responses/notFound" repo, err := repo_model.GetRepositoryByID(ctx, ctx.ParamsInt64(":id")) if err != nil { @@ -609,6 +615,8 @@ func Edit(ctx *context.APIContext) { // "$ref": "#/responses/Repository" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/validationError" @@ -1100,6 +1108,8 @@ func Delete(ctx *context.APIContext) { // "$ref": "#/responses/empty" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" owner := ctx.Repo.Owner repo := ctx.Repo.Repository @@ -1147,6 +1157,8 @@ func GetIssueTemplates(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/IssueTemplates" + // "404": + // "$ref": "#/responses/notFound" ret, err := issue.GetTemplatesFromDefaultBranch(ctx.Repo.Repository, ctx.Repo.GitRepo) if err != nil { ctx.Error(http.StatusInternalServerError, "GetTemplatesFromDefaultBranch", err) @@ -1176,6 +1188,8 @@ func GetIssueConfig(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/RepoIssueConfig" + // "404": + // "$ref": "#/responses/notFound" issueConfig, _ := issue.GetTemplateConfigFromDefaultBranch(ctx.Repo.Repository, ctx.Repo.GitRepo) ctx.JSON(http.StatusOK, issueConfig) } @@ -1201,6 +1215,8 @@ func ValidateIssueConfig(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/RepoIssueConfigValidation" + // "404": + // "$ref": "#/responses/notFound" _, err := issue.GetTemplateConfigFromDefaultBranch(ctx.Repo.Repository, ctx.Repo.GitRepo) if err == nil { diff --git a/routers/api/v1/repo/star.go b/routers/api/v1/repo/star.go index e4cf0ffab..fccc76b51 100644 --- a/routers/api/v1/repo/star.go +++ b/routers/api/v1/repo/star.go @@ -42,6 +42,8 @@ func ListStargazers(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/UserList" + // "404": + // "$ref": "#/responses/notFound" stargazers, err := repo_model.GetStargazers(ctx.Repo.Repository, utils.GetListOptions(ctx)) if err != nil { diff --git a/routers/api/v1/repo/status.go b/routers/api/v1/repo/status.go index 028e3083c..926d91ca8 100644 --- a/routers/api/v1/repo/status.go +++ b/routers/api/v1/repo/status.go @@ -48,6 +48,8 @@ func NewCommitStatus(ctx *context.APIContext) { // "$ref": "#/responses/CommitStatus" // "400": // "$ref": "#/responses/error" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.CreateStatusOption) sha := ctx.Params("sha") @@ -117,6 +119,8 @@ func GetCommitStatuses(ctx *context.APIContext) { // "$ref": "#/responses/CommitStatusList" // "400": // "$ref": "#/responses/error" + // "404": + // "$ref": "#/responses/notFound" getCommitStatuses(ctx, ctx.Params("sha")) } @@ -169,6 +173,8 @@ func GetCommitStatusesByRef(ctx *context.APIContext) { // "$ref": "#/responses/CommitStatusList" // "400": // "$ref": "#/responses/error" + // "404": + // "$ref": "#/responses/notFound" filter := utils.ResolveRefOrSha(ctx, ctx.Params("ref")) if ctx.Written() { @@ -245,6 +251,8 @@ func GetCombinedCommitStatusByRef(ctx *context.APIContext) { // "$ref": "#/responses/CombinedStatus" // "400": // "$ref": "#/responses/error" + // "404": + // "$ref": "#/responses/notFound" sha := utils.ResolveRefOrSha(ctx, ctx.Params("ref")) if ctx.Written() { diff --git a/routers/api/v1/repo/subscriber.go b/routers/api/v1/repo/subscriber.go index 613fbee40..61d947070 100644 --- a/routers/api/v1/repo/subscriber.go +++ b/routers/api/v1/repo/subscriber.go @@ -42,6 +42,8 @@ func ListSubscribers(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/UserList" + // "404": + // "$ref": "#/responses/notFound" subscribers, err := repo_model.GetRepoWatchers(ctx.Repo.Repository.ID, utils.GetListOptions(ctx)) if err != nil { diff --git a/routers/api/v1/repo/tag.go b/routers/api/v1/repo/tag.go index b28b6b0b9..0c0a73698 100644 --- a/routers/api/v1/repo/tag.go +++ b/routers/api/v1/repo/tag.go @@ -47,6 +47,8 @@ func ListTags(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/TagList" + // "404": + // "$ref": "#/responses/notFound" listOpts := utils.GetListOptions(ctx) @@ -93,6 +95,8 @@ func GetAnnotatedTag(ctx *context.APIContext) { // "$ref": "#/responses/AnnotatedTag" // "400": // "$ref": "#/responses/error" + // "404": + // "$ref": "#/responses/notFound" sha := ctx.Params("sha") if len(sha) == 0 { diff --git a/routers/api/v1/repo/teams.go b/routers/api/v1/repo/teams.go index d1be619ca..2887e8960 100644 --- a/routers/api/v1/repo/teams.go +++ b/routers/api/v1/repo/teams.go @@ -35,6 +35,8 @@ func ListTeams(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/TeamList" + // "404": + // "$ref": "#/responses/notFound" if !ctx.Repo.Owner.IsOrganization() { ctx.Error(http.StatusMethodNotAllowed, "noOrg", "repo is not owned by an organization") @@ -140,6 +142,8 @@ func AddTeam(ctx *context.APIContext) { // "$ref": "#/responses/validationError" // "405": // "$ref": "#/responses/error" + // "404": + // "$ref": "#/responses/notFound" changeRepoTeam(ctx, true) } @@ -174,6 +178,8 @@ func DeleteTeam(ctx *context.APIContext) { // "$ref": "#/responses/validationError" // "405": // "$ref": "#/responses/error" + // "404": + // "$ref": "#/responses/notFound" changeRepoTeam(ctx, false) } diff --git a/routers/api/v1/repo/topic.go b/routers/api/v1/repo/topic.go index 8bf3012d4..c0c05154c 100644 --- a/routers/api/v1/repo/topic.go +++ b/routers/api/v1/repo/topic.go @@ -45,6 +45,8 @@ func ListTopics(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/TopicNames" + // "404": + // "$ref": "#/responses/notFound" opts := &repo_model.FindTopicOptions{ ListOptions: utils.GetListOptions(ctx), @@ -93,6 +95,8 @@ func UpdateTopics(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/invalidTopicsError" @@ -152,6 +156,8 @@ func AddTopic(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/invalidTopicsError" @@ -217,6 +223,8 @@ func DeleteTopic(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" // "422": // "$ref": "#/responses/invalidTopicsError" @@ -271,6 +279,8 @@ func TopicSearch(ctx *context.APIContext) { // "$ref": "#/responses/TopicListResponse" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" opts := &repo_model.FindTopicOptions{ Keyword: ctx.FormString("q"), diff --git a/routers/api/v1/repo/tree.go b/routers/api/v1/repo/tree.go index 9df96204c..f63100b6e 100644 --- a/routers/api/v1/repo/tree.go +++ b/routers/api/v1/repo/tree.go @@ -53,6 +53,8 @@ func GetTree(ctx *context.APIContext) { // "$ref": "#/responses/GitTreeResponse" // "400": // "$ref": "#/responses/error" + // "404": + // "$ref": "#/responses/notFound" sha := ctx.Params(":sha") if len(sha) == 0 { diff --git a/routers/api/v1/repo/wiki.go b/routers/api/v1/repo/wiki.go index 1fd1b9193..4ea3fbd11 100644 --- a/routers/api/v1/repo/wiki.go +++ b/routers/api/v1/repo/wiki.go @@ -50,6 +50,8 @@ func NewWikiPage(ctx *context.APIContext) { // "$ref": "#/responses/error" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.CreateWikiPageOptions) @@ -124,6 +126,8 @@ func EditWikiPage(ctx *context.APIContext) { // "$ref": "#/responses/error" // "403": // "$ref": "#/responses/forbidden" + // "404": + // "$ref": "#/responses/notFound" form := web.GetForm(ctx).(*api.CreateWikiPageOptions) diff --git a/routers/api/v1/user/follower.go b/routers/api/v1/user/follower.go index bc03b22ea..1aa906ccb 100644 --- a/routers/api/v1/user/follower.go +++ b/routers/api/v1/user/follower.go @@ -80,6 +80,8 @@ func ListFollowers(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/UserList" + // "404": + // "$ref": "#/responses/notFound" listUserFollowers(ctx, ctx.ContextUser) } @@ -142,6 +144,8 @@ func ListFollowing(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/UserList" + // "404": + // "$ref": "#/responses/notFound" listUserFollowing(ctx, ctx.ContextUser) } @@ -217,6 +221,8 @@ func Follow(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" if err := user_model.FollowUser(ctx.Doer.ID, ctx.ContextUser.ID); err != nil { ctx.Error(http.StatusInternalServerError, "FollowUser", err) @@ -239,6 +245,8 @@ func Unfollow(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" if err := user_model.UnfollowUser(ctx.Doer.ID, ctx.ContextUser.ID); err != nil { ctx.Error(http.StatusInternalServerError, "UnfollowUser", err) diff --git a/routers/api/v1/user/gpg_key.go b/routers/api/v1/user/gpg_key.go index 84327cc92..4aebbaf31 100644 --- a/routers/api/v1/user/gpg_key.go +++ b/routers/api/v1/user/gpg_key.go @@ -63,6 +63,8 @@ func ListGPGKeys(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/GPGKeyList" + // "404": + // "$ref": "#/responses/notFound" listGPGKeys(ctx, ctx.ContextUser.ID, utils.GetListOptions(ctx)) } diff --git a/routers/api/v1/user/key.go b/routers/api/v1/user/key.go index 6c04d0943..21cc56084 100644 --- a/routers/api/v1/user/key.go +++ b/routers/api/v1/user/key.go @@ -150,6 +150,8 @@ func ListPublicKeys(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/PublicKeyList" + // "404": + // "$ref": "#/responses/notFound" listPublicKeys(ctx, ctx.ContextUser) } diff --git a/routers/api/v1/user/repo.go b/routers/api/v1/user/repo.go index 86af8cb44..26ebf8974 100644 --- a/routers/api/v1/user/repo.go +++ b/routers/api/v1/user/repo.go @@ -78,6 +78,8 @@ func ListUserRepos(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/RepositoryList" + // "404": + // "$ref": "#/responses/notFound" private := ctx.IsSigned listUserRepos(ctx, ctx.ContextUser, private) @@ -160,6 +162,8 @@ func ListOrgRepos(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/RepositoryList" + // "404": + // "$ref": "#/responses/notFound" listUserRepos(ctx, ctx.Org.Organization.AsUser(), ctx.IsSigned) } diff --git a/routers/api/v1/user/star.go b/routers/api/v1/user/star.go index 9399ad2b4..09f799cc6 100644 --- a/routers/api/v1/user/star.go +++ b/routers/api/v1/user/star.go @@ -61,6 +61,8 @@ func GetStarredRepos(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/RepositoryList" + // "404": + // "$ref": "#/responses/notFound" private := ctx.ContextUser.ID == ctx.Doer.ID repos, err := getStarredRepos(ctx, ctx.ContextUser, private, utils.GetListOptions(ctx)) @@ -150,6 +152,8 @@ func Star(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" err := repo_model.StarRepo(ctx.Doer.ID, ctx.Repo.Repository.ID, true) if err != nil { @@ -178,6 +182,8 @@ func Unstar(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" err := repo_model.StarRepo(ctx.Doer.ID, ctx.Repo.Repository.ID, false) if err != nil { diff --git a/routers/api/v1/user/watch.go b/routers/api/v1/user/watch.go index 172d9d5cc..b5899baa9 100644 --- a/routers/api/v1/user/watch.go +++ b/routers/api/v1/user/watch.go @@ -59,6 +59,8 @@ func GetWatchedRepos(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/RepositoryList" + // "404": + // "$ref": "#/responses/notFound" private := ctx.ContextUser.ID == ctx.Doer.ID repos, total, err := getWatchedRepos(ctx, ctx.ContextUser, private, utils.GetListOptions(ctx)) @@ -155,6 +157,8 @@ func Watch(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/WatchInfo" + // "404": + // "$ref": "#/responses/notFound" err := repo_model.WatchRepo(ctx, ctx.Doer.ID, ctx.Repo.Repository.ID, true) if err != nil { @@ -190,6 +194,8 @@ func Unwatch(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" err := repo_model.WatchRepo(ctx, ctx.Doer.ID, ctx.Repo.Repository.ID, false) if err != nil { diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl index 03beca3f7..88dc9ea1c 100644 --- a/templates/swagger/v1_json.tmpl +++ b/templates/swagger/v1_json.tmpl @@ -1394,6 +1394,9 @@ "403": { "$ref": "#/responses/forbidden" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/validationError" } @@ -1487,6 +1490,9 @@ "responses": { "200": { "$ref": "#/responses/Organization" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -1511,6 +1517,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -1546,6 +1555,9 @@ "responses": { "200": { "$ref": "#/responses/Organization" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -1584,6 +1596,9 @@ "responses": { "200": { "$ref": "#/responses/SecretList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -1757,6 +1772,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -1781,6 +1799,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -1819,6 +1840,9 @@ "responses": { "200": { "$ref": "#/responses/HookList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -1854,6 +1878,9 @@ "responses": { "201": { "$ref": "#/responses/Hook" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -1888,6 +1915,9 @@ "responses": { "200": { "$ref": "#/responses/Hook" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -1920,6 +1950,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -1962,6 +1995,9 @@ "responses": { "200": { "$ref": "#/responses/Hook" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -2000,6 +2036,9 @@ "responses": { "200": { "$ref": "#/responses/LabelList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -2035,6 +2074,9 @@ "201": { "$ref": "#/responses/Label" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/validationError" } @@ -2071,6 +2113,9 @@ "responses": { "200": { "$ref": "#/responses/Label" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -2100,6 +2145,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -2143,6 +2191,9 @@ "200": { "$ref": "#/responses/Label" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/validationError" } @@ -2183,6 +2234,9 @@ "responses": { "200": { "$ref": "#/responses/UserList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -2250,6 +2304,9 @@ "responses": { "204": { "description": "member removed" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -2288,6 +2345,9 @@ "responses": { "200": { "$ref": "#/responses/UserList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -2355,6 +2415,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -2389,6 +2452,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -2427,6 +2493,9 @@ "responses": { "200": { "$ref": "#/responses/RepositoryList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -2508,6 +2577,9 @@ "responses": { "200": { "$ref": "#/responses/TeamList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -2543,6 +2615,9 @@ "201": { "$ref": "#/responses/Team" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/validationError" } @@ -2609,6 +2684,9 @@ } } } + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -2682,6 +2760,9 @@ "responses": { "200": { "$ref": "#/responses/PackageList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -3150,6 +3231,9 @@ "responses": { "200": { "$ref": "#/responses/Repository" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -3184,6 +3268,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -3227,6 +3314,9 @@ "403": { "$ref": "#/responses/forbidden" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/validationError" } @@ -3466,6 +3556,9 @@ "responses": { "200": { "$ref": "#/responses/UserList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -3506,6 +3599,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -3537,6 +3633,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -3985,6 +4084,9 @@ "responses": { "200": { "$ref": "#/responses/UserList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -4077,6 +4179,9 @@ "204": { "$ref": "#/responses/empty" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/validationError" } @@ -4118,6 +4223,9 @@ "204": { "$ref": "#/responses/empty" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/validationError" } @@ -4308,6 +4416,9 @@ }, "400": { "$ref": "#/responses/error" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -4389,6 +4500,9 @@ }, "400": { "$ref": "#/responses/error" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -4749,6 +4863,9 @@ "responses": { "200": { "$ref": "#/responses/FileResponse" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -4843,6 +4960,9 @@ "responses": { "200": { "$ref": "#/responses/RepositoryList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -4885,6 +5005,9 @@ "403": { "$ref": "#/responses/forbidden" }, + "404": { + "$ref": "#/responses/notFound" + }, "409": { "description": "The repository with the same name already exists." }, @@ -4933,6 +5056,9 @@ }, "400": { "$ref": "#/responses/error" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -5219,6 +5345,9 @@ }, "400": { "$ref": "#/responses/error" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -5280,6 +5409,9 @@ }, "400": { "$ref": "#/responses/error" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -5325,6 +5457,9 @@ "responses": { "200": { "$ref": "#/responses/HookList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -5366,6 +5501,9 @@ "responses": { "201": { "$ref": "#/responses/Hook" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -5399,6 +5537,9 @@ "responses": { "200": { "$ref": "#/responses/GitHookList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -5663,6 +5804,9 @@ "responses": { "200": { "$ref": "#/responses/Hook" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -5710,6 +5854,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -5743,6 +5890,9 @@ "responses": { "200": { "$ref": "#/responses/RepoIssueConfig" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -5776,6 +5926,9 @@ "responses": { "200": { "$ref": "#/responses/RepoIssueConfigValidation" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -5809,6 +5962,9 @@ "responses": { "200": { "$ref": "#/responses/IssueTemplates" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -5925,6 +6081,9 @@ "responses": { "200": { "$ref": "#/responses/IssueList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -5970,6 +6129,9 @@ "403": { "$ref": "#/responses/forbidden" }, + "404": { + "$ref": "#/responses/notFound" + }, "412": { "$ref": "#/responses/error" }, @@ -6034,6 +6196,9 @@ "responses": { "200": { "$ref": "#/responses/CommentList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -6501,6 +6666,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -6556,6 +6724,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -6608,6 +6779,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -6641,6 +6815,9 @@ "responses": { "200": { "$ref": "#/responses/IssueList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -7104,6 +7281,9 @@ "responses": { "200": { "$ref": "#/responses/IssueList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -7197,6 +7377,9 @@ "responses": { "200": { "$ref": "#/responses/Issue" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -7252,6 +7435,9 @@ "responses": { "200": { "$ref": "#/responses/CommentList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -7304,6 +7490,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -7531,6 +7720,9 @@ "responses": { "200": { "$ref": "#/responses/IssueList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -7624,6 +7816,9 @@ "responses": { "200": { "$ref": "#/responses/Issue" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -7720,6 +7915,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -7772,6 +7970,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -7814,6 +8015,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -7867,6 +8071,9 @@ "403": { "$ref": "#/responses/forbidden" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/validationError" } @@ -8066,6 +8273,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -8121,6 +8331,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -8173,6 +8386,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -8623,6 +8839,9 @@ "responses": { "200": { "$ref": "#/responses/TimelineList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -8754,6 +8973,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -8802,6 +9024,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -8860,6 +9085,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -8917,6 +9145,9 @@ "responses": { "200": { "$ref": "#/responses/DeployKeyList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -8959,6 +9190,9 @@ "201": { "$ref": "#/responses/DeployKey" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/validationError" } @@ -9002,6 +9236,9 @@ "responses": { "200": { "$ref": "#/responses/DeployKey" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -9041,6 +9278,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -9086,6 +9326,9 @@ "responses": { "200": { "$ref": "#/responses/LabelList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -9128,6 +9371,9 @@ "201": { "$ref": "#/responses/Label" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/validationError" } @@ -9171,6 +9417,9 @@ "responses": { "200": { "$ref": "#/responses/Label" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -9207,6 +9456,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -9257,6 +9509,9 @@ "200": { "$ref": "#/responses/Label" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/validationError" } @@ -9398,6 +9653,9 @@ "responses": { "200": { "$ref": "#/responses/MilestoneList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -9439,6 +9697,9 @@ "responses": { "201": { "$ref": "#/responses/Milestone" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -9479,6 +9740,9 @@ "responses": { "200": { "$ref": "#/responses/Milestone" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -9514,6 +9778,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -9562,6 +9829,9 @@ "responses": { "200": { "$ref": "#/responses/Milestone" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -9598,6 +9868,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -9631,6 +9904,9 @@ "responses": { "200": { "$ref": "#/responses/RepoNewIssuePinsAllowed" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -9876,6 +10152,9 @@ "responses": { "200": { "$ref": "#/responses/PullRequestList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -9918,6 +10197,9 @@ "201": { "$ref": "#/responses/PullRequest" }, + "404": { + "$ref": "#/responses/notFound" + }, "409": { "$ref": "#/responses/error" }, @@ -9956,6 +10238,9 @@ "responses": { "200": { "$ref": "#/responses/PullRequestList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -10053,6 +10338,9 @@ "403": { "$ref": "#/responses/forbidden" }, + "404": { + "$ref": "#/responses/notFound" + }, "409": { "$ref": "#/responses/error" }, @@ -10343,6 +10631,9 @@ "200": { "$ref": "#/responses/empty" }, + "404": { + "$ref": "#/responses/notFound" + }, "405": { "$ref": "#/responses/empty" }, @@ -10889,6 +11180,9 @@ "403": { "$ref": "#/responses/forbidden" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/validationError" } @@ -10944,6 +11238,9 @@ "403": { "$ref": "#/responses/forbidden" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/validationError" } @@ -11060,6 +11357,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -11107,6 +11407,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -11146,6 +11449,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -11192,6 +11498,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -11348,6 +11657,9 @@ "responses": { "200": { "$ref": "#/responses/ReleaseList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -11694,6 +12006,9 @@ "responses": { "200": { "$ref": "#/responses/AttachmentList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -11752,6 +12067,9 @@ }, "400": { "$ref": "#/responses/error" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -11801,6 +12119,9 @@ "responses": { "200": { "$ref": "#/responses/Attachment" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -11848,6 +12169,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -11905,6 +12229,9 @@ "responses": { "201": { "$ref": "#/responses/Attachment" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -11938,6 +12265,9 @@ "responses": { "200": { "$ref": "#/responses/UserList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -12019,6 +12349,9 @@ "responses": { "200": { "$ref": "#/responses/UserList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -12100,6 +12433,9 @@ }, "400": { "$ref": "#/responses/error" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -12148,6 +12484,9 @@ }, "400": { "$ref": "#/responses/error" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -12193,6 +12532,9 @@ "responses": { "200": { "$ref": "#/responses/UserList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -12254,6 +12596,9 @@ "responses": { "200": { "$ref": "#/responses/WatchInfo" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -12282,6 +12627,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -12327,6 +12675,9 @@ "responses": { "200": { "$ref": "#/responses/TagList" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -12497,6 +12848,9 @@ "responses": { "200": { "$ref": "#/responses/TeamList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -12582,6 +12936,9 @@ "204": { "$ref": "#/responses/empty" }, + "404": { + "$ref": "#/responses/notFound" + }, "405": { "$ref": "#/responses/error" }, @@ -12626,6 +12983,9 @@ "204": { "$ref": "#/responses/empty" }, + "404": { + "$ref": "#/responses/notFound" + }, "405": { "$ref": "#/responses/error" }, @@ -12702,6 +13062,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -12749,6 +13112,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -12794,6 +13160,9 @@ "responses": { "200": { "$ref": "#/responses/TopicNames" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -12833,6 +13202,9 @@ "204": { "$ref": "#/responses/empty" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/invalidTopicsError" } @@ -12876,6 +13248,9 @@ "204": { "$ref": "#/responses/empty" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/invalidTopicsError" } @@ -12917,6 +13292,9 @@ "204": { "$ref": "#/responses/empty" }, + "404": { + "$ref": "#/responses/notFound" + }, "422": { "$ref": "#/responses/invalidTopicsError" } @@ -13094,6 +13472,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -13229,6 +13610,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -13408,6 +13792,9 @@ "responses": { "200": { "$ref": "#/responses/Repository" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -13523,6 +13910,9 @@ "responses": { "200": { "$ref": "#/responses/Team" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -13545,6 +13935,9 @@ "responses": { "204": { "description": "team deleted" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -13579,6 +13972,9 @@ "responses": { "200": { "$ref": "#/responses/Team" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -13667,6 +14063,9 @@ "responses": { "200": { "$ref": "#/responses/UserList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -13813,6 +14212,9 @@ "responses": { "200": { "$ref": "#/responses/RepositoryList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -13899,6 +14301,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -13942,6 +14347,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -13983,6 +14391,9 @@ }, "403": { "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -14452,6 +14863,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -14473,6 +14887,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -14949,6 +15366,9 @@ "responses": { "200": { "$ref": "#/responses/OrganizationList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -15150,6 +15570,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -15178,6 +15601,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -15498,6 +15924,9 @@ "responses": { "200": { "$ref": "#/responses/UserList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -15536,6 +15965,9 @@ "responses": { "200": { "$ref": "#/responses/UserList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -15607,6 +16039,9 @@ "responses": { "200": { "$ref": "#/responses/GPGKeyList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -15680,6 +16115,9 @@ "responses": { "200": { "$ref": "#/responses/PublicKeyList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -15718,6 +16156,9 @@ "responses": { "200": { "$ref": "#/responses/OrganizationList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -15795,6 +16236,9 @@ "responses": { "200": { "$ref": "#/responses/RepositoryList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -15833,6 +16277,9 @@ "responses": { "200": { "$ref": "#/responses/RepositoryList" + }, + "404": { + "$ref": "#/responses/notFound" } } } @@ -15871,6 +16318,9 @@ "responses": { "200": { "$ref": "#/responses/RepositoryList" + }, + "404": { + "$ref": "#/responses/notFound" } } }