mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +08:00
Popups Branch Stage
This commit is contained in:
parent
7b018144a6
commit
e117d95da3
|
@ -140,6 +140,13 @@ TYPES: BEGIN OF ty_sotr,
|
||||||
|
|
||||||
TYPES: ty_sotr_tt TYPE STANDARD TABLE OF ty_sotr WITH DEFAULT KEY.
|
TYPES: ty_sotr_tt TYPE STANDARD TABLE OF ty_sotr WITH DEFAULT KEY.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_branch_pull_request,
|
||||||
|
branch_name TYPE string,
|
||||||
|
commit_text TYPE string,
|
||||||
|
pull_request_title TYPE string,
|
||||||
|
END OF ty_branch_pull_request.
|
||||||
|
|
||||||
CONSTANTS: BEGIN OF gc_state, " https://git-scm.com/docs/git-status
|
CONSTANTS: BEGIN OF gc_state, " https://git-scm.com/docs/git-status
|
||||||
unchanged TYPE char1 VALUE '',
|
unchanged TYPE char1 VALUE '',
|
||||||
added TYPE char1 VALUE 'A',
|
added TYPE char1 VALUE 'A',
|
||||||
|
|
|
@ -137,6 +137,14 @@ FORM package_popup TABLES tt_fields TYPE ty_sval_tt
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDFORM. "package_popup
|
ENDFORM. "package_popup
|
||||||
|
|
||||||
|
FORM pull_request_popup TABLES tt_fields TYPE ty_sval_tt
|
||||||
|
USING pv_code TYPE clike
|
||||||
|
CHANGING cs_error TYPE svale
|
||||||
|
cv_show_popup TYPE c
|
||||||
|
RAISING lcx_exception ##called ##needed.
|
||||||
|
* called dynamically from function module POPUP_GET_VALUES_USER_BUTTONS
|
||||||
|
ENDFORM.
|
||||||
|
|
||||||
FORM output.
|
FORM output.
|
||||||
DATA: lt_ucomm TYPE TABLE OF sy-ucomm.
|
DATA: lt_ucomm TYPE TABLE OF sy-ucomm.
|
||||||
PERFORM set_pf_status IN PROGRAM rsdbrunt IF FOUND.
|
PERFORM set_pf_status IN PROGRAM rsdbrunt IF FOUND.
|
||||||
|
|
|
@ -69,7 +69,8 @@ CLASS lcl_gui_router IMPLEMENTATION.
|
||||||
ls_db TYPE lcl_persistence_db=>ty_content,
|
ls_db TYPE lcl_persistence_db=>ty_content,
|
||||||
ls_item TYPE ty_item,
|
ls_item TYPE ty_item,
|
||||||
lt_transport_headers TYPE trwbo_request_headers,
|
lt_transport_headers TYPE trwbo_request_headers,
|
||||||
lt_tadir TYPE scts_tadir.
|
lt_tadir TYPE scts_tadir,
|
||||||
|
ls_branch_pull_request TYPE ty_branch_pull_request.
|
||||||
|
|
||||||
lv_key = iv_getdata. " TODO refactor
|
lv_key = iv_getdata. " TODO refactor
|
||||||
lv_url = iv_getdata. " TODO refactor
|
lv_url = iv_getdata. " TODO refactor
|
||||||
|
@ -176,7 +177,15 @@ CLASS lcl_gui_router IMPLEMENTATION.
|
||||||
WHEN gc_action-repo_transport_to_pull_reqst.
|
WHEN gc_action-repo_transport_to_pull_reqst.
|
||||||
lt_transport_headers = lcl_transport_popup=>show( ).
|
lt_transport_headers = lcl_transport_popup=>show( ).
|
||||||
lt_tadir = lcl_transport=>to_tadir( lt_transport_headers ).
|
lt_tadir = lcl_transport=>to_tadir( lt_transport_headers ).
|
||||||
"lcl_services_repo=>transport_to_pull_request( lv_key ).
|
ls_branch_pull_request = lcl_popups=>popup_to_create_pull_request(
|
||||||
|
it_transport_headers = lt_transport_headers
|
||||||
|
it_transport_objects = lt_tadir
|
||||||
|
).
|
||||||
|
lcl_services_repo=>transport_to_pull_request(
|
||||||
|
iv_repository_key = lv_key
|
||||||
|
is_branch_pull_request = ls_branch_pull_request
|
||||||
|
it_transport_objects = lt_tadir
|
||||||
|
).
|
||||||
ev_state = gc_event_state-re_render.
|
ev_state = gc_event_state-re_render.
|
||||||
|
|
||||||
" ZIP services actions
|
" ZIP services actions
|
||||||
|
|
|
@ -68,7 +68,13 @@ CLASS lcl_popups DEFINITION FINAL.
|
||||||
popup_to_create_package
|
popup_to_create_package
|
||||||
EXPORTING es_package_data TYPE scompkdtln
|
EXPORTING es_package_data TYPE scompkdtln
|
||||||
ev_create TYPE boolean
|
ev_create TYPE boolean
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception,
|
||||||
|
popup_to_create_pull_request
|
||||||
|
IMPORTING it_transport_headers TYPE trwbo_request_headers
|
||||||
|
it_transport_objects TYPE scts_tadir
|
||||||
|
RETURNING VALUE(rs_branch_pull_request) TYPE ty_branch_pull_request
|
||||||
|
RAISING lcx_exception
|
||||||
|
lcx_cancel.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
CLASS lcl_popups IMPLEMENTATION.
|
CLASS lcl_popups IMPLEMENTATION.
|
||||||
|
@ -544,4 +550,72 @@ CLASS lcl_popups IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDMETHOD. " popup_to_create_package
|
ENDMETHOD. " popup_to_create_package
|
||||||
|
|
||||||
|
METHOD popup_to_create_pull_request.
|
||||||
|
DATA: lv_returncode TYPE c,
|
||||||
|
lt_fields TYPE TABLE OF sval,
|
||||||
|
lv_icon_ok TYPE icon-name,
|
||||||
|
lv_button_pull_request TYPE svalbutton-buttontext,
|
||||||
|
lv_icon_pull_request TYPE icon-name,
|
||||||
|
lv_transports_as_text TYPE string,
|
||||||
|
ls_transport_header LIKE LINE OF it_transport_headers.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields.
|
||||||
|
|
||||||
|
lv_transports_as_text = 'Transport(s)'.
|
||||||
|
LOOP AT it_transport_headers INTO ls_transport_header.
|
||||||
|
CONCATENATE lv_transports_as_text '_' ls_transport_header-trkorr INTO lv_transports_as_text.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
" TAB FLD LABEL DEF ATTR
|
||||||
|
_add_dialog_fld 'TEXTL' 'LINE' 'Branch name' lv_transports_as_text ''.
|
||||||
|
_add_dialog_fld 'ABAPTXT255' 'LINE' 'Commit text' lv_transports_as_text ''.
|
||||||
|
_add_dialog_fld 'SAPPARAM' 'SNAME' 'Pull request' lv_transports_as_text ''.
|
||||||
|
"_add_dialog_fld 'ABAPTXT255' 'LINE' 'TODO: Tadir Items?' '' ''.
|
||||||
|
|
||||||
|
lv_icon_ok = icon_okay.
|
||||||
|
lv_button_pull_request = 'Create pull request' ##NO_TEXT.
|
||||||
|
lv_icon_pull_request = icon_import_all_requests.
|
||||||
|
|
||||||
|
CALL FUNCTION 'POPUP_GET_VALUES_USER_BUTTONS'
|
||||||
|
EXPORTING
|
||||||
|
popup_title = 'Transport to Pull Request'
|
||||||
|
programname = sy-repid
|
||||||
|
formname = 'PULL_REQUEST_POPUP'
|
||||||
|
ok_pushbuttontext = ''
|
||||||
|
icon_ok_push = ''
|
||||||
|
first_pushbutton = lv_button_pull_request
|
||||||
|
icon_button_1 = lv_icon_pull_request
|
||||||
|
second_pushbutton = ''
|
||||||
|
icon_button_2 = ''
|
||||||
|
IMPORTING
|
||||||
|
returncode = lv_returncode
|
||||||
|
TABLES
|
||||||
|
fields = lt_fields
|
||||||
|
EXCEPTIONS
|
||||||
|
error_in_fields = 1
|
||||||
|
OTHERS = 2.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
lcx_exception=>raise( 'Error from POPUP_GET_VALUES' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
IF lv_returncode = 'A'.
|
||||||
|
RAISE exception type lcx_cancel.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
|
||||||
|
READ TABLE lt_fields INDEX 1 ASSIGNING <ls_field>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
rs_branch_pull_request-branch_name = <ls_field>-value.
|
||||||
|
|
||||||
|
READ TABLE lt_fields INDEX 2 ASSIGNING <ls_field>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
rs_branch_pull_request-commit_text = <ls_field>-value.
|
||||||
|
|
||||||
|
READ TABLE lt_fields INDEX 3 ASSIGNING <ls_field>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
rs_branch_pull_request-pull_request_title = <ls_field>-value.
|
||||||
|
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -47,6 +47,12 @@ CLASS lcl_services_repo DEFINITION FINAL.
|
||||||
IMPORTING iv_package TYPE devclass
|
IMPORTING iv_package TYPE devclass
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS transport_to_pull_request
|
||||||
|
IMPORTING
|
||||||
|
iv_repository_key TYPE lcl_persistence_db=>ty_value
|
||||||
|
is_branch_pull_request TYPE ty_branch_pull_request
|
||||||
|
it_transport_objects TYPE scts_tadir.
|
||||||
|
|
||||||
ENDCLASS. "lcl_services_repo
|
ENDCLASS. "lcl_services_repo
|
||||||
|
|
||||||
CLASS lcl_services_repo IMPLEMENTATION.
|
CLASS lcl_services_repo IMPLEMENTATION.
|
||||||
|
@ -314,4 +320,56 @@ CLASS lcl_services_repo IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. " open_se80.
|
ENDMETHOD. " open_se80.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD transport_to_pull_request.
|
||||||
|
DATA:
|
||||||
|
lo_repo TYPE REF TO lcl_repo_online,
|
||||||
|
ls_transport_object LIKE LINE OF it_transport_objects,
|
||||||
|
lt_zip TYPE ty_files_item_tt,
|
||||||
|
ls_zip like line of lt_zip,
|
||||||
|
lv_branch_name type string.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
break copat.
|
||||||
|
lo_repo ?= lcl_app=>repo_srv( )->get( iv_repository_key ).
|
||||||
|
|
||||||
|
lv_branch_name = lcl_git_branch_list=>complete_heads_branch_name(
|
||||||
|
lcl_git_branch_list=>normalize_branch_name( is_branch_pull_request-branch_name ) ).
|
||||||
|
|
||||||
|
ASSERT lv_branch_name CP 'refs/heads/+*'.
|
||||||
|
|
||||||
|
lcl_git_porcelain=>create_branch(
|
||||||
|
io_repo = lo_repo
|
||||||
|
iv_name = lv_branch_name
|
||||||
|
iv_from = lo_repo->get_sha1_local( ) ).
|
||||||
|
|
||||||
|
" automatically switch to new branch
|
||||||
|
lo_repo->set_branch_name( lv_branch_name ).
|
||||||
|
"lo_repo->
|
||||||
|
|
||||||
|
DATA lo_stage TYPE REF TO lcl_stage.
|
||||||
|
CREATE OBJECT lo_stage
|
||||||
|
EXPORTING
|
||||||
|
iv_branch_name = lv_branch_name
|
||||||
|
iv_branch_sha1 = lo_repo->get_sha1_local( ).
|
||||||
|
|
||||||
|
lo_repo->refresh( ).
|
||||||
|
lt_zip = lo_repo->get_files_local( it_filter = it_transport_objects ).
|
||||||
|
|
||||||
|
|
||||||
|
LOOP AT lt_zip INTO ls_zip.
|
||||||
|
lo_stage->add(
|
||||||
|
iv_path = ls_zip-file-path
|
||||||
|
iv_filename = ls_zip-file-filename
|
||||||
|
iv_data = ls_zip-file-data
|
||||||
|
).
|
||||||
|
endloop.
|
||||||
|
* CATCH lcx_exception. "
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"lo_repo->push
|
||||||
|
endmethod.
|
||||||
|
|
||||||
ENDCLASS. "lcl_services_repo
|
ENDCLASS. "lcl_services_repo
|
||||||
|
|
|
@ -81,13 +81,12 @@ CLASS lcl_transport IMPLEMENTATION.
|
||||||
lt_trkorr TYPE trwbo_request_headers.
|
lt_trkorr TYPE trwbo_request_headers.
|
||||||
|
|
||||||
|
|
||||||
lt_trkorr = lcl_transport_popup=>show( ).
|
IF lines( it_transport_headers ) = 0.
|
||||||
IF lines( lt_trkorr ) = 0.
|
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
lt_requests = read_requests( lt_trkorr ).
|
lt_requests = read_requests( it_transport_headers ).
|
||||||
lt_tadir = resolve( lt_requests ).
|
rt_tadir = resolve( lt_requests ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD find_top_package.
|
METHOD find_top_package.
|
||||||
|
@ -214,7 +213,7 @@ CLASS lcl_transport_popup IMPLEMENTATION.
|
||||||
iv_username_pattern = sy-uname
|
iv_username_pattern = sy-uname
|
||||||
iv_via_selscreen = 'X'
|
iv_via_selscreen = 'X'
|
||||||
iv_complete_projects = ''
|
iv_complete_projects = ''
|
||||||
* is_popup =
|
"is_popup = ''
|
||||||
iv_title = 'abapGit: Transport Request Selection'
|
iv_title = 'abapGit: Transport Request Selection'
|
||||||
IMPORTING
|
IMPORTING
|
||||||
et_requests = rt_trkorr
|
et_requests = rt_trkorr
|
||||||
|
@ -226,5 +225,9 @@ CLASS lcl_transport_popup IMPLEMENTATION.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
break copat.
|
||||||
|
"LEAVE TO SCREEN 1001.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user