首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用curl,如何从github上的私有存储库下载.diff文件

使用curl,如何从github上的私有存储库下载.diff文件
EN

Stack Overflow用户
提问于 2016-02-18 01:51:41
回答 3查看 1.2K关注 0票数 9

我在github上有一个私人回购,属于一个组织。对于给定的拉请求,有一个diff文件的url如下所示:

代码语言:javascript
复制
https://github.com/<ORG>/<REPO>/pull/<PR_NUMBER>.diff

但是回购是私有的,所以我如何下载这个卷曲文件呢?我生成了一个“个人访问令牌”,但是对于如何使用它有点不知所措。

我试过这个:

代码语言:javascript
复制
curl -H 'Authorization: token <TOKEN>' -H 'Accept: application/vnd.github.v3.raw' -O -L "https://github.com/<ORG>/<REPO>/pull/<PR_NUMBER>.diff"

但所有发回的都是“找不到”。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-19 15:55:23

您可以使用来自api.github.com的不同接受内容类型的拉请求url。例如:

代码语言:javascript
复制
curl -H 'Authorization: token mytoken' -H "Accept: application/vnd.github.v3.diff" https://api.github.com/repos/orgname/repo/pulls/1234

注意:请从网址中删除".diff“后缀。

票数 14
EN

Stack Overflow用户

发布于 2016-02-18 02:48:12

Github API为所有未经授权的请求返回404 -主要是为了隐藏用户/组织数据在请求的URL上的存在/不存在。所以你得到的404实际上可能是401。

当通过curl向GH api发送请求时,您应该使用u选项来发送令牌,而不是发送Authorization头,从而产生以下请求:

curl -u <USERNAME>:<TOKEN> \ -H 'Accept: application/vnd.github.v3.raw' -O -L \ "https://github.com/<ORG>/<REPO>/pull/<PR_NUMBER>.diff"

票数 0
EN

Stack Overflow用户

发布于 2022-02-28 10:24:29

2022年开始工作。请注意,URL与先前接受的答案是相同的,但是身份验证方法需要更改:

代码语言:javascript
复制
curl -H "Accept: application/vnd.github.v3.diff" https://<personal access token>:x-oauth-basic@api.github.com/repos/<org>/<repo>/pulls/<pull request>

还可以使用普通的cURL -u参数。

请参阅:https://docs.github.com/en/rest/reference/pulls#get-a-pull-request

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35471316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档