parent:
ea3ad75a48086bec94087d2bd6722af3943eeb2c
nmyk <nick@nmyk.io>
2026-07-18T19:31:54-04:00
minor refactor, bugfix
diff --git a/internal/handlers/handlers.go b/internal/handlers/handlers.go
index cb60b2659979f86536294aa08cd86f4a14182d05..fddc67f4d7882b294d939ebc1df9a265e9eb775e 100644
--- a/internal/handlers/handlers.go
+++ b/internal/handlers/handlers.go
@@ -177,6 +177,26 @@ Annotation string
When time.Time
}
+func tagMeta(repo *core.Repo, ref *plumbing.Reference) (TagMeta, error) {
+ var t TagMeta
+ tagObj, err := repo.TagObject(ref.Hash())
+ switch err {
+ case nil:
+ t.Annotation = tagObj.Message
+ t.When = tagObj.Tagger.When
+ case plumbing.ErrObjectNotFound:
+ commit, err := repo.CommitObject(ref.Hash())
+ if err != nil {
+ return TagMeta{}, err
+ }
+ t.When = commit.Committer.When
+ default:
+ return TagMeta{}, err
+ }
+ t.Name = ref.Name().Short()
+ return t, nil
+}
+
type RefsData struct {
Repo string
Type string
@@ -212,22 +232,10 @@ return
}
var tags []TagMeta
err = tagIter.ForEach(func(ref *plumbing.Reference) error {
- var t TagMeta
- tagObj, err := repo.TagObject(ref.Hash())
- switch err {
- case nil:
- t.Annotation = tagObj.Message
- t.When = tagObj.Tagger.When
- case plumbing.ErrObjectNotFound:
- commit, err := repo.CommitObject(ref.Hash())
- if err != nil {
- return err
- }
- t.When = commit.Committer.When
- default:
+ t, err := tagMeta(repo, ref)
+ if err != nil {
return err
}
- t.Name = ref.Name().Short()
tags = append(tags, t)
return nil
})
@@ -470,16 +478,17 @@ }
var (
parents []string
patch string
- i int
)
+ first := true
iter := commit.Parents()
err = iter.ForEach(func(c *object.Commit) error {
- if i == 0 {
+ if first {
p, err := c.Patch(commit)
if err != nil {
return err
}
patch = p.String()
+ first = false
}
parents = append(parents, string(c.Hash.String()))
return nil