基于我有限的搜索,似乎GraphQL只能支持相等的过滤。所以,
是否可以使用
的过滤条件进行Github GraphQL搜索即,过滤将所有以上条件。有可能吗?
答案 0 :(得分:1)
查询存储库时,只能对列表中一定数量的字段应用过滤器:
尽管您无法在查询过滤器中指定它们,但可以在查询中包括其他字段并在客户端应用程序中验证值:
从理论上讲,您还可以使用特定的参数参数查询提交次数,该查询返回服务器错误,很可能会超时。因此,这些行被注释掉了。
这是GraphQL查询:
query {
search(
type:REPOSITORY,
query: """
stars:>10
forks:>3
size:>2000
pushed:>=2018-08-08
""",
last: 100
) {
repos: edges {
repo: node {
... on Repository {
url
allIssues: issues {
totalCount
}
openIssues: issues(states:OPEN) {
totalCount
}
# commitsCount: object(expression: "master") {
# ... on Commit {
# history {
# totalCount
# }
# }
# }
}
}
}
}
}
有关存储库查询的规范,请参见:https://help.github.com/en/articles/searching-for-repositories#search-by-repository-size
答案 1 :(得分:0)
这不是答案,而是对我迄今收集的内容的更新。
根据“Select * for Github GraphQL Search”,并非所有上述条件都可用于存储库边缘。即,“完全提交”,“公开问题”和“得分”可能不可用。
问题的目的显然是找到有价值的存储库,并清除质量较差的存储库。我collected所有可能对此类评估有帮助的可用字段here。
截至2018-03-18的副本:
query SearchMostTop10Star($queryString: String!, $number_of_repos:Int!) {
search(query: $queryString, type: REPOSITORY, first: $number_of_repos) {
repositoryCount
edges {
node {
... on Repository {
name
url
description
# shortDescriptionHTML
repositoryTopics(first: 12) {nodes {topic {name}}}
primaryLanguage {name}
languages(first: 3) { nodes {name} }
releases {totalCount}
forkCount
pullRequests {totalCount}
stargazers {totalCount}
issues {totalCount}
createdAt
pushedAt
updatedAt
}
}
}
}
}
variables {
"queryString": "language:JavaScript stars:>10000",
"number_of_repos": 3
}
任何人都可以试用as per here。