Merge branch 'fix-jobs-enabled-parameter' into 'master'
Replace builds_enabled with jobs_enabled in projects API v4 Closes #31012 See merge request !10786
This commit is contained in:
commit
1b92958638
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Replace builds_enabled with jobs_enabled in projects API v4
|
||||
merge_request: 10786
|
||||
author: winniehell
|
|
@ -11,7 +11,7 @@ module API
|
|||
optional :issues_enabled, type: Boolean, desc: 'Flag indication if the issue tracker is enabled'
|
||||
optional :merge_requests_enabled, type: Boolean, desc: 'Flag indication if merge requests are enabled'
|
||||
optional :wiki_enabled, type: Boolean, desc: 'Flag indication if the wiki is enabled'
|
||||
optional :builds_enabled, type: Boolean, desc: 'Flag indication if builds are enabled'
|
||||
optional :jobs_enabled, type: Boolean, desc: 'Flag indication if jobs are enabled'
|
||||
optional :snippets_enabled, type: Boolean, desc: 'Flag indication if snippets are enabled'
|
||||
optional :shared_runners_enabled, type: Boolean, desc: 'Flag indication if shared runners are enabled for that project'
|
||||
optional :container_registry_enabled, type: Boolean, desc: 'Flag indication if the container registry is enabled for that project'
|
||||
|
@ -103,6 +103,7 @@ module API
|
|||
end
|
||||
post do
|
||||
attrs = declared_params(include_missing: false)
|
||||
attrs[:builds_enabled] = attrs.delete(:jobs_enabled) if attrs.has_key?(:jobs_enabled)
|
||||
project = ::Projects::CreateService.new(current_user, attrs).execute
|
||||
|
||||
if project.saved?
|
||||
|
@ -205,7 +206,7 @@ module API
|
|||
# CE
|
||||
at_least_one_of_ce =
|
||||
[
|
||||
:builds_enabled,
|
||||
:jobs_enabled,
|
||||
:container_registry_enabled,
|
||||
:default_branch,
|
||||
:description,
|
||||
|
@ -236,6 +237,8 @@ module API
|
|||
authorize! :rename_project, user_project if attrs[:name].present?
|
||||
authorize! :change_visibility_level, user_project if attrs[:visibility].present?
|
||||
|
||||
attrs[:builds_enabled] = attrs.delete(:jobs_enabled) if attrs.has_key?(:jobs_enabled)
|
||||
|
||||
result = ::Projects::UpdateService.new(user_project, current_user, attrs).execute
|
||||
|
||||
if result[:status] == :success
|
||||
|
|
|
@ -24,6 +24,7 @@ describe API::Projects, :api do
|
|||
namespace: user.namespace,
|
||||
merge_requests_enabled: false,
|
||||
issues_enabled: false, wiki_enabled: false,
|
||||
builds_enabled: false,
|
||||
snippets_enabled: false)
|
||||
end
|
||||
let(:project_member3) do
|
||||
|
@ -342,6 +343,7 @@ describe API::Projects, :api do
|
|||
project = attributes_for(:project, {
|
||||
path: 'camelCasePath',
|
||||
issues_enabled: false,
|
||||
jobs_enabled: false,
|
||||
merge_requests_enabled: false,
|
||||
wiki_enabled: false,
|
||||
only_allow_merge_if_pipeline_succeeds: false,
|
||||
|
@ -351,6 +353,8 @@ describe API::Projects, :api do
|
|||
|
||||
post api('/projects', user), project
|
||||
|
||||
expect(response).to have_http_status(201)
|
||||
|
||||
project.each_pair do |k, v|
|
||||
next if %i[has_external_issue_tracker issues_enabled merge_requests_enabled wiki_enabled].include?(k)
|
||||
expect(json_response[k.to_s]).to eq(v)
|
||||
|
@ -1078,7 +1082,9 @@ describe API::Projects, :api do
|
|||
|
||||
it 'returns 400 when nothing sent' do
|
||||
project_param = {}
|
||||
|
||||
put api("/projects/#{project.id}", user), project_param
|
||||
|
||||
expect(response).to have_http_status(400)
|
||||
expect(json_response['error']).to match('at least one parameter must be provided')
|
||||
end
|
||||
|
@ -1086,7 +1092,9 @@ describe API::Projects, :api do
|
|||
context 'when unauthenticated' do
|
||||
it 'returns authentication error' do
|
||||
project_param = { name: 'bar' }
|
||||
|
||||
put api("/projects/#{project.id}"), project_param
|
||||
|
||||
expect(response).to have_http_status(401)
|
||||
end
|
||||
end
|
||||
|
@ -1094,8 +1102,11 @@ describe API::Projects, :api do
|
|||
context 'when authenticated as project owner' do
|
||||
it 'updates name' do
|
||||
project_param = { name: 'bar' }
|
||||
|
||||
put api("/projects/#{project.id}", user), project_param
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
|
||||
project_param.each_pair do |k, v|
|
||||
expect(json_response[k.to_s]).to eq(v)
|
||||
end
|
||||
|
@ -1103,8 +1114,11 @@ describe API::Projects, :api do
|
|||
|
||||
it 'updates visibility_level' do
|
||||
project_param = { visibility: 'public' }
|
||||
|
||||
put api("/projects/#{project3.id}", user), project_param
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
|
||||
project_param.each_pair do |k, v|
|
||||
expect(json_response[k.to_s]).to eq(v)
|
||||
end
|
||||
|
@ -1113,17 +1127,23 @@ describe API::Projects, :api do
|
|||
it 'updates visibility_level from public to private' do
|
||||
project3.update_attributes({ visibility_level: Gitlab::VisibilityLevel::PUBLIC })
|
||||
project_param = { visibility: 'private' }
|
||||
|
||||
put api("/projects/#{project3.id}", user), project_param
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
|
||||
project_param.each_pair do |k, v|
|
||||
expect(json_response[k.to_s]).to eq(v)
|
||||
end
|
||||
|
||||
expect(json_response['visibility']).to eq('private')
|
||||
end
|
||||
|
||||
it 'does not update name to existing name' do
|
||||
project_param = { name: project3.name }
|
||||
|
||||
put api("/projects/#{project.id}", user), project_param
|
||||
|
||||
expect(response).to have_http_status(400)
|
||||
expect(json_response['message']['name']).to eq(['has already been taken'])
|
||||
end
|
||||
|
@ -1139,8 +1159,23 @@ describe API::Projects, :api do
|
|||
|
||||
it 'updates path & name to existing path & name in different namespace' do
|
||||
project_param = { path: project4.path, name: project4.name }
|
||||
|
||||
put api("/projects/#{project3.id}", user), project_param
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
|
||||
project_param.each_pair do |k, v|
|
||||
expect(json_response[k.to_s]).to eq(v)
|
||||
end
|
||||
end
|
||||
|
||||
it 'updates jobs_enabled' do
|
||||
project_param = { jobs_enabled: true }
|
||||
|
||||
put api("/projects/#{project3.id}", user), project_param
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
|
||||
project_param.each_pair do |k, v|
|
||||
expect(json_response[k.to_s]).to eq(v)
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue