Ensure that we're only importing local pull requests

parent 2dc74b48
...@@ -42,7 +42,7 @@ module Gitlab ...@@ -42,7 +42,7 @@ module Gitlab
direction: :asc).each do |raw_data| direction: :asc).each do |raw_data|
pull_request = PullRequestFormatter.new(project, 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) merge_request = MergeRequest.create!(pull_request.attributes)
import_comments(pull_request.number, merge_request) import_comments(pull_request.number, merge_request)
import_comments_on_diff(pull_request.number, merge_request) import_comments_on_diff(pull_request.number, merge_request)
......
...@@ -17,6 +17,10 @@ module Gitlab ...@@ -17,6 +17,10 @@ module Gitlab
} }
end end
def cross_project?
source_repo.fork == true
end
def number def number
raw_data.number raw_data.number
end end
...@@ -57,6 +61,10 @@ module Gitlab ...@@ -57,6 +61,10 @@ module Gitlab
project project
end end
def source_repo
raw_data.head.repo
end
def source_branch def source_branch
source_project.repository.find_branch(raw_data.head.ref) source_project.repository.find_branch(raw_data.head.ref)
end end
......
...@@ -124,6 +124,28 @@ describe Gitlab::GithubImport::PullRequestFormatter, lib: true do ...@@ -124,6 +124,28 @@ describe Gitlab::GithubImport::PullRequestFormatter, lib: true do
end end
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 describe '#number' do
let(:raw_data) { OpenStruct.new(base_data.merge(number: 1347)) } let(:raw_data) { OpenStruct.new(base_data.merge(number: 1347)) }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment