Method: Onceover::VendoredModules#github_get
- Defined in:
- lib/onceover/vendored_modules.rb
#github_get(url, params) ⇒ Object
Given a github url and optional query parameters, return the parsed json body
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/onceover/vendored_modules.rb', line 155 def github_get(url, params) uri = URI.parse(url) uri.query = URI.encode_www_form(params) if params http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = (uri.scheme == 'https') request = Net::HTTP::Get.new(uri.request_uri) request['Accept'] = 'application/vnd.github.raw+json' request['X-GitHub-Api-Version'] = '2022-11-28' response = http.request(request) case response when Net::HTTPOK # 200 MultiJson.load(response.body) else # Expose the ratelimit response headers # https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api?apiVersion=2022-11-28#checking-the-status-of-your-rate-limit ratelimit_headers = response.to_hash.select { |k, _v| k =~ /x-ratelimit.*/ } raise "#{response.code} #{response.message} #{ratelimit_headers}" end end |