给定用户名和密码的github API无法调用

时间:2019-05-23 02:24:08

标签: python github-api github-enterprise

我正在尝试向我所在公司的Github Enterprise Server调用Github API。当我使用个人访问令牌时,API调用有效,但是每次使用用户名和密码时,都会收到HTTP 401错误消息“必须通过身份验证才能使用此API”。

我尝试使用以下工具:

  • 卷曲

通话示例:

curl --proxy $PROXY -i --user "xx-xx" https://github.xxx.xxx.com/api/v3/users

示例代码:

gh = Github('my-user', password='....', base_url='https://github.xxx.xxx.com/api/v3/users')

示例代码

r = requests.get('https://github.xxx.xxx.com', auth=('my-user','....'), proxies=proxyDict) 

如果我使用HTTPBasicAuthHTTPDigestAuth都无效

公司github网站已通过SAML进行了身份验证,因此我想知道这是否与SAML相关。

2 个答案:

答案 0 :(得分:0)

Github不允许http / https身份验证。 (与bitbucket和gitlab相同)。我很难学。

您可能要使用基于ssh公钥的身份验证。

答案 1 :(得分:0)

Github API支持RFC2617中定义的基本身份验证,其中包含一些较小的differences

cURL示例:

curl -u username https://api.github.com/user

cURL将提示您输入密码。

PyGitHub示例:

g = Github("user", "password")
for repo in g.get_user().get_repos():
    print(repo.name)

请求示例:

response = requests.get('https://api.github.com/user', auth=('username', 'password'))

我建议使用PyGitHub而不是Requests。还有Postman,这是一个不错的cURL替代品,可以进行尝试。