Skip to content
Snippets Groups Projects
Commit 2daabe98 authored by Jack Nagel's avatar Jack Nagel
Browse files

Fix uninitialized constant error in GitHub.open

The error handling depends on side effects of `require "net/https"`,
so it should be wrapped in an explicit begin block.

cf. Homebrew/homebrew#30407.
parent 3d69e5ab
No related branches found
No related tags found
No related merge requests found
......@@ -311,15 +311,18 @@ module GitHub extend self
}
default_headers['Authorization'] = "token #{HOMEBREW_GITHUB_API_TOKEN}" if HOMEBREW_GITHUB_API_TOKEN
Kernel.open(url, default_headers.merge(headers)) do |f|
yield Utils::JSON.load(f.read)
begin
Kernel.open(url, default_headers.merge(headers)) do |f|
yield Utils::JSON.load(f.read)
end
rescue OpenURI::HTTPError => e
handle_api_error(e)
rescue SocketError, OpenSSL::SSL::SSLError => e
raise Error, "Failed to connect to: #{url}\n#{e.message}", e.backtrace
rescue Utils::JSON::Error => e
raise Error, "Failed to parse JSON response\n#{e.message}", e.backtrace
end
rescue OpenURI::HTTPError => e
handle_api_error(e)
rescue SocketError, OpenSSL::SSL::SSLError => e
raise Error, "Failed to connect to: #{url}\n#{e.message}", e.backtrace
rescue Utils::JSON::Error => e
raise Error, "Failed to parse JSON response\n#{e.message}", e.backtrace
end
def handle_api_error(e)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment