我正在开发一个网站,需要从GitHub上爬取所有用户的信息(至少是我们网站上的用户)。我查看了GitHub API,但没有找到答案。
那么,有没有什么办法可以完成这项工作呢?我只有用户的电子邮件。(我可以通过比较电子邮件哈希值和gravatar URL来确认用户)
- 我已经向GitHub支持发送了电子邮件,但目前还没有得到回复。
- 我只需要知道用户名,就可以使用GitHub API获取其他信息。
我正在开发一个网站,需要从GitHub上爬取所有用户的信息(至少是我们网站上的用户)。我查看了GitHub API,但没有找到答案。
那么,有没有什么办法可以完成这项工作呢?我只有用户的电子邮件。(我可以通过比较电子邮件哈希值和gravatar URL来确认用户)
如此处所述,您可以依靠以下两个API来检索JSON格式的输出。按要求,它们都提供了gravatar URL。
协作者(项目组织中的成员)
贡献者(至少有一次提交的作者)
更新:
之前的API方法需要你从一个已知的仓库开始。以下两个建议尝试绕过这个限制。它们依赖于API的先前版本(v2)。
通过电子邮件查询(在您的问题中,您声明:"我只有用户的电子邮件."如果用户同意发布它们,您应该能够使用电子邮件作为查询参数检索有关用户的某些信息)
搜索存储库(给定一些关键字(语言、堆栈等),检索存储库列表。然后,对于每个存储库,使用前两个提案列出其协作者和/或贡献者)
注意:确保API的预期用途符合GitHub服务条款。
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
https://api.github.com/search/users?q={query}{&page,per_page,sort,order}
请查看https://developer.github.com/v3/search/了解更多细节。
sort
和order
的取值是什么? - Hemang按团队列出用户:
curl -H "Authorization: token [yours]" https://api.github.com/user/teams
curl -H "Authorization: token fkslsml4442323wdsfsdf" https://api.github.com/orgs/cloudaws/members?page=1 | grep login >> github.txt
您可能会喜欢查看这篇文章 - https://github.com/blog/643-contributors
可以通过以下方式进行API调用:
http://github.com/api/v2/json/repos/show/<user>/<repository-name>/contributors