Ensure that we're only importing local pull requests
This commit is contained in:
		
							parent
							
								
									2dc74b48a3
								
							
						
					
					
						commit
						837a9065f0
					
				|  | @ -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) | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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)) } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue