21

我需要能够以特定标签下载我们的应用程序,但我无法找到一个可行的解决方案。下载基于 git tag 的 tarball 似乎很有希望,但我无法使用 Curl 让它工作。我尝试了以下方法,但我得到的只是 github 404 页面的源代码。

curl -sL https://github.com/$ACCOUNT/$PRIVATE_REPO/tarball/0.2.0.257m?login=$MY_USER_NAME&token=$MY_TOKEN > 0.2.0.257m.tar
4

3 回答 3

29

对于公共回购,你有这个要点列出了一些例子:

wget --no-check-certificate https://github.com/sebastianbergmann/phpunit/tarball/3.5.5 -O ~/tmp/cake_phpunit/phpunit.tgz

对于私人仓库,请尝试在 post 指令中传递您的凭证信息:

wget --quiet --post-data="login=${login}&token=${token}" --no-check-certificate https://github.com/$ACCOUNT/$PRIVATE_REPO/tarball/0.2.0.257m

或者使用 curl 命令,如 SO 问题“ git 等价于svn export或 github 解决方法”,也在:
使用 GitHub 的 API 的 curl 教程”中进行了详细说明。


OP Steven Jp报告已使curl命令工作:

最终的 curl 命令最终看起来像这样:

curl -sL --user "${username}:${password}" https://github.com/$account/$repo/tarball/$tag_name > tarball.tar

(为了便于阅读,多行)

curl -sL --user "${username}:${password}" 
  https://github.com/$account/$repo/tarball/$tag_name
  > tarball.tar
于 2012-04-07T09:47:47.743 回答
17

创建访问令牌后,

你可以使用wget

wget --output-document=<version>.tar.gz \
    https://api.github.com/repos/<owner>/<repo>/tarball/<version>?access_token=<OAUTH-TOKEN>

curl

curl -L https://api.github.com/repos/<owner>/<repo>/tarball/<version>?access_token=<OAUTH-TOKEN> \
    > <version>.tar.gz

更多信息可以在GitHub 的存档链接 API 参考中找到。

于 2014-09-11T08:36:10.510 回答
1

在 Github.com 上登录您的私人组织,然后前往此处创建您的令牌: https ://github.com/settings/applications#personal-access-tokens

尝试卷入您的私人组织时,请使用以下内容:

curl --header 'Authorization: token ADDACCESSTOKENHERE' \
 --header 'Accept: application/vnd.github.v3.raw' \
 --remote-name \
 --location https://api.github.com/repos/ORG/PROJECT/contents/FILE

用您的信息替换 CAPS 中的内容...

于 2014-09-12T15:37:55.373 回答