我有一个嵌入式系统,我无法安装任何东西,我可能用来获取东西的唯一工具是wget。事实证明,你不能用curl做同样的事情。我也不能为这个系统交叉编译,所以我需要求助于Python或shell脚本。有一个名为Dulwich的git的纯Python实现实际上有一些我需要交叉编译的C代码......所以我甚至试图调查那个,仅供参考。
我需要的是从github存储库获取代码,显而易见的解决方案是使用它们提供的tarball。我通常会从存储库页面复制链接以下载zip按钮,并使用授权令牌而不是用户名和密码。它的工作非常简单,如下所示:
curl -L https://<token>@github.com/<org|user>/<repo>/archive/master.tar.gz | tar xz
原来wget有点尴尬,无论我尝试过什么都可以。
答案 0 :(得分:7)
在涉及以下两种方式的各种wget标志组合后,我的头部受到了打击:
--post-data
;或--user=
有和没有--pasword=
,反之亦然;或--header="Authorization: token <token>"
我回顾了文档,发现releases API中有其他端点。看起来我首先不能将Authorization
标头用于托管tarball的服务器,其次curl(或github前端,基于代理字符串)似乎与<token>@github.com
vs做了不同的事情wget的--user=<token>
,并不是最令人愉快的事情。
那么有效的是:
wget \
--header='Authorization: token <token>' \
https://api.github.com/repos/<org|user>/<repo>/tarball/<ref>