You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by kn...@apache.org on 2021/05/19 08:09:50 UTC

[flink-jira-bot] 28/47: [hotfix] pull up logic for marking tickets stale

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 <kn...@gmail.com>
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."
-                )