在GitHub API中获取用户所在组织的代码仓库

8
我们在 Stack Overflow Careers 上使用 GitHub API 来获取用户的存储库。我们尚未成功地获取属于 组织 的用户存储库。
例如,wycats 是 jQuery 项目的贡献者。然而,通过 API 查询他的存储库并没有显示出这一点 - 查询他的存储库,而 jQuery 存储库 是由 jQuery 组织 拥有的。
请问如何调用 API 以了解 wycats 是 jQuery 存储库的贡献者?正确的答案将采取 URL(s) 的形式,该 URL(s) 将返回给定用户名的组织存储库列表。如果需要多次调用,则可以接受。
谢谢!
2个回答

4

2
这基本上就是你想要的。你说得对,组织拥有仓库。关于“给定用户名的组织存储库”的上下文实际上并不存在... 组织有存储库,组织也有用户。除此之外,这只是用户拥有哪些权限的问题,据我所知,这些权限在公共API中是不可用的。 - Tekkub
谢谢你的保证 - 我没有使用过GitHub API的经验,但我确实能够阅读API文档。 - Matt Ball
谢谢,我希望能比文档提供的更好。有一个/organizations/repositories路由承诺可以做到我想要的,但它对我来说出现了错误。 - Matt Sherman
@Matt 我认为这条路线的问题在于它只显示“你可以访问”的组织(无论这意味着什么),并且没有办法指定除自己以外的用户。 - Matt Ball

0

你可以使用带有身份验证的GitHub API。如果没有先获取令牌,我会遇到错误。这是可行的代码(只需使用您自己的组织和用户名 :-))

organization="write-here-the-organization"
githubuser="your-github-user"
token=`curl -i -u ${githubuser}  -d '{"scopes": ["repo"]}' https://api.github.com/authorizations | grep token | cut -d\" -f 4`
curl -i -H "Authorization: token ${token}" https://api.github.com/orgs/${organization}/repos 

由于上述操作,您将获得一个包含所有存储库及其信息的长JSON。您可以从这里继续操作。
在我的情况下,我只想要SSH路径,所以我会在循环中克隆它们,因此我执行了以下操作:
curl -i -H "Authorization: token ${token}" https://api.github.com/orgs/${organization}/repos | grep "ssh_url" | cut -d\" -f 4

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