如何使用Github Release API 制作没有源码的release?
How to use Github Release API to make a release without source code?
我正在使用 blow 命令在 Github 仓库上发布一个版本:
curl -X POST -H "Authorization: token xxxxxxxxx" -d '{"tag_name": "test", "name":"release-0.0.1","body":"this is a test release"}' https://api.github.com/repos/xxxxxx
我可以看到创建了一个新版本。但是下面有两个下载按钮:
Source code (zip)
Source code (tar.gz)
如何在没有源代码的情况下发布?
如果无法删除源代码附件,如何上传其他二进制文件?我尝试像这样使用 API Upload a release asset
:POST https://<upload_url>/repos/:owner/:repo/releases/:id/assets?name=foo.zip
,它 returns 成功,但我在 Github 发布选项卡上找不到二进制文件。
我认为您不能使用社区版本。不过,您可以将小型二进制文件附加到发行版中。我相信这就是 GitHub 的工作方式,因为它以浏览代码为导向,提供源代码是重要的部分。
要创建新版本并上传其他二进制文件,您可以:
- 使用
POST /repos/:username/:repo/releases
创建发布并存储响应中的 upload_url
字段
- 使用带有附加参数
name
和可选 label
的 POST $upload_url
上传您的资产(参考 this)
使用 bash
、curl
和 jq
(JSON 解析器)的快速示例:
#!/bin/bash
token=YOUR_TOKEN
repo=username/your-repo
upload_url=$(curl -s -H "Authorization: token $token" \
-d '{"tag_name": "test", "name":"release-0.0.1","body":"this is a test release"}' \
"https://api.github.com/repos/$repo/releases" | jq -r '.upload_url')
upload_url="${upload_url%\{*}"
echo "uploading asset to release to url : $upload_url"
curl -s -H "Authorization: token $token" \
-H "Content-Type: application/zip" \
--data-binary @test.zip \
"$upload_url?name=test.zip&label=some-binary.zip"
您可以使用 .gitattributes 文件(并使其成为您存储库的一部分)在自动生成中控制 sorcecode 存档的内容。
添加如下行:
src export-ignore
将目录 "src" 排除在生成的源包之外。在内部 github 使用 "git archive" 基于标签创建包 - "git archive" 可以通过“.gitattributes”进行控制。
不知道是否可以完全避免生成源码包——但这至少是一种控制源码包内容的变通方法
我正在使用 blow 命令在 Github 仓库上发布一个版本:
curl -X POST -H "Authorization: token xxxxxxxxx" -d '{"tag_name": "test", "name":"release-0.0.1","body":"this is a test release"}' https://api.github.com/repos/xxxxxx
我可以看到创建了一个新版本。但是下面有两个下载按钮:
Source code (zip)
Source code (tar.gz)
如何在没有源代码的情况下发布?
如果无法删除源代码附件,如何上传其他二进制文件?我尝试像这样使用 API Upload a release asset
:POST https://<upload_url>/repos/:owner/:repo/releases/:id/assets?name=foo.zip
,它 returns 成功,但我在 Github 发布选项卡上找不到二进制文件。
我认为您不能使用社区版本。不过,您可以将小型二进制文件附加到发行版中。我相信这就是 GitHub 的工作方式,因为它以浏览代码为导向,提供源代码是重要的部分。
要创建新版本并上传其他二进制文件,您可以:
- 使用
POST /repos/:username/:repo/releases
创建发布并存储响应中的upload_url
字段 - 使用带有附加参数
name
和可选label
的POST $upload_url
上传您的资产(参考 this)
使用 bash
、curl
和 jq
(JSON 解析器)的快速示例:
#!/bin/bash
token=YOUR_TOKEN
repo=username/your-repo
upload_url=$(curl -s -H "Authorization: token $token" \
-d '{"tag_name": "test", "name":"release-0.0.1","body":"this is a test release"}' \
"https://api.github.com/repos/$repo/releases" | jq -r '.upload_url')
upload_url="${upload_url%\{*}"
echo "uploading asset to release to url : $upload_url"
curl -s -H "Authorization: token $token" \
-H "Content-Type: application/zip" \
--data-binary @test.zip \
"$upload_url?name=test.zip&label=some-binary.zip"
您可以使用 .gitattributes 文件(并使其成为您存储库的一部分)在自动生成中控制 sorcecode 存档的内容。
添加如下行:
src export-ignore
将目录 "src" 排除在生成的源包之外。在内部 github 使用 "git archive" 基于标签创建包 - "git archive" 可以通过“.gitattributes”进行控制。
不知道是否可以完全避免生成源码包——但这至少是一种控制源码包内容的变通方法