From 05f0ebba3a2c8ddf39e436f412dc2ab5bf1353b2 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 18 Jan 2023 19:00:14 +0000 Subject: Add latest changes from gitlab-org/gitlab@15-8-stable-ee --- app/services/notes/build_service.rb | 2 +- app/services/notes/create_service.rb | 22 +++++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) (limited to 'app/services/notes') diff --git a/app/services/notes/build_service.rb b/app/services/notes/build_service.rb index cc5c81cf280..e6766273441 100644 --- a/app/services/notes/build_service.rb +++ b/app/services/notes/build_service.rb @@ -35,7 +35,7 @@ module Notes note.author = current_user parent_confidential = discussion&.confidential? - can_set_confidential = can?(current_user, :mark_note_as_confidential, note) + can_set_confidential = can?(current_user, :mark_note_as_internal, note) return discussion_not_found if parent_confidential && !can_set_confidential diff --git a/app/services/notes/create_service.rb b/app/services/notes/create_service.rb index 555d60dc291..5f05b613288 100644 --- a/app/services/notes/create_service.rb +++ b/app/services/notes/create_service.rb @@ -4,7 +4,7 @@ module Notes class CreateService < ::Notes::BaseService include IncidentManagement::UsageData - def execute(skip_capture_diff_note_position: false) + def execute(skip_capture_diff_note_position: false, skip_merge_status_trigger: false) note = Notes::BuildService.new(project, current_user, params.except(:merge_request_diff_head_sha)).execute # n+1: https://gitlab.com/gitlab-org/gitlab-foss/issues/37440 @@ -34,7 +34,13 @@ module Notes end end - when_saved(note, skip_capture_diff_note_position: skip_capture_diff_note_position) if note_saved + if note_saved + when_saved( + note, + skip_capture_diff_note_position: skip_capture_diff_note_position, + skip_merge_status_trigger: skip_merge_status_trigger + ) + end end note @@ -72,15 +78,21 @@ module Notes end end - def when_saved(note, skip_capture_diff_note_position: false) + def when_saved(note, skip_capture_diff_note_position: false, skip_merge_status_trigger: false) todo_service.new_note(note, current_user) clear_noteable_diffs_cache(note) Suggestions::CreateService.new(note).execute increment_usage_counter(note) track_event(note, current_user) - if !skip_capture_diff_note_position && note.for_merge_request? && note.diff_note? && note.start_of_discussion? - Discussions::CaptureDiffNotePositionService.new(note.noteable, note.diff_file&.paths).execute(note.discussion) + if note.for_merge_request? && note.start_of_discussion? + if !skip_capture_diff_note_position && note.diff_note? + Discussions::CaptureDiffNotePositionService.new(note.noteable, note.diff_file&.paths).execute(note.discussion) + end + + if !skip_merge_status_trigger && note.to_be_resolved? + GraphqlTriggers.merge_request_merge_status_updated(note.noteable) + end end end -- cgit v1.2.3