From 109c6b18c3bad2a63b4f321fa17ed97393401a1d Mon Sep 17 00:00:00 2001 From: Jubintgh Date: Thu, 14 Mar 2024 16:35:52 -0700 Subject: [PATCH 1/3] not_landed: remove duplicate request to get user nicks --- bugbot/rules/not_landed.py | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/bugbot/rules/not_landed.py b/bugbot/rules/not_landed.py index 020e33c80..c2327d99e 100644 --- a/bugbot/rules/not_landed.py +++ b/bugbot/rules/not_landed.py @@ -263,37 +263,18 @@ def get_bz_userid(self, phids): return {} def handler(user, data): - data[str(user["id"])] = user["name"] + data[str(user["id"])] = (user["name"], user["nick"]) data = {} BugzillaUser( user_names=list(users.values()), - include_fields=["id", "name"], + include_fields=["id", "name", "nick"], user_handler=handler, user_data=data, ).wait() return {phid: data[id] for phid, id in users.items()} - def get_nicks(self, nicknames): - def handler(user, data): - data[user["name"]] = user["nick"] - - users = set(nicknames.values()) - data = {} - if users: - BugzillaUser( - user_names=list(users), - include_fields=["name", "nick"], - user_handler=handler, - user_data=data, - ).wait() - - for bugid, name in nicknames.items(): - nicknames[bugid] = (name, data[name]) - - return nicknames - def get_bz_params(self, date): self.date = lmdutils.get_date_ymd(date) fields = ["flags", "depends_on"] @@ -340,7 +321,6 @@ def get_bugs(self, date="today", bug_ids=[]): bz_reviewers = self.get_bz_userid(reviewers_phid) all_reviewers = set(bz_reviewers.keys()) - nicknames = self.get_nicks(nicknames) for bugid, data in bugs_patch.items(): res[bugid] = d = bugs[bugid] @@ -349,7 +329,7 @@ def get_bugs(self, date="today", bug_ids=[]): nickname = d["nickname"] if not assignee: - assignee, nickname = nicknames[bugid] + assignee, nickname = bz_reviewers[nicknames[bugid]] if not assignee: continue @@ -360,7 +340,11 @@ def get_bugs(self, date="today", bug_ids=[]): if common: reviewer = random.choice(list(common)) self.add_auto_ni( - bugid, {"mail": bz_reviewers[reviewer], "nickname": None} + bugid, + { + "mail": bz_reviewers[reviewer][0], + "nickname": bz_reviewers[reviewer][1], + }, ) return res From 7cffdea8a40c35acc15da4c8ac5dcac15f2de8e8 Mon Sep 17 00:00:00 2001 From: JT Date: Fri, 15 Mar 2024 15:11:20 -0700 Subject: [PATCH 2/3] improve code readability --- bugbot/rules/not_landed.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/bugbot/rules/not_landed.py b/bugbot/rules/not_landed.py index c2327d99e..16d6782f6 100644 --- a/bugbot/rules/not_landed.py +++ b/bugbot/rules/not_landed.py @@ -252,7 +252,7 @@ def attachment_handler(attachments, data): return data - def get_bz_userid(self, phids): + def get_bz_users(self, phids): if not phids: return {} @@ -263,7 +263,7 @@ def get_bz_userid(self, phids): return {} def handler(user, data): - data[str(user["id"])] = (user["name"], user["nick"]) + data[str(user["id"])] = user data = {} BugzillaUser( @@ -311,15 +311,15 @@ def get_bugs(self, date="today", bug_ids=[]): res = {} reviewers_phid = set() - nicknames = {} + bug_assignee_map = {} for bugid, data in bugs_patch.items(): reviewers_phid |= data["reviewers_phid"] assignee = bugs[bugid]["assigned_to"] if not assignee: assignee = max(data["author"], key=data["author"].get) - nicknames[bugid] = assignee + bug_assignee_map[bugid] = assignee - bz_reviewers = self.get_bz_userid(reviewers_phid) + bz_reviewers = self.get_bz_users(reviewers_phid) all_reviewers = set(bz_reviewers.keys()) for bugid, data in bugs_patch.items(): @@ -329,7 +329,8 @@ def get_bugs(self, date="today", bug_ids=[]): nickname = d["nickname"] if not assignee: - assignee, nickname = bz_reviewers[nicknames[bugid]] + assignee_id = bug_assignee_map[bugid] + assignee, nickname = bz_reviewers[assignee_id] if not assignee: continue From 4888bd15912fee1722a0f6c0c02977c03badb8bc Mon Sep 17 00:00:00 2001 From: jubintgh Date: Sat, 23 Mar 2024 12:24:50 -0700 Subject: [PATCH 3/3] fix bz_reviewers assignments --- bugbot/rules/not_landed.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/bugbot/rules/not_landed.py b/bugbot/rules/not_landed.py index 16d6782f6..a77c339d1 100644 --- a/bugbot/rules/not_landed.py +++ b/bugbot/rules/not_landed.py @@ -326,26 +326,22 @@ def get_bugs(self, date="today", bug_ids=[]): res[bugid] = d = bugs[bugid] self.extra_ni[bugid] = data["count"] assignee = d["assigned_to"] - nickname = d["nickname"] if not assignee: - assignee_id = bug_assignee_map[bugid] - assignee, nickname = bz_reviewers[assignee_id] + user_details = bz_reviewers[assignee] + assignee = user_details["id"] + nickname = user_details["nick"] if not assignee: continue self.add_auto_ni(bugid, {"mail": assignee, "nickname": nickname}) - common = all_reviewers & data["reviewers_phid"] + common = all_reviewers["name"] & data["reviewers_phid"] if common: reviewer = random.choice(list(common)) self.add_auto_ni( - bugid, - { - "mail": bz_reviewers[reviewer][0], - "nickname": bz_reviewers[reviewer][1], - }, + bugid, {"mail": bz_reviewers[reviewer], "nickname": None} ) return res