Gracefully handle bare repositories on API operations. (#1932)
Signed-off-by: Dennis Keitzel <github@pinshot.net>
This commit is contained in:
parent
f2fcd9dcd8
commit
96b4780727
3 changed files with 12 additions and 2 deletions
|
@ -39,7 +39,7 @@ func GetBranchesByPath(path string) ([]*Branch, error) {
|
|||
// GetBranch returns a branch by it's name
|
||||
func (repo *Repository) GetBranch(branch string) (*Branch, error) {
|
||||
if !git.IsBranchExist(repo.RepoPath(), branch) {
|
||||
return nil, &ErrBranchNotExist{branch}
|
||||
return nil, ErrBranchNotExist{branch}
|
||||
}
|
||||
return &Branch{
|
||||
Path: repo.RepoPath(),
|
||||
|
|
|
@ -7,6 +7,7 @@ package repo
|
|||
import (
|
||||
api "code.gitea.io/sdk/gitea"
|
||||
|
||||
"code.gitea.io/gitea/models"
|
||||
"code.gitea.io/gitea/modules/context"
|
||||
"code.gitea.io/gitea/routers/api/v1/convert"
|
||||
)
|
||||
|
@ -16,7 +17,11 @@ import (
|
|||
func GetBranch(ctx *context.APIContext) {
|
||||
branch, err := ctx.Repo.Repository.GetBranch(ctx.Params(":branchname"))
|
||||
if err != nil {
|
||||
if models.IsErrBranchNotExist(err) {
|
||||
ctx.Error(404, "GetBranch", err)
|
||||
} else {
|
||||
ctx.Error(500, "GetBranch", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -20,6 +20,11 @@ func GetRawFile(ctx *context.APIContext) {
|
|||
return
|
||||
}
|
||||
|
||||
if ctx.Repo.Repository.IsBare {
|
||||
ctx.Status(404)
|
||||
return
|
||||
}
|
||||
|
||||
blob, err := ctx.Repo.Commit.GetBlobByPath(ctx.Repo.TreePath)
|
||||
if err != nil {
|
||||
if git.IsErrNotExist(err) {
|
||||
|
|
Reference in a new issue