slackistrano 3.8.4 → 4.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ae282d3041a490b906223784c2cd9689450f30cae5c045e4891112e6295d39d
4
- data.tar.gz: a8a4a0b022efe867ccc259e36bce4916f101d20800cb2cb14c8f21f58b58a171
3
+ metadata.gz: 8f28f0c81b8d8772f9b77f26c0f3f069ea770630f94c63d91affc4724e397415
4
+ data.tar.gz: 49771347f5329cff33061b3fe4a83c2b785d7922dc57f420b766a0b9515798fc
5
5
  SHA512:
6
- metadata.gz: 020d3c36889ef7696a5f5d1e2879bfb72c3084915da4724f6faa396498285581b6659468277317f392ca6ee812440636d8d6c0f5ce50abeffe85b221c6ab959c
7
- data.tar.gz: 540bf2539b7ecac52f90260f2454e25cfcb7bcbc7d26409eb43765154e3ac6a22a02325513e1ff0a805dc82c8c9de4e8c2506ab290d0047785db710edb558bf9
6
+ metadata.gz: 578f583688d88ac3c0092d8f4da674bae4b562c58bb0c120d24cd4c77e38b744e8eb0310125a148d7bcf2c03beef70b8f2968051121a372db160b9c9c6ffb18c
7
+ data.tar.gz: 83f90a56bd3e2a067fd9437417e2fef5ef0853bf59d56fc87160982f482acd31022cb7a82d91018552396cc963836ea8e5a0f991e7533ea8321a53b7ee1651e8
data/.travis.yml CHANGED
@@ -4,4 +4,3 @@ cache: bundler
4
4
  rvm:
5
5
  - 2.6
6
6
  - 2.5
7
- - 2.3
data/CHANGELOG.md CHANGED
@@ -1,14 +1,15 @@
1
1
  # Slackistrano Change Log
2
2
 
3
- 3.8.4
3
+ 4.0.0
4
4
  -----
5
5
 
6
- - Fix improper boolean check when using not using slackbot and channels are empty [#90]
6
+ - **BREAKING:** The Messaging::Deprecated has been removed. You must use
7
+ the new configuration options as specified in the README.
7
8
 
8
9
  3.8.3
9
10
  -----
10
11
 
11
- - Never released
12
+ - Fix improper boolean check when using not using slackbot and channels are empty [#90]
12
13
 
13
14
  3.8.2
14
15
  -----
@@ -17,21 +17,12 @@ module Slackistrano
17
17
  def initialize(env)
18
18
  @env = env
19
19
  config = fetch(:slackistrano, {})
20
- @messaging = case config
21
- when false
22
- Messaging::Null.new
23
- when -> (o) { o.empty? }
24
- klass = Messaging::Deprecated.new(
25
- env: @env,
26
- team: fetch(:slack_team),
27
- channel: fetch(:slack_channel),
28
- token: fetch(:slack_token),
29
- webhook: fetch(:slack_webhook)
30
- )
31
- else
20
+ @messaging = if config
32
21
  opts = config.dup.merge(env: @env)
33
22
  klass = opts.delete(:klass) || Messaging::Default
34
23
  klass.new(opts)
24
+ else
25
+ Messaging::Null.new
35
26
  end
36
27
  end
37
28
 
@@ -72,5 +72,4 @@ module Slackistrano
72
72
  end
73
73
 
74
74
  require_relative 'default'
75
- require_relative 'deprecated'
76
75
  require_relative 'null'
@@ -1,3 +1,3 @@
1
1
  module Slackistrano
2
- VERSION = '3.8.4'
2
+ VERSION = '4.0.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slackistrano
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.4
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philip Hallstrom
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-01 00:00:00.000000000 Z
11
+ date: 2019-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
@@ -86,7 +86,6 @@ files:
86
86
  - lib/slackistrano/capistrano.rb
87
87
  - lib/slackistrano/messaging/base.rb
88
88
  - lib/slackistrano/messaging/default.rb
89
- - lib/slackistrano/messaging/deprecated.rb
90
89
  - lib/slackistrano/messaging/helpers.rb
91
90
  - lib/slackistrano/messaging/null.rb
92
91
  - lib/slackistrano/tasks/slack.rake
@@ -95,7 +94,6 @@ files:
95
94
  - spec/capistrano_deploy_stubs.rake
96
95
  - spec/disabling_posting_to_slack_spec.rb
97
96
  - spec/dry_run_spec.rb
98
- - spec/messaging/deprecated_spec.rb
99
97
  - spec/messaging/helpers_spec.rb
100
98
  - spec/messaging/null_spec.rb
101
99
  - spec/nil_payload_spec.rb
@@ -129,7 +127,6 @@ test_files:
129
127
  - spec/capistrano_deploy_stubs.rake
130
128
  - spec/disabling_posting_to_slack_spec.rb
131
129
  - spec/dry_run_spec.rb
132
- - spec/messaging/deprecated_spec.rb
133
130
  - spec/messaging/helpers_spec.rb
134
131
  - spec/messaging/null_spec.rb
135
132
  - spec/nil_payload_spec.rb
@@ -1,75 +0,0 @@
1
- module Slackistrano
2
- module Messaging
3
- class Deprecated < Base
4
-
5
- def initialize(env: nil, team: nil, channel: nil, token: nil, webhook: nil)
6
- run_locally do
7
- warn("[slackistrano] You are using an outdated configuration that will be removed soon.")
8
- warn("[slackistrano] Please upgrade soon! <https://github.com/phallstrom/slackistrano>")
9
- end
10
-
11
- super
12
- end
13
-
14
- def icon_url
15
- fetch("slack_icon_url".to_sym) || super
16
- end
17
-
18
- def icon_emoji
19
- fetch("slack_icon_emoji".to_sym) || super
20
- end
21
-
22
- def username
23
- fetch("slack_username".to_sym) || super
24
- end
25
-
26
- def deployer
27
- fetch("slack_deploy_user".to_sym) || super
28
- end
29
-
30
- def channels_for(action)
31
- fetch("slack_channel_#{action}".to_sym) || super
32
- end
33
-
34
- def payload_for_updating
35
- make_message(__method__, super)
36
- end
37
-
38
- def payload_for_reverting
39
- make_message(__method__, super)
40
- end
41
-
42
- def payload_for_updated
43
- make_message(__method__, super.merge(color: 'good'))
44
- end
45
-
46
- def payload_for_reverted
47
- make_message(__method__, super.merge(color: 'warning'))
48
- end
49
-
50
- def payload_for_failed
51
- make_message(__method__, super.merge(color: 'danger'))
52
- end
53
-
54
- private ##################################################
55
-
56
- def make_message(method, options={})
57
- action = method.to_s.sub('payload_for_', '')
58
-
59
- return nil unless fetch("slack_run".to_sym, true) && fetch("slack_run_#{action}".to_sym, true)
60
-
61
- attachment = options.merge({
62
- title: fetch(:"slack_title_#{action}"),
63
- pretext: fetch(:"slack_pretext_#{action}"),
64
- text: fetch(:"slack_msg_#{action}", options[:text]),
65
- fields: fetch(:"slack_fields_#{action}", []),
66
- fallback: fetch(:"slack_fallback_#{action}"),
67
- mrkdwn_in: [:text, :pretext]
68
- }).reject{|k, v| v.nil? }
69
-
70
- {attachments: [attachment]}
71
- end
72
-
73
- end
74
- end
75
- end
@@ -1,79 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Slackistrano::Messaging::Deprecated do
4
- before(:each) do
5
- set :slackistrano, {}
6
- end
7
-
8
- %w[updating reverting updated reverted failed].each do |stage|
9
- it "posts to slack on slack:deploy:#{stage}" do
10
- set :slack_webhook, -> { "..." }
11
- set :slack_run, ->{ true }
12
- set "slack_run_#{stage}".to_sym, ->{ true }
13
- expect_any_instance_of(Slackistrano::Capistrano).to receive(:post)
14
- Rake::Task["slack:deploy:#{stage}"].execute
15
- end
16
-
17
- it "does not post to slack on slack:deploy:#{stage} when disabled" do
18
- set :slack_webhook, -> { "..." }
19
- set :slack_run, ->{ true }
20
- set "slack_run_#{stage}".to_sym, ->{ false }
21
- expect_any_instance_of(Slackistrano::Capistrano).not_to receive(:post)
22
- Rake::Task["slack:deploy:#{stage}"].execute
23
- end
24
-
25
- it "does not post to slack on slack:deploy:#{stage} when disabled globally" do
26
- set :slack_webhook, -> { "..." }
27
- set :slack_run, ->{ false }
28
- set "slack_run_#{stage}".to_sym, ->{ true }
29
- expect_any_instance_of(Slackistrano::Capistrano).not_to receive(:post)
30
- Rake::Task["slack:deploy:#{stage}"].execute
31
- end
32
- end
33
-
34
- [ # stage, color, channel
35
- ['updating', nil, nil],
36
- ['reverting', nil, nil],
37
- ['updated', 'good', nil],
38
- ['reverted', 'warning', nil],
39
- ['failed', 'danger', nil],
40
- ['updating', nil, 'starting_channel'],
41
- ['updated', 'good', 'finished_channel'],
42
- ['reverted', 'warning', 'rollback_channel'],
43
- ['failed', 'danger', 'failed_channel'],
44
- ].each do |stage, color, channel_for_stage|
45
-
46
- it "calls post_to_slack with the right arguments for stage=#{stage}, color=#{color}, channel_for_stage=#{channel_for_stage}" do
47
- set :slack_run, ->{ true }
48
- set "slack_run_#{stage}".to_sym, -> { true }
49
- set :slack_team, -> { 'team' }
50
- set :slack_token, -> { 'token' }
51
- set :slack_webhook, -> { 'webhook' }
52
- set :slack_channel, -> { 'channel' }
53
- set :slack_icon_url, -> { 'http://icon.url' }
54
- set :slack_icon_emoji, -> { ':emoji:' }
55
- set "slack_msg_#{stage}".to_sym, -> { 'text message' }
56
-
57
- set "slack_channel_#{stage}".to_sym, -> { channel_for_stage }
58
- expected_channel = channel_for_stage || 'channel'
59
-
60
- attachment = {
61
- text: 'text message',
62
- color: color,
63
- fields: [],
64
- fallback: nil,
65
- mrkdwn_in: [:text, :pretext]
66
- }.reject{|k,v| v.nil?}
67
-
68
- expect_any_instance_of(Slackistrano::Capistrano).to receive(:post_to_slack).with({
69
- channel: expected_channel,
70
- username: 'Slackistrano',
71
- icon_url: 'http://icon.url',
72
- icon_emoji: ':emoji:',
73
- attachments: [attachment]
74
- }).and_return(double(code: '200'))
75
- Rake::Task["slack:deploy:#{stage}"].execute
76
- end
77
- end
78
-
79
- end