diff options
Diffstat (limited to 'vendor/gems/bundler-checksum/lib/bundler/checksum')
5 files changed, 0 insertions, 198 deletions
diff --git a/vendor/gems/bundler-checksum/lib/bundler/checksum/command.rb b/vendor/gems/bundler-checksum/lib/bundler/checksum/command.rb deleted file mode 100644 index 438f41f6e69..00000000000 --- a/vendor/gems/bundler-checksum/lib/bundler/checksum/command.rb +++ /dev/null @@ -1,27 +0,0 @@ -# frozen_string_literal: true - -module Bundler::Checksum - module Command - autoload :Init, File.expand_path("command/init", __dir__) - autoload :Verify, File.expand_path("command/verify", __dir__) - autoload :Helper, File.expand_path("command/helper", __dir__) - - def self.execute(args) - if args.empty? - $stderr.puts 'A command must be given [init,update,verify]' - end - - if args.first == 'init' - Init.execute - elsif args.first == 'update' - $stderr.puts 'Not implemented, please use init' - elsif args.first == 'verify' - verified = Verify.execute - - unless verified - exit 1 - end - end - end - end -end diff --git a/vendor/gems/bundler-checksum/lib/bundler/checksum/command/helper.rb b/vendor/gems/bundler-checksum/lib/bundler/checksum/command/helper.rb deleted file mode 100644 index fa06bfe3da4..00000000000 --- a/vendor/gems/bundler-checksum/lib/bundler/checksum/command/helper.rb +++ /dev/null @@ -1,28 +0,0 @@ -# frozen_string_literal: true - -require 'json' -require 'net/http' - -module Bundler::Checksum::Command - module Helper - extend self - - def remote_checksums_for_gem(gem_name, gem_version) - response = Net::HTTP.get_response(URI( - "https://rubygems.org/api/v1/versions/#{gem_name}.json" - )) - - return [] unless response.code == '200' - - gem_candidates = JSON.parse(response.body, symbolize_names: true) - gem_candidates.select! { |g| g[:number] == gem_version.to_s } - - gem_candidates.map { - |g| {:name => gem_name, :version => gem_version, :platform => g[:platform], :checksum => g[:sha]} - } - - rescue JSON::ParserError - [] - end - end -end diff --git a/vendor/gems/bundler-checksum/lib/bundler/checksum/command/init.rb b/vendor/gems/bundler-checksum/lib/bundler/checksum/command/init.rb deleted file mode 100644 index 47a9b676f1d..00000000000 --- a/vendor/gems/bundler-checksum/lib/bundler/checksum/command/init.rb +++ /dev/null @@ -1,83 +0,0 @@ -# frozen_string_literal: true - -require 'openssl' - -module Bundler::Checksum::Command - module Init - extend self - - def execute - $stderr.puts "Initializing checksum file #{checksum_file}" - - checksums = [] - - compact_index_cache = Bundler::Fetcher::CompactIndex - .new(nil, Bundler::Source::Rubygems::Remote.new(Bundler::URI("https://rubygems.org")), nil) - .send(:compact_index_client) - .instance_variable_get(:@cache) - - Bundler.definition.resolve.sort_by(&:name).each do |spec| - next unless spec.source.is_a?(Bundler::Source::Rubygems) - spec_identifier = "#{spec.name}==#{spec.version}" - - previous_checksum = previous_checksums.select do |checksum| - checksum[:name] == spec.name && checksum[:version] == spec.version.to_s - end - - if !previous_checksum.empty? - $stderr.puts "Using #{spec_identifier}" - checksums += previous_checksum - - next - end - - $stderr.puts "Adding #{spec_identifier}" - - compact_index_dependencies = compact_index_cache.dependencies(spec.name).select { |item| item.first == spec.version.to_s } - - if !compact_index_dependencies.empty? - compact_index_checksums = compact_index_dependencies.map do |version, platform, dependencies, requirements| - { - name: spec.name, - version: spec.version.to_s, - platform: Gem::Platform.new(platform).to_s, - checksum: requirements.detect { |requirement| requirement.first == 'checksum' }.flatten[1] - } - end - - checksums += compact_index_checksums.sort_by { |hash| hash.values } - else - remote_checksum = Helper.remote_checksums_for_gem(spec.name, spec.version) - - if remote_checksum.empty? - raise "#{spec.name} #{spec.version} not found on Rubygems!" - end - - checksums += remote_checksum.sort_by { |hash| hash.values } - end - end - - File.write(checksum_file, JSON.generate(checksums, array_nl: "\n") + "\n") - end - - private - - def previous_checksums - @previous_checksums ||= - if File.exist?(checksum_file) - ::Bundler::Checksum.checksums_from_file - else - [] - end - end - - def checksum_file - ::Bundler::Checksum.checksum_file - end - - def lockfile - lockfile_path = Bundler.default_lockfile - lockfile = Bundler::LockfileParser.new(Bundler.read_file(lockfile_path)) - end - end -end diff --git a/vendor/gems/bundler-checksum/lib/bundler/checksum/command/verify.rb b/vendor/gems/bundler-checksum/lib/bundler/checksum/command/verify.rb deleted file mode 100644 index ba2eea6ea0c..00000000000 --- a/vendor/gems/bundler-checksum/lib/bundler/checksum/command/verify.rb +++ /dev/null @@ -1,52 +0,0 @@ -# frozen_string_literal: true - -module Bundler::Checksum::Command - module Verify - extend self - - def execute - $stderr.puts 'Verifying bundle checksums' - - verified = true - - local_checksums.each do |gem| - name = gem.fetch(:name) - version = gem.fetch(:version) - platform = gem.fetch(:platform) - checksum = gem.fetch(:checksum) - - $stderr.puts "Verifying #{name}==#{version} #{platform}" - unless validate_gem_checksum(name, version, platform, checksum) - verified = false - end - end - - verified - end - - private - - def local_checksums - ::Bundler::Checksum.checksums_from_file - end - - def validate_gem_checksum(gem_name, gem_version, gem_platform, local_checksum) - remote_checksums = Helper.remote_checksums_for_gem(gem_name, gem_version) - if remote_checksums.empty? - $stderr.puts "#{gem_name} #{gem_version} not found on Rubygems, skipping" - return false - end - - remote_platform_checksum = remote_checksums.find { |g| g[:name] == gem_name && g[:platform] == gem_platform.to_s } - - if local_checksum == remote_platform_checksum[:checksum] - true - else - $stderr.puts "Gem #{gem_name} #{gem_version} #{gem_platform} failed checksum verification" - $stderr.puts "LOCAL: #{local_checksum}" - $stderr.puts "REMOTE: #{remote_platform_checksum[:checksum]}" - return false - end - end - end -end diff --git a/vendor/gems/bundler-checksum/lib/bundler/checksum/version.rb b/vendor/gems/bundler-checksum/lib/bundler/checksum/version.rb deleted file mode 100644 index 41e958b2db9..00000000000 --- a/vendor/gems/bundler-checksum/lib/bundler/checksum/version.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -module Bundler - module Checksum - # bundler-checksum version - VERSION = '0.1.0' - end -end |