summaryrefslogtreecommitdiff
path: root/lib/rubygems/commands/sources_command.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/commands/sources_command.rb')
-rw-r--r--lib/rubygems/commands/sources_command.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/rubygems/commands/sources_command.rb b/lib/rubygems/commands/sources_command.rb
index af145fd7b4..feab23237d 100644
--- a/lib/rubygems/commands/sources_command.rb
+++ b/lib/rubygems/commands/sources_command.rb
@@ -43,6 +43,8 @@ class Gem::Commands::SourcesCommand < Gem::Command
source = Gem::Source.new source_uri
+ check_typo_squatting(source)
+
begin
if Gem.sources.include? source
say "source #{source_uri} already present in the cache"
@@ -62,6 +64,18 @@ class Gem::Commands::SourcesCommand < Gem::Command
end
end
+ def check_typo_squatting(source)
+ if source.typo_squatting?("rubygems.org")
+ question = <<-QUESTION.chomp
+#{source.uri.to_s} is too similar to https://rubygems.org
+
+Do you want to add this source?
+ QUESTION
+
+ terminate_interaction 1 unless ask_yes_no question
+ end
+ end
+
def check_rubygems_https(source_uri) # :nodoc:
uri = URI source_uri