diff options
Diffstat (limited to 'app/services/test_hooks/system_service.rb')
-rw-r--r-- | app/services/test_hooks/system_service.rb | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/app/services/test_hooks/system_service.rb b/app/services/test_hooks/system_service.rb index 5c7961f417d..66d78bfc578 100644 --- a/app/services/test_hooks/system_service.rb +++ b/app/services/test_hooks/system_service.rb @@ -2,23 +2,26 @@ module TestHooks class SystemService < TestHooks::BaseService - private - - def push_events_data - Gitlab::DataBuilder::Push.sample_data - end + include Gitlab::Utils::StrongMemoize - def tag_push_events_data - Gitlab::DataBuilder::Push.sample_data - end + private - def repository_update_events_data - Gitlab::DataBuilder::Repository.sample_data + def data + strong_memoize(:data) do + case trigger + when 'push_events', 'tag_push_events' + Gitlab::DataBuilder::Push.sample_data + when 'repository_update_events' + Gitlab::DataBuilder::Repository.sample_data + when 'merge_requests_events' + merge_requests_events_data + end + end end def merge_requests_events_data merge_request = MergeRequest.of_projects(current_user.projects.select(:id)).first - throw(:validation_error, s_('TestHooks|Ensure one of your projects has merge requests.')) unless merge_request.present? # rubocop:disable Cop/BanCatchThrow + return { error: s_('TestHooks|Ensure one of your projects has merge requests.') } unless merge_request.present? merge_request.to_hook_data(current_user) end |