aboutsummaryrefslogtreecommitdiff
path: root/pkg/handler/git/handler.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/handler/git/handler.go')
-rw-r--r--pkg/handler/git/handler.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/pkg/handler/git/handler.go b/pkg/handler/git/handler.go
index 0963033..fd62e44 100644
--- a/pkg/handler/git/handler.go
+++ b/pkg/handler/git/handler.go
@@ -34,6 +34,7 @@ type (
gitService interface {
ListRepositories() ([]*service.Repository, error)
ListCommits(name string, ref string, count int) ([]*object.Commit, error)
+ LastCommit(name string, ref string) (*object.Commit, error)
GetHead(name string) (*plumbing.Reference, error)
GetTree(name, ref, path string) (*object.Tree, error)
IsBinary(name, ref, path string) (bool, error)
@@ -331,6 +332,27 @@ func (g *GitHandler) Log(w http.ResponseWriter, r *http.Request) error {
return nil
}
+func (g *GitHandler) Commit(w http.ResponseWriter, r *http.Request) error {
+ ext.SetHTML(w)
+ name := r.PathValue("name")
+ ref := r.PathValue("ref")
+
+ commit, err := g.gitService.LastCommit(name, ref)
+ if err != nil {
+ return err
+ }
+
+ gitList := &templates.GitItemPage{
+ Name: name,
+ Ref: ref,
+ GitItemBase: &templates.GitItemCommitPage{
+ Commit: commit,
+ },
+ }
+ templates.WritePageTemplate(w, gitList)
+ return nil
+}
+
func GetLexers(filename string) chroma.Lexer {
if filename == "APKBUILD" {
return lexers.Get("sh")