# File lib/coveralls/api.rb, line 18
    def self.post_json(endpoint, hash)
      disable_net_blockers!

      uri = endpoint_to_uri(endpoint)

      Coveralls::Output.puts("#{ JSON.pretty_generate(hash) }", :color => "green") if ENV['COVERALLS_DEBUG']
      Coveralls::Output.puts("[Coveralls] Submitting to #{API_BASE}", :color => "cyan")

      client  = build_client(uri)
      request = build_request(uri.path, hash)

      response = client.request(request)

      response_hash = JSON.load(response.body.to_str)

      if response_hash['message']
        Coveralls::Output.puts("[Coveralls] #{ response_hash['message'] }", :color => "cyan")
      end

      if response_hash['url']
        Coveralls::Output.puts("[Coveralls] #{ Coveralls::Output.format(response_hash['url'], :color => "underline") }", :color => "cyan")
      end

      case response
      when Net::HTTPServiceUnavailable
        Coveralls::Output.puts("[Coveralls] API timeout occured, but data should still be processed", :color => "red")
      when Net::HTTPInternalServerError
        Coveralls::Output.puts("[Coveralls] API internal error occured, we're on it!", :color => "red")
      end
    end