Github API下载包含LFS文件的zipball / tarball

时间:2016-04-11 15:24:19

标签: github-api git-lfs

我正在使用v3 API从Github检索tarball,即https://api.github.com/repos/my-account/my-project/tarball/my-ref

但是,此项目对某些文件使用Git-LFS,并且生成的存档不包含文件,而是包含LFS链接:

version https://git-lfs.github.com/spec/v1
oid sha256:fc03a2eadf6ac4872de8ad96a865ed05c45c416c5ad40c9efa3c4bcbe5d0dc9e
size 1284

为了获得将LFS链接替换为真实文件内容的存档,我该怎么办?

1 个答案:

答案 0 :(得分:2)

Git-lfs API显示了如何以及在何处发出请求。 在您的情况下,假设您知道您正在寻找的OID(它存储在pointer中),您应该:

POST https://github.com/your-account/your-repo/objects,例如:

{
    "operation": "download",
    "objects": [
      {
       "oid": "fc03a2eadf6ac4872de8ad96a865ed05c45c416c5ad40c9efa3c4bcbe5d0dc9e",
       "size": 1284
      }
    ]
}

也许你可以省略size部分 - 它没有真正指定。您也可以在batch request

中同时请求多个OIDs

响应看起来像this,如果存在,则会包含blob本身的下载链接,或者每个响应都有一些错误(如果您通过身份验证,则整个响应总是返回200)。 / p>