]> source.dussan.org Git - gitea.git/commitdiff
[API] GetRelease by tag only return release (#14397)
authorCameron Braid <cameron@drivenow.com.au>
Thu, 4 Feb 2021 03:12:25 +0000 (14:12 +1100)
committerGitHub <noreply@github.com>
Thu, 4 Feb 2021 03:12:25 +0000 (04:12 +0100)
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>
integrations/api_releases_test.go
routers/api/v1/repo/release_tags.go

index 870d7d0e64d6adc755cce9e027c8cb8f4599d5d4..2b310d11e0847e5dd6f75e7b2884ce72613d3faa 100644 (file)
@@ -7,7 +7,6 @@ package integrations
 import (
        "fmt"
        "net/http"
-       "strings"
        "testing"
 
        "code.gitea.io/gitea/models"
@@ -152,7 +151,7 @@ func TestAPIGetReleaseByTag(t *testing.T) {
 
        var err *api.APIError
        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) {
index ef07ce5e1ad568468c03f9b866bbb1370b297933..70011a6a8edcc28ef0cfcb021be1d8c4be37a459 100644 (file)
@@ -48,14 +48,19 @@ func GetReleaseTag(ctx *context.APIContext) {
        release, err := models.GetRelease(ctx.Repo.Repository.ID, tag)
        if err != nil {
                if models.IsErrReleaseNotExist(err) {
-                       ctx.Error(http.StatusNotFound, "GetRelease", err)
+                       ctx.NotFound()
                        return
                }
                ctx.Error(http.StatusInternalServerError, "GetRelease", err)
                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)
                return
        }