如何使用一些自动脚本下载 Github 上存储库所有版本的源代码?
How do I download source code of all the versions of a repository on Github using some automated script?
我在 GitHub 上有几个 public 存储库的详细信息。有没有办法编写一个脚本,将所有这些存储库的源代码下载到我的本地机器上?下载源代码时,我希望下载所有以前版本的项目。
例如:RxJava 项目有大约 124 个版本,如图所示 here。我想知道是否有办法编写一个程序,将所有这 124 个版本的源代码下载到我的机器上。我不想在每个这些版本上单击下载源代码按钮。
最简单的方法是:
- 克隆 repo(这将为您提供与每个标签匹配的来源)
- 做一个 git 标签,并为每个标签卷曲发布。
实际上,由于发布 是 源代码,因此您无需 curl 任何内容。
要访问 "release" 的源代码,只需签出与版本匹配的标签。
cd /path/to/cloned/repo
git checkout 1.0.8
这就是我想出的解决方案:
- 使用 Repository Search API 获取所需项目的详细信息。
这为您提供了一个 JSON 对象,它具有以下 属性
"releases_url": "https://api.github.com/repos/ReactiveX/RxJava/releases",
使用上面的url得到一个JSON描述项目发布细节的对象
在步骤 3 中获得的 JSON 有一个 属性 如下所示,每个版本的项目
"zipball_url": "https://api.github.com/repos/ReactiveX/RxJava/zipball/v1.0.8",
现在将上面 URL 的内容复制到输出流中以获取所需的源代码。
示例源代码可用here
我在 GitHub 上有几个 public 存储库的详细信息。有没有办法编写一个脚本,将所有这些存储库的源代码下载到我的本地机器上?下载源代码时,我希望下载所有以前版本的项目。
例如:RxJava 项目有大约 124 个版本,如图所示 here。我想知道是否有办法编写一个程序,将所有这 124 个版本的源代码下载到我的机器上。我不想在每个这些版本上单击下载源代码按钮。
最简单的方法是:
- 克隆 repo(这将为您提供与每个标签匹配的来源)
- 做一个 git 标签,并为每个标签卷曲发布。
实际上,由于发布 是 源代码,因此您无需 curl 任何内容。
要访问 "release" 的源代码,只需签出与版本匹配的标签。
cd /path/to/cloned/repo
git checkout 1.0.8
这就是我想出的解决方案:
- 使用 Repository Search API 获取所需项目的详细信息。
这为您提供了一个 JSON 对象,它具有以下 属性
"releases_url": "https://api.github.com/repos/ReactiveX/RxJava/releases",
使用上面的url得到一个JSON描述项目发布细节的对象
在步骤 3 中获得的 JSON 有一个 属性 如下所示,每个版本的项目
"zipball_url": "https://api.github.com/repos/ReactiveX/RxJava/zipball/v1.0.8",
现在将上面 URL 的内容复制到输出流中以获取所需的源代码。
示例源代码可用here