Skip to content
Snippets Groups Projects
Commit f4bdbecf authored by Douglas Barbosa Alexandre's avatar Douglas Barbosa Alexandre
Browse files

Fix cross projects detection when importing GitHub pull requests

parent 714f95b2
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -18,7 +18,7 @@ module Gitlab
end
 
def cross_project?
source_repo.fork == true
source_repo.id != target_repo.id
end
 
def number
Loading
Loading
@@ -73,6 +73,10 @@ module Gitlab
project
end
 
def target_repo
raw_data.base.repo
end
def target_branch
target_project.repository.find_branch(raw_data.base.ref)
end
Loading
Loading
Loading
Loading
@@ -2,8 +2,11 @@ require 'spec_helper'
 
describe Gitlab::GithubImport::PullRequestFormatter, lib: true do
let(:project) { create(:project) }
let(:source_branch) { OpenStruct.new(ref: 'feature') }
let(:target_branch) { OpenStruct.new(ref: 'master') }
let(:repository) { OpenStruct.new(id: 1, fork: false) }
let(:source_repo) { repository }
let(:source_branch) { OpenStruct.new(ref: 'feature', repo: source_repo) }
let(:target_repo) { repository }
let(:target_branch) { OpenStruct.new(ref: 'master', repo: target_repo) }
let(:octocat) { OpenStruct.new(id: 123456, login: 'octocat') }
let(:created_at) { DateTime.strptime('2011-01-26T19:01:12Z') }
let(:updated_at) { DateTime.strptime('2011-01-27T19:01:12Z') }
Loading
Loading
@@ -125,10 +128,8 @@ describe Gitlab::GithubImport::PullRequestFormatter, lib: true do
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)) }
context 'when source, and target repositories are the same' do
let(:raw_data) { OpenStruct.new(base_data) }
 
it 'returns false' do
expect(pull_request.cross_project?).to eq false
Loading
Loading
@@ -136,9 +137,17 @@ describe Gitlab::GithubImport::PullRequestFormatter, lib: true do
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)) }
let(:source_repo) { OpenStruct.new(id: 2, fork: true) }
let(:raw_data) { OpenStruct.new(base_data) }
it 'returns true' do
expect(pull_request.cross_project?).to eq true
end
end
context 'when target repo is a fork' do
let(:target_repo) { OpenStruct.new(id: 2, fork: true) }
let(:raw_data) { OpenStruct.new(base_data) }
 
it 'returns true' do
expect(pull_request.cross_project?).to eq true
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment