2018-11-02 23:07:56 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-06-01 12:49:40 +03:00
|
|
|
require_relative "base"
|
2018-11-02 23:07:56 +00:00
|
|
|
|
|
|
|
module Bundler
|
|
|
|
class Fetcher
|
|
|
|
class Index < Base
|
|
|
|
def specs(_gem_names)
|
|
|
|
Bundler.rubygems.fetch_all_remote_specs(remote)
|
2020-12-08 16:36:29 +09:00
|
|
|
rescue Gem::RemoteFetcher::FetchError => e
|
2018-11-02 23:07:56 +00:00
|
|
|
case e.message
|
|
|
|
when /certificate verify failed/
|
|
|
|
raise CertificateFailureError.new(display_uri)
|
|
|
|
when /401/
|
2019-06-01 12:49:40 +03:00
|
|
|
raise BadAuthenticationError, remote_uri if remote_uri.userinfo
|
2018-11-02 23:07:56 +00:00
|
|
|
raise AuthenticationRequiredError, remote_uri
|
|
|
|
when /403/
|
|
|
|
raise BadAuthenticationError, remote_uri if remote_uri.userinfo
|
|
|
|
raise AuthenticationRequiredError, remote_uri
|
|
|
|
else
|
2020-12-08 16:36:29 +09:00
|
|
|
raise HTTPError, "Could not fetch specs from #{display_uri} due to underlying error <#{e.message}>"
|
2018-11-02 23:07:56 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|