GitHub:如何避免在搜索帐户时超过搜索限制'为某个存储库做出贡献的用户的详细信息

GitHub: How to avoid exceeding search limit while searching for account's details of users who contribute to some repository?

本文关键字:搜索 存储 详细信息 用户 何避免 GitHub      更新时间:2023-09-26

假设我需要列出每个用户(使用JavaScript)对某个存储库做出贡献的追随者数量。

首先,我使用这个:

    $.ajax({ 
        headers: { Authorization: "Basic " + auth },
        type: 'GET', 
        url: 'https://api.github.com/repos/[reponame]/angular/contributors', 
        dataType: 'json',
        success: function (data) { 
            repositories = data;
            outputPageContent();
        }
    });

我得到了用户的JSON列表,但没有关于每个用户的追随者数量的信息。我想我应该单独要求它(在一个循环中),使用"url",比如:

https://api.github.com/users/repositories[i] .登录

但通过这种方式,我一次就超过了搜索限制(注册用户每分钟最多30次)。

你知道如何解决这个问题吗?也许是一些嵌套的请求?

我还有一些额外的问题:

  1. 起初,我认为使用"OR"逻辑运算符并请求类似"给我所有login=loginA或login=loginB或login=loginC的用户"之类的内容是一个不错的举措。但我在github api中找不到如何使用"或"逻辑运算符。

  2. 你怎么可能:

"对于使用基本身份验证或OAuth的请求,每小时最多可以发出5000个请求。"

但你每分钟只能提出30个请求?那不是每小时30*60=1800个请求吗?

使用Github v4 API可以进行这样的查询。在API浏览器中尝试

query { 
  repository (name: "angular", owner: "angular") {
    assignableUsers (first: 100) {
      edges {
        node {
          id
          login
          followers {
            totalCount
          }
        }
      }
    }
  }
}