diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb index f1781b3d3c58c5eb3df388fd5f444546decad937..5099272a2121859cdf636f1d325e1c263889ec04 100644 --- a/app/services/notification_service.rb +++ b/app/services/notification_service.rb @@ -358,7 +358,7 @@ def changed_reviewer_of_merge_request(merge_request, current_user, previous_revi def review_requested_of_merge_request(merge_request, current_user, reviewer) recipients = NotificationRecipients::BuildService.build_requested_review_recipients(merge_request, current_user, reviewer) - deliver_option = review_request_deliver_options(merge_request.project, reviewer) + deliver_option = review_request_deliver_options(merge_request.project) recipients.each do |recipient| mailer @@ -975,7 +975,7 @@ def new_review_deliver_options(review) {} end - def review_request_deliver_options(project, user) + def review_request_deliver_options(project) # Overridden in EE {} end diff --git a/ee/app/helpers/ee/merge_requests_helper.rb b/ee/app/helpers/ee/merge_requests_helper.rb index 743b644fd4a040706d0978a51fc0c2ad373f565d..e8b6924261b6367b8fd62e105aa7f7e4d6064165 100644 --- a/ee/app/helpers/ee/merge_requests_helper.rb +++ b/ee/app/helpers/ee/merge_requests_helper.rb @@ -39,8 +39,8 @@ def mr_compare_form_data(user, merge_request) super.merge({ target_branch_finder_path: target_branch_finder_path }) end - def summarize_llm_enabled?(project, user) - ::Llm::MergeRequests::SummarizeDiffService.enabled?(group: project.root_ancestor, user: user) + def summarize_llm_enabled?(project) + ::Llm::MergeRequests::SummarizeDiffService.enabled?(group: project.root_ancestor) end override :review_bar_data @@ -60,7 +60,7 @@ def diff_summary_available?(merge_request, previous_reviewers, recipient) new_reviewers = merge_request.reviewers - previous_reviewers new_reviewers.include?(recipient) && - summarize_llm_enabled?(merge_request.project, recipient) && + summarize_llm_enabled?(merge_request.project) && diff_llm_summary(merge_request).present? end diff --git a/ee/app/helpers/ee/todos_helper.rb b/ee/app/helpers/ee/todos_helper.rb index b95b074b50f4554befe0bf5818e3b305402763c2..e5f462733fc6c6997520a7022c2bfe73fe526ae5 100644 --- a/ee/app/helpers/ee/todos_helper.rb +++ b/ee/app/helpers/ee/todos_helper.rb @@ -21,7 +21,7 @@ def show_todo_state?(todo) override :todo_target_path_anchor def todo_target_path_anchor(todo) - if todo.review_requested? && summarize_llm_enabled?(todo.target.project, current_user) && + if todo.review_requested? && summarize_llm_enabled?(todo.target.project) && diff_llm_summary(todo.target).present? return "diff-summary" end diff --git a/ee/app/services/ee/notification_service.rb b/ee/app/services/ee/notification_service.rb index af5b15064fcf849227ebfabc13fa03fa3ecab327..1e8778f058b0991fb811b569dcccfede7d59b589 100644 --- a/ee/app/services/ee/notification_service.rb +++ b/ee/app/services/ee/notification_service.rb @@ -179,11 +179,8 @@ def new_review_deliver_options(review) end override :review_request_deliver_options - def review_request_deliver_options(project, user) - summary_diff_enabled = ::Llm::MergeRequests::SummarizeDiffService.enabled?( - group: project.root_ancestor, - user: user - ) + def review_request_deliver_options(project) + summary_diff_enabled = ::Llm::MergeRequests::SummarizeDiffService.enabled?(group: project.root_ancestor) # NOTE: delay the email delivery to allow some time for the summary to be generated by AI if summary_diff_enabled diff --git a/ee/app/services/llm/merge_requests/summarize_diff_service.rb b/ee/app/services/llm/merge_requests/summarize_diff_service.rb index d48f45c8a134e990bf8fdb9362eca7b5c07e7410..ae9863818c363a17bc9cb777e4d549020fa341e3 100644 --- a/ee/app/services/llm/merge_requests/summarize_diff_service.rb +++ b/ee/app/services/llm/merge_requests/summarize_diff_service.rb @@ -14,14 +14,13 @@ def initialize(title:, user:, diff:) end def execute - return unless self.class.enabled?(user: user, - group: diff.merge_request.project.root_ancestor) && user.can?(:generate_diff_summary, - diff.merge_request) + return unless self.class.enabled?(group: diff.merge_request.project.root_ancestor) && + user.can?(:generate_diff_summary, diff.merge_request) response_modifier.new(response).response_body.presence end - def self.enabled?(user:, group:) # rubocop:disable Lint/UnusedMethodArgument + def self.enabled?(group:) ::Feature.enabled?(:ai_global_switch, type: :ops) && Gitlab::Llm::StageCheck.available?(group, :summarize_diff) && ::License.feature_available?(:summarize_mr_changes) diff --git a/ee/app/views/dashboard/todos/_diff_summary.html.haml b/ee/app/views/dashboard/todos/_diff_summary.html.haml index df1cfd577164384a217f428306b9d567cbe5a2d1..a1da8432b7ab5fd0802a587207448e7b31c484b9 100644 --- a/ee/app/views/dashboard/todos/_diff_summary.html.haml +++ b/ee/app/views/dashboard/todos/_diff_summary.html.haml @@ -3,5 +3,5 @@ - if todo.review_requested? - merge_request = todo.target - diff_llm_summary = diff_llm_summary(merge_request) - - if summarize_llm_enabled?(merge_request.project, current_user) && diff_llm_summary.present? + - if summarize_llm_enabled?(merge_request.project) && diff_llm_summary.present? = render 'llm_summary', local_assigns: { content: truncated_diff_llm_summary(merge_request) } diff --git a/ee/app/views/notify/_diff_summary.html.haml b/ee/app/views/notify/_diff_summary.html.haml index 0d2420d1dfa7272b0256db8a7a4df732fbccc563..ff3a242684e05b63237a8d8e37d4e5522f833a62 100644 --- a/ee/app/views/notify/_diff_summary.html.haml +++ b/ee/app/views/notify/_diff_summary.html.haml @@ -1,4 +1,4 @@ -- if summarize_llm_enabled?(@merge_request.project, @recipient) +- if summarize_llm_enabled?(@merge_request.project) - diff_llm_summary = diff_llm_summary(@merge_request) - if diff_llm_summary.present? .md{ style: 'border-bottom:1px solid #ededed; padding-bottom: 1em; padding-top: 1em;' } diff --git a/ee/app/views/notify/_diff_summary.text.erb b/ee/app/views/notify/_diff_summary.text.erb index 2848b4dc55e3d852058a5fc44e3a22a464506805..2b8e6c5f539e2fbd9e4a8df8b2bcad9a136e1ab3 100644 --- a/ee/app/views/notify/_diff_summary.text.erb +++ b/ee/app/views/notify/_diff_summary.text.erb @@ -1,4 +1,4 @@ -<% if summarize_llm_enabled?(@merge_request.project, @recipient) -%> +<% if summarize_llm_enabled?(@merge_request.project) -%> <% diff_llm_summary = diff_llm_summary(@merge_request) -%> <% if diff_llm_summary.present? -%> diff --git a/ee/app/views/projects/merge_requests/_diff_summary.html.haml b/ee/app/views/projects/merge_requests/_diff_summary.html.haml index 824d30f49fe8d57668bd25d8832f28ad8a5a20e0..6f89d8d9e37131e7b25740c69a8b2e922ad7472c 100644 --- a/ee/app/views/projects/merge_requests/_diff_summary.html.haml +++ b/ee/app/views/projects/merge_requests/_diff_summary.html.haml @@ -1,6 +1,6 @@ - diff_llm_summary = diff_llm_summary(@merge_request) -- if summarize_llm_enabled?(@merge_request.project, current_user) && diff_llm_summary.present? +- if summarize_llm_enabled?(@merge_request.project) && diff_llm_summary.present? .mr-section-container.gl-mt-4.js-toggle-container .gl-display-flex.gl-align-items-center.gl-pl-5.gl-pr-4.gl-py-4 .gl-w-6.gl-h-6.gl-display-flex.gl-align-self-center.gl-mr-1 diff --git a/ee/app/views/projects/merge_requests/show.html.haml b/ee/app/views/projects/merge_requests/show.html.haml index 2139627d628fe02d34badf97d45aeba40de89da6..49ce5c6b98d4b96bec68b7b62a0d887e0366d360 100644 --- a/ee/app/views/projects/merge_requests/show.html.haml +++ b/ee/app/views/projects/merge_requests/show.html.haml @@ -1,6 +1,6 @@ = render_ce "projects/merge_requests/show" -- if ::Llm::MergeRequests::SummarizeDiffService.enabled?(group: @merge_request.project.root_ancestor, user: current_user) +- if ::Llm::MergeRequests::SummarizeDiffService.enabled?(group: @merge_request.project.root_ancestor) #js-summary-notes{ data: { project_path: @project.full_path, iid: @merge_request.iid, empty_state_svg: image_path('illustrations/empty-state/empty-activity-md.svg') } } = javascript_tag do diff --git a/ee/spec/helpers/merge_requests_helper_spec.rb b/ee/spec/helpers/merge_requests_helper_spec.rb index 56685e4663c5ea460a00cb9e0db60f2b19b7e2df..3944eeffeedcd782b38e40ad97c94789a820c96b 100644 --- a/ee/spec/helpers/merge_requests_helper_spec.rb +++ b/ee/spec/helpers/merge_requests_helper_spec.rb @@ -92,9 +92,9 @@ let_it_be(:project) { build_stubbed(:project, namespace: group) } it 'calls Llm::MergeRequests::SummarizeDiffService enabled? method' do - expect(Llm::MergeRequests::SummarizeDiffService).to receive(:enabled?).with(group: group, user: user) + expect(Llm::MergeRequests::SummarizeDiffService).to receive(:enabled?).with(group: group) - summarize_llm_enabled?(project, user) + summarize_llm_enabled?(project) end end