From cab2f0547987fa3ecd32c37971dd0f4df9787465 Mon Sep 17 00:00:00 2001
From: Runxi Yu <me@runxiyu.org>
Date: Sun, 16 Mar 2025 01:36:02 +0800
Subject: Show branches

---
 http_handle_repo_index.go | 12 ++++++++++++
 1 file changed, 12 insertions(+)

(limited to 'http_handle_repo_index.go')

diff --git a/http_handle_repo_index.go b/http_handle_repo_index.go
index 6ac9b07..e4a9f5d 100644
--- a/http_handle_repo_index.go
+++ b/http_handle_repo_index.go
@@ -9,6 +9,7 @@ import (
 
 	"github.com/go-git/go-git/v5"
 	"github.com/go-git/go-git/v5/plumbing"
+	"github.com/go-git/go-git/v5/plumbing/storer"
 	"github.com/go-git/go-git/v5/plumbing/object"
 )
 
@@ -22,6 +23,8 @@ func handle_repo_index(w http.ResponseWriter, r *http.Request, params map[string
 	var commit_object *object.Commit
 	var tree *object.Tree
 	var notes []string
+	var branches []string
+	var branches_ storer.ReferenceIter
 
 	repo, repo_name, group_path = params["repo"].(*git.Repository), params["repo_name"].(string), params["group_path"].([]string)
 
@@ -34,6 +37,15 @@ func handle_repo_index(w http.ResponseWriter, r *http.Request, params map[string
 		goto no_ref
 	}
 
+	branches_, err = repo.Branches()
+	if err != nil {}
+	err = branches_.ForEach(func (branch *plumbing.Reference) error {
+		branches = append(branches, branch.Name().Short())
+		return nil
+	})
+	if err != nil {}
+	params["branches"] = branches
+
 	if recent_commits, err = get_recent_commits(repo, ref_hash, 3); err != nil {
 		goto no_ref
 	}
-- 
cgit v1.2.3