Commit 973bb0c0 authored by Nick Thomas's avatar Nick Thomas

Remove the Repository#after_import method

What to do after an import is tightly coupled to the type of repository
you are, so it's better to avoid having the method at all.

There's very little in here, so just remove the idea for now. We can
revisit it another time.
parent 559622c5
...@@ -1787,8 +1787,10 @@ class Project < ApplicationRecord ...@@ -1787,8 +1787,10 @@ class Project < ApplicationRecord
# rubocop:enable Gitlab/RailsLogger # rubocop:enable Gitlab/RailsLogger
def after_import def after_import
repository.after_import repository.expire_content_cache
wiki.repository.after_import wiki.repository.expire_content_cache
DetectRepositoryLanguagesWorker.perform_async(id)
# The import assigns iid values on its own, e.g. by re-using GitHub ids. # The import assigns iid values on its own, e.g. by re-using GitHub ids.
# Flush existing InternalId records for this project for consistency reasons. # Flush existing InternalId records for this project for consistency reasons.
......
...@@ -437,15 +437,6 @@ class Repository ...@@ -437,15 +437,6 @@ class Repository
expire_all_method_caches expire_all_method_caches
end end
# Runs code after a repository has been forked/imported.
def after_import
expire_content_cache
return unless repo_type.project?
DetectRepositoryLanguagesWorker.perform_async(project.id)
end
# Runs code after a new commit has been pushed. # Runs code after a new commit has been pushed.
def after_push_commit(branch_name) def after_push_commit(branch_name)
expire_statistics_caches expire_statistics_caches
......
...@@ -12,8 +12,7 @@ describe ProjectImportState, type: :model do ...@@ -12,8 +12,7 @@ describe ProjectImportState, type: :model do
# Works around https://github.com/rspec/rspec-mocks/issues/910 # Works around https://github.com/rspec/rspec-mocks/issues/910
allow(Project).to receive(:find).with(project.id).and_return(project) allow(Project).to receive(:find).with(project.id).and_return(project)
expect(project.repository).to receive(:after_import).and_call_original expect(project).to receive(:after_import).and_call_original
expect(project.wiki.repository).to receive(:after_import).and_call_original
end end
context 'with a mirrored project' do context 'with a mirrored project' do
......
...@@ -61,10 +61,6 @@ describe 'Merge request > User sees diff', :js do ...@@ -61,10 +61,6 @@ describe 'Merge request > User sees diff', :js do
let(:merge_request) { create(:merge_request_with_diffs, source_project: forked_project, target_project: project, author: author_user) } let(:merge_request) { create(:merge_request_with_diffs, source_project: forked_project, target_project: project, author: author_user) }
let(:changelog_id) { Digest::SHA1.hexdigest("CHANGELOG") } let(:changelog_id) { Digest::SHA1.hexdigest("CHANGELOG") }
before do
forked_project.repository.after_import
end
context 'as author' do context 'as author' do
it 'shows direct edit link', :sidekiq_might_not_need_inline do it 'shows direct edit link', :sidekiq_might_not_need_inline do
sign_in(author_user) sign_in(author_user)
......
...@@ -23,8 +23,7 @@ describe ProjectImportState, type: :model do ...@@ -23,8 +23,7 @@ describe ProjectImportState, type: :model do
# Works around https://github.com/rspec/rspec-mocks/issues/910 # Works around https://github.com/rspec/rspec-mocks/issues/910
allow(Project).to receive(:find).with(project.id).and_return(project) allow(Project).to receive(:find).with(project.id).and_return(project)
expect(project.repository).to receive(:after_import).and_call_original expect(project).to receive(:after_import).and_call_original
expect(project.wiki.repository).to receive(:after_import).and_call_original
end end
it 'imports a project', :sidekiq_might_not_need_inline do it 'imports a project', :sidekiq_might_not_need_inline do
......
...@@ -4618,13 +4618,14 @@ describe Project do ...@@ -4618,13 +4618,14 @@ describe Project do
let(:import_state) { create(:import_state, project: project) } let(:import_state) { create(:import_state, project: project) }
it 'runs the correct hooks' do it 'runs the correct hooks' do
expect(project.repository).to receive(:after_import) expect(project.repository).to receive(:expire_content_cache)
expect(project.wiki.repository).to receive(:after_import) expect(project.wiki.repository).to receive(:expire_content_cache)
expect(import_state).to receive(:finish) expect(import_state).to receive(:finish)
expect(project).to receive(:update_project_counter_caches) expect(project).to receive(:update_project_counter_caches)
expect(project).to receive(:after_create_default_branch) expect(project).to receive(:after_create_default_branch)
expect(project).to receive(:refresh_markdown_cache!) expect(project).to receive(:refresh_markdown_cache!)
expect(InternalId).to receive(:flush_records!).with(project: project) expect(InternalId).to receive(:flush_records!).with(project: project)
expect(DetectRepositoryLanguagesWorker).to receive(:perform_async).with(project.id)
project.after_import project.after_import
end end
......
...@@ -1929,32 +1929,6 @@ describe Repository do ...@@ -1929,32 +1929,6 @@ describe Repository do
end end
end end
describe '#after_import' do
subject { repository.after_import }
it 'flushes and builds the cache' do
expect(repository).to receive(:expire_content_cache)
subject
end
it 'calls DetectRepositoryLanguagesWorker' do
expect(DetectRepositoryLanguagesWorker).to receive(:perform_async)
subject
end
context 'with a wiki repository' do
let(:repository) { project.wiki.repository }
it 'does not call DetectRepositoryLanguagesWorker' do
expect(DetectRepositoryLanguagesWorker).not_to receive(:perform_async)
subject
end
end
end
describe '#after_push_commit' do describe '#after_push_commit' do
it 'expires statistics caches' do it 'expires statistics caches' do
expect(repository).to receive(:expire_statistics_caches) expect(repository).to receive(:expire_statistics_caches)
......
...@@ -59,7 +59,7 @@ module ProjectForksHelper ...@@ -59,7 +59,7 @@ module ProjectForksHelper
bare_repo: TestEnv.forked_repo_path_bare, bare_repo: TestEnv.forked_repo_path_bare,
refs: TestEnv::FORKED_BRANCH_SHA refs: TestEnv::FORKED_BRANCH_SHA
) )
forked_project.repository.after_import forked_project.repository.expire_content_cache
forked_project forked_project
end end
......
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