Example #1
0
 def eval(self):
     if not self.args.issue_project:
         raise UsageError(
             'project must be specified when creating an issue')
     if not (self.args.issue_parent or self.args.issue_type):
         self.args.issue_type = 'bug'
     if self.args.issue_type and not self.args.issue_type.lower(
     ) in self.jira.get_issue_types().keys(
     ) + self.jira.get_subtask_issue_types().keys():
         raise UsageError(
             "invalid issue type: %s (try using jira-cli "
             "list issue_types or jira-cli list subtask_types)" %
             self.args.issue_type)
     if self.args.issue_parent:
         if not self.args.issue_type:
             self.args.issue_type = 'sub-task'
         if not self.args.issue_type in self.jira.get_subtask_issue_types():
             raise UsageError(
                 "issues created with parents must be one of {%s}" %
                 ",".join(self.jira.get_subtask_issue_types()))
     description = self.args.issue_description or get_text_from_editor()
     print_output(
         self.jira.format_issue(
             self.jira.create_issue(self.args.issue_project,
                                    self.args.issue_type, self.args.title,
                                    description, self.args.issue_priority,
                                    self.args.issue_parent)))
Example #2
0
 def eval(self):
     extras = {}
     if self.args.extra_fields:
         extras = self.extract_extras()
     if not self.args.issue_project:
         raise UsageError("project must be specified when creating an issue")
     if not (self.args.issue_parent or self.args.issue_type):
         self.args.issue_type = "bug"
     if (
         self.args.issue_type
         and not self.args.issue_type.lower()
         in self.jira.get_issue_types().keys() + self.jira.get_subtask_issue_types().keys()
     ):
         raise UsageError(
             "invalid issue type: %s (try using jira-cli "
             "list issue_types or jira-cli list subtask_types)" % self.args.issue_type
         )
     if self.args.issue_parent:
         if not self.args.issue_type:
             self.args.issue_type = "sub-task"
         if not self.args.issue_type in self.jira.get_subtask_issue_types():
             raise UsageError(
                 "issues created with parents must be one of {%s}" % ",".join(self.jira.get_subtask_issue_types())
             )
     components = {}
     if self.args.issue_components:
         valid_components = dict((k["name"], k["id"]) for k in self.jira.get_components(self.args.issue_project))
         if not set(self.args.issue_components).issubset(valid_components):
             raise UsageError(
                 "components for project %s should be one of {%s}"
                 % (self.args.issue_project, ",".join(valid_components))
             )
         else:
             components = {k: valid_components[k] for k in self.args.issue_components}
     description = self.args.issue_description or get_text_from_editor()
     print_output(
         self.jira.format_issue(
             self.jira.create_issue(
                 self.args.issue_project,
                 self.args.issue_type,
                 self.args.title,
                 description,
                 self.args.issue_priority,
                 self.args.issue_parent,
                 self.args.issue_assignee,
                 self.args.issue_reporter,
                 self.args.labels,
                 components,
                 **extras
             )
         )
     )
Example #3
0
 def eval(self):
     extras = {}
     if self.args.extra_fields:
         extras = self.extract_extras()
     if not self.args.issue_project:
         raise UsageError(
             'project must be specified when creating an issue')
     if not (self.args.issue_parent or self.args.issue_type):
         self.args.issue_type = 'bug'
     if self.args.issue_type and not self.args.issue_type.lower() in list(
             self.jira.get_issue_types().keys()) + list(
                 self.jira.get_subtask_issue_types().keys()):
         raise UsageError(
             "invalid issue type: %s (try using jira-cli "
             "list issue_types or jira-cli list subtask_types)" %
             self.args.issue_type)
     if self.args.issue_parent:
         if not self.args.issue_type:
             self.args.issue_type = 'sub-task'
         if self.args.issue_type not in self.jira.get_subtask_issue_types():
             raise UsageError(
                 "issues created with parents must be one of {%s}" %
                 ",".join(self.jira.get_subtask_issue_types()))
     components = {}
     if self.args.issue_components:
         valid_components = dict(
             (k["name"], k["id"])
             for k in self.jira.get_components(self.args.issue_project))
         if not set(self.args.issue_components).issubset(valid_components):
             raise UsageError(
                 "components for project %s should be one of {%s}" %
                 (self.args.issue_project, ",".join(valid_components)))
         else:
             components = {
                 k: valid_components[k]
                 for k in self.args.issue_components
             }
     if self.args.issue_description is not None:
         description = self.args.issue_description
     else:
         description = get_text_from_editor()
     print_output(
         self.jira.format_issue(
             self.jira.create_issue(
                 self.args.issue_project, self.args.issue_type,
                 self.args.title, description, self.args.issue_priority,
                 self.args.issue_parent, self.args.issue_assignee,
                 self.args.issue_reporter, self.args.labels, components,
                 **extras)))
Example #4
0
 def eval(self):
     if self.args.issue_comment:
         self.jira.add_comment(self.args.issue, get_text_from_editor())
         print_output(
             self.jira.format_issue(self.jira.get_issue(self.args.issue),
                                    comments_only=True))
     elif self.args.issue_priority:
         self.jira.update_issue(self.args.issue,
                                priority=self.jira.get_priorities()[
                                    self.args.issue_priority]["id"])
     elif self.args.issue_components:
         components = dict((k["name"], k["id"])
                           for k in self.jira.get_components(
                               self.args.issue.split("-")[0]))
         current_components = set(
             k["name"]
             for k in self.jira.get_issue(self.args.issue)["components"])
         if not set(
                 self.args.issue_components).issubset(current_components):
             new_components = current_components.union(
                 self.args.issue_components)
             self.jira.update_issue(
                 self.args.issue,
                 components=[components[k] for k in new_components])
             print_output(
                 colorfunc(
                     'component(s): %s added to %s' % (",".join(
                         self.args.issue_components), self.args.issue),
                     'green'))
         else:
             raise UsageWarning(
                 "component(s):[%s] already exist in %s" %
                 (",".join(self.args.issue_components), self.args.issue))
     elif self.args.issue_transition:
         self.jira.transition_issue(self.args.issue,
                                    self.args.issue_transition.lower())
         print_output(
             colorfunc(
                 '%s transitioned to "%s"' %
                 (self.args.issue, self.args.issue_transition), 'green'))
     elif self.args.issue_assignee:
         self.jira.update_issue(self.args.issue,
                                assignee=self.args.issue_assignee)
         print_output(
             colorfunc(
                 '%s assigned to %s' %
                 (self.args.issue, self.args.issue_assignee), 'green'))
Example #5
0
 def eval(self):
     if self.args.issue_comment:
         self.jira.add_comment(self.args.issue, get_text_from_editor())
         print_output(self.jira.format_issue(self.jira.get_issue(self.args.issue), comments_only=True))
     elif self.args.issue_priority:
         self.jira.update_issue(
             self.args.issue,
             priority=self.jira.get_priorities()[self.args.issue_priority]["id"]
         )
     elif self.args.issue_components:
         components = dict(
             (k["name"], k["id"]) for k in self.jira.get_components(
                 self.args.issue.split("-")[0]
             )
         )
         current_components = set(k["name"] for k in self.jira.get_issue(self.args.issue)["components"])
         if not set(self.args.issue_components).issubset(current_components):
             new_components = current_components.union(self.args.issue_components)
             self.jira.update_issue(self.args.issue,
                                    components=[components[k] for k in new_components]
             )
             print_output(colorfunc(
                 'component(s): %s added to %s' % (
                     ",".join(self.args.issue_components), self.args.issue), 'green'
             ))
         else:
             raise UsageWarning("component(s):[%s] already exist in %s" % (
                 ",".join(self.args.issue_components), self.args.issue)
             )
     elif self.args.issue_transition:
         self.jira.transition_issue(self.args.issue, self.args.issue_transition.lower())
         print_output(colorfunc(
             '%s transitioned to "%s"' % (self.args.issue, self.args.issue_transition), 'green'
         ))
     elif self.args.issue_assignee:
         self.jira.update_issue(self.args.issue, assignee=self.args.issue_assignee)
         print_output(colorfunc(
             '%s assigned to %s' % (self.args.issue, self.args.issue_assignee), 'green'
         ))
Example #6
0
 def eval(self):
     if not self.args.issue_project:
         raise UsageError('project must be specified when creating an issue')
     if not (self.args.issue_parent or self.args.issue_type):
         self.args.issue_type = 'bug'
     if self.args.issue_type and not self.args.issue_type in self.jira.get_issue_types().keys() + self.jira.get_subtask_issue_types().keys():
         raise UsageError(
             "invalid issue type: %s (try using jira-cli "
             "list issue_types or jira-cli list subtask_types)" % self.args.issue_type
         )
     if self.args.issue_parent:
         if not self.args.issue_type:
             self.args.issue_type = 'sub-task'
         if not self.args.issue_type in self.jira.get_subtask_issue_types():
             raise UsageError(
                 "issues created with parents must be one of {%s}" % ",".join(self.jira.get_subtask_issue_types())
             )
     description = self.args.issue_description or get_text_from_editor()
     print_output(self.jira.format_issue(
         self.jira.create_issue(self.args.issue_project, self.args.issue_type, self.args.title, description,
                            self.args.issue_priority, self.args.issue_parent)
     ))
Example #7
0
 def eval(self):
     if self.args.extra_fields:
         extras = self.extract_extras()
         self.jira.update_issue(self.args.issue, **extras)
     if self.args.issue_comment:
         self.jira.add_comment(
             self.args.issue, self.args.issue_comment if isinstance(
                 self.args.issue_comment, basestring) else
             get_text_from_editor())
         print_output(
             self.jira.format_issue(self.jira.get_issue(self.args.issue),
                                    comments_only=True))
     elif self.args.issue_priority:
         self.jira.update_issue(self.args.issue,
                                priority=self.jira.get_priorities()[
                                    self.args.issue_priority]["id"])
     elif self.args.issue_components:
         components = dict((k["name"], k["id"])
                           for k in self.jira.get_components(
                               self.args.issue.split("-")[0]))
         current_components = set(
             k["name"]
             for k in self.jira.get_issue(self.args.issue)["components"])
         if not set(
                 self.args.issue_components).issubset(current_components):
             new_components = current_components.union(
                 self.args.issue_components)
             self.jira.update_issue(
                 self.args.issue,
                 components=[components[k] for k in new_components])
             print_output(
                 colorfunc(
                     'component(s): %s added to %s' % (",".join(
                         self.args.issue_components), self.args.issue),
                     'green'))
         else:
             raise UsageWarning(
                 "component(s):[%s] already exist in %s" %
                 (",".join(self.args.issue_components), self.args.issue))
     elif self.args.issue_transition:
         self.jira.transition_issue(self.args.issue,
                                    self.args.issue_transition.lower(),
                                    self.args.resolution)
         print_output(
             colorfunc(
                 '%s transitioned to "%s"' %
                 (self.args.issue, self.args.issue_transition), 'green'))
     elif self.args.issue_assignee:
         self.jira.assign_issue(self.args.issue, self.args.issue_assignee)
         print_output(
             colorfunc(
                 '%s assigned to %s' %
                 (self.args.issue, self.args.issue_assignee), 'green'))
     elif self.args.labels:
         self.jira.add_labels(self.args.issue, self.args.labels, True)
         print_output(
             colorfunc(
                 '%s labelled with %s' %
                 (self.args.issue, ",".join(self.args.labels)), 'green'))
     if self.args.affects_version:
         self.jira.add_versions(self.args.issue, self.args.affects_version,
                                'affects')
         print_output(
             colorfunc(
                 'Added affected version(s) %s to %s' %
                 (",".join(self.args.affects_version), self.args.issue),
                 'green'))
     if self.args.remove_affects_version:
         self.jira.remove_versions(self.args.issue,
                                   self.args.remove_affects_version,
                                   'affects')
         print_output(
             colorfunc(
                 'Removed affected version(s) %s from %s' % (",".join(
                     self.args.remove_affects_version), self.args.issue),
                 'blue'))
     if self.args.fix_version:
         self.jira.add_versions(self.args.issue, self.args.fix_version,
                                'fix')
         print_output(
             colorfunc(
                 'Added fixed version(s) %s to %s' %
                 (",".join(self.args.fix_version), self.args.issue),
                 'green'))
     if self.args.remove_fix_version:
         self.jira.remove_versions(self.args.issue,
                                   self.args.remove_fix_version, 'fix')
         print_output(
             colorfunc(
                 'Removed fixed version(s) %s from %s' %
                 (",".join(self.args.remove_fix_version), self.args.issue),
                 'blue'))
Example #8
0
 def eval(self):
     extras = {}
     if self.args.extra_fields:
         try:
             for item in self.args.extra_fields:
                 key, value = item.split("=")
                 if key in extras:
                     if not isinstance(extras[key], list):
                         v = [extras[key]]
                         extras[key] = v
                     extras[key].append(value)
                 else:
                     extras[key] = value
         except Exception:
             raise UsageWarning("Unknown extra fields %s" % (self.args.extra_fields))
         self.jira.update_issue(
             self.args.issue,
             **extras
         )
     if self.args.issue_comment:
         self.jira.add_comment(
             self.args.issue, self.args.issue_comment if isinstance(self.args.issue_comment, basestring) else get_text_from_editor()
         )
         print_output(self.jira.format_issue(self.jira.get_issue(self.args.issue), comments_only=True))
     elif self.args.issue_priority:
         self.jira.update_issue(
             self.args.issue,
             priority=self.jira.get_priorities()[self.args.issue_priority]["id"]
         )
     elif self.args.issue_components:
         components = dict(
             (k["name"], k["id"]) for k in self.jira.get_components(
                 self.args.issue.split("-")[0]
             )
         )
         current_components = set(k["name"] for k in self.jira.get_issue(self.args.issue)["components"])
         if not set(self.args.issue_components).issubset(current_components):
             new_components = current_components.union(self.args.issue_components)
             self.jira.update_issue(self.args.issue,
                                    components=[components[k] for k in new_components]
             )
             print_output(colorfunc(
                 'component(s): %s added to %s' % (
                     ",".join(self.args.issue_components), self.args.issue), 'green'
             ))
         else:
             raise UsageWarning("component(s):[%s] already exist in %s" % (
                 ",".join(self.args.issue_components), self.args.issue)
             )
     elif self.args.issue_transition:
         self.jira.transition_issue(self.args.issue, self.args.issue_transition.lower())
         print_output(colorfunc(
             '%s transitioned to "%s"' % (self.args.issue, self.args.issue_transition), 'green'
         ))
     elif self.args.issue_assignee:
         self.jira.assign_issue(self.args.issue, self.args.issue_assignee)
         print_output(colorfunc(
             '%s assigned to %s' % (self.args.issue, self.args.issue_assignee), 'green'
         ))
     elif self.args.labels:
         self.jira.add_labels(self.args.issue, self.args.labels, True)
         print_output(colorfunc(
             '%s labelled with %s' % (self.args.issue, ",".join(self.args.labels)), 'green'
         ))
     if self.args.affects_version:
         self.jira.add_versions(self.args.issue, self.args.affects_version,'affects')
         print_output(colorfunc(
             'Added affected version(s) %s to %s' % (",".join(self.args.affects_version), self.args.issue), 'green'
         ))
     if self.args.remove_affects_version:
         self.jira.remove_versions(self.args.issue, self.args.remove_affects_version,'affects')
         print_output(colorfunc(
             'Removed affected version(s) %s from %s' % (",".join(self.args.remove_affects_version), self.args.issue), 'blue'
         ))
     if self.args.fix_version:
         self.jira.add_versions(self.args.issue, self.args.fix_version,'fix')
         print_output(colorfunc(
             'Added fixed version(s) %s to %s' % (",".join(self.args.fix_version), self.args.issue), 'green'
         ))
     if self.args.remove_fix_version:
         self.jira.remove_versions(self.args.issue, self.args.remove_fix_version,'fix')
         print_output(colorfunc(
             'Removed fixed version(s) %s from %s' % (",".join(self.args.remove_fix_version), self.args.issue), 'blue'
         ))
Example #9
0
 def eval(self):
     if self.args.extra_fields:
         extras = self.extract_extras()
         self.jira.update_issue(self.args.issue, **extras)
     if self.args.issue_comment:
         self.jira.add_comment(
             self.args.issue,
             self.args.issue_comment if isinstance(self.args.issue_comment, basestring) else get_text_from_editor(),
         )
         print_output(self.jira.format_issue(self.jira.get_issue(self.args.issue), comments_only=True))
     elif self.args.issue_priority:
         self.jira.update_issue(self.args.issue, priority=self.jira.get_priorities()[self.args.issue_priority]["id"])
     elif self.args.issue_components:
         components = dict((k["name"], k["id"]) for k in self.jira.get_components(self.args.issue.split("-")[0]))
         current_components = set(k["name"] for k in self.jira.get_issue(self.args.issue)["components"])
         if not set(self.args.issue_components).issubset(current_components):
             new_components = current_components.union(self.args.issue_components)
             self.jira.update_issue(self.args.issue, components=[components[k] for k in new_components])
             print_output(
                 colorfunc(
                     "component(s): %s added to %s" % (",".join(self.args.issue_components), self.args.issue),
                     "green",
                 )
             )
         else:
             raise UsageWarning(
                 "component(s):[%s] already exist in %s" % (",".join(self.args.issue_components), self.args.issue)
             )
     elif self.args.issue_transition:
         self.jira.transition_issue(self.args.issue, self.args.issue_transition.lower(), self.args.resolution)
         print_output(colorfunc('%s transitioned to "%s"' % (self.args.issue, self.args.issue_transition), "green"))
     elif self.args.issue_assignee:
         self.jira.assign_issue(self.args.issue, self.args.issue_assignee)
         print_output(colorfunc("%s assigned to %s" % (self.args.issue, self.args.issue_assignee), "green"))
     elif self.args.labels:
         self.jira.add_labels(self.args.issue, self.args.labels, True)
         print_output(colorfunc("%s labelled with %s" % (self.args.issue, ",".join(self.args.labels)), "green"))
     if self.args.affects_version:
         self.jira.add_versions(self.args.issue, self.args.affects_version, "affects")
         print_output(
             colorfunc(
                 "Added affected version(s) %s to %s" % (",".join(self.args.affects_version), self.args.issue),
                 "green",
             )
         )
     if self.args.remove_affects_version:
         self.jira.remove_versions(self.args.issue, self.args.remove_affects_version, "affects")
         print_output(
             colorfunc(
                 "Removed affected version(s) %s from %s"
                 % (",".join(self.args.remove_affects_version), self.args.issue),
                 "blue",
             )
         )
     if self.args.fix_version:
         self.jira.add_versions(self.args.issue, self.args.fix_version, "fix")
         print_output(
             colorfunc(
                 "Added fixed version(s) %s to %s" % (",".join(self.args.fix_version), self.args.issue), "green"
             )
         )
     if self.args.remove_fix_version:
         self.jira.remove_versions(self.args.issue, self.args.remove_fix_version, "fix")
         print_output(
             colorfunc(
                 "Removed fixed version(s) %s from %s" % (",".join(self.args.remove_fix_version), self.args.issue),
                 "blue",
             )
         )
Example #10
0
 def eval(self):
     extras = {}
     if self.args.extra_fields:
         try:
             for item in self.args.extra_fields:
                 key, value = item.split("=")
                 if key in extras:
                     if not isinstance(extras[key], list):
                         v = [extras[key]]
                         extras[key] = v
                     extras[key].append(value)
                 else:
                     extras[key] = value
         except Exception:
             raise UsageWarning("Unknown extra fields %s" % (self.args.extra_fields))
         self.jira.update_issue(
             self.args.issue,
             **extras
         )
     if self.args.issue_comment:
         self.jira.add_comment(
             self.args.issue, self.args.issue_comment if isinstance(self.args.issue_comment, basestring) else get_text_from_editor()
         )
         print_output(self.jira.format_issue(self.jira.get_issue(self.args.issue), comments_only=True))
     elif self.args.issue_priority:
         self.jira.update_issue(
             self.args.issue,
             priority=self.jira.get_priorities()[self.args.issue_priority]["id"]
         )
     elif self.args.issue_components:
         components = dict(
             (k["name"], k["id"]) for k in self.jira.get_components(
                 self.args.issue.split("-")[0]
             )
         )
         current_components = set(k["name"] for k in self.jira.get_issue(self.args.issue)["components"])
         if not set(self.args.issue_components).issubset(current_components):
             new_components = current_components.union(self.args.issue_components)
             self.jira.update_issue(self.args.issue,
                                    components=[components[k] for k in new_components]
             )
             print_output(colorfunc(
                 'component(s): %s added to %s' % (
                     ",".join(self.args.issue_components), self.args.issue), 'green'
             ))
         else:
             raise UsageWarning("component(s):[%s] already exist in %s" % (
                 ",".join(self.args.issue_components), self.args.issue)
             )
     elif self.args.issue_transition:
         self.jira.transition_issue(self.args.issue, self.args.issue_transition.lower())
         print_output(colorfunc(
             '%s transitioned to "%s"' % (self.args.issue, self.args.issue_transition), 'green'
         ))
     elif self.args.issue_assignee:
         self.jira.assign_issue(self.args.issue, self.args.issue_assignee)
         print_output(colorfunc(
             '%s assigned to %s' % (self.args.issue, self.args.issue_assignee), 'green'
         ))