получить 10 лучших репозиториев javascript / с открытым исходным кодом в рейтинге звезд с помощью GitHub GraphQL Api

Я хотел бы получить 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 скудна и довольно расплывчата.

Спасибо

См. также:  Недетерминированное поведение для обучения нейронной сети на GPU, реализованное в PyTorch, и с фиксированным случайным начальным числом
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Nanoboss

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

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

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

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

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

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

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

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: