From 3687436bd825f1c2ba1c28ff2c9915a3e999236c Mon Sep 17 00:00:00 2001 From: Konstantin Haase Date: Fri, 6 Mar 2015 17:09:33 +0100 Subject: [PATCH] v3: update existing hook instead of removing it --- lib/travis/api/v3/github.rb | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/travis/api/v3/github.rb b/lib/travis/api/v3/github.rb index 3fa60cfe..b1f501c2 100644 --- a/lib/travis/api/v3/github.rb +++ b/lib/travis/api/v3/github.rb @@ -27,16 +27,18 @@ module Travis::API::V3 def set_hook(repository, flag) hooks_url = "repos/#{repository.slug}/hooks" - - if hook = gh[hooks_url].detect { |hook| hook['name'.freeze] == 'travis'.freeze } - gh.delete(hook['_links'.freeze]['self'.freeze]['href'.freeze]) - end - - gh.post(hooks_url, + payload = { name: 'travis'.freeze, events: [:push, :pull_request, :issue_comment, :public, :member], active: flag, - config: { domain: Travis.config.service_hook_url || '' }) + config: { domain: Travis.config.service_hook_url || '' } + } + + if hook = gh[hooks_url].detect { |hook| hook['name'.freeze] == 'travis'.freeze } + gh.patch(hook['_links'.freeze]['self'.freeze]['href'.freeze], payload) + else + gh.post(hooks_url, payload) + end end end end \ No newline at end of file