如何列出所有GitHub用户?

时间:2011-09-07 06:57:26

标签: github github-api

我正在网站上工作,需要从GitHub抓取所有用户信息(至少是我们网站上的用户)。我搜索了GitHub API,但没有找到答案。

那么我有什么方法可以做这份工作吗? 我只有用户的电子邮件。 (我可以通过比较电子邮件哈希与gravatar URL来检查用户)

  1. 我已经向GitHub支持发送电子邮件,目前没有得到答复。
  2. 我只需要知道用户名,我可以使用GitHub API获取其他信息。

6 个答案:

答案 0 :(得分:10)

如上所述here,您可以依赖以下两个API来检索JSON格式的输出。根据要求,他们都提供了gravatar URL。

协作者(项目组织成员)

贡献者(作者,至少一次提交)


<强>更新

以前的API方法要求您从已知的存储库开始。 以下两个提议尝试解决此约束。他们依赖previous version of the API (v2)

通过电子邮件查询(在您的问题中,您声明“我只有用户的电子邮件。”。如果用户同意发布它们,您应该能够撤消有关使用电子邮件作为查询参数的用户的一些信息)

搜索存储库(给定一些关键字(语言,堆栈,...)检索存储库列表。然后,对于每个存储库,使用两个第一个提案,列出其协作者和/或贡献者)

注意:确保API的预期用途与 GitHub Terms of service

一致

答案 1 :(得分:4)

GitHub存档 https://www.githubarchive.org/可用于快速获取所有公开过的用户名的转储。

它经常将GitHub事件API导出到Google BigQuery数据集。

从2015年开始的数据格式为:

SELECT
    actor.login
FROM (
    TABLE_DATE_RANGE([githubarchive:day.events_],
        TIMESTAMP('2015-01-01'),
        TIMESTAMP('2015-01-02')
    ))
GROUP BY actor.login
ORDER BY actor.login

并且从2011-02-12开始以不同的格式提供更多数据,应该很容易弄明白。

下载数据需要与Google BigQuery进行一些争夺,但可行:Google BigQuery: download all data

我使用了类似的方法来提取所有GitHub提交电子邮件:https://github.com/cirosantilli/all-github-commit-emails

答案 2 :(得分:0)

您可能想查看此帖子 - https://github.com/blog/643-contributors

api调用可以这样做:

http://github.com/api/v2/json/repos/show/<user>/<repository-name>/contributors

答案 3 :(得分:0)

请注意,自2013年5月起,您现在可以从存储库中提取更多信息 请参阅“File CRUD and repository statistics now available in the API

  

我们正在使用存储库统计信息API为graphs提供支持,但我们迫不及待想看看其他人对此信息的处理方式。

     

从今天开始,您可以使用以下资源:

答案 4 :(得分:0)

https://api.github.com/search/users?q={query}{&page,per_page,sort,order}

答案 5 :(得分:0)

团队明智地列出用户: -

curl -H "Authorization: token [yours]" https://api.github.com/user/teams

使用以下cmd,您可以列出github的所有用户。

curl -H "Authorization: token fkslsml4442323wdsfsdf" https://api.github.com/orgs/cloudaws/members?page=1 | grep login >> github.txt