E405尝试使用jira-python 0.25创建问题时

时间:2014-06-14 22:36:20

标签: python jira python-jira

我已经使用jira-python一段时间了,但到目前为止总是用于查询。现在我需要从python脚本创建一个新问题 - 它对我不起作用。

无论我做什么,我都会得到E405(方法不允许出错)。但它不是 - 重复不是 - 权限问题。

为了尝试跟踪此问题,我手动使用curl发送了POST命令。没问题,一切正常,问题就出现了。

所以,我假设我的代码错误地为create_issue设置了参数。我进入了ipython,启用了pdb,并尝试了create_issue()调用。果然,我在jira-python库中得到了一个Exception。从raise_on_error向上移动堆栈,它看起来像这样:

    500         url = self._get_url('issue')
    501         r = self._session.post(url, headers={'content-type': 'application/json'}, data=json.dumps(data))
--> 502         raise_on_error(r)
    503 
    504         raw_issue_json = json.loads(r.text)

是否有json.dumps(data)来恢复正在输入的实际字符串并获得:

'{"fields": {"issuetype": {"name": "Bug"}, "summary": "RFU", "project": {"key": "TW"}, "components": [{"name": "A Component"}]}}'

然后,我将{n'paste直接切换为--data参数到curl。它运作良好。

这似乎意味着jira-python无效(尝试使用0.25和0.18)。

也不是python版本问题(用pythons 2.7,3.3,3.4尝试过它)

我的create_issue()电话看起来像这样:

j.create_issue(project={'key':'TW'}, issuetype={'name':'Bug'}, summary='RFU', components=[{'name':'A Component'}])

指定的所有字段值都有效(尽管与此处显示的不同)

我这样做是错的吗?无法在库中删除此功能

我在virtualenv工作,这是pip冻结的输出

argparse==1.2.1
ipython==2.1.0
jira==0.25
oauthlib==0.6.3
requests==2.3.0
requests-oauthlib==0.4.1
six==1.7.2
tlslite==0.4.6
wsgiref==0.1.2

使用简单的pip install ipython jira命令设置了

顺便说一句,如果我获取现有问题,然后使用合适的参数调用issue.update(),它就可以正常工作。

另一项:我正在运行Ubuntu 14.04

1 个答案:

答案 0 :(得分:1)

好的,我得到了它的工作 - 这是由于一些内部网络变幻莫测。

我们的内部JIRA服务器已过期证书。所以他们将它从https切换到http。

我使用'server':'https://...''verify':False创建了我的jira实例,以绕过证书错误。大概是jira-python只是通过http连接并用于所有查询。

但是当发布到网站的时候,我们遇到了https vs http问题的问题。

切换到'server':'http://...'并删除'verify'选项让它正常工作。

我找到了提示here