mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Merge pull request #1526 from christianguenter2/issue_1524_move_check_before_stage
Block commit/push if code inspection has errors
This commit is contained in:
commit
7181eab4e5
|
@ -23,6 +23,8 @@ INTERFACE zif_abapgit_persistence PUBLIC.
|
||||||
ignore_subpackages TYPE abap_bool,
|
ignore_subpackages TYPE abap_bool,
|
||||||
write_protected TYPE abap_bool,
|
write_protected TYPE abap_bool,
|
||||||
only_local_objects TYPE abap_bool,
|
only_local_objects TYPE abap_bool,
|
||||||
|
code_inspector_check_variant TYPE sci_chkv ,
|
||||||
|
block_commit TYPE abap_bool,
|
||||||
END OF ty_local_settings.
|
END OF ty_local_settings.
|
||||||
|
|
||||||
TYPES: ty_local_checksum_tt TYPE STANDARD TABLE OF ty_local_checksum WITH DEFAULT KEY.
|
TYPES: ty_local_checksum_tt TYPE STANDARD TABLE OF ty_local_checksum WITH DEFAULT KEY.
|
||||||
|
|
271
src/ui/zcl_abapgit_gui_page_code_insp.clas.abap
Normal file
271
src/ui/zcl_abapgit_gui_page_code_insp.clas.abap
Normal file
|
@ -0,0 +1,271 @@
|
||||||
|
CLASS zcl_abapgit_gui_page_code_insp DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||||
|
INHERITING FROM zcl_abapgit_gui_page.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
METHODS:
|
||||||
|
constructor
|
||||||
|
IMPORTING
|
||||||
|
io_repo TYPE REF TO zcl_abapgit_repo
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception,
|
||||||
|
|
||||||
|
zif_abapgit_gui_page~on_event
|
||||||
|
REDEFINITION,
|
||||||
|
|
||||||
|
zif_abapgit_gui_page~render
|
||||||
|
REDEFINITION.
|
||||||
|
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
DATA: mo_repo TYPE REF TO zcl_abapgit_repo_online.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
render_content REDEFINITION.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
CONSTANTS:
|
||||||
|
BEGIN OF c_actions,
|
||||||
|
stage TYPE string VALUE 'stage' ##NO_TEXT,
|
||||||
|
rerun TYPE string VALUE 'rerun' ##NO_TEXT,
|
||||||
|
END OF c_actions.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
mt_result TYPE scit_alvlist.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
build_menu
|
||||||
|
RETURNING
|
||||||
|
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar,
|
||||||
|
|
||||||
|
run_code_inspector
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception,
|
||||||
|
|
||||||
|
has_inspection_errors
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_has_inspection_errors) TYPE abap_bool,
|
||||||
|
|
||||||
|
is_stage_allowed
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_is_stage_allowed) TYPE abap_bool,
|
||||||
|
jump
|
||||||
|
IMPORTING
|
||||||
|
is_item TYPE zif_abapgit_definitions=>ty_item
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD build_menu.
|
||||||
|
|
||||||
|
DATA: lv_opt TYPE c LENGTH 1.
|
||||||
|
|
||||||
|
CREATE OBJECT ro_menu.
|
||||||
|
|
||||||
|
ro_menu->add( iv_txt = 'Re-Run'
|
||||||
|
iv_act = c_actions-rerun
|
||||||
|
iv_cur = abap_false ) ##NO_TEXT.
|
||||||
|
|
||||||
|
IF is_stage_allowed( ) = abap_false.
|
||||||
|
lv_opt = zif_abapgit_definitions=>gc_html_opt-crossout.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ro_menu->add( iv_txt = 'Stage'
|
||||||
|
iv_act = c_actions-stage
|
||||||
|
iv_cur = abap_false
|
||||||
|
iv_opt = lv_opt ) ##NO_TEXT.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD constructor.
|
||||||
|
super->constructor( ).
|
||||||
|
mo_repo ?= io_repo.
|
||||||
|
ms_control-page_title = 'Code Inspector'.
|
||||||
|
run_code_inspector( ).
|
||||||
|
ENDMETHOD. " constructor.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD has_inspection_errors.
|
||||||
|
|
||||||
|
READ TABLE mt_result TRANSPORTING NO FIELDS
|
||||||
|
WITH KEY kind = 'E'.
|
||||||
|
rv_has_inspection_errors = boolc( sy-subrc = 0 ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD is_stage_allowed.
|
||||||
|
|
||||||
|
rv_is_stage_allowed = boolc( NOT ( mo_repo->get_local_settings( )-block_commit = abap_true
|
||||||
|
AND has_inspection_errors( ) = abap_true ) ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD render_content.
|
||||||
|
|
||||||
|
DATA: lv_check_variant TYPE sci_chkv,
|
||||||
|
lv_class TYPE string.
|
||||||
|
FIELD-SYMBOLS: <ls_result> TYPE scir_alvlist.
|
||||||
|
|
||||||
|
CREATE OBJECT ro_html.
|
||||||
|
|
||||||
|
lv_check_variant = mo_repo->get_local_settings( )-code_inspector_check_variant.
|
||||||
|
|
||||||
|
IF lv_check_variant IS INITIAL.
|
||||||
|
ro_html->add( |No check variant maintained in repo settings.| ).
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ro_html->add( '<div class="toc"><br/>' ).
|
||||||
|
|
||||||
|
ro_html->add( |Code inspector check variant: {
|
||||||
|
mo_repo->get_local_settings( )-code_inspector_check_variant
|
||||||
|
}<br/>| ).
|
||||||
|
|
||||||
|
IF lines( mt_result ) = 0.
|
||||||
|
ro_html->add( '<br/><div class="success">No code inspector findings</div>' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ro_html->add( |<br/>| ).
|
||||||
|
|
||||||
|
LOOP AT mt_result ASSIGNING <ls_result>.
|
||||||
|
|
||||||
|
ro_html->add( '<div>' ).
|
||||||
|
ro_html->add_a( iv_txt = |{ <ls_result>-objtype } { <ls_result>-objname }|
|
||||||
|
iv_act = |{ <ls_result>-objtype }{ <ls_result>-objname }|
|
||||||
|
iv_typ = zif_abapgit_definitions=>gc_action_type-sapevent ).
|
||||||
|
ro_html->add( '</div>' ).
|
||||||
|
|
||||||
|
CASE <ls_result>-kind.
|
||||||
|
WHEN 'E'.
|
||||||
|
lv_class = 'error'.
|
||||||
|
WHEN 'W'.
|
||||||
|
lv_class = 'warning'.
|
||||||
|
WHEN OTHERS.
|
||||||
|
lv_class = 'grey'.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ro_html->add( |<div class="{ lv_class }">Line { <ls_result>-line ALPHA = OUT }: { <ls_result>-text }</div><br>| ).
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ro_html->add( '</div>' ).
|
||||||
|
|
||||||
|
ENDMETHOD. "render_content
|
||||||
|
|
||||||
|
|
||||||
|
METHOD run_code_inspector.
|
||||||
|
|
||||||
|
mt_result = mo_repo->run_code_inspector( ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_gui_page~on_event.
|
||||||
|
|
||||||
|
DATA: lo_repo_online TYPE REF TO zcl_abapgit_repo_online,
|
||||||
|
ls_item TYPE zif_abapgit_definitions=>ty_item.
|
||||||
|
|
||||||
|
lo_repo_online ?= mo_repo.
|
||||||
|
|
||||||
|
CASE iv_action.
|
||||||
|
WHEN c_actions-stage.
|
||||||
|
|
||||||
|
IF is_stage_allowed( ) = abap_true.
|
||||||
|
|
||||||
|
" we need to refresh as the source might have changed
|
||||||
|
lo_repo_online->refresh( ).
|
||||||
|
|
||||||
|
CREATE OBJECT ei_page TYPE zcl_abapgit_gui_page_stage
|
||||||
|
EXPORTING
|
||||||
|
io_repo = lo_repo_online.
|
||||||
|
|
||||||
|
ev_state = zif_abapgit_definitions=>gc_event_state-new_page.
|
||||||
|
|
||||||
|
ELSE.
|
||||||
|
|
||||||
|
ei_page = me.
|
||||||
|
ev_state = zif_abapgit_definitions=>gc_event_state-no_more_act.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
WHEN c_actions-rerun.
|
||||||
|
|
||||||
|
run_code_inspector( ).
|
||||||
|
|
||||||
|
ei_page = me.
|
||||||
|
ev_state = zif_abapgit_definitions=>gc_event_state-re_render.
|
||||||
|
|
||||||
|
WHEN OTHERS.
|
||||||
|
|
||||||
|
ls_item-obj_type = iv_action(4).
|
||||||
|
ls_item-obj_name = iv_action+4(*).
|
||||||
|
|
||||||
|
jump( ls_item ).
|
||||||
|
|
||||||
|
* zcl_abapgit_objects=>jump( ls_item ).
|
||||||
|
|
||||||
|
ev_state = zif_abapgit_definitions=>gc_event_state-no_more_act.
|
||||||
|
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_gui_page~render.
|
||||||
|
|
||||||
|
ms_control-page_menu = build_menu( ).
|
||||||
|
ro_html = super->zif_abapgit_gui_page~render( ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD jump.
|
||||||
|
|
||||||
|
DATA: lo_test TYPE REF TO cl_ci_test_root,
|
||||||
|
li_code_inspector TYPE REF TO zif_abapgit_code_inspector,
|
||||||
|
ls_info TYPE scir_rest,
|
||||||
|
lo_result TYPE REF TO cl_ci_result_root,
|
||||||
|
lv_check_variant_name TYPE sci_chkv,
|
||||||
|
lv_package TYPE devclass,
|
||||||
|
lv_srcid TYPE scr_source_id.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_result> TYPE scir_alvlist.
|
||||||
|
|
||||||
|
READ TABLE mt_result WITH KEY objtype = is_item-obj_type
|
||||||
|
objname = is_item-obj_name
|
||||||
|
ASSIGNING <ls_result>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
lv_package = mo_repo->get_package( ).
|
||||||
|
lv_check_variant_name = mo_repo->get_local_settings( )-code_inspector_check_variant.
|
||||||
|
|
||||||
|
li_code_inspector = zcl_abapgit_factory=>get_code_inspector(
|
||||||
|
iv_package = lv_package
|
||||||
|
iv_check_variant_name = lv_check_variant_name ).
|
||||||
|
|
||||||
|
" see SCI_LCL_DYNP_530 / HANDLE_DOUBLE_CLICK
|
||||||
|
|
||||||
|
MOVE-CORRESPONDING <ls_result> TO ls_info.
|
||||||
|
|
||||||
|
lo_test = cl_ci_tests=>get_test_ref( <ls_result>-test ).
|
||||||
|
lo_result = lo_test->get_result_node( <ls_result>-kind ).
|
||||||
|
|
||||||
|
lv_srcid = li_code_inspector->get_inspection( )->objs->objectsinf-srcid.
|
||||||
|
|
||||||
|
lo_result->set_srcid(
|
||||||
|
p_info = ls_info
|
||||||
|
p_srcid = lv_srcid ).
|
||||||
|
|
||||||
|
lo_result->set_info( ls_info ).
|
||||||
|
lo_result->if_ci_test~navigate( ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
19
src/ui/zcl_abapgit_gui_page_code_insp.clas.xml
Normal file
19
src/ui/zcl_abapgit_gui_page_code_insp.clas.xml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_ABAPGIT_GUI_PAGE_CODE_INSP</CLSNAME>
|
||||||
|
<VERSION>1</VERSION>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>GUI - Syntax check page</DESCRIPT>
|
||||||
|
<EXPOSURE>2</EXPOSURE>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSFINAL>X</CLSFINAL>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -45,12 +45,14 @@ CLASS zcl_abapgit_gui_page_repo_sett DEFINITION
|
||||||
|
|
||||||
METHODS render_content
|
METHODS render_content
|
||||||
REDEFINITION .
|
REDEFINITION .
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_SETT IMPLEMENTATION.
|
CLASS zcl_abapgit_gui_page_repo_sett IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
@ -137,6 +139,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_SETT IMPLEMENTATION.
|
||||||
ls_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings.
|
ls_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ls_settings = mo_repo->get_local_settings( ).
|
ls_settings = mo_repo->get_local_settings( ).
|
||||||
|
|
||||||
io_html->add( '<h2>Local settings</h2>' ).
|
io_html->add( '<h2>Local settings</h2>' ).
|
||||||
|
@ -159,6 +162,19 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_SETT IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
io_html->add( |Only local objects <input name="only_local_objects" type="checkbox"{ lv_checked }><br>| ).
|
io_html->add( |Only local objects <input name="only_local_objects" type="checkbox"{ lv_checked }><br>| ).
|
||||||
|
|
||||||
|
io_html->add( '<br>' ).
|
||||||
|
io_html->add( 'Code inspector check variant: <input name="check_variant" type="text" size="30" value="' &&
|
||||||
|
ls_settings-code_inspector_check_variant && '">' ).
|
||||||
|
io_html->add( '<br>' ).
|
||||||
|
|
||||||
|
CLEAR lv_checked.
|
||||||
|
IF ls_settings-block_commit = abap_true.
|
||||||
|
lv_checked = | checked|.
|
||||||
|
ENDIF.
|
||||||
|
io_html->add( |Block commit commit/push if code inspection has erros: |
|
||||||
|
&& |<input name="block_commit" type="checkbox"{ lv_checked }><br>| ).
|
||||||
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
@ -201,7 +217,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_SETT IMPLEMENTATION.
|
||||||
METHOD save_local_settings.
|
METHOD save_local_settings.
|
||||||
|
|
||||||
DATA: ls_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings,
|
DATA: ls_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings,
|
||||||
ls_post_field LIKE LINE OF it_post_fields.
|
ls_post_field LIKE LINE OF it_post_fields,
|
||||||
|
lv_check_variant TYPE sci_chkv.
|
||||||
|
|
||||||
|
|
||||||
ls_settings = mo_repo->get_local_settings( ).
|
ls_settings = mo_repo->get_local_settings( ).
|
||||||
|
@ -227,6 +244,26 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_SETT IMPLEMENTATION.
|
||||||
ls_settings-only_local_objects = abap_false.
|
ls_settings-only_local_objects = abap_false.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'check_variant'.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
lv_check_variant = to_upper( ls_post_field-value ).
|
||||||
|
IF ls_post_field-value IS NOT INITIAL.
|
||||||
|
zcl_abapgit_code_inspector=>validate_check_variant( lv_check_variant ).
|
||||||
|
ENDIF.
|
||||||
|
ls_settings-code_inspector_check_variant = lv_check_variant.
|
||||||
|
|
||||||
|
READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'block_commit' value = 'on'.
|
||||||
|
IF sy-subrc = 0.
|
||||||
|
ls_settings-block_commit = abap_true.
|
||||||
|
ELSE.
|
||||||
|
ls_settings-block_commit = abap_false.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
IF ls_settings-block_commit = abap_true
|
||||||
|
AND ls_settings-code_inspector_check_variant IS INITIAL.
|
||||||
|
zcx_abapgit_exception=>raise( |If block commit is active, a check variant has to be maintained.| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
mo_repo->set_local_settings( ls_settings ).
|
mo_repo->set_local_settings( ls_settings ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -241,4 +278,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_SETT IMPLEMENTATION.
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -16,7 +16,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_GUI_PAGE_SYNTAX IMPLEMENTATION.
|
CLASS zcl_abapgit_gui_page_syntax IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
@ -28,11 +28,13 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SYNTAX IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD render_content.
|
METHOD render_content.
|
||||||
|
|
||||||
DATA: lt_result TYPE scit_alvlist,
|
DATA: li_syntax_check TYPE REF TO zif_abapgit_code_inspector,
|
||||||
|
lt_result TYPE scit_alvlist,
|
||||||
ls_result LIKE LINE OF lt_result.
|
ls_result LIKE LINE OF lt_result.
|
||||||
|
|
||||||
|
li_syntax_check = zcl_abapgit_factory=>get_syntax_check( iv_package = mo_repo->get_package( ) ).
|
||||||
|
|
||||||
lt_result = zcl_abapgit_syntax_check=>run( mo_repo->get_package( ) ).
|
lt_result = li_syntax_check->run( ).
|
||||||
|
|
||||||
CREATE OBJECT ro_html.
|
CREATE OBJECT ro_html.
|
||||||
ro_html->add( '<div class="toc">' ).
|
ro_html->add( '<div class="toc">' ).
|
||||||
|
|
|
@ -131,7 +131,8 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
|
||||||
DATA: lo_repo TYPE REF TO zcl_abapgit_repo_online,
|
DATA: lo_repo TYPE REF TO zcl_abapgit_repo_online,
|
||||||
lv_key TYPE zif_abapgit_persistence=>ty_repo-key,
|
lv_key TYPE zif_abapgit_persistence=>ty_repo-key,
|
||||||
lv_seed TYPE string,
|
lv_seed TYPE string,
|
||||||
lo_stage_page TYPE REF TO zcl_abapgit_gui_page_stage.
|
lo_stage_page TYPE REF TO zcl_abapgit_gui_page_stage,
|
||||||
|
lo_code_inspector_page TYPE REF TO zcl_abapgit_gui_page_code_insp.
|
||||||
|
|
||||||
FIND FIRST OCCURRENCE OF '=' IN iv_getdata.
|
FIND FIRST OCCURRENCE OF '=' IN iv_getdata.
|
||||||
IF sy-subrc <> 0. " Not found ? -> just repo key in params
|
IF sy-subrc <> 0. " Not found ? -> just repo key in params
|
||||||
|
@ -145,6 +146,16 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
|
||||||
|
|
||||||
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
|
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
|
||||||
|
|
||||||
|
IF lo_repo->get_local_settings( )-code_inspector_check_variant IS NOT INITIAL.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_code_inspector_page
|
||||||
|
EXPORTING
|
||||||
|
io_repo = lo_repo.
|
||||||
|
|
||||||
|
ri_page = lo_code_inspector_page.
|
||||||
|
|
||||||
|
ELSE.
|
||||||
|
|
||||||
" force refresh on stage, to make sure the latest local and remote files are used
|
" force refresh on stage, to make sure the latest local and remote files are used
|
||||||
lo_repo->refresh( ).
|
lo_repo->refresh( ).
|
||||||
|
|
||||||
|
@ -155,6 +166,8 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
|
||||||
|
|
||||||
ri_page = lo_stage_page.
|
ri_page = lo_stage_page.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD. "get_page_stage
|
ENDMETHOD. "get_page_stage
|
||||||
|
|
||||||
|
|
||||||
|
@ -266,6 +279,11 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
|
||||||
EXPORTING
|
EXPORTING
|
||||||
io_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
|
io_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
|
||||||
ev_state = zif_abapgit_definitions=>gc_event_state-new_page.
|
ev_state = zif_abapgit_definitions=>gc_event_state-new_page.
|
||||||
|
WHEN zif_abapgit_definitions=>gc_action-repo_code_inspector.
|
||||||
|
CREATE OBJECT ei_page TYPE zcl_abapgit_gui_page_code_insp
|
||||||
|
EXPORTING
|
||||||
|
io_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
|
||||||
|
ev_state = zif_abapgit_definitions=>gc_event_state-new_page.
|
||||||
WHEN zif_abapgit_definitions=>gc_action-repo_purge. " Repo remove & purge all objects
|
WHEN zif_abapgit_definitions=>gc_action-repo_purge. " Repo remove & purge all objects
|
||||||
zcl_abapgit_services_repo=>purge( lv_key ).
|
zcl_abapgit_services_repo=>purge( lv_key ).
|
||||||
ev_state = zif_abapgit_definitions=>gc_event_state-re_render.
|
ev_state = zif_abapgit_definitions=>gc_event_state-re_render.
|
||||||
|
|
|
@ -199,6 +199,8 @@ CLASS zcl_abapgit_gui_view_repo IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
lo_tb_advanced->add( iv_txt = 'Syntax Check'
|
lo_tb_advanced->add( iv_txt = 'Syntax Check'
|
||||||
iv_act = |{ zif_abapgit_definitions=>gc_action-repo_syntax_check }?{ lv_key }| ).
|
iv_act = |{ zif_abapgit_definitions=>gc_action-repo_syntax_check }?{ lv_key }| ).
|
||||||
|
lo_tb_advanced->add( iv_txt = 'Run Code Inspector'
|
||||||
|
iv_act = |{ zif_abapgit_definitions=>gc_action-repo_code_inspector }?{ lv_key }| ).
|
||||||
lo_tb_advanced->add( iv_txt = 'Repo settings'
|
lo_tb_advanced->add( iv_txt = 'Repo settings'
|
||||||
iv_act = |{ zif_abapgit_definitions=>gc_action-repo_settings }?{ lv_key }| ).
|
iv_act = |{ zif_abapgit_definitions=>gc_action-repo_settings }?{ lv_key }| ).
|
||||||
|
|
||||||
|
|
|
@ -1160,4 +1160,5 @@ CLASS zcl_abapgit_popups IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD. "run_page_class_popup
|
ENDMETHOD. "run_page_class_popup
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -73,6 +73,9 @@ CLASS zcl_abapgit_services_git DEFINITION
|
||||||
zcx_abapgit_exception
|
zcx_abapgit_exception
|
||||||
zcx_abapgit_cancel.
|
zcx_abapgit_cancel.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,9 @@ CLASS zcl_abapgit_log DEFINITION PUBLIC CREATE PUBLIC.
|
||||||
has_rc "For unit tests mainly
|
has_rc "For unit tests mainly
|
||||||
IMPORTING iv_rc TYPE balsort
|
IMPORTING iv_rc TYPE balsort
|
||||||
RETURNING VALUE(rv_yes) TYPE abap_bool,
|
RETURNING VALUE(rv_yes) TYPE abap_bool,
|
||||||
show.
|
show
|
||||||
|
IMPORTING
|
||||||
|
iv_header_text TYPE csequence DEFAULT 'Log'.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
TYPES: BEGIN OF ty_log,
|
TYPES: BEGIN OF ty_log,
|
||||||
|
@ -42,7 +44,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_log IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD add.
|
METHOD add.
|
||||||
|
@ -142,7 +144,7 @@ CLASS zcl_abapgit_log IMPLEMENTATION.
|
||||||
|
|
||||||
CREATE OBJECT lo_form_header
|
CREATE OBJECT lo_form_header
|
||||||
EXPORTING
|
EXPORTING
|
||||||
text = |Log|.
|
text = iv_header_text.
|
||||||
|
|
||||||
lo_alv->set_top_of_list( lo_form_header ).
|
lo_alv->set_top_of_list( lo_form_header ).
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,7 @@ input:focus, textarea:focus {
|
||||||
.attention { color: red !important; }
|
.attention { color: red !important; }
|
||||||
.error { color: #d41919 !important; }
|
.error { color: #d41919 !important; }
|
||||||
.warning { color: #efb301 !important; }
|
.warning { color: #efb301 !important; }
|
||||||
|
.success { color: green !important; }
|
||||||
.blue { color: #5e8dc9 !important; }
|
.blue { color: #5e8dc9 !important; }
|
||||||
.red { color: red !important; }
|
.red { color: red !important; }
|
||||||
.white { color: white !important; }
|
.white { color: white !important; }
|
||||||
|
|
232
src/zcl_abapgit_code_inspector.clas.abap
Normal file
232
src/zcl_abapgit_code_inspector.clas.abap
Normal file
|
@ -0,0 +1,232 @@
|
||||||
|
CLASS zcl_abapgit_code_inspector DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
CREATE PROTECTED
|
||||||
|
GLOBAL FRIENDS zcl_abapgit_factory.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
INTERFACES:
|
||||||
|
zif_abapgit_code_inspector.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
constructor
|
||||||
|
IMPORTING
|
||||||
|
iv_package TYPE devclass
|
||||||
|
iv_check_variant_name TYPE sci_chkv OPTIONAL
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS:
|
||||||
|
validate_check_variant
|
||||||
|
IMPORTING
|
||||||
|
iv_check_variant_name TYPE sci_chkv
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
TYPES:
|
||||||
|
ty_tdevc_tt TYPE STANDARD TABLE OF tdevc WITH DEFAULT KEY .
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
mv_package TYPE devclass.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
create_variant
|
||||||
|
RETURNING
|
||||||
|
VALUE(ro_variant) TYPE REF TO cl_ci_checkvariant
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
DATA:
|
||||||
|
mv_check_variant_name TYPE sci_chkv,
|
||||||
|
mo_inspection TYPE REF TO cl_ci_inspection.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
find_all_subpackages
|
||||||
|
IMPORTING
|
||||||
|
iv_package TYPE devclass
|
||||||
|
RETURNING
|
||||||
|
VALUE(rt_packages) TYPE ty_tdevc_tt,
|
||||||
|
|
||||||
|
create_objectset
|
||||||
|
RETURNING
|
||||||
|
VALUE(ro_set) TYPE REF TO cl_ci_objectset,
|
||||||
|
|
||||||
|
run_inspection
|
||||||
|
IMPORTING
|
||||||
|
io_inspection TYPE REF TO cl_ci_inspection
|
||||||
|
RETURNING
|
||||||
|
VALUE(rt_list) TYPE scit_alvlist,
|
||||||
|
|
||||||
|
create_inspection
|
||||||
|
IMPORTING
|
||||||
|
io_set TYPE REF TO cl_ci_objectset
|
||||||
|
io_variant TYPE REF TO cl_ci_checkvariant
|
||||||
|
RETURNING
|
||||||
|
VALUE(ro_inspection) TYPE REF TO cl_ci_inspection.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD constructor.
|
||||||
|
|
||||||
|
mv_package = iv_package.
|
||||||
|
mv_check_variant_name = iv_check_variant_name.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD create_inspection.
|
||||||
|
|
||||||
|
cl_ci_inspection=>create(
|
||||||
|
EXPORTING
|
||||||
|
p_user = sy-uname
|
||||||
|
p_name = ''
|
||||||
|
RECEIVING
|
||||||
|
p_ref = ro_inspection
|
||||||
|
EXCEPTIONS
|
||||||
|
locked = 1
|
||||||
|
error_in_enqueue = 2
|
||||||
|
not_authorized = 3
|
||||||
|
OTHERS = 4 ).
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
ro_inspection->set(
|
||||||
|
p_chkv = io_variant
|
||||||
|
p_objs = io_set ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD create_objectset.
|
||||||
|
|
||||||
|
DATA: lt_objs TYPE scit_objs,
|
||||||
|
lt_packages TYPE ty_tdevc_tt.
|
||||||
|
|
||||||
|
|
||||||
|
lt_packages = find_all_subpackages( mv_package ).
|
||||||
|
IF lines( lt_packages ) = 0.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
SELECT object AS objtype obj_name AS objname
|
||||||
|
FROM tadir
|
||||||
|
INTO CORRESPONDING FIELDS OF TABLE lt_objs
|
||||||
|
FOR ALL ENTRIES IN lt_packages
|
||||||
|
WHERE devclass = lt_packages-devclass
|
||||||
|
AND delflag = abap_false
|
||||||
|
AND pgmid = 'R3TR'. "#EC CI_GENBUFF
|
||||||
|
|
||||||
|
ro_set = cl_ci_objectset=>save_from_list( lt_objs ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD create_variant.
|
||||||
|
|
||||||
|
IF mv_check_variant_name IS INITIAL.
|
||||||
|
zcx_abapgit_exception=>raise( |No check variant supplied.| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
cl_ci_checkvariant=>get_ref(
|
||||||
|
EXPORTING
|
||||||
|
p_user = ''
|
||||||
|
p_name = mv_check_variant_name
|
||||||
|
RECEIVING
|
||||||
|
p_ref = ro_variant
|
||||||
|
EXCEPTIONS
|
||||||
|
chkv_not_exists = 1
|
||||||
|
missing_parameter = 2
|
||||||
|
OTHERS = 3 ).
|
||||||
|
|
||||||
|
CASE sy-subrc.
|
||||||
|
WHEN 1.
|
||||||
|
zcx_abapgit_exception=>raise( |Check variant { mv_check_variant_name } doesn't exist| ).
|
||||||
|
WHEN 2.
|
||||||
|
zcx_abapgit_exception=>raise( |Parameter missing for check variant { mv_check_variant_name }| ).
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD find_all_subpackages.
|
||||||
|
|
||||||
|
* TODO, in the future, move this method to the ABAPGIT global package class
|
||||||
|
|
||||||
|
DATA: ls_package LIKE LINE OF rt_packages,
|
||||||
|
lt_found LIKE rt_packages,
|
||||||
|
lt_sub LIKE rt_packages.
|
||||||
|
|
||||||
|
|
||||||
|
SELECT SINGLE * FROM tdevc INTO ls_package WHERE devclass = iv_package.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
APPEND ls_package TO rt_packages.
|
||||||
|
|
||||||
|
SELECT * FROM tdevc APPENDING TABLE lt_sub
|
||||||
|
WHERE parentcl = ls_package-devclass.
|
||||||
|
|
||||||
|
LOOP AT lt_sub INTO ls_package.
|
||||||
|
lt_found = find_all_subpackages( ls_package-devclass ).
|
||||||
|
APPEND LINES OF lt_found TO rt_packages.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD run_inspection.
|
||||||
|
|
||||||
|
io_inspection->run(
|
||||||
|
EXCEPTIONS
|
||||||
|
invalid_check_version = 1
|
||||||
|
OTHERS = 2 ).
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
io_inspection->plain_list(
|
||||||
|
IMPORTING
|
||||||
|
p_list = rt_list ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_code_inspector~run.
|
||||||
|
|
||||||
|
DATA: lo_set TYPE REF TO cl_ci_objectset,
|
||||||
|
lo_variant TYPE REF TO cl_ci_checkvariant.
|
||||||
|
|
||||||
|
lo_set = create_objectset( ).
|
||||||
|
lo_variant = create_variant( ).
|
||||||
|
|
||||||
|
mo_inspection = create_inspection(
|
||||||
|
io_set = lo_set
|
||||||
|
io_variant = lo_variant ).
|
||||||
|
|
||||||
|
rt_list = run_inspection( mo_inspection ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD validate_check_variant.
|
||||||
|
|
||||||
|
cl_ci_checkvariant=>get_ref(
|
||||||
|
EXPORTING
|
||||||
|
p_user = ''
|
||||||
|
p_name = iv_check_variant_name
|
||||||
|
EXCEPTIONS
|
||||||
|
chkv_not_exists = 1
|
||||||
|
missing_parameter = 2
|
||||||
|
OTHERS = 3 ).
|
||||||
|
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
zcx_abapgit_exception=>raise( |No valid check variant { iv_check_variant_name }| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD zif_abapgit_code_inspector~get_inspection.
|
||||||
|
ro_inspection = mo_inspection.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
18
src/zcl_abapgit_code_inspector.clas.xml
Normal file
18
src/zcl_abapgit_code_inspector.clas.xml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_ABAPGIT_CODE_INSPECTOR</CLSNAME>
|
||||||
|
<VERSION>1</VERSION>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abapGit Code Inspector</DESCRIPT>
|
||||||
|
<EXPOSURE>1</EXPOSURE>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -42,15 +42,19 @@ CLASS zcl_abapgit_dot_abapgit DEFINITION
|
||||||
METHODS get_starting_folder
|
METHODS get_starting_folder
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_path) TYPE string .
|
VALUE(rv_path) TYPE string .
|
||||||
|
|
||||||
METHODS get_folder_logic
|
METHODS get_folder_logic
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_logic) TYPE string .
|
VALUE(rv_logic) TYPE string .
|
||||||
|
|
||||||
METHODS set_folder_logic
|
METHODS set_folder_logic
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_logic TYPE string .
|
!iv_logic TYPE string .
|
||||||
|
|
||||||
METHODS set_starting_folder
|
METHODS set_starting_folder
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_path TYPE string .
|
!iv_path TYPE string .
|
||||||
|
|
||||||
METHODS get_master_language
|
METHODS get_master_language
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_language) TYPE spras .
|
VALUE(rv_language) TYPE spras .
|
||||||
|
@ -77,7 +81,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_DOT_ABAPGIT IMPLEMENTATION.
|
CLASS zcl_abapgit_dot_abapgit IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD add_ignore.
|
METHOD add_ignore.
|
||||||
|
@ -276,4 +280,5 @@ CLASS ZCL_ABAPGIT_DOT_ABAPGIT IMPLEMENTATION.
|
||||||
ASSERT sy-subrc = 0.
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -14,7 +14,25 @@ CLASS zcl_abapgit_factory DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_package TYPE devclass
|
iv_package TYPE devclass
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ri_sap_package) TYPE REF TO zif_abapgit_sap_package.
|
VALUE(ri_sap_package) TYPE REF TO zif_abapgit_sap_package,
|
||||||
|
|
||||||
|
get_code_inspector
|
||||||
|
IMPORTING
|
||||||
|
iv_package TYPE devclass
|
||||||
|
iv_check_variant_name TYPE sci_chkv
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_code_inspector) TYPE REF TO zif_abapgit_code_inspector
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception,
|
||||||
|
|
||||||
|
get_syntax_check
|
||||||
|
IMPORTING
|
||||||
|
iv_package TYPE devclass
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_syntax_check) TYPE REF TO zif_abapgit_code_inspector
|
||||||
|
raising
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
TYPES:
|
TYPES:
|
||||||
|
@ -23,11 +41,27 @@ CLASS zcl_abapgit_factory DEFINITION
|
||||||
instance TYPE REF TO zif_abapgit_sap_package,
|
instance TYPE REF TO zif_abapgit_sap_package,
|
||||||
END OF ty_sap_package,
|
END OF ty_sap_package,
|
||||||
tty_sap_package TYPE HASHED TABLE OF ty_sap_package
|
tty_sap_package TYPE HASHED TABLE OF ty_sap_package
|
||||||
|
WITH UNIQUE KEY package,
|
||||||
|
|
||||||
|
BEGIN OF ty_code_inspector,
|
||||||
|
package TYPE devclass,
|
||||||
|
check_variant_name TYPE sci_chkv,
|
||||||
|
instance TYPE REF TO zif_abapgit_code_inspector,
|
||||||
|
END OF ty_code_inspector,
|
||||||
|
tty_code_inspector TYPE HASHED TABLE OF ty_code_inspector
|
||||||
|
WITH UNIQUE KEY package check_variant_name,
|
||||||
|
BEGIN OF ty_syntax_check,
|
||||||
|
package TYPE devclass,
|
||||||
|
instance TYPE REF TO zif_abapgit_code_inspector,
|
||||||
|
END OF ty_syntax_check,
|
||||||
|
tty_syntax_check TYPE HASHED TABLE OF ty_syntax_check
|
||||||
WITH UNIQUE KEY package.
|
WITH UNIQUE KEY package.
|
||||||
|
|
||||||
CLASS-DATA:
|
CLASS-DATA:
|
||||||
mi_tadir TYPE REF TO zif_abapgit_tadir,
|
mi_tadir TYPE REF TO zif_abapgit_tadir,
|
||||||
mt_sap_package TYPE tty_sap_package.
|
mt_sap_package TYPE tty_sap_package,
|
||||||
|
mt_code_inspector TYPE tty_code_inspector,
|
||||||
|
mt_syntax_check TYPE tty_syntax_check.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -69,4 +103,55 @@ CLASS zcl_abapgit_factory IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_code_inspector.
|
||||||
|
|
||||||
|
DATA: ls_code_inspector LIKE LINE OF mt_code_inspector.
|
||||||
|
FIELD-SYMBOLS: <ls_code_inspector> TYPE zcl_abapgit_factory=>ty_code_inspector.
|
||||||
|
|
||||||
|
READ TABLE mt_code_inspector ASSIGNING <ls_code_inspector>
|
||||||
|
WITH TABLE KEY package = iv_package
|
||||||
|
check_variant_name = iv_check_variant_name.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
ls_code_inspector-package = iv_package.
|
||||||
|
ls_code_inspector-check_variant_name = iv_check_variant_name.
|
||||||
|
|
||||||
|
CREATE OBJECT ls_code_inspector-instance TYPE zcl_abapgit_code_inspector
|
||||||
|
EXPORTING
|
||||||
|
iv_package = iv_package
|
||||||
|
iv_check_variant_name = iv_check_variant_name.
|
||||||
|
|
||||||
|
INSERT ls_code_inspector
|
||||||
|
INTO TABLE mt_code_inspector
|
||||||
|
ASSIGNING <ls_code_inspector>.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ri_code_inspector = <ls_code_inspector>-instance.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_syntax_check.
|
||||||
|
|
||||||
|
DATA: ls_syntax_check LIKE LINE OF mt_syntax_check.
|
||||||
|
FIELD-SYMBOLS: <ls_syntax_check> TYPE zcl_abapgit_factory=>ty_syntax_check.
|
||||||
|
|
||||||
|
READ TABLE mt_syntax_check ASSIGNING <ls_syntax_check>
|
||||||
|
WITH TABLE KEY package = iv_package.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
ls_syntax_check-package = iv_package.
|
||||||
|
|
||||||
|
CREATE OBJECT ls_syntax_check-instance TYPE zcl_abapgit_syntax_check
|
||||||
|
EXPORTING
|
||||||
|
iv_package = iv_package.
|
||||||
|
|
||||||
|
INSERT ls_syntax_check
|
||||||
|
INTO TABLE mt_syntax_check
|
||||||
|
ASSIGNING <ls_syntax_check>.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ri_syntax_check = <ls_syntax_check>-instance.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -13,7 +13,18 @@ CLASS zcl_abapgit_injector DEFINITION
|
||||||
set_sap_package
|
set_sap_package
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_package TYPE devclass
|
iv_package TYPE devclass
|
||||||
ii_sap_package TYPE REF TO zif_abapgit_sap_package.
|
ii_sap_package TYPE REF TO zif_abapgit_sap_package,
|
||||||
|
|
||||||
|
set_code_inspector
|
||||||
|
IMPORTING
|
||||||
|
iv_package TYPE devclass
|
||||||
|
iv_check_variant_name TYPE sci_chkv OPTIONAL
|
||||||
|
ii_code_inspector TYPE REF TO zif_abapgit_code_inspector,
|
||||||
|
|
||||||
|
set_syntax_check
|
||||||
|
IMPORTING
|
||||||
|
iv_package TYPE devclass
|
||||||
|
ii_syntax_check TYPE REF TO zif_abapgit_code_inspector.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -49,4 +60,50 @@ CLASS zcl_abapgit_injector IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD set_code_inspector.
|
||||||
|
|
||||||
|
DATA: ls_code_inspector LIKE LINE OF zcl_abapgit_factory=>mt_code_inspector.
|
||||||
|
FIELD-SYMBOLS: <ls_code_inspector> LIKE LINE OF zcl_abapgit_factory=>mt_code_inspector.
|
||||||
|
|
||||||
|
READ TABLE zcl_abapgit_factory=>mt_code_inspector
|
||||||
|
ASSIGNING <ls_code_inspector>
|
||||||
|
WITH TABLE KEY package = iv_package
|
||||||
|
check_variant_name = iv_check_variant_name.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
|
||||||
|
ls_code_inspector-package = iv_package.
|
||||||
|
ls_code_inspector-check_variant_name = iv_check_variant_name.
|
||||||
|
|
||||||
|
INSERT ls_code_inspector
|
||||||
|
INTO TABLE zcl_abapgit_factory=>mt_code_inspector
|
||||||
|
ASSIGNING <ls_code_inspector>.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
<ls_code_inspector>-instance = ii_code_inspector.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD set_syntax_check.
|
||||||
|
|
||||||
|
DATA: ls_syntax_check LIKE LINE OF zcl_abapgit_factory=>mt_syntax_check.
|
||||||
|
FIELD-SYMBOLS: <ls_syntax_check> LIKE LINE OF zcl_abapgit_factory=>mt_syntax_check.
|
||||||
|
|
||||||
|
READ TABLE zcl_abapgit_factory=>mt_syntax_check
|
||||||
|
ASSIGNING <ls_syntax_check>
|
||||||
|
WITH TABLE KEY package = iv_package.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
|
||||||
|
ls_syntax_check-package = iv_package.
|
||||||
|
|
||||||
|
INSERT ls_syntax_check
|
||||||
|
INTO TABLE zcl_abapgit_factory=>mt_syntax_check
|
||||||
|
ASSIGNING <ls_syntax_check>.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
<ls_syntax_check>-instance = ii_syntax_check.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -76,7 +76,11 @@ CLASS zcl_abapgit_repo_online DEFINITION
|
||||||
VALUE(rt_unnecessary_local_objects) TYPE zif_abapgit_definitions=>ty_tadir_tt
|
VALUE(rt_unnecessary_local_objects) TYPE zif_abapgit_definitions=>ty_tadir_tt
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
METHODS run_code_inspector
|
||||||
|
RETURNING
|
||||||
|
VALUE(rt_list) TYPE scit_alvlist
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
METHODS deserialize
|
METHODS deserialize
|
||||||
REDEFINITION .
|
REDEFINITION .
|
||||||
METHODS get_files_remote
|
METHODS get_files_remote
|
||||||
|
@ -91,7 +95,8 @@ CLASS zcl_abapgit_repo_online DEFINITION
|
||||||
mv_branch TYPE zif_abapgit_definitions=>ty_sha1,
|
mv_branch TYPE zif_abapgit_definitions=>ty_sha1,
|
||||||
mv_initialized TYPE abap_bool,
|
mv_initialized TYPE abap_bool,
|
||||||
mo_branches TYPE REF TO zcl_abapgit_git_branch_list,
|
mo_branches TYPE REF TO zcl_abapgit_git_branch_list,
|
||||||
mt_status TYPE zif_abapgit_definitions=>ty_results_tt.
|
mt_status TYPE zif_abapgit_definitions=>ty_results_tt,
|
||||||
|
mv_code_inspector_successful TYPE abap_bool.
|
||||||
|
|
||||||
METHODS:
|
METHODS:
|
||||||
handle_stage_ignore
|
handle_stage_ignore
|
||||||
|
@ -107,7 +112,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_REPO_ONLINE IMPLEMENTATION.
|
CLASS zcl_abapgit_repo_online IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD actualize_head_branch.
|
METHOD actualize_head_branch.
|
||||||
|
@ -305,6 +310,11 @@ CLASS ZCL_ABAPGIT_REPO_ONLINE IMPLEMENTATION.
|
||||||
|
|
||||||
handle_stage_ignore( io_stage ).
|
handle_stage_ignore( io_stage ).
|
||||||
|
|
||||||
|
IF ms_data-local_settings-block_commit = abap_true
|
||||||
|
AND mv_code_inspector_successful = abap_false.
|
||||||
|
zcx_abapgit_exception=>raise( |A successful code inspection is required| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
zcl_abapgit_git_porcelain=>push( EXPORTING is_comment = is_comment
|
zcl_abapgit_git_porcelain=>push( EXPORTING is_comment = is_comment
|
||||||
io_repo = me
|
io_repo = me
|
||||||
io_stage = io_stage
|
io_stage = io_stage
|
||||||
|
@ -325,6 +335,8 @@ CLASS ZCL_ABAPGIT_REPO_ONLINE IMPLEMENTATION.
|
||||||
set( iv_sha1 = lv_branch ).
|
set( iv_sha1 = lv_branch ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
CLEAR: mv_code_inspector_successful.
|
||||||
|
|
||||||
ENDMETHOD. "push
|
ENDMETHOD. "push
|
||||||
|
|
||||||
|
|
||||||
|
@ -427,6 +439,33 @@ CLASS ZCL_ABAPGIT_REPO_ONLINE IMPLEMENTATION.
|
||||||
ENDMETHOD. " reset_status.
|
ENDMETHOD. " reset_status.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD run_code_inspector.
|
||||||
|
|
||||||
|
DATA: li_code_inspector TYPE REF TO zif_abapgit_code_inspector,
|
||||||
|
lv_check_variant TYPE string.
|
||||||
|
|
||||||
|
lv_check_variant = get_local_settings( )-code_inspector_check_variant.
|
||||||
|
|
||||||
|
IF lv_check_variant IS INITIAL.
|
||||||
|
zcx_abapgit_exception=>raise( |No check variant maintained in repo settings.| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
li_code_inspector = zcl_abapgit_factory=>get_code_inspector(
|
||||||
|
iv_package = get_package( )
|
||||||
|
iv_check_variant_name = |{ lv_check_variant }| ).
|
||||||
|
|
||||||
|
rt_list = li_code_inspector->run( ).
|
||||||
|
|
||||||
|
DELETE rt_list WHERE kind = 'N'.
|
||||||
|
|
||||||
|
READ TABLE rt_list TRANSPORTING NO FIELDS
|
||||||
|
WITH KEY kind = 'E'.
|
||||||
|
|
||||||
|
mv_code_inspector_successful = boolc( sy-subrc = 0 ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD set_branch_name.
|
METHOD set_branch_name.
|
||||||
|
|
||||||
IF ms_data-local_settings-write_protected = abap_true.
|
IF ms_data-local_settings-write_protected = abap_true.
|
||||||
|
|
241
src/zcl_abapgit_repo_online.clas.testclasses.abap
Normal file
241
src/zcl_abapgit_repo_online.clas.testclasses.abap
Normal file
|
@ -0,0 +1,241 @@
|
||||||
|
*"* use this source file for your ABAP unit test classes
|
||||||
|
CLASS ltd_code_inspector DEFINITION FOR TESTING.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
INTERFACES:
|
||||||
|
zif_abapgit_code_inspector PARTIALLY IMPLEMENTED.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
constructor
|
||||||
|
IMPORTING
|
||||||
|
iv_package TYPE devclass.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
DATA mv_package TYPE devclass.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS ltd_code_inspector IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD constructor.
|
||||||
|
|
||||||
|
mv_package = iv_package.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD zif_abapgit_code_inspector~run.
|
||||||
|
|
||||||
|
DATA: ls_list LIKE LINE OF rt_list.
|
||||||
|
|
||||||
|
IF mv_package = '$DUMMY'.
|
||||||
|
|
||||||
|
ls_list-kind = 'E'.
|
||||||
|
INSERT ls_list INTO TABLE rt_list.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS ltcl_run_code_inspection DEFINITION FINAL FOR TESTING
|
||||||
|
DURATION SHORT
|
||||||
|
RISK LEVEL HARMLESS.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
DATA:
|
||||||
|
mo_repo_online TYPE REF TO zcl_abapgit_repo_online,
|
||||||
|
mv_error_text TYPE string,
|
||||||
|
mt_act_list TYPE scit_alvlist.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
exception_when_no_check_var FOR TESTING RAISING cx_static_check,
|
||||||
|
exception_when_error FOR TESTING RAISING cx_static_check,
|
||||||
|
no_exception_when_no_error FOR TESTING RAISING cx_static_check,
|
||||||
|
push_not_possible_if_ci_req FOR TESTING RAISING cx_static_check,
|
||||||
|
|
||||||
|
given_online_repo
|
||||||
|
IMPORTING
|
||||||
|
iv_package TYPE devclass
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception,
|
||||||
|
|
||||||
|
given_check_variant
|
||||||
|
IMPORTING
|
||||||
|
iv_check_variant TYPE string,
|
||||||
|
|
||||||
|
given_mock_code_inspector
|
||||||
|
IMPORTING
|
||||||
|
iv_package TYPE devclass
|
||||||
|
iv_check_variant TYPE sci_chkv ,
|
||||||
|
|
||||||
|
given_block_commit
|
||||||
|
IMPORTING
|
||||||
|
iv_block_commit TYPE abap_bool,
|
||||||
|
|
||||||
|
when_push,
|
||||||
|
|
||||||
|
then_exception_text_is
|
||||||
|
IMPORTING
|
||||||
|
iv_exp_error_text TYPE csequence,
|
||||||
|
|
||||||
|
when_run_code_inspector,
|
||||||
|
|
||||||
|
then_ci_detected_an_error,
|
||||||
|
|
||||||
|
then_no_exception_is_raised.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS zcl_abapgit_repo_online DEFINITION LOCAL FRIENDS ltcl_run_code_inspection.
|
||||||
|
|
||||||
|
CLASS ltcl_run_code_inspection IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD exception_when_no_check_var.
|
||||||
|
|
||||||
|
given_online_repo( iv_package = '$DUMMY' ).
|
||||||
|
given_check_variant( || ).
|
||||||
|
when_run_code_inspector( ).
|
||||||
|
then_exception_text_is( |No check variant maintained in repo settings.| ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD exception_when_error.
|
||||||
|
|
||||||
|
|
||||||
|
given_online_repo( '$DUMMY' ).
|
||||||
|
given_check_variant( |variant| ).
|
||||||
|
given_mock_code_inspector( iv_package = '$DUMMY'
|
||||||
|
iv_check_variant = |variant| ).
|
||||||
|
|
||||||
|
when_run_code_inspector( ).
|
||||||
|
then_ci_detected_an_error( ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD no_exception_when_no_error.
|
||||||
|
|
||||||
|
DATA: lx_error TYPE REF TO zcx_abapgit_exception.
|
||||||
|
|
||||||
|
given_online_repo( '$PACKAGE' ).
|
||||||
|
given_check_variant( |variant| ).
|
||||||
|
given_mock_code_inspector( iv_package = '$PACKAGE'
|
||||||
|
iv_check_variant = |variant| ).
|
||||||
|
when_run_code_inspector( ).
|
||||||
|
then_no_exception_is_raised( ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD given_online_repo.
|
||||||
|
|
||||||
|
DATA: ls_data TYPE zif_abapgit_persistence=>ty_repo.
|
||||||
|
|
||||||
|
ls_data-key = 'dummmy'.
|
||||||
|
ls_data-package = iv_package.
|
||||||
|
|
||||||
|
CREATE OBJECT mo_repo_online
|
||||||
|
EXPORTING
|
||||||
|
is_data = ls_data.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD given_check_variant.
|
||||||
|
mo_repo_online->ms_data-local_settings-code_inspector_check_variant = iv_check_variant.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD given_mock_code_inspector.
|
||||||
|
|
||||||
|
DATA: lo_mock_code_inspector TYPE REF TO ltd_code_inspector.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_mock_code_inspector
|
||||||
|
EXPORTING
|
||||||
|
iv_package = iv_package.
|
||||||
|
|
||||||
|
zcl_abapgit_injector=>set_code_inspector( iv_package = iv_package
|
||||||
|
iv_check_variant_name = iv_check_variant
|
||||||
|
ii_code_inspector = lo_mock_code_inspector ).
|
||||||
|
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD push_not_possible_if_ci_req.
|
||||||
|
|
||||||
|
given_online_repo( '$PACKAGE' ).
|
||||||
|
given_check_variant( |variant| ).
|
||||||
|
given_block_commit( abap_true ).
|
||||||
|
when_push( ).
|
||||||
|
then_exception_text_is( |A successful code inspection is required| ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD given_block_commit.
|
||||||
|
|
||||||
|
mo_repo_online->ms_data-local_settings-block_commit = abap_true.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD when_push.
|
||||||
|
|
||||||
|
DATA: ls_comment TYPE zif_abapgit_definitions=>ty_comment,
|
||||||
|
lo_stage TYPE REF TO zcl_abapgit_stage,
|
||||||
|
lx_error TYPE REF TO zcx_abapgit_exception.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_stage
|
||||||
|
EXPORTING
|
||||||
|
iv_branch_name = 'refs/master'
|
||||||
|
iv_branch_sha1 = 'dummy'.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
mo_repo_online->push( is_comment = ls_comment
|
||||||
|
io_stage = lo_stage ).
|
||||||
|
|
||||||
|
CATCH zcx_abapgit_exception INTO lx_error.
|
||||||
|
mv_error_text = lx_error->get_text( ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD then_exception_text_is.
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = iv_exp_error_text
|
||||||
|
act = mv_error_text ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD when_run_code_inspector.
|
||||||
|
|
||||||
|
DATA: lx_error TYPE REF TO zcx_abapgit_exception.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
mt_act_list = mo_repo_online->run_code_inspector( ).
|
||||||
|
CATCH zcx_abapgit_exception INTO lx_error.
|
||||||
|
mv_error_text = lx_error->get_text( ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD then_ci_detected_an_error.
|
||||||
|
|
||||||
|
READ TABLE mt_act_list TRANSPORTING NO FIELDS
|
||||||
|
WITH KEY kind = 'E'.
|
||||||
|
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD then_no_exception_is_raised.
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_initial( mv_error_text ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
|
@ -13,6 +13,7 @@
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
<FIXPT>X</FIXPT>
|
<FIXPT>X</FIXPT>
|
||||||
<UNICODE>X</UNICODE>
|
<UNICODE>X</UNICODE>
|
||||||
|
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||||
</VSEOCLASS>
|
</VSEOCLASS>
|
||||||
</asx:values>
|
</asx:values>
|
||||||
</asx:abap>
|
</asx:abap>
|
||||||
|
|
|
@ -1,44 +1,12 @@
|
||||||
CLASS zcl_abapgit_syntax_check DEFINITION
|
CLASS zcl_abapgit_syntax_check DEFINITION
|
||||||
PUBLIC
|
PUBLIC
|
||||||
CREATE PUBLIC .
|
INHERITING FROM zcl_abapgit_code_inspector
|
||||||
|
GLOBAL FRIENDS zcl_abapgit_factory.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
|
|
||||||
CLASS-METHODS run
|
|
||||||
IMPORTING
|
|
||||||
!iv_package TYPE devclass
|
|
||||||
RETURNING
|
|
||||||
VALUE(rt_list) TYPE scit_alvlist .
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
METHODS:
|
||||||
|
create_variant REDEFINITION.
|
||||||
|
|
||||||
TYPES:
|
|
||||||
ty_tdevc_tt TYPE STANDARD TABLE OF tdevc WITH DEFAULT KEY .
|
|
||||||
|
|
||||||
CLASS-METHODS find_all_subpackages
|
|
||||||
IMPORTING
|
|
||||||
!iv_package TYPE devclass
|
|
||||||
RETURNING
|
|
||||||
VALUE(rt_packages) TYPE ty_tdevc_tt .
|
|
||||||
CLASS-METHODS create_inspection
|
|
||||||
IMPORTING
|
|
||||||
!io_set TYPE REF TO cl_ci_objectset
|
|
||||||
!io_variant TYPE REF TO cl_ci_checkvariant
|
|
||||||
RETURNING
|
|
||||||
VALUE(ro_inspection) TYPE REF TO cl_ci_inspection .
|
|
||||||
CLASS-METHODS create_objectset
|
|
||||||
IMPORTING
|
|
||||||
!iv_package TYPE devclass
|
|
||||||
RETURNING
|
|
||||||
VALUE(ro_set) TYPE REF TO cl_ci_objectset .
|
|
||||||
CLASS-METHODS create_variant
|
|
||||||
RETURNING
|
|
||||||
VALUE(ro_variant) TYPE REF TO cl_ci_checkvariant .
|
|
||||||
CLASS-METHODS run_inspection
|
|
||||||
IMPORTING
|
|
||||||
!io_inspection TYPE REF TO cl_ci_inspection
|
|
||||||
RETURNING
|
|
||||||
VALUE(rt_list) TYPE scit_alvlist .
|
|
||||||
PRIVATE SECTION.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -46,58 +14,11 @@ ENDCLASS.
|
||||||
CLASS ZCL_ABAPGIT_SYNTAX_CHECK IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_SYNTAX_CHECK IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD create_inspection.
|
|
||||||
|
|
||||||
cl_ci_inspection=>create(
|
|
||||||
EXPORTING
|
|
||||||
p_user = sy-uname
|
|
||||||
p_name = ''
|
|
||||||
RECEIVING
|
|
||||||
p_ref = ro_inspection
|
|
||||||
EXCEPTIONS
|
|
||||||
locked = 1
|
|
||||||
error_in_enqueue = 2
|
|
||||||
not_authorized = 3
|
|
||||||
OTHERS = 4 ).
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
|
|
||||||
ro_inspection->set(
|
|
||||||
p_chkv = io_variant
|
|
||||||
p_objs = io_set ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD create_objectset.
|
|
||||||
|
|
||||||
DATA: lt_objs TYPE scit_objs,
|
|
||||||
lt_packages TYPE ty_tdevc_tt.
|
|
||||||
|
|
||||||
|
|
||||||
lt_packages = find_all_subpackages( iv_package ).
|
|
||||||
IF lines( lt_packages ) = 0.
|
|
||||||
RETURN.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
SELECT object AS objtype obj_name AS objname
|
|
||||||
FROM tadir
|
|
||||||
INTO CORRESPONDING FIELDS OF TABLE lt_objs
|
|
||||||
FOR ALL ENTRIES IN lt_packages
|
|
||||||
WHERE devclass = lt_packages-devclass
|
|
||||||
AND delflag = abap_false
|
|
||||||
AND pgmid = 'R3TR'. "#EC CI_GENBUFF
|
|
||||||
|
|
||||||
ro_set = cl_ci_objectset=>save_from_list( lt_objs ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD create_variant.
|
METHOD create_variant.
|
||||||
|
|
||||||
DATA: lt_variant TYPE sci_tstvar,
|
DATA: lt_variant TYPE sci_tstvar,
|
||||||
ls_variant LIKE LINE OF lt_variant.
|
ls_variant LIKE LINE OF lt_variant.
|
||||||
|
|
||||||
|
|
||||||
cl_ci_checkvariant=>create(
|
cl_ci_checkvariant=>create(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
p_user = sy-uname
|
p_user = sy-uname
|
||||||
|
@ -123,62 +44,4 @@ CLASS ZCL_ABAPGIT_SYNTAX_CHECK IMPLEMENTATION.
|
||||||
ASSERT sy-subrc = 0.
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD find_all_subpackages.
|
|
||||||
|
|
||||||
* TODO, in the future, move this method to the ABAPGIT global package class
|
|
||||||
|
|
||||||
DATA: ls_package LIKE LINE OF rt_packages,
|
|
||||||
lt_found LIKE rt_packages,
|
|
||||||
lt_sub LIKE rt_packages.
|
|
||||||
|
|
||||||
|
|
||||||
SELECT SINGLE * FROM tdevc INTO ls_package WHERE devclass = iv_package.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
APPEND ls_package TO rt_packages.
|
|
||||||
|
|
||||||
SELECT * FROM tdevc APPENDING TABLE lt_sub
|
|
||||||
WHERE parentcl = ls_package-devclass.
|
|
||||||
|
|
||||||
LOOP AT lt_sub INTO ls_package.
|
|
||||||
lt_found = find_all_subpackages( ls_package-devclass ).
|
|
||||||
APPEND LINES OF lt_found TO rt_packages.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD run.
|
|
||||||
|
|
||||||
DATA: lo_set TYPE REF TO cl_ci_objectset,
|
|
||||||
lo_inspection TYPE REF TO cl_ci_inspection,
|
|
||||||
lo_variant TYPE REF TO cl_ci_checkvariant.
|
|
||||||
|
|
||||||
|
|
||||||
lo_set = create_objectset( iv_package ).
|
|
||||||
lo_variant = create_variant( ).
|
|
||||||
|
|
||||||
lo_inspection = create_inspection(
|
|
||||||
io_set = lo_set
|
|
||||||
io_variant = lo_variant ).
|
|
||||||
|
|
||||||
rt_list = run_inspection( lo_inspection ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD run_inspection.
|
|
||||||
|
|
||||||
io_inspection->run(
|
|
||||||
EXCEPTIONS
|
|
||||||
invalid_check_version = 1
|
|
||||||
OTHERS = 2 ).
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
|
|
||||||
io_inspection->plain_list(
|
|
||||||
IMPORTING
|
|
||||||
p_list = rt_list ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
15
src/zif_abapgit_code_inspector.intf.abap
Normal file
15
src/zif_abapgit_code_inspector.intf.abap
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
INTERFACE zif_abapgit_code_inspector
|
||||||
|
PUBLIC.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
run
|
||||||
|
RETURNING
|
||||||
|
VALUE(rt_list) TYPE scit_alvlist
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception,
|
||||||
|
|
||||||
|
get_inspection
|
||||||
|
RETURNING
|
||||||
|
VALUE(ro_inspection) TYPE REF TO cl_ci_inspection.
|
||||||
|
|
||||||
|
ENDINTERFACE.
|
16
src/zif_abapgit_code_inspector.intf.xml
Normal file
16
src/zif_abapgit_code_inspector.intf.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOINTERF>
|
||||||
|
<CLSNAME>ZIF_ABAPGIT_CODE_INSPECTOR</CLSNAME>
|
||||||
|
<VERSION>1</VERSION>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abapGit Code Inspector</DESCRIPT>
|
||||||
|
<EXPOSURE>2</EXPOSURE>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOINTERF>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -395,6 +395,7 @@ INTERFACE zif_abapgit_definitions PUBLIC.
|
||||||
repo_toggle_fav TYPE string VALUE 'repo_toggle_fav',
|
repo_toggle_fav TYPE string VALUE 'repo_toggle_fav',
|
||||||
repo_transport_to_branch TYPE string VALUE 'repo_transport_to_branch',
|
repo_transport_to_branch TYPE string VALUE 'repo_transport_to_branch',
|
||||||
repo_syntax_check TYPE string VALUE 'repo_syntax_check',
|
repo_syntax_check TYPE string VALUE 'repo_syntax_check',
|
||||||
|
repo_code_inspector TYPE string VALUE 'repo_code_inspector',
|
||||||
|
|
||||||
abapgit_home TYPE string VALUE 'abapgit_home',
|
abapgit_home TYPE string VALUE 'abapgit_home',
|
||||||
abapgit_wiki TYPE string VALUE 'abapgit_wiki',
|
abapgit_wiki TYPE string VALUE 'abapgit_wiki',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user