1
0
Fork 0
forked from forgejo/forgejo

API: Get release by tags endpoint (#12932)

Get a release based on a tag name (for which a release exists).
Based on:
https://developer.github.com/v3/repos/releases/#get-a-release-by-tag-name

Co-authored-by: 赵智超 <1012112796@qq.com>
Co-authored-by: 6543 <6543@obermui.de>
This commit is contained in:
Johan Van de Wauw 2020-09-25 21:11:43 +02:00 committed by GitHub
parent d71eaacbf2
commit 34d9cb335c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 140 additions and 0 deletions

View file

@ -7,6 +7,7 @@ package integrations
import (
"fmt"
"net/http"
"strings"
"testing"
"code.gitea.io/gitea/models"
@ -120,3 +121,36 @@ func TestAPICreateReleaseToDefaultBranchOnExistingTag(t *testing.T) {
createNewReleaseUsingAPI(t, session, token, owner, repo, "v0.0.1", "", "v0.0.1", "test")
}
func TestAPIGetReleaseByTag(t *testing.T) {
defer prepareTestEnv(t)()
repo := models.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
owner := models.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
session := loginUser(t, owner.LowerName)
tag := "v1.1"
urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/%s/",
owner.Name, repo.Name, tag)
req := NewRequestf(t, "GET", urlStr)
resp := session.MakeRequest(t, req, http.StatusOK)
var release *api.Release
DecodeJSON(t, resp, &release)
assert.Equal(t, "testing-release", release.Title)
nonexistingtag := "nonexistingtag"
urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/%s/",
owner.Name, repo.Name, nonexistingtag)
req = NewRequestf(t, "GET", urlStr)
resp = session.MakeRequest(t, req, http.StatusNotFound)
var err *api.APIError
DecodeJSON(t, resp, &err)
assert.True(t, strings.HasPrefix(err.Message, "release tag does not exist"))
}