Fix importers not assigning a new default group

The Bitbucket Server as well as other importers pass in a group name to be
created (assuming the user has permission) and attempt to dedupe that with an
existing group. However, the group *name* is not guaranteed to be
unique, but the *path* is.

Closes #50110
This commit is contained in:
Stan Hu 2018-08-31 14:57:37 -07:00
parent 472f2d5666
commit 965f9113b0
3 changed files with 10 additions and 2 deletions

View File

@ -55,7 +55,7 @@ module NamespacesHelper
# group if one exists by that name to prevent duplicates.
def dedup_extra_group(extra_group)
unless extra_group.persisted?
existing_group = Group.find_by(name: extra_group.name)
existing_group = Group.find_by(path: extra_group.path)
extra_group = existing_group if existing_group&.persisted?
end

View File

@ -0,0 +1,5 @@
---
title: Fix importers not assigning a new default group
merge_request: 21456
author:
type: fixed

View File

@ -50,9 +50,12 @@ describe NamespacesHelper do
end
it 'selects the new group by default' do
# Ensure we don't select a group with the same name
create(:group, name: 'new-group', path: 'another-path')
allow(helper).to receive(:current_user).and_return(user)
options = helper.namespaces_options(:extra_group, display_path: true, extra_group: build(:group, name: 'new-group'))
options = helper.namespaces_options(:extra_group, display_path: true, extra_group: build(:group, name: 'new-group', path: 'new-group'))
expect(options).to include(user_group.name)
expect(options).not_to include(admin_group.name)