如何使用一些自动脚本下载 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

这就是我想出的解决方案:

  1. 使用 Repository Search API 获取所需项目的详细信息。
  2. 这为您提供了一个 JSON 对象,它具有以下 属性

    "releases_url": "https://api.github.com/repos/ReactiveX/RxJava/releases",

  3. 使用上面的url得到一个JSON描述项目发布细节的对象

  4. 在步骤 3 中获得的 JSON 有一个 属性 如下所示,每个版本的项目

    "zipball_url": "https://api.github.com/repos/ReactiveX/RxJava/zipball/v1.0.8",

  5. 现在将上面 URL 的内容复制到输出流中以获取所需的源代码。

  6. 示例源代码可用here