Esempio n. 1
0
 def create_issue(self,
                  project,
                  type='bug',
                  summary="",
                  description="",
                  priority="minor",
                  parent=None,
                  assignee="",
                  reporter="",
                  labels=[],
                  components={},
                  **extras):
     issue = {
         "project": project.upper(),
         "summary": summary,
         "description": description,
         "priority": self.get_priorities()[priority.lower()]["id"],
         "assignee": assignee,
         "reporter": reporter,
         "components": [{
             "name": k,
             "id": components[k]
         } for k in components]
     }
     if not issue["components"]:
         issue.pop("components")
     if type.lower() == 'epic':
         issue['customfield_11401'] = summary
     try:
         if parent:
             issue['type'] = self.get_subtask_issue_types()[
                 type.lower()]['id'],
             created_issue = soap_recursive_dict(
                 self.service.createIssueWithParent(self.token, issue,
                                                    parent))
         else:
             issue['type'] = self.get_issue_types()[type.lower()]['id'],
             created_issue = soap_recursive_dict(
                 self.service.createIssue(self.token, issue))
         if assignee or reporter or labels:
             if assignee:
                 created_issue = self.assign_issue(created_issue['key'],
                                                   assignee)
             if reporter:
                 created_issue = self.change_reporter(
                     created_issue['key'], reporter)
             if labels:
                 created_issue = self.add_labels(created_issue['key'],
                                                 labels)
             return soap_recursive_dict(created_issue)
         else:
             return created_issue
     except WebFault as e:
         raise JiraCliError(e)
Esempio n. 2
0
 def search_issues(self, free_text, project=None, limit=100):
     if not project:
         return [
             soap_recursive_dict(k)
             for k in self.service.getIssuesFromTextSearch(
                 self.token, free_text)
         ]
     else:
         return [
             soap_recursive_dict(k)
             for k in self.service.getIssuesFromTextSearchWithProject(
                 self.token, [project], free_text, limit)
         ]
Esempio n. 3
0
 def get_versions(self, issue):
     project_key = issue.split("-")[0]
     versions = [
         soap_recursive_dict(k)
         for k in self.service.getVersions(self.token, project_key)
     ]
     return dict((item['name'], item) for item in versions)
Esempio n. 4
0
 def get_issues_by_filter(self, *filters):
     issues = []
     for filter in filters:
         try:
             fid = self.get_filters()[filter]["id"]
             issues.extend(self.service.getIssuesFromFilter(
                 self.token, fid))
         except KeyError:
             raise UsageError("filter %s not found" % filter)
     return [soap_recursive_dict(k) for k in issues]
Esempio n. 5
0
 def get_resolutions(self):
     resolutions = [
         soap_recursive_dict(k)
         for k in self.service.getResolutions(self.token)
     ]
     return dict((item['name'], item) for item in resolutions)
Esempio n. 6
0
 def get_issue(self, issue_id):
     try:
         return soap_recursive_dict(
             self.service.getIssue(self.token, issue_id))
     except WebFault:
         return None
Esempio n. 7
0
 def get_subtask_issue_types(self):
     issue_types = self.service.getSubTaskIssueTypes(self.token)
     issue_types = [soap_recursive_dict(k) for k in issue_types]
     return dict((item['name'].lower(), item) for item in issue_types)
Esempio n. 8
0
 def get_children(self, issue_id):
     return [
         soap_recursive_dict(item)
         for item in self.service.getSubTasks(self.token, issue_id)
     ]
Esempio n. 9
0
 def get_statuses(self):
     statuses = [
         soap_recursive_dict(k)
         for k in self.service.getStatuses(self.token)
     ]
     return dict((item['name'].lower(), item) for item in statuses)
Esempio n. 10
0
 def list_versions(self, project):
     return [
         soap_recursive_dict(k)
         for k in self.service.getVersions(self.token, project)
     ]
Esempio n. 11
0
 def get_components(self, project):
     return [
         soap_recursive_dict(k)
         for k in self.service.getComponents(self.token, project)
     ]
Esempio n. 12
0
 def get_projects(self):
     return [
         soap_recursive_dict(k)
         for k in self.service.getProjectsNoSchemes(self.token)
     ]
Esempio n. 13
0
 def get_priorities(self):
     priorities = [
         soap_recursive_dict(k)
         for k in self.service.getPriorities(self.token)
     ]
     return dict((item["name"].lower(), item) for item in priorities)
Esempio n. 14
0
 def get_filters(self):
     filters = self.service.getSavedFilters(self.token)
     filters += self.service.getFavouriteFilters(self.token)
     return dict((item["name"].lower(), soap_recursive_dict(item))
                 for item in filters)
Esempio n. 15
0
 def get_available_transitions(self, issue):
     transitions = self.service.getAvailableActions(self.token, issue)
     if not transitions:
         raise JiraCliError("No transitions found for issue %s" % issue)
     return dict(
         (k.name.lower(), soap_recursive_dict(k)) for k in transitions)
Esempio n. 16
0
 def search_issues_jql(self, query, limit=100):
     return [
         soap_recursive_dict(k)
         for k in self.service.getIssuesFromJqlSearch(
             self.token, query, limit)
     ]
Esempio n. 17
0
 def get_issue_comments(self, issue):
     return [
         soap_recursive_dict(k)
         for k in self.service.getComments(self.token, issue)
     ]