我正在尝试向我所在公司的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)
如果我使用HTTPBasicAuth
或HTTPDigestAuth
都无效
公司github网站已通过SAML进行了身份验证,因此我想知道这是否与SAML相关。
答案 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替代品,可以进行尝试。