46

使用这个链接我可以看到我在 github 上的 (tonylampada) id 是 218821 https://api.github.com/users/tonylampada

我怎么能反其道而行之?给定用户 id = 218821,用户名是什么?


更新

在这里回答 nulltoken 是因为它是一个很长的故事,它不适合评论。

FreedomSponsors是一个 django 应用程序,它使用 django-social-auth 来启用 Github(和其他)登录。(顺便说一句,您应该检查一下,请参阅博客中的about 页面:-) Django-social-auth 有一个配置标志,允许应用程序将 github 用户名存储在数据库中。几天前,我部署了启用 github 登录的新版本 FS,但将“storeGithubUsername”设置为 false。

一些用户注册了他们的 github 帐户,现在数据库有他们的 github id,但没有他们的用户名。

您可以在我的个人资料中看到我将 github 作为“关联帐户”,但没有指向我的 github 页面的链接。

我需要它来使链接指向https://github.com/tonylampada

我准备部署一个新版本来解决这个问题,方法是将“storeGithubUsername”(这不是它的名字,我只是在这里简化)设置为 true。但我想用已经在 github 注册的用户修补数据库。我有他们的 github id,但没有他们的 github 用户名。

4

2 回答 2

75

我们需要在Gitter上执行此操作,以处理用户在 GitHub 上更改了用户名,并且在查询他们的旧用户名时得到 404 响应的情况。

这是一个未记录的端点,因此请自担风险,但它现在确实有效。

使用端点:https://api.github.com/user/:id,其中:id是用户的 ID。

https://api.github.com/repositories/:idrepos和orgs 分别存在类似的端点 https://api.github.com/organizations/:id

请注意,新的存储库重定向预览 API仅支持存储库,不支持重命名的用户或组织。事实上,HTTP 301 重定向实际上指向https://api.github.com/repositories/:id,因此这些“ID”端点很可能很快就会成为官方的。

于 2015-06-01T17:46:21.310 回答
8

没有记录的功能,也没有我所知道的未记录的功能,可以公开从 id 检索用户名。从 GitHub API 消费者的角度来看,用户 ID 是一个“实现细节”。真正的关键是用户名。

据我了解,您只需要给定一个 id 列表的一批用户名。这将是一次性的请求,而不是永久的需要。

由于您的请求似乎合法且范围有限,您可以通过发送电子邮件至 support@github.com 直接从 GitHub 支持获得此答案。

事实上,GitHubber的 xpaulbettsx 甚至在推特上发布了关于此的内容:

Support@ 非常适合您想告诉 GitHub 的任何内容 - 错误、功能、高 5;除了安全之外的一切都去安全@

于 2012-08-16T09:35:01.993 回答