BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
eacb7626
Commit
eacb7626
authored
Oct 26, 2016
by
Rémy Coutable
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'joshua.welsh/gitlab-ce-fix_deploy_keys_regressions'
See merge request !6784
parents
70074733
ce4760bb
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
2 deletions
+25
-2
CHANGELOG.md
CHANGELOG.md
+1
-0
deploy_keys.rb
lib/api/deploy_keys.rb
+7
-2
deploy_keys_spec.rb
spec/requests/api/deploy_keys_spec.rb
+17
-0
No files found.
CHANGELOG.md
View file @
eacb7626
...
...
@@ -12,6 +12,7 @@ Please view this file on the master branch, on stable branches it's out of date.
-
Fixed link typo on /help/ui to Alerts section. !6915 (Sam Rose)
-
Simpler arguments passed to named_route on toggle_award_url helper method
-
Fix: Backup restore doesn't clear cache
-
API: Fix project deploy keys 400 and 500 errors when adding an existing key. !6784 (Joshua Welsh)
-
Replace jquery.cookie plugin with js.cookie !7085
-
Use MergeRequestsClosingIssues cache data on Issue#closed_by_merge_requests method
-
Fix Sign in page 'Forgot your password?' link overlaps on medium-large screens
...
...
lib/api/deploy_keys.rb
View file @
eacb7626
...
...
@@ -49,18 +49,23 @@ module API
attrs
=
attributes_for_keys
[
:title
,
:key
]
attrs
[
:key
].
strip!
if
attrs
[
:key
]
# Check for an existing key joined to this project
key
=
user_project
.
deploy_keys
.
find_by
(
key:
attrs
[
:key
])
present
key
,
with:
Entities
::
SSHKey
if
key
if
key
present
key
,
with:
Entities
::
SSHKey
break
end
# Check for available deploy keys in other projects
key
=
current_user
.
accessible_deploy_keys
.
find_by
(
key:
attrs
[
:key
])
if
key
user_project
.
deploy_keys
<<
key
present
key
,
with:
Entities
::
SSHKey
break
end
# Create a new deploy key
key
=
DeployKey
.
new
attrs
if
key
.
valid?
&&
user_project
.
deploy_keys
<<
key
present
key
,
with:
Entities
::
SSHKey
else
...
...
spec/requests/api/deploy_keys_spec.rb
View file @
eacb7626
...
...
@@ -6,6 +6,7 @@ describe API::API, api: true do
let
(
:user
)
{
create
(
:user
)
}
let
(
:admin
)
{
create
(
:admin
)
}
let
(
:project
)
{
create
(
:project
,
creator_id:
user
.
id
)
}
let
(
:project2
)
{
create
(
:project
,
creator_id:
user
.
id
)
}
let
(
:deploy_key
)
{
create
(
:deploy_key
,
public:
true
)
}
let!
(
:deploy_keys_project
)
do
...
...
@@ -96,6 +97,22 @@ describe API::API, api: true do
post
api
(
"/projects/
#{
project
.
id
}
/deploy_keys"
,
admin
),
key_attrs
end
.
to
change
{
project
.
deploy_keys
.
count
}.
by
(
1
)
end
it
'returns an existing ssh key when attempting to add a duplicate'
do
expect
do
post
api
(
"/projects/
#{
project
.
id
}
/deploy_keys"
,
admin
),
{
key:
deploy_key
.
key
,
title:
deploy_key
.
title
}
end
.
not_to
change
{
project
.
deploy_keys
.
count
}
expect
(
response
).
to
have_http_status
(
201
)
end
it
'joins an existing ssh key to a new project'
do
expect
do
post
api
(
"/projects/
#{
project2
.
id
}
/deploy_keys"
,
admin
),
{
key:
deploy_key
.
key
,
title:
deploy_key
.
title
}
end
.
to
change
{
project2
.
deploy_keys
.
count
}.
by
(
1
)
expect
(
response
).
to
have_http_status
(
201
)
end
end
describe
'DELETE /projects/:id/deploy_keys/:key_id'
do
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment