@@ -149,9 +149,34 @@ def __export_config(endpoint: platform.Platform, what: list[str], **kwargs) -> N
149149 if len (non_existing_projects ) > 0 :
150150 utilities .exit_fatal (f"Project key(s) '{ ',' .join (non_existing_projects )} ' do(es) not exist" , errcodes .NO_SUCH_KEY )
151151
152+ calls = {
153+ options .WHAT_SETTINGS : [__JSON_KEY_SETTINGS , platform .export ],
154+ options .WHAT_RULES : [__JSON_KEY_RULES , rules .export ],
155+ options .WHAT_PROFILES : [__JSON_KEY_PROFILES , qualityprofiles .export ],
156+ options .WHAT_GATES : [__JSON_KEY_GATES , qualitygates .export ],
157+ options .WHAT_PROJECTS : [__JSON_KEY_PROJECTS , projects .export ],
158+ options .WHAT_APPS : [__JSON_KEY_APPS , applications .export ],
159+ options .WHAT_PORTFOLIOS : [__JSON_KEY_PORTFOLIOS , portfolios .export ],
160+ options .WHAT_USERS : [__JSON_KEY_USERS , users .export ],
161+ options .WHAT_GROUPS : [__JSON_KEY_GROUPS , groups .export ],
162+ }
163+
152164 log .info ("Exporting configuration from %s" , kwargs [options .URL ])
153165 key_list = kwargs [options .KEYS ]
154166 sq_settings = {__JSON_KEY_PLATFORM : endpoint .basics ()}
167+ for what_item , call_data in calls .items ():
168+ if what_item in what :
169+ ndx , func = call_data
170+ try :
171+ sq_settings [ndx ] = func (endpoint , export_settings = export_settings , key_list = key_list )
172+ except exceptions .UnsupportedOperation as e :
173+ log .warning (e .message )
174+ sq_settings = utilities .remove_empties (sq_settings )
175+ if not kwargs ["dontInlineLists" ]:
176+ sq_settings = utilities .inline_lists (sq_settings , exceptions = ("conditions" ,))
177+ __write_export (sq_settings , kwargs [options .REPORT_FILE ], kwargs [options .FORMAT ])
178+ log .info ("Exporting configuration from %s completed" , kwargs ["url" ])
179+
155180 if options .WHAT_SETTINGS in what :
156181 sq_settings [__JSON_KEY_SETTINGS ] = endpoint .export (export_settings = export_settings )
157182 if options .WHAT_RULES in what or options .WHAT_PROFILES in what :
@@ -177,12 +202,6 @@ def __export_config(endpoint: platform.Platform, what: list[str], **kwargs) -> N
177202 if options .WHAT_GROUPS in what :
178203 sq_settings [__JSON_KEY_GROUPS ] = groups .export (endpoint , export_settings = export_settings )
179204
180- sq_settings = utilities .remove_empties (sq_settings )
181- if not kwargs ["dontInlineLists" ]:
182- sq_settings = utilities .inline_lists (sq_settings , exceptions = ("conditions" ,))
183- __write_export (sq_settings , kwargs [options .REPORT_FILE ], kwargs [options .FORMAT ])
184- log .info ("Exporting configuration from %s completed" , kwargs ["url" ])
185-
186205
187206def __read_input_file (file : str ) -> dict [str , any ]:
188207 try :
@@ -203,6 +222,7 @@ def __import_config(endpoint: platform.Platform, what: list[str], data: dict[str
203222 options .WHAT_USERS : users .import_config ,
204223 options .WHAT_GATES : qualitygates .import_config ,
205224 options .WHAT_RULES : rules .import_config ,
225+ options .WHAT_PROFILES : qualityprofiles .import_config ,
206226 options .WHAT_SETTINGS : platform .import_config ,
207227 options .WHAT_PROJECTS : projects .import_config ,
208228 options .WHAT_APPS : applications .import_config ,
@@ -216,7 +236,6 @@ def __import_config(endpoint: platform.Platform, what: list[str], data: dict[str
216236 except exceptions .UnsupportedOperation as e :
217237 log .warning (e .message )
218238 log .info ("Importing configuration to %s completed" , kwargs [options .URL ])
219- return None
220239
221240
222241def main () -> None :
0 commit comments