使用wget从私有github存储库下载目录

6

是否有一种方法可以仅使用wget(或curl或其他Linux终端命令)来完成此操作?Git未安装在将运行此命令的计算机上。

目前,当我尝试通过运行此命令下载我的存储库的lib文件夹时,会收到404 Not Found错误:

wget --header="Authorization: token {token}" -r https://raw.githubusercontent.com/{user}/{repo}/{branch}/{path to builds dir}/lib

该目录肯定存在,以下代码可以成功从该目录中下载文件:
wget --header="Authorization: token {token}" --output-document={file}.jar https://raw.githubusercontent.com/{user}/{repo}/{branch}/{path to builds dir}/lib/{file}.jar
1个回答

2
这是一个解决方案,如果您想以编程方式完成此任务,那么这正是DownGit在幕后使用的内容。使用GitHub的REST API,编写一个脚本,执行GET请求到内容端点。端点可以构造如下:https://api.github.com/repos/:owner/:repo/contents/:path。替换占位符后,示例端点为:https://api.github.com/repos/babel/babel-eslint/contents/lib。这将为该文件夹中存在的所有内容提供JSON数据。数据包括所需的所有内容,包括内容是否为文件夹或文件,如果是文件则有下载URL,如果是文件夹则有API端点(因此您可以获取该文件夹的数据)。使用这些数据,脚本可以递归地遍历目标文件夹中的所有内容,为嵌套文件夹创建文件夹,并下载每个文件夹中的所有文件。查看DownGit的代码以获得灵感。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接