Я хотел бы получить 10 лучших репозиториев javascript / с открытым исходным кодом, оцененных звездой (и некоторую связанную информацию), используя GitHub GraphQL Api в проекте python. У меня пока есть этот запрос:
query{
search(type: REPOSITORY, query: "language:javascript", first:10) {
userCount
edges {
node {
... on Repository {
name
url
stargazers {
totalCount
}
owner{
login
}
}
}
}
}
}
Проблема в том, что он не всегда возвращает один и тот же результат: он возвращает 10 случайных репозиториев, упорядоченных по starcount для каждого запроса, а не 10 лучших.
И вдобавок ко всему я хотел бы получить те, которые имеют открытый исходный код.
Я использую запрос
query{
licenses{name}
}
чтобы получить список лицензий, но я не знаю, является ли это исчерпывающим списком (похоже, что в нем отсутствуют некоторые лицензии, такие как MIT). Согласно документу это
Верните список известных лицензий с открытым исходным кодом.
Как получить исчерпывающий список лицензий и добавить его к моему основному запросу выше, чтобы сделать мое исследование более точным?
Я не могу найти четких ответов, поскольку документация по API GraphQl для GitHub скудна и довольно расплывчата.
Спасибо
Я получил частичное объяснение от службы поддержки GitHub о причине несогласованности результатов: это связано с тем, что существует тайм-аут, когда запросы выполняются слишком долго.
Изменить: при поддержке, добавление
query: "language:javascript stars:>1600"
(1600 — это более или менее минимальное количество звезд среди 3000 лучших представителей, но должно быть достаточно большим, чтобы сузить поиск) будет последовательно обеспечивать 10 лучших репозиториев, упорядоченных по звездам.