像大多数访问此问题的人一样,我对在Github中找到一种完全自动下载LATEST版本的发行版或存储库的方法感到非常沮丧。此解决方案的好处是您不必指定任何发行版或标签号-它只需抓住LATEST即可。
我使用以下Github用户和仓库进行了测试:
“ f1linux ” = Github用户
“ pi-ap ” =回购
存储库保存到的任意目录名称设置在:
--one-top-level="pi-ap"
直接:
使用Firefox的“ Web Developer ”工具(右上角的3个栏),在“ 网络 ”部分中,我https://api.github.com
重定向到https://codeload.github.com
,因此通过将管道连接到curl
,tar
我可以获取最新版本的存储库并将其保存为可预测的名称,因此可以在以下位置进行操作:
curl https://codeload.github.com/f1linux/pi-ap/legacy.tar.gz/master | tar xzvf - --one-top-level="pi-ap" --strip-components 1
间接:
使用DIRECT URL 自动下载最新版本的软件后,我将注意力转向通过Github重定向来实现相同目的:
curl -L https://api.github.com/repos/f1linux/pi-ap/tarball | tar xzvf - --one-top-level="pi-ap" --strip-components 1
首选方法:
但是,请注意,根据下面冯的评论,INDIRECT是首选方法
进一步验证:
为确保我的结果可复制到其他版本的Github存储库,对Digital Ocean的doctl
api工具包成功执行了相同的测试(实际上是整个练习的开始!):
这两个直接和间接使用相同的形式上面,只是改变了用户名和回购工作:
直接:
curl https://codeload.github.com/digitalocean/doctl/legacy.tar.gz/master | tar xzvf - --one-top-level="doctl" --strip-components 1
间接:
curl -L https://api.github.com/repos/digitalocean/doctl/tarball | tar xzvf - --one-top-level="doctl" --strip-components 1