class Bundler::ChecksumMismatchError
Public Class Methods
new(name_tuple, existing, checksum)
click to toggle source
# File bundler/errors.rb, line 56 def initialize(name_tuple, existing, checksum) @name_tuple = name_tuple @existing = existing @checksum = checksum end
Public Instance Methods
message()
click to toggle source
# File bundler/errors.rb, line 62 def message <<~MESSAGE Bundler found mismatched checksums. This is a potential security risk. #{@name_tuple.lock_name} #{@existing.to_lock} from #{@existing.sources.join("\n and ")} #{@name_tuple.lock_name} #{@checksum.to_lock} from #{@checksum.sources.join("\n and ")} #{mismatch_resolution_instructions} To ignore checksum security warnings, disable checksum validation with `bundle config set --local disable_checksum_validation true` MESSAGE end
mismatch_resolution_instructions()
click to toggle source
# File bundler/errors.rb, line 76 def mismatch_resolution_instructions removable, remote = [@existing, @checksum].partition(&:removable?) case removable.size when 0 msg = +"Mismatched checksums each have an authoritative source:\n" msg << " 1. #{@existing.sources.reject(&:removable?).map(&:to_s).join(" and ")}\n" msg << " 2. #{@checksum.sources.reject(&:removable?).map(&:to_s).join(" and ")}\n" msg << "You may need to alter your Gemfile sources to resolve this issue.\n" when 1 msg = +"If you trust #{remote.first.sources.first}, to resolve this issue you can:\n" msg << removable.first.removal_instructions when 2 msg = +"To resolve this issue you can either:\n" msg << @checksum.removal_instructions msg << "or if you are sure that the new checksum from #{@checksum.sources.first} is correct:\n" msg << @existing.removal_instructions end end