summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2017-05-12 10:29:25 -0500
committerDouwe Maan <douwe@selenight.nl>2017-05-12 10:35:41 -0500
commite9d7b6cd8facc4828fc4abfb82902d803d523882 (patch)
treeccd3a136719c8abbe5a48e49aab56164c8916fc1
parent02650d97e5e3134c33514334f4721f5b4d1ebd26 (diff)
downloadgitlab-ce-e9d7b6cd8facc4828fc4abfb82902d803d523882.tar.gz
Link Gemfile git URLs
-rw-r--r--lib/gitlab/dependency_linker/gemfile_linker.rb3
-rw-r--r--spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb6
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/gitlab/dependency_linker/gemfile_linker.rb b/lib/gitlab/dependency_linker/gemfile_linker.rb
index e36b88d357d..45be760d89e 100644
--- a/lib/gitlab/dependency_linker/gemfile_linker.rb
+++ b/lib/gitlab/dependency_linker/gemfile_linker.rb
@@ -16,6 +16,9 @@ module Gitlab
"https://github.com/#{name}"
end
+ # Link `git: "https://gitlab.example.com/user/repo"` to https://gitlab.example.com/user/repo
+ link_regex(%r{(git:|:git\s*=>)\s*['"](?<name>https?://[^'"]+)['"]}) { |url| url }
+
# Link `source "https://rubygems.org"` to https://rubygems.org
link_method_call("source", %r{https?://[^'"]+}) { |url| url }
end
diff --git a/spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb b/spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb
index 62e477e1de0..024a03a0ef5 100644
--- a/spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb
+++ b/spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb
@@ -30,7 +30,7 @@ describe Gitlab::DependencyLinker::GemfileLinker, lib: true do
# Specify a sprockets version due to increased performance
# See https://gitlab.com/gitlab-org/gitlab-ce/issues/6069
- gem 'sprockets', '~> 3.6.0'
+ gem 'sprockets', '~> 3.6.0', git: 'https://gitlab.example.com/gems/sprockets'
# Default values for AR models
gem 'default_value_for', '~> 3.0.0'
@@ -59,5 +59,9 @@ describe Gitlab::DependencyLinker::GemfileLinker, lib: true do
expect(subject).to include(link('rails/rails', 'https://github.com/rails/rails'))
expect(subject).to include(link('rails/responders', 'https://github.com/rails/responders'))
end
+
+ it 'links Git repos' do
+ expect(subject).to include(link('https://gitlab.example.com/gems/sprockets', 'https://gitlab.example.com/gems/sprockets'))
+ end
end
end