Merge branch '29673-500-internal-server-error-when-enabling-a-deploy-key-more-than-once-through-api' into 'master'

Detect already enabled DeployKeys in EnableDeployKeyService

Closes #29673

See merge request !11010
This commit is contained in:
Rémy Coutable 2017-05-03 15:11:19 +00:00
commit 349e423137
3 changed files with 18 additions and 1 deletions

View file

@ -4,7 +4,10 @@ module Projects
key = accessible_keys.find_by(id: params[:key_id] || params[:id])
return unless key
project.deploy_keys << key
unless project.deploy_keys.include?(key)
project.deploy_keys << key
end
key
end

View file

@ -0,0 +1,4 @@
---
title: Detect already enabled DeployKeys in EnableDeployKeyService
merge_request:
author:

View file

@ -21,6 +21,16 @@ describe Projects::EnableDeployKeyService, services: true do
end
end
context 'add the same key twice' do
before do
project.deploy_keys << deploy_key
end
it 'returns existing key' do
expect(service.execute).to eq(deploy_key)
end
end
def service
Projects::EnableDeployKeyService.new(project, user, params)
end