Мне нужно найти все сообщения коммита и соответствующие патчи кода с использованием GraphQL. Сделать это из Rest API v3 было очень легко, однако я не совсем понимаю, как обойти GitHub в GraphQL API v4 . Я начал с GraphQL всего пару дней назад. Документы GitHub кажутся очень загадочными. Особенно implements
, nodes
и edges
, target
и GitObjects
, pagination
и cursor
.
Пока у меня есть следующее, но вместо того, чтобы дать мне список коммитов для всех репо, я получаю один коммит для определенного количества репо -
Запрос:
query list_commits ($repo: String!){
rateLimit{
cost
remaining
}
organization(login: $repo){
repositories(first: 30) {
edges{
node{
defaultBranchRef{
repository{
name
}
target {
... on Commit{
message
}
}
}
}
}
}
}
}
Переменная запроса:
{
"repo": "elastic"
}
Часть ответа:
{
"data": {
"rateLimit": {
"cost": 1,
"remaining": 4999
},
"organization": {
"repositories": {
"edges": [
{
"node": {
"defaultBranchRef": {
"repository": {
"name": "elasticsearch"
},
"target": {
"message": "Small corrections to HLRC doc for _termvectors (#35221)\n\nRelates to #33447"
}
}
}
},
{
"node": {
"defaultBranchRef": {
"repository": {
"name": "elasticsearch-servicewrapper"
},
"target": {
"message": "Update README.md"
}
}
}
},
{
"node": {
"defaultBranchRef": {
"repository": {
"name": "elasticsearch-net"
},
"target": {
"message": "Update Projects static initializing even further, unit tests all pass now"
}
}
}
},
Я согласен с тем, что сначала делаю небольшие шаги, например, получаю все коммиты для одного репозитория, а затем расширяю его для всех репо в организации.