获取 github stargazer 数量

use*_*561 0 github-api

我一直在使用GET /repos/:owner/:repo/stargazers端点,但我注意到它只提供 30 个观星者,这不足以满足我现在的目的。我已切换到搜索 API GET /search/repositories?q=:repo( items[0].stargazers_count),但如果有人创建 20 个同名存储库怎么办?我必须提出不止一个请求。有没有更好的办法?

Ian*_*sco 5

端点/repos/:owner/:repo/stargazers已分页。您可以快速轻松地从该端点获取所有观星者。例如,如果您要使用 github3.py 它将是 3 行:

import github3

repo = github3.repository(':owner', ':repo')
stargazers = list(repo.stargazers())
Run Code Online (Sandbox Code Playgroud)

然而,这不能在单个请求中完成(这就是它被分页的原因)。

使用搜索 API 可能是最便宜的,但是您担心一个人拥有 20 个同名的存储库是不明智的。单个用户只能拥有一个具有特定名称的存储库。但是,这不应被视为保证不会有多个结果,因此您可能应该使用不同的查询字符串,例如,

import github3

github3.search_repositories('repo:owner/repo_name')
Run Code Online (Sandbox Code Playgroud)

这应该大致翻译为

GET /search/repositories?q=repo%3Aowner%2Frepo_name
Run Code Online (Sandbox Code Playgroud)