Commit eb1cb7be authored by Rémy Coutable's avatar Rémy Coutable

Merge branch '45576-fix-create-project-for-user-endpoint' into 'master'

Resolve "Upgrading to API V4 Project Creation for user Fails"

Closes #45576

See merge request gitlab-org/gitlab-ce!18518
parents c8129d79 57161677
---
title: Fix project creation for user endpoint when jobs_enabled parameter supplied
merge_request:
author:
type: fixed
...@@ -74,6 +74,11 @@ module API ...@@ -74,6 +74,11 @@ module API
present options[:with].prepare_relation(projects, options), options present options[:with].prepare_relation(projects, options), options
end end
def translate_params_for_compatibility(params)
params[:builds_enabled] = params.delete(:jobs_enabled) if params.key?(:jobs_enabled)
params
end
end end
resource :users, requirements: API::PROJECT_ENDPOINT_REQUIREMENTS do resource :users, requirements: API::PROJECT_ENDPOINT_REQUIREMENTS do
...@@ -123,7 +128,7 @@ module API ...@@ -123,7 +128,7 @@ module API
end end
post do post do
attrs = declared_params(include_missing: false) attrs = declared_params(include_missing: false)
attrs[:builds_enabled] = attrs.delete(:jobs_enabled) if attrs.key?(:jobs_enabled) attrs = translate_params_for_compatibility(attrs)
project = ::Projects::CreateService.new(current_user, attrs).execute project = ::Projects::CreateService.new(current_user, attrs).execute
if project.saved? if project.saved?
...@@ -155,6 +160,7 @@ module API ...@@ -155,6 +160,7 @@ module API
not_found!('User') unless user not_found!('User') unless user
attrs = declared_params(include_missing: false) attrs = declared_params(include_missing: false)
attrs = translate_params_for_compatibility(attrs)
project = ::Projects::CreateService.new(user, attrs).execute project = ::Projects::CreateService.new(user, attrs).execute
if project.saved? if project.saved?
...@@ -276,7 +282,7 @@ module API ...@@ -276,7 +282,7 @@ module API
authorize! :rename_project, user_project if attrs[:name].present? authorize! :rename_project, user_project if attrs[:name].present?
authorize! :change_visibility_level, user_project if attrs[:visibility].present? authorize! :change_visibility_level, user_project if attrs[:visibility].present?
attrs[:builds_enabled] = attrs.delete(:jobs_enabled) if attrs.key?(:jobs_enabled) attrs = translate_params_for_compatibility(attrs)
result = ::Projects::UpdateService.new(user_project, current_user, attrs).execute result = ::Projects::UpdateService.new(user_project, current_user, attrs).execute
......
...@@ -685,7 +685,8 @@ describe API::Projects do ...@@ -685,7 +685,8 @@ describe API::Projects do
issues_enabled: false, issues_enabled: false,
merge_requests_enabled: false, merge_requests_enabled: false,
wiki_enabled: false, wiki_enabled: false,
request_access_enabled: true request_access_enabled: true,
jobs_enabled: true
}) })
post api("/projects/user/#{user.id}", admin), project post api("/projects/user/#{user.id}", admin), project
......
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