diff options
Diffstat (limited to 'app/services/post_receive_service.rb')
-rw-r--r-- | app/services/post_receive_service.rb | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/app/services/post_receive_service.rb b/app/services/post_receive_service.rb index 69c9868c75c..79b613f6a88 100644 --- a/app/services/post_receive_service.rb +++ b/app/services/post_receive_service.rb @@ -29,9 +29,7 @@ class PostReceiveService response.add_alert_message(message) end - broadcast_message = BroadcastMessage.current_banner_messages&.last&.message response.add_alert_message(broadcast_message) - response.add_merge_request_urls(merge_request_urls) # Neither User nor Project are guaranteed to be returned; an orphaned write deploy @@ -74,6 +72,24 @@ class PostReceiveService ::MergeRequests::GetUrlsService.new(project).execute(params[:changes]) end + + private + + def broadcast_message + banner = nil + + if project + scoped_messages = BroadcastMessage.current_banner_messages(project.full_path).select do |message| + message.target_path.present? && message.matches_current_path(project.full_path) + end + + banner = scoped_messages.last + end + + banner ||= BroadcastMessage.current_banner_messages.last + + banner&.message + end end PostReceiveService.prepend_if_ee('EE::PostReceiveService') |