jira web api地址 http://jira.**.com/plugins/servlet/restbrowser
http://jira.**.com/rest/api/2/issue/createmeta?projectKeys=PT&issuetypeNames=Bug&expand=projects.issuetypes.fields
1、查看project创建bug提交的参数情况,true说明是必填
2、对于type是array的字段,提交时候报错“data was not an array”,困扰许久,翻墙后找到答案:
写法: 'customfield_10449': [{'name': "1.0.0"}]
https://community.atlassian.com/t5/Answers-Developer-Questions/How-to-add-component-while-creating-an-issue-via-JIRA-REST-API/qaq-p/493660
简单版
# !/usr/bin/python # -*- coding:utf-8 -*- from jira import JIRA import sys, getopt, redis, os class JiraTool: def __init__(self): self.server = 'http://jira.**.com' self.basic_auth = ('username', 'passwd#') self.jiraClinet = None @property def login(self): self.jiraClinet = JIRA(server=self.server, basic_auth=self.basic_auth) # issue = self.jiraClinet.issue("PT-358") # self.jiraClinet.add_comment(issue, "test") if self.jiraClinet != None: return True else: return False def findIssueById(self, issueId): if issueId: if self.jiraClinet == None: self.login return self.jiraClinet.issue(issueId) else: return 'Please input your issueId' def createIssue(self, summary, description, id='3'): issue_dict = { 'project': {'key': "project"}, 'issuetype': {'name': 'Bug'}, 'summary': summary, 'description': description, 'priority': {'id': id}, # 'customfield_10449': array('1.0.0') 'customfield_10449': [{'name': "1.0.0"}] } if self.jiraClinet == None: self.login return self.jiraClinet.create_issue(issue_dict) if __name__ == '__main__': jiraTool = JiraTool() jiraTool.login jiraTool.createIssue("测试自动提交bug","bug描述")