diff --git a/sonar/util/common_json_helper.py b/sonar/util/common_json_helper.py index c8b3c7d7..a8b1a712 100644 --- a/sonar/util/common_json_helper.py +++ b/sonar/util/common_json_helper.py @@ -21,7 +21,6 @@ from typing import Any from sonar import utilities -from sonar import logging as log def convert_common_fields(json_data: dict[str, Any], with_permissions: bool = True) -> dict[str, Any]: diff --git a/sonar/util/qualityprofile_helper.py b/sonar/util/qualityprofile_helper.py index 2ad72c5a..7483422d 100644 --- a/sonar/util/qualityprofile_helper.py +++ b/sonar/util/qualityprofile_helper.py @@ -21,6 +21,7 @@ from typing import Any from sonar import utilities as util +from sonar.util import constants as c from sonar.util import types from sonar.util import common_json_helper @@ -61,6 +62,12 @@ def __convert_qp_json(qp_json: dict[str, Any]) -> list[dict[str, Any]]: if "severities" in r: r["impacts"] = r["severities"] r.pop("severities") + if "impacts" in r: + r["impacts"] = { + k: r["impacts"][k] + for k in ("SECURITY", "RELIABILITY", "MAINTAINABILITY") + if k in r["impacts"] and r["impacts"][k] != c.DEFAULT + } if "children" in v: v["children"] = __convert_qp_json(v["children"]) qp_json[k] = util.order_keys(common_json_helper.convert_common_fields(v, with_permissions=False), *KEY_ORDER) diff --git a/sonar/util/rule_helper.py b/sonar/util/rule_helper.py index 55b8c14f..501d535d 100644 --- a/sonar/util/rule_helper.py +++ b/sonar/util/rule_helper.py @@ -21,12 +21,19 @@ from typing import Any from sonar import utilities +from sonar.util import constants as c from sonar.util import common_json_helper def convert_rule_json(old_json: dict[str, Any]) -> dict[str, Any]: """Converts a rule JSON from old to new export format""" - return common_json_helper.convert_common_fields(old_json) + old_json = common_json_helper.convert_common_fields(old_json) + if "impacts" in old_json: + old_json["impacts"] = { + k: old_json["impacts"][k] + for k in ("SECURITY", "RELIABILITY", "MAINTAINABILITY") + if k in old_json["impacts"] and old_json["impacts"][k] != c.DEFAULT + } def convert_rules_json(old_json: dict[str, Any]) -> dict[str, Any]: