aboutsummaryrefslogtreecommitdiffstats
path: root/routers/api/v1
diff options
context:
space:
mode:
authorGusted <williamzijl7@hotmail.com>2022-07-30 10:09:04 +0200
committerGitHub <noreply@github.com>2022-07-30 16:09:04 +0800
commit692707f14519b677de4601e5f40469989f82eed6 (patch)
treec59906253034305e2b5be2c6e95bcd76e99a5e51 /routers/api/v1
parent2b94b02f33d472c0ae76c398aebe527ba9490ada (diff)
downloadgitea-692707f14519b677de4601e5f40469989f82eed6.tar.gz
gitea-692707f14519b677de4601e5f40469989f82eed6.zip
Add latest commit's SHA to content response (#20398)
* Add latest commit's SHA to content response - When requesting the contents of a filepath, add the latest commit's SHA to the requested file. - Resolves #12840 * Add swagger * Fix NPE * Fix tests * Hook into LastCommitCache * Move AddLastCommitCache to a common nogogit and gogit file Signed-off-by: Andrew Thornton <art27@cantab.net> * Prevent NPE Co-authored-by: Andrew Thornton <art27@cantab.net> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Diffstat (limited to 'routers/api/v1')
-rw-r--r--routers/api/v1/utils/git.go13
1 files changed, 2 insertions, 11 deletions
diff --git a/routers/api/v1/utils/git.go b/routers/api/v1/utils/git.go
index f18442d046..816f8b3595 100644
--- a/routers/api/v1/utils/git.go
+++ b/routers/api/v1/utils/git.go
@@ -8,7 +8,6 @@ import (
"fmt"
"net/http"
- "code.gitea.io/gitea/modules/cache"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
@@ -35,19 +34,11 @@ func ResolveRefOrSha(ctx *context.APIContext, ref string) string {
}
}
- if ctx.Repo.GitRepo != nil && ctx.Repo.GitRepo.LastCommitCache == nil {
- commitsCount, err := cache.GetInt64(ctx.Repo.Repository.GetCommitsCountCacheKey(ref, true), func() (int64, error) {
- commit, err := ctx.Repo.GitRepo.GetCommit(sha)
- if err != nil {
- return 0, err
- }
- return commit.CommitsCount()
- })
+ if ctx.Repo.GitRepo != nil {
+ err := ctx.Repo.GitRepo.AddLastCommitCache(ctx.Repo.Repository.GetCommitsCountCacheKey(ref, ref != sha), ctx.Repo.Repository.FullName(), sha)
if err != nil {
log.Error("Unable to get commits count for %s in %s. Error: %v", sha, ctx.Repo.Repository.FullName(), err)
- return sha
}
- ctx.Repo.GitRepo.LastCommitCache = git.NewLastCommitCache(commitsCount, ctx.Repo.Repository.FullName(), ctx.Repo.GitRepo, cache.GetCache())
}
return sha