我目前正在使用 GitHub API v3 编写一个小项目。

我一直在根据 repo 包含的分支数量进行计算。如果不同时请求 list all the branches of that repo ,我似乎无法找到一种方法。需要请求 repo 的分支会增加不必要的运行时间,尤其是在处理数百个 repo 时,每个 repo 包含数十个分支。

明显缺乏这样做的能力让我感到惊讶,因为通过这样做很容易获得一个非常相似的操作,获取组织的 repo 数量:

  • Get an organization 。例如GET https://api.github.com/orgs/cloudify-cosmo,使用正确的GitHub authentication credentials
  • 假设认证成功,在响应体中有两个字段,名为 public_repostotal_private_repos
  • 要得到repos的数量,只需将这两个字段的值相加即可。

  • 那么,我错过了什么吗?是否有类似方便的方式(或任何方式)来获取 repo 的分支数量而不必列出其分支?

    最佳答案

    目前没有这样的属性。

    但是,您可以使用一个巧妙的技巧来避免获取所有页面。如果您将 per_page 设置为 1 ,那么每个页面将包含 1 个项目,并且页数(由最后一页显示)也会告诉您项目的总数:

    https://developer.github.com/v3/#pagination

    因此,只需一个请求——您就可以获得分支的总数。例如,如果您获取此URL并检查Link header :

    https://api.github.com/repos/github/linguist/branches?per_page=1
    

    然后你会注意到 Link header 是:
    Link: <https://api.github.com/repositories/1725199/branches?per_page=1&page=2>; rel="next", <https://api.github.com/repositories/1725199/branches?per_page=1&page=28>; rel="last"
    

    这告诉您结果有 28 页,并且因为每页有一个项目 - 分支总数为 28。

    希望这可以帮助。

    关于github-api - GitHub API - 在不列出所有分支的情况下获取 repo 的分支数量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33242631/

    10-15 15:31