GitHub Api下载zip或tarball链接

关于如何创buildzip / tarballstring,这里有一个很好的链接

当我从github上下载一个压缩文件时,文件名末尾的hexstring是什么意思?

但是我正在看GitHub APIv3,我很好奇,如果我失去了一些东西。

  1. 有没有办法通过API调用获取zip / tarball链接?

  2. 如果没有,有没有一种方法可以build立该string,而不使用git二进制文件或库? 意思是说,我可以使用各种AP​​I调用来将需要的数据提取出来并汇编到我需要的URL中吗?

我知道第二个问题是有点不合理的stackoverflow,这是一个有趣的项目对我来说,所以我更喜欢第二个问题,如果你只是推动我在正确的方向,而不是抛出一个代码片段。 或者只是告诉我,如果这是可能的。

你可以从GitHub仓库中取出一个tar文件( 存档 ):

 wget --no-check-certificate https://github.com/User/repo/archive/master.tar.gz # better, if the certificate authorities are present: wget https://github.com/User/repo/archive/master.tar.gz 

会从用户'用户'的回购'回购'中得到一个名为'master'的文件。

更新后的V3 APIurl是:

 https://api.github.com/repos/User/repo/:archive_format/:ref # # two possibilities for fomat: https://api.github.com/repos/User/repo/tarball/master https://api.github.com/repos/User/repo/zipball/master # from github example: $curl -L https://api.github.com/repos/octokit/octokit.rb/tarball > octokit.tar.gz 

然后你可以tar xpvf master ,获得完整的存档。
它将按照您提到的问题中描述的命名约定创build一个目录。

从GitHub获取档案,不需要git二进制文件,这要感谢他们的下载服务“Nodeload” 。


ligemer 在编辑中提出了如下的例子:

编辑2016-08-25 – 使用Wget,variables和Untar的Shell示例:

 #!/bin/bash -ex # arguments: # token = $1 # organization = $2 # repo name = $3 # branch = $4 wget --header="Authorization: token ${1}" --header="Accept:application/vnd.github.v3.raw" -O - https://api.github.com/repos/${2}/${3}/tarball/${4} | tar xz 

拨打电话:

$ scriptName.sh token my-organization site.com master

上面的命令将下载并提取Github文件夹到脚本相同的目录。


Diogo Quintela 在评论中build议:

以下示例允许下载,提取和剪切顶层目录

 curl -L https://api.github.com/repos/octokit/octokit.rb/tarball | tar xz --strip=1 

语法在文档中描述:

 GET /repos/:owner/:repo/:archive_format/:ref 

以下示例URL将指向(通过302redirect ) hadley / devtools回购中master的zip存档:

https://api.github.com/repos/hadley/devtools/zipball/master

archive_format的另一个选项是tarball 。)

从这个API可用的时候我就不知道了。