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
This commit is contained in:
Stan Hu
2016-06-02 13:43:25 +02:00
committed by Yorick Peterse
parent eb48969ad5
commit e601e683bc
3 changed files with 17 additions and 3 deletions
+1
View File
@@ -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
+7 -3
View File
@@ -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
+9
View File
@@ -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) }