从 GitHub API 构建明星历史

问题描述 投票:0回答:2

我刚刚发布了 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 github-api
2个回答
0
投票

0
投票

您已经非常接近您的 GitHub 问题。不要使用

stargazerCount
,只需迭代所有页面(存储库的所有观星者)并保存每个
starredAt
时间戳的列表。然后,要查找过去 T 内某一时刻的观星者总数,请将该列表过滤为小于 T 的时间戳,并获取列表的最终长度。

GraphQL 查询:

{
  repository(owner: "nschloe", name: "github-trends") {
    stargazers (first: 100) {
      pageInfo {
        endCursor
        hasNextPage
      }
      edges {
       starredAt
      }
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.