通过github API,我列出了某个提交的所有文件和文件夹,如下所示:
https://api.github.com/repos/:owner/:repo/git/trees/:sha?recursive=1
这给了我一个这样的清单:
{
"sha": "9fb037999f264ba9a7fc6274d15fa3ae2ab98312",
"url": "https://api.github.com/repos/octocat/Hello-World/trees/9fb037999f264ba9a7fc6274d15fa3ae2ab98312",
"tree": [
{
"path": "file.rb",
"mode": "100644",
"type": "blob",
"size": 30,
"sha": "44b4fc6d56897b048c772eb4087f854f46256132",
"url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132"
},
{
"path": "subdir",
"mode": "040000",
"type": "tree",
"sha": "f484d249c660418515fb01c2b9662073663c242e",
"url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/f484d249c660418515fb01c2b9662073663c242e"
},
{
"path": "exec_file",
"mode": "100755",
"type": "blob",
"size": 75,
"sha": "45b983be36b73c0788dc9cbcb76cbb80fc7bb057",
"url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/45b983be36b73c0788dc9cbcb76cbb80fc7bb057"
}
]
}
但我怎么能告诉文件发生了什么?比如,我如何判断它是否在此提交中编辑,或重命名或删除等?我似乎无法弄清楚如何获得这些信息。
我如何获得该信息?
答案 0 :(得分:2)
编辑,重命名或删除基于git log中的历史记录 因此,单独的树API不足以让GitHub提供该信息:您需要从与给定树或文件关联的日志中提取它。
您可以使用API for commits列出给定文件的提交,或者甚至将两个提交进行比较,这将为您提供编辑方面的详细信息。
"files": [
{
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e",
"filename": "file1.txt",
"status": "added",
"additions": 103,
"deletions": 21,
"changes": 124,
"blob_url": "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt",
"raw_url": "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt",
"patch": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test"
}
]
但我不认为你可以通过API单独看到重命名
您必须克隆存储库并使用git log -M --summary
才能查看这些移动/重命名。