Commit 8568a02e authored by Kamil Trzciński's avatar Kamil Trzciński

Merge branch 'fix/gb/fix-registry-for-uppercased-project-paths' into 'master'

Fix registry for projects with uppercases in path

Closes #30880

See merge request !10674
parents 178efad0 b5b6c7b1
......@@ -20,7 +20,8 @@ class ContainerRepository < ActiveRecord::Base
end
def path
@path ||= [project.full_path, name].select(&:present?).join('/')
@path ||= [project.full_path, name]
.select(&:present?).join('/').downcase
end
def location
......
......@@ -15,7 +15,7 @@ module ContainerRegistry
LEVELS_SUPPORTED = 3
def initialize(path)
@path = path
@path = path.to_s.downcase
end
def valid?
......@@ -25,7 +25,7 @@ module ContainerRegistry
end
def components
@components ||= @path.to_s.split('/')
@components ||= @path.split('/')
end
def nodes
......
......@@ -33,10 +33,20 @@ describe ContainerRegistry::Path do
end
describe '#to_s' do
context 'when path does not have uppercase characters' do
let(:path) { 'some/image' }
it 'return a string with a repository path' do
expect(subject.to_s).to eq path
expect(subject.to_s).to eq 'some/image'
end
end
context 'when path has uppercase characters' do
let(:path) { 'SoMe/ImAgE' }
it 'return a string with a repository path' do
expect(subject.to_s).to eq 'some/image'
end
end
end
......@@ -70,6 +80,12 @@ describe ContainerRegistry::Path do
it { is_expected.to be_valid }
end
context 'when path contains uppercase letters' do
let(:path) { 'Some/Registry' }
it { is_expected.to be_valid }
end
end
describe '#has_repository?' do
......
......@@ -34,11 +34,21 @@ describe ContainerRepository do
end
describe '#path' do
context 'when project path does not contain uppercase letters' do
it 'returns a full path to the repository' do
expect(repository.path).to eq('group/test/my_image')
end
end
context 'when path contains uppercase letters' do
let(:project) { create(:project, path: 'MY_PROJECT', group: group) }
it 'returns a full path without capital letters' do
expect(repository.path).to eq('group/my_project/my_image')
end
end
end
describe '#manifest' do
it 'returns non-empty manifest' do
expect(repository.manifest).not_to be_nil
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment