34 lines
724 B
Ruby
34 lines
724 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Ci
|
|
module Pipelines
|
|
class HookService
|
|
include Gitlab::Utils::StrongMemoize
|
|
|
|
HOOK_NAME = :pipeline_hooks
|
|
|
|
def initialize(pipeline)
|
|
@pipeline = pipeline
|
|
end
|
|
|
|
def execute
|
|
project.execute_hooks(hook_data, HOOK_NAME) if project.has_active_hooks?(HOOK_NAME)
|
|
project.execute_integrations(hook_data, HOOK_NAME) if project.has_active_integrations?(HOOK_NAME)
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :pipeline
|
|
|
|
def project
|
|
@project ||= pipeline.project
|
|
end
|
|
|
|
def hook_data
|
|
strong_memoize(:hook_data) do
|
|
Gitlab::DataBuilder::Pipeline.build(pipeline)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|