From 52d1f3017fc29d1eb5718bd026e11fdcaf09f1d8 Mon Sep 17 00:00:00 2001 From: Suhaib Mujahid Date: Fri, 18 Nov 2022 09:54:23 -0500 Subject: [PATCH] Copy the severity from duplicate bugs --- auto_nag/scripts/duplicate_copy_metadata.py | 26 +++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/auto_nag/scripts/duplicate_copy_metadata.py b/auto_nag/scripts/duplicate_copy_metadata.py index a3072863d..336a65293 100644 --- a/auto_nag/scripts/duplicate_copy_metadata.py +++ b/auto_nag/scripts/duplicate_copy_metadata.py @@ -8,6 +8,7 @@ from auto_nag import utils from auto_nag.bzcleaner import BzCleaner +from auto_nag.severity import Severity class DuplicateCopyMetadata(BzCleaner): @@ -34,6 +35,7 @@ def get_bugs(self, date="today", bug_ids=[], chunk_size=None): include_fields=[ "id", "summary", + "severity", "whiteboard", "keywords", "duplicates", @@ -80,6 +82,23 @@ def get_bugs(self, date="today", bug_ids=[], chunk_size=None): elif new_access_tag == copied_fields["whiteboard"]["value"]: copied_fields["whiteboard"]["from"].append(dup_bug["id"]) + # Severity: if it is not set, copy it from duplicates + if ( + bug["severity"] == "--" + and dup_bug["severity"] in Severity.SEVERITY_LEVELS + ): + new_severity = dup_bug["severity"] + if ( + "severity" not in copied_fields + or new_severity < copied_fields["severity"]["value"] + ): + copied_fields["severity"] = { + "from": [dup_bug["id"]], + "value": dup_bug["severity"], + } + elif new_severity == copied_fields["severity"]["value"]: + copied_fields["severity"]["from"].append(dup_bug["id"]) + if copied_fields: copied_fields = sorted( ( @@ -126,6 +145,8 @@ def set_autofix(self, bug: dict, copied_fields: List[tuple]) -> None: autofix["keywords"] = {"add": value} elif field == "whiteboard": autofix["whiteboard"] = bug["whiteboard"] + value + elif field == "severity": + autofix["severity"] = value else: raise ValueError(f"Unsupported field: {field}") @@ -140,6 +161,7 @@ def columns(self): def get_bz_params(self, date): fields = [ + "severity", "whiteboard", "keywords", "dupe_of", @@ -152,10 +174,14 @@ def get_bz_params(self, date): "chfield": [ "resolution", "keywords", + "bug_severity", "status_whiteboard", ], "j1": "OR", "f1": "OP", + "f2": "bug_severity", + "o2": "anyexact", + "v2": list(Severity.SEVERITY_LEVELS), "f3": "status_whiteboard", "o3": "anywordssubstr", "v3": "[access-s",