diff --git a/app/models/packages/package.rb b/app/models/packages/package.rb index 7b0bb72940e1502ab1e46166671de172e6419da0..b040c98ef095c326a9ab6e2a1098e259cace19fc 100644 --- a/app/models/packages/package.rb +++ b/app/models/packages/package.rb @@ -158,7 +158,7 @@ class Packages::Package < ApplicationRecord joins(:project).reorder(keyset_order) end - after_commit :update_composer_cache, on: :destroy, if: -> { composer? } + after_commit :update_composer_cache, on: :destroy, if: -> { composer? && Feature.disabled?(:disable_composer_callback) } def self.only_maven_packages_with_path(path, use_cte: false) if use_cte diff --git a/config/feature_flags/development/disable_composer_callback.yml b/config/feature_flags/development/disable_composer_callback.yml new file mode 100644 index 0000000000000000000000000000000000000000..93861e5040932ce2a4014bf08f5a6c2adc87233b --- /dev/null +++ b/config/feature_flags/development/disable_composer_callback.yml @@ -0,0 +1,8 @@ +--- +name: disable_composer_callback +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64016 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/333587 +milestone: '14.0' +type: development +group: group::package +default_enabled: false diff --git a/spec/models/packages/package_spec.rb b/spec/models/packages/package_spec.rb index 1e44327c08910e60db2c72fe0cf062ddbbc6c12e..b2c1d51e4af1eb4278abf26ead4a22daa389a3ba 100644 --- a/spec/models/packages/package_spec.rb +++ b/spec/models/packages/package_spec.rb @@ -1019,10 +1019,24 @@ package.composer_metadatum.reload end - it 'schedule the update job' do - expect(::Packages::Composer::CacheUpdateWorker).to receive(:perform_async).with(project.id, package_name, package.composer_metadatum.version_cache_sha) + context 'with feature flag disabled' do + before do + stub_feature_flags(disable_composer_callback: false) + end + + it 'schedule the update job' do + expect(::Packages::Composer::CacheUpdateWorker).to receive(:perform_async).with(project.id, package_name, package.composer_metadatum.version_cache_sha) + + package.destroy! + end + end - package.destroy! + context 'with feature flag enabled' do + it 'does nothing' do + expect(::Packages::Composer::CacheUpdateWorker).not_to receive(:perform_async) + + package.destroy! + end end end end