Added web hooks functionality
This commit includes: * Projects can have zero or more WebHooks. * The PostReceive job will ask a project to execute any web hooks defined for that project. * WebHook has a URL, we post Github-compatible JSON to that URL. * Failure to execute a WebHook will be silently ignored.
This commit is contained in:
parent
56fc53e8d8
commit
edab46e9fa
14 changed files with 295 additions and 4 deletions
20
app/models/web_hook.rb
Normal file
20
app/models/web_hook.rb
Normal file
|
@ -0,0 +1,20 @@
|
|||
class WebHook < ActiveRecord::Base
|
||||
include HTTParty
|
||||
|
||||
# HTTParty timeout
|
||||
default_timeout 10
|
||||
|
||||
belongs_to :project
|
||||
|
||||
validates :url,
|
||||
presence: true,
|
||||
format: {
|
||||
with: /(^$)|(^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$)/ix,
|
||||
message: "should be a valid url" }
|
||||
|
||||
def execute(data)
|
||||
WebHook.post(url, body: data.to_json)
|
||||
rescue
|
||||
# There was a problem calling this web hook, let's forget about it.
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue