escobar 0.4.8 → 0.4.9

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: feca1cba2d0cd8d05817d469b299cd7f50c8561a
4
- data.tar.gz: c9c3375dc1486e1bdb5348c516422874a16191d2
3
+ metadata.gz: be87f6f6e3ec1daf5962ec67f64c6f7dfa9008fa
4
+ data.tar.gz: 8aaec2808c280aa2b1b6829efc93aaa8b1f95778
5
5
  SHA512:
6
- metadata.gz: 6a5e90e34f303fab92ea31ea15f5708cc25642f116c388de8a2e83d4254e94ad4b2563729ef147f90cac10f906c786b3ecbf12b85e7a2d6463838e7319dae8ce
7
- data.tar.gz: fb7209a69a29a7fd6c8a12cb0234a4ba328e94bf3e0b830c762ec125315ef3564777abb28dce5c5327b748c89b5ab8b1077f09b7f3b1c674c2a5f9f7a612a65c
6
+ metadata.gz: 729e76c8511df2a846f426e3c5259690ea8176b8b4c635e46bd6b2d80896baaed97d858a07d20bd78cf953b5d11cd8ce6a9b78d4b9a4a12ee1d334382cd74568
7
+ data.tar.gz: 48c521884a40c8a85f0604d2ac24f3ae197f52dcb80660fbc2bee81f3bdd1b4ba9323b148deb8d386c71e2bc156c2079b4163044033b80a1423134e4bed50f44
data/lib/escobar.rb CHANGED
@@ -59,6 +59,7 @@ module Escobar
59
59
  end
60
60
 
61
61
  require_relative "./escobar/client"
62
+ require_relative "./escobar/github/response/raise_error"
62
63
  require_relative "./escobar/github/client"
63
64
  require_relative "./escobar/github/deployment_error"
64
65
  require_relative "./escobar/heroku/app"
@@ -28,8 +28,18 @@ module Escobar
28
28
  error
29
29
  end
30
30
 
31
- def self.from_response(resp)
32
- error = new("Error from Heroku API")
31
+ def self.from_response_env(resp, message = "Error from Heroku API")
32
+ error = new(message)
33
+
34
+ error.body = resp.body
35
+ error.headers = resp.response_headers
36
+ error.status = resp.status
37
+
38
+ error
39
+ end
40
+
41
+ def self.from_response(resp, message = "Error from Heroku API")
42
+ error = new(message)
33
43
 
34
44
  error.body = resp.body
35
45
  error.headers = resp.headers
@@ -133,12 +133,16 @@ module Escobar
133
133
  Faraday.new(url: "https://api.github.com") do |c|
134
134
  c.use :instrumentation
135
135
  c.use ZipkinTracer::FaradayHandler, "api.github.com"
136
+ c.use Escobar::GitHub::Response::RaiseError
136
137
  c.adapter Faraday.default_adapter
137
138
  end
138
139
  end
139
140
 
140
141
  def default_client
141
- Faraday.new(url: "https://api.github.com")
142
+ Faraday.new(url: "https://api.github.com") do |c|
143
+ c.use Escobar::GitHub::Response::RaiseError
144
+ c.adapter Faraday.default_adapter
145
+ end
142
146
  end
143
147
  end
144
148
  end
@@ -0,0 +1,19 @@
1
+ module Escobar
2
+ module GitHub
3
+ module Response
4
+ # Faraday response middleware to handle API errors
5
+ # This will translate status to Escobar::Client::Errors
6
+ class RaiseError < ::Faraday::Response::Middleware
7
+ private
8
+
9
+ def on_complete(response)
10
+ case response.status
11
+ when 401
12
+ raise Escobar::Client::Error::Unauthorized
13
+ .from_response_env(response, "GitHub Unauthorized")
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -146,7 +146,7 @@ module Escobar
146
146
  github_deployment_url,
147
147
  heroku_build.dashboard_build_output_url,
148
148
  "pending",
149
- "Build running.."
149
+ "Build running."
150
150
  )
151
151
  end
152
152
 
@@ -29,6 +29,12 @@ module Escobar
29
29
  end
30
30
  end
31
31
 
32
+ def running_at_least?(version)
33
+ non_one_off.all? do |dyno|
34
+ dyno["release"]["version"] >= version && dyno["state"] == "up"
35
+ end
36
+ end
37
+
32
38
  def newer_than?(epoch)
33
39
  non_one_off.all? do |dyno|
34
40
  epoch < Time.parse(dyno["created_at"]).utc
@@ -1,3 +1,3 @@
1
1
  module Escobar
2
- VERSION = "0.4.8".freeze
2
+ VERSION = "0.4.9".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: escobar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.8
4
+ version: 0.4.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Corey Donohoe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-25 00:00:00.000000000 Z
11
+ date: 2017-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -191,6 +191,7 @@ files:
191
191
  - lib/escobar/client.rb
192
192
  - lib/escobar/github/client.rb
193
193
  - lib/escobar/github/deployment_error.rb
194
+ - lib/escobar/github/response/raise_error.rb
194
195
  - lib/escobar/heroku/app.rb
195
196
  - lib/escobar/heroku/build.rb
196
197
  - lib/escobar/heroku/build_request.rb