fluent-plugin-slack 0.5.3 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +1 -0
- data/VERSION +1 -1
- data/lib/fluent/plugin/out_buffered_slack.rb +16 -3
- data/lib/fluent/plugin/out_slack.rb +16 -3
- data/test/plugin/test_out_slack.rb +35 -1
- data/test/plugin/test_slack_client.rb +44 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad20f86b455e8ca489fe6ed2be1aea310505174d
|
4
|
+
data.tar.gz: 6a8410c533109fd41cc92c8ee3008841536264f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 132d099d24bfe70cb2aa297f2a63ec987981b120e27328d51137896ec2f3b685d7074cefefdcd3ac042fa44ca72ff9a01ba90b6899d0d3f81c3b49a30023d243
|
7
|
+
data.tar.gz: d8a789673b0f0c8e68c39abe231a313366c8f1f8e2cd8d24eb26c8022160b72041c83c0b584ba9f2b361f52a56444bd0e43e7cad8ade9fdd760671756607b84c
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -56,6 +56,7 @@ fluent_logger.post('slack', {
|
|
56
56
|
|color|color to use|good|
|
57
57
|
|icon_emoji|emoji to use as the icon. either of icon_emoji or icon_url can be specified|`:question:`|
|
58
58
|
|icon_url|url to an image to use as the icon. either of icon_emoji or icon_url can be specified|nil|
|
59
|
+
|mrkdwn|enable formatting. see https://api.slack.com/docs/formatting|false|
|
59
60
|
|channel|channel to send messages (without first '#')||
|
60
61
|
|channel_keys|keys used to format channel. %s will be replaced with value specified by channel_keys if this option is used|nil|
|
61
62
|
|title|title format. %s will be replaced with value specified by title_keys. title is created from the first appeared record on each tag|nil|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.4
|
@@ -17,6 +17,7 @@ module Fluent
|
|
17
17
|
config_param :color, :string, default: 'good'
|
18
18
|
config_param :icon_emoji, :string, default: nil
|
19
19
|
config_param :icon_url, :string, default: nil
|
20
|
+
config_param :mrkdwn, :bool, default: false
|
20
21
|
config_param :auto_channels_create, :bool, default: false
|
21
22
|
config_param :https_proxy, :string, default: nil
|
22
23
|
|
@@ -34,7 +35,7 @@ module Fluent
|
|
34
35
|
end
|
35
36
|
|
36
37
|
# for test
|
37
|
-
attr_reader :slack, :time_format, :localtime, :timef
|
38
|
+
attr_reader :slack, :time_format, :localtime, :timef, :mrkdwn_in
|
38
39
|
|
39
40
|
def initialize
|
40
41
|
super
|
@@ -102,6 +103,11 @@ module Fluent
|
|
102
103
|
end
|
103
104
|
@icon_emoji ||= ':question:' unless @icon_url
|
104
105
|
|
106
|
+
if @mrkdwn
|
107
|
+
# Enable markdown for attachments. See https://api.slack.com/docs/formatting
|
108
|
+
@mrkdwn_in = %w[text fields]
|
109
|
+
end
|
110
|
+
|
105
111
|
@post_message_opts = @auto_channels_create ? {auto_channels_create: true} : {}
|
106
112
|
end
|
107
113
|
|
@@ -143,6 +149,13 @@ module Fluent
|
|
143
149
|
@common_payload
|
144
150
|
end
|
145
151
|
|
152
|
+
def common_attachment
|
153
|
+
return @common_attachment if @common_attachment
|
154
|
+
@common_attachment = {}
|
155
|
+
@common_attachment[:mrkdwn_in] = @mrkdwn_in if @mrkdwn_in
|
156
|
+
@common_attachment
|
157
|
+
end
|
158
|
+
|
146
159
|
Field = Struct.new("Field", :title, :value)
|
147
160
|
|
148
161
|
def build_title_payloads(chunk)
|
@@ -161,7 +174,7 @@ module Fluent
|
|
161
174
|
:color => @color,
|
162
175
|
:fallback => fields.values.map(&:title).join(' '), # fallback is the message shown on popup
|
163
176
|
:fields => fields.values.map(&:to_h)
|
164
|
-
}],
|
177
|
+
}.merge(common_attachment)],
|
165
178
|
}.merge(common_payload)
|
166
179
|
end
|
167
180
|
end
|
@@ -180,7 +193,7 @@ module Fluent
|
|
180
193
|
:color => @color,
|
181
194
|
:fallback => text,
|
182
195
|
:text => text,
|
183
|
-
}],
|
196
|
+
}.merge(common_attachment)],
|
184
197
|
}.merge(common_payload)
|
185
198
|
end
|
186
199
|
end
|
@@ -17,6 +17,7 @@ module Fluent
|
|
17
17
|
config_param :color, :string, default: 'good'
|
18
18
|
config_param :icon_emoji, :string, default: nil
|
19
19
|
config_param :icon_url, :string, default: nil
|
20
|
+
config_param :mrkdwn, :bool, default: false
|
20
21
|
config_param :auto_channels_create, :bool, default: false
|
21
22
|
config_param :https_proxy, :string, default: nil
|
22
23
|
|
@@ -34,7 +35,7 @@ module Fluent
|
|
34
35
|
end
|
35
36
|
|
36
37
|
# for test
|
37
|
-
attr_reader :slack, :time_format, :localtime, :timef
|
38
|
+
attr_reader :slack, :time_format, :localtime, :timef, :mrkdwn_in
|
38
39
|
|
39
40
|
def initialize
|
40
41
|
super
|
@@ -102,6 +103,11 @@ module Fluent
|
|
102
103
|
end
|
103
104
|
@icon_emoji ||= ':question:' unless @icon_url
|
104
105
|
|
106
|
+
if @mrkdwn
|
107
|
+
# Enable markdown for attachments. See https://api.slack.com/docs/formatting
|
108
|
+
@mrkdwn_in = %w[text fields]
|
109
|
+
end
|
110
|
+
|
105
111
|
@post_message_opts = @auto_channels_create ? {auto_channels_create: true} : {}
|
106
112
|
end
|
107
113
|
|
@@ -143,6 +149,13 @@ module Fluent
|
|
143
149
|
@common_payload
|
144
150
|
end
|
145
151
|
|
152
|
+
def common_attachment
|
153
|
+
return @common_attachment if @common_attachment
|
154
|
+
@common_attachment = {}
|
155
|
+
@common_attachment[:mrkdwn_in] = @mrkdwn_in if @mrkdwn_in
|
156
|
+
@common_attachment
|
157
|
+
end
|
158
|
+
|
146
159
|
Field = Struct.new("Field", :title, :value)
|
147
160
|
|
148
161
|
def build_title_payloads(chunk)
|
@@ -161,7 +174,7 @@ module Fluent
|
|
161
174
|
:color => @color,
|
162
175
|
:fallback => fields.values.map(&:title).join(' '), # fallback is the message shown on popup
|
163
176
|
:fields => fields.values.map(&:to_h)
|
164
|
-
}],
|
177
|
+
}.merge(common_attachment)],
|
165
178
|
}.merge(common_payload)
|
166
179
|
end
|
167
180
|
end
|
@@ -180,7 +193,7 @@ module Fluent
|
|
180
193
|
:color => @color,
|
181
194
|
:fallback => text,
|
182
195
|
:text => text,
|
183
|
-
}],
|
196
|
+
}.merge(common_attachment)],
|
184
197
|
}.merge(common_payload)
|
185
198
|
end
|
186
199
|
end
|
@@ -172,6 +172,18 @@ class SlackOutputTest < Test::Unit::TestCase
|
|
172
172
|
assert_not_equal Net::HTTP, d.instance.slack.proxy_class # Net::HTTP.Proxy
|
173
173
|
end
|
174
174
|
|
175
|
+
def test_mrkwn_configure
|
176
|
+
# default
|
177
|
+
d = create_driver(CONFIG)
|
178
|
+
assert_equal false, d.instance.mrkdwn
|
179
|
+
assert_equal nil, d.instance.mrkdwn_in
|
180
|
+
|
181
|
+
# mrkdwn
|
182
|
+
d = create_driver(CONFIG + %[mrkdwn true])
|
183
|
+
assert_equal true, d.instance.mrkdwn
|
184
|
+
assert_equal %w[text fields], d.instance.mrkdwn_in
|
185
|
+
end
|
186
|
+
|
175
187
|
def test_default_incoming_webhook
|
176
188
|
d = create_driver(%[
|
177
189
|
channel channel
|
@@ -242,7 +254,7 @@ class SlackOutputTest < Test::Unit::TestCase
|
|
242
254
|
title: d.tag,
|
243
255
|
value: "sowawa1\nsowawa2\n",
|
244
256
|
}
|
245
|
-
]
|
257
|
+
],
|
246
258
|
}]
|
247
259
|
}, {})
|
248
260
|
with_timezone('Asia/Tokyo') do
|
@@ -348,4 +360,26 @@ class SlackOutputTest < Test::Unit::TestCase
|
|
348
360
|
d.run
|
349
361
|
end
|
350
362
|
end
|
363
|
+
|
364
|
+
def test_mrkdwn
|
365
|
+
d = create_driver(CONFIG + %[mrkdwn true])
|
366
|
+
time = Time.parse("2014-01-01 22:00:00 UTC").to_i
|
367
|
+
d.tag = 'test'
|
368
|
+
mock(d.instance.slack).post_message({
|
369
|
+
token: 'XXX-XXX-XXX',
|
370
|
+
channel: '#channel',
|
371
|
+
username: 'fluentd',
|
372
|
+
icon_emoji: ':question:',
|
373
|
+
attachments: [{
|
374
|
+
color: 'good',
|
375
|
+
fallback: "foo\n",
|
376
|
+
text: "foo\n",
|
377
|
+
mrkdwn_in: ["text", "fields"],
|
378
|
+
}]
|
379
|
+
}, {})
|
380
|
+
with_timezone('Asia/Tokyo') do
|
381
|
+
d.emit({message: 'foo'}, time)
|
382
|
+
d.run
|
383
|
+
end
|
384
|
+
end
|
351
385
|
end
|
@@ -114,7 +114,7 @@ if ENV['WEBHOOK_URL'] and ENV['TOKEN']
|
|
114
114
|
end
|
115
115
|
|
116
116
|
def test_post_message_icon_url
|
117
|
-
[@incoming_webhook, @api
|
117
|
+
[@incoming_webhook, @api].each do |slack|
|
118
118
|
assert_nothing_raised do
|
119
119
|
slack.post_message(
|
120
120
|
{
|
@@ -132,6 +132,49 @@ if ENV['WEBHOOK_URL'] and ENV['TOKEN']
|
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
135
|
+
def test_post_message_text_mrkdwn
|
136
|
+
[@incoming_webhook, @api].each do |slack|
|
137
|
+
assert_nothing_raised do
|
138
|
+
slack.post_message(
|
139
|
+
{
|
140
|
+
channel: '#general',
|
141
|
+
username: 'fluentd',
|
142
|
+
attachments: [{
|
143
|
+
color: 'good',
|
144
|
+
fallback: "plain *bold* _italic_ `preformat`\n", # mrkdwn not work
|
145
|
+
text: "plain *bold* _italic_ `preformat`\n",
|
146
|
+
mrkdwn_in: ['text', 'fields'],
|
147
|
+
}]
|
148
|
+
}.merge(token(slack))
|
149
|
+
)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
def test_post_message_fields_mrkdwn
|
155
|
+
[@incoming_webhook, @api].each do |slack|
|
156
|
+
assert_nothing_raised do
|
157
|
+
slack.post_message(
|
158
|
+
{
|
159
|
+
channel: '#general',
|
160
|
+
username: 'fluentd',
|
161
|
+
attachments: [{
|
162
|
+
color: 'good',
|
163
|
+
fallback: "plain *bold* _italic_ `preformat`\n", # mrkdwn not work
|
164
|
+
fields: [
|
165
|
+
{
|
166
|
+
title: 'plain *bold* _italic* `preformat`', # mrkdwn not work
|
167
|
+
value: "plain *bold* _italic* `preformat`\n",
|
168
|
+
},
|
169
|
+
],
|
170
|
+
mrkdwn_in: ['text', 'fields'],
|
171
|
+
}]
|
172
|
+
}.merge(token(slack))
|
173
|
+
)
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
135
178
|
# Hmm, I need to delete channels to test repeatedly,
|
136
179
|
# but slack does not provide channels.delete API
|
137
180
|
def test_channels_create
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-slack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Keisuke SOGAWA
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-03-
|
12
|
+
date: 2015-03-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|
@@ -167,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
167
167
|
version: '0'
|
168
168
|
requirements: []
|
169
169
|
rubyforge_project:
|
170
|
-
rubygems_version: 2.
|
170
|
+
rubygems_version: 2.4.5
|
171
171
|
signing_key:
|
172
172
|
specification_version: 4
|
173
173
|
summary: fluent Slack plugin
|