anchor.diff:                                           iv_password      TYPE string
                                            iv_2fa_token     TYPE string
                                  RETURNING VALUE(ri_client) TYPE REF TO if_http_client
  -                               RAISING   lcx_2fa_auth_failed.
  +                               RAISING   lcx_2fa_auth_failed
  +                                         lcx_2fa_communication_error.
   ENDCLASS.
   
   CLASS lcl_2fa_github_authenticator IMPLEMENTATION.
     METHOD constructor.
  -    super->constructor( 'https?:\/\/(www\.)?github.com.*$' ).
  +    super->constructor( '^https?://(www\.)?github.com.*$' ).
     ENDMETHOD.
   
     METHOD authenticate.
  
positive.code:     is_2fa_required IMPORTING iv_url             TYPE string
                                iv_username        TYPE string
                                iv_password        TYPE string
                      RETURNING VALUE(rv_required) TYPE abap_bool,
      "! Delete all previously created access tokens for abapGit
      "! @parameter iv_url | Repository url
      "! @parameter iv_username | Username
  
negative.code:       "! <p>
        "! <em>sy-msg...</em> must be set right before calling!
        "! </p>
        raise_comm_error_from_sy RAISING lcx_2fa_communication_error.
    PRIVATE SECTION.
      DATA:
        mo_url_regex TYPE REF TO cl_abap_regex.
  