JIRA-Python的基本身份验证不再适用于REST API调用。接下来是什么?

时间:2019-06-21 20:43:37

标签: python rest authentication jira jira-rest-api

在Python中,我曾经能够使用一小段代码通过REST进行JIRA身份验证:

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的替代方法,但找不到从A点到B点对我来说有意义的任何代码。

相反,我发现这样的事情: https://bitbucket.org/atlassianlabs/atlassian-oauth-examples/src/master/python/app.py

对我来说,这纯粹是胡言乱语。没那么复杂!

有人可以帮助一个简单的jira-python示例,该示例使用从基本身份验证到初始化REST调用之外的其他方法吗?

不胜感激!我有几个月的工作现在无用,仅仅是因为我无法再进行身份验证。

此外,如果您能解释如何以及何时使用JIRA允许您在其云实例上生成的API令牌,那么我将不胜感激!

1 个答案:

答案 0 :(得分:0)

由于在基本身份验证中已不建议使用密码,因此将使用API​​令牌代替它(正如您偶然发现的那样)。在代码中,您需要使用email代替usernameapiToken来代替密码。在您的代码中,应该为

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

尝试一下,并告诉我们进展如何。