0

我们每周标记提交,我想发布报告以查看标记名称及其内容,我使用 python 3.x 和github3尝试了以下操作

import github3
g = github3.login(token='qwerty')
r = g.repository(owner='me', repository='mine')

到目前为止一切顺利,现在我尝试寻找一种可以提取标签的方法,r 有一个称为标签的方法,另外,查看我找到 RepoTags 的文档。此外,我在 Stack here上找到了这个问题。底线我是一个新的开发人员,我无法让它工作,如果有人能指出我正确的方向,这里是我的一些更相关的尝试和错误,最终结果是获得一个标签列表可用于该存储库,然后遍历它们以获取每个标签的内容。

t1 = tags(1) 
t1.as_json

那个返回<bound method GitHubCore.as_json of <GitHubIterator [1, /repos/owner/repository_name/tags]>>

我试过tag = github3.repos.tag.RepoTag没有返回任何东西,当我尝试查看对象“标签”包含的方法时,它们都没有返回任何对我有用的东西。

4

1 回答 1

1

我不完全确定您的最终目标是什么,但这里是如何迭代存储库上的标签。

import github3


gh = github3.login(token='myAwesomeToken')
repository = gh.repository(owner='owner',
                           repository='myAwesomeProjectWithLotsofTags')
for tag in repository.tags():
    assert isinstance(tag, github3.repos.tag.RepoTag)
    print('{} @ {}'.format(tag.name, tag.commit))

对于未来的上下文,github3.py 中大多数(如果不是全部)返回列表的方法实际上会返回一个迭代器,该迭代器会生成您期望的对象。您实际上必须遍历它们(如文档中所述)以检索项目。这允许用户保存 API 请求,而不是试图列出所有内容或要求用户处理分页。

于 2017-07-07T11:33:06.880 回答