我可以通过GH API在两次提交之间获取一个文件的差异数据吗?

我知道如何通过API获取文件的提交,以及SHA和所有好东西。

但是,假设我只想在1次提交中使用文件的差异,或者在两次提交中使用相同文件的差异。

例如,在这个提交中 ,假设我只想在activerecord/lib/active_record/associations.rb , :counter_sql

如何通过API获取差异数据?

我正在使用Octokit.rb。

编辑1

看来这可能是根据这篇博文 ,但我不知道如何用Octokit做到这一点。

编辑2

所以,我一点一点地搞清楚它。

为了获得两次提交之间的差异数据,我可以比较这样的两个提交 。

所以,假设我在两个变量ab中的两个提交都有两个SHA,我会做这样的事情:

 client = Octokit::Client.new(access_token: ENV["MY_ACCESS_TOKEN"]) comparison = client.compare("rails/rails", a, b, path: "activerecord/lib/active_record/associations.rb") 

这个问题导致两次提交之间存在差异,包括对许多其他文件的更改以及我不想要的大量信息。

我想要的只是这两个提交中来自此特定文件的差异。

我还没想出怎么做。

思考?

不,不可能。

您可以使用Compare API来获取两次提交之间的差异,这将包括所有文件,而不仅仅是您所感兴趣的文件,如您所观察到的那样。 所以你需要在你的头上做一些过滤。

另一种方法可能是在提交X然后在提交Y处获取文件的内容,然后在您的端部计算这两个版本的文件之间的差异(通常没有用于区分的GitHub API)。 您可以使用Contents API来获取文件的原始版本。

https://developer.github.com/v3/repos/contents/#get-contents