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

时间:2013-05-22 19:41:16

标签: github-api

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

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

1 个答案:

答案 0 :(得分:8)

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

GET https://api.github.com/repos/:owner/:repo/commits?path=FILE_PATH

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

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

GET https://api.github.com/repos/:owner/:repo/contents/:FILE_PATH?ref=SHA

并阅读content属性。请注意,内容是Base64编码的,但您也可以通过设置相关的Accept HTTP header来申请原始版本。