我可以使用 GraphQL 列出 Github 的公共存储库吗?
Posted
技术标签:
【中文标题】我可以使用 GraphQL 列出 Github 的公共存储库吗?【英文标题】:Can I list Github's public repositories using GraphQL? 【发布时间】:2018-06-23 00:27:33 【问题描述】:我正在尝试使用 GraphQL 在 Github 中列出公共存储库,因为它允许我从 Object
中准确选择我想要的信息。
使用 REST 我可以简单地通过向https://api.github.com/repositories
发出请求来列出公共存储库。这没关系,但是响应带有一堆我不需要的东西。所以,我想知道是否可以使用 GraphQL 来完成同样的工作。
问题是,我找不到任何高级存储库Object
可以使用 GraphQL 列出公共存储库。对我来说,我似乎只能使用 GraphQL 列出来自组织或用户的存储库。比如喜欢这样做:
query
user(login: "someuser")
repositories(first: 50)
nodes
name
pageInfo
hasNextPage
那么,我如何使用(如果有的话)Github 的 GraphQL 端点来列出 Github 的公共存储库?
我也在这条线上尝试了一些东西,使用 search
,但我怀疑 Github 只有 54260 个存储库,因为 repositoryCount
变量返回给我。
query
search(query:"name:*", type:REPOSITORY, first:50)
repositoryCount
pageInfo
endCursor
startCursor
edges
node
... on Repository
name
【问题讨论】:
在过去的几天里学到了很多关于 GraphQL 的知识,我在 Medium 上发了一篇文章总结了我的努力:medium.com/@fabiomolinar/… 【参考方案1】:您可以在搜索查询中使用is:public
:
search(query: "is:public", type: REPOSITORY, first: 50)
repositoryCount
pageInfo
endCursor
startCursor
edges
node
... on Repository
name
Try it in the explorer
【讨论】:
还有一个问题,是否可以按创建日期对结果进行排序? @FTM 您无法在搜索查询中按创建日期排序,请查看this post。在repositories
连接中请求用户存储库时,您只能按创建日期排序,请检查this post
再次感谢您。最后一个问题,我在哪里可以找到更多关于我可以使用什么来形成我的搜索查询的信息?我尝试了 Github 关于其 Repository 对象的文档,但它没有说明诸如“is:public”之类的内容或我可以在搜索查询中使用的任何其他参数。
您可以找到它here 用于搜索选项和here 用于排序
Bertrand,如果你是我的邻居,我肯定会为你付一些啤酒!再次感谢!以上是关于我可以使用 GraphQL 列出 Github 的公共存储库吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Graphql 和 Github API 获取存储库信息