diff --git a/bugbot/rules/workflow/no_severity_ni.py b/bugbot/rules/workflow/no_severity_ni.py index 669d7cb3d..cdd89fc53 100644 --- a/bugbot/rules/workflow/no_severity_ni.py +++ b/bugbot/rules/workflow/no_severity_ni.py @@ -11,6 +11,7 @@ from bugbot.escalation import Escalation from bugbot.nag_me import Nag from bugbot.round_robin import RoundRobin +from bugbot.user_activity import UserActivity class NoSeverityNeedInfo(BzCleaner, Nag): @@ -76,6 +77,13 @@ def handle_bug(self, bug, data): or utils.get_last_no_bot_comment_date(bug) > self.activity_date ): return None + + bugid = str(bug["id"]) + + data[bugid] = { + "triage_owner": bug["triage_owner"], + } + return bug def get_mail_to_auto_ni(self, bug): @@ -193,6 +201,26 @@ def get_bz_params(self, date): return params + def filter_bugs(self, bugs): + users_info = UserActivity(include_fields=["groups", "requests"]).check_users( + set(bug["triage_owner"] for bug in bugs.values()), + keep_active=True, + fetch_employee_info=True, + ) + + filtered_bugs = { + bug_id: bug + for bug_id, bug in bugs.items() + if "requests" in users_info[bug["triage_owner"]] + and not users_info[bug["triage_owner"]]["requests"]["needinfo"]["blocked"] + } + return filtered_bugs + + def get_bugs(self, *args, **kwargs): + bugs = super().get_bugs(*args, **kwargs) + bugs = self.filter_bugs(bugs) + return bugs + if __name__ == "__main__": NoSeverityNeedInfo().run()