【发布时间】:2013-05-18 00:12:03
【问题描述】:
我目前正在尝试通读 (GitHub API)[http://developer.github.com/v3/repos/contents/] 以了解如何以编程方式在单个文件中检索特定文件的所有版本存储库。
我发现可以轻松获取提交列表和单个文件的当前版本。但是,有没有办法列出与特定文件相关的所有提交,然后遍历该文件的所有版本?
【问题讨论】:
标签: github-api
我目前正在尝试通读 (GitHub API)[http://developer.github.com/v3/repos/contents/] 以了解如何以编程方式在单个文件中检索特定文件的所有版本存储库。
我发现可以轻松获取提交列表和单个文件的当前版本。但是,有没有办法列出与特定文件相关的所有提交,然后遍历该文件的所有版本?
【问题讨论】:
标签: github-api
要获取与特定文件相关的提交列表,请使用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 编码的,但您也可以通过设置相关的AcceptHTTP header 来请求原始版本。
【讨论】: