diff --git a/lib/omnibus/fetchers/net_fetcher.rb b/lib/omnibus/fetchers/net_fetcher.rb index eec94dcd3..60939ec2b 100644 --- a/lib/omnibus/fetchers/net_fetcher.rb +++ b/lib/omnibus/fetchers/net_fetcher.rb @@ -271,6 +271,9 @@ def extract # @return [Symbol] # def digest_type + if source[:url].to_s.downcase.end_with?(".git") + return nil + end DIGESTS.each do |digest| return digest if source.key? digest end @@ -284,10 +287,18 @@ def digest_type # if the checksum does not match # def verify_checksum! + return if digest_type.nil? # skip verification for git urls + log.info(log_key) { "Verifying checksum" } + # Check if the source is a Git repository + if source[:url] =~ %r{git@|https?:\/\/.*\.git} + log.warn(log_key) { "Skipping checksum verification for Git source: #{source[:url]}" } + return + end + expected = checksum - actual = digest(downloaded_file, digest_type) + actual = digest(downloaded_file, digest_type) if expected != actual raise ChecksumMismatch.new(self, expected, actual)