diff options
Diffstat (limited to 'pkg/handler/git/handler.go')
-rw-r--r-- | pkg/handler/git/handler.go | 22 |
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") |