github.com/erikjuhani/git-gong@v0.0.0-20220213141213-6b9fa82d4e7c/gong/branch.go (about) 1 package gong 2 3 import git "github.com/libgit2/git2go/v31" 4 5 type Branch struct { 6 ReferenceID *git.Oid 7 RefName string 8 Name string 9 Shorthand string 10 essence *git.Branch 11 } 12 13 func NewBranch(branchName string, gitBranch *git.Branch) *Branch { 14 return &Branch{ 15 ReferenceID: gitBranch.Target(), 16 RefName: gitBranch.Reference.Name(), 17 Name: branchName, 18 Shorthand: gitBranch.Shorthand(), 19 essence: gitBranch, 20 } 21 } 22 23 func (branch *Branch) AnnotatedCommit() (*git.AnnotatedCommit, error) { 24 owner := branch.Essence().Owner() 25 defer Free(owner) 26 27 return owner.AnnotatedCommitFromRef(branch.Essence().Reference) 28 } 29 30 func (branch *Branch) Essence() *git.Branch { 31 return branch.essence 32 } 33 34 func (branch *Branch) Free() { 35 branch.Essence().Free() 36 }