如何从 Github GraphQL 获取发布计数和发布下载计数?

How to get release count and release download count from Github GraphQL?

我可以使用此缩略图获取版本列表(包含详细信息,例如下载计数):

query {
  repository(owner: "UserName", name: "RepoName") {
    releases(last: 100, orderBy: { field: CREATED_AT, direction: DESC}) {
      nodes {
        releaseAssets(last: 4) {
          nodes {
            downloadCount
          }
        }
      }
    }
  }
}

问题是我的分页有限制(100 个条目)。

有没有什么方法可以正确获取 repo 的总下载次数,也许有发布次数而不会遇到分页限制问题?

没有按版本或跨版本对下载计数求和的字段,因此唯一的选择是遍历图表并自己将它们相加。

发布计数更容易,因为 repository.releases 有一个 totalCount,所以您可以从中获得发布总数,并且至少看看分页是否有限制(totalCount 超过 100)。分页还不错,这里是 .

对于有足够版本需要分页的 repo。例如 此查询:

query{
  repository(owner: "microsoft", name: "typescript") {
    releases(first: 100, orderBy: {field: CREATED_AT, direction: DESC}) {
      nodes {
        releaseAssets(first: 10) {
          nodes {
            downloadCount
            name
          }
          totalCount
        }
        name
      }
      totalCount
      pageInfo {
        endCursor
        hasNextPage
      }
    }
  }
}

以这个响应片段结束:

        "totalCount": 146,
        "pageInfo": {
          "endCursor": "Y3Vyc29yOnYyOpK5MjAxOC0wMi0xMlQyMTo0MDo1NyswMDowMM4Ak_Ha",
          "hasNextPage": true
        }

所以还有另一个页面,上面还有 46 个节点,您可以通过以下方式获取:

query{
  repository(owner: "microsoft", name: "typescript") {
    releases(first: 100, after: "Y3Vyc29yOnYyOpK5MjAxOC0wMi0xMlQyMTo0MDo1NyswMDowMM4Ak_Ha", orderBy: {field: CREATED_AT, direction: DESC}) {
...