Невозможно вызвать API GitHub, учитывая имя пользователя и пароль - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь вызвать API Github на Github Enterprise Server в компании, в которой я работаю.Вызовы API работают, когда я использую токен личного доступа, но каждый раз, когда я использую имя пользователя и пароль, я получаю сообщение об ошибке HTTP 401 «Необходимо аутентифицироваться, чтобы использовать этот API».

Я пытался использовать следующееинструменты:

  • curl

Пример вызова:

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.

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Github API поддерживает базовую аутентификацию, как определено в RFC2617 с несколькими небольшими отличиями .

пример 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 вместо запросов. А также Почтальон, который является хорошей альтернативой CURL, чтобы попробовать.

0 голосов
/ 23 мая 2019

Github не разрешает аутентификацию http / https.(то же самое для bitbucket и gitlab).Я научился этому нелегко.

Вы можете использовать аутентификацию на основе открытого ключа ssh.

...