diff options
Diffstat (limited to 'app/models/hooks/web_hook.rb')
-rw-r--r-- | app/models/hooks/web_hook.rb | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/app/models/hooks/web_hook.rb b/app/models/hooks/web_hook.rb deleted file mode 100644 index 315d96af1b9..00000000000 --- a/app/models/hooks/web_hook.rb +++ /dev/null @@ -1,60 +0,0 @@ -# == Schema Information -# -# Table name: web_hooks -# -# id :integer not null, primary key -# url :string(255) -# project_id :integer -# created_at :datetime -# updated_at :datetime -# type :string(255) default("ProjectHook") -# service_id :integer -# push_events :boolean default(TRUE), not null -# issues_events :boolean default(FALSE), not null -# merge_requests_events :boolean default(FALSE), not null -# tag_push_events :boolean default(FALSE) -# - -class WebHook < ActiveRecord::Base - include Sortable - include HTTParty - - default_value_for :push_events, true - default_value_for :issues_events, false - default_value_for :merge_requests_events, false - default_value_for :tag_push_events, false - - # HTTParty timeout - default_timeout Gitlab.config.gitlab.webhook_timeout - - validates :url, presence: true, - format: { with: /\A#{URI.regexp(%w(http https))}\z/, message: "should be a valid url" } - - 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) - else - post_url = url.gsub("#{parsed_url.userinfo}@", "") - auth = { - username: URI.decode(parsed_url.user), - password: URI.decode(parsed_url.password), - } - WebHook.post(post_url, - body: data.to_json, - headers: { "Content-Type" => "application/json" }, - verify: false, - basic_auth: auth) - end - rescue SocketError, Errno::ECONNRESET, Errno::ECONNREFUSED, Net::OpenTimeout => e - logger.error("WebHook Error => #{e}") - false - end - - def async_execute(data) - Sidekiq::Client.enqueue(ProjectWebHookWorker, id, data) - end -end |