如何列出所有GitHub用户?

21

我正在开发一个网站,需要从GitHub上爬取所有用户的信息(至少是我们网站上的用户)。我查看了GitHub API,但没有找到答案。

那么,有没有什么办法可以完成这项工作呢?我只有用户的电子邮件。(我可以通过比较电子邮件哈希值和gravatar URL来确认用户)

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

14

此处所述,您可以依靠以下两个API来检索JSON格式的输出。按要求,它们都提供了gravatar URL。

协作者(项目组织中的成员)

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


更新:

之前的API方法需要你从一个已知的仓库开始。以下两个建议尝试绕过这个限制。它们依赖于API的先前版本(v2)

通过电子邮件查询(在您的问题中,您声明:"我只有用户的电子邮件."如果用户同意发布它们,您应该能够使用电子邮件作为查询参数检索有关用户的某些信息)

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

注意:确保API的预期用途符合GitHub服务条款


1
@linjunhalida 我已经更新了我的回答,并提出了一些建议/解决方法。 - nulltoken

7

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数据集中的所有数据?

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


4

1
sortorder的取值是什么? - Hemang

2

按团队列出用户:

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

通过以下命令,您可以列出github的所有用户。
curl -H "Authorization: token fkslsml4442323wdsfsdf" https://api.github.com/orgs/cloudaws/members?page=1 | grep login >> github.txt

2

0

您可能会喜欢查看这篇文章 - https://github.com/blog/643-contributors

可以通过以下方式进行API调用:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接