diff --git a/app/models/namespace.rb b/app/models/namespace.rb index 58822a575b59412dd1b96c5f4d3dcba4757a5dc3..0dc20e0016cc148a5e6762d59c76a3a3325783e9 100644 --- a/app/models/namespace.rb +++ b/app/models/namespace.rb @@ -301,6 +301,10 @@ def owner_required? user_namespace? end + def first_owner + owner + end + def find_fork_of(project) return unless project.fork_network diff --git a/spec/services/branches/delete_merged_service_spec.rb b/spec/services/branches/delete_merged_service_spec.rb index 2cf0f53c8c3a989e09c60f760774b47c8ea017f1..46611670fe1bc540b66be1887a95eb0fe8fd29b7 100644 --- a/spec/services/branches/delete_merged_service_spec.rb +++ b/spec/services/branches/delete_merged_service_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Branches::DeleteMergedService do include ProjectForksHelper - subject(:service) { described_class.new(project, project.owner) } + subject(:service) { described_class.new(project, project.first_owner) } let(:project) { create(:project, :repository) } diff --git a/spec/services/ci/after_requeue_job_service_spec.rb b/spec/services/ci/after_requeue_job_service_spec.rb index 2465bac7d1018517af6cf710fd53095ee1721383..d2acf3ad2f12d7b8d6d1ac477f05f7db222a5e6f 100644 --- a/spec/services/ci/after_requeue_job_service_spec.rb +++ b/spec/services/ci/after_requeue_job_service_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Ci::AfterRequeueJobService do let_it_be(:project) { create(:project) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:pipeline) { create(:ci_pipeline, project: project) } diff --git a/spec/services/ci/create_downstream_pipeline_service_spec.rb b/spec/services/ci/create_downstream_pipeline_service_spec.rb index 2237fd76d07a08386b3116a0c868f6dd6da3366a..d61abf6a6ee7272b511912c920a6d1c2c8875311 100644 --- a/spec/services/ci/create_downstream_pipeline_service_spec.rb +++ b/spec/services/ci/create_downstream_pipeline_service_spec.rb @@ -604,7 +604,7 @@ context 'when configured with bridge job rules' do before do stub_ci_pipeline_yaml_file(config) - downstream_project.add_maintainer(upstream_project.owner) + downstream_project.add_maintainer(upstream_project.first_owner) end let(:config) do @@ -622,13 +622,13 @@ end let(:primary_pipeline) do - Ci::CreatePipelineService.new(upstream_project, upstream_project.owner, { ref: 'master' }) + Ci::CreatePipelineService.new(upstream_project, upstream_project.first_owner, { ref: 'master' }) .execute(:push, save_on_errors: false) .payload end let(:bridge) { primary_pipeline.processables.find_by(name: 'bridge-job') } - let(:service) { described_class.new(upstream_project, upstream_project.owner) } + let(:service) { described_class.new(upstream_project, upstream_project.first_owner) } context 'that include the bridge job' do it 'creates the downstream pipeline' do diff --git a/spec/services/ci/create_pipeline_service/cache_spec.rb b/spec/services/ci/create_pipeline_service/cache_spec.rb index f5f162e4578e36eb8716118ab9ff06ce92589dc9..ca85a8cce6417c3ae77a55623d3712410ab61d52 100644 --- a/spec/services/ci/create_pipeline_service/cache_spec.rb +++ b/spec/services/ci/create_pipeline_service/cache_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Ci::CreatePipelineService do context 'cache' do let(:project) { create(:project, :custom_repo, files: files) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:ref) { 'refs/heads/master' } let(:source) { :push } let(:service) { described_class.new(project, user, { ref: ref }) } diff --git a/spec/services/ci/create_pipeline_service/creation_errors_and_warnings_spec.rb b/spec/services/ci/create_pipeline_service/creation_errors_and_warnings_spec.rb index c69c91593aec4363fd742e4e530019be1c65a8d5..e62a94b6df891680ff578726f3900d40ff4d443c 100644 --- a/spec/services/ci/create_pipeline_service/creation_errors_and_warnings_spec.rb +++ b/spec/services/ci/create_pipeline_service/creation_errors_and_warnings_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Ci::CreatePipelineService do describe 'creation errors and warnings' do let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:ref) { 'refs/heads/master' } let(:source) { :push } diff --git a/spec/services/ci/create_pipeline_service/custom_config_content_spec.rb b/spec/services/ci/create_pipeline_service/custom_config_content_spec.rb index f150a4f8b51f693d23e19a9cfe272bee33065fe3..a0cbf14d936ee2c1e1bb7fe0c61cbdc9d9dea7e0 100644 --- a/spec/services/ci/create_pipeline_service/custom_config_content_spec.rb +++ b/spec/services/ci/create_pipeline_service/custom_config_content_spec.rb @@ -3,7 +3,7 @@ RSpec.describe Ci::CreatePipelineService do let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:ref) { 'refs/heads/master' } let(:service) { described_class.new(project, user, { ref: ref }) } diff --git a/spec/services/ci/create_pipeline_service/custom_yaml_tags_spec.rb b/spec/services/ci/create_pipeline_service/custom_yaml_tags_spec.rb index 026111d59f1bb5da773504de2d314d58ab626fd5..716a929830e2643411fb3d62e3d6d533364fd06b 100644 --- a/spec/services/ci/create_pipeline_service/custom_yaml_tags_spec.rb +++ b/spec/services/ci/create_pipeline_service/custom_yaml_tags_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Ci::CreatePipelineService do describe '!reference tags' do let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:ref) { 'refs/heads/master' } let(:source) { :push } diff --git a/spec/services/ci/create_pipeline_service/dry_run_spec.rb b/spec/services/ci/create_pipeline_service/dry_run_spec.rb index ae43c63b5161de8c140ab00701039ad420425433..9a7e97fb12b2dcd73e34a47ae7707f6689258337 100644 --- a/spec/services/ci/create_pipeline_service/dry_run_spec.rb +++ b/spec/services/ci/create_pipeline_service/dry_run_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Ci::CreatePipelineService do let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:ref) { 'refs/heads/master' } let(:service) { described_class.new(project, user, { ref: ref }) } diff --git a/spec/services/ci/create_pipeline_service/include_spec.rb b/spec/services/ci/create_pipeline_service/include_spec.rb index aa01977272af43d69562807508600175c58b4f37..3116801d50c655783d5787fe3dea9038aa6dddcb 100644 --- a/spec/services/ci/create_pipeline_service/include_spec.rb +++ b/spec/services/ci/create_pipeline_service/include_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Ci::CreatePipelineService do context 'include:' do let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:ref) { 'refs/heads/master' } let(:variables_attributes) { [{ key: 'MYVAR', secret_value: 'hello' }] } diff --git a/spec/services/ci/create_pipeline_service/logger_spec.rb b/spec/services/ci/create_pipeline_service/logger_spec.rb index 5257c6aa8577ab33fd7d6e96fcbf2bd5d25106e9..53e5f0dd7f2f33c6735c6cb2d22165d0f15540ca 100644 --- a/spec/services/ci/create_pipeline_service/logger_spec.rb +++ b/spec/services/ci/create_pipeline_service/logger_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Ci::CreatePipelineService do context 'pipeline logger' do let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:ref) { 'refs/heads/master' } let(:service) { described_class.new(project, user, { ref: ref }) } diff --git a/spec/services/ci/create_pipeline_service/merge_requests_spec.rb b/spec/services/ci/create_pipeline_service/merge_requests_spec.rb index a1f85faa69fcb458338989384023d21324fbf051..de19ef363fb8c1220102cc993c09b102dd027852 100644 --- a/spec/services/ci/create_pipeline_service/merge_requests_spec.rb +++ b/spec/services/ci/create_pipeline_service/merge_requests_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Ci::CreatePipelineService do context 'merge requests handling' do let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:ref) { 'refs/heads/feature' } let(:source) { :push } diff --git a/spec/services/ci/create_pipeline_service/needs_spec.rb b/spec/services/ci/create_pipeline_service/needs_spec.rb index 9070d86f7f67a15693a55ab3718d72b14b3aefc5..abd17ccdd6abd0f1d27105574f243faaf81046a4 100644 --- a/spec/services/ci/create_pipeline_service/needs_spec.rb +++ b/spec/services/ci/create_pipeline_service/needs_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Ci::CreatePipelineService do context 'needs' do let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:ref) { 'refs/heads/master' } let(:source) { :push } diff --git a/spec/services/ci/create_pipeline_service/parallel_spec.rb b/spec/services/ci/create_pipeline_service/parallel_spec.rb index 6b455bf48747c13751c675770b493d4ed93bd7fd..ae28b74fef5c06be3a8d4dc52d65832c66a951e9 100644 --- a/spec/services/ci/create_pipeline_service/parallel_spec.rb +++ b/spec/services/ci/create_pipeline_service/parallel_spec.rb @@ -3,7 +3,7 @@ RSpec.describe Ci::CreatePipelineService do let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:service) { described_class.new(project, user, { ref: 'master' }) } let(:pipeline) { service.execute(:push).payload } diff --git a/spec/services/ci/create_pipeline_service/parameter_content_spec.rb b/spec/services/ci/create_pipeline_service/parameter_content_spec.rb index 761504ffb589e729be5f7c01ebb6886d221fd656..c28bc9d8c13a650cfa57718d3f90d151b7615afc 100644 --- a/spec/services/ci/create_pipeline_service/parameter_content_spec.rb +++ b/spec/services/ci/create_pipeline_service/parameter_content_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Ci::CreatePipelineService do let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:service) { described_class.new(project, user, { ref: 'refs/heads/master' }) } let(:content) do diff --git a/spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb b/spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb index 5e34eeb99db4b40d1a6670b555e02e79d25158d8..c6e69862422c3b7b5c88533b62a1ecd576f1d89e 100644 --- a/spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb +++ b/spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Ci::CreatePipelineService do describe '.pre/.post stages' do let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:source) { :push } let(:service) { described_class.new(project, user, { ref: ref }) } diff --git a/spec/services/ci/create_pipeline_service/rules_spec.rb b/spec/services/ci/create_pipeline_service/rules_spec.rb index d0915f099de6317e0de81f46db0a4820e1cf177a..d0ce1c5aba8b755959781898e54e7a0f05800a1e 100644 --- a/spec/services/ci/create_pipeline_service/rules_spec.rb +++ b/spec/services/ci/create_pipeline_service/rules_spec.rb @@ -3,7 +3,7 @@ RSpec.describe Ci::CreatePipelineService do let(:project) { create(:project, :repository) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:ref) { 'refs/heads/master' } let(:source) { :push } let(:service) { described_class.new(project, user, { ref: ref }) } diff --git a/spec/services/ci/create_pipeline_service/tags_spec.rb b/spec/services/ci/create_pipeline_service/tags_spec.rb index cbbeb870c5fb78923a63ab7cebf17da23a5cd089..61c2415fa33e912646a4ebf678629962a30f072d 100644 --- a/spec/services/ci/create_pipeline_service/tags_spec.rb +++ b/spec/services/ci/create_pipeline_service/tags_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Ci::CreatePipelineService do describe 'tags:' do let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:ref) { 'refs/heads/master' } let(:service) { described_class.new(project, user, { ref: ref }) } diff --git a/spec/services/ci/create_pipeline_service_spec.rb b/spec/services/ci/create_pipeline_service_spec.rb index 9cc5a245333b6a80e3b419c24da3269899e5d3ed..a7026f5062e85fade61096f563aa37fd057a0eec 100644 --- a/spec/services/ci/create_pipeline_service_spec.rb +++ b/spec/services/ci/create_pipeline_service_spec.rb @@ -6,7 +6,7 @@ include ProjectForksHelper let_it_be_with_refind(:project) { create(:project, :repository) } - let_it_be_with_reload(:user) { project.owner } + let_it_be_with_reload(:user) { project.first_owner } let(:ref_name) { 'refs/heads/master' } diff --git a/spec/services/ci/destroy_pipeline_service_spec.rb b/spec/services/ci/destroy_pipeline_service_spec.rb index 166c4c4bd80a0277c322cf0624838f9d7d4ebb75..045051c7152678c7b19a1c1e1239115a0d296d10 100644 --- a/spec/services/ci/destroy_pipeline_service_spec.rb +++ b/spec/services/ci/destroy_pipeline_service_spec.rb @@ -10,7 +10,7 @@ subject { described_class.new(project, user).execute(pipeline) } context 'user is owner' do - let(:user) { project.owner } + let(:user) { project.first_owner } it 'destroys the pipeline' do subject diff --git a/spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb b/spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb index 31e1b0a896dc6848fe297026489d0541abfb6b1d..26bc6f747e17258634f519beac5b8dfd3af815c7 100644 --- a/spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb +++ b/spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Ci::PipelineProcessing::AtomicProcessingService do describe 'Pipeline Processing Service Tests With Yaml' do let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } where(:test_file_path) do Dir.glob(Rails.root.join('spec/services/ci/pipeline_processing/test_cases/*.yml')) @@ -65,7 +65,7 @@ def event_on_jobs(event, job_names) describe 'Pipeline Processing Service' do let(:project) { create(:project, :repository) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:pipeline) do create(:ci_empty_pipeline, ref: 'master', project: project) diff --git a/spec/services/clusters/integrations/create_service_spec.rb b/spec/services/clusters/integrations/create_service_spec.rb index 14653236ab1343ea64f4c13931fdf7c1261d54aa..6dac97ebf8f9f8b0c3a15cc49fd8c13ced0f6910 100644 --- a/spec/services/clusters/integrations/create_service_spec.rb +++ b/spec/services/clusters/integrations/create_service_spec.rb @@ -7,7 +7,7 @@ let_it_be_with_reload(:cluster) { create(:cluster, :provided_by_gcp, projects: [project]) } let(:service) do - described_class.new(container: project, cluster: cluster, current_user: project.owner, params: params) + described_class.new(container: project, cluster: cluster, current_user: project.first_owner, params: params) end shared_examples_for 'a cluster integration' do |application_type| diff --git a/spec/services/discussions/update_diff_position_service_spec.rb b/spec/services/discussions/update_diff_position_service_spec.rb index 85020e95c83fb5e0bac125f99c4b248eb0bcb1ff..e7a3505bbd4a4ee2f5cbdc7d2bc6b7d7f28322af 100644 --- a/spec/services/discussions/update_diff_position_service_spec.rb +++ b/spec/services/discussions/update_diff_position_service_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Discussions::UpdateDiffPositionService do let(:project) { create(:project, :repository) } - let(:current_user) { project.owner } + let(:current_user) { project.first_owner } let(:create_commit) { project.commit("913c66a37b4a45b9769037c55c2d238bd0942d2e") } let(:modify_commit) { project.commit("874797c3a73b60d2187ed6e2fcabd289ff75171e") } let(:edit_commit) { project.commit("570e7b2abdd848b95f2f578043fc23bd6f6fd24d") } diff --git a/spec/services/feature_flags/hook_service_spec.rb b/spec/services/feature_flags/hook_service_spec.rb index 02cdbbd86ace628d8decd2b1caaa017dcdc8d89f..19c935e43f3a42abee1783152122bec595a0f2c1 100644 --- a/spec/services/feature_flags/hook_service_spec.rb +++ b/spec/services/feature_flags/hook_service_spec.rb @@ -7,7 +7,7 @@ let_it_be(:namespace) { create(:namespace) } let_it_be(:project) { create(:project, :repository, namespace: namespace) } let_it_be(:feature_flag) { create(:operations_feature_flag, project: project) } - let_it_be(:user) { namespace.owner } + let_it_be(:user) { namespace.first_owner } let!(:hook) { create(:project_hook, project: project) } let(:hook_data) { double } diff --git a/spec/services/git/process_ref_changes_service_spec.rb b/spec/services/git/process_ref_changes_service_spec.rb index f52df9b007339ad7bde99dd90e0fe50ca918a256..05c1f898cab6044b1470ac0333c43b51ff78190b 100644 --- a/spec/services/git/process_ref_changes_service_spec.rb +++ b/spec/services/git/process_ref_changes_service_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Git::ProcessRefChangesService do let(:project) { create(:project, :repository) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:params) { { changes: git_changes } } subject { described_class.new(project, user, params) } @@ -34,7 +34,7 @@ def multiple_changes(change, count) it "calls #{push_service_class}" do expect(push_service_class) .to receive(:new) - .with(project, project.owner, hash_including(execute_project_hooks: true, create_push_event: true)) + .with(project, project.first_owner, hash_including(execute_project_hooks: true, create_push_event: true)) .exactly(changes.count).times .and_return(service) @@ -58,7 +58,7 @@ def multiple_changes(change, count) it "calls #{push_service_class} with execute_project_hooks set to false" do expect(push_service_class) .to receive(:new) - .with(project, project.owner, hash_including(execute_project_hooks: false)) + .with(project, project.first_owner, hash_including(execute_project_hooks: false)) .exactly(changes.count).times .and_return(service) @@ -86,7 +86,7 @@ def multiple_changes(change, count) it "calls #{push_service_class} with create_push_event set to false" do expect(push_service_class) .to receive(:new) - .with(project, project.owner, hash_including(create_push_event: false)) + .with(project, project.first_owner, hash_including(create_push_event: false)) .exactly(changes.count).times .and_return(service) @@ -170,7 +170,7 @@ def multiple_changes(change, count) allow(push_service_class) .to receive(:new) - .with(project, project.owner, hash_including(execute_project_hooks: true, create_push_event: true)) + .with(project, project.first_owner, hash_including(execute_project_hooks: true, create_push_event: true)) .exactly(changes.count).times .and_return(service) end diff --git a/spec/services/integrations/test/project_service_spec.rb b/spec/services/integrations/test/project_service_spec.rb index 32f9f632d7ab212ea0738368a516944d25b86b33..7483368628396d84939eb01bedae51aa1df92133 100644 --- a/spec/services/integrations/test/project_service_spec.rb +++ b/spec/services/integrations/test/project_service_spec.rb @@ -9,7 +9,7 @@ let_it_be(:project) { create(:project) } let(:integration) { create(:integrations_slack, project: project) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:event) { nil } let(:sample_data) { { data: 'sample' } } let(:success_result) { { success: true, result: {} } } diff --git a/spec/services/members/destroy_service_spec.rb b/spec/services/members/destroy_service_spec.rb index b9f382d3cd8f9732b1cf56d778f6f9f4d54ab63c..1a1283b10782e3b0c3c9f2dd5ad48c26b676ba6e 100644 --- a/spec/services/members/destroy_service_spec.rb +++ b/spec/services/members/destroy_service_spec.rb @@ -424,7 +424,7 @@ end context 'deletion of invitations created by deleted project member' do - let(:user) { project.owner } + let(:user) { project.first_owner } let(:member_user) { create(:user) } let(:project) { create(:project) } diff --git a/spec/services/members/invite_service_spec.rb b/spec/services/members/invite_service_spec.rb index 7b9ae19f038baf3bbc9bda4ec7e50653ea601a3a..8ceb9979f33da894a86ebbe9189e8ea51ad14c9f 100644 --- a/spec/services/members/invite_service_spec.rb +++ b/spec/services/members/invite_service_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Members::InviteService, :aggregate_failures, :clean_gitlab_redis_shared_state, :sidekiq_inline do let_it_be(:project, reload: true) { create(:project) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let_it_be(:project_user) { create(:user) } let_it_be(:namespace) { project.namespace } diff --git a/spec/services/merge_requests/base_service_spec.rb b/spec/services/merge_requests/base_service_spec.rb index 7911392ef19944f4c2510d92da57c6994389dd54..6eeba3029aebb009bc5dc253ab5440518ced1cda 100644 --- a/spec/services/merge_requests/base_service_spec.rb +++ b/spec/services/merge_requests/base_service_spec.rb @@ -17,7 +17,7 @@ } end - subject { MergeRequests::CreateService.new(project: project, current_user: project.owner, params: params) } + subject { MergeRequests::CreateService.new(project: project, current_user: project.first_owner, params: params) } describe '#execute_hooks' do shared_examples 'enqueues Jira sync worker' do diff --git a/spec/services/merge_requests/squash_service_spec.rb b/spec/services/merge_requests/squash_service_spec.rb index 4b21812503ef8c23b5063a39656d6f3cb04a8065..e5bea0e7b14669d57a8ccc7ac1f8898856be4a68 100644 --- a/spec/services/merge_requests/squash_service_spec.rb +++ b/spec/services/merge_requests/squash_service_spec.rb @@ -6,7 +6,7 @@ include GitHelpers let(:service) { described_class.new(project: project, current_user: user, params: { merge_request: merge_request }) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:project) { create(:project, :repository) } let(:repository) { project.repository.raw } let(:log_error) { "Failed to squash merge request #{merge_request.to_reference(full: true)}:" } diff --git a/spec/services/merge_requests/update_service_spec.rb b/spec/services/merge_requests/update_service_spec.rb index 6ec2b158d303169e0e13665c23fe05b8d2ebb10b..2925dad7f6b021fb2928fdade6196d804e5b608c 100644 --- a/spec/services/merge_requests/update_service_spec.rb +++ b/spec/services/merge_requests/update_service_spec.rb @@ -1132,7 +1132,7 @@ def update_merge_request(opts) context 'updating `force_remove_source_branch`' do let(:target_project) { create(:project, :repository, :public) } let(:source_project) { fork_project(target_project, nil, repository: true) } - let(:user) { target_project.owner } + let(:user) { target_project.first_owner } let(:merge_request) do create(:merge_request, source_project: source_project, diff --git a/spec/services/notes/create_service_spec.rb b/spec/services/notes/create_service_spec.rb index 793e9ed984840176afa3f9f96683261c8d109730..1fb50b07b3bec29aa55e855b35ca216dcef4c6be 100644 --- a/spec/services/notes/create_service_spec.rb +++ b/spec/services/notes/create_service_spec.rb @@ -402,7 +402,7 @@ let_it_be(:design) { create(:design, :with_file) } let_it_be(:project) { design.project } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let_it_be(:params) do { type: 'DiffNote', diff --git a/spec/services/notification_service_spec.rb b/spec/services/notification_service_spec.rb index 24775ce06a46daff53e1d9719a74001714f8093f..9cbc16f0c95484b21dfa5fab954258f6d75099c5 100644 --- a/spec/services/notification_service_spec.rb +++ b/spec/services/notification_service_spec.rb @@ -2885,7 +2885,7 @@ let(:member) { create(:user) } before do - project.add_developer(member, current_user: project.owner) + project.add_developer(member, current_user: project.first_owner) end it do @@ -3287,7 +3287,7 @@ def create_pipeline(user, status) let_it_be(:domain, reload: true) { create(:pages_domain, project: project) } let_it_be(:u_blocked) { create(:user, :blocked) } let_it_be(:u_silence) { create_user_with_notification(:disabled, 'silent', project) } - let_it_be(:u_owner) { project.owner } + let_it_be(:u_owner) { project.first_owner } let_it_be(:u_maintainer1) { create(:user) } let_it_be(:u_maintainer2) { create(:user) } let_it_be(:u_developer) { create(:user) } @@ -3395,7 +3395,7 @@ def create_pipeline(user, status) let(:remote_mirror) { create(:remote_mirror, project: project) } let(:u_blocked) { create(:user, :blocked) } let(:u_silence) { create_user_with_notification(:disabled, 'silent-maintainer', project) } - let(:u_owner) { project.owner } + let(:u_owner) { project.first_owner } let(:u_maintainer1) { create(:user) } let(:u_maintainer2) { create(:user) } let(:u_developer) { create(:user) } @@ -3489,7 +3489,7 @@ def create_pipeline(user, status) it 'sends the email to owners and masters' do expect(Notify).to receive(:prometheus_alert_fired_email).with(project, master, alert).and_call_original - expect(Notify).to receive(:prometheus_alert_fired_email).with(project, project.owner, alert).and_call_original + expect(Notify).to receive(:prometheus_alert_fired_email).with(project, project.first_owner, alert).and_call_original expect(Notify).not_to receive(:prometheus_alert_fired_email).with(project, developer, alert) subject.prometheus_alerts_fired(project, [alert]) diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb index 2aa9be5066f9e8fa2683e939fb682c4055032efc..d5fbf96ce74f017f5a3aaa87672effee7fae97ba 100644 --- a/spec/services/projects/create_service_spec.rb +++ b/spec/services/projects/create_service_spec.rb @@ -119,7 +119,7 @@ project = create_project(user, opts) expect(project).to be_valid - expect(project.owner).to eq(user) + expect(project.first_owner).to eq(user) expect(project.team.maintainers).to include(user) expect(project.namespace).to eq(user.namespace) expect(project.project_namespace).to be_in_sync_with_project(project) @@ -154,6 +154,7 @@ expect(project).to be_persisted expect(project.owner).to eq(user) + expect(project.first_owner).to eq(user) expect(project.team.maintainers).to contain_exactly(user) expect(project.namespace).to eq(user.namespace) expect(project.project_namespace).to be_in_sync_with_project(project) diff --git a/spec/services/projects/destroy_service_spec.rb b/spec/services/projects/destroy_service_spec.rb index 70470b3ae205e731eb8b0797c7c4622a8305c15a..9475f562d718a65a2ed86e0c9f8788f12973abaf 100644 --- a/spec/services/projects/destroy_service_spec.rb +++ b/spec/services/projects/destroy_service_spec.rb @@ -64,7 +64,7 @@ create(:ci_pipeline_artifact, pipeline: pipeline) create_list(:ci_build_trace_chunk, 3, build: builds[0]) - expect { destroy_project(project, project.owner, {}) }.not_to exceed_query_limit(recorder) + expect { destroy_project(project, project.first_owner, {}) }.not_to exceed_query_limit(recorder) end it_behaves_like 'deleting the project' diff --git a/spec/services/projects/fork_service_spec.rb b/spec/services/projects/fork_service_spec.rb index 3f58fa46806f20531f636d116dffa76e82acf447..ce30a20edf4b09e7b27d080109f8ebc79fad1063 100644 --- a/spec/services/projects/fork_service_spec.rb +++ b/spec/services/projects/fork_service_spec.rb @@ -61,7 +61,7 @@ it { expect(to_project).to be_persisted } it { expect(to_project.errors).to be_empty } - it { expect(to_project.owner).to eq(@to_user) } + it { expect(to_project.first_owner).to eq(@to_user) } it { expect(to_project.namespace).to eq(@to_user.namespace) } it { expect(to_project.star_count).to be_zero } it { expect(to_project.description).to eq(@from_project.description) } @@ -274,7 +274,7 @@ expect(to_project).to be_persisted expect(to_project.errors).to be_empty - expect(to_project.owner).to eq(@group) + expect(to_project.first_owner).to eq(@group_owner) expect(to_project.namespace).to eq(@group) expect(to_project.name).to eq(@project.name) expect(to_project.path).to eq(@project.path) diff --git a/spec/services/projects/repository_languages_service_spec.rb b/spec/services/projects/repository_languages_service_spec.rb index cb61a7a1a3e35aeea0dd934ef59687add5ca2414..50d5fba6b842289def0f82d87159408c1316f3da 100644 --- a/spec/services/projects/repository_languages_service_spec.rb +++ b/spec/services/projects/repository_languages_service_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe Projects::RepositoryLanguagesService do - let(:service) { described_class.new(project, project.owner) } + let(:service) { described_class.new(project, project.first_owner) } context 'when detected_repository_languages flag is set' do let(:project) { create(:project) } diff --git a/spec/services/projects/update_remote_mirror_service_spec.rb b/spec/services/projects/update_remote_mirror_service_spec.rb index 3f9ebf410e9c9c188c05206eeb7a8575b79a98c7..547641867bcd48b4cec4cc4e29d8d8d10748399f 100644 --- a/spec/services/projects/update_remote_mirror_service_spec.rb +++ b/spec/services/projects/update_remote_mirror_service_spec.rb @@ -15,7 +15,7 @@ subject(:execute!) { service.execute(remote_mirror, retries) } before do - project.repository.add_branch(project.owner, 'existing-branch', 'master') + project.repository.add_branch(project.first_owner, 'existing-branch', 'master') allow(remote_mirror) .to receive(:update_repository) diff --git a/spec/services/projects/update_service_spec.rb b/spec/services/projects/update_service_spec.rb index 652c423bb76b327b839e9ed690af1fabd6990576..7b5bf1db0303c113aba7cebc526eb9122b0dde15 100644 --- a/spec/services/projects/update_service_spec.rb +++ b/spec/services/projects/update_service_spec.rb @@ -149,7 +149,7 @@ describe 'when updating project that has forks' do let(:project) { create(:project, :internal) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:forked_project) { fork_project(project) } context 'and unlink forks feature flag is off' do diff --git a/spec/services/protected_branches/create_service_spec.rb b/spec/services/protected_branches/create_service_spec.rb index 756c775be9bf9a53bb6b534f35e8a5861df0c6a2..0bea3edf20339c0e28c3d6c815453a35c4490ccf 100644 --- a/spec/services/protected_branches/create_service_spec.rb +++ b/spec/services/protected_branches/create_service_spec.rb @@ -4,7 +4,7 @@ RSpec.describe ProtectedBranches::CreateService do let(:project) { create(:project) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:params) do { name: name, diff --git a/spec/services/protected_branches/destroy_service_spec.rb b/spec/services/protected_branches/destroy_service_spec.rb index 47a048e7033bf32575bbcdf3bb0f0bd46752e2d0..4e55c72f31228069cca2adf3f66f4c0d885634d8 100644 --- a/spec/services/protected_branches/destroy_service_spec.rb +++ b/spec/services/protected_branches/destroy_service_spec.rb @@ -5,7 +5,7 @@ RSpec.describe ProtectedBranches::DestroyService do let(:protected_branch) { create(:protected_branch) } let(:project) { protected_branch.project } - let(:user) { project.owner } + let(:user) { project.first_owner } describe '#execute' do subject(:service) { described_class.new(project, user) } diff --git a/spec/services/protected_branches/update_service_spec.rb b/spec/services/protected_branches/update_service_spec.rb index b5cf1a54aff97752e628754da875b055802ea7d5..3d9b77dcfc05a7869c9bab6476e7f4d668c335ab 100644 --- a/spec/services/protected_branches/update_service_spec.rb +++ b/spec/services/protected_branches/update_service_spec.rb @@ -5,7 +5,7 @@ RSpec.describe ProtectedBranches::UpdateService do let(:protected_branch) { create(:protected_branch) } let(:project) { protected_branch.project } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:params) { { name: new_name } } describe '#execute' do diff --git a/spec/services/protected_tags/create_service_spec.rb b/spec/services/protected_tags/create_service_spec.rb index 3d06cc9fb6c0a98e2c7496c807c6e211b61cd2fe..31059d17f10ebd87911b63d9adff3b4add9743a1 100644 --- a/spec/services/protected_tags/create_service_spec.rb +++ b/spec/services/protected_tags/create_service_spec.rb @@ -4,7 +4,7 @@ RSpec.describe ProtectedTags::CreateService do let(:project) { create(:project) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:params) do { name: name, diff --git a/spec/services/protected_tags/destroy_service_spec.rb b/spec/services/protected_tags/destroy_service_spec.rb index fbd1452a8d16d223d84c0eb30d0e30b490f90d10..658a4f5557e5d86be9a011c5eb2683e820a1ae6c 100644 --- a/spec/services/protected_tags/destroy_service_spec.rb +++ b/spec/services/protected_tags/destroy_service_spec.rb @@ -5,7 +5,7 @@ RSpec.describe ProtectedTags::DestroyService do let(:protected_tag) { create(:protected_tag) } let(:project) { protected_tag.project } - let(:user) { project.owner } + let(:user) { project.first_owner } describe '#execute' do subject(:service) { described_class.new(project, user) } diff --git a/spec/services/protected_tags/update_service_spec.rb b/spec/services/protected_tags/update_service_spec.rb index 22005bb9b894d930cfc1e6c92f48d42054ccca56..8d301dcd82569fbc59483d2f971e5f80bc327f63 100644 --- a/spec/services/protected_tags/update_service_spec.rb +++ b/spec/services/protected_tags/update_service_spec.rb @@ -5,7 +5,7 @@ RSpec.describe ProtectedTags::UpdateService do let(:protected_tag) { create(:protected_tag) } let(:project) { protected_tag.project } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:params) { { name: new_name } } describe '#execute' do diff --git a/spec/services/test_hooks/system_service_spec.rb b/spec/services/test_hooks/system_service_spec.rb index a13ae471b4b402f28e3104a6d2a584ebe283ba2b..48c8c24212ad1b1c175e5bd5513cb819a6018c5a 100644 --- a/spec/services/test_hooks/system_service_spec.rb +++ b/spec/services/test_hooks/system_service_spec.rb @@ -9,7 +9,7 @@ let_it_be(:project) { create(:project, :repository) } let(:hook) { create(:system_hook) } - let(:service) { described_class.new(hook, project.owner, trigger) } + let(:service) { described_class.new(hook, project.first_owner, trigger) } let(:success_result) { { status: :success, http_status: 200, message: 'ok' } } before do diff --git a/spec/services/users/refresh_authorized_projects_service_spec.rb b/spec/services/users/refresh_authorized_projects_service_spec.rb index aa4df93a2415ba2878e3c0e364c7aec8e5848a40..a31902c7f166381c8dd33194409c90f0e27e1b78 100644 --- a/spec/services/users/refresh_authorized_projects_service_spec.rb +++ b/spec/services/users/refresh_authorized_projects_service_spec.rb @@ -9,7 +9,7 @@ # triggered twice. let!(:project) { create(:project) } - let(:user) { project.namespace.owner } + let(:user) { project.namespace.first_owner } let(:service) { described_class.new(user) } describe '#execute', :clean_gitlab_redis_shared_state do