gitlab-org--gitlab-foss/app/models/web_hook.rb

38 lines
1.0 KiB
Ruby
Raw Normal View History

class WebHook < ActiveRecord::Base
include HTTParty
attr_accessible :url
# HTTParty timeout
default_timeout 10
2012-09-27 06:20:36 +00:00
validates :url, presence: true,
2012-10-09 00:10:04 +00:00
format: { with: URI::regexp(%w(http https)), 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" })
else
2012-09-27 06:20:36 +00:00
post_url = url.gsub("#{parsed_url.userinfo}@", "")
WebHook.post(post_url,
body: data.to_json,
2012-09-27 06:20:36 +00:00
headers: {"Content-Type" => "application/json"},
basic_auth: {username: parsed_url.user, password: parsed_url.password})
end
end
end
2012-09-27 06:20:36 +00:00
2012-01-03 21:39:03 +00:00
# == Schema Information
#
# Table name: web_hooks
#
2012-09-27 05:36:31 +00:00
# id :integer not null, primary key
2012-01-03 21:39:03 +00:00
# url :string(255)
2012-09-27 05:36:31 +00:00
# project_id :integer
2012-06-26 18:23:09 +00:00
# created_at :datetime not null
# updated_at :datetime not null
2012-09-27 05:36:31 +00:00
# type :string(255) default("ProjectHook")
2012-01-03 21:39:03 +00:00
#
2012-10-09 08:14:17 +00:00