Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/test_hooks/system_service.rb')
-rw-r--r--app/services/test_hooks/system_service.rb25
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