diff --git a/did/plugins/jira.py b/did/plugins/jira.py index c9098864..d5322859 100644 --- a/did/plugins/jira.py +++ b/did/plugins/jira.py @@ -27,7 +27,11 @@ token_name Name of the token to check for expiration in ``token_expiration`` - days. This has to match the name as seen in your Jira profile. + days. This has to match the name as seen in your Jira profile. + +verified_status + Name of the issue status which marks it verified. + Defaults to ``Release Pending``. Configuration example (GSS authentication):: @@ -104,6 +108,8 @@ # Enable ssl verify SSL_VERIFY = True +# State marking verified issues +DEFAULT_VERIFIED_STATUS = "Release Pending" # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Issue Investigator # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -261,6 +267,22 @@ def fetch(self): self.stats = Issue.search(query, stats=self) +class JiraVerified(Stats): + """ Verified issues """ + + def fetch(self): + log.info("Searching for issues transitioned to {0} by {1}".format( + self.parent.verified_status, self.user.login or self.user.email + )) + query = ( + "status changed to '{0}' and status changed by {1} after {2} before {3}".format( + self.parent.verified_status, self.user.login or self.user.email, self.options.since, self.options.until + )) + if self.parent.project: + query = query + " AND project = '{0}'".format( + self.parent.project) + self.stats = Issue.search(query, stats=self) + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Stats Group # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -369,6 +391,10 @@ def __init__(self, option, name=None, parent=None, user=None): # Check for custom prefix self.prefix = config["prefix"] if "prefix" in config else None + + # State marking Verified jira + self.verified_status = config.get("verified_status", DEFAULT_VERIFIED_STATE) + # Create the list of stats self.stats = [ JiraCreated( @@ -380,6 +406,9 @@ def __init__(self, option, name=None, parent=None, user=None): JiraResolved( option=option + "-resolved", parent=self, name="Issues resolved in {0}".format(option)), + JiraVerified( + option=option + "-verified", parent=self, + name="Issues verified in {0}".format(option)), ] @property