From ec3acf8619a11e56c9788035338df5a5563fefe2 Mon Sep 17 00:00:00 2001 From: nmilojevic1 <nmilojevic@gitlab.com> Date: Tue, 12 Nov 2019 17:10:56 +0100 Subject: [PATCH] Use only iis for quering merge request --- .../import_export/group_project_object_builder.rb | 12 ++---------- lib/gitlab/import_export/relation_factory.rb | 6 +----- .../group_project_object_builder_spec.rb | 10 +++++----- 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/lib/gitlab/import_export/group_project_object_builder.rb b/lib/gitlab/import_export/group_project_object_builder.rb index 7044d2206a6..209381fa891 100644 --- a/lib/gitlab/import_export/group_project_object_builder.rb +++ b/lib/gitlab/import_export/group_project_object_builder.rb @@ -50,11 +50,11 @@ module Gitlab ].compact end - # Returns Arel clause `"{table_name}"."project_id" = {project.id}` + # Returns Arel clause `"{table_name}"."project_id" = {project.id}` if project is present # or, if group is present: # `"{table_name}"."project_id" = {project.id} OR "{table_name}"."group_id" = {group.id}` def where_clause_base - clause = table[project_column].eq(project.id) + clause = table[:project_id].eq(project.id) if project clause = clause.or(table[:group_id].eq(group.id)) if group clause @@ -108,14 +108,6 @@ module Gitlab klass == MergeRequest end - def project_column - if @original_klass.reflect_on_association(:project) || label? - :project_id - elsif klass.reflect_on_association(:target_project) - :target_project_id - end - end - # If an existing group milestone used the IID # claim the IID back and set the group milestone to use one available # This is necessary to fix situations like the following: diff --git a/lib/gitlab/import_export/relation_factory.rb b/lib/gitlab/import_export/relation_factory.rb index 55316b1d384..ae6b3c161ce 100644 --- a/lib/gitlab/import_export/relation_factory.rb +++ b/lib/gitlab/import_export/relation_factory.rb @@ -332,16 +332,12 @@ module Gitlab # Can't use IDs as validation exists calling `group` or `project` attributes finder_hash = parsed_relation_hash.tap do |hash| hash['group'] = @project.group if relation_class.attribute_method?('group_id') - hash['project'] = @project if reflect_on_project_association? + hash['project'] = @project if relation_class.reflect_on_association(:project) hash.delete('project_id') end GroupProjectObjectBuilder.build(relation_class, finder_hash) end - - def reflect_on_project_association? - relation_class.reflect_on_association(:project) || relation_class.reflect_on_association(:target_project) - end end end end diff --git a/spec/lib/gitlab/import_export/group_project_object_builder_spec.rb b/spec/lib/gitlab/import_export/group_project_object_builder_spec.rb index 0340395d0ea..dff820b4497 100644 --- a/spec/lib/gitlab/import_export/group_project_object_builder_spec.rb +++ b/spec/lib/gitlab/import_export/group_project_object_builder_spec.rb @@ -55,23 +55,23 @@ describe Gitlab::ImportExport::GroupProjectObjectBuilder do merge_request = create(:merge_request, title: 'MergeRequest', iid: 7, target_project: project, source_project: project) expect(described_class.build(MergeRequest, 'title' => 'MergeRequest', - 'project' => project, 'source_project_id' => project.id, + 'target_project_id' => project.id, 'source_branch' => 'SourceBranch', 'iid' => 7, 'target_branch' => 'TargetBranch', - 'author' => project.creator)).to eq(merge_request) + 'author_id' => project.creator.id)).to eq(merge_request) end it 'creates a new merge_request' do merge_request = described_class.build(MergeRequest, 'title' => 'MergeRequest', - 'project' => project, 'iid' => 8, - 'source_project' => project, + 'source_project_id' => project.id, + 'target_project_id' => project.id, 'source_branch' => 'SourceBranch', 'target_branch' => 'TargetBranch', - 'author' => project.creator) + 'author_id' => project.creator.id) expect(merge_request.persisted?).to be true end end -- 2.30.9