Merge pull request #1889 from mjwwit/master

Remove /refs/tags or /refs/heads from Gogs remote File() when using build.Ref
This commit is contained in:
Brad Rydzewski 2016-12-26 11:26:27 -05:00 committed by GitHub
commit 43fbbe4fab
3 changed files with 23 additions and 4 deletions

View file

@ -30,12 +30,13 @@ func getRepo(c *gin.Context) {
} }
func getRepoFile(c *gin.Context) { func getRepoFile(c *gin.Context) {
switch c.Param("file") { if c.Param("file") == "file_not_found" {
case "file_not_found":
c.String(404, "") c.String(404, "")
default: }
if c.Param("commit") == "v1.0.0" || c.Param("commit") == "9ecad50" {
c.String(200, repoFilePayload) c.String(200, repoFilePayload)
} }
c.String(404, "")
} }
func createRepoHook(c *gin.Context) { func createRepoHook(c *gin.Context) {

View file

@ -6,6 +6,7 @@ import (
"net" "net"
"net/http" "net/http"
"net/url" "net/url"
"strings"
"github.com/drone/drone/model" "github.com/drone/drone/model"
"github.com/drone/drone/remote" "github.com/drone/drone/remote"
@ -176,7 +177,14 @@ func (c *client) File(u *model.User, r *model.Repo, b *model.Build, f string) ([
client := c.newClientToken(u.Token) client := c.newClientToken(u.Token)
buildRef := b.Commit buildRef := b.Commit
if buildRef == "" { if buildRef == "" {
buildRef = b.Ref // Remove refs/tags or refs/heads, Gogs needs a short ref
buildRef = strings.TrimPrefix(
strings.TrimPrefix(
b.Ref,
"refs/heads/",
),
"refs/tags/",
)
} }
cfg, err := client.GetFile(r.Owner, r.Name, buildRef, f) cfg, err := client.GetFile(r.Owner, r.Name, buildRef, f)
return cfg, err return cfg, err

View file

@ -128,6 +128,12 @@ func Test_gogs(t *testing.T) {
g.Assert(string(raw)).Equal("{ platform: linux/amd64 }") g.Assert(string(raw)).Equal("{ platform: linux/amd64 }")
}) })
g.It("Should return a repository file from a ref", func() {
raw, err := c.File(fakeUser, fakeRepo, fakeBuildWithRef, ".drone.yml")
g.Assert(err == nil).IsTrue()
g.Assert(string(raw)).Equal("{ platform: linux/amd64 }")
})
g.Describe("Given an authentication request", func() { g.Describe("Given an authentication request", func() {
g.It("Should redirect to login form") g.It("Should redirect to login form")
g.It("Should create an access token") g.It("Should create an access token")
@ -178,4 +184,8 @@ var (
fakeBuild = &model.Build{ fakeBuild = &model.Build{
Commit: "9ecad50", Commit: "9ecad50",
} }
fakeBuildWithRef = &model.Build{
Ref: "refs/tags/v1.0.0",
}
) )