class GHRH::Command::Create
Public Instance Methods
execute()
click to toggle source
# File lib/ghrh/command/create.rb, line 15 def execute raise "No repo specified (-r) or set (github.repo)" if not repo hook = GHRH::Config.hooks[name] # hook schema, build a hash for easy lookup name -> format schema = {} hook['schema'].each do |s| format, name = s schema[name] = format end default_events = hook['events'] supported_events = hook['supported_events'] # hook config that will be sent config = {} # make sure config settings given exist in the schema config_list.each do |arg| k,v = arg.split(/=/,2) raise "Invalid setting #{k} for hook #{name}" if not schema.include? k config[k]=v end # make sure events given are in supported events events_list = default_events if events events_list = events.split(/,/) events_list.each do |event| raise "Invalid event #{event} for hook #{name}" if not supported_events.include? event end end hook_input = { 'name' => name, 'events' => events_list, 'config' => config, 'active' => !no_active?, }.to_json resp = GHRH::Client.post("/repos/#{repo}/hooks", { :body => hook_input }) puts "#{resp.code} #{resp.message}" pp "#{resp.body}" if $DEBUG end