diff options
-rw-r--r-- | lib/gitlab/github_import/pull_request_formatter.rb | 8 | ||||
-rw-r--r-- | spec/lib/gitlab/github_import/pull_request_formatter_spec.rb | 18 |
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) } |