@@ -503,8 +503,21 @@ def export(self, export_settings: types.ConfigSettings, full: bool = False) -> t
503503 if not self .is_sonarcloud ():
504504 json_data [settings .DEVOPS_INTEGRATION ] = devops .export (self , export_settings = export_settings )
505505
506- order = list (settings .CATEGORIES ) + ["permissions" , "permissionTemplates" ]
507- return {k : json_data [k ] for k in order if k in json_data } | {k : v for k , v in json_data .items () if k not in order }
506+ # Convert dicts to lists
507+ special_categories = (settings .LANGUAGES_SETTINGS , settings .DEVOPS_INTEGRATION , "permissions" , "permissionTemplates" )
508+ for categ in [c for c in settings .CATEGORIES if c not in special_categories ]:
509+ json_data [categ ] = util .sort_list_by_key (util .dict_to_list (json_data [categ ], "key" ), "key" )
510+ for k , v in json_data [settings .LANGUAGES_SETTINGS ].items ():
511+ json_data [settings .LANGUAGES_SETTINGS ][k ] = util .sort_list_by_key (util .dict_to_list (v , "key" ), "key" )
512+ json_data [settings .LANGUAGES_SETTINGS ] = util .dict_to_list (json_data [settings .LANGUAGES_SETTINGS ], "language" , "settings" )
513+ json_data [settings .DEVOPS_INTEGRATION ] = util .dict_to_list (json_data [settings .DEVOPS_INTEGRATION ], "key" )
514+ json_data ["permissions" ] = util .perms_to_list (json_data ["permissions" ])
515+ for k , v in json_data ["permissionTemplates" ].items ():
516+ if "permissions" in v :
517+ v ["permissions" ] = util .perms_to_list (v ["permissions" ])
518+ json_data ["permissionTemplates" ] = util .dict_to_list (json_data ["permissionTemplates" ], "key" )
519+
520+ return util .order_dict (json_data , list (settings .CATEGORIES ) + ["permissions" , "permissionTemplates" ])
508521
509522 def set_webhooks (self , webhooks_data : types .ObjectJsonRepr ) -> bool :
510523 """Sets global webhooks with a list of webhooks represented as JSON
0 commit comments