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."
- )