Exception: Bundler::ChecksumMismatchError
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
SecurityError ,
BundlerError ,
StandardError
|
|
Instance Chain:
self,
SecurityError ,
BundlerError ,
StandardError
|
|
Inherits: |
Bundler::SecurityError
|
Defined in: | lib/bundler/errors.rb |
Class Method Summary
BundlerError
- Inherited
Instance Method Summary
Constructor Details
.new(lock_name, existing, checksum) ⇒ ChecksumMismatchError
# File 'lib/bundler/errors.rb', line 56
def initialize(lock_name, existing, checksum) @lock_name = lock_name @existing = existing @checksum = checksum end
Instance Method Details
#message
[ GitHub ]# File 'lib/bundler/errors.rb', line 62
def <<~MESSAGE Bundler found mismatched checksums. This is a potential security risk. #{@lock_name} #{@existing.to_lock} from #{@existing.sources.join("\n and ")} #{@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
[ GitHub ]# File 'lib/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