如何使用Github发布API在没有源代码的情况下发布?
我正在使用blow命令在Github repo上发布一个版本:如何使用Github发布API在没有源代码的情况下发布?,git,github,github-api,Git,Github,Github Api,我正在使用blow命令在Github repo上发布一个版本: 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) So
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
上传发布资产如下:POSThttps:///repos/:owner/:repo/releases/:id/assets?name=foo.zip
,它成功返回,但我在Github发布选项卡上找不到二进制文件。我认为在社区版本上找不到。不过,您可以将小型二进制文件附加到发行版。我相信这就是GitHub的工作方式,因为它以浏览代码为导向,提供源代码是重要的部分。要创建新版本并上载其他二进制文件,您可以:
- 使用
POST/repos/:username/:repo/releases
创建发布,并存储响应中的upload\u url
字段
- 使用
POST$upload\u url
和附加参数name
和可选的label
上传您的资产(请参阅)
使用bash
、curl
和(JSON解析器)的快速示例:
#/bin/bash
令牌=您的\u令牌
repo=用户名/您的repo
upload_url=$(curl-s-H“授权:令牌$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”。上传_url”)
upload\u url=“${upload\u url%\{*}”
echo“将资产上载到url:$upload\u url”
curl-s-H“授权:令牌$token”\
-H“内容类型:应用程序/zip”\
--data binary@test.zip\
“$upload\u url?name=test.zip&label=some binary.zip”
您可以使用该文件在自动生成过程中控制sorcecode archive的内容(并使其成为存储库的一部分)
添加如下行:
src export-ignore
将目录“src”从生成的源程序包中排除。github内部使用“git archive”基于标记创建程序包,而“git archive”可以通过“.gittributes”进行控制
不知道是否可以完全避免生成源代码包-但这至少是控制源代码包内容的一种解决方法如果无法删除源代码附件,如何上载其他二进制文件?我尝试使用API上载发布资产
,它成功返回,但我可以dn在Github release tab上找不到二进制文件。很好,它可以工作。我想我是否可以删除源代码zip下载?我不这么认为,因为版本是基于,Github会自动显示它绑定到的SHA id,并提供此标记的源存档链接。但是,您可以使用tar在特定的提交/分支上创建/更新版本get_commitish
字段(默认为master branch)如果我使用付费github帐户会怎么样?这能删除源代码zip吗?如果我使用付费github帐户会怎么样?这能删除源代码zip吗?您忽略了“如何在没有源代码的情况下发布?”part.Nice。这至少应该标记为问题标题的答案