从存储库列出标签时,有没有办法获取Tag对象而不是Reference对象?

时间:2015-12-02 19:18:48

标签: python git github3.py

我能够使用github3使用:

成功地从存储库中列出标签
repo.iter_refs(subspace='tags')

这会产生github3.git.Reference个对象的生成器。有没有办法让我使用类似的机制来获取github3.git.Tag个对象呢?现在我被迫将每个Reference对象转换为我自己的Tag版本。

1 个答案:

答案 0 :(得分:1)

因此,获取github3.git.Tag对象的唯一方法是,如果您正在尝试retrieve a specific annotated tag(这是以非常具体的方式创建的标记)。

如果您正在尝试这样做,那么您的代码将类似于

tags = [repo.tag(r.object.sha) for r in repo.iter_refs(subspace='refs')]

您可以通过当前方法或通过repo.iter_tags()获取轻量级标记(GitHub上的大多数标记实际上是这些标记)。要么工作。后者将返回github3.repos.RepoTag,而不是github3.git.Tag,因为API会为每个返回不同的信息。