使用Github API获取文件差异

Lui*_*Day 7 api github

我需要检测并解析对不同拉取请求之间的存储库中的特定单个文本文件所做的更改的网络项目.

我已成功地使用Github API访问pull请求和提交但我不知道如何检索上次提交中更改的行?

这可能使用API​​吗?什么是最好的方法?如果不是,我应该尝试阅读最后两个文件版本并在本地实现不同的算法?谢谢!

Sch*_*ern 7

拉取请求包含diff_url类似的条目

"diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff"
Run Code Online (Sandbox Code Playgroud)

您可以为任何提交执行此操作.例如,要在octocat的Hello-World上获取提交7fd1a60b01f91b3的差异,请访问https://github.com/octocat/Hello-World/commit/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d.diff.

这也适用于分支机构.这是octocat的Hello-World的主人.https://github.com/octocat/Hello-World/commit/master.diff.

一般形式是:

https://github.com/<owner>/<repo>/commit/<commit>.diff
Run Code Online (Sandbox Code Playgroud)

  • 对于那些找到这个答案的人:我想补充一点,您需要指定“Accept:application/vnd.github.v3.diff”标头(“patch”也有效)。来源:https://github.community/t5/GitHub-API-Development-and/Get-pull-request-diff-from-API/td-p/19317 (4认同)