REPORT zabapgit_background_mode. DATA lv_repo TYPE c LENGTH 60. SELECT-OPTIONS so_repo FOR lv_repo OBLIGATORY. INITIALIZATION. %_so_repo_%_app_%-text = 'abapGit Repositories'. FORM run. CONSTANTS lc_enq_type TYPE c LENGTH 12 VALUE 'BACKGROUND'. DATA: lo_per TYPE REF TO zcl_abapgit_persist_background, lo_repo TYPE REF TO zcl_abapgit_repo_online, lt_list TYPE zcl_abapgit_persist_background=>ty_background_keys, li_background TYPE REF TO zif_abapgit_background, li_log TYPE REF TO zif_abapgit_log, lx_error TYPE REF TO zcx_abapgit_exception, lv_repo_name TYPE string. FIELD-SYMBOLS <ls_list> LIKE LINE OF lt_list. CALL FUNCTION 'ENQUEUE_EZABAPGIT' EXPORTING mode_zabapgit = 'E' type = lc_enq_type _scope = '3' EXCEPTIONS foreign_lock = 1 system_failure = 2 OTHERS = 3. IF sy-subrc <> 0. WRITE: / 'Another intance of the program is already running'. RETURN. ENDIF. TRY. CREATE OBJECT lo_per. lt_list = lo_per->list( ). CATCH zcx_abapgit_exception INTO lx_error. WRITE / lx_error->get_text( ). ENDTRY. WRITE / 'Background mode'. LOOP AT lt_list ASSIGNING <ls_list>. TRY. lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( <ls_list>-key ). lv_repo_name = lo_repo->get_name( ). CHECK lv_repo_name IN so_repo. WRITE: / <ls_list>-method, lv_repo_name. zcl_abapgit_login_manager=>set( iv_uri = lo_repo->get_url( ) iv_username = <ls_list>-username iv_password = <ls_list>-password ). CREATE OBJECT li_log TYPE zcl_abapgit_log. CREATE OBJECT li_background TYPE (<ls_list>-method). li_background->run( io_repo = lo_repo ii_log = li_log it_settings = <ls_list>-settings ). li_log->add_success( |Repo { lv_repo_name } processed successfully| ). " Clear auth buffer to allow different user/password per repository in background mode zcl_abapgit_login_manager=>clear( ). CATCH zcx_abapgit_exception INTO lx_error. li_log->add_exception( lx_error ). ENDTRY. zcl_abapgit_log_viewer=>write_log( li_log ). ENDLOOP. IF lines( lt_list ) = 0. WRITE / 'Nothing configured'. ENDIF. CALL FUNCTION 'DEQUEUE_EZABAPGIT' EXPORTING type = lc_enq_type. ENDFORM. START-OF-SELECTION. PERFORM run.