From b84303ef6e73e2436f0c4c3985020be6bbbb5d1e Mon Sep 17 00:00:00 2001 From: Giteabot Date: Mon, 4 Mar 2024 01:10:22 +0800 Subject: [PATCH] Fix 500 when pushing release to an empty repo (#29554) (#29564) Backport #29554 by @lng2020 As title. The former code directly used `ctx.Repo.GitRepo`, causing 500. https://github.com/go-gitea/gitea/blob/22b4f0c09f1de5e581929bd10f39833d30d2c482/routers/api/v1/repo/release.go#L241 Co-authored-by: Nanguan Lin --- routers/api/v1/repo/release.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/routers/api/v1/repo/release.go b/routers/api/v1/repo/release.go index 6c70bffca3..dee6ae58bb 100644 --- a/routers/api/v1/repo/release.go +++ b/routers/api/v1/repo/release.go @@ -4,6 +4,7 @@ package repo import ( + "fmt" "net/http" "code.gitea.io/gitea/models" @@ -221,6 +222,10 @@ func CreateRelease(ctx *context.APIContext) { // "409": // "$ref": "#/responses/error" form := web.GetForm(ctx).(*api.CreateReleaseOption) + if ctx.Repo.Repository.IsEmpty { + ctx.Error(http.StatusUnprocessableEntity, "RepoIsEmpty", fmt.Errorf("repo is empty")) + return + } rel, err := repo_model.GetRelease(ctx, ctx.Repo.Repository.ID, form.TagName) if err != nil { if !repo_model.IsErrReleaseNotExist(err) {