【发布时间】:2017-07-29 21:26:46
【问题描述】:
我试图在我的工作地点从 python 访问 jira,我打算做的基本操作是获取/创建/更新 jira 问题。我在网上查看了模板代码并尝试使用它,但没有运气。我已经使用 pip 安装了 jira api。
pip install jira
#!/usr/bin/python
from jira import JIRA
options = {'server' : 'https://jira.mycompany.com/rest/api/2'}
jira = JIRA(options)
projects = jira.projects()
print (projects)
这是它的输出:
Traceback (most recent call last):
File "JiraTest.py", line 7, in <module>
jira = JIRA(options)
File "C:\Anaconda3\lib\site-packages\jira\client.py", line 317, in __init__
si = self.server_info()
File "C:\Anaconda3\lib\site-packages\jira\client.py", line 1771, in server_info
j = self._get_json('serverInfo')
File "C:\Anaconda3\lib\site-packages\jira\client.py", line 2172, in _get_json
r = self._session.get(url, params=params)
File "C:\Anaconda3\lib\site-packages\jira\resilientsession.py", line 150, in get
return self.__verb('GET', url, **kwargs)
File "C:\Anaconda3\lib\site-packages\jira\resilientsession.py", line 146, in __verb
raise_on_error(response, verb=verb, **kwargs)
File "C:\Anaconda3\lib\site-packages\jira\resilientsession.py", line 56, in raise_on_error
r.status_code, error, r.url, request=request, response=r, **kwargs)
jira.exceptions.JIRAError: JiraError HTTP 404 url:https://jira.mycompany.com/rest/api/2/rest/api/2/serverInfo
response headers = {'Date': 'Sat, 29 Jul 2017 22:42:31 GMT', 'Content-Length': '0', 'Server': 'Apache-Coyote/1.1'}
response text =
` 我知道我在这里做错了,因此这是我想问的问题:
- 如何在您的工作场所确定 jira 服务器。
- jira 管理员是否需要通过管理员登录启用 rest api 调用或其他功能?有没有办法确定它是否被我们的代码禁用?
- 除了通过 pip 安装 jira 之外,我还需要安装什么。
- 如何处理登录凭据。我确信有比在 .py 文件中指定用户名/密码更好的方法。有人可以告诉我在哪里可以找到该信息。
谢谢。
【问题讨论】:
-
“没有运气”是什么意思?你有例外吗?如果是这样,请向我们展示追溯。目前尚不清楚您显示的代码发生了什么(显然我们无法测试您公司的 JIRA 设置)。
-
@Blckknght - 我已经用它的输出更新了我的帖子。我觉得我在尝试访问 jira 时完全做错了或错过了一些步骤。
-
无论如何我都不是 JIRA 专家(我用它来报告错误,但从未使用它的 API 进行编程),但从错误消息中 URL 的重复部分判断,我猜您应该将
/rest/api/2部分从您放入options字典中的值中删除。 -
@Blckknght - 是的,我也试过了,删除了重复的部分,但仍然是相同的错误(减去重复的字符串)。
标签: python jira jira-rest-api python-jira