This is an automated email from the ASF dual-hosted git repository. knaufk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/flink-jira-bot.git
commit b342cb2168b941790ebefd36a780b80cd2c9dc96 Author: Konstantin Knauf <[email protected]> AuthorDate: Wed Apr 21 14:18:09 2021 +0200 [hotfix] pull up logic for marking tickets stale --- flink_jira_rule.py | 28 ++++++++++++++++++++++++++++ stale_assigned_rule.py | 37 ++++--------------------------------- stale_major_or_above_rule.py | 37 ++++--------------------------------- stale_minor_rule.py | 37 ++++--------------------------------- 4 files changed, 40 insertions(+), 99 deletions(-) diff --git a/flink_jira_rule.py b/flink_jira_rule.py index c453562..ff32a1e 100644 --- a/flink_jira_rule.py +++ b/flink_jira_rule.py @@ -113,3 +113,31 @@ class FlinkJiraRule: @abc.abstractmethod def run(self): return + + def mark_stale_tickets_stale(self, jql_query): + + logging.info(f"Looking for stale tickets.") + issues = self.get_issues(jql_query) + + for issue in issues: + key = issue["key"] + issue = self.jira_client.get_issue(key) + + if not self.has_recently_updated_subtask(key, self.stale_days): + logging.info( + f"Found https://issues.apache.org/jira/browse/{key}. It is marked stale now." + ) + formatted_comment = self.warning_comment.format( + stale_days=self.stale_days, + warning_days=self.warning_days, + warning_label=self.warning_label, + ) + + self.add_label(issue, self.warning_label) + self.add_comment(key, formatted_comment) + + else: + logging.info( + f"Found https://issues.apache.org/jira/browse/{key}, but is has recently updated Subtasks. " + f"Ignoring for now." + ) diff --git a/stale_assigned_rule.py b/stale_assigned_rule.py index ddee747..cb672d4 100644 --- a/stale_assigned_rule.py +++ b/stale_assigned_rule.py @@ -33,7 +33,10 @@ class StaleAssignedRule(FlinkJiraRule): def run(self): self.unassign_tickets_marked_stale() - self.mark_stale_tickets_stale() + self.mark_stale_tickets_stale( + f"project = FLINK AND resolution = Unresolved AND assignee is not EMPTY " + f"AND updated < startOfDay(-{self.stale_days}d)" + ) def unassign_tickets_marked_stale(self): @@ -61,35 +64,3 @@ class StaleAssignedRule(FlinkJiraRule): self.add_comment(key, formatted_comment) self.replace_label(issue, self.warning_label, self.done_label) self.unassign(key) - - def mark_stale_tickets_stale(self): - - stale_assigned_tickets = ( - f"project = FLINK AND resolution = Unresolved AND assignee is not EMPTY AND updated < " - f"startOfDay(-{self.stale_days}d)" - ) - logging.info(f"Looking for assigned tickets, which are stale.") - issues = self.get_issues(stale_assigned_tickets) - - for issue in issues: - key = issue["key"] - issue = self.jira_client.get_issue(key) - - if not self.has_recently_updated_subtask(key, self.stale_days): - logging.info( - f"Found https://issues.apache.org/jira/browse/{key}. It is marked stale now." - ) - formatted_comment = self.warning_comment.format( - stale_days=self.stale_days, - warning_days=self.warning_days, - warning_label=self.warning_label, - ) - - self.add_label(issue, self.warning_label) - self.add_comment(key, formatted_comment) - - else: - logging.info( - f"Found https://issues.apache.org/jira/browse/{key}, but is has recently updated Subtasks. " - f"Ignoring for now." - ) diff --git a/stale_major_or_above_rule.py b/stale_major_or_above_rule.py index aeda3f1..e37c9d1 100644 --- a/stale_major_or_above_rule.py +++ b/stale_major_or_above_rule.py @@ -39,7 +39,10 @@ class StaleMajorOrAboveRule(FlinkJiraRule): def run(self): self.close_tickets_marked_stale() - self.mark_stale_tickets_stale() + self.mark_stale_tickets_stale( + f"project=FLINK AND priority = {self.priority} AND resolution = Unresolved " + f"AND assignee is empty AND updated < startOfDay(-{self.stale_days}d)" + ) def close_tickets_marked_stale(self): @@ -67,35 +70,3 @@ class StaleMajorOrAboveRule(FlinkJiraRule): self.add_comment(key, formatted_comment) self.replace_label(issue, self.warning_label, self.done_label) self.set_priority(key, self.LOWER_PRIORITIES[self.priority]) - - def mark_stale_tickets_stale(self): - - stale_tickets = ( - f"project=FLINK AND priority = {self.priority} AND resolution = Unresolved AND assignee is " - f"empty AND updated < startOfDay(-{self.stale_days}d)" - ) - logging.info(f"Looking for {self.priority} tickets, which are stale.") - issues = self.get_issues(stale_tickets) - - for issue in issues: - key = issue["key"] - issue = self.jira_client.get_issue(key) - - if not self.has_recently_updated_subtask(key, self.stale_days): - logging.info( - f"Found https://issues.apache.org/jira/browse/{key}. It is marked stale now." - ) - formatted_comment = self.warning_comment.format( - stale_days=self.stale_days, - warning_days=self.warning_days, - warning_label=self.warning_label, - ) - - self.add_label(issue, self.warning_label) - self.add_comment(key, formatted_comment) - - else: - logging.info( - f"Found https://issues.apache.org/jira/browse/{key}, but is has recently updated Subtasks. " - f"Ignoring for now." - ) diff --git a/stale_minor_rule.py b/stale_minor_rule.py index 924f3c3..b06785b 100644 --- a/stale_minor_rule.py +++ b/stale_minor_rule.py @@ -33,7 +33,10 @@ class StaleMinorRule(FlinkJiraRule): def run(self): self.close_tickets_marked_stale() - self.mark_stale_tickets_stale() + self.mark_stale_tickets_stale( + f"project = FLINK AND Priority = Minor AND resolution = Unresolved " + f"AND updated < startOfDay(-{self.stale_days}d)" + ) def close_tickets_marked_stale(self): @@ -61,35 +64,3 @@ class StaleMinorRule(FlinkJiraRule): self.add_comment(key, formatted_comment) self.replace_label(issue, self.warning_label, self.done_label) self.close_issue(key) - - def mark_stale_tickets_stale(self): - - stale_minor_tickets = ( - f"project = FLINK AND Priority = Minor AND resolution = Unresolved AND updated < " - f"startOfDay(-{self.stale_days}d)" - ) - logging.info(f"Looking for minor tickets, which are stale.") - issues = self.get_issues(stale_minor_tickets) - - for issue in issues: - key = issue["key"] - issue = self.jira_client.get_issue(key) - - if not self.has_recently_updated_subtask(key, self.stale_days): - logging.info( - f"Found https://issues.apache.org/jira/browse/{key}. It is marked stale now." - ) - formatted_comment = self.warning_comment.format( - stale_days=self.stale_days, - warning_days=self.warning_days, - warning_label=self.warning_label, - ) - - self.add_label(issue, self.warning_label) - self.add_comment(key, formatted_comment) - - else: - logging.info( - f"Found https://issues.apache.org/jira/browse/{key}, but is has recently updated Subtasks. " - f"Ignoring for now." - )
