You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过GitHub GraphQL获取发布版本总数和总下载量 规避分页限制

获取GitHub仓库发布总数及总下载量的无分页限制方案

1. 发布版本总数获取

你无需遍历所有发布节点,直接通过releases连接自带的totalCount字段即可一次性拿到全量发布总数,无任何分页限制,示例查询如下:

query {
  repository(owner: "UserName", name: "RepoName") {
    releases {
      totalCount
    }
  }
}

2. 全量发布总下载量获取

GitHub GraphQL API单次查询最多返回100个release节点,你可以通过游标分页的方式批量拉取所有发布数据,累加所有资产的下载量即可得到总下载量,具体实现逻辑:

  • 首次查询时携带pageInfo和endCursor字段,拉取第一页100条数据的同时获取下一页的分页游标
  • 后续查询在releases参数中添加after: "上一次返回的endCursor值",循环拉取直到pageInfo.hasNextPage返回false
  • 每次拉取后累加当前页所有release下所有资产的downloadCount值,最终结果即为仓库全量发布的总下载量

单页拉取的通用查询模板:

query ($owner: String!, $repo: String!, $afterCursor: String) {
  repository(owner: $owner, name: $repo) {
    releases(first: 100, orderBy: {field: CREATED_AT, direction: DESC}, after: $afterCursor) {
      pageInfo {
        hasNextPage
        endCursor
      }
      nodes {
        releaseAssets(first: 100) {
          nodes {
            downloadCount
          }
        }
      }
    }
  }
}

提示:上述模板中将releaseAssets的单次拉取数量调整为100,避免单个发布版本下关联资产超过4条时出现统计遗漏。如果你的仓库发布版本量极大,注意控制查询频率,避免触发GitHub API速率限制。


内容的提问来源于stack exchange,提问作者Nicke Manarin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 07:36:02