我刚刚发布了 stargraph,这是一个绘制 GitHub star 历史的 Python 程序。 StackOverflow允许您获取特定时间段内的标签数量,而GitHub API则不允许(据我所知)。您在 GitHub 中可以做的是在
获取观星者列表https://api.github.com/repos/{repo}/stargazers
如果您提供
{"Accept": "application/vnd.github.v3.star+json"}
标头,您将获得星标时间 (https://developer.github.com/v3/activity/starring/#list-stargazers)。由此,可以重建历史。不幸的是,您最多只能获得 40k 个观星者,因此对于大型项目来说这效果不佳。所有线从 40k 向上都是直线:
知道如何使用 GitHub API 获取 40k 星以上的星历史记录吗?
您可以使用 GitHub GraphQL API https://docs.github.com/en/graphql/reference/interfaces#starrable
您已经非常接近您的 GitHub 问题。不要使用
stargazerCount
,只需迭代所有页面(存储库的所有观星者)并保存每个 starredAt
时间戳的列表。然后,要查找过去 T 内某一时刻的观星者总数,请将该列表过滤为小于 T 的时间戳,并获取列表的最终长度。
GraphQL 查询:
{
repository(owner: "nschloe", name: "github-trends") {
stargazers (first: 100) {
pageInfo {
endCursor
hasNextPage
}
edges {
starredAt
}
}
}
}