GitHub Api下载zip或tarball链接
关于如何创buildzip / tarballstring,这里有一个很好的链接
当我从github上下载一个压缩文件时,文件名末尾的hexstring是什么意思?
但是我正在看GitHub APIv3,我很好奇,如果我失去了一些东西。
-
有没有办法通过API调用获取zip / tarball链接?
-
如果没有,有没有一种方法可以build立该string,而不使用git二进制文件或库? 意思是说,我可以使用各种API调用来将需要的数据提取出来并汇编到我需要的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可用的时候我就不知道了。