abapGit/src/zcl_abapgit_migrations.clas.abap
2023-11-09 14:25:19 -05:00

63 lines
1.4 KiB
ABAP

CLASS zcl_abapgit_migrations DEFINITION
PUBLIC FINAL
CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS run
RAISING
zcx_abapgit_exception
zcx_abapgit_not_found.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-METHODS migrate_offline_repos.
ENDCLASS.
CLASS zcl_abapgit_migrations IMPLEMENTATION.
METHOD migrate_offline_repos.
DATA:
lt_repos TYPE zif_abapgit_repo_srv=>ty_repo_list,
li_repo LIKE LINE OF lt_repos,
lo_dot TYPE REF TO zcl_abapgit_dot_abapgit.
TRY.
" Get offline repos only
lt_repos = zcl_abapgit_repo_srv=>get_instance( )->list( abap_true ).
LOOP AT lt_repos INTO li_repo.
lo_dot = li_repo->get_dot_abapgit( ).
" Move repo name from URL fields to .abapGit.xml
IF li_repo->ms_data-url IS NOT INITIAL AND lo_dot->get_name( ) IS INITIAL.
lo_dot->set_name( li_repo->ms_data-url ).
li_repo->set_dot_abapgit( lo_dot ).
ENDIF.
ENDLOOP.
CATCH zcx_abapgit_exception ##NO_HANDLER.
ENDTRY.
ENDMETHOD.
METHOD run.
" Migrate STDTEXT to TABLE
zcl_abapgit_persist_migrate=>run( ).
" Create ZIF_APACK_MANIFEST interface
zcl_abapgit_apack_migration=>run( ).
" Migrate checksums from repo metadata to separate DB object
zcl_abapgit_repo_cs_migration=>run( ).
" Migrate offline repo metadata
migrate_offline_repos( ).
ENDMETHOD.
ENDCLASS.