diff --git a/src/api/app/components/request_decision_component.html.haml b/src/api/app/components/request_decision_component.html.haml index a9ba9bf1d48..829ea259d54 100644 --- a/src/api/app/components/request_decision_component.html.haml +++ b/src/api/app/components/request_decision_component.html.haml @@ -1,33 +1,97 @@ .request-decision - - if @show_hint - .alert.alert-warning.mb-1 - You are a project maintainer but not a package maintainer. This package - has #{pluralize(@package_maintainers.size, 'package maintainer')} assigned. Please keep - in mind that also package maintainers would like to review this request. - = form_tag({ action: 'changerequest' }, id: 'request_handle_form') do + = form_tag({ action: 'changerequest' }, id: 'request_handle_form', class: 'write-and-preview', + data: { preview_message_url: preview_comments_path, message_body_param: 'comment[body]' }) do = hidden_field_tag(:number, @bs_request.number) - = text_area_tag(:reason, nil, placeholder: 'Please explain your decision...', rows: 4, class: 'w-100 form-control mb-2') - - if single_action_request && @is_target_maintainer && @bs_request.state.in?([:new, :review]) - - if show_add_submitter_as_maintainer_option? - .form-check.mb-2 - = check_box_tag('add_submitter_as_maintainer_0', "#{@action.target_project}_#_#{@action.target_package}", false, class: 'form-check-input') - %label.form-check-label{ for: 'add_submitter_as_maintainer_0' } - Add #{link_to(@bs_request.creator, user_path(@bs_request.creator))} as maintainer for - #{helpers.project_or_package_link(project: @action.target_project, package: @action.target_package, short: true)} - - if @action.type == 'submit' - - @action.forward.each_with_index do |forward, index| - .form-check.mb-2 - = check_box_tag("forward-#{index}", "#{forward[:project]}_#_#{forward[:package]}", true, class: 'form-check-input') - %label.form-check-label{ for: "forward-#{index}" } - Forward submit request to - #{helpers.project_or_package_link(project: forward[:project], package: forward[:package], short: true)} - - if policy(@bs_request).revoke_request? - = submit_tag 'Revoke request', name: 'revoked', class: 'btn btn-danger me-2' - - if policy(@bs_request).reopen_request? - = submit_tag 'Reopen request', name: 'new', class: 'btn btn-warning me-2' - - if policy(@bs_request).accept_request? - - if policy(@bs_request).decline_request? - = submit_tag('Decline request', name: 'declined', title: 'Decline the request, as the author of the request you can reopen it again.', - class: 'btn btn-danger me-2') - = submit_tag('Accept request', name: 'accepted', title: 'Accept the request, this will apply the changes on the target.', - class: 'btn btn-primary', data: confirmation) + .px-3.py-1.border.border-1.pb-2{ 'data-canned-controller': '' } + - if policy(Comment.new(commentable: @bs_request)).locked? + .alert.alert-warning.mt-2{ role: 'alert' } + Commenting on this is locked. + - if CommentLockPolicy.new(User.session, @bs_request).create? + = helpers.comment_lock_alert(@bs_request) + .card + %ul.card-header.nav.nav-tabs.px-3.pt-2.pb-0.disable-link-generation{ role: 'tablist' } + %li.nav-item + = link_to('Write', "#write_new_comment", class: 'nav-link active', data: { 'bs-toggle': 'tab' }, + role: 'tab', aria: { controls: 'write-comment-tab', selected: 'true'}) + %li.nav-item + = link_to('Preview', '#preview_new_comment', class: 'nav-link preview-message-tab', data: { 'bs-toggle': 'tab' }, + role: 'tab', aria: { controls: 'preview-message-tab', selected: 'false' }) + .tab-content.px-3 + .tab-pane.fade.show.active.my-3{ id: 'write_new_comment', role: 'tabpanel', + 'aria-labelledby': 'write-comment-tab', 'data-canned-controller': '' } + - if Flipper.enabled?(:content_moderation, User.session) + .d-flex.justify-content-end + = render CannedResponsesDropdownComponent.new(User.session.canned_responses.where(decision_type: nil).order(:title)) + = text_area_tag(:reason, nil, + placeholder: 'Write your comment or decision...(markdown is only supported for comments, not for decisions)', + rows: 4, class: 'w-100 form-control mb-2 message-field') + .tab-pane.fade{ id: 'preview_new_comment', role: 'tabpanel', 'aria-labelledby': 'preview-message-tab' } + .comment-preview.message-preview.border-bottom.border-gray-300.my-3 + .mt-2 + - if policy(Comment.new(commentable:@bs_request)).create? + = submit_tag 'Add comment', class: 'btn btn-primary me-2', data: { disable_with: 'Creating comment...' }, name: 'commented' + - if policy(@bs_request).revoke_request? + = submit_tag 'Revoke request', name: 'revoked', class: 'btn btn-danger me-2', data: other_decision_confirmation('revoke') + - if policy(@bs_request).decline_request? + = submit_tag('Decline request', name: 'declined', class: 'btn btn-danger me-2', data: other_decision_confirmation('decline'), + title: 'Decline the request, as the author of the request you can reopen it again.') + - if policy(@bs_request).accept_request? + -# Hidden checkbox input to flag make_maintainer option + - if accept_with_options_allowed? && show_add_submitter_as_maintainer_option? + .form-check.mb-2.mt-2.d-none + = check_box_tag('add_submitter_as_maintainer_0', "#{@action.target_project}_#_#{@action.target_package}", + false, class: 'form-check-input') + -# Accept buttons + %span.dropdown.me-2 + = button_tag('Accept', type: 'button', role: 'button', id: 'decision-buttons-group', class: 'btn btn-secondary dropdown-toggle', + data: { 'bs-toggle': 'dropdown'}, aria: { 'haspopup': 'true', 'expanded': 'false' }) + .dropdown-menu{ aria: { labelledby: 'decision-buttons-group' } } + -# Simple Accept request submit + = submit_tag('Accept request', name: 'accepted', class: 'btn-link dropdown-item', data: confirmation, + title: 'Accept the request, this will apply the changes on the target.') + -# Accept and make maintainer submit + - if accept_with_options_allowed? && show_add_submitter_as_maintainer_option? + = submit_tag("Accept and make #{@bs_request.creator} maintainer of #{make_maintainer_of}", + name: 'accepted', + class: 'btn-link dropdown-item', data: confirmation, + title: 'Accept the request. this will apply the changes on the target.', + id: 'accept-and-make-maintainer') + -# Accept and forward buttons + - if forward_allowed? + %span.dropdown.me-2 + = button_tag('Accept and Forward', type: 'button', role: 'button', id: 'decision-forward-buttons-group', + class: 'btn btn-secondary dropdown-toggle', + data: { 'bs-toggle': 'dropdown'}, aria: { 'haspopup': 'true', 'expanded': 'false' }) + .dropdown-menu{ aria: { labelledby: 'decision-forward-buttons-group' } } + - @action.forward.each_with_index do |forward, index| + .form-check.m-2 + = check_box_tag("forward-#{index}", "#{forward[:project]}_#_#{forward[:package]}", true, + class: 'form-check-input forward-check-inputs') + %label.form-check-label{ for: "forward-#{index}" } + Forward submit request to + #{helpers.project_or_package_link(project: forward[:project], package: forward[:package], short: true)} + %hr.dropdown-divider + -# Accept and forward submit + = submit_tag('Accept and forward request to the selected projects ', name: 'accepted', class: 'btn-link dropdown-item', + data: confirmation, title: 'Accept the request. this will apply the changes on the target.', + id: 'accept-and-forward') + -# Accept and make maintainer and forward submit + - if show_add_submitter_as_maintainer_option? + = submit_tag("Accept and make #{@bs_request.creator} maintainer of #{make_maintainer_of} and forward request to the selected projects", + name: 'accepted', class: 'btn-link dropdown-item', data: confirmation, + title: 'Accept the request. this will apply the changes on the target.', + id: 'accept-and-make-maintainer-and-forward') + + - if policy(@bs_request).reopen_request? + = submit_tag 'Reopen request', name: 'new', class: 'btn btn-warning me-2', data: other_decision_confirmation('reopen') + +:javascript + attachPreviewMessageOnCommentBoxes(); + + // Check the proper checkbox behind the scene on different type of accept submit + $('#accept-and-make-maintainer').on('click', function(){ + $('input[name=add_submitter_as_maintainer_0]').prop('checked', 'checked'); + }); + $('#accept-and-make-maintainer-and-forward').on('click', function(){ + $('input[name=add_submitter_as_maintainer_0]').prop('checked', 'checked'); + }); diff --git a/src/api/app/components/request_decision_component.rb b/src/api/app/components/request_decision_component.rb index 0e07ba87e8b..4409852d7e5 100644 --- a/src/api/app/components/request_decision_component.rb +++ b/src/api/app/components/request_decision_component.rb @@ -6,7 +6,13 @@ def initialize(bs_request:, action:, is_target_maintainer:, package_maintainers: @is_target_maintainer = is_target_maintainer @action = action @package_maintainers = package_maintainers - @show_hint = render? && show_project_maintainer_hint + + return unless render? && show_project_maintainer_hint + + @package_maintainers_hint = "Note\n" \ + 'You are a project maintainer but not a package maintainer. This package ' \ + "has #{pluralize(@package_maintainers.size, 'package maintainer')} assigned. Please keep " \ + 'in mind that also package maintainers would like to review this request.'.freeze end def render? @@ -19,13 +25,29 @@ def single_action_request def confirmation if @bs_request.state == :review - { confirm: 'Do you really want to approve this request, despite of open review requests?' } + { confirm: "Do you really want to approve this request, despite of open review requests?\n\n#{@package_maintainers_hint}" } else {} end end + def other_decision_confirmation(decision_text) + { confirm: "Do you really want to #{decision_text} this request?\n\n#{@package_maintainers_hint}" } + end + def show_add_submitter_as_maintainer_option? @action.type == 'submit' && !@action.creator_is_target_maintainer end + + def accept_with_options_allowed? + single_action_request && @is_target_maintainer && @bs_request.state.in?(%i[new review]) + end + + def forward_allowed? + @action.type == 'submit' && @action.forward.any? + end + + def make_maintainer_of + @action.target_project + ("/#{@action.target_package}" if @action.target_package) + end end diff --git a/src/api/app/controllers/webui/comments_controller.rb b/src/api/app/controllers/webui/comments_controller.rb index 27998fb581f..6d09f891d0b 100644 --- a/src/api/app/controllers/webui/comments_controller.rb +++ b/src/api/app/controllers/webui/comments_controller.rb @@ -1,4 +1,6 @@ class Webui::CommentsController < Webui::WebuiController + include BuildNewComment + before_action :require_login before_action :set_commented, only: :create before_action :set_comment, only: %i[moderate history] @@ -6,9 +8,7 @@ class Webui::CommentsController < Webui::WebuiController def create return commented_unavailable if @commented.nil? - @comment = @commented.comments.new(permitted_params) - authorize @comment, :create? - User.session.comments << @comment + build_new_comment(@commented, permitted_params) @commentable = @comment.commentable status = if @comment.save diff --git a/src/api/app/controllers/webui/request_controller.rb b/src/api/app/controllers/webui/request_controller.rb index a4520a8d78a..d68c298c6bc 100644 --- a/src/api/app/controllers/webui/request_controller.rb +++ b/src/api/app/controllers/webui/request_controller.rb @@ -1,6 +1,7 @@ class Webui::RequestController < Webui::WebuiController include Webui::NotificationsHandler include Webui::RequestsFilter + include BuildNewComment ALLOWED_INVOLVEMENTS = %w[all incoming outgoing].freeze @@ -204,9 +205,14 @@ def sourcediff end def changerequest - changestate = (%w[accepted declined revoked new] & params.keys).last + changestate = (%w[accepted commented declined revoked new] & params.keys).last - if change_state(changestate, params) + if changestate == 'commented' + + build_new_comment(BsRequest.find_by(number: params[:number]), + body: params[:reason]) + + elsif change_state(changestate, params) # TODO: Make this work for each submit action individually if params[:add_submitter_as_maintainer_0] # rubocop:disable Naming/VariableNumber if changestate == 'accepted' diff --git a/src/api/app/models/concerns/build_new_comment.rb b/src/api/app/models/concerns/build_new_comment.rb new file mode 100644 index 00000000000..7a1025f63e6 --- /dev/null +++ b/src/api/app/models/concerns/build_new_comment.rb @@ -0,0 +1,9 @@ +module BuildNewComment + extend ActiveSupport::Concern + + def build_new_comment(commented, permitted_params) + @comment = commented.comments.new(permitted_params) + authorize @comment, :create? + User.session.comments << @comment + end +end diff --git a/src/api/app/views/webui/request/beta_show.html.haml b/src/api/app/views/webui/request/beta_show.html.haml index 8d984f9f300..7f1fa6025ba 100644 --- a/src/api/app/views/webui/request/beta_show.html.haml +++ b/src/api/app/views/webui/request/beta_show.html.haml @@ -78,8 +78,9 @@ history_elements: @history_elements, request_reviews_for_non_staging_projects: @request_reviews) - .comment_new - = render partial: 'webui/comment/new', locals: { commentable: @bs_request } + - if !policy(@bs_request).revoke_request? && !policy(@bs_request).reopen_request? && !policy(@bs_request).accept_request? + .comment_new + = render partial: 'webui/comment/new', locals: { commentable: @bs_request } %hr - if @bs_request.accept_at.present? diff --git a/src/api/spec/cassettes/Comments_with_diff/reply_comment/when_under_the_beta_program/displays_the_changes_after_adding_a_new_comment.yml b/src/api/spec/cassettes/Comments_with_diff/reply_comment/when_under_the_beta_program/displays_the_changes_after_adding_a_new_comment.yml index c48bec736b4..6061cf78736 100644 --- a/src/api/spec/cassettes/Comments_with_diff/reply_comment/when_under_the_beta_program/displays_the_changes_after_adding_a_new_comment.yml +++ b/src/api/spec/cassettes/Comments_with_diff/reply_comment/when_under_the_beta_program/displays_the_changes_after_adding_a_new_comment.yml @@ -7,7 +7,7 @@ http_interactions: encoding: UTF-8 string: | - The Wealth of Nations + The Wings of the Dove headers: @@ -34,10 +34,10 @@ http_interactions: encoding: UTF-8 string: | - The Wealth of Nations + The Wings of the Dove - recorded_at: Mon, 21 Oct 2024 07:55:26 GMT + recorded_at: Mon, 21 Oct 2024 09:52:25 GMT - request: method: put uri: http://backend:5352/source/target_project/target_package/_meta?user=user_2 @@ -45,8 +45,8 @@ http_interactions: encoding: UTF-8 string: | - Shall not Perish - Dolores doloribus perspiciatis et. + The Heart Is Deceitful Above All Things + Magni animi accusantium nihil. headers: Accept-Encoding: @@ -67,15 +67,15 @@ http_interactions: Connection: - close Content-Length: - - '166' + - '185' body: encoding: UTF-8 string: | - Shall not Perish - Dolores doloribus perspiciatis et. + The Heart Is Deceitful Above All Things + Magni animi accusantium nihil. - recorded_at: Mon, 21 Oct 2024 07:55:26 GMT + recorded_at: Mon, 21 Oct 2024 09:52:25 GMT - request: method: put uri: http://backend:5352/source/source_project/_meta?user=user_3 @@ -83,7 +83,7 @@ http_interactions: encoding: UTF-8 string: | - Things Fall Apart + For a Breath I Tarry headers: @@ -105,15 +105,15 @@ http_interactions: Connection: - close Content-Length: - - '108' + - '111' body: encoding: UTF-8 string: | - Things Fall Apart + For a Breath I Tarry - recorded_at: Mon, 21 Oct 2024 07:55:26 GMT + recorded_at: Mon, 21 Oct 2024 09:52:26 GMT - request: method: put uri: http://backend:5352/source/source_project/_project/_attribute?meta=1&user=user_3 @@ -142,18 +142,18 @@ http_interactions: Connection: - close Content-Length: - - '168' + - '169' body: encoding: UTF-8 string: | - - f827c7465192760ab7701d3df7b20386 - + + fa961170fbd6e86995a8de46ad3da396 + user_3 - recorded_at: Mon, 21 Oct 2024 07:55:27 GMT + recorded_at: Mon, 21 Oct 2024 09:52:26 GMT - request: method: put uri: http://backend:5352/source/source_project/package_a/_meta?user=user_4 @@ -161,8 +161,8 @@ http_interactions: encoding: UTF-8 string: | - Alone on a Wide, Wide Sea - Repellat nesciunt ut exercitationem. + Eyeless in Gaza + Qui laborum nostrum omnis. headers: Accept-Encoding: @@ -183,21 +183,21 @@ http_interactions: Connection: - close Content-Length: - - '172' + - '152' body: encoding: UTF-8 string: | - Alone on a Wide, Wide Sea - Repellat nesciunt ut exercitationem. + Eyeless in Gaza + Qui laborum nostrum omnis. - recorded_at: Mon, 21 Oct 2024 07:55:27 GMT + recorded_at: Mon, 21 Oct 2024 09:52:27 GMT - request: method: put uri: http://backend:5352/source/source_project/package_a/README.txt body: encoding: UTF-8 - string: Atque maxime aut. Libero non sunt. Asperiores ipsum molestias. + string: Asperiores odio sunt. Assumenda et labore. Excepturi dolore et. headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 @@ -217,19 +217,19 @@ http_interactions: Connection: - close Content-Length: - - '201' + - '203' body: encoding: UTF-8 string: | - - a09afa482a997030612d990e3b7733aa + + fafdb3cebde7662ca252456e669f6005 1 - + unknown - recorded_at: Mon, 21 Oct 2024 07:55:27 GMT + recorded_at: Mon, 21 Oct 2024 09:52:27 GMT - request: method: put uri: http://backend:5352/source/source_project/package_a/package_a.spec @@ -282,19 +282,19 @@ http_interactions: Connection: - close Content-Length: - - '201' + - '203' body: encoding: UTF-8 string: | - - a09afa482a997030612d990e3b7733aa + + fafdb3cebde7662ca252456e669f6005 1 - + unknown - recorded_at: Mon, 21 Oct 2024 07:55:27 GMT + recorded_at: Mon, 21 Oct 2024 09:52:27 GMT - request: method: put uri: http://backend:5352/source/source_project/package_a/package_a.changes @@ -320,19 +320,19 @@ http_interactions: Connection: - close Content-Length: - - '201' + - '203' body: encoding: UTF-8 string: | - - a09afa482a997030612d990e3b7733aa + + fafdb3cebde7662ca252456e669f6005 1 - + unknown - recorded_at: Mon, 21 Oct 2024 07:55:27 GMT + recorded_at: Mon, 21 Oct 2024 09:52:27 GMT - request: method: get uri: http://backend:5352/source/source_project/package_a @@ -358,16 +358,16 @@ http_interactions: Connection: - close Content-Length: - - '404' + - '406' body: encoding: UTF-8 string: | - - - - + + + + - recorded_at: Mon, 21 Oct 2024 07:55:27 GMT + recorded_at: Mon, 21 Oct 2024 09:52:28 GMT - request: method: post uri: http://backend:5352/source/source_project/package_a?cmd=diff&expand=1&filelimit=10000&opackage=target_package&oproject=target_project&tarlimit=10000&view=xml&withissues=1 @@ -395,18 +395,18 @@ http_interactions: Connection: - close Content-Length: - - '1468' + - '1470' body: encoding: UTF-8 string: | - + - + - + @@ -0,0 +1,1 @@ - +Atque maxime aut. Libero non sunt. Asperiores ipsum molestias. + +Asperiores odio sunt. Assumenda et labore. Excepturi dolore et. \ No newline at end of file @@ -453,7 +453,7 @@ http_interactions: - recorded_at: Mon, 21 Oct 2024 07:55:27 GMT + recorded_at: Mon, 21 Oct 2024 09:52:28 GMT - request: method: get uri: http://backend:5352/source/target_project/target_package @@ -462,7 +462,7 @@ http_interactions: string: '' headers: X-Request-Id: - - fecc60ac-1d3d-4e26-a3ac-149c5bac0d02 + - 91635938-0ca0-4d8e-a6c6-cb49ec212bd7 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -487,7 +487,7 @@ http_interactions: string: | - recorded_at: Mon, 21 Oct 2024 07:55:32 GMT + recorded_at: Mon, 21 Oct 2024 09:52:35 GMT - request: method: get uri: http://backend:5352/build/source_project/_result?lastbuild=0&locallink=1&multibuild=1&package=package_a&view=status @@ -496,7 +496,7 @@ http_interactions: string: '' headers: X-Request-Id: - - 047c5eed-e875-4597-94d9-4eb7aabb462f + - 9084fd55-5204-4d8f-bf08-4dea4a44763c Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -521,7 +521,7 @@ http_interactions: string: ' ' - recorded_at: Mon, 21 Oct 2024 07:55:32 GMT + recorded_at: Mon, 21 Oct 2024 09:52:35 GMT - request: method: get uri: http://backend:5352/source/source_project/package_a @@ -530,7 +530,7 @@ http_interactions: string: '' headers: X-Request-Id: - - 047c5eed-e875-4597-94d9-4eb7aabb462f + - 9084fd55-5204-4d8f-bf08-4dea4a44763c Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -549,16 +549,16 @@ http_interactions: Connection: - close Content-Length: - - '404' + - '406' body: encoding: UTF-8 string: | - - - - + + + + - recorded_at: Mon, 21 Oct 2024 07:55:32 GMT + recorded_at: Mon, 21 Oct 2024 09:52:35 GMT - request: method: post uri: http://backend:5352/source/source_project/package_a?cacheonly=1&cmd=diff&expand=1&filelimit=10000&opackage=target_package&oproject=target_project&tarlimit=10000&view=xml&withissues=1 @@ -569,7 +569,7 @@ http_interactions: Content-Type: - application/octet-stream X-Request-Id: - - 047c5eed-e875-4597-94d9-4eb7aabb462f + - 9084fd55-5204-4d8f-bf08-4dea4a44763c Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -584,7 +584,7 @@ http_interactions: Content-Type: - text/xml Content-Length: - - '1468' + - '1470' Cache-Control: - no-cache Connection: @@ -592,14 +592,14 @@ http_interactions: body: encoding: UTF-8 string: | - + - + - + @@ -0,0 +1,1 @@ - +Atque maxime aut. Libero non sunt. Asperiores ipsum molestias. + +Asperiores odio sunt. Assumenda et labore. Excepturi dolore et. \ No newline at end of file @@ -646,7 +646,7 @@ http_interactions: - recorded_at: Mon, 21 Oct 2024 07:55:32 GMT + recorded_at: Mon, 21 Oct 2024 09:52:35 GMT - request: method: get uri: http://backend:5352/source/source_project/package_a @@ -655,7 +655,7 @@ http_interactions: string: '' headers: X-Request-Id: - - 047c5eed-e875-4597-94d9-4eb7aabb462f + - 9084fd55-5204-4d8f-bf08-4dea4a44763c Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -674,16 +674,16 @@ http_interactions: Connection: - close Content-Length: - - '404' + - '406' body: encoding: UTF-8 string: | - - - - + + + + - recorded_at: Mon, 21 Oct 2024 07:55:32 GMT + recorded_at: Mon, 21 Oct 2024 09:52:35 GMT - request: method: post uri: http://backend:5352/source/source_project/package_a?cacheonly=1&cmd=diff&expand=1&filelimit=10000&opackage=target_package&oproject=target_project&tarlimit=10000&view=xml&withissues=1 @@ -694,7 +694,7 @@ http_interactions: Content-Type: - application/octet-stream X-Request-Id: - - 047c5eed-e875-4597-94d9-4eb7aabb462f + - 9084fd55-5204-4d8f-bf08-4dea4a44763c Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -709,7 +709,7 @@ http_interactions: Content-Type: - text/xml Content-Length: - - '1468' + - '1470' Cache-Control: - no-cache Connection: @@ -717,14 +717,14 @@ http_interactions: body: encoding: UTF-8 string: | - + - + - + @@ -0,0 +1,1 @@ - +Atque maxime aut. Libero non sunt. Asperiores ipsum molestias. + +Asperiores odio sunt. Assumenda et labore. Excepturi dolore et. \ No newline at end of file @@ -771,7 +771,7 @@ http_interactions: - recorded_at: Mon, 21 Oct 2024 07:55:32 GMT + recorded_at: Mon, 21 Oct 2024 09:52:35 GMT - request: method: get uri: http://backend:5352/source/source_project/package_a @@ -780,7 +780,7 @@ http_interactions: string: '' headers: X-Request-Id: - - 047c5eed-e875-4597-94d9-4eb7aabb462f + - 9084fd55-5204-4d8f-bf08-4dea4a44763c Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -799,16 +799,16 @@ http_interactions: Connection: - close Content-Length: - - '404' + - '406' body: encoding: UTF-8 string: | - - - - + + + + - recorded_at: Mon, 21 Oct 2024 07:55:32 GMT + recorded_at: Mon, 21 Oct 2024 09:52:35 GMT - request: method: post uri: http://backend:5352/source/source_project/package_a?cmd=diff&expand=1&filelimit=10000&opackage=target_package&oproject=target_project&tarlimit=10000&view=xml&withissues=1 @@ -819,7 +819,7 @@ http_interactions: Content-Type: - application/octet-stream X-Request-Id: - - 047c5eed-e875-4597-94d9-4eb7aabb462f + - 9084fd55-5204-4d8f-bf08-4dea4a44763c Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -834,7 +834,7 @@ http_interactions: Content-Type: - text/xml Content-Length: - - '1468' + - '1470' Cache-Control: - no-cache Connection: @@ -842,14 +842,14 @@ http_interactions: body: encoding: UTF-8 string: | - + - + - + @@ -0,0 +1,1 @@ - +Atque maxime aut. Libero non sunt. Asperiores ipsum molestias. + +Asperiores odio sunt. Assumenda et labore. Excepturi dolore et. \ No newline at end of file @@ -896,7 +896,7 @@ http_interactions: - recorded_at: Mon, 21 Oct 2024 07:55:33 GMT + recorded_at: Mon, 21 Oct 2024 09:52:35 GMT - request: method: get uri: http://backend:5352/source/target_project/target_package @@ -905,7 +905,7 @@ http_interactions: string: '' headers: X-Request-Id: - - 047c5eed-e875-4597-94d9-4eb7aabb462f + - 9084fd55-5204-4d8f-bf08-4dea4a44763c Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -930,7 +930,41 @@ http_interactions: string: | - recorded_at: Mon, 21 Oct 2024 07:55:33 GMT + recorded_at: Mon, 21 Oct 2024 09:52:35 GMT +- request: + method: get + uri: http://backend:5352/source/target_project/target_package + body: + encoding: US-ASCII + string: '' + headers: + X-Request-Id: + - 9084fd55-5204-4d8f-bf08-4dea4a44763c + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - text/xml + Cache-Control: + - no-cache + Connection: + - close + Content-Length: + - '89' + body: + encoding: UTF-8 + string: | + + + recorded_at: Mon, 21 Oct 2024 09:52:35 GMT - request: method: get uri: http://backend:5352/build/source_project/_result?lastbuild=0&locallink=1&multibuild=1&package=package_a&view=status @@ -939,7 +973,7 @@ http_interactions: string: '' headers: X-Request-Id: - - 7ffcb582-1689-449b-92f7-3e8282eda9e2 + - 2db5cf56-850d-4431-b639-ccfcfe1417a1 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -964,7 +998,7 @@ http_interactions: string: ' ' - recorded_at: Mon, 21 Oct 2024 07:55:33 GMT + recorded_at: Mon, 21 Oct 2024 09:52:36 GMT - request: method: get uri: http://backend:5352/source/source_project/package_a @@ -973,7 +1007,7 @@ http_interactions: string: '' headers: X-Request-Id: - - a548b1a6-9a97-4727-896c-b86fe4f8b29d + - b35accbf-a1fc-4dc1-a206-4aeed1fbf94d Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -992,19 +1026,19 @@ http_interactions: Connection: - close Content-Length: - - '404' + - '406' body: encoding: UTF-8 string: | - - - - + + + + - recorded_at: Mon, 21 Oct 2024 07:55:34 GMT + recorded_at: Mon, 21 Oct 2024 09:52:37 GMT - request: method: post - uri: http://backend:5352/source/source_project/package_a?cmd=diff&expand=1&filelimit=10000&opackage=target_package&oproject=target_project&tarlimit=10000&view=xml&withissues=1 + uri: http://backend:5352/source/source_project/package_a?cacheonly=1&cmd=diff&expand=1&filelimit=10000&opackage=target_package&oproject=target_project&tarlimit=10000&view=xml&withissues=1 body: encoding: UTF-8 string: '' @@ -1012,7 +1046,7 @@ http_interactions: Content-Type: - application/octet-stream X-Request-Id: - - a548b1a6-9a97-4727-896c-b86fe4f8b29d + - b35accbf-a1fc-4dc1-a206-4aeed1fbf94d Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -1027,7 +1061,7 @@ http_interactions: Content-Type: - text/xml Content-Length: - - '1468' + - '1470' Cache-Control: - no-cache Connection: @@ -1035,14 +1069,14 @@ http_interactions: body: encoding: UTF-8 string: | - + - + - + @@ -0,0 +1,1 @@ - +Atque maxime aut. Libero non sunt. Asperiores ipsum molestias. + +Asperiores odio sunt. Assumenda et labore. Excepturi dolore et. \ No newline at end of file @@ -1089,5 +1123,39 @@ http_interactions: - recorded_at: Mon, 21 Oct 2024 07:55:34 GMT + recorded_at: Mon, 21 Oct 2024 09:52:37 GMT +- request: + method: get + uri: http://backend:5352/source/target_project/target_package + body: + encoding: US-ASCII + string: '' + headers: + X-Request-Id: + - b35accbf-a1fc-4dc1-a206-4aeed1fbf94d + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - text/xml + Cache-Control: + - no-cache + Connection: + - close + Content-Length: + - '89' + body: + encoding: UTF-8 + string: | + + + recorded_at: Mon, 21 Oct 2024 09:52:37 GMT recorded_with: VCR 6.3.1 diff --git a/src/api/spec/features/beta/webui/maintenance_workflow_spec.rb b/src/api/spec/features/beta/webui/maintenance_workflow_spec.rb index 49dd006e418..8beb8f1f5a1 100644 --- a/src/api/spec/features/beta/webui/maintenance_workflow_spec.rb +++ b/src/api/spec/features/beta/webui/maintenance_workflow_spec.rb @@ -53,6 +53,7 @@ visit request_show_path(bs_request) fill_in('reason', with: 'really? ok') + click_button('Decision') click_button('Accept request') end @@ -96,6 +97,7 @@ visit request_show_path(bs_request) fill_in('reason', with: 'really? ok') + click_button('Decision') click_button('Accept request') end