Commit 8d0cae3f authored by Kamil Trzciński's avatar Kamil Trzciński

Merge branch 'fix/gb/container-registry-repository-paths' into 'master'

Fix duplicated container repository names

Closes #31117

See merge request !10771
parents 18da66a5 5c92c4dd
...@@ -48,7 +48,7 @@ module ContainerRegistry ...@@ -48,7 +48,7 @@ module ContainerRegistry
end end
def root_repository? def root_repository?
@path == repository_project.full_path @path == project_path
end end
def repository_project def repository_project
...@@ -60,7 +60,13 @@ module ContainerRegistry ...@@ -60,7 +60,13 @@ module ContainerRegistry
def repository_name def repository_name
return unless has_project? return unless has_project?
@path.remove(%r(^#{Regexp.escape(repository_project.full_path)}/?)) @path.remove(%r(^#{Regexp.escape(project_path)}/?))
end
def project_path
return unless has_project?
repository_project.full_path.downcase
end end
def to_s def to_s
......
...@@ -189,15 +189,10 @@ describe ContainerRegistry::Path do ...@@ -189,15 +189,10 @@ describe ContainerRegistry::Path do
end end
context 'when project exists' do context 'when project exists' do
let(:group) { create(:group, path: 'some_group') } let(:group) { create(:group, path: 'Some_Group') }
let(:project) do
create(:empty_project, group: group, name: 'some_project')
end
before do before do
allow(path).to receive(:repository_project) create(:empty_project, group: group, name: 'some_project')
.and_return(project)
end end
context 'when project path equal repository path' do context 'when project path equal repository path' do
...@@ -225,4 +220,27 @@ describe ContainerRegistry::Path do ...@@ -225,4 +220,27 @@ describe ContainerRegistry::Path do
end end
end end
end end
describe '#project_path' do
context 'when project does not exist' do
let(:path) { 'some/name' }
it 'returns nil' do
expect(subject.project_path).to be_nil
end
end
context 'when project with uppercase characters in path exists' do
let(:path) { 'somegroup/myproject/my/image' }
let(:group) { create(:group, path: 'SomeGroup') }
before do
create(:empty_project, group: group, name: 'MyProject')
end
it 'returns downcased project path' do
expect(subject.project_path).to eq 'somegroup/myproject'
end
end
end
end end
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