15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# 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]
schema = {}
hook['schema'].each do |s|
format, name = s
schema[name] = format
end
default_events = hook['events']
supported_events = hook['supported_events']
config = {}
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
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
|