puppet_webhook 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7285f0d9e15b365e5b9e4b715a419182fc78e266f104762da4be350f45c05ffc
4
- data.tar.gz: 619d6b615710aeb263f36f0d79162dd7036d18739ca5d5aa2dbe150f195f06a3
3
+ metadata.gz: 906dfa13bf22e727fd153eff673db49f0122e7fa5417ef213177f9bb5e210abc
4
+ data.tar.gz: db34a880e6a705920606229f35f5f9e48eeec57b64f583335ac3253d1041f042
5
5
  SHA512:
6
- metadata.gz: 761de6f49d6d89c87a8c90fd790e2886b6d0fd316d996749cf2cc13ae8605deddd3e360ffa00f27a7449171856ffccc1b03854a590572031c1974a63e615b01a
7
- data.tar.gz: a4f40e21093d3eebe62a95fc167297d84dc9b027f442d1be2efbd80a0394f65cb22ba66bc67fdba44118315d8588b399e76de49cf0108c79995bf36fb4675963
6
+ metadata.gz: bd6610589cdd23e673ae70ad39cdea36c042bf64dc73c785bebfdc550b792be616f431a451f425c7a21e6acae7ebb2b6c6c9847d251dec6d7d7266a6922d6b17
7
+ data.tar.gz: 79860c041ffe00bbca6b39e2a025a3818805b8fb960143e7a262dfe665feeaf2c0d0cfad42384f25c3111f0f9ea3e3202137b157bd3ce81ea0f2a6b241165b95
data/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.
4
4
  Each new release typically also includes the latest modulesync defaults.
5
5
  These should not affect the functionality of the module.
6
6
 
7
+ ## [v1.4.0](https://github.com/voxpupuli/puppet_webhook/tree/v1.4.0) (2018-05-02)
8
+ [Full Changelog](https://github.com/voxpupuli/puppet_webhook/compare/v1.3.0...v1.4.0)
9
+
10
+ **Implemented enhancements:**
11
+
12
+ - Rocketchat plugin [\#53](https://github.com/voxpupuli/puppet_webhook/pull/53) ([dhollinger](https://github.com/dhollinger))
13
+ - ChatOps Plugin Support [\#52](https://github.com/voxpupuli/puppet_webhook/pull/52) ([dhollinger](https://github.com/dhollinger))
14
+
7
15
  ## [v1.3.0](https://github.com/voxpupuli/puppet_webhook/tree/v1.3.0) (2018-04-24)
8
16
  [Full Changelog](https://github.com/voxpupuli/puppet_webhook/compare/v1.2.0...v1.3.0)
9
17
 
@@ -90,4 +98,4 @@ These should not affect the functionality of the module.
90
98
 
91
99
 
92
100
 
93
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
101
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/README.md CHANGED
@@ -80,6 +80,77 @@ Any configuration option is placed in `/etc/puppet_webhook/server.yml` or `/etc/
80
80
  * `--ssl-key FILE`: Specify the SSL Private key to use. Pair with `--ssl-cert`. Requires `--ssl` or `ssl_enable: true` in config file.
81
81
  * `-c FILE, --configfile FILE`: Specifies a config file to use. Must be a `.yml` file in YAML format.
82
82
 
83
+ #### Chatops Configuration
84
+
85
+ Puppet_webhook can post to chatops tools via various APIs and Clients. At this time, only `Slack` is supported.
86
+
87
+ To enable ChatOps support simply add the following to your `/etc/puppet_webhook/app.yml` file:
88
+ ``` yaml
89
+ chatops: true
90
+ ```
91
+
92
+ ##### Slack Configuration
93
+
94
+ You can enable Slack notifications for the webhook. You will need a Slack webhook URL and the `slack-notifier` gem installed.
95
+
96
+ The `slack-notifier` gem is installed as a dependency to `puppet_webhook`
97
+
98
+ To get the Slack webhook URL you need to:
99
+
100
+ Go to https://slack.com/apps/A0F7XDUAZ-incoming-webhooks.
101
+ Choose your team, press Configure.
102
+ In configurations press Add configuration.
103
+ Choose channel, press Add Incoming WebHooks integration.
104
+ Then configure the webhook to add your Slack Webhook URL:
105
+
106
+ ``` yaml
107
+ chatops: true
108
+ chatops_service: 'slack' # Required so the app knows that you're sending to Slack.
109
+ chatops_url: 'http://hooks.slack.com/services/path/to/your/webhook' # mandatory for usage
110
+ chatops_channel: '#channel' # defaults to #general
111
+ chatops_user: 'r10k' # defaults to puppet_webhook
112
+ chatops_options:
113
+ icon_emoji: ':ocean:'
114
+ http_options:
115
+ proxy_address: 'http://proxy.example.com'
116
+ proxy_port: '3128'
117
+ proxy_from_env: false
118
+ ```
119
+
120
+ **NOTE: The legacy `slack_webhook`, `slack_user`, `slack_channel`, `slack_emoji`, and `slack_proxy_url` still work, but will be removed in 3.0.0**
121
+
122
+ ##### Rocket.Chat Configuration
123
+
124
+ You can enable Rocket.Chat notifications for the webhook. You will need a
125
+ Rocket.Chat incoming webhook URL and the `rocket-chat-notifier` gem installed.
126
+
127
+ The `rocket-chat-notifier` gem is installed as a dependency to `puppet_webhook`
128
+
129
+ To get the Rocket.Chat incoming webhook URL you need to:
130
+
131
+ 1. Go to your Rocket.Chat and then select `Administration-Integrations`.
132
+ 2. Choose `New integration`.
133
+ 3. Choose `Incoming WebHook`. In the webhook form configure:
134
+ * `Enabled`: `True`.
135
+ * `Name`: A name for your webhook.
136
+ * `Post to Channel`: The channel to post to by default.
137
+ 4. Save changes with `Save Changes` bottom.
138
+
139
+ Then configure the webhook to add your Rocket.Chat Webhook URL:
140
+
141
+ ``` yaml
142
+ chatops: true
143
+ chatops_service: 'rocketchat' # Required so the app knows that you're sending to Rocket.Chat
144
+ chatops_url: <your incoming webhook URL> # mandatory for usage
145
+ chatops_channel: '#channel' # defaults to #general
146
+ chatops_user: 'r10k' # defaults to puppet_webhook
147
+ chatops_options:
148
+ icon_emoji: ':ocean:'
149
+ http_options:
150
+ open_timeout: 10
151
+ ```
152
+
153
+ ### Reference
83
154
 
84
155
  #### Server Configuration File
85
156
 
@@ -190,28 +261,81 @@ Whether or not to use MCollective CLI command. REQUIRES MCOLLECTIVE AND MCOLLECT
190
261
  MCollective Ruby discovery timeout. REQUIRES `use_mco_ruby` TO BE `true`.
191
262
  * Default: `'10'`
192
263
 
264
+ ##### chatops
265
+
266
+ Enable the use of notifications to Slack or other ChatOps tool.
267
+ * Valid options: [ `true`, `false` ]
268
+ * Default: `false`
269
+
270
+ ##### chatops_service
271
+
272
+ Name of ChatOps tool to send notifications to.
273
+ * Valid options: [ `slack` ]
274
+ * Default: `slack`
275
+
276
+ ##### chatops_url
277
+ *Replaces `slack_webhook`*
278
+
279
+ URL of the API or Webhook to send notifications to. See Documentation of your tool for details.
280
+ * Default: `''`
281
+
282
+ ##### chatops_user
283
+ *Replaces `slack_user`*
284
+
285
+ User to post notification as.
286
+ * Default: `puppet_webhook`
287
+
288
+ ##### chatops_channel
289
+ *Replaces `slack_channel`*
290
+
291
+ Channel/Team/Area to post to.
292
+ * Default: `#general`
293
+
294
+ ##### chatops_options
295
+
296
+ Hash of options to pass to the Chatops plugin. Each set of options are unique to each tool, so please see your tool's documentation for more information.
297
+ * Default: `{}`
298
+
193
299
  ##### slack_webhook
300
+ ***DEPRECATED* - Please use `chatops_url` instead**
194
301
 
195
302
  URL of your Slack Webhook receiver, if you wish not to use a Slack Webhook, then simply leave the option on `false`, otherwise use the full Wwebhook URL for your community as per https://api.slack.com/incoming-webhooks.
196
303
  * Valid options: [ `https://hooks.slack.com/services/<generated_hash>`, `false` ]
197
304
  * Default: `false`
198
305
 
199
306
  ##### slack_channel
307
+ ***DEPRECATED* - Please use `chatops_channel` instead**
200
308
 
201
309
  Name of the Slack channel to post to. Ignored if `slack_webhook` is disabled.
202
310
  Default: `#general`
203
311
 
204
312
  ##### slack_user
313
+ ***DEPRECATED* - Please use `chatops_user` instead**
205
314
 
206
315
  Name of the Slack user to post as. Ignored if `slack_webhook` is disabled.
207
316
  Default: `puppet_webhook`
208
317
 
209
318
  ##### slack_emoji
319
+ ***DEPRECATED* - Please use `chatops_options` instead.**
320
+ **Example for new config ONLY:**
321
+ ``` yaml
322
+ chatops_options:
323
+ icon_emoji: ':ocean:'
324
+ ```
210
325
 
211
326
  Icon emoji for the Webhook to use when posting. Ignored if `slack_webhook` is disabled.
212
327
  Default: `:ocean:`
213
328
 
214
329
  ##### slack_proxy_url
330
+ ***DEPRECATED* - Please use `chatops_options` instead.**
331
+ **Example for new config ONLY:**
332
+ ``` yaml
333
+ chatops_options:
334
+ http_options:
335
+ proxy_address: 'http://proxy.example.com'
336
+ proxy_port: '3128'
337
+ proxy_from_env: false
338
+ ```
215
339
 
216
340
  The proxy URL for Slack if used.
217
341
  * MUST BE A VALID URL.
data/config/app.yml CHANGED
@@ -10,8 +10,13 @@ use_mco_ruby: false
10
10
  use_mcollective: false
11
11
  discovery_timeout: '10'
12
12
 
13
- # Slack Notifications
14
- slack_webhook: false
13
+ # Chatops Notification
14
+ chatops: false
15
+ # Slack Example
16
+ # chatops_service: 'slack'
17
+ # chatops_channel: '#general'
18
+ # chatops_user: 'r10k'
19
+ # chatops_url: 'https://hooks.slack.com/services/<hash>/<hash>/<hash>'
15
20
 
16
21
  # R10k
17
22
  default_branch: production
@@ -1,4 +1,5 @@
1
1
  require 'plugins/mcollective'
2
+ require 'plugins/chatops'
2
3
 
3
4
  module Deployments # rubocop:disable Style/Documentation
4
5
  def deploy(branch, deleted)
@@ -23,18 +24,18 @@ module Deployments # rubocop:disable Style/Documentation
23
24
  command = "#{settings.command_prefix} r10k deploy environment #{branch} #{settings.r10k_deploy_arguments}"
24
25
  message = run_command(command)
25
26
  end
26
- status_message = { status: :success, message: message.to_s, branch: branch, status_code: 200 }
27
+ status_message = { status: :success, message: message.to_s, branch: branch, status_code: 202 }
27
28
  LOGGER.info("message: #{message} branch: #{branch}")
28
29
  unless deleted
29
30
  generate_types(branch) if types?
30
31
  end
31
- notify_slack(status_message) if slack?
32
+ notification(status_message)
32
33
  [status_message[:status_code], status_message.to_json]
33
34
  rescue StandardError => e
34
35
  status_message = { status: :fail, message: e.message, trace: e.backtrace, branch: branch, status_code: 500 }
35
36
  LOGGER.error("message: #{e.message} trace: #{e.backtrace}")
36
37
  status 500
37
- notify_slack(status_message) if slack?
38
+ notification(status_message)
38
39
  status_message.to_json
39
40
  end
40
41
 
@@ -61,14 +62,14 @@ module Deployments # rubocop:disable Style/Documentation
61
62
  message = run_command(command)
62
63
  end
63
64
  LOGGER.info("message: #{message} module_name: #{module_name}")
64
- status_message = { status: :success, message: message.to_s, module_name: module_name, status_code: 200 }
65
- notify_slack(status_message) if slack?
65
+ status_message = { status: :success, message: message.to_s, module_name: module_name, status_code: 202 }
66
+ notification(status_message)
66
67
  status_message.to_json
67
68
  rescue StandardError => e
69
+ status_message = { status: :fail, message: e.message, trace: e.backtrace, branch: branch, status_code: 500 }
68
70
  LOGGER.error("message: #{e.message} trace: #{e.backtrace}")
69
71
  status 500
70
- status_message = { status: :fail, message: e.message, trace: e.backtrace, module_name: module_name, status_code: 500 }
71
- notify_slack(status_message) if slack?
72
+ notification(status_message)
72
73
  status_message.to_json
73
74
  end
74
75
  end
data/lib/helpers/tasks.rb CHANGED
@@ -48,7 +48,7 @@ module Tasks # rubocop:disable Style/Documentation
48
48
 
49
49
  def run_command(command)
50
50
  message = "forked: #{command}"
51
- exec "#{command} &"
51
+ system "#{command} &"
52
52
  message
53
53
  end
54
54
 
@@ -58,66 +58,53 @@ module Tasks # rubocop:disable Style/Documentation
58
58
  message = run_command(command)
59
59
  LOGGER.info("message: #{message} environment: #{environment}")
60
60
  status_message = { status: :success, message: message.to_s, environment: environment, status_code: 200 }
61
- notify_slack(status_message) if slack?
61
+ notification(status_message)
62
62
  rescue StandardError => e
63
63
  LOGGER.error("message: #{e.message} trace: #{e.backtrace}")
64
64
  status_message = { status: :fail, message: e.message, trace: e.backtrace, environment: environment, status_code: 500 }
65
- notify_slack(status_message) if slack?
65
+ notification(status_message)
66
66
  end
67
67
 
68
- def notify_slack(status_message)
69
- return unless settings.slack_webhook
70
-
71
- if settings.slack_proxy_url
72
- uri = URI(settings.slack_proxy_url)
73
- http_options = {
74
- proxy_address: uri.hostname,
75
- proxy_port: uri.port,
76
- proxy_from_env: false
77
- }
78
- else
79
- http_options = {}
80
- end
81
-
82
- notifier = Slack::Notifier.new settings.slack_webhook do
83
- defaults channel: settings.slack_channel,
84
- username: settings.slack_user,
85
- icon_emoji: settings.slack_emoji,
86
- http_options: http_options
87
- end
88
-
89
- if status_message[:branch]
90
- target = status_message[:branch]
91
- elsif status_message[:module]
92
- target = status_message[:module]
93
- end
94
-
95
- message = {
96
- author: 'r10k for Puppet',
97
- title: "r10k deployment of Puppet environment #{target}"
98
- }
99
-
100
- case status_message[:status_code]
101
- when 200
102
- message.merge!(
103
- color: 'good',
104
- text: "Successfully deployed #{target}",
105
- fallback: "Successfully deployed #{target}"
106
- )
107
- when 500
108
- message.merge!(
109
- color: 'bad',
110
- text: "Failed to deploy #{target}",
111
- fallback: "Failed to deploy #{target}"
112
- )
113
- end
68
+ def notification(message)
69
+ return unless settings.chatops || settings.slack_webhook
70
+ slack_settings if settings.chatops == false && settings.slack_webhook != false
71
+ PuppetWebhook::Chatops.new(settings.chatops_service,
72
+ settings.chatops_url,
73
+ settings.chatops_channel,
74
+ settings.chatops_user,
75
+ settings.chatops_options).notify(message)
76
+ end
114
77
 
115
- notifier.post text: message[:fallback], attachments: [message]
78
+ # Deprecated
79
+ # TODO: Remove in release 3.0.0
80
+ def slack_settings
81
+ settings.chatops_service = 'slack'
82
+ LOGGER.warn('settings.slack_webhook is deprecated and will be removed in puppet_webhook 3.0.0')
83
+ settings.chatops_url = settings.slack_webhook
84
+ LOGGER.warn('settings.slack_user is deprecated and will be removed in puppet_webhook 3.0.0')
85
+ settings.chatops_user = settings.slack_user
86
+ LOGGER.warn('settings.slack_channel is deprecated and will be removed in puppet_webhook 3.0.0')
87
+ settings.chatops_channel = settings.slack_channel
88
+ LOGGER.warn('settings.slack_emoji is deprecated and will be removed in puppet_webhook 3.0.0')
89
+ settings.chatops_options[:icon_emoji] = settings.slack_emoji
90
+ LOGGER.warn('settings.slack_proxy_url is deprecated and will be removed in puppet_webhook 3.0.0')
91
+ settings.chatops_options[:http_options] = if settings.slack_proxy_url
92
+ slack_proxy
93
+ else
94
+ {}
95
+ end
116
96
  end
117
97
 
118
- def slack?
119
- return false if settings.slack_webhook.nil?
120
- settings.slack_webhook
98
+ # Deprecated
99
+ # TODO: Remove in release 3.0.0
100
+ def slack_proxy
101
+ uri = URI(settings.slack_proxy_url)
102
+ http_options = {
103
+ proxy_address: uri.hostname,
104
+ proxy_port: uri.port,
105
+ proxy_from_env: false
106
+ }
107
+ http_options
121
108
  end
122
109
 
123
110
  def types?
@@ -0,0 +1,60 @@
1
+ require 'rocket-chat-notifier'
2
+
3
+ class PuppetWebhook
4
+ class Chatops
5
+ # Sets up Rocketchat object that will send notifications to Slack via a webhook.
6
+ class Rocketchat
7
+ def initialize(channel, url, user, message, options = {})
8
+ @channel = channel
9
+ @url = url
10
+ @user = user
11
+ @message = message
12
+ @options = options
13
+ end
14
+
15
+ def notify
16
+ notifier = RocketChat::Notifier.new @url, http_options: @options[:http_options]
17
+ notifier.username = @user
18
+ notifier.channel = @channel
19
+
20
+ target = if @message[:branch]
21
+ @message[:branch]
22
+ elsif @message[:module]
23
+ @message[:module]
24
+ end
25
+
26
+ msg = "r10k deployment of Puppet environment/module #{target} started..."
27
+
28
+ attachment = format_attachment(target)
29
+
30
+ notifier.ping(msg, icon_emoji: @options[:icon_emoji], attachments: [attachment])
31
+ end
32
+
33
+ private
34
+
35
+ def format_attachment(target)
36
+ attachment = {
37
+ author: 'r10k for Puppet',
38
+ title: "r10k deployment of Puppet environment #{target}"
39
+ }
40
+
41
+ case @message[:status_code]
42
+ when 200
43
+ attachment.merge!(
44
+ color: 'good',
45
+ text: "Successfully started deployment of #{target}",
46
+ fallback: "Successfully started deployment of #{target}"
47
+ )
48
+ when 500
49
+ attachment.merge!(
50
+ color: 'bad',
51
+ text: "Failed to deploy #{target}",
52
+ fallback: "Failed to deploy #{target}"
53
+ )
54
+ end
55
+
56
+ attachment
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,60 @@
1
+ require 'slack-notifier'
2
+
3
+ class PuppetWebhook
4
+ class Chatops
5
+ # Sets up Slack object that will send notifications to Slack via a webhook.
6
+ class Slack
7
+ def initialize(channel, url, user, message, options = {})
8
+ @channel = channel
9
+ @url = url
10
+ @user = user
11
+ @message = message
12
+ @options = options
13
+ end
14
+
15
+ def notify
16
+ notifier = ::Slack::Notifier.new @url, http_options: @options[:http_options]
17
+
18
+ target = if @message[:branch]
19
+ @message[:branch]
20
+ elsif @message[:module]
21
+ @message[:module]
22
+ end
23
+
24
+ msg = format_message(target)
25
+
26
+ notifier.post text: msg[:fallback],
27
+ channel: @channel,
28
+ username: @user,
29
+ icon_emoji: @options[:icon_emoji],
30
+ attachments: [msg]
31
+ end
32
+
33
+ private
34
+
35
+ def format_message(target)
36
+ message = {
37
+ author: 'r10k for Puppet',
38
+ title: "r10k deployment of Puppet environment #{target}"
39
+ }
40
+
41
+ case @message[:status_code]
42
+ when 202
43
+ message.merge!(
44
+ color: 'good',
45
+ text: "Successfully started deployment of #{target}",
46
+ fallback: "Successfully started deployment of #{target}"
47
+ )
48
+ when 500
49
+ message.merge!(
50
+ color: 'bad',
51
+ text: "Failed to deploy #{target}",
52
+ fallback: "Failed to deploy #{target}"
53
+ )
54
+ end
55
+
56
+ message
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,41 @@
1
+ class PuppetWebhook
2
+ # Chatops object for sending webhook notifications to chatops tools
3
+ class Chatops
4
+ def initialize(service, url, channel, user, options = {})
5
+ @service = service
6
+ @url = url
7
+ @channel = channel
8
+ @user = user
9
+ @args = options
10
+ end
11
+
12
+ def notify(message)
13
+ case @service
14
+ when 'slack'
15
+ require 'plugins/chatops/slack'
16
+ LOGGER.info("Sending Slack webhook message to #{@url}")
17
+ Chatops::Slack.new(
18
+ @channel,
19
+ @url,
20
+ @user,
21
+ message,
22
+ http_options: @args[:http_options] || {},
23
+ icon_emoji: @args[:icon_emoji]
24
+ ).notify
25
+ when 'rocketchat'
26
+ require 'plugins/chatops/rocketchat'
27
+ LOGGER.info("Sending Rocket.Chat webhook message to #{@url}")
28
+ Chatops::Rocketchat.new(
29
+ @channel,
30
+ @url,
31
+ @user,
32
+ message,
33
+ http_options: @args[:http_options] || {},
34
+ icon_emoji: @args[:icon_emoji]
35
+ ).notify
36
+ else
37
+ LOGGER.error("Service #{@service} is not currently supported")
38
+ end
39
+ end
40
+ end
41
+ end
@@ -37,11 +37,12 @@ class PuppetWebhook < Sinatra::Base # rubocop:disable Style/Documentation
37
37
  set :use_mco_ruby, false unless settings.respond_to? :use_mco_ruby=
38
38
  set :use_mcollective, false unless settings.respond_to? :use_mcollective=
39
39
  set :discovery_timeout, false unless settings.respond_to? :discovery_timeout=
40
- set :slack_webhook, false unless settings.respond_to? :slack_webhook=
41
- set :slack_channel, '#general' unless settings.respond_to? :slack_channel=
42
- set :slack_user, 'puppet_webhook' unless settings.respond_to? :slack_user=
43
- set :slack_emoji, ':ocean:' unless settings.respond_to? :slack_emoji=
44
- set :slack_proxy_url, nil unless settings.respond_to? :slack_proxy_url=
40
+ set :chatops, false unless settings.respond_to? :chatops=
41
+ set :chatops_service, 'slack' unless settings.respond_to? :chatops_service=
42
+ set :chatops_url, '' unless settings.respond_to? :chatops_url=
43
+ set :chatops_channel, '#general' unless settings.respond_to? :chatops_channel=
44
+ set :chatops_user, 'puppet_webhook' unless settings.respond_to? :chatops_user=
45
+ set :chatops_options, {} unless settings.respond_to? :chatops_options=
45
46
  set :default_branch, 'production' unless settings.respond_to? :default_branch=
46
47
  set :ignore_environments, [] unless settings.respond_to? :ignore_environments=
47
48
  set :prefix, nil unless settings.respond_to? :prefix=
@@ -52,6 +53,13 @@ class PuppetWebhook < Sinatra::Base # rubocop:disable Style/Documentation
52
53
  set :github_secret, nil unless settings.respond_to? :github_secret=
53
54
  set :repository_events, nil unless settings.respond_to? :respository_events=
54
55
 
56
+ # Deprecated Settings
57
+ set :slack_webhook, false unless settings.respond_to? :slack_webhook=
58
+ set :slack_channel, '#general' unless settings.respond_to? :slack_channel=
59
+ set :slack_user, 'puppet_webhook' unless settings.respond_to? :slack_user=
60
+ set :slack_emoji, ':ocean:' unless settings.respond_to? :slack_emoji=
61
+ set :slack_proxy_url, nil unless settings.respond_to? :slack_proxy_url=
62
+
55
63
  require 'helpers/init'
56
64
 
57
65
  register Sinatra::PuppetWebhookRoutes::Default
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet_webhook
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vox Pupuli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-24 00:00:00.000000000 Z
11
+ date: 2018-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rocket-chat-notifier
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: sinatra
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -239,6 +253,9 @@ files:
239
253
  - lib/parsers/webhook_json_parser.rb
240
254
  - lib/parsers/webhook_parser.rb
241
255
  - lib/parsers/webhook_www_form_url_encoded_parser.rb
256
+ - lib/plugins/chatops.rb
257
+ - lib/plugins/chatops/rocketchat.rb
258
+ - lib/plugins/chatops/slack.rb
242
259
  - lib/plugins/mcollective.rb
243
260
  - lib/puppet_webhook.rb
244
261
  - lib/routes/default.rb