aboutsummaryrefslogtreecommitdiff
path: root/http_handle_repo_index.go
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-03-21 16:55:53 +0800
committerRunxi Yu <me@runxiyu.org>2025-03-21 16:56:51 +0800
commit44626e60bf2bac53e2e3988874d310e7882eaabf (patch)
tree6e5e096fc6d568fb1c330e78508cef952e8c0d1a /http_handle_repo_index.go
parentBump Go version to 1.24.1 (diff)
downloadforge-44626e60bf2bac53e2e3988874d310e7882eaabf.tar.gz
forge-44626e60bf2bac53e2e3988874d310e7882eaabf.tar.zst
forge-44626e60bf2bac53e2e3988874d310e7882eaabf.zip
Output git logs incrementally
Diffstat (limited to 'http_handle_repo_index.go')
-rw-r--r--http_handle_repo_index.go9
1 files changed, 6 insertions, 3 deletions
diff --git a/http_handle_repo_index.go b/http_handle_repo_index.go
index cb3fcdc..a22c75f 100644
--- a/http_handle_repo_index.go
+++ b/http_handle_repo_index.go
@@ -4,6 +4,7 @@
package main
import (
+ "iter"
"net/http"
"strings"
@@ -19,7 +20,8 @@ func httpHandleRepoIndex(w http.ResponseWriter, r *http.Request, params map[stri
var groupPath []string
var refHash plumbing.Hash
var err error
- var recentCommits []*object.Commit
+ var commitIter object.CommitIter
+ var commitIterSeq iter.Seq[*object.Commit]
var commitObj *object.Commit
var tree *object.Tree
var notes []string
@@ -46,10 +48,11 @@ func httpHandleRepoIndex(w http.ResponseWriter, r *http.Request, params map[stri
}
params["branches"] = branches
- if recentCommits, err = getRecentCommits(repo, refHash, 3); err != nil {
+ if commitIter, err = repo.Log(&git.LogOptions{From: refHash}); err != nil {
goto no_ref
}
- params["commits"] = recentCommits
+ commitIterSeq, params["commits_err"] = commitIterSeqErr(commitIter)
+ params["commits"] = iterSeqLimit(commitIterSeq, 3)
if commitObj, err = repo.CommitObject(refHash); err != nil {
goto no_ref