使用GitHub身份验证来查看私有存储库而不使用GitHub API

时间:2017-02-18 15:14:21

标签: python github github-api

我使用GitHub API使用Authorization标头访问私有存储库。这非常有效。但是,我无法看到存储库,即发送存储库网页的GET请求。

假设我要访问的网址是

url = 'https://github.com/username/repo'

这是我私人存储库的链接。我有

headers = {'Authorization': 'token mygithubtoken'}
auth = {'myusername', 'mypassword')

我发送的请求如下

>>> res = requests.get(url, auth=auth, headers=headers)

>>> print(res.status_code)
404

我想这样做是因为拉取请求的差异也无法通过这种方式访问​​,位于https://github.com/user/repo/pull/pr_no.diff

1 个答案:

答案 0 :(得分:2)

我联系了GitHub支持,他们回答了这个问题。我们无法使用OAuth令牌访问该网站。但是,差异可以通过API获得:

https://developer.github.com/v3/pulls/#get-a-single-pull-request

您可以传递application/vnd.github.VERSION.diff媒体类型来获取差异。这样就可以了。

url = https://api.github.com/repos/:owner/:repo/pulls/:number

headers = {
    'Authorization': 'token mygithubtoken',
    'Accept': 'application/vnd.github.VERSION.diff',
}

感谢GitHub对此的支持!