Базовая аутентификация для JIRA-Python больше не работает для вызовов REST API. Что дальше? - PullRequest
0 голосов
/ 21 июня 2019

В Python я имел обыкновение проходить проверку подлинности с помощью JIRA поверх REST, используя простой фрагмент кода:

from jira import JIRA

my_JIRA_username = 'my_name'
my_JIRA_pass = 'my_password'
server = {'server': 'https://my_site.atlassian.net'}
jira = JIRA(server, basic_auth = (my_JIRA_username, my_JIRA_pass))

И затем иметь возможность делать что-то простое, например:

my_issue = jira.issue('MYISSUE-1')
print my_issue.key

Но JIRA что-то изменило, и я предполагаю, что больше не разрешает базовую аутентификацию, подобную этой, через REST API.Вместо этого я получаю ошибку 401.

Я устал от создания токена API, как было предложено здесь: https://confluence.atlassian.com/cloud/api-tokens-938839638.html, за исключением того, что я понятия не имею, где его использовать (это не работает, если я просто использую его)как пароль, как в коде выше).

Я рассматривал OAuth как альтернативу, но не могу найти ни одного кода, который идет из точки А в В, который имеет ЛЮБОЙ смысл для меня.

Вместо этого я нахожу такие вещи: https://bitbucket.org/atlassianlabs/atlassian-oauth-examples/src/master/python/app.py

Что для меня чистое бред.Это не может быть так сложно!

Может ли кто-нибудь помочь с простым примером jira-python, использующим что-то, кроме простой аутентификации, которая переходит от инициализации к простому вызову REST?

Это было бы очень ценно!У меня есть месяцы работы, которые теперь бесполезны только потому, что я больше не могу аутентифицироваться.

Кроме того, если вы можете объяснить, как и когда использовать токен API, который JIRA позволяет вам генерировать на своем облачном экземпляре, этобудьте благодарны, поскольку я тоже этого не понимаю!

1 Ответ

0 голосов
/ 25 июня 2019

Поскольку использование пароля в базовой аутентификации уже устарело, вместо него должны использоваться токены API (как вы и наткнулись).В вашем коде вам нужно использовать email вместо username и apiToken вместо пароля.В вашем коде это должно быть

# jira = JIRA(server, basic_auth = (my_JIRA_username, my_JIRA_pass))
jira = JIRA(server, basic_auth = (email, apiToken))

Попробуйте и расскажите нам, как это происходит.

...