使用GraphQL(v4 API)搜索GitHub中的代码
问题描述:
我正在使用GitHub的GraphQL API搜索包含特定单词的文件/代码。在这种情况下,在“someuser”(回购商的所有者)的“配方”(回购)中的文件中找到术语“牛肉”的简单(人造)搜索示例如下所示:使用GraphQL(v4 API)搜索GitHub中的代码
{
search(query: "beef repo:someuser/recipes", type: REPOSITORY, first: 10) {
repositoryCount
edges {
node {
... on Repository {
name
}
}
}
}
}
我想这在GitHub的GraphQL资源管理器(https://developer.github.com/v4/explorer/)和接收来自这是不正确的搜索结果为零,因为我可以证实,这个词(在上面的例子中“牛”)是在回购协议中的文件:
{
"data": {
"search": {
"repositoryCount": 0,
"edges": []
}
}
}
当我尝试使用这个GitHub的REST API(V3)通过卷曲,我肯定得到的结果:
curl --header 'Accept: application/vnd.github.v3.raw' https://api.github.com/search/code?q=beef+repo:someuser/recipes
...所以我知道查询(REST v3 API)是有效的,我的理解是GraphQL(v4)API中的查询字符串与REST(v3)API中的相同。
我的问题是:我使用不当而GitHub的GraphQL(V4)API或我指定的查询字符串不正确
- 上午,还是我尝试使用尚未支持的功能?
- 有没有一个例子说明如何做到这一点,有人可以提供(或链接到)说明如何搜索特定单词的代码?
答
Type: CODE
目前还不支持。您现在无法使用graphql搜索代码。
你的理解是对的。只是你缺少一块。 您正在进行的搜索是针对type: REPOSITORY
发生的。 如果你
search(query: "beef", type: REPOSITORY, first: 10) {
取代你的搜索,你会得到在他们的名字牛肉全部回购。