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

标签 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 token ,如这里所建议的: 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 token ,我们将不胜感激,因为我也不明白!

最佳答案

由于在基本身份验证中已经弃用了密码,因此将使用 API token 取而代之(正如您偶然发现的那样)。在您的代码中,您需要使用 email 代替 usernameapiToken 而不是 password。在你的代码中它应该是

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

试试看,告诉我们效果如何。

关于python - JIRA-Python 的基本身份验证不再适用于 REST API 调用。接下来是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56710224/

相关文章:

REST 操作和 URL API 设计注意事项

web-services - REST 网络服务 : Acceptable HTTP response content-type when responding with status 4XX (Client Error)

cakephp - 在 Cakephp 中允许特定页面

python - pandas:仅当点出现在字符串中的数字之后时才删除点

python - 为什么我的 send_mail() 命令在 Django 中不起作用?

java - Spring MVC - 使用路径变量编辑响应 URL

ios - 无法使用 twitterkit 登录

ios - iOS 7 Web 应用程序中的 HTTP 身份验证没有响应

python - Python 中的 Azure 认知语音翻译服务的自定义音频输入字节

python - 如何附加到多级字典中的列表?