是否仍然可以通过编程方式获取私有github repo的zipball?
我们有必要从私人回购中获得一笔资金。对于公共应用程序,通过GithubAPI或手动操作都非常简单(https://github.com/user/repo/zipball/master). 但私人回购呢?即使有oAuth令牌,也不太清楚该怎么做。我似乎没有问题从私有repos下载zipball。我使用与您指定的格式相同的格式,它可以完美地工作 我使用OAuth2获取存储库,但我使用您给定的格式为zip球构建链接。我是在家里做这件事的 如果您希望获得OAuth2令牌,只需使用该格式,它非常简单。尽管这并不完全符合您的问题: 这是我如何从GitHub获得OAuth2令牌的 更新 @贾亚乔。我只是像您指定的那样构建URL,OAuth2标记甚至没有用于它。我的令牌允许我做的就是在创建标记之前获取所有用户的私有数据。但它的工作没有问题 我想我之所以能够下载zipball,是因为URL实际上是到*的,而且因为OAuth2我现在已经登录了,所以我有权访问该URL——听起来好像你没有,所以你会收到404错误是否仍然可以通过编程方式获取私有github repo的zipball?,git,oauth,github,repository,Git,Oauth,Github,Repository,我们有必要从私人回购中获得一笔资金。对于公共应用程序,通过GithubAPI或手动操作都非常简单(https://github.com/user/repo/zipball/master). 但私人回购呢?即使有oAuth令牌,也不太清楚该怎么做。我似乎没有问题从私有repos下载zipball。我使用与您指定的格式相同的格式,它可以完美地工作 我使用OAuth2获取存储库,但我使用您给定的格式为zip球构建链接。我是在家里做这件事的 如果您希望获得OAuth2令牌,只需使用该格式,它非常简单。尽
您可以尝试向页面发送请求,如果收到错误响应,则会提示用户先登录,然后在请求zipball时,您应该会得到它,没有问题。编辑:这不再有效
带卷曲:
curl -L -F "login=$USER" -F "token=$TOKEN" https://github.com/$USER/$REPO/$PKGTYPE/$BRANCHorTAG
其中,$TOKEN
是github配置文件上的API令牌,而不是用于与APIv3通信的oAuth2令牌
$USER
是令牌所连接的用户帐户,不一定是回购所属的组织/其他用户。$USER
的第二个实例是回购的用户/帐户
$REPO
是专用存储库的名称
$PKGTYPE
是tarball还是zipball
$BRANCHorTAG
是一个分支,与master类似,或者是提交的标记名
$USER
的第一个实例必须能够访问属于$USER
的第二个实例的回购
我在任何地方都找不到这个文档,所以如果您需要更详细的信息,我也有一些关于它的文章。您可以使用基本身份验证或基于令牌的方法。有关更多详细信息,请参阅。新备选方案
curl -H "Authorization: token ab499f3b..." \
-L https://api.github.com/repos/godzilla/my_priv_repo/tarball > wut.tar.gz
因为给出的已被接受的答案不再有效,所以我想解释一下我是如何通过github API中的新更改来实现这一点的
新的下载Api链接
首先,我在这里找到了有关下载存档的信息:
公开回购
如果是公开回购,那就很容易。。。你可以做:
curl -L https://api.github.com/repos/pengwynn/octokit/tarball > octokit.tar.gz
私人回购
如果是私有回购,则需要通过转到设置,然后选择“开发者设置”/“来创建oAuth令牌。
我创建了一个个人代币
然后,根据下一页上的说明,我了解了如何获得您有权获得的私人回购:
完整代码
curl -H "Authorization: token ab499f3b..." \
-L https://api.github.com/repos/godzilla/my_priv_repo/tarball > wut.tar.gz
请务必用您的实际代币替换
ab499f3b…
。我遇到了同样的问题,这对我有效(截至2015年2月):
oAuth作为头解决方案对我不起作用,但起作用的是将密钥填充到用户名中并指定类型。然后它给出了一个302来重定向正确的链接
Verbose命令确实帮助我解决了我正在使用的凭据是否被接受的问题(404 vs 401)cURL,它允许对HTTP头和请求参数进行操作。例如: 旋度-L
-H“授权:令牌$token”
--输出hello.tar.zip 或
curl-L——输出hello.tar.zip。。。每次尝试时都会出现“未找到”错误。另外,当使用相同的格式时,我指定不确定在哪里放置令牌?。。你能在哪里链接具体的代码行吗?@jayarjo更新了我的答案-基本上用户必须登录才能使用URL。然后你将不会得到404,但我会获取令牌(我的意思是,我在尝试该url时就得到了它)。但这就是你所做的一切吗?也许我忽略了一些简单的事情…@jayarjo-我想你错过了我说的话。因为用户必须授权他们的应用程序,所以他们必须登录GitHub。因此,他们可以访问链接。如果用户未登录,我的链接也将不起作用。同样,用户必须登录GitHub才能使您的链接工作(登录www.GitHub.com-而不是您的应用程序)。但是,如果用户未登录,您如何为用户获取令牌?我肯定错过了一些东西…不确定这是否有效:这肯定不再有效。生成“必须启用Cookie才能使用GitHub”。我想你应该使用api.github.com,但是找不到URL这个“Zipball”是什么?请你再给我一点描述。