получить 10 лучших репозиториев javascript / opensource, ранжированных по звездам, с помощью GitHub GraphQL Api - PullRequest
0 голосов
/ 22 мая 2019

Я хотел бы получить 10 лучших репозиториев javascript / opensource, ранжированных по звезде (и некоторые соответствующие сведения), с использованием 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 скудна и довольно расплывчата.

Спасибо

1 Ответ

0 голосов
/ 23 мая 2019

Я получил частичное объяснение от службы поддержки GitHub о причине несовместимости результатов: это связано с тем, что время ожидания запросов слишком велико.

Некоторые запросы обходятся вычислительно дорого для нашей поисковой инфраструктуры. Чтобы обеспечить быстрый поиск для всех, мы ограничиваем продолжительность каждого отдельного запроса. В редких случаях, когда запрос превышает ограничение по времени, поиск возвращает все совпадения, которые были найдены до истечения времени ожидания, и сообщает вам, что истекло время ожидания.

Достижение тайм-аута не обязательно означает, что результаты поиска неполные. Это просто означает, что запрос был прекращен до того, как был выполнен поиск по всем возможным данным.

Наша команда написала об этом здесь:

https://help.github.com/articles/troubleshooting-search-queries/#potential-timeouts

Учитывая эту реальность, эти тайм-ауты могут вызвать несоответствия при просмотре результатов. Мы видим, как это можно улучшить в будущих итерациях поиска, поэтому мы сообщили нашей команде, чтобы они знали, хотя мы не можем давать никаких обещаний по конкретным изменениям.

Редактировать: при поддержке добавление query: "language:javascript stars:>1600" (1600 - более или менее минимальное количество звезд в 3000 лучших повторений, но должно быть достаточно большим, чтобы сузить поиск) будет последовательно обеспечивать 10 лучших репо, упорядоченных по звездам .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...