我已经使用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
答案 0 :(得分:1)
好的,我得到了它的工作 - 这是由于一些内部网络变幻莫测。
我们的内部JIRA服务器已过期证书。所以他们将它从https切换到http。
我使用'server':'https://...'
和'verify':False
创建了我的jira实例,以绕过证书错误。大概是jira-python只是通过http连接并用于所有查询。
但是当发布到网站的时候,我们遇到了https vs http问题的问题。
切换到'server':'http://...'
并删除'verify'
选项让它正常工作。
我找到了提示here