Как получить имена веток GitHub с помощью GraphQL

Используя GitHub GraphQL API (v.4), я хотел бы получить все имена веток, существующие в данном репозитории.

Моя попытка

{
  repository(name: "my-repository", owner: "my-account") {
    ... on Ref {
      name
    }
  }
}

возвращает ошибку:

{'data': None, 'errors': [{'message': "Fragment on Ref can't be spread inside Repository", 'locations': [{'line': 4, 'column': 13}]}]}

person Javide    schedule 13.06.2018    source источник


Ответы (1)


Вот как получить 10 веток из репо:

{
  repository(name: "git-point", owner: "gitpoint") {
    refs(first: 10, , refPrefix:"refs/heads/") {
      nodes {
        name
      }
    }
  }
}

PS: вы обычно используете распространение при работе с типом Union (например, IssueTimeline, который состоит из разных типов объектов, поэтому вы можете распространяться по определенному типу объекта для запроса определенных полей.


Возможно, вам потребуется использовать нумерацию страниц, чтобы получить все ветки.

person machour    schedule 13.06.2018
comment
Есть ли способ получить все ветки репозитория вместо first: 10? API выдает мне ошибку, если я не передаю аргумент first для refs, но как мне сообщить API, что мне нужны все ветки? - person hpy; 12.07.2020