Commit 384b51d2 authored by Imre Farkas's avatar Imre Farkas

Create ProjectSetting during project creation

This is missed because ProjectSetting object is always created, but
without saving it to the database.
parent 2d612009
......@@ -105,7 +105,8 @@ module Projects
end
@project.track_project_repository
@project.create_project_setting unless @project.project_setting
create_project_settings
yield if block_given?
......@@ -122,6 +123,14 @@ module Projects
create_sast_commit if @initialize_with_sast
end
def create_project_settings
if Feature.enabled?(:create_project_settings, default_enabled: :yaml)
@project.project_setting.save if @project.project_setting.changed?
else
@project.create_project_setting unless @project.project_setting
end
end
# Add an authorization for the current user authorizations inline
# (so they can access the project immediately after this request
# completes), and any other affected users in the background
......
---
name: create_project_settings
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/84502
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/358136
milestone: '14.10'
type: development
group: group::authentication and authorization
default_enabled: false
......@@ -47,7 +47,7 @@ RSpec.describe API::ProjectImport, :aggregate_failures do
it 'executes a limited number of queries' do
control_count = ActiveRecord::QueryRecorder.new { subject }.count
expect(control_count).to be <= 105
expect(control_count).to be <= 108
end
it 'schedules an import using a namespace' do
......
......@@ -135,10 +135,22 @@ RSpec.describe Projects::CreateService, '#execute' do
create_project(user, opts)
end
it 'builds associated project settings' do
it 'creates associated project settings' do
project = create_project(user, opts)
expect(project.project_setting).to be_new_record
expect(project.project_setting).to be_persisted
end
context 'create_project_settings feature flag is disabled' do
before do
stub_feature_flags(create_project_settings: false)
end
it 'builds associated project settings' do
project = create_project(user, opts)
expect(project.project_setting).to be_new_record
end
end
it_behaves_like 'storing arguments in the application context' do
......
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