capistrano-slack 1.1.4 → 1.1.5

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
  SHA1:
3
- metadata.gz: c7ec7e872016f0822acfa4dca2cf4fe4ffebae63
4
- data.tar.gz: a090e687f8c074486561463f7081290a5519d85c
3
+ metadata.gz: 3dd98f5eae3700c11ee2badacbe40edf4605c840
4
+ data.tar.gz: 1460cf6d73c1c80d811898ea05fc9576c80898a6
5
5
  SHA512:
6
- metadata.gz: 225e07d27a1b58cdc7bc70a50026454811436db0550f200d4fcdb068244667b7a7a9672bb5f8e83d3e6107d35e4a20a2f06123de3c70c912364f7198ccf634fb
7
- data.tar.gz: 5a848942a6fcfe34654bf8b64c149d3119b0d4fb267f703ccbeeec386b87029b1fcaa18a8b9148fcea8183c8d4c4f80b991bbafd56af2e7aef9bef62c2fd44a2
6
+ metadata.gz: 7a0fe1bf927d7e4f294f589ad2c0f31d70d7e286f26d99f3f970112619e744737909c9c458dc161a8e5407925ca2ba899892663081ecaa9940ef6b53603f402d
7
+ data.tar.gz: ed862ba6cca5727f95f965e53b527e1680a7e97a868185bb85b1cb7a9a903149d84dc3ae6a071354107ed6a76757eaf2da8451ac217c4f3fc1277ed817d8cf1e
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "capistrano-slack"
8
- s.version = "1.1.4"
8
+ s.version = "1.1.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Joshua Nichols", "Justin McNally"]
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  "Rakefile",
26
26
  "capistrano-slack.gemspec",
27
27
  "lib/capistrano-slack.rb",
28
+ "lib/capistrano/slack.rb",
28
29
  "spec/.rspec",
29
30
  "spec/capistrano-slack_spec.rb",
30
31
  "spec/spec_helper.rb",
@@ -0,0 +1,62 @@
1
+ require 'capistrano'
2
+ require 'capistrano/log_with_awesome'
3
+ require 'json'
4
+ # TODO need to handle loading a bit beter. these would load into the instance if it's defined
5
+ module Capistrano
6
+ module Slack
7
+ def self.extended(configuration)
8
+ configuration.load do
9
+
10
+ before 'deploy', 'slack:starting'
11
+ before 'deploy:migrations', 'slack:starting'
12
+ after 'deploy', 'slack:finished'
13
+
14
+ set :deployer do
15
+ ENV['GIT_AUTHOR_NAME'] || `git config user.name`.chomp
16
+ end
17
+
18
+
19
+ namespace :slack do
20
+ task :starting do
21
+ slack_token = fetch(:slack_token)
22
+ slack_room = fetch(:slack_room)
23
+ slack_subdomain = fetch(:slack_subdomain)
24
+ return if slack_token.nil?
25
+ announced_deployer = fetch(:deployer)
26
+ announced_stage = fetch(:stage, 'production')
27
+
28
+ announcement = if fetch(:branch, nil)
29
+ "#{announced_deployer} is deploying #{application}'s #{branch} to #{announced_stage}"
30
+ else
31
+ "#{announced_deployer} is deploying #{application} to #{announced_stage}"
32
+ end
33
+ uri = URI("https://#{slack_subdomain}.slack.com/services/hooks/incoming-webhook?token=#{slack_token}")
34
+ res = Net::HTTP.post_form(uri, :payload => {'channel' => slack_room, 'username' => 'deploybot', 'text' => announcement, "icon_emoji" => ":ghost:"}.to_json)
35
+
36
+ end
37
+
38
+
39
+ task :finished do
40
+ begin
41
+ slack_token = fetch(:slack_token)
42
+ slack_room = fetch(:slack_room)
43
+ slack_subdomain = fetch(:slack_subdomain)
44
+ log = fetch(:full_log)
45
+ return if slack_token.nil?
46
+ uri = URI("https://#{slack_subdomain}.slack.com/services/hooks/incoming-webhook?token=#{slack_token}")
47
+ res = Net::HTTP.post_form(uri, :payload => {'channel' => slack_room, 'username' => 'deploybot', 'text' => log, "icon_emoji" => ":ghost:"}.to_json)
48
+ rescue Faraday::Error::ParsingError
49
+ # FIXME deal with crazy color output instead of rescuing
50
+ # it's stuff like: ^[[0;33m and ^[[0m
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+
59
+ if Capistrano::Configuration.instance
60
+ Capistrano::Configuration.instance.extend(Capistrano::Slack)
61
+ end
62
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-slack
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Nichols
@@ -139,6 +139,7 @@ files:
139
139
  - Rakefile
140
140
  - capistrano-slack.gemspec
141
141
  - lib/capistrano-slack.rb
142
+ - lib/capistrano/slack.rb
142
143
  - spec/.rspec
143
144
  - spec/capistrano-slack_spec.rb
144
145
  - spec/spec_helper.rb