2

我正在使用 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 链接替换为真实文件内容的存档?

4

1 回答 1

2

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

POST https://github.com/your-account/your-repo/objects有类似的东西:

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

也许你可以省略这size部分 - 它并没有真正指定。您也可以OIDs批量请求中一起请求几个

响应看起来像这样,并且将包含指向 blob 本身的下载链接(如果它们存在)或每个 blob 的一些错误(如果您通过身份验证,响应作为一个整体总是返回 200)。

于 2016-04-11T15:57:21.073 回答