我可以通过GH API在两次提交之间获取一个文件的差异数据吗?
我知道如何通过API获取文件的提交,以及SHA和所有好东西。
但是,假设我只想在1次提交中使用文件的差异,或者在两次提交中使用相同文件的差异。
例如,在这个提交中 ,假设我只想在activerecord/lib/active_record/associations.rb
, :counter_sql
。
如何通过API获取差异数据?
我正在使用Octokit.rb。
编辑1
看来这可能是根据这篇博文 ,但我不知道如何用Octokit做到这一点。
编辑2
所以,我一点一点地搞清楚它。
为了获得两次提交之间的差异数据,我可以比较这样的两个提交 。
所以,假设我在两个变量a
和b
中的两个提交都有两个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