From 9c8e566e5885487354510f7ae30d9e2fe1d80b80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Fri, 28 May 2021 06:14:28 +0200 Subject: [PATCH] git transport: fix check report status for GitLab and Bitbucket (#4796) --- src/git/zcl_abapgit_git_transport.clas.abap | 4 ++-- ...bapgit_git_transport.clas.testclasses.abap | 24 ++++++++++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/git/zcl_abapgit_git_transport.clas.abap b/src/git/zcl_abapgit_git_transport.clas.abap index 13d8cd741..ff491a523 100644 --- a/src/git/zcl_abapgit_git_transport.clas.abap +++ b/src/git/zcl_abapgit_git_transport.clas.abap @@ -215,9 +215,9 @@ CLASS zcl_abapgit_git_transport IMPLEMENTATION. " Otherwise return full error message lv_error = lv_commnd_text. ENDIF. - ELSEIF strlen( lv_string ) < 8. + ELSEIF strlen( lv_string ) < 4. 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 lv_error = 'Unexpected end of status (flush-pkt)'. ENDIF. diff --git a/src/git/zcl_abapgit_git_transport.clas.testclasses.abap b/src/git/zcl_abapgit_git_transport.clas.testclasses.abap index 90fd0291a..6611eacd3 100644 --- a/src/git/zcl_abapgit_git_transport.clas.testclasses.abap +++ b/src/git/zcl_abapgit_git_transport.clas.testclasses.abap @@ -8,7 +8,8 @@ CLASS ltcl_git_transport DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHO all_ok FOR TESTING, unpack_error FOR TESTING, command_error FOR TESTING, - flush_error FOR TESTING. + flush_error FOR TESTING, + gitlab_flush_all_ok FOR TESTING. ENDCLASS. @@ -99,4 +100,25 @@ CLASS ltcl_git_transport IMPLEMENTATION. 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.