How to get latest tag in github using git2go in Golang?

时间:2016-10-20 13:21:01

标签: git go tags

I am trying to get the latest github tag from my local repository in golang. For now I am getting all the tags, code is below:

repo, err := git.OpenRepository("/home/defiant/Temp/repo")
    checkErr(err)
    re, err := repo.Tags.List()
    checkErr(err)
    fmt.Println(re)

The result returned is of the format:

[0.1 1.3 1.4]

Here 1.3 is the latest tag. So can someone please help me out in getting only the latest tag?

1 个答案:

答案 0 :(得分:0)

您要寻找的位是signature对象(它有一个when字段)。在提交时,您可能对authorcommitter感兴趣。如果您自己使用annotated标记-它们具有tagger字段,即标记提交的时间。

如果您只有带注释的标记(即没有轻量级标记),则应该为标记获取时间戳:

repo, err := git.OpenRepository("/home/defiant/Temp/repo")
if err != nil {
    panic(err)
}
err = repo.Tags.Foreach(func(name string, id *git.Oid) error {
    tag, err := repo.LookupTag(id)
    if err != nil {
        return err
    }
    log.Info(tag.Tagger().When)
    return nil
})

使用轻量级标签,您将需要直接解决提交问题-您应该能够使用LookupCommit并明确选择committerauthor