[API] GetRelease by tag only return release (#14397)

get release by tag should filter out tag releases to be consistent with list releases and get by id

Co-authored-by: 6543 <6543@obermui.de>
release/v1.15
Cameron Braid 2021-02-04 14:12:25 +11:00 committed by GitHub
parent 87009ab40a
commit 3c965c3e30
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 4 deletions

View File

@ -7,7 +7,6 @@ package integrations
import ( import (
"fmt" "fmt"
"net/http" "net/http"
"strings"
"testing" "testing"
"code.gitea.io/gitea/models" "code.gitea.io/gitea/models"
@ -152,7 +151,7 @@ func TestAPIGetReleaseByTag(t *testing.T) {
var err *api.APIError var err *api.APIError
DecodeJSON(t, resp, &err) DecodeJSON(t, resp, &err)
assert.True(t, strings.HasPrefix(err.Message, "release tag does not exist")) assert.EqualValues(t, "Not Found", err.Message)
} }
func TestAPIDeleteTagByName(t *testing.T) { func TestAPIDeleteTagByName(t *testing.T) {

View File

@ -48,14 +48,19 @@ func GetReleaseTag(ctx *context.APIContext) {
release, err := models.GetRelease(ctx.Repo.Repository.ID, tag) release, err := models.GetRelease(ctx.Repo.Repository.ID, tag)
if err != nil { if err != nil {
if models.IsErrReleaseNotExist(err) { if models.IsErrReleaseNotExist(err) {
ctx.Error(http.StatusNotFound, "GetRelease", err) ctx.NotFound()
return return
} }
ctx.Error(http.StatusInternalServerError, "GetRelease", err) ctx.Error(http.StatusInternalServerError, "GetRelease", err)
return return
} }
if err := release.LoadAttributes(); err != nil { if release.IsTag {
ctx.NotFound()
return
}
if err = release.LoadAttributes(); err != nil {
ctx.Error(http.StatusInternalServerError, "LoadAttributes", err) ctx.Error(http.StatusInternalServerError, "LoadAttributes", err)
return return
} }