diff --git a/cli/config.py b/cli/config.py index c732377c..ad42a155 100644 --- a/cli/config.py +++ b/cli/config.py @@ -124,7 +124,7 @@ def __parse_args(desc: str) -> object: def __normalize_json(json_data: dict[str, any], remove_empty: bool = True, remove_none: bool = True) -> dict[str, any]: """Sorts a JSON file and optionally remove empty and none values""" - SORT_FIELDS = {"users": "login", "groups": "name"} + SORT_FIELDS = {"users": "login", "groups": "name", "qualityGates": "name"} log.info("Normalizing JSON - remove empty = %s, remove nones = %s", str(remove_empty), str(remove_none)) json_data = utilities.clean_data(json_data, remove_none=remove_none, remove_empty=remove_empty) json_data = utilities.order_keys(json_data, *_SECTIONS_ORDER) diff --git a/sonar/qualitygates.py b/sonar/qualitygates.py index defa383b..c919761e 100644 --- a/sonar/qualitygates.py +++ b/sonar/qualitygates.py @@ -92,7 +92,7 @@ "prioritized_rule_issues": (0, 0, __MAX_ISSUES_SHOULD_BE_ZERO), } -_IMPORTABLE_PROPERTIES = ("isDefault", "isBuiltIn", "conditions", "permissions") +_IMPORTABLE_PROPERTIES = ("name", "isDefault", "isBuiltIn", "conditions", "permissions") class QualityGate(sq.SqObject): @@ -121,8 +121,8 @@ def __init__(self, endpoint: pf.Platform, name: str, data: types.ApiPayload) -> self._permissions: Optional[object] = None #: Quality gate permissions self._projects: Optional[dict[str, projects.Project]] = None #: Projects using this quality profile self.sq_json = data - self.name = data.pop("name") - self.key = data.pop("id", self.name) + self.name = data.get("name") + self.key = data.get("id", self.name) self.is_default = data.get("isDefault", False) self.is_built_in = data.get("isBuiltIn", False) self.conditions() @@ -457,7 +457,7 @@ def export(endpoint: pf.Platform, export_settings: types.ConfigSettings, **kwarg :return: Quality gates representations as JSON """ log.info("Exporting quality gates") - qg_list = {k: qg.to_json(export_settings) for k, qg in get_list(endpoint).items()} + qg_list = [qg.to_json(export_settings) for qg in get_list(endpoint).values()] write_q = kwargs.get("write_q", None) if write_q: write_q.put(qg_list)