比方说,我在看https://github.com/jgm/pandoc/releases:
我想使用Github API来获取最新发布的zip-因此,我尝试使用以下内容,并且可以正常工作:
$ curl --silent "https://api.github.com/repos/jgm/pandoc/releases/latest" | grep "browser_download_url" | grep zip
"browser_download_url": "https://github.com/jgm/pandoc/releases/download/2.4/pandoc-2.4-macOS.zip"
"browser_download_url": "https://github.com/jgm/pandoc/releases/download/2.4/pandoc-2.4-windows-i386.zip"
"browser_download_url": "https://github.com/jgm/pandoc/releases/download/2.4/pandoc-2.4-windows-x86_64.zip"
$ curl --silent "https://api.github.com/repos/jgm/pandoc/releases/latest" | grep "zipball_url"
"zipball_url": "https://api.github.com/repos/jgm/pandoc/zipball/2.4",
有zipball_url
,但我不想使用它,因为它没有正确的文件名。
到目前为止,太好了。现在,我想对https://github.com/hakimel/reveal.js/releases回购做同样的事情:
在线,看起来有点一样,不是吗?有“资产”,有可以下载的文件...但是,如果我尝试相同的话:
$ curl --silent "https://api.github.com/repos/hakimel/reveal.js/releases/latest" | grep "browser_download_url"
$
$ curl --silent "https://api.github.com/repos/hakimel/reveal.js/releases/latest" | grep "zipball_url"
"zipball_url": "https://api.github.com/repos/hakimel/reveal.js/zipball/3.7.0",
...事实证明,browser_download_url
在这里不存在?!为什么? Github页面上有此项目的https://github.com/hakimel/reveal.js/archive/3.7.0.zip吗?
这是因为hakimel / reveal.js是标记的Git源的“源代码” .zip;而jgm / pandoc是否有browser_download_url
用于那些“手动上传”(即不是自动从Git源的标记版本中自动派生)的.zip?
如果可以,我可以直接从Github API获取(如果可以,如何)https://github.com/hakimel/reveal.js/archive/3.7.0.zip链接(或最新的官方zip版本),而不必基于最新的标签版本执行正则表达式杂技找到实际的.zip文件名?
编辑:请注意,3.7.0.zip
不是您在浏览器中单击后得到的最终文件名-最终文件名最终为reveal.js-3.7.0.zip
!