summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2016-02-02 17:07:40 -0500
committerUnknwon <u@gogs.io>2016-02-02 17:07:40 -0500
commit995487e82259d9a5e912d57f00dda68db8607d49 (patch)
tree3c937dd5c1fa0a364b7a348f8d9ca70f7936237d
parent5e97693e0e44037bdf60c6399f957102fed7c93c (diff)
downloadgitea-995487e82259d9a5e912d57f00dda68db8607d49.tar.gz
gitea-995487e82259d9a5e912d57f00dda68db8607d49.zip
Minor fix for #2506
-rw-r--r--models/error.go20
-rw-r--r--models/repo.go14
-rw-r--r--models/repo_branch.go24
-rw-r--r--routers/api/v1/repo/branch.go37
4 files changed, 55 insertions, 40 deletions
diff --git a/models/error.go b/models/error.go
index 8e2048ded9..cd7fa35de4 100644
--- a/models/error.go
+++ b/models/error.go
@@ -392,6 +392,26 @@ func (err ErrReleaseNotExist) Error() string {
return fmt.Sprintf("Release tag does not exist [id: %d, tag_name: %s]", err.ID, err.TagName)
}
+// __________ .__
+// \______ \____________ ____ ____ | |__
+// | | _/\_ __ \__ \ / \_/ ___\| | \
+// | | \ | | \// __ \| | \ \___| Y \
+// |______ / |__| (____ /___| /\___ >___| /
+// \/ \/ \/ \/ \/
+
+type ErrBranchNotExist struct {
+ Name string
+}
+
+func IsErrBranchNotExist(err error) bool {
+ _, ok := err.(ErrBranchNotExist)
+ return ok
+}
+
+func (err ErrBranchNotExist) Error() string {
+ return fmt.Sprintf("Branch does not exist [name: %s]", err.Name)
+}
+
// __ __ ___. .__ __
// / \ / \ ____\_ |__ | |__ ____ ____ | | __
// \ \/\/ // __ \| __ \| | \ / _ \ / _ \| |/ /
diff --git a/models/repo.go b/models/repo.go
index a0074a2953..8ce1f7190c 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -288,20 +288,6 @@ func (repo *Repository) GetMirror() (err error) {
return err
}
-func (repo *Repository) GetBranch(br string) (*Branch, error) {
- if(!git.IsBranchExist(repo.RepoPath(), br)){
- return nil, fmt.Errorf("Branch does not exist: %s", br);
- }
- return &Branch{
- Path: repo.RepoPath(),
- Name: br,
- },nil
-}
-
-func (repo *Repository) GetBranches() ([]*Branch, error) {
- return GetBranchesByPath(repo.RepoPath())
-}
-
func (repo *Repository) GetBaseRepo() (err error) {
if !repo.IsFork {
return nil
diff --git a/models/repo_branch.go b/models/repo_branch.go
index b784f7d537..9cf2e9c43e 100644
--- a/models/repo_branch.go
+++ b/models/repo_branch.go
@@ -9,8 +9,8 @@ import (
)
type Branch struct {
- Path string
- Name string
+ Path string
+ Name string
}
func GetBranchesByPath(path string) ([]*Branch, error) {
@@ -24,14 +24,28 @@ func GetBranchesByPath(path string) ([]*Branch, error) {
return nil, err
}
- Branches := make([]*Branch, len(brs))
+ branches := make([]*Branch, len(brs))
for i := range brs {
- Branches[i] = &Branch{
+ branches[i] = &Branch{
Path: path,
Name: brs[i],
}
}
- return Branches, nil
+ return branches, nil
+}
+
+func (repo *Repository) GetBranch(br string) (*Branch, error) {
+ if !git.IsBranchExist(repo.RepoPath(), br) {
+ return nil, &ErrBranchNotExist{br}
+ }
+ return &Branch{
+ Path: repo.RepoPath(),
+ Name: br,
+ }, nil
+}
+
+func (repo *Repository) GetBranches() ([]*Branch, error) {
+ return GetBranchesByPath(repo.RepoPath())
}
func (br *Branch) GetCommit() (*git.Commit, error) {
diff --git a/routers/api/v1/repo/branch.go b/routers/api/v1/repo/branch.go
index d322b6b592..e2f15ff5e5 100644
--- a/routers/api/v1/repo/branch.go
+++ b/routers/api/v1/repo/branch.go
@@ -11,45 +11,40 @@ import (
"github.com/gogits/gogs/routers/api/v1/convert"
)
-// Temporary: https://gist.github.com/sapk/df64347ff218baf4a277#get-a-branch
-// https://github.com/gogits/go-gogs-client/wiki/Repositories-Branches#get-a-branch
+// https://github.com/gogits/go-gogs-client/wiki/Repositories#get-branch
func GetBranch(ctx *middleware.Context) {
- // Getting the branch requested
branch, err := ctx.Repo.Repository.GetBranch(ctx.Params(":branchname"))
if err != nil {
- ctx.APIError(500, "Repository.GetBranch", err)
+ ctx.APIError(500, "GetBranch", err)
return
}
- // Getting the last commit of the branch
+
c, err := branch.GetCommit()
if err != nil {
- ctx.APIError(500, "Branch.GetCommit", err)
+ ctx.APIError(500, "GetCommit", err)
return
}
- // Converting to API format and send payload
- ctx.JSON(200, convert.ToApiBranch(branch,c))
+
+ ctx.JSON(200, convert.ToApiBranch(branch, c))
}
-// Temporary: https://gist.github.com/sapk/df64347ff218baf4a277#list-branches
-// https://github.com/gogits/go-gogs-client/wiki/Repositories-Branches#list-branches
+// https://github.com/gogits/go-gogs-client/wiki/Repositories#list-branches
func ListBranches(ctx *middleware.Context) {
- // Listing of branches
- Branches, err := ctx.Repo.Repository.GetBranches()
+ branches, err := ctx.Repo.Repository.GetBranches()
if err != nil {
- ctx.APIError(500, "Repository.GetBranches", err)
+ ctx.APIError(500, "GetBranches", err)
return
}
- // Getting the last commit of each branch
- apiBranches := make([]*api.Branch, len(Branches))
- for i := range Branches {
- c, err := Branches[i].GetCommit()
+
+ apiBranches := make([]*api.Branch, len(branches))
+ for i := range branches {
+ c, err := branches[i].GetCommit()
if err != nil {
- ctx.APIError(500, "Branch.GetCommit", err)
+ ctx.APIError(500, "GetCommit", err)
return
}
- // Converting to API format
- apiBranches[i] = convert.ToApiBranch(Branches[i],c)
+ apiBranches[i] = convert.ToApiBranch(branches[i], c)
}
- // Sending the payload
+
ctx.JSON(200, &apiBranches)
}