使用GraphQL(V4API)在GitHub中搜索代码
我正在使用GitHub的GraphQLAPI搜索包含特定单词的文件/代码。下面是一个简单的(人为的)搜索示例,在本例中,该示例是在“配方”(回购协议)中的“someuser”(回购协议的所有者)文件中查找术语“牛肉”:使用GraphQL(V4API)在GitHub中搜索代码,github,graphql,github-api,Github,Graphql,Github Api,我正在使用GitHub的GraphQLAPI搜索包含特定单词的文件/代码。下面是一个简单的(人为的)搜索示例,在本例中,该示例是在“配方”(回购协议)中的“someuser”(回购协议的所有者)文件中查找术语“牛肉”: { search(query: "beef repo:someuser/recipes", type: REPOSITORY, first: 10) { repositoryCount edges { node { ... on R
{
search(query: "beef repo:someuser/recipes", type: REPOSITORY, first: 10) {
repositoryCount
edges {
node {
... on Repository {
name
}
}
}
}
}
我在GitHub的GraphQL Explorer()中尝试了这一点,但从搜索中收到的结果为零,这是不正确的,因为我可以确认repo中的文件中有单词(“牛肉”):
{
"data": {
"search": {
"repositoryCount": 0,
"edges": []
}
}
}
当我通过curl使用GitHub的REST API(v3)进行尝试时,我肯定会得到以下结果:
curl --header 'Accept: application/vnd.github.v3.raw' https://api.github.com/search/code?q=beef+repo:someuser/recipes
。。。因此我知道查询(RESTV3API)是有效的,我的理解是GraphQL(v4)API中的查询字符串与REST(v3)API中的查询字符串相同
我的问题是:
Type:code
尚不受支持。现在无法使用graphql搜索代码
你的理解是对的。只是你少了一块。
您正在对类型:REPOSITORY
进行搜索。
如果将搜索替换为
search(查询:“牛肉”,类型:REPOSITORY,first:10){
您将获得所有名称中包含beef的回购协议。如果您只想在名称中搜索“beef”,而不是更改查询,则可以添加限定符,如 搜索(查询:“输入:名称”,类型:存储库,第一个:10){
有关更多详细信息,您可以在两年后查看,
type:code
仍然不受支持,我们仍然需要为此使用v3API。请在三年后使用