diff --git a/ee/spec/controllers/autocomplete_controller_spec.rb b/ee/spec/controllers/autocomplete_controller_spec.rb index 98c41f856f51b82e743c43216c21299f0f10ae5a..8a362288bfc4becd431ffd0d12c72f1b08e679d0 100644 --- a/ee/spec/controllers/autocomplete_controller_spec.rb +++ b/ee/spec/controllers/autocomplete_controller_spec.rb @@ -142,7 +142,7 @@ end context 'as project owner' do - let(:user) { project.owner } + let(:user) { project.first_owner } let!(:expected_results) { [[project.id, 'Project']] } context "while searching for a project by namespace" do diff --git a/ee/spec/controllers/projects/branches_controller_spec.rb b/ee/spec/controllers/projects/branches_controller_spec.rb index 541d5cb68704949d1f32024c56204352c4fb2a1c..e32aed5893aba68e766af63d614828f3872ed409 100644 --- a/ee/spec/controllers/projects/branches_controller_spec.rb +++ b/ee/spec/controllers/projects/branches_controller_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Projects::BranchesController do let_it_be(:project) { create(:project, :repository) } - let(:user) { project.owner } + let(:user) { project.first_owner } before do allow(project).to receive(:branches).and_return(['master']) diff --git a/ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb b/ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb index a72f7ce58561defe08e160bac60b0298ae9b9060..5fdc17ec09b1c3b54b91d712313470c22650c569 100644 --- a/ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb +++ b/ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Projects::MergeRequests::CreationsController do let(:project) { create(:project, :repository) } let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: project) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:viewer) { user } before do diff --git a/ee/spec/controllers/projects/mirrors_controller_spec.rb b/ee/spec/controllers/projects/mirrors_controller_spec.rb index 7ac8a9fcebbfb6881327760a7349cd0c3a7c2e6c..07d5dfffc4f2df056091a9d3106ed371d7562487 100644 --- a/ee/spec/controllers/projects/mirrors_controller_spec.rb +++ b/ee/spec/controllers/projects/mirrors_controller_spec.rb @@ -7,14 +7,16 @@ describe 'setting up a remote mirror' do let_it_be(:project) { create(:project, :repository) } + let_it_be(:first_owner) { project.first_owner } let(:url) { 'http://foo.com' } context 'when the current project is a mirror' do let(:project) { create(:project, :repository, :mirror) } + let(:first_owner) { project.first_owner } before do - sign_in(project.owner) + sign_in(first_owner) end it 'allows to create a remote mirror' do @@ -28,7 +30,7 @@ let(:remote_mirror) { project.remote_mirrors.create!(enabled: 1, url: 'http://local.dev') } before do - sign_in(project.owner) + sign_in(first_owner) end context 'mirror_user is unset' do @@ -40,7 +42,7 @@ expect(project.mirror).to eq(true) expect(project.import_url).to eq('http://local.dev') - expect(project.mirror_user).to eq(project.owner) + expect(project.mirror_user).to eq(first_owner) end end @@ -53,7 +55,7 @@ expect(project.mirror).to eq(true) expect(project.import_url).to eq('http://local.dev') - expect(project.mirror_user).to eq(project.owner) + expect(project.mirror_user).to eq(first_owner) end end end @@ -62,6 +64,7 @@ describe 'setting up a mirror' do let(:url) { 'http://foo.com' } let(:project) { create(:project, :repository) } + let(:first_owner) { project.first_owner } context 'when mirrors are disabled' do before do @@ -82,7 +85,7 @@ context 'when user is not an admin' do it 'does not create a new mirror' do - sign_in(project.owner) + sign_in(first_owner) expect do do_put(project, mirror: true, import_url: url) @@ -93,13 +96,13 @@ context 'when mirrors are enabled' do before do - sign_in(project.owner) + sign_in(first_owner) end context 'when project does not have a mirror' do it 'allows to create a mirror' do expect do - do_put(project, mirror: true, mirror_user_id: project.owner.id, import_url: url) + do_put(project, mirror: true, mirror_user_id: first_owner.id, import_url: url) end.to change { Project.mirror.count }.to(1) end end @@ -117,7 +120,7 @@ describe 'forcing an update on a pull mirror' do it 'forces update' do project = create(:project, :mirror) - sign_in(project.owner) + sign_in(project.first_owner) Sidekiq::Testing.fake! do expect { put :update_now, params: { namespace_id: project.namespace.to_param, project_id: project.to_param } } @@ -129,10 +132,11 @@ describe '#update' do let(:project) { create(:project, :repository, :mirror, :remote_mirror) } - let(:attributes) { { project: { mirror_user_id: project.owner.id, mirror_trigger_builds: 0 }, namespace_id: project.namespace.to_param, project_id: project.to_param } } + let(:first_owner) { project.first_owner } + let(:attributes) { { project: { mirror_user_id: first_owner.id, mirror_trigger_builds: 0 }, namespace_id: project.namespace.to_param, project_id: project.to_param } } before do - sign_in(project.owner) + sign_in(first_owner) end around do |example| @@ -170,7 +174,7 @@ import_data = project.reload_import_data expect(import_data.ssh_known_hosts_verified_at).to be_within(1.minute).of(Time.current) - expect(import_data.ssh_known_hosts_verified_by).to eq(project.owner) + expect(import_data.ssh_known_hosts_verified_by).to eq(first_owner) end it 'unsets ssh_known_hosts_verified_at and verified_by when the update unsets known hosts' do @@ -191,7 +195,7 @@ do_put(project, { mirror_user_id: other_user.id }, format: :json) - expect(project.reload.mirror_user).to eq(project.owner) + expect(project.reload.mirror_user).to eq(first_owner) end end diff --git a/ee/spec/controllers/projects/path_locks_controller_spec.rb b/ee/spec/controllers/projects/path_locks_controller_spec.rb index 4268c26845e156609a883dd18e4ec41b2aff4722..7e78fdd7a75f83e584f87636c5559f8742bc691a 100644 --- a/ee/spec/controllers/projects/path_locks_controller_spec.rb +++ b/ee/spec/controllers/projects/path_locks_controller_spec.rb @@ -4,7 +4,7 @@ RSpec.describe Projects::PathLocksController do let_it_be(:project) { create(:project, :repository, :public) } - let_it_be(:user) { project.owner } + let_it_be(:user) { project.first_owner } let(:file_path) { 'files/lfs/lfs_object.iso' } let(:lfs_enabled) { true } diff --git a/ee/spec/controllers/projects_controller_spec.rb b/ee/spec/controllers/projects_controller_spec.rb index b3c9004405a94386353763b8b7535afc2778a0bb..312a3b3e7fa9cc0bd68c96bfd0a5965cebacb12a 100644 --- a/ee/spec/controllers/projects_controller_spec.rb +++ b/ee/spec/controllers/projects_controller_spec.rb @@ -561,7 +561,7 @@ context 'current_user is a project owner' do before do - sign_in(project.owner) + sign_in(project.first_owner) end it 'sets the compliance framework' do diff --git a/ee/spec/elastic_integration/repository_index_spec.rb b/ee/spec/elastic_integration/repository_index_spec.rb index 1d1f19d24a722d36b15526012a9dce9b1f9aa545..44e5c3909da093d48a4193c1dff12fb0e8f84eeb 100644 --- a/ee/spec/elastic_integration/repository_index_spec.rb +++ b/ee/spec/elastic_integration/repository_index_spec.rb @@ -5,7 +5,7 @@ RSpec.describe 'Repository index', :elastic, :clean_gitlab_redis_shared_state do context 'when fresh master branch is first pushed, followed by another update, then indexed' do let(:project) { create(:project_empty_repo) } - let(:user) { project.owner } + let(:user) { project.first_owner } before do stub_ee_application_setting(elasticsearch_search: true, elasticsearch_indexing: true) diff --git a/ee/spec/features/ide/user_commits_changes_spec.rb b/ee/spec/features/ide/user_commits_changes_spec.rb index 362a24754a61eb0fc697a01dbc9d919a5db0af42..b9534ea01e9fe9aff9cb197c5c97b90dd6eed56e 100644 --- a/ee/spec/features/ide/user_commits_changes_spec.rb +++ b/ee/spec/features/ide/user_commits_changes_spec.rb @@ -7,7 +7,7 @@ let(:project) { create(:project, :custom_repo, files: { 'docs/CODEOWNERS' => "[Backend]\n*.rb @ruby-owner" }) } let(:ruby_owner) { create(:user, username: 'ruby-owner') } - let(:user) { project.owner } + let(:user) { project.first_owner } before do stub_licensed_features(code_owners: true, code_owner_approval_required: true) diff --git a/ee/spec/features/ide/user_opens_ide_spec.rb b/ee/spec/features/ide/user_opens_ide_spec.rb index 186f128dc65fe024cb05143064e7819fe396f9a5..2b5a710fbb5691cbf51a32dd52aef0c1919e0a83 100644 --- a/ee/spec/features/ide/user_opens_ide_spec.rb +++ b/ee/spec/features/ide/user_opens_ide_spec.rb @@ -9,7 +9,7 @@ let_it_be(:unsigned_commits_warning) { 'This project does not accept unsigned commits.' } let(:project) { create(:project, :repository) } - let(:user) { project.owner } + let(:user) { project.first_owner } before do stub_licensed_features(push_rules: true) diff --git a/ee/spec/features/merge_request/user_creates_merge_request_with_blocking_mrs_spec.rb b/ee/spec/features/merge_request/user_creates_merge_request_with_blocking_mrs_spec.rb index b78f175c7e3eb85fedd8883624bb7453e12c6a3d..76b94702c093333690d3f39d1baae0184f86ed68 100644 --- a/ee/spec/features/merge_request/user_creates_merge_request_with_blocking_mrs_spec.rb +++ b/ee/spec/features/merge_request/user_creates_merge_request_with_blocking_mrs_spec.rb @@ -4,7 +4,7 @@ RSpec.describe 'User creates a merge request with blocking MRs', :js do let(:project) { create(:project, :repository) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:mr_params) { { title: 'Some feature', source_branch: 'fix', target_branch: 'feature' } } diff --git a/ee/spec/features/merge_request/user_edits_merge_request_blocking_mrs_spec.rb b/ee/spec/features/merge_request/user_edits_merge_request_blocking_mrs_spec.rb index 4b63cdd730860ee24f5cf4f31b9f298b4b9d1356..8dea08c824bec8ab6e3f6439dcd1d3e03fcd3c2b 100644 --- a/ee/spec/features/merge_request/user_edits_merge_request_blocking_mrs_spec.rb +++ b/ee/spec/features/merge_request/user_edits_merge_request_blocking_mrs_spec.rb @@ -5,7 +5,7 @@ RSpec.describe "User edits merge request with blocking MRs", :js do let(:merge_request) { create(:merge_request) } let(:project) { merge_request.target_project } - let(:user) { merge_request.target_project.owner } + let(:user) { merge_request.target_project.first_owner } let(:other_mr) { create(:merge_request) } diff --git a/ee/spec/features/merge_trains/two_merge_requests_on_train_spec.rb b/ee/spec/features/merge_trains/two_merge_requests_on_train_spec.rb index 8d349c210871d60de817cca09fcf78f3593792c4..4f1f11dc85069a0d6eeb02e2db543ebe5ca29ffd 100644 --- a/ee/spec/features/merge_trains/two_merge_requests_on_train_spec.rb +++ b/ee/spec/features/merge_trains/two_merge_requests_on_train_spec.rb @@ -6,7 +6,7 @@ include RepoHelpers let(:project) { create(:project, :repository) } - let(:key) { create(:key, user: project.owner) } + let(:key) { create(:key, user: project.first_owner) } let_it_be(:maintainer_1) { create(:user) } let_it_be(:maintainer_2) { create(:user) } diff --git a/ee/spec/features/projects/active_tabs_spec.rb b/ee/spec/features/projects/active_tabs_spec.rb index 54a1286fb42844bf96da58718b7f4882f7429449..cb14b8f4e4b26e13182b78c53313c1f679081337 100644 --- a/ee/spec/features/projects/active_tabs_spec.rb +++ b/ee/spec/features/projects/active_tabs_spec.rb @@ -5,7 +5,7 @@ RSpec.describe 'Project active tab' do let_it_be(:project) { create(:project, :repository) } - let(:user) { project.owner } + let(:user) { project.first_owner } before do sign_in(user) diff --git a/ee/spec/features/projects/audit_events_spec.rb b/ee/spec/features/projects/audit_events_spec.rb index fc900ec37c09e69820cc983ebd997983a75a4faa..be091d020e0a0fce65bc73cc984a9f89814f811c 100644 --- a/ee/spec/features/projects/audit_events_spec.rb +++ b/ee/spec/features/projects/audit_events_spec.rb @@ -127,7 +127,7 @@ page.within('.audit-log-table') do expect(page).to have_content 'Changed access level from Developer to Maintainer' - expect(page).to have_content(project.owner.name) + expect(page).to have_content(project.first_owner.name) expect(page).to have_content('Pete') end end @@ -166,7 +166,7 @@ wait_for_all_requests page.within('.audit-log-table') do - expect(page).to have_content(project.owner.name) + expect(page).to have_content(project.first_owner.name) expect(page).to have_content('Changed prevent merge request approval from authors') expect(page).to have_content('Changed prevent merge request approval from committers') expect(page).to have_content(project.name) diff --git a/ee/spec/features/projects/kerberos_clone_instructions_spec.rb b/ee/spec/features/projects/kerberos_clone_instructions_spec.rb index 027306f885fff40fde33f53f97e4200ef2d19169..75e5d5b22794e9b8c24dced60247140caaa70ea1 100644 --- a/ee/spec/features/projects/kerberos_clone_instructions_spec.rb +++ b/ee/spec/features/projects/kerberos_clone_instructions_spec.rb @@ -5,7 +5,7 @@ include MobileHelpers let(:project) { create(:project, :empty_repo) } - let(:user) { project.owner } + let(:user) { project.first_owner } before do sign_in(user) diff --git a/ee/spec/features/projects/navbar_spec.rb b/ee/spec/features/projects/navbar_spec.rb index 88d315287a981c2df3c6a703c9af259570e9f5ed..00383b8b4534852d8032e8b7ae7696c3e1342e62 100644 --- a/ee/spec/features/projects/navbar_spec.rb +++ b/ee/spec/features/projects/navbar_spec.rb @@ -9,7 +9,7 @@ let_it_be(:project) { create(:project, :repository) } - let(:user) { project.owner } + let(:user) { project.first_owner } before do sign_in(user) diff --git a/ee/spec/features/projects/settings/user_manages_approval_settings_spec.rb b/ee/spec/features/projects/settings/user_manages_approval_settings_spec.rb index 718173d0e350fb8d9b54dcbc6c402d5f9dc95b57..810561ac24de6db49012bb108890decd7b99962f 100644 --- a/ee/spec/features/projects/settings/user_manages_approval_settings_spec.rb +++ b/ee/spec/features/projects/settings/user_manages_approval_settings_spec.rb @@ -4,7 +4,7 @@ RSpec.describe 'EE > Projects > Settings > User manages approval rule settings' do let(:project) { create(:project) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:path) { edit_project_path(project) } let(:licensed_features) { {} } let(:project_features) { {} } diff --git a/ee/spec/features/projects/view_blob_with_code_owners_spec.rb b/ee/spec/features/projects/view_blob_with_code_owners_spec.rb index 49bd8ebb1f11dab8fd944d38e72aa1183b85127c..d9fa46409abd2b65a7de679636c9611dc34b57fa 100644 --- a/ee/spec/features/projects/view_blob_with_code_owners_spec.rb +++ b/ee/spec/features/projects/view_blob_with_code_owners_spec.rb @@ -4,7 +4,7 @@ RSpec.describe 'File blob > Code owners', :js do let(:project) { create(:project, :private, :repository) } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:code_owner) { create(:user, username: 'documentation-owner') } before do diff --git a/ee/spec/features/projects_spec.rb b/ee/spec/features/projects_spec.rb index ce407c5b149744d19e301636bd100bda10946dea..4811a00826b143c2056a6313dcd1226a153beab0 100644 --- a/ee/spec/features/projects_spec.rb +++ b/ee/spec/features/projects_spec.rb @@ -38,7 +38,7 @@ describe 'immediately deleting a project marked for deletion' do let(:project) { create(:project, marked_for_deletion_at: Date.current) } - let(:user) { project.owner } + let(:user) { project.first_owner } before do stub_licensed_features(adjourned_deletion_for_projects_and_groups: true) diff --git a/ee/spec/features/protected_branches_spec.rb b/ee/spec/features/protected_branches_spec.rb index 6a716420e0e21c77dea523dd111418ba928f2111..5474a57f0efe90c668004bad862b3257ce656f70 100644 --- a/ee/spec/features/protected_branches_spec.rb +++ b/ee/spec/features/protected_branches_spec.rb @@ -6,7 +6,7 @@ include ProtectedBranchHelpers let(:project) { create(:project, :repository) } - let(:user) { project.owner } + let(:user) { project.first_owner } before do sign_in(user) diff --git a/ee/spec/features/protected_tags_spec.rb b/ee/spec/features/protected_tags_spec.rb index 48be2d89805ce827116c174d4e7c42cdd7230d64..eedbdb03784af8f0813682dc14e41321c71d6af3 100644 --- a/ee/spec/features/protected_tags_spec.rb +++ b/ee/spec/features/protected_tags_spec.rb @@ -6,7 +6,7 @@ include ProtectedTagHelpers let(:project) { create(:project, :repository) } - let(:user) { project.owner } + let(:user) { project.first_owner } before do sign_in(user) diff --git a/ee/spec/features/security/project/snippet/internal_access_spec.rb b/ee/spec/features/security/project/snippet/internal_access_spec.rb index 666d80f166650985b4c2a8b6132c7e1b6795a6dc..56fd212d4fa1872e4576326797b33fb19cbfa20c 100644 --- a/ee/spec/features/security/project/snippet/internal_access_spec.rb +++ b/ee/spec/features/security/project/snippet/internal_access_spec.rb @@ -6,8 +6,8 @@ include AccessMatchers let_it_be(:project) { create(:project, :internal) } - let_it_be(:internal_snippet) { create(:project_snippet, :internal, project: project, author: project.owner) } - let_it_be(:private_snippet) { create(:project_snippet, :private, project: project, author: project.owner) } + let_it_be(:internal_snippet) { create(:project_snippet, :internal, project: project, author: project.first_owner) } + let_it_be(:private_snippet) { create(:project_snippet, :private, project: project, author: project.first_owner) } describe "GET /:project_path/snippets" do subject { project_snippets_path(project) } diff --git a/ee/spec/features/security/project/snippet/private_access_spec.rb b/ee/spec/features/security/project/snippet/private_access_spec.rb index 8c8f89d85af9f85619e04160965df25dd7986618..134516e8473fcdaf39ad33892df2b48653342840 100644 --- a/ee/spec/features/security/project/snippet/private_access_spec.rb +++ b/ee/spec/features/security/project/snippet/private_access_spec.rb @@ -6,7 +6,7 @@ include AccessMatchers let_it_be(:project) { create(:project, :private) } - let_it_be(:private_snippet) { create(:project_snippet, :private, project: project, author: project.owner) } + let_it_be(:private_snippet) { create(:project_snippet, :private, project: project, author: project.first_owner) } describe "GET /:project_path/snippets" do subject { project_snippets_path(project) } diff --git a/ee/spec/features/security/project/snippet/public_access_spec.rb b/ee/spec/features/security/project/snippet/public_access_spec.rb index 63f9fe7707208fa7a836bd80feb75df6781beb0e..9bea7faa2c5b46362be264af80058a7247557a5f 100644 --- a/ee/spec/features/security/project/snippet/public_access_spec.rb +++ b/ee/spec/features/security/project/snippet/public_access_spec.rb @@ -6,9 +6,9 @@ include AccessMatchers let_it_be(:project) { create(:project, :public) } - let_it_be(:public_snippet) { create(:project_snippet, :public, project: project, author: project.owner) } - let_it_be(:internal_snippet) { create(:project_snippet, :internal, project: project, author: project.owner) } - let_it_be(:private_snippet) { create(:project_snippet, :private, project: project, author: project.owner) } + let_it_be(:public_snippet) { create(:project_snippet, :public, project: project, author: project.first_owner) } + let_it_be(:internal_snippet) { create(:project_snippet, :internal, project: project, author: project.first_owner) } + let_it_be(:private_snippet) { create(:project_snippet, :private, project: project, author: project.first_owner) } describe "GET /:project_path/snippets" do subject { project_snippets_path(project) } diff --git a/ee/spec/finders/productivity_analytics_finder_spec.rb b/ee/spec/finders/productivity_analytics_finder_spec.rb index d7057e32c7c9b1f73f2c06d2e727557fa00be6d8..75b044c7919cecf2726722da7ada4a4a36c14e86 100644 --- a/ee/spec/finders/productivity_analytics_finder_spec.rb +++ b/ee/spec/finders/productivity_analytics_finder_spec.rb @@ -6,7 +6,7 @@ subject { described_class.new(current_user, search_params.merge(state: :merged)) } let(:project) { create(:project) } - let(:current_user) { project.owner } + let(:current_user) { project.first_owner } let(:search_params) { {} } describe '.array_params' do diff --git a/ee/spec/frontend/fixtures/merge_requests.rb b/ee/spec/frontend/fixtures/merge_requests.rb index 470ccb41615e77069a4066dff907cf98bd428136..a43a8f5fcd2e09047aaea98a10707fd72af8814e 100644 --- a/ee/spec/frontend/fixtures/merge_requests.rb +++ b/ee/spec/frontend/fixtures/merge_requests.rb @@ -6,7 +6,7 @@ include JavaScriptFixturesHelpers let(:project) { create(:project, :repository, path: 'merge-requests-project') } - let(:user) { project.owner } + let(:user) { project.first_owner } let(:merge_request) { create(:merge_request, source_project: project) } render_views diff --git a/ee/spec/frontend/fixtures/projects.rb b/ee/spec/frontend/fixtures/projects.rb index cc53746ad4481043d40000ae3beb55706d478140..890e61ce4be3d64b543c14288111518bb49aeae4 100644 --- a/ee/spec/frontend/fixtures/projects.rb +++ b/ee/spec/frontend/fixtures/projects.rb @@ -10,7 +10,7 @@ let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} let(:project) { create(:project, namespace: namespace, path: 'builds-project', runners_token: runners_token, avatar: fixture_file_upload('spec/fixtures/dk.png', 'image/png')) } - let(:user) { project.owner } + let(:user) { project.first_owner } describe GraphQL::Query, type: :request do include GraphqlHelpers