diff options
author | Fredrik Valeur <fredrik.valeur@appfolio.com> | 2014-09-26 14:14:03 -0700 |
---|---|---|
committer | Fredrik Valeur <fredrik.valeur@appfolio.com> | 2014-09-26 14:14:03 -0700 |
commit | f87da4f5c11442f7c3b61a7ec04f8462154fd5b0 (patch) | |
tree | 9055d704a8348d5cb76b8696f4262ad99c611bc8 /lib/bundler | |
parent | 8dbb7881c0463807bb8883e084818924fd3df09e (diff) | |
download | bundler-f87da4f5c11442f7c3b61a7ec04f8462154fd5b0.tar.gz |
Use HTTP auth when checking for presence of API
Diffstat (limited to 'lib/bundler')
-rw-r--r-- | lib/bundler/fetcher.rb | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/bundler/fetcher.rb b/lib/bundler/fetcher.rb index 8c8c8689..48cdf26e 100644 --- a/lib/bundler/fetcher.rb +++ b/lib/bundler/fetcher.rb @@ -226,6 +226,12 @@ module Bundler end def use_api + _use_api(true) + rescue AuthenticationRequiredError + retry_with_auth{_use_api(false)} + end + + def _use_api(reraise_auth_error = false) return @use_api if defined?(@use_api) if @remote_uri.scheme == "file" || Bundler::Fetcher.disable_endpoint @@ -233,6 +239,9 @@ module Bundler elsif fetch(dependency_api_uri) @use_api = true end + rescue AuthenticationRequiredError => e + raise e if reraise_auth_error + false rescue HTTPError @use_api = false end @@ -268,6 +277,8 @@ module Bundler response.body when Net::HTTPRequestEntityTooLarge raise FallbackError, response.body + when Net::HTTPUnauthorized + raise AuthenticationRequiredError, "#{response.class}: #{response.body}" else raise HTTPError, "#{response.class}: #{response.body}" end @@ -282,8 +293,6 @@ module Bundler req.basic_auth(user, password) end connection.request(uri, req) - rescue Net::HTTPUnauthorized, Net::HTTPForbidden - retry_with_auth { request(uri) } rescue OpenSSL::SSL::SSLError raise CertificateFailureError.new(uri) rescue *HTTP_ERRORS => e |