Как получить репозиторий GitHub, а также файлы, которые были изменены, и сами изменения, используя GraphQL
Я могу получить список коммитов (с такими полями, как сообщения о changedFiles
, changedFiles
, коммит и т.д.), А также количество changedFiles
, созданных в репозитории на master
ветке.
Однако я не могу понять, как получить какую-либо информацию о самих изменениях и файлах, которые были изменены.
В v3 API REST информация об изменениях содержалась в files
→ patch
, а files
→ raw_url
или blob_url
предоставляли информацию о самом оригинальном файле на этом этапе.
Q) В версии 4 GitHub API, использующей GraphQL, как я могу получить соответствующую информацию?
Запрос, с которым я застрял прямо сейчас (для краткости показан только 1 коммит) -
query {
rateLimit{
cost
remaining
}
repository(owner: "elastic", name: "elasticsearch") {
name
defaultBranchRef {
name
target {
... on Commit {
history(first:1){
nodes{
message
changedFiles
id
oid
treeUrl
url
tree{
oid
}
}
pageInfo{
hasNextPage
startCursor
endCursor
}
}
}
}
}
}
}
Выход:
{
"data": {
"rateLimit": {
"cost": 1,
"remaining": 4999
},
"repository": {
"name": "elasticsearch",
"defaultBranchRef": {
"name": "master",
"target": {
"history": {
"nodes": [
{
"message": "Small corrections to HLRC doc for _termvectors (#35221)\n\nRelates to #33447",
"changedFiles": 2,
"id": "MDY6Q29tbWl0NTA3Nzc1OmEyYzIyYWQ3YWViMGY4ZDUxNDg2NzdkZDcyMjJhZDQzYWZlZTlhMTc=",
"oid": "a2c22ad7aeb0f8d5148677dd7222ad43afee9a17",
"treeUrl": "https://github.com/elastic/elasticsearch/tree/a2c22ad7aeb0f8d5148677dd7222ad43afee9a17",
"url": "https://github.com/elastic/elasticsearch/commit/a2c22ad7aeb0f8d5148677dd7222ad43afee9a17",
"tree": {
"oid": "4f5f11e0e55aeafc4677800959232726a2cd787c"
}
}
],
"pageInfo": {
"hasNextPage": true,
"startCursor": "a2c22ad7aeb0f8d5148677dd7222ad43afee9a17 0",
"endCursor": "a2c22ad7aeb0f8d5148677dd7222ad43afee9a17 0"
}
}
}
}
}
}
}