我在一个网站上工作,需要从 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}
团队明智地列出用户:-
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
您可能想查看这篇文章 - https://github.com/blog/643-contributors
api调用可以这样进行:
http://github.com/api/v2/json/repos/show/<user>/<repository-name>/contributors