git transport: fix check report status for GitLab and Bitbucket (#4796)

This commit is contained in:
Christian Günter 2021-05-28 06:14:28 +02:00 committed by GitHub
parent f97320f1dc
commit 9c8e566e58
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 3 deletions

View File

@ -215,9 +215,9 @@ CLASS zcl_abapgit_git_transport IMPLEMENTATION.
" Otherwise return full error message " Otherwise return full error message
lv_error = lv_commnd_text. lv_error = lv_commnd_text.
ENDIF. ENDIF.
ELSEIF strlen( lv_string ) < 8. ELSEIF strlen( lv_string ) < 4.
lv_error = 'Missing flush-pkt'. lv_error = 'Missing flush-pkt'.
ELSEIF lv_string(8) <> '00000000'. ELSEIF lv_string <> '0000' AND lv_string <> '00000000'.
" We update only one reference at a time so this should be the end " We update only one reference at a time so this should be the end
lv_error = 'Unexpected end of status (flush-pkt)'. lv_error = 'Unexpected end of status (flush-pkt)'.
ENDIF. ENDIF.

View File

@ -8,7 +8,8 @@ CLASS ltcl_git_transport DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHO
all_ok FOR TESTING, all_ok FOR TESTING,
unpack_error FOR TESTING, unpack_error FOR TESTING,
command_error FOR TESTING, command_error FOR TESTING,
flush_error FOR TESTING. flush_error FOR TESTING,
gitlab_flush_all_ok FOR TESTING.
ENDCLASS. ENDCLASS.
@ -99,4 +100,25 @@ CLASS ltcl_git_transport IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD gitlab_flush_all_ok.
" GitLab and Bitbucket use 0000 opposed to GitHub which uses 00000000
DATA lv_status TYPE string.
DATA lx_error TYPE REF TO zcx_abapgit_exception.
lv_status = `000eunpack ok` &&
zif_abapgit_definitions=>c_newline &&
`0019ok refs/heads/master` &&
zif_abapgit_definitions=>c_newline &&
`0000`.
TRY.
zcl_abapgit_git_transport=>check_report_status( lv_status ).
CATCH zcx_abapgit_exception.
cl_abap_unit_assert=>fail( ).
ENDTRY.
ENDMETHOD.
ENDCLASS. ENDCLASS.