diff options
Diffstat (limited to 'pkg/service')
| -rw-r--r-- | pkg/service/git.go | 19 | 
1 files changed, 19 insertions, 0 deletions
| diff --git a/pkg/service/git.go b/pkg/service/git.go index 1d21204..df4e3aa 100644 --- a/pkg/service/git.go +++ b/pkg/service/git.go @@ -94,6 +94,25 @@ func (g *GitService) ListCommits(name, ref string, count int) ([]*object.Commit,  	return repo.Commits(count)  } +func (g *GitService) LastCommit(name, ref string) (*object.Commit, error) { +	r := g.configRepo.GetByName(name) +	if r == nil { +		return nil, ErrRepositoryNotFound +	} + +	repo, err := git.OpenRepository(r.Path) +	if err != nil { +		return nil, err +	} + +	err = repo.SetRef(ref) +	if err != nil { +		return nil, err +	} + +	return repo.LastCommit() +} +  func (g *GitService) WriteTarGZip(w io.Writer, name, ref string, prefix string) error {  	r := g.configRepo.GetByName(name)  	if r == nil { | 
