Sha256: c43b84b812784e85876bf4001383e837836c67670c6192f6a87fd51b58a0dd78
Contents?: true
Size: 1.04 KB
Versions: 4
Compression:
Stored size: 1.04 KB
Contents
# frozen_string_literal: true require "net/http" module Buildkite::TestCollector class HTTPClient attr :authorization_header def initialize(url) @url = url @authorization_header = "Token token=\"#{Buildkite::TestCollector.api_token}\"" end def post_json(data) contact_uri = URI.parse(url) http = Net::HTTP.new(contact_uri.host, contact_uri.port) http.use_ssl = contact_uri.scheme == "https" contact = Net::HTTP::Post.new(contact_uri.path, { "Authorization" => authorization_header, "Content-Type" => "application/json", "Content-Encoding" => "gzip", }) data_set = data.map(&:as_hash) body = { run_env: Buildkite::TestCollector::CI.env, format: "json", data: data_set }.to_json compressed_body = StringIO.new writer = Zlib::GzipWriter.new(compressed_body) writer.write(body) writer.close contact.body = compressed_body.string http.request(contact) end private attr :url end end
Version data entries
4 entries across 4 versions & 1 rubygems