diff options
author | Stan Hu <stanhu@gmail.com> | 2016-06-01 22:06:25 +0000 |
---|---|---|
committer | Yorick Peterse <yorickpeterse@gmail.com> | 2016-06-02 13:43:25 +0200 |
commit | e601e683bcdee8eae00583aae713d69afc9eaa07 (patch) | |
tree | a698aa8d05d6735887217aefd6a5ebacebd50c32 | |
parent | eb48969ad59107de82bfcbf9fd8461ad0f0932be (diff) | |
download | gitlab-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-- | CHANGELOG | 1 | ||||
-rw-r--r-- | app/models/project.rb | 10 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 9 |
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) } |