我知道如何通过 API 以及 SHA 和所有这些好东西来获取文件的提交。
但是,假设我只想要 1 次提交中的文件差异或两次提交中同一文件的差异。
例如,在这次提交 https://github.com/rails/rails/commit/ea759cb76161a7a0003c3cd3b38a8a125a99af3c#diff-a215bfc911ab0913d92695a0f20310ef,说我想要的只是, :counter_sql
in the activerecord/lib/active_record/associations.rb
.
如何通过 API 获取差异数据?
我正在使用 Octokit.rb。
Edit 1
看来这是可能的根据这篇博文 https://developer.github.com/changes/2012-12-10-Diff-and-patch-media-types/,但我只是不知道如何使用 Octokit 来做到这一点。
Edit 2
所以,我正在一点一点地弄清楚。
为了获取两次提交之间的差异数据,我可以比较像这样的两次提交 https://developer.github.com/v3/repos/commits/#compare-two-commits.
因此,假设我在两个变量中都有两个提交的两个 SHAa
and b
,我会做这样的事情:
client = Octokit::Client.new(access_token: ENV["MY_ACCESS_TOKEN"])
comparison = client.compare("rails/rails", a, b, path: "activerecord/lib/active_record/associations.rb")
这个问题是这会导致两次提交之间存在差异,其中包括对许多其他文件的更改以及许多我不想要的信息。
我想要的只是这两次提交中这个特定文件的差异。
我还没想出如何做到这一点。
想法?