问题
I am able to get the list of commits (with fields like commit messages, oid, commit url etc) along with the number of changedFiles
, made in a repository on the master
branch.
However I am not able to figure out how to get any information about the changes themselves and the files that were changed.
In v3 of the REST API, the information about the changes were contained in files
->patch
, and files
-> raw_url
or blob_url
gave info about the original file itself at that stage.
Q) In v4 of GitHub's API using GraphQL how do I get the corresponding information?
Query I am stuck with right now (showing only 1 commit for brevity)-
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
}
}
}
}
}
}
}
Output:
{
"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"
}
}
}
}
}
}
}
来源:https://stackoverflow.com/questions/53153142/how-to-get-a-github-repositorys-commits-along-with-the-files-that-were-changed