slack_notification_generator 0.2.1 → 0.2.2

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: c92e557c082675524c2cd2b4f4a7abff920c47f6
4
- data.tar.gz: ca31b3cafc1a7887470385200e67225326c52bdc
3
+ metadata.gz: 17b8366fb604ab0a1dc84392180ce94b862c7f12
4
+ data.tar.gz: df9200d1f27f6c81ca7f44e44997391a0810a387
5
5
  SHA512:
6
- metadata.gz: 83396a197b21a4387651cae398c14f917ad48710f35c8385e05d1725ca0808c4f09ade9b5b84b4f1ccd6282b5b519994439662cff117166e127f6880c1e3401c
7
- data.tar.gz: 7daf27c7d20fd0bd729c96a801896b3e391b8837ea3fc0207d6755133ebfac9723517025c8a3235e32237f12ab98f6a699ee947048b9184777d12fff62892146
6
+ metadata.gz: 867209ce7836bc465047128e03e0fdc0ea6662aba434083a31fce41817cd45da1240aa995651180f6a3ce004e70402402f71983904e4739b10850628aecb726a
7
+ data.tar.gz: 0696334ceb2cf2dfe18efac70b83e5d91480afa98dc34c1f8176abe696c7dd95d173178ad4d604f00e006420fc4c6944da2c8731f1c67e0c9cf441b5251d31eb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Change Log
2
2
 
3
+ ## [v0.2.1](https://github.com/jasonhutchens/slack_notification_generator/tree/v0.2.1) (2015-08-29)
4
+ [Full Changelog](https://github.com/jasonhutchens/slack_notification_generator/compare/v0.2.0...v0.2.1)
5
+
3
6
  ## [v0.2.0](https://github.com/jasonhutchens/slack_notification_generator/tree/v0.2.0) (2015-08-29)
4
7
  [Full Changelog](https://github.com/jasonhutchens/slack_notification_generator/compare/v0.1.1...v0.2.0)
5
8
 
data/README.md CHANGED
@@ -4,7 +4,8 @@
4
4
  Slack Notification Generator
5
5
  ============================
6
6
 
7
- Sends a notification to a Slack channel to indicate that a branch of your project has just been deployed by your CI system.
7
+ Sends a notification to a Slack channel to indicate that a branch of your
8
+ project has just been deployed by your CI system.
8
9
 
9
10
  Usage
10
11
  -----
@@ -23,10 +24,17 @@ Define the following environments in your CI system.
23
24
  When your CI system deploys your project, run:
24
25
 
25
26
  ```
26
- $ slack_notification_generator [HEAD]
27
+ $ slack_notification_generator <server> [HEAD]
27
28
  ```
28
29
 
29
- Specify an argument of `HEAD` if you want to generate a notification relative to the latest tag. Otherwise it will be assumed that you want to generate a notification relative to the most recent pair of tags (for example, you may have tagged `master` before triggering a deploy to production).
30
+ Specify an argument of `HEAD` if you want to generate a notification relative to
31
+ the latest tag. Otherwise it will be assumed that you want to generate a
32
+ notification relative to the most recent pair of tags (for example, you may have
33
+ tagged `master` before triggering a deploy to production).
34
+
35
+ Specify a `server` URL if you'd like to include a link to the URL as part of the
36
+ notification title. This makes it easier for people reading the notification to
37
+ immediately click through to see the results of the deployment.
30
38
 
31
39
  Assumptions
32
40
  -----------
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.2.2
@@ -28,11 +28,13 @@ class SlackNotificationGenerator
28
28
  this_tag = 'HEAD'
29
29
  prev_tag = `git describe --abbrev=0 --tags`.strip
30
30
 
31
- unless ARGV[0] == "HEAD"
31
+ if ARGV.select { |arg| arg == "HEAD" }.empty?
32
32
  this_tag = prev_tag
33
33
  prev_tag = `git describe --abbrev=0 --tags #{this_tag}^`.strip
34
34
  end
35
35
 
36
+ server = ARGV.select { |arg| arg != "HEAD" }.first
37
+
36
38
  commits = []
37
39
  commit = nil
38
40
  blob = `git log --merges #{this_tag} ^#{prev_tag}`
@@ -85,14 +87,20 @@ class SlackNotificationGenerator
85
87
  attachments = []
86
88
  add_attachment(attachments, "Pull Requests", pull_requests)
87
89
  add_attachment(attachments, "Other Commits", other_commits)
88
- exit if attachments.length == 0
90
+ return if attachments.length == 0
91
+
92
+ message = "*#{[ENV['SLACK_NAME'], env].compact.join(' ')} Release*"
93
+ if server
94
+ name = server.gsub(/^http.*\/\//, "").gsub(/\/$/, '')
95
+ message << " (<#{server}|#{name})>"
96
+ end
89
97
 
90
98
  payload =
91
99
  {
92
100
  username: ENV['SLACK_USER'] || 'Notification',
93
101
  icon_emoji: ENV['SLACK_ICON'] || ':bell:',
94
102
  channel: ENV['SLACK_CHAN'] || '#general',
95
- text: "*#{[ENV['SLACK_NAME'], env].compact.join(' ')} Release*",
103
+ text: message,
96
104
  attachments: attachments
97
105
  }
98
106
 
@@ -182,7 +190,7 @@ class SlackNotificationGenerator
182
190
  commit[:message] = commit[:message][0, 50] + "..."
183
191
  end
184
192
  <<-eos
185
- #{link} #{commit[:message]} [#{extras}]
193
+ #{link} #{commit[:message]} (#{extras})
186
194
  eos
187
195
  end
188
196
  end
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: slack_notification_generator 0.2.1 ruby lib
5
+ # stub: slack_notification_generator 0.2.2 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "slack_notification_generator"
9
- s.version = "0.2.1"
9
+ s.version = "0.2.2"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Jason Hutchens"]
14
- s.date = "2015-08-29"
14
+ s.date = "2015-08-30"
15
15
  s.description = "Does what it says on the tin."
16
16
  s.email = "jasonhutchens@gmail.com"
17
17
  s.executables = ["slack_notification_generator"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack_notification_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Hutchens
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-29 00:00:00.000000000 Z
11
+ date: 2015-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chronic_duration