Tyl*_*aff 6 tags git binary release github
我有一个包含二进制文件的仓库,我需要它.
我可以
git checkout tags/thetagoftherelease
Run Code Online (Sandbox Code Playgroud)
这似乎检查正确的标签,但不会拉下二进制文件.如何下载添加到发行版的二进制文件(发行版中的绿色框)?
在发行版中添加了二进制文件的图片.
Ted*_*Ted 20
我已经尝试了几天试图找到正确的答案,最后我想通过curl命令如何做到这一点.这是一个分为3个步骤的过程.
首先,获取最新版本的资产列表:
curl -H "Authorization: token YOURGITHUBTOKEN" \
https://api.github.com/repos/NAME/REPO/releases/latest
Run Code Online (Sandbox Code Playgroud)
然后在JSON中,查找所需资产的URL.例如,它看起来像:
"url": "https://api.github.com/repos/NAME/REPO/releases/assets/1275759"
Run Code Online (Sandbox Code Playgroud)
然后将其传递给另一个curl命令以检索实际的URL,这实际上是指向Amazon S3文件的链接.
curl -H "Authorization: token YOURGITHUBTOKEN" \
-H "Accept:application/octet-stream" \
-i https://api.github.com/repos/NAME/REPO/releases/assets/1275759
Run Code Online (Sandbox Code Playgroud)
URL将位于HTTP响应的"location"字段中,然后使用curl获取如下文件:
curl "https://github-cloud.s3.amazonaws.com...." -i -o FILENAME
Run Code Online (Sandbox Code Playgroud)
二进制发布资产存在于 Git 之外,无法使用标准工具进行管理。
不过,它们应该可以通过 GitHub 的 API 获得。
GET /repos/:owner/:repo/releases/:id/assets
Run Code Online (Sandbox Code Playgroud)
这将发回一个 JSON 文档,其中列出了存储库的发布资产,例如
GET /repos/:owner/:repo/releases/:id/assets
Run Code Online (Sandbox Code Playgroud)从你想要的版本中检索 assts,如id
上面定义的那样:
GET /repos/:owner/:repo/releases/assets/:id
Run Code Online (Sandbox Code Playgroud)
如果要下载资产的二进制内容,请传递媒体类型
"application/octet-stream"
. API 要么将客户端重定向到该位置,要么在可能的情况下直接将其流式传输。API 客户端应该同时处理 a200
或302
响应。
如文档所述,这些请求都是相对于https://api.github.com
.