slackistrano 0.1.12 → 1.0.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
  SHA1:
3
- metadata.gz: 5c083ad8d812b118fb281c5a0854423b18fbfe68
4
- data.tar.gz: 3c1734032ce8f8ebd498f5d23dd32e6b6516592b
3
+ metadata.gz: c2221a5e8c65f2a1a082d139cc9cdaf7bb266285
4
+ data.tar.gz: f6b272f31ed0920fb37c1df17830c2908b7f3631
5
5
  SHA512:
6
- metadata.gz: f7731d4c976a9b5883c04ed483b13c94f8cb0785f479c3d01a753183d0863f163d0326b0d197fefa4573c3adf14f97176ed359bf09ee972f9d02c3471051d37b
7
- data.tar.gz: 91793a4d0a8eaabfd79f33655269d5419134a6056449723e5f68ea355bed101ccefbfea4419b890fd2a5c97f03d48b273481d6d8d34e97c0a0b10d15ff8a7e39
6
+ metadata.gz: 6d128baa0d6b1605117c0f9fa5ead20d8b306b28672e5efb10fc7a6df6a672c47d1a7b449967960b373e7e417c673e25e83eed23af6e5147070ab3457aff350a
7
+ data.tar.gz: 7e696369664825849d4908e8d90c20abb48541ecfcda1047d064f4e99238217de7bf9e0bcb0ef673717d455e0a20657ded8cac0f07516b14c888966215e02429
data/CHANGELOG.md ADDED
@@ -0,0 +1,10 @@
1
+ # Slackistrano Change Log
2
+
3
+
4
+ 1.0.0
5
+ -----
6
+
7
+ - **BREAKING:** Renamed all `***_starting` settings to `***_updating`
8
+ - **BREAKING:** Renamed all `***_finished` settings to `***_updated`
9
+ - Added rollback options `***_reverting` and `***_reverted` [#19, #31]
10
+
data/README.md CHANGED
@@ -58,32 +58,56 @@ set :slack_token, "xxxxxxxxxxxxxxxxxxxxxxxx"
58
58
  set :slack_channel, '#general'
59
59
  ```
60
60
 
61
- Optionally, override the other slack settings:
61
+ Optionally, override the other slack settings.
62
62
 
63
63
  ```ruby
64
- set :slack_icon_url, -> { 'http://gravatar.com/avatar/885e1c523b7975c4003de162d8ee8fee?r=g&s=40' }
65
- set :slack_icon_emoji, -> { nil } # will override icon_url, Must be a string (ex: ':shipit:')
66
- set :slack_channel, -> { nil } # Channel to post to. Optional. Defaults to WebHook setting. Required if using Slackbot.
67
- set :slack_channel_starting, -> { nil } # Channel to post to. Optional. Defaults to :slack_channel.
68
- set :slack_channel_finished, -> { nil } # Channel to post to. Optional. Defaults to :slack_channel.
69
- set :slack_channel_failed, -> { nil } # Channel to post to. Optional. Defaults to :slack_channel.
70
- set :slack_username, -> { 'Slackistrano' }
71
- set :slack_run_starting, -> { true }
72
- set :slack_run_finished, -> { true }
73
- set :slack_run_failed, -> { true }
74
- set :slack_deploy_user, -> { ENV['USER'] || ENV['USERNAME'] }
75
- set :slack_msg_starting, -> { "#{fetch :slack_deploy_user} has started deploying branch #{fetch :branch} of #{fetch :application} to #{fetch :rails_env, 'production'}" }
76
- set :slack_msg_finished, -> { "#{fetch :slack_deploy_user} has finished deploying branch #{fetch :branch} of #{fetch :application} to #{fetch :rails_env, 'production'}" }
77
- set :slack_msg_failed, -> { "#{fetch :slack_deploy_user} failed to deploy branch #{fetch :branch} of #{fetch :application} to #{fetch :rails_env, 'production'}" }
78
- set :slack_fields_starting, -> { [] }
79
- set :slack_fields_finished, -> { [] }
80
- set :slack_fields_failed, -> { [] }
81
- set :slack_fallback_starting, -> { nil }
82
- set :slack_fallback_finished, -> { nil }
83
- set :slack_fallback_failed, -> { nil }
84
- set :slack_title_starting, -> { nil }
85
- set :slack_title_finished, -> { nil }
86
- set :slack_title_failed, -> { nil }
64
+ set :slack_channel_updating, -> { nil } # Channel to post to. Defaults to :slack_channel.
65
+ set :slack_channel_reverting, -> { nil } # Channel to post to. Defaults to :slack_channel.
66
+ set :slack_channel_updated, -> { nil } # Channel to post to. Defaults to :slack_channel.
67
+ set :slack_channel_reverted, -> { nil } # Channel to post to. Defaults to :slack_channel.
68
+ set :slack_channel_failed, -> { nil } # Channel to post to. Defaults to :slack_channel.
69
+
70
+ set :slack_icon_url, -> { 'http://gravatar.com/avatar/885e1c523b7975c4003de162d8ee8fee?r=g&s=40' }
71
+ set :slack_icon_emoji, -> { nil } # Emoji to use. Overrides icon_url. Must be a string (ex: ':shipit:')
72
+ set :slack_username, -> { 'Slackistrano' }
73
+
74
+ set :slack_run_updating, -> { true } # Set to false to disable deploy starting message.
75
+ set :slack_run_reverting, -> { true } # Set to false to disable rollback starting message.
76
+ set :slack_run_updated, -> { true } # Set to false to disable deploy finished message.
77
+ set :slack_run_reverted, -> { true } # Set to false to disable rollback finished message.
78
+ set :slack_run_failed, -> { true } # Set to false to disable failure message.
79
+
80
+ set :slack_deploy_user, -> { ENV['USER'] || ENV['USERNAME'] }
81
+
82
+ set :slack_msg_updating, -> { "#{fetch :slack_deploy_user} has started deploying branch #{fetch :branch} of #{fetch :application} to #{fetch :stage, 'an unknown stage'}" }
83
+ set :slack_msg_reverting, -> { "#{fetch :slack_deploy_user} has started rolling back branch #{fetch :branch} of #{fetch :application} to #{fetch :stage, 'an unknown stage'}" }
84
+ set :slack_msg_updated, -> { "#{fetch :slack_deploy_user} has finished deploying branch #{fetch :branch} of #{fetch :application} to #{fetch :stage, 'an unknown stage'}" }
85
+ set :slack_msg_reverted, -> { "#{fetch :slack_deploy_user} has finished rolling back branch of #{fetch :application} to #{fetch :stage, 'an unknown stage'}" }
86
+ set :slack_msg_failed, -> { "#{fetch :slack_deploy_user} has failed to #{fetch :slack_deploy_or_rollback} branch #{fetch :branch} of #{fetch :application} to #{fetch :stage, 'an unknown stage'}" }
87
+
88
+ set :slack_fields_updating, -> { [] }
89
+ set :slack_fields_reverting, -> { [] }
90
+ set :slack_fields_updated, -> { [] }
91
+ set :slack_fields_reverted, -> { [] }
92
+ set :slack_fields_failed, -> { [] }
93
+
94
+ set :slack_fallback_updating, -> { nil }
95
+ set :slack_fallback_reverting, -> { nil }
96
+ set :slack_fallback_updated, -> { nil }
97
+ set :slack_fallback_reverted, -> { nil }
98
+ set :slack_fallback_failed, -> { nil }
99
+
100
+ set :slack_title_updating, -> { nil }
101
+ set :slack_title_reverting, -> { nil }
102
+ set :slack_title_updated, -> { nil }
103
+ set :slack_title_reverted, -> { nil }
104
+ set :slack_title_failed, -> { nil }
105
+
106
+ set :slack_pretext_updating, -> { nil }
107
+ set :slack_pretext_reverting, -> { nil }
108
+ set :slack_pretext_updated, -> { nil }
109
+ set :slack_pretext_reverted, -> { nil }
110
+ set :slack_pretext_failed, -> { nil }
87
111
  ```
88
112
 
89
113
  **Note**: You may wish to disable one of the notifications if another service (ex:
@@ -92,8 +116,10 @@ Honeybadger) also displays a deploy notification.
92
116
  Test your setup by running:
93
117
 
94
118
  ```bash
95
- $ cap production slack:deploy:starting
96
- $ cap production slack:deploy:finished
119
+ $ cap production slack:deploy:updating
120
+ $ cap production slack:deploy:reverting
121
+ $ cap production slack:deploy:updated
122
+ $ cap production slack:deploy:reverted
97
123
  $ cap production slack:deploy:failed
98
124
  ```
99
125
 
@@ -135,7 +161,7 @@ It will produce the following format:
135
161
 
136
162
  **Note 1:** *The `fallback` field is required in order to display notifications when using `fields`.*
137
163
 
138
- **Note 2:** *The `fields` requires configuration requires you to use webhooks.*
164
+ **Note 2:** *The `fields` configuration requires you to use webhooks.*
139
165
 
140
166
  More information: [https://api.slack.com/docs/attachments](https://api.slack.com/docs/attachments)
141
167
 
@@ -12,8 +12,9 @@ namespace :slack do
12
12
  [attachments]
13
13
  end
14
14
 
15
- task :starting do
16
- if fetch(:slack_run_starting)
15
+ task :updating do
16
+ set(:slack_deploy_or_rollback, 'deploy')
17
+ if fetch(:slack_run_updating)
17
18
  run_locally do
18
19
  Slackistrano.post(
19
20
  team: fetch(:slack_team),
@@ -21,19 +22,20 @@ namespace :slack do
21
22
  webhook: fetch(:slack_webhook),
22
23
  via_slackbot: fetch(:slack_via_slackbot),
23
24
  payload: {
24
- channel: fetch(:slack_channel_starting) || fetch(:slack_channel),
25
+ channel: fetch(:slack_channel_updating) || fetch(:slack_channel),
25
26
  username: fetch(:slack_username),
26
27
  icon_url: fetch(:slack_icon_url),
27
28
  icon_emoji: fetch(:slack_icon_emoji),
28
- attachments: make_attachments(:starting)
29
+ attachments: make_attachments(:updating)
29
30
  }
30
31
  )
31
32
  end
32
33
  end
33
34
  end
34
35
 
35
- task :finished do
36
- if fetch(:slack_run_finished)
36
+ task :reverting do
37
+ set(:slack_deploy_or_rollback, 'rollback')
38
+ if fetch(:slack_run_reverting)
37
39
  run_locally do
38
40
  Slackistrano.post(
39
41
  team: fetch(:slack_team),
@@ -41,11 +43,52 @@ namespace :slack do
41
43
  webhook: fetch(:slack_webhook),
42
44
  via_slackbot: fetch(:slack_via_slackbot),
43
45
  payload: {
44
- channel: fetch(:slack_channel_finished) || fetch(:slack_channel),
46
+ channel: fetch(:slack_channel_reverting) || fetch(:slack_channel),
45
47
  username: fetch(:slack_username),
46
48
  icon_url: fetch(:slack_icon_url),
47
49
  icon_emoji: fetch(:slack_icon_emoji),
48
- attachments: make_attachments(:finished, color: 'good')
50
+ attachments: make_attachments(:reverting)
51
+ }
52
+ )
53
+ end
54
+ end
55
+ end
56
+
57
+
58
+ task :updated do
59
+ if fetch(:slack_run_updated)
60
+ run_locally do
61
+ Slackistrano.post(
62
+ team: fetch(:slack_team),
63
+ token: fetch(:slack_token),
64
+ webhook: fetch(:slack_webhook),
65
+ via_slackbot: fetch(:slack_via_slackbot),
66
+ payload: {
67
+ channel: fetch(:slack_channel_updated) || fetch(:slack_channel),
68
+ username: fetch(:slack_username),
69
+ icon_url: fetch(:slack_icon_url),
70
+ icon_emoji: fetch(:slack_icon_emoji),
71
+ attachments: make_attachments(:updated, color: 'good')
72
+ }
73
+ )
74
+ end
75
+ end
76
+ end
77
+
78
+ task :reverted do
79
+ if fetch(:slack_run_reverted)
80
+ run_locally do
81
+ Slackistrano.post(
82
+ team: fetch(:slack_team),
83
+ token: fetch(:slack_token),
84
+ webhook: fetch(:slack_webhook),
85
+ via_slackbot: fetch(:slack_via_slackbot),
86
+ payload: {
87
+ channel: fetch(:slack_channel_reverted) || fetch(:slack_channel),
88
+ username: fetch(:slack_username),
89
+ icon_url: fetch(:slack_icon_url),
90
+ icon_emoji: fetch(:slack_icon_emoji),
91
+ attachments: make_attachments(:reverted, color: '#4CBDEC')
49
92
  }
50
93
  )
51
94
  end
@@ -75,43 +118,72 @@ namespace :slack do
75
118
  end
76
119
  end
77
120
 
78
- after 'deploy:starting', 'slack:deploy:starting'
79
- after 'deploy:finished', 'slack:deploy:finished'
80
- after 'deploy:failed', 'slack:deploy:failed'
121
+ before 'deploy:updating', 'slack:deploy:updating'
122
+ before 'deploy:reverting', 'slack:deploy:reverting'
123
+ after 'deploy:finishing', 'slack:deploy:updated'
124
+ after 'deploy:finishing_rollback', 'slack:deploy:reverted'
125
+ after 'deploy:failed', 'slack:deploy:failed'
81
126
 
82
127
  namespace :load do
83
128
  task :defaults do
84
129
 
85
- set :slack_team, ->{ nil } # If URL is 'team.slack.com', value is 'team'.
86
- set :slack_token, ->{ nil } # Token from Incoming WebHooks.
87
- set :slack_webhook, ->{ nil } # Incoming WebHook URL.
88
- set :slack_via_slackbot, ->{ false } # Set to true to send the message via slackbot instead of webhook
89
-
90
- set :slack_channel, -> { nil } # Channel to post to. Optional. Defaults to WebHook setting.
91
- set :slack_channel_starting, -> { nil } # Channel to post to. Optional. Defaults to :slack_channel.
92
- set :slack_channel_finished, -> { nil } # Channel to post to. Optional. Defaults to :slack_channel.
93
- set :slack_channel_failed, -> { nil } # Channel to post to. Optional. Defaults to :slack_channel.
94
- set :slack_icon_url, -> { 'http://gravatar.com/avatar/885e1c523b7975c4003de162d8ee8fee?r=g&s=40' }
95
- set :slack_icon_emoji, -> { nil } # Emoji to use. Overrides icon_url. Must be a string (ex: ':shipit:')
96
- set :slack_username, -> { 'Slackistrano' }
97
- set :slack_run_starting, -> { true } # Set to false to disable starting message.
98
- set :slack_run_finished, -> { true } # Set to false to disable finished message.
99
- set :slack_run_failed, -> { true } # Set to false to disable failure message.
100
- set :slack_deploy_user, -> { ENV['USER'] || ENV['USERNAME'] }
101
- set :slack_msg_starting, -> { "#{fetch :slack_deploy_user} has started deploying branch #{fetch :branch} of #{fetch :application} to #{fetch :stage, 'an unknown stage'}" }
102
- set :slack_msg_finished, -> { "#{fetch :slack_deploy_user} has finished deploying branch #{fetch :branch} of #{fetch :application} to #{fetch :stage, 'an unknown stage'}" }
103
- set :slack_msg_failed, -> { "#{fetch :slack_deploy_user} failed to deploy branch #{fetch :branch} of #{fetch :application} to #{fetch :stage, 'an unknown stage'}" }
104
- set :slack_fields_starting, -> { [] }
105
- set :slack_fields_finished, -> { [] }
106
- set :slack_fields_failed, -> { [] }
107
- set :slack_fallback_starting, -> { nil }
108
- set :slack_fallback_finished, -> { nil }
109
- set :slack_fallback_failed, -> { nil }
110
- set :slack_title_starting, -> { nil }
111
- set :slack_title_finished, -> { nil }
112
- set :slack_title_failed, -> { nil }
113
- set :slack_pretext_starting, -> { nil }
114
- set :slack_pretext_finished, -> { nil }
115
- set :slack_pretext_failed, -> { nil }
130
+ set :slack_team, -> { nil } # If URL is 'team.slack.com', value is 'team'.
131
+ set :slack_token, -> { nil } # Token from Incoming WebHooks.
132
+ set :slack_webhook, -> { nil } # Incoming WebHook URL.
133
+ set :slack_via_slackbot, -> { false } # Set to true to send the message via slackbot instead of webhook
134
+ set :slack_channel, -> { nil } # Channel to post to. Optional. Defaults to WebHook setting.
135
+
136
+ # Optional, overridable settings
137
+
138
+ set :slack_channel_updating, -> { nil } # Channel to post to. Defaults to :slack_channel.
139
+ set :slack_channel_reverting, -> { nil } # Channel to post to. Defaults to :slack_channel.
140
+ set :slack_channel_updated, -> { nil } # Channel to post to. Defaults to :slack_channel.
141
+ set :slack_channel_reverted, -> { nil } # Channel to post to. Defaults to :slack_channel.
142
+ set :slack_channel_failed, -> { nil } # Channel to post to. Defaults to :slack_channel.
143
+
144
+ set :slack_icon_url, -> { 'http://gravatar.com/avatar/885e1c523b7975c4003de162d8ee8fee?r=g&s=40' }
145
+ set :slack_icon_emoji, -> { nil } # Emoji to use. Overrides icon_url. Must be a string (ex: ':shipit:')
146
+ set :slack_username, -> { 'Slackistrano' }
147
+
148
+ set :slack_run_updating, -> { true } # Set to false to disable deploy starting message.
149
+ set :slack_run_reverting, -> { true } # Set to false to disable rollback starting message.
150
+ set :slack_run_updated, -> { true } # Set to false to disable deploy finished message.
151
+ set :slack_run_reverted, -> { true } # Set to false to disable rollback finished message.
152
+ set :slack_run_failed, -> { true } # Set to false to disable failure message.
153
+
154
+ set :slack_deploy_user, -> { ENV['USER'] || ENV['USERNAME'] }
155
+
156
+ set :slack_msg_updating, -> { "#{fetch :slack_deploy_user} has started deploying branch #{fetch :branch} of #{fetch :application} to #{fetch :stage, 'an unknown stage'}" }
157
+ set :slack_msg_reverting, -> { "#{fetch :slack_deploy_user} has started rolling back branch #{fetch :branch} of #{fetch :application} to #{fetch :stage, 'an unknown stage'}" }
158
+ set :slack_msg_updated, -> { "#{fetch :slack_deploy_user} has finished deploying branch #{fetch :branch} of #{fetch :application} to #{fetch :stage, 'an unknown stage'}" }
159
+ set :slack_msg_reverted, -> { "#{fetch :slack_deploy_user} has finished rolling back branch of #{fetch :application} to #{fetch :stage, 'an unknown stage'}" }
160
+
161
+ # :slack_or_deploy is set in several tasks above.
162
+ set :slack_msg_failed, -> { "#{fetch :slack_deploy_user} has failed to #{fetch(:slack_deploy_or_rollback) || 'deploy'} branch #{fetch :branch} of #{fetch :application} to #{fetch :stage, 'an unknown stage'}" }
163
+
164
+ set :slack_fields_updating, -> { [] }
165
+ set :slack_fields_reverting, -> { [] }
166
+ set :slack_fields_updated, -> { [] }
167
+ set :slack_fields_reverted, -> { [] }
168
+ set :slack_fields_failed, -> { [] }
169
+
170
+ set :slack_fallback_updating, -> { nil }
171
+ set :slack_fallback_reverting, -> { nil }
172
+ set :slack_fallback_updated, -> { nil }
173
+ set :slack_fallback_reverted, -> { nil }
174
+ set :slack_fallback_failed, -> { nil }
175
+
176
+ set :slack_title_updating, -> { nil }
177
+ set :slack_title_reverting, -> { nil }
178
+ set :slack_title_updated, -> { nil }
179
+ set :slack_title_reverted, -> { nil }
180
+ set :slack_title_failed, -> { nil }
181
+
182
+ set :slack_pretext_updating, -> { nil }
183
+ set :slack_pretext_reverting, -> { nil }
184
+ set :slack_pretext_updated, -> { nil }
185
+ set :slack_pretext_reverted, -> { nil }
186
+ set :slack_pretext_failed, -> { nil }
187
+
116
188
  end
117
189
  end
@@ -1,3 +1,3 @@
1
1
  module Slackistrano
2
- VERSION = '0.1.12'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -1,7 +1,11 @@
1
1
  namespace :deploy do
2
- task :starting do
2
+ task :updating do
3
3
  end
4
- task :finished do
4
+ task :reverting do
5
+ end
6
+ task :finishing do
7
+ end
8
+ task :finishing_rollback do
5
9
  end
6
10
  task :failed do
7
11
  end
data/spec/spec_helper.rb CHANGED
@@ -12,4 +12,6 @@ Dir['#{File.dirname(__FILE__)}/support/**/*.rb'].each {|f| require f}
12
12
 
13
13
  RSpec.configure do |config|
14
14
  config.order = 'random'
15
+ config.filter_run :focus
16
+ config.run_all_when_everything_filtered = true
15
17
  end
data/spec/tasks_spec.rb CHANGED
@@ -5,25 +5,34 @@ describe Slackistrano do
5
5
  Rake::Task['load:defaults'].invoke
6
6
  end
7
7
 
8
- it "invokes slack:deploy:starting after deploy:starting" do
9
- set :slack_run_starting, ->{ true }
10
- expect(Slackistrano).to receive :post
11
- Rake::Task['deploy:starting'].execute
12
- end
8
+ describe "before/after hooks" do
13
9
 
14
- it "invokes slack:deploy:finished after deploy:finished" do
15
- set :slack_run_finished, ->{ true }
16
- expect(Slackistrano).to receive :post
17
- Rake::Task['deploy:finished'].execute
18
- end
10
+ it "invokes slack:deploy:updating before deploy:updating" do
11
+ expect(Rake::Task['deploy:updating'].prerequisites).to include 'slack:deploy:updating'
12
+ end
13
+
14
+ it "invokes slack:deploy:reverting before deploy:reverting" do
15
+ expect(Rake::Task['deploy:reverting'].prerequisites).to include 'slack:deploy:reverting'
16
+ end
17
+
18
+ it "invokes slack:deploy:updated after deploy:finishing" do
19
+ expect(Rake::Task['slack:deploy:updated']).to receive(:invoke)
20
+ Rake::Task['deploy:finishing'].execute
21
+ end
22
+
23
+ it "invokes slack:deploy:reverted after deploy:finishing_rollback" do
24
+ expect(Rake::Task['slack:deploy:reverted']).to receive(:invoke)
25
+ Rake::Task['deploy:finishing_rollback'].execute
26
+ end
27
+
28
+ it "invokes slack:deploy:failed after deploy:failed" do
29
+ expect(Rake::Task['slack:deploy:failed']).to receive(:invoke)
30
+ Rake::Task['deploy:failed'].execute
31
+ end
19
32
 
20
- it "invokes slack:deploy:failed after deploy:failed" do
21
- set :slack_run_failed, ->{ true }
22
- expect(Slackistrano).to receive :post
23
- Rake::Task['deploy:failed'].execute
24
33
  end
25
34
 
26
- %w[starting finished failed].each do |stage|
35
+ %w[updating reverting updated reverted failed].each do |stage|
27
36
  it "posts to slack on slack:deploy:#{stage}" do
28
37
  set "slack_run_#{stage}".to_sym, ->{ true }
29
38
  expect(Slackistrano).to receive :post
@@ -38,11 +47,14 @@ describe Slackistrano do
38
47
  end
39
48
 
40
49
  [ # stage, color, channel
41
- ['starting', nil, nil],
42
- ['finished', 'good', nil],
50
+ ['updating', nil, nil],
51
+ ['reverting', nil, nil],
52
+ ['updated', 'good', nil],
53
+ ['reverted', '#4CBDEC', nil],
43
54
  ['failed', 'danger', nil],
44
- ['starting', nil, 'starting_channel'],
45
- ['finished', 'good', 'finished_channel'],
55
+ ['updating', nil, 'starting_channel'],
56
+ ['updated', 'good', 'finished_channel'],
57
+ ['reverted', '#4CBDEC', 'rollback_channel'],
46
58
  ['failed', 'danger', 'failed_channel'],
47
59
  ].each do |stage, color, channel_for_stage|
48
60
 
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: 0.1.12
4
+ version: 1.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: 2015-09-22 00:00:00.000000000 Z
11
+ date: 2015-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
@@ -75,6 +75,7 @@ extra_rdoc_files: []
75
75
  files:
76
76
  - ".gitignore"
77
77
  - ".travis.yml"
78
+ - CHANGELOG.md
78
79
  - Gemfile
79
80
  - LICENSE.txt
80
81
  - README.md