samson_hipchat 0.0.4 → 0.0.6
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/app/decorators/stage_decorator.rb +4 -2
- data/app/views/samson_hipchat/notification.text.erb +1 -2
- metadata +3 -8
- data/samson_hipchat.gemspec +0 -7
- data/test/models/hipchat_notification_renderer_test.rb +0 -42
- data/test/models/hipchat_notification_test.rb +0 -47
- data/test/models/hooks_test.rb +0 -32
- data/test/test_helper.rb +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5dde8617b79688e447d24772d04c4636257074a7
|
4
|
+
data.tar.gz: 54c8e367ee9a185ee3a195af3aff827558a8a097
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d4b4f361f3a33e2273a116fd5be3b458d03208a1ce1ce250801295bc69f07cb27523ec433da1ab019dda773e4ebcf53093818f6659b20d80ce8f0d04b0820cb
|
7
|
+
data.tar.gz: 487fa2af69ba5a66e2bb79913a4a16f58164bb4aa4fcfb396a9823c7d64161254267039538e779a09ea8c8575bfa8841494df7db6c82fe5d46dd17570c103170
|
@@ -22,12 +22,14 @@ Stage.class_eval do
|
|
22
22
|
def update_room_id
|
23
23
|
if room_for(room_name)
|
24
24
|
self.hipchat_rooms.first.room_id = room_for(room_name)['id']
|
25
|
+
else
|
26
|
+
self.hipchat_rooms.first.room_id = nil
|
25
27
|
end
|
26
28
|
end
|
27
29
|
|
28
30
|
def room_exists?
|
29
31
|
if room_name
|
30
|
-
errors.add(:hipchat_rooms_name, "was not found. Create the room first.") unless room_for(room_name)
|
32
|
+
errors.add(:hipchat_rooms_name, "was not found. Create the room first. If this is a notification token, you can ignore this message") unless room_for(room_name)
|
31
33
|
end
|
32
34
|
end
|
33
35
|
|
@@ -42,7 +44,7 @@ Stage.class_eval do
|
|
42
44
|
Rails.cache.fetch(hipchat_rooms_cache_key, expires_in: 5.minutes) do
|
43
45
|
begin
|
44
46
|
hipchat[name].get_room
|
45
|
-
rescue HipChat::UnknownRoom
|
47
|
+
rescue HipChat::UnknownRoom, HipChat::UnknownResponseCode
|
46
48
|
nil
|
47
49
|
end
|
48
50
|
end
|
@@ -1,12 +1,11 @@
|
|
1
1
|
<%= subject %>
|
2
|
+
<p> <%= deploy.message %> </p>
|
2
3
|
<% if changeset.commits.count == 0 %>
|
3
4
|
There are no new commits since last time.
|
4
5
|
<% else %>
|
5
6
|
<%= pluralize changeset.commits.count, "commit" %> by <%= changeset.author_names.to_sentence %>.
|
6
7
|
<br>
|
7
8
|
|
8
|
-
<%= deploy.message %>
|
9
|
-
|
10
9
|
<% if false %>
|
11
10
|
<strong>Files changed:</strong>
|
12
11
|
<ul>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: samson_hipchat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vinh Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hipchat
|
@@ -39,11 +39,6 @@ files:
|
|
39
39
|
- config/initializers/hipchat.rb
|
40
40
|
- db/migrate/20150519105221_create_hipchat_rooms.rb
|
41
41
|
- lib/samson_hipchat/samson_plugin.rb
|
42
|
-
- samson_hipchat.gemspec
|
43
|
-
- test/models/hipchat_notification_renderer_test.rb
|
44
|
-
- test/models/hipchat_notification_test.rb
|
45
|
-
- test/models/hooks_test.rb
|
46
|
-
- test/test_helper.rb
|
47
42
|
homepage:
|
48
43
|
licenses: []
|
49
44
|
metadata: {}
|
@@ -63,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
58
|
version: '0'
|
64
59
|
requirements: []
|
65
60
|
rubyforge_project:
|
66
|
-
rubygems_version: 2.4.
|
61
|
+
rubygems_version: 2.4.6
|
67
62
|
signing_key:
|
68
63
|
specification_version: 4
|
69
64
|
summary: Samson hipchat integration
|
data/samson_hipchat.gemspec
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
|
3
|
-
describe HipchatNotificationRenderer do
|
4
|
-
describe "starting" do
|
5
|
-
it "renders a nicely formatted notification" do
|
6
|
-
changeset = stub("changeset")
|
7
|
-
deploy = stub("deploy", short_reference: "xyz", changeset: changeset)
|
8
|
-
|
9
|
-
author1 = "author1"
|
10
|
-
author2 = "author2"
|
11
|
-
changeset.stubs(:author_names).returns([author1, author2])
|
12
|
-
|
13
|
-
commit1 = stub("commit1", url: "#", author_name: "author1", summary: "Introduce bug")
|
14
|
-
commit2 = stub("commit2", url: "#", author_name: "author2", summary: "Fix bug")
|
15
|
-
changeset.stubs(:commits).returns([commit1, commit2])
|
16
|
-
|
17
|
-
file1 = stub("file1", status: "added", filename: "foo.rb")
|
18
|
-
file2 = stub("file2", status: "modified", filename: "bar.rb")
|
19
|
-
changeset.stubs(:files).returns([file1, file2])
|
20
|
-
|
21
|
-
subject = "Deploy starting"
|
22
|
-
|
23
|
-
result = HipchatNotificationRenderer.render(deploy, subject)
|
24
|
-
|
25
|
-
result.must_equal <<-RESULT.strip_heredoc.chomp
|
26
|
-
Deploy starting
|
27
|
-
2 commits by author1 and author2.
|
28
|
-
<br>
|
29
|
-
<strong>Files changed:</strong>
|
30
|
-
<ul>
|
31
|
-
<li>A foo.rb</li>
|
32
|
-
<li>M bar.rb</li>
|
33
|
-
</ul>
|
34
|
-
<strong>Commits:</strong>
|
35
|
-
<ol>
|
36
|
-
<li><a href='#'>(author1)</a>: Introduce bug</li>
|
37
|
-
<li><a href='#'>(author2)</a>: Fix bug</li>
|
38
|
-
<ol>
|
39
|
-
RESULT
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
|
3
|
-
describe HipchatNotification do
|
4
|
-
let(:project) { stub(name: "Glitter") }
|
5
|
-
let(:user) { stub(name: "John Wu", email: "wu@rocks.com") }
|
6
|
-
let(:stage) { stub(name: "staging", hipchat_rooms: [stub(name: "x123yx", token: "token123")], project: project) }
|
7
|
-
let(:hipchat_message) { stub(content: "hello world!", style: {color: :red}, subject: "subject") }
|
8
|
-
let(:previous_deploy) { stub(summary: "hello world!", user: user, stage: stage) }
|
9
|
-
let(:deploy) { stub(summary: "hello world!", user: user, stage: stage, changeset: "changeset") }
|
10
|
-
let(:notification) { HipchatNotification.new(deploy) }
|
11
|
-
let(:endpoint) { "https://api.hipchat.com/v2/room/x123yx/notification?auth_token=token123" }
|
12
|
-
|
13
|
-
before do
|
14
|
-
HipchatNotificationRenderer.stubs(:render).returns("foo")
|
15
|
-
HipchatNotification::Message.any_instance.stubs(:content).returns("message to send")
|
16
|
-
HipchatNotification::Message.any_instance.stubs(:from).returns("Deployer")
|
17
|
-
HipchatNotification::Message.any_instance.stubs(:style).returns({color: :red})
|
18
|
-
end
|
19
|
-
|
20
|
-
it "notifies hipchat channels configured for the stage" do
|
21
|
-
delivery = stub_request(:post, endpoint)
|
22
|
-
notification.deliver
|
23
|
-
|
24
|
-
assert_requested delivery
|
25
|
-
end
|
26
|
-
|
27
|
-
it "renders a nicely formatted notification" do
|
28
|
-
stub_request(:post, endpoint)
|
29
|
-
HipchatNotificationRenderer.stubs(:render).returns("bar")
|
30
|
-
notification.deliver
|
31
|
-
|
32
|
-
content, format, from, color = nil
|
33
|
-
assert_requested :post, endpoint do |request|
|
34
|
-
body = JSON.parse(request.body)
|
35
|
-
puts body["message"]
|
36
|
-
content = body.fetch("message")
|
37
|
-
format = body.fetch("message_format")
|
38
|
-
from = body.fetch("from")
|
39
|
-
color = body.fetch("color")
|
40
|
-
content.must_equal "message to send"
|
41
|
-
format.must_equal "html"
|
42
|
-
from.must_equal "Deployer"
|
43
|
-
color.must_equal "red"
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
data/test/models/hooks_test.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
|
3
|
-
describe "hipchat hooks" do
|
4
|
-
let(:deploy) { deploys(:succeeded_test) }
|
5
|
-
let(:stage) { deploy.stage }
|
6
|
-
|
7
|
-
describe :before_deploy do
|
8
|
-
it "sends notification on before hook" do
|
9
|
-
stage.stubs(:send_hipchat_notifications?).returns(true)
|
10
|
-
HipchatNotification.any_instance.expects(:deliver)
|
11
|
-
Samson::Hooks.fire(:before_deploy, deploy, nil)
|
12
|
-
end
|
13
|
-
|
14
|
-
it "does not send notifications when disabled" do
|
15
|
-
HipchatNotification.any_instance.expects(:deliver).never
|
16
|
-
Samson::Hooks.fire(:before_deploy, deploy, nil)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
describe :after_deploy do
|
21
|
-
it "sends notification on after hook" do
|
22
|
-
stage.stubs(:send_hipchat_notifications?).returns(true)
|
23
|
-
HipchatNotification.any_instance.expects(:deliver)
|
24
|
-
Samson::Hooks.fire(:after_deploy, deploy, nil)
|
25
|
-
end
|
26
|
-
|
27
|
-
it "does not send notifications when disabled" do
|
28
|
-
HipchatNotification.any_instance.expects(:deliver).never
|
29
|
-
Samson::Hooks.fire(:after_deploy, deploy, nil)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require_relative '../../../test/test_helper'
|