Могу ли я перечислить общедоступные репозитории Github с помощью GraphQL?

Я пытаюсь составить список общедоступных репозиториев в Github с помощью GraphQL, поскольку он позволяет мне выбирать, какую именно информацию из Object мне нужно.

Используя REST, я мог составить список общедоступных репозиториев, просто запросив https://api.github.com/repositories. Это нормально, но в ответ приходит множество ненужных мне вещей. Итак, мне было интересно, могу ли я использовать GraphQL для выполнения той же работы.

Проблема в том, что мне не удалось найти никаких Object репозиториев высокого уровня, которые я мог бы использовать для составления списка общедоступных репозиториев с помощью GraphQL. Мне кажется, я могу использовать GraphQL только для получения списка репозиториев организаций или пользователей. Например, вот так:

query{
    user(login: "someuser"){
        repositories(first: 50){
            nodes{
                name
            }
            pageInfo{
                hasNextPage
            }
        }
    }
}

Итак, как я могу использовать (если вообще) конечную точку Github GraphQL для перечисления общедоступных репозиториев Github?

Я также пробовал что-то в этой строке, используя search, но я сомневаюсь, что в Github есть только 54260 репозиториев, поскольку переменная repositoryCount вернула мне.

query{
    search(query:"name:*", type:REPOSITORY, first:50){
        repositoryCount
        pageInfo{
            endCursor
            startCursor
        }
        edges{
            node{
                ... on Repository{
                    name
                }
            }
        }
    }
}

person FTM    schedule 13.01.2018    source источник
comment
За последние несколько дней я так много узнал о GraphQL, что резюмировал свои усилия в публикации на Medium: medium.com/@fabiomolinar/   -  person FTM    schedule 16.01.2018


Ответы (1)


Вы можете использовать is:public в поисковом запросе:

{
  search(query: "is:public", type: REPOSITORY, first: 50) {
    repositoryCount
    pageInfo {
      endCursor
      startCursor
    }
    edges {
      node {
        ... on Repository {
          name
        }
      }
    }
  }
}

Попробуйте в проводнике

person Bertrand Martel    schedule 14.01.2018
comment
Еще вопрос, можно ли отсортировать результаты по дате создания? - person FTM; 14.01.2018
comment
@FTM нельзя отсортировать по дате создания в поисковом запросе, проверьте этот пост. Вы можете сортировать только по дате создания при запросе пользовательских репозиториев в repositories соединении, проверьте этот пост - person Bertrand Martel; 14.01.2018
comment
еще раз, спасибо. Последний вопрос: где я могу найти дополнительную информацию о том, что я могу использовать для формирования своего поискового запроса? Я пробовал документацию Github о его объекте Repository, но в нем ничего не говорится о вещах вроде is: public или любых других аргументах, которые я мог бы использовать в поисковом запросе. - person FTM; 14.01.2018
comment
Вы можете найти его здесь для параметров поиска и здесь для сортировки - person Bertrand Martel; 15.01.2018
comment
Бертран, если бы ты был моим соседом, я бы обязательно заплатил за тебя пива! Еще раз спасибо! - person FTM; 15.01.2018