download_json_spec

in report/download_artifacts.rb [59:97]


    def download_json_spec
      json_filename = CURRENT_PATH.join('tmp/artifacts.json')

      
      Dir.mkdir(CURRENT_PATH.join('tmp'), 0700) unless File.directory?(CURRENT_PATH.join('tmp'))

      
      json_url = "https://artifacts-api.elastic.co/v1/versions/#{version}"
      download_file!(json_url, json_filename)
      
      begin
        artifacts = JSON.parse(File.read(json_filename))
      rescue StandardError => e
        STDERR.puts "[!] Couldn't read JSON file #{json_filename}"
        exit 1
      end

      
      
      build_hash_artifact = artifacts['version']['builds'].first
      zip_url = build_hash_artifact.dig('projects', 'elasticsearch', 'packages').select { |k, _| k =~ /rest-resources-zip/ }.map { |_, v| v['url'] }.first

      
      build_hash_artifact.dig('projects', 'elasticsearch', 'packages').select { |k, _| k =~ /rest-resources-zip/ }.map { |_, v| v['url'] }.first

      
      filename = CURRENT_PATH.join("tmp/#{zip_url.split('/').last}")
      download_file!(zip_url, filename)

      spec = CURRENT_PATH.join('tmp/rest-api-spec')
      FileUtils.remove_dir(spec) if File.directory?(spec)

      puts "Unzipping file #{filename}"
      `unzip -o 
      `rm 
      puts "Artifacts downloaded in ./tmp, build hash #{@build_hash}"
      File.write(CURRENT_PATH.join('tmp/rest-api-spec/build_hash'), @build_hash)
    end