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

时间:2016-02-18 01:51:42

标签: curl github

我在github上有一个私人回购,属于一个组织。对于给定的拉取请求,有一个像这样的差异文件的URL:

https://github.com/<ORG>/<REPO>/pull/<PR_NUMBER>.diff

但是repo是私有的,那么如何用curl下载这个文件呢?我生成了一个&#34;个人访问令牌&#34;,但是对于如何使用它有点迷失。

我试过了:

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

但发回的所有内容都是&#34; Not Found&#34;。

2 个答案:

答案 0 :(得分:8)

您可以使用api.github.com中具有不同接受内容类型的pull request url。 e.g。

componentDidUpdate

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

答案 1 :(得分:0)

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"