summaryrefslogtreecommitdiff
path: root/app/models/hooks
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-12-04 15:07:01 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-12-04 15:07:01 +0200
commitdb2edff937cbc309c10bb1a987356a58f8a9c8fa (patch)
treed2d19fb102fb834938a0560f610e15b4a54f3a5f /app/models/hooks
parent490ae737c748a393e57040bfd649bb1c4244e494 (diff)
downloadgitlab-ce-db2edff937cbc309c10bb1a987356a58f8a9c8fa.tar.gz
Handle web hook exception
Write to log if web hook cant be executed. This prevents 500 error when test web hook with invalid URL and prevent exceptions and retries in sidekiq Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/models/hooks')
-rw-r--r--app/models/hooks/web_hook.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/app/models/hooks/web_hook.rb b/app/models/hooks/web_hook.rb
index 23fa01e0b70..8479d4aecf6 100644
--- a/app/models/hooks/web_hook.rb
+++ b/app/models/hooks/web_hook.rb
@@ -32,7 +32,10 @@ class WebHook < ActiveRecord::Base
def execute(data)
parsed_url = URI.parse(url)
if parsed_url.userinfo.blank?
- WebHook.post(url, body: data.to_json, headers: { "Content-Type" => "application/json" }, verify: false)
+ WebHook.post(url,
+ body: data.to_json,
+ headers: { "Content-Type" => "application/json" },
+ verify: false)
else
post_url = url.gsub("#{parsed_url.userinfo}@", "")
auth = {
@@ -45,6 +48,9 @@ class WebHook < ActiveRecord::Base
verify: false,
basic_auth: auth)
end
+ rescue SocketError, Errno::ECONNREFUSED => e
+ logger.error("WebHook Error => #{e}")
+ false
end
def async_execute(data)