summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-01-05 15:15:36 -0200
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-01-05 15:24:55 -0200
commit837a9065f0ff192d2efd55edcc2658a92c127b21 (patch)
tree5a2629b73e822221b91c368dc0d01cf3f8795fb7
parent2dc74b48a32c64b18ca684e3adfb51ab9d87cf2b (diff)
downloadgitlab-ce-837a9065f0ff192d2efd55edcc2658a92c127b21.tar.gz
Ensure that we're only importing local pull requests
-rw-r--r--lib/gitlab/github_import/importer.rb2
-rw-r--r--lib/gitlab/github_import/pull_request_formatter.rb8
-rw-r--r--spec/lib/gitlab/github_import/pull_request_formatter_spec.rb22
3 files changed, 31 insertions, 1 deletions
diff --git a/lib/gitlab/github_import/importer.rb b/lib/gitlab/github_import/importer.rb
index 38ca7372202..2b0afbc7b39 100644
--- a/lib/gitlab/github_import/importer.rb
+++ b/lib/gitlab/github_import/importer.rb
@@ -42,7 +42,7 @@ module Gitlab
direction: :asc).each do |raw_data|
pull_request = PullRequestFormatter.new(project, raw_data)
- if pull_request.valid?
+ if !pull_request.cross_project? && pull_request.valid?
merge_request = MergeRequest.create!(pull_request.attributes)
import_comments(pull_request.number, merge_request)
import_comments_on_diff(pull_request.number, merge_request)
diff --git a/lib/gitlab/github_import/pull_request_formatter.rb b/lib/gitlab/github_import/pull_request_formatter.rb
index 42dc09c2ac5..b7c47958cc7 100644
--- a/lib/gitlab/github_import/pull_request_formatter.rb
+++ b/lib/gitlab/github_import/pull_request_formatter.rb
@@ -17,6 +17,10 @@ module Gitlab
}
end
+ def cross_project?
+ source_repo.fork == true
+ end
+
def number
raw_data.number
end
@@ -57,6 +61,10 @@ module Gitlab
project
end
+ def source_repo
+ raw_data.head.repo
+ end
+
def source_branch
source_project.repository.find_branch(raw_data.head.ref)
end
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 b4465ef3743..9aefec77f6d 100644
--- a/spec/lib/gitlab/github_import/pull_request_formatter_spec.rb
+++ b/spec/lib/gitlab/github_import/pull_request_formatter_spec.rb
@@ -124,6 +124,28 @@ describe Gitlab::GithubImport::PullRequestFormatter, lib: true do
end
end
+ describe '#cross_project?' do
+ context 'when source repo is not a fork' do
+ let(:local_repo) { OpenStruct.new(fork: false) }
+ let(:source_branch) { OpenStruct.new(ref: 'feature', repo: local_repo) }
+ let(:raw_data) { OpenStruct.new(base_data.merge(head: source_branch)) }
+
+ it 'returns false' do
+ expect(pull_request.cross_project?).to eq false
+ end
+ end
+
+ context 'when source repo is a fork' do
+ let(:forked_repo) { OpenStruct.new(fork: true) }
+ let(:source_branch) { OpenStruct.new(ref: 'feature', repo: forked_repo) }
+ let(:raw_data) { OpenStruct.new(base_data.merge(head: source_branch)) }
+
+ it 'returns true' do
+ expect(pull_request.cross_project?).to eq true
+ end
+ end
+ end
+
describe '#number' do
let(:raw_data) { OpenStruct.new(base_data.merge(number: 1347)) }