Мы можем получить все ветки определенного репозитория с помощью запроса, указанного здесь.
query {
repository(owner: "<userName>", name: "<repoName>") {
refs(first: 10, refPrefix: "refs/heads/",after:"<cursor>") {
edges {
node {
name
target {
... on Commit {
author {
name
email
user {
login
}
}
pushedDate
oid
}
}
}
}
}
}
}
Но возможно ли, чтобы имена были возвращены в отсортированном порядке по pushedDate
(или любым соответствующим датам). например, если в моем репозитории есть 2 ветки ( branch 1
с pushdate как March 1
и branch 2
с pushDate как March 10
я хочу, чтобы branch2
возвращалось раньше branch 1
).
Мы можем выполнить эту сортировку вручную, но проблема в том, что мой запрос разбит на страницы, поэтому эта сортировка упорядочивает только те ветви на текущей странице.
К сожалению, я не думаю, что это возможно. Заказать ветки можно только через ALPHABETICAL
например refs(first: 10, refPrefix: "refs/heads/", orderBy: {field: ALPHABETICAL, direction: DESC}
Однако, если у вас нет тысяч ветвей, возможно, вы могли бы, как вы предлагаете, сделать все запросы с разбивкой на страницы, а затем упорядочить по pushedDate
. Вы можете получить 100 узлов за раз с разбиением на страницы (first: 100
), поэтому, вероятно, потребуется всего несколько запросов, чтобы получить все ветки.