在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令牌,将不胜感激,因为我也不理解这一点!
发布于 2019-06-25 08:17:50
由于在基本身份验证中已经不推荐使用密码,因此将使用API令牌来代替它(正如您偶然发现的那样)。在您的代码中,您需要使用email代替username,使用apiToken代替password。在你的代码中,它应该是
# jira = JIRA(server, basic_auth = (my_JIRA_username, my_JIRA_pass))
jira = JIRA(server, basic_auth = (email, apiToken))试一试,并告诉我们它的进展如何。
https://stackoverflow.com/questions/56710224
复制相似问题