From 692707f14519b677de4601e5f40469989f82eed6 Mon Sep 17 00:00:00 2001 From: Gusted Date: Sat, 30 Jul 2022 10:09:04 +0200 Subject: 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 * Prevent NPE Co-authored-by: Andrew Thornton Co-authored-by: wxiaoguang --- modules/git/repo_commit.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'modules/git') diff --git a/modules/git/repo_commit.go b/modules/git/repo_commit.go index e6fec4d1a3..7ff23af42e 100644 --- a/modules/git/repo_commit.go +++ b/modules/git/repo_commit.go @@ -11,6 +11,7 @@ import ( "strconv" "strings" + "code.gitea.io/gitea/modules/cache" "code.gitea.io/gitea/modules/setting" ) @@ -434,3 +435,20 @@ func (repo *Repository) IsCommitInBranch(commitID, branch string) (r bool, err e } return len(stdout) > 0, err } + +func (repo *Repository) AddLastCommitCache(cacheKey, fullName, sha string) error { + if repo.LastCommitCache == nil { + commitsCount, err := cache.GetInt64(cacheKey, func() (int64, error) { + commit, err := repo.GetCommit(sha) + if err != nil { + return 0, err + } + return commit.CommitsCount() + }) + if err != nil { + return err + } + repo.LastCommitCache = NewLastCommitCache(commitsCount, fullName, repo, cache.GetCache()) + } + return nil +} -- cgit v1.2.3