Browse Source

api/repo: fix cannot reponse branch with slashes (#4198)

Unknwon 8 years ago
parent
commit
3eb57370a6
3 changed files with 9 additions and 4 deletions
  1. 1 1
      modules/context/api.go
  2. 1 1
      routers/api/v1/api.go
  3. 7 2
      routers/api/v1/repo/branch.go

+ 1 - 1
modules/context/api.go

@@ -32,7 +32,7 @@ func (ctx *APIContext) Error(status int, title string, obj interface{}) {
 	}
 
 	if status == 500 {
-		log.Error(4, "%s: %s", title, message)
+		log.Error(3, "%s: %s", title, message)
 	}
 
 	ctx.JSON(status, map[string]string{

+ 1 - 1
routers/api/v1/api.go

@@ -258,7 +258,7 @@ func RegisterRoutes(m *macaron.Macaron) {
 				m.Get("/forks", repo.ListForks)
 				m.Group("/branches", func() {
 					m.Get("", repo.ListBranches)
-					m.Get("/:branchname", repo.GetBranch)
+					m.Get("/*", repo.GetBranch)
 				})
 				m.Group("/keys", func() {
 					m.Combo("").Get(repo.ListDeployKeys).

+ 7 - 2
routers/api/v1/repo/branch.go

@@ -7,15 +7,20 @@ package repo
 import (
 	api "github.com/gogits/go-gogs-client"
 
+	"github.com/gogits/gogs/models"
 	"github.com/gogits/gogs/modules/context"
 	"github.com/gogits/gogs/routers/api/v1/convert"
 )
 
 // https://github.com/gogits/go-gogs-client/wiki/Repositories#get-branch
 func GetBranch(ctx *context.APIContext) {
-	branch, err := ctx.Repo.Repository.GetBranch(ctx.Params(":branchname"))
+	branch, err := ctx.Repo.Repository.GetBranch(ctx.Params("*"))
 	if err != nil {
-		ctx.Error(500, "GetBranch", err)
+		if models.IsErrBranchNotExist(err) {
+			ctx.Error(404, "GetBranch", err)
+		} else {
+			ctx.Error(500, "GetBranch", err)
+		}
 		return
 	}