20

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

那么我有什么办法可以完成这项工作吗?我只有用户的电子邮件。(我可以通过将电子邮件哈希与 gravatar URL 进行比较来检查用户)

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

6 回答 6

13

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

合作者(项目组织的成员)

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


更新:

以前的 API 方法要求您从已知存储库开始。以下两个建议试图解决这个限制。它们依赖于以前版本的 API (v2)

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

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

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

于 2011-12-20T05:26:45.340 回答
5

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

于 2016-05-18T18:26:39.213 回答
2

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

请查看https://developer.github.com/v3/search/了解更多详情

于 2018-02-21T20:37:43.523 回答
1

请注意,自 2013 年 5 月以来,您现在可以从存储库中提取更多信息。
请参阅“ API 中现在提供的文件 CRUD 和存储库统计信息

我们正在使用存储库统计 API 来支持我们的图表,但我们迫不及待地想看看其他人如何处理这些信息。

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

于 2013-05-07T06:32:44.110 回答
1

团队明智地列出用户:-

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
于 2018-05-09T06:33:30.540 回答
-1

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

api调用可以这样进行:

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

于 2012-03-16T15:38:11.257 回答