diff --git a/app/services/projects/detect_repository_languages_service.rb b/app/services/projects/detect_repository_languages_service.rb index 9db0b71d106e525efdd98c630b755feb6f3b1b6a..194d0b4c640854dc7f585e06905dba2436383fa6 100644 --- a/app/services/projects/detect_repository_languages_service.rb +++ b/app/services/projects/detect_repository_languages_service.rb @@ -66,3 +66,5 @@ def set_detected_repository_languages end end end + +Projects::DetectRepositoryLanguagesService.prepend_mod_with('Projects::DetectRepositoryLanguagesService') diff --git a/ee/app/services/ee/projects/detect_repository_languages_service.rb b/ee/app/services/ee/projects/detect_repository_languages_service.rb new file mode 100644 index 0000000000000000000000000000000000000000..e31ea3577461d30789c7cacbc360b72656b97d16 --- /dev/null +++ b/ee/app/services/ee/projects/detect_repository_languages_service.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module EE + module Projects + module DetectRepositoryLanguagesService + def execute + repository_languages = super + project.maintain_elasticsearch_update if project.maintaining_elasticsearch? + + repository_languages + end + end + end +end diff --git a/ee/spec/services/ee/projects/detect_repository_languages_service_spec.rb b/ee/spec/services/ee/projects/detect_repository_languages_service_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..e662f896a6321767865fe7a7a9729f2f8b63c8d9 --- /dev/null +++ b/ee/spec/services/ee/projects/detect_repository_languages_service_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Projects::DetectRepositoryLanguagesService, :clean_gitlab_redis_shared_state, feature_category: :groups_and_projects do + let_it_be_with_reload(:project) { create(:project, :repository) } + + describe '#execute' do + context 'without previous detection' do + before do + stub_ee_application_setting(elasticsearch_indexing?: true) + end + + it 'calls ProcessBookkeepingService' do + expect(::Elastic::ProcessBookkeepingService).to receive(:track!).with(project).once + described_class.new(project).execute + end + end + end +end