summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2016-06-01 22:06:25 +0000
committerYorick Peterse <yorickpeterse@gmail.com>2016-06-02 13:43:25 +0200
commite601e683bcdee8eae00583aae713d69afc9eaa07 (patch)
treea698aa8d05d6735887217aefd6a5ebacebd50c32
parenteb48969ad59107de82bfcbf9fd8461ad0f0932be (diff)
downloadgitlab-ce-e601e683bcdee8eae00583aae713d69afc9eaa07.tar.gz
Merge branch 'downcase-registry-repository' into 'master'
Use downcased path to container repository as this is expected path by Docker Docker Engine requires path to be lowercase. This makes all container registry paths to be show and used downcased instead of mixed case. Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/17959 See merge request !4420
-rw-r--r--CHANGELOG1
-rw-r--r--app/models/project.rb10
-rw-r--r--spec/models/project_spec.rb9
3 files changed, 17 insertions, 3 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 8865760217b..2e57bdb0788 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -13,6 +13,7 @@ v 8.8.3
- Add Application Setting to configure Container Registry token expire delay (default 5min). !4364
- Pass the "Remember me" value to the 2FA token form. !4369
- Fix incorrect links on pipeline page when merge request created from fork. !4376
+ - Use downcased path to container repository as this is expected path by Docker. !4420
v 8.8.2
- Added remove due date button. !4209
diff --git a/app/models/project.rb b/app/models/project.rb
index 37de1dfe4d5..4e3d92507f5 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -309,21 +309,25 @@ class Project < ActiveRecord::Base
@repository ||= Repository.new(path_with_namespace, self)
end
+ def container_registry_path_with_namespace
+ path_with_namespace.downcase
+ end
+
def container_registry_repository
return unless Gitlab.config.registry.enabled
@container_registry_repository ||= begin
- token = Auth::ContainerRegistryAuthenticationService.full_access_token(path_with_namespace)
+ token = Auth::ContainerRegistryAuthenticationService.full_access_token(container_registry_path_with_namespace)
url = Gitlab.config.registry.api_url
host_port = Gitlab.config.registry.host_port
registry = ContainerRegistry::Registry.new(url, token: token, path: host_port)
- registry.repository(path_with_namespace)
+ registry.repository(container_registry_path_with_namespace)
end
end
def container_registry_repository_url
if Gitlab.config.registry.enabled
- "#{Gitlab.config.registry.host_port}/#{path_with_namespace}"
+ "#{Gitlab.config.registry.host_port}/#{container_registry_path_with_namespace}"
end
end
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 60e1ec43f2b..3cabf3aef51 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -784,6 +784,15 @@ describe Project, models: true do
end
end
+ describe '#container_registry_path_with_namespace' do
+ let(:project) { create(:empty_project, path: 'PROJECT') }
+
+ subject { project.container_registry_path_with_namespace }
+
+ it { is_expected.not_to eq(project.path_with_namespace) }
+ it { is_expected.to eq(project.path_with_namespace.downcase) }
+ end
+
describe '#container_registry_repository' do
let(:project) { create(:empty_project) }