summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Mazetto <brodock@gmail.com>2017-03-08 19:16:39 +0100
committerGabriel Mazetto <brodock@gmail.com>2017-03-08 19:42:21 +0100
commitce35dcbc81116fa4803fc7bfcd35a3585695c07a (patch)
treeb592e7170241c676fb9b98ebb54701ec5022a51a
parent4a0cf269a60945938447160a1ec0aa40889aa24d (diff)
downloadgitlab-ce-29034-fix-github-importer.tar.gz
Refactor some code29034-fix-github-importer
-rw-r--r--lib/gitlab/github_import/pull_request_formatter.rb8
-rw-r--r--spec/lib/gitlab/github_import/pull_request_formatter_spec.rb18
2 files changed, 24 insertions, 2 deletions
diff --git a/lib/gitlab/github_import/pull_request_formatter.rb b/lib/gitlab/github_import/pull_request_formatter.rb
index e1224d03498..28812fd0cb9 100644
--- a/lib/gitlab/github_import/pull_request_formatter.rb
+++ b/lib/gitlab/github_import/pull_request_formatter.rb
@@ -38,8 +38,8 @@ module Gitlab
def source_branch_name
@source_branch_name ||= begin
- if source_branch.repo.id != target_branch.repo.id
- "pull/#{number}/#{source_branch.repo.full_name}/#{source_branch_ref}"
+ if cross_project?
+ "pull/#{number}/#{source_branch_repo.full_name}/#{source_branch_ref}"
else
source_branch_exists? ? source_branch_ref : "pull/#{number}/#{source_branch_ref}"
end
@@ -56,6 +56,10 @@ module Gitlab
end
end
+ def cross_project?
+ source_branch.repo.id != target_branch.repo.id
+ end
+
private
def state
diff --git a/spec/lib/gitlab/github_import/pull_request_formatter_spec.rb b/spec/lib/gitlab/github_import/pull_request_formatter_spec.rb
index a469821251e..951cbea7857 100644
--- a/spec/lib/gitlab/github_import/pull_request_formatter_spec.rb
+++ b/spec/lib/gitlab/github_import/pull_request_formatter_spec.rb
@@ -281,6 +281,24 @@ describe Gitlab::GithubImport::PullRequestFormatter, lib: true do
end
end
+ describe '#cross_project?' do
+ context 'when source and target repositories are different' do
+ let(:raw_data) { double(base_data.merge(head: forked_branch)) }
+
+ it 'returns true' do
+ expect(pull_request.cross_project?).to eq true
+ end
+ end
+
+ context 'when source and target repositories are the same' do
+ let(:raw_data) { double(base_data.merge(head: source_branch)) }
+
+ it 'returns false' do
+ expect(pull_request.cross_project?).to eq false
+ end
+ end
+ end
+
describe '#url' do
let(:raw_data) { double(base_data) }