【问题标题】:Getting file diff with Github API使用 Github API 获取文件差异
【发布时间】:2016-11-03 02:55:44
【问题描述】:

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

我已经能够使用 Github API 成功访问拉取请求和提交,但我不知道如何检索上次提交中更改的行?

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

【问题讨论】:

    标签: api github


    【解决方案1】:

    拉取请求包含 diff_url 条目,例如

    "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff"
    

    您可以对任何提交执行此操作。例如,要获取 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
    

    【讨论】:

    • 对于那些找到这个答案的人:我想补充一点,您需要指定 "Accept: application/vnd.github.v3.diff" 标头(patch 也可以)。来源:github.community/t5/GitHub-API-Development-and/…
    • 仅适用于公共存储库。不支持身份验证。
    【解决方案2】:

    对于私有存储库:

    curl -H "Accept: application/vnd.github.v3.diff" https://<personal access token>:x-oauth-basic@api.github.com/repos/<org>/<repo>/pulls/<pull request>
    

    也适用于普通 cURL -u 参数。

    见:https://docs.github.com/en/rest/reference/pulls#get-a-pull-request

    【讨论】:

      猜你喜欢
      • 2014-07-25
      • 2013-08-10
      • 2018-02-02
      • 1970-01-01
      • 2019-05-10
      • 2022-08-13
      • 2021-06-23
      • 1970-01-01
      • 2013-05-08
      相关资源
      最近更新 更多