Use middleware to open gitRepo (#19559)

tokarchuk/v1.17
6543 3 years ago committed by GitHub
parent d23f220343
commit 1597e2da3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      routers/api/v1/api.go
  2. 8
      routers/api/v1/utils/git.go

@ -1014,7 +1014,7 @@ func Routes() *web.Route {
m.Group("/{ref}", func() { m.Group("/{ref}", func() {
m.Get("/status", repo.GetCombinedCommitStatusByRef) m.Get("/status", repo.GetCombinedCommitStatusByRef)
m.Get("/statuses", repo.GetCommitStatusesByRef) m.Get("/statuses", repo.GetCommitStatusesByRef)
}) }, context.ReferencesGitRepo())
}, reqRepoReader(unit.TypeCode)) }, reqRepoReader(unit.TypeCode))
m.Group("/git", func() { m.Group("/git", func() {
m.Group("/commits", func() { m.Group("/commits", func() {

@ -5,6 +5,7 @@
package utils package utils
import ( import (
"fmt"
"net/http" "net/http"
"code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/context"
@ -35,12 +36,7 @@ func ResolveRefOrSha(ctx *context.APIContext, ref string) string {
// GetGitRefs return git references based on filter // GetGitRefs return git references based on filter
func GetGitRefs(ctx *context.APIContext, filter string) ([]*git.Reference, string, error) { func GetGitRefs(ctx *context.APIContext, filter string) ([]*git.Reference, string, error) {
if ctx.Repo.GitRepo == nil { if ctx.Repo.GitRepo == nil {
var err error return nil, "", fmt.Errorf("no open git repo found in context")
ctx.Repo.GitRepo, err = git.OpenRepository(ctx, ctx.Repo.Repository.RepoPath())
if err != nil {
return nil, "OpenRepository", err
}
defer ctx.Repo.GitRepo.Close()
} }
if len(filter) > 0 { if len(filter) > 0 {
filter = "refs/" + filter filter = "refs/" + filter

Loading…
Cancel
Save