使用GitHub API检索特定文件的所有版本

use*_*169 7 github-api

我目前正在尝试阅读(GitHub API)[http://developer.github.com/v3/repos/contents/],以了解如何以编程方式检索单个存储库中特定文件的所有版本.

我看到可以轻松获取提交列表和单个文件的当前版本.但是,有没有办法列出与特定文件相关的所有提交,然后遍历该文件的所有版本?

Iva*_*zak 8

要获取与特定文件相关的提交列表,请使用此API端点并指定path参数:

GET https://api.github.com/repos/:owner/:repo/commits?path=FILE_PATH
Run Code Online (Sandbox Code Playgroud)

您将获得一组提交对象,每个提交对象都有一个sha属性.

现在您拥有了所有提交SHA,您可以使用此API端点并通过指定ref查询参数来设置SHA 来获取文件的所有不同版本.因此,对于每个提交SHA,请发出以下请求:

GET https://api.github.com/repos/:owner/:repo/contents/:FILE_PATH?ref=SHA
Run Code Online (Sandbox Code Playgroud)

并读取content属性.请注意,内容是Base64编码的,但您也可以通过设置相关的Accept HTTP标头来请求原始版本.