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

Unable to call github APIs given username and password

我正在尝试调用 Github APIs 到我工作的公司的 Github Enterprise Server。 API 调用在我使用个人访问令牌时有效,但每次我使用用户名和密码时,我都会收到 HTTP 401 错误消息 "Must authenticate to use this 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 相关的问题。

Github 不允许 http/https 身份验证。 (同样适用于 bitbucket 和 gitlab)。我学会了hard-way。

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

Github API 支持 RFC2617 with a few small 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 替代品,可以尝试一下。