Merge branch 'fix-gh-pr-import' into 'master'
Fix Importing repos from GHE doesn't work See merge request !3529
This commit is contained in:
commit
8a0a802ee9
4 changed files with 38 additions and 0 deletions
|
@ -364,6 +364,11 @@ class Repository
|
|||
expire_tag_count_cache
|
||||
end
|
||||
|
||||
def before_import
|
||||
expire_emptiness_caches
|
||||
expire_exists_cache
|
||||
end
|
||||
|
||||
# Runs code after a repository has been forked/imported.
|
||||
def after_import
|
||||
expire_emptiness_caches
|
||||
|
|
|
@ -46,6 +46,8 @@ module Projects
|
|||
def import_data
|
||||
return unless has_importer?
|
||||
|
||||
project.repository.before_import
|
||||
|
||||
unless importer.execute
|
||||
raise Error, 'The remote data could not be imported.'
|
||||
end
|
||||
|
|
|
@ -612,6 +612,20 @@ describe Repository, models: true do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#before_import' do
|
||||
it 'flushes the emptiness cachess' do
|
||||
expect(repository).to receive(:expire_emptiness_caches)
|
||||
|
||||
repository.before_import
|
||||
end
|
||||
|
||||
it 'flushes the exists cache' do
|
||||
expect(repository).to receive(:expire_exists_cache)
|
||||
|
||||
repository.before_import
|
||||
end
|
||||
end
|
||||
|
||||
describe '#after_import' do
|
||||
it 'flushes the emptiness cachess' do
|
||||
expect(repository).to receive(:expire_emptiness_caches)
|
||||
|
|
|
@ -72,6 +72,23 @@ describe Projects::ImportService, services: true do
|
|||
expect(result[:status]).to eq :success
|
||||
end
|
||||
|
||||
it 'flushes various caches' do
|
||||
expect_any_instance_of(Gitlab::Shell).to receive(:import_repository).
|
||||
with(project.path_with_namespace, project.import_url).
|
||||
and_return(true)
|
||||
|
||||
expect_any_instance_of(Gitlab::GithubImport::Importer).to receive(:execute).
|
||||
and_return(true)
|
||||
|
||||
expect_any_instance_of(Repository).to receive(:expire_emptiness_caches).
|
||||
and_call_original
|
||||
|
||||
expect_any_instance_of(Repository).to receive(:expire_exists_cache).
|
||||
and_call_original
|
||||
|
||||
subject.execute
|
||||
end
|
||||
|
||||
it 'fails if importer fails' do
|
||||
expect_any_instance_of(Gitlab::Shell).to receive(:import_repository).with(project.path_with_namespace, project.import_url).and_return(true)
|
||||
expect_any_instance_of(Gitlab::GithubImport::Importer).to receive(:execute).and_return(false)
|
||||
|
|
Loading…
Reference in a new issue