honeybadger 1.0.0 → 1.1.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.
- data/Gemfile +2 -1
- data/Gemfile.lock +3 -5
- data/README.md +3 -1
- data/Rakefile +5 -4
- data/SUPPORTED_RAILS_VERSIONS +0 -1
- data/features/support/honeybadger_shim.rb.template +1 -1
- data/honeybadger.gemspec +2 -2
- data/lib/honeybadger.rb +1 -1
- data/lib/honeybadger/configuration.rb +17 -17
- data/lib/honeybadger/shared_tasks.rb +8 -8
- data/lib/honeybadger_tasks.rb +6 -6
- data/test/unit/configuration_test.rb +1 -1
- data/test/unit/honeybadger_tasks_test.rb +18 -14
- data/test/unit/logger_test.rb +3 -1
- data/test/unit/notifier_test.rb +1 -1
- data/test/unit/sender_test.rb +12 -5
- metadata +2 -2
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
honeybadger (
|
4
|
+
honeybadger (1.1.0)
|
5
5
|
activesupport
|
6
6
|
json
|
7
7
|
|
@@ -14,7 +14,6 @@ GEM
|
|
14
14
|
activerecord (2.3.14)
|
15
15
|
activesupport (= 2.3.14)
|
16
16
|
activesupport (2.3.14)
|
17
|
-
ansi (1.4.2)
|
18
17
|
bourne (1.1.2)
|
19
18
|
mocha (= 0.10.5)
|
20
19
|
builder (3.0.0)
|
@@ -65,6 +64,7 @@ GEM
|
|
65
64
|
method_source (~> 0.7.1)
|
66
65
|
slop (>= 2.4.4, < 3)
|
67
66
|
rack (1.1.3)
|
67
|
+
rake (0.9.2.2)
|
68
68
|
rb-fchange (0.0.5)
|
69
69
|
ffi
|
70
70
|
rb-fsevent (0.9.1)
|
@@ -89,8 +89,6 @@ GEM
|
|
89
89
|
term-ansicolor (1.0.7)
|
90
90
|
test-unit (2.5.0)
|
91
91
|
thor (0.15.3)
|
92
|
-
turn (0.9.5)
|
93
|
-
ansi
|
94
92
|
|
95
93
|
PLATFORMS
|
96
94
|
ruby
|
@@ -107,8 +105,8 @@ DEPENDENCIES
|
|
107
105
|
guard-test
|
108
106
|
honeybadger!
|
109
107
|
pry
|
108
|
+
rake
|
110
109
|
rspec (~> 2.6.0)
|
111
110
|
sham_rack (~> 1.3.0)
|
112
111
|
shoulda (~> 2.11.3)
|
113
112
|
simplecov
|
114
|
-
turn
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
Honeybadger
|
2
2
|
===============
|
3
3
|
|
4
|
+
[](http://travis-ci.org/honeybadger-io/honeybadger-ruby)
|
5
|
+
|
4
6
|
This is the notifier gem for integrating apps with [Honeybadger](http://honeybadger.io).
|
5
7
|
|
6
8
|
When an uncaught exception occurs, Honeybadger will POST the relevant data
|
@@ -256,7 +258,7 @@ added the following information to your Honeybadger configuration block.
|
|
256
258
|
|
257
259
|
## Supported Rails versions
|
258
260
|
|
259
|
-
Honeybadger supports Rails
|
261
|
+
Honeybadger supports Rails 3.0.0 through rails 3.2.6.
|
260
262
|
|
261
263
|
## Credits
|
262
264
|
|
data/Rakefile
CHANGED
@@ -86,7 +86,7 @@ end
|
|
86
86
|
FEATURES = ['sinatra', 'rack', 'metal']
|
87
87
|
|
88
88
|
desc 'Default: run unit & acceptance tests.'
|
89
|
-
task :default => [:test, "cucumber:rails:all"] + FEATURES
|
89
|
+
task :default => [:test, :vendor_test_gems , "cucumber:rails:all"] + FEATURES
|
90
90
|
|
91
91
|
GEM_ROOT = File.dirname(__FILE__).freeze
|
92
92
|
|
@@ -94,15 +94,16 @@ LOCAL_GEM_ROOT = File.join(GEM_ROOT, 'tmp', 'local_gems').freeze
|
|
94
94
|
RAILS_VERSIONS = IO.read('SUPPORTED_RAILS_VERSIONS').strip.split("\n")
|
95
95
|
LOCAL_GEMS =
|
96
96
|
[
|
97
|
-
[
|
97
|
+
['rake', nil],
|
98
|
+
['rack','1.3.2']
|
98
99
|
] +
|
99
100
|
RAILS_VERSIONS.collect { |version| ['rails', version] } +
|
100
101
|
[
|
101
102
|
['sham_rack', nil],
|
102
103
|
['capistrano', nil],
|
103
104
|
['sqlite3-ruby', nil],
|
104
|
-
[
|
105
|
-
[
|
105
|
+
['therubyracer',nil],
|
106
|
+
['sinatra',nil]
|
106
107
|
]
|
107
108
|
|
108
109
|
desc "Vendor test gems: Run this once to prepare your test environment"
|
data/SUPPORTED_RAILS_VERSIONS
CHANGED
data/honeybadger.gemspec
CHANGED
@@ -4,8 +4,8 @@ Gem::Specification.new do |s|
|
|
4
4
|
s.rubygems_version = '1.3.5'
|
5
5
|
|
6
6
|
s.name = 'honeybadger'
|
7
|
-
s.version = '1.
|
8
|
-
s.date = '2012-
|
7
|
+
s.version = '1.1.0'
|
8
|
+
s.date = '2012-07-26'
|
9
9
|
|
10
10
|
s.summary = "Error reports you can be happy about."
|
11
11
|
s.description = "Make managing application errors a more pleasant experience."
|
data/lib/honeybadger.rb
CHANGED
@@ -121,23 +121,23 @@ module Honeybadger
|
|
121
121
|
alias_method :use_system_ssl_cert_chain?, :use_system_ssl_cert_chain
|
122
122
|
|
123
123
|
def initialize
|
124
|
-
@secure
|
125
|
-
@use_system_ssl_cert_chain= false
|
126
|
-
@host
|
127
|
-
@http_open_timeout
|
128
|
-
@http_read_timeout
|
129
|
-
@params_filters
|
130
|
-
@backtrace_filters
|
131
|
-
@ignore_by_filters
|
132
|
-
@ignore
|
133
|
-
@ignore_user_agent
|
134
|
-
@development_environments
|
135
|
-
@notifier_name
|
136
|
-
@notifier_version
|
137
|
-
@notifier_url
|
138
|
-
@framework
|
139
|
-
@user_information
|
140
|
-
@rescue_rake_exceptions
|
124
|
+
@secure = true
|
125
|
+
@use_system_ssl_cert_chain = false
|
126
|
+
@host = 'api.honeybadger.io'
|
127
|
+
@http_open_timeout = 2
|
128
|
+
@http_read_timeout = 5
|
129
|
+
@params_filters = DEFAULT_PARAMS_FILTERS.dup
|
130
|
+
@backtrace_filters = DEFAULT_BACKTRACE_FILTERS.dup
|
131
|
+
@ignore_by_filters = []
|
132
|
+
@ignore = IGNORE_DEFAULT.dup
|
133
|
+
@ignore_user_agent = []
|
134
|
+
@development_environments = %w(development test cucumber)
|
135
|
+
@notifier_name = 'Honeybadger Notifier'
|
136
|
+
@notifier_version = VERSION
|
137
|
+
@notifier_url = 'https://github.com/honeybadger/honeybadger'
|
138
|
+
@framework = 'Standalone'
|
139
|
+
@user_information = 'Honeybadger Error {{error_id}}'
|
140
|
+
@rescue_rake_exceptions = nil
|
141
141
|
end
|
142
142
|
|
143
143
|
# Public: Takes a block and adds it to the list of backtrace filters. When
|
@@ -2,12 +2,12 @@ namespace :honeybadger do
|
|
2
2
|
desc "Notify Honeybadger of a new deploy."
|
3
3
|
task :deploy => :environment do
|
4
4
|
require 'honeybadger_tasks'
|
5
|
-
HoneybadgerTasks.deploy(:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
HoneybadgerTasks.deploy(:environment => ENV['TO'],
|
6
|
+
:revision => ENV['REVISION'],
|
7
|
+
:repository => ENV['REPO'],
|
8
|
+
:local_username => ENV['USER'],
|
9
|
+
:api_key => ENV['API_KEY'],
|
10
|
+
:dry_run => ENV['DRY_RUN'])
|
11
11
|
end
|
12
12
|
|
13
13
|
task :log_stdout do
|
@@ -24,10 +24,10 @@ namespace :honeybadger do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
heroku_rails_env = heroku_var("rails_env")
|
27
|
-
heroku_api_key = heroku_var("(
|
27
|
+
heroku_api_key = heroku_var("(honeybadger)_api_key").split.find {|x| x unless x.blank?} ||
|
28
28
|
Honeybadger.configuration.api_key
|
29
29
|
|
30
|
-
command = %Q(heroku addons:add deployhooks:http --url="
|
30
|
+
command = %Q(heroku addons:add deployhooks:http --url="https://api.honeybadger.io/v1/deploys?deploy[environment]=#{heroku_rails_env}&api_key=#{heroku_api_key}")
|
31
31
|
|
32
32
|
puts "\nRunning:\n#{command}\n"
|
33
33
|
puts `#{command}`
|
data/lib/honeybadger_tasks.rb
CHANGED
@@ -9,9 +9,9 @@ module HoneybadgerTasks
|
|
9
9
|
#
|
10
10
|
# opts - Data about the deploy that is set to Honeybadger
|
11
11
|
# :api_key - Api key of you Honeybadger application
|
12
|
-
# :
|
13
|
-
# :
|
14
|
-
# :
|
12
|
+
# :environment - Environment of the deploy (production, staging)
|
13
|
+
# :revision - The given revision/sha that is being deployed
|
14
|
+
# :repository - Address of your repository to help with code lookups
|
15
15
|
# :local_username - Who is deploying
|
16
16
|
#
|
17
17
|
# Returns true or false
|
@@ -22,8 +22,8 @@ module HoneybadgerTasks
|
|
22
22
|
return false
|
23
23
|
end
|
24
24
|
|
25
|
-
if opts[:
|
26
|
-
puts "I don't know to which
|
25
|
+
if opts[:environment].blank?
|
26
|
+
puts "I don't know to which environment you are deploying (use the TO=production option)."
|
27
27
|
return false
|
28
28
|
end
|
29
29
|
|
@@ -47,7 +47,7 @@ module HoneybadgerTasks
|
|
47
47
|
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
48
48
|
end
|
49
49
|
|
50
|
-
post = Net::HTTP::Post.new("/deploys
|
50
|
+
post = Net::HTTP::Post.new("/v1/deploys")
|
51
51
|
post.set_form_data(params)
|
52
52
|
post['X-API-Key'] = api_key
|
53
53
|
|
@@ -14,7 +14,7 @@ class ConfigurationTest < Honeybadger::UnitTest
|
|
14
14
|
assert_config_default :notifier_version, Honeybadger::VERSION
|
15
15
|
assert_config_default :notifier_name, 'Honeybadger Notifier'
|
16
16
|
assert_config_default :notifier_url, 'https://github.com/honeybadger/honeybadger'
|
17
|
-
assert_config_default :secure,
|
17
|
+
assert_config_default :secure, true
|
18
18
|
assert_config_default :host, 'api.honeybadger.io'
|
19
19
|
assert_config_default :http_open_timeout, 2
|
20
20
|
assert_config_default :http_read_timeout, 5
|
@@ -29,7 +29,7 @@ class HoneybadgerTasksTest < Honeybadger::UnitTest
|
|
29
29
|
setup { @output = HoneybadgerTasks.deploy({}) }
|
30
30
|
|
31
31
|
before_should "complain about missing rails env" do
|
32
|
-
HoneybadgerTasks.expects(:puts).with(regexp_matches(/
|
32
|
+
HoneybadgerTasks.expects(:puts).with(regexp_matches(/which environment/i))
|
33
33
|
end
|
34
34
|
|
35
35
|
should "return false" do
|
@@ -40,7 +40,10 @@ class HoneybadgerTasksTest < Honeybadger::UnitTest
|
|
40
40
|
context "given an optional HTTP proxy and valid options" do
|
41
41
|
setup do
|
42
42
|
@response = stub("response", :body => "stub body")
|
43
|
-
@http_proxy = stub("proxy", :request => @response
|
43
|
+
@http_proxy = stub("proxy", :request => @response,
|
44
|
+
:use_ssl= => nil,
|
45
|
+
:ca_file= => nil,
|
46
|
+
:verify_mode= => nil)
|
44
47
|
@http_proxy_class = stub("proxy_class", :new => @http_proxy)
|
45
48
|
@post = stub("post", :set_form_data => nil)
|
46
49
|
|
@@ -52,9 +55,9 @@ class HoneybadgerTasksTest < Honeybadger::UnitTest
|
|
52
55
|
Honeybadger.configuration.proxy_user,
|
53
56
|
Honeybadger.configuration.proxy_pass).
|
54
57
|
returns(@http_proxy_class)
|
55
|
-
Net::HTTP::Post.expects(:new).with("/deploys
|
58
|
+
Net::HTTP::Post.expects(:new).with("/v1/deploys").returns(@post)
|
56
59
|
|
57
|
-
@options = { :
|
60
|
+
@options = { :environment => "staging", :dry_run => false }
|
58
61
|
end
|
59
62
|
|
60
63
|
context "performing a dry run" do
|
@@ -73,18 +76,18 @@ class HoneybadgerTasksTest < Honeybadger::UnitTest
|
|
73
76
|
@output = HoneybadgerTasks.deploy(@options)
|
74
77
|
end
|
75
78
|
|
76
|
-
before_should "post to
|
77
|
-
@http_proxy_class.expects(:new).with("api.honeybadger.io",
|
79
|
+
before_should "post to https://api.honeybadger.io:443/v1/deploys" do
|
80
|
+
@http_proxy_class.expects(:new).with("api.honeybadger.io", 443).returns(@http_proxy)
|
78
81
|
@post.expects(:set_form_data).with(kind_of(Hash))
|
79
82
|
@http_proxy.expects(:request).with(any_parameters).returns(successful_response)
|
80
83
|
end
|
81
84
|
|
82
|
-
before_should "use send the
|
85
|
+
before_should "use send the environment param" do
|
83
86
|
@post.expects(:set_form_data).
|
84
|
-
with(has_entries("deploy[
|
87
|
+
with(has_entries("deploy[environment]" => "staging"))
|
85
88
|
end
|
86
89
|
|
87
|
-
[:local_username, :
|
90
|
+
[:local_username, :repository, :revision].each do |key|
|
88
91
|
before_should "use send the #{key} param if it's passed in." do
|
89
92
|
@options[key] = "value"
|
90
93
|
@post.expects(:set_form_data).
|
@@ -122,11 +125,12 @@ class HoneybadgerTasksTest < Honeybadger::UnitTest
|
|
122
125
|
Honeybadger.configure do |config|
|
123
126
|
config.api_key = "1234123412341234"
|
124
127
|
config.host = "custom.host"
|
128
|
+
config.secure = false
|
125
129
|
end
|
126
130
|
end
|
127
131
|
|
128
|
-
context "on deploy(:
|
129
|
-
setup { @output = HoneybadgerTasks.deploy(:
|
132
|
+
context "on deploy(:environment => 'staging')" do
|
133
|
+
setup { @output = HoneybadgerTasks.deploy(:environment => "staging") }
|
130
134
|
|
131
135
|
before_should "post to the custom host" do
|
132
136
|
@post = stub("post", :set_form_data => nil)
|
@@ -137,7 +141,7 @@ class HoneybadgerTasksTest < Honeybadger::UnitTest
|
|
137
141
|
@http_proxy_class = stub("proxy_class", :new => @http_proxy)
|
138
142
|
@http_proxy_class.expects(:new).with("custom.host", 80).returns(@http_proxy)
|
139
143
|
Net::HTTP.expects(:Proxy).with(any_parameters).returns(@http_proxy_class)
|
140
|
-
Net::HTTP::Post.expects(:new).with("/deploys
|
144
|
+
Net::HTTP::Post.expects(:new).with("/v1/deploys").returns(@post)
|
141
145
|
@post.expects(:set_form_data).with(kind_of(Hash))
|
142
146
|
@http_proxy.expects(:request).with(any_parameters).returns(successful_response)
|
143
147
|
end
|
@@ -147,8 +151,8 @@ class HoneybadgerTasksTest < Honeybadger::UnitTest
|
|
147
151
|
context "when not configured" do
|
148
152
|
setup { Honeybadger.configure { |config| config.api_key = "" } }
|
149
153
|
|
150
|
-
context "on deploy(:
|
151
|
-
setup { @output = HoneybadgerTasks.deploy(:
|
154
|
+
context "on deploy(:environment => 'staging')" do
|
155
|
+
setup { @output = HoneybadgerTasks.deploy(:environment => "staging") }
|
152
156
|
|
153
157
|
before_should "complain about missing api key" do
|
154
158
|
HoneybadgerTasks.expects(:puts).with(regexp_matches(/api key/i))
|
data/test/unit/logger_test.rb
CHANGED
data/test/unit/notifier_test.rb
CHANGED
@@ -188,7 +188,7 @@ class NotifierTest < Honeybadger::UnitTest
|
|
188
188
|
assert_match /honeybadger\/rack_test\.rb$/, @hash[:file]
|
189
189
|
end
|
190
190
|
|
191
|
-
should "set
|
191
|
+
should "set environment_name to production" do
|
192
192
|
assert_equal 'production', @hash[:environment_name]
|
193
193
|
end
|
194
194
|
|
data/test/unit/sender_test.rb
CHANGED
@@ -34,7 +34,9 @@ class SenderTest < Honeybadger::UnitTest
|
|
34
34
|
http = stub(:post => response,
|
35
35
|
:read_timeout= => nil,
|
36
36
|
:open_timeout= => nil,
|
37
|
-
:use_ssl= => nil
|
37
|
+
:use_ssl= => nil,
|
38
|
+
:ca_file= => nil,
|
39
|
+
:verify_mode= => nil)
|
38
40
|
proxy = stub(:new => http)
|
39
41
|
Net::HTTP.stubs(:Proxy => proxy)
|
40
42
|
|
@@ -174,14 +176,19 @@ class SenderTest < Honeybadger::UnitTest
|
|
174
176
|
end
|
175
177
|
|
176
178
|
should "use the default DEFAULT_CERT_FILE if asked to" do
|
177
|
-
|
178
|
-
|
179
|
-
|
179
|
+
File.expects(:exist?).with(OpenSSL::X509::DEFAULT_CERT_FILE).returns(true)
|
180
|
+
|
181
|
+
Honeybadger.configure do |config|
|
182
|
+
config.secure = true
|
183
|
+
config.use_system_ssl_cert_chain = true
|
184
|
+
end
|
185
|
+
|
186
|
+
sender = Honeybadger::Sender.new(Honeybadger.configuration)
|
180
187
|
|
181
188
|
assert(sender.use_system_ssl_cert_chain?)
|
182
189
|
|
183
190
|
http = sender.send(:setup_http_connection)
|
184
|
-
assert_not_equal http.ca_file,
|
191
|
+
assert_not_equal http.ca_file, Honeybadger.configuration.local_cert_path
|
185
192
|
end
|
186
193
|
|
187
194
|
should "verify the connection when the use_ssl option is set (VERIFY_PEER)" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: honeybadger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-07-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|