我一直在使用GET /repos/:owner/:repo/stargazers
端点,但我注意到它只提供了30位观星者,这对我现在的目的来说还不够。我已切换到搜索API,GET /search/repositories?q=:repo
(items[0].stargazers_count
),但如果有人创建了20个具有相同名称的repos,该怎么办?我不得不提出多个请求。还有更好的方法吗?
答案 0 :(得分:3)
/repos/:owner/:repo/stargazers
端点是分页的。您可以快速轻松地从该终端获得所有观星者。例如,如果您使用github3.py,它将是3行:
import github3
repo = github3.repository(':owner', ':repo')
stargazers = list(repo.stargazers())
然而,这不能在单个请求中完成(这就是为什么它被分页)。
使用搜索API可能是最便宜的,但您对拥有20个具有相同名称的存储库的单个人的关注是不明智的。单个用户只能拥有一个具有特定名称的存储库。但是,这不应被视为保证不会有多个结果,因此您应该使用不同的查询字符串,例如,
import github3
github3.search_repositories('repo:owner/repo_name')
哪个应该大致转换为
GET /search/repositories?q=repo%3Aowner%2Frepo_name
希望这有帮助
答案 1 :(得分:0)
截至2020年,PyGithub
pip3 install PyGithub
from github import Github
g = Github()
repo = g.get_repo("PyGithub/PyGithub")
repo.stargazers_count