【问题标题】:How to get release count and release download count from Github GraphQL?如何从 Github GraphQL 获取发布次数和发布下载次数?
【发布时间】:2021-12-03 23:02:30
【问题描述】:

我可以使用这个缩略图获得发布列表(包含详细信息,例如下载次数):

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

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

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

【问题讨论】:

    标签: graphql github-api


    【解决方案1】:

    没有一个字段可以按版本或跨版本对 downloadCount 进行求和,因此唯一的选择是遍历图表并自己将它们相加。

    发布计数更容易,因为 repository.releases 有一个 totalCount,因此您可以从中获取发布的总数,并且至少可以查看分页是否是一个限制(totalCount 超过 100)。分页还不错,这里是earlier answer I provided on that topic

    对于有足够的版本需要分页的存储库。例如 这个查询:

    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}) {
    ...
    

    【讨论】:

    • 谢谢!并且没有办法像真正的分页查询那样访问列表的中间? PageSize = 10, Page = 3
    • 进入列表中间的唯一方法是知道游标 ID,但不能保证游标 ID 保持一致。
    猜你喜欢
    • 2023-01-26
    • 1970-01-01
    • 2014-01-22
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 2017-04-29
    相关资源
    最近更新 更多