Основываясь на моем ограниченном поиске, кажется, что GraphQL может поддерживать только равную фильтрацию. Так,
Можно ли выполнить поиск Github GraphQL с условиями фильтрации,
То есть фильтрация будет все выше условий. Является ли это возможным?





Это не ответ, а обновление того, что я собрал до сих пор.
Согласно «Выберите * для поиска Github GraphQL», не все вышеперечисленные критерии могут быть доступны на границе репозитория. А именно, «общая фиксация», «открытые проблемы» и «оценка» могут быть недоступны.
Очевидно, что цель вопроса - найти ценные репозитории и отсеять некачественные. У меня есть все доступные поля собраны, которые могут быть полезны для такой оценки здесь.
Копия от 18.03.2018:
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
}
Кто угодно может попробовать согласно здесь.
fwiw, есть фильтр, который вы можете применить к полю проблем, чтобы получить только открытые проблемы: issues(states:[OPEN])
спасибо @DanielRearden, у меня обновил мою суть
При запросе репозиториев вы можете применить фильтр только к определенному количеству полей в вашем списке:
Хотя вы не можете указать их в фильтре запроса, вы можете включить другие поля в свой запрос и проверить значения в клиентском приложении:
Хотя теоретически вы также можете запросить количество коммитов, применяя свои конкретные аргументы параметра, этот запрос возвращает ошибку сервера, но, скорее всего, время ожидания истекает. По этой причине эти строки закомментированы.
Вот запрос 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
Потрясающий! Спасибо!!
Этот вопрос / ответ помог мне найти лучший подход к поиску Github, к вашему сведению.