有没有办法只使用wget (或 curl 或其他一些 linux 终端命令)来做到这一点?Git 未安装在将运行此命令的机器上。
目前,当我尝试通过运行以下命令下载我的 repo 的 lib 文件夹时,出现 404 Not Found 错误:
wget --header="Authorization: token {token}" -r https://raw.githubusercontent.com/{user}/{repo}/{branch}/{path to builds dir}/lib
Run Code Online (Sandbox Code Playgroud)
该目录肯定存在,下面的代码从目录中下载一个文件就好了:
wget --header="Authorization: token {token}" --output-document={file}.jar https://raw.githubusercontent.com/{user}/{repo}/{branch}/{path to builds dir}/lib/{file}.jar
Run Code Online (Sandbox Code Playgroud)
小智 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 的代码以获取灵感。