gitlab-org--gitlab-foss/app/services/ci/web_hook_service.rb

36 lines
874 B
Ruby
Raw Normal View History

2015-08-25 21:42:46 -04:00
module Ci
class WebHookService
def build_end(build)
execute_hooks(build.project, build_data(build))
end
def execute_hooks(project, data)
project.web_hooks.each do |web_hook|
async_execute_hook(web_hook, data)
end
end
def async_execute_hook(hook, data)
Sidekiq::Client.enqueue(Ci::WebHookWorker, hook.id, data)
end
def build_data(build)
project = build.project
data = {}
data.merge!({
build_id: build.id,
build_name: build.name,
build_status: build.status,
build_started_at: build.started_at,
build_finished_at: build.finished_at,
project_id: project.id,
project_name: project.name,
gitlab_url: project.gitlab_url,
ref: build.ref,
2015-10-05 08:31:51 -04:00
before_sha: build.before_sha,
2015-08-25 21:42:46 -04:00
sha: build.sha,
})
end
end
end