From d9b21d247bbe4d4cdf44311c38f31ef78a2979b1 Mon Sep 17 00:00:00 2001
From: John Mason <jmason@gitlab.com>
Date: Mon, 12 Jun 2023 21:13:22 -0400
Subject: [PATCH] Update Search/NamespacedClass cop

Changelog: changed
EE: true
---
 ee/lib/api/admin/search/zoekt.rb       | 2 +-
 ee/lib/api/entities/search/zoekt.rb    | 8 ++++----
 rubocop/cop/search/namespaced_class.rb | 6 ++++--
 3 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/ee/lib/api/admin/search/zoekt.rb b/ee/lib/api/admin/search/zoekt.rb
index a91ea38de572b..d1b02ed27f489 100644
--- a/ee/lib/api/admin/search/zoekt.rb
+++ b/ee/lib/api/admin/search/zoekt.rb
@@ -3,7 +3,7 @@
 module API
   module Admin
     module Search
-      class Zoekt < ::API::Base # rubocop:disable Search/NamespacedClass
+      class Zoekt < ::API::Base
         MAX_RESULTS = 20
 
         feature_category :global_search
diff --git a/ee/lib/api/entities/search/zoekt.rb b/ee/lib/api/entities/search/zoekt.rb
index 2a67d6576c264..36747241142ee 100644
--- a/ee/lib/api/entities/search/zoekt.rb
+++ b/ee/lib/api/entities/search/zoekt.rb
@@ -3,20 +3,20 @@
 module API
   module Entities
     module Search
-      module Zoekt # rubocop:disable Search/NamespacedClass
-        class IndexedNamespace < Grape::Entity # rubocop:disable Search/NamespacedClass
+      module Zoekt
+        class IndexedNamespace < Grape::Entity
           expose :id, documentation: { type: :int, example: 1234 }
           expose :zoekt_shard_id, documentation: { type: :int, example: 1234 }
           expose :namespace_id, documentation: { type: :int, example: 1234 }
         end
 
-        class Shard < Grape::Entity # rubocop:disable Search/NamespacedClass
+        class Shard < Grape::Entity
           expose :id, documentation: { type: :int, example: 1234 }
           expose :index_base_url, documentation: { type: :string, example: 'http://127.0.0.1:6060/' }
           expose :search_base_url, documentation: { type: :string, example: 'http://127.0.0.1:6070/' }
         end
 
-        class ProjectIndexSuccess < Grape::Entity # rubocop:disable Search/NamespacedClass
+        class ProjectIndexSuccess < Grape::Entity
           expose :job_id do |item|
             item[:job_id]
           end
diff --git a/rubocop/cop/search/namespaced_class.rb b/rubocop/cop/search/namespaced_class.rb
index 8824107ae611d..7d0901cb6f639 100644
--- a/rubocop/cop/search/namespaced_class.rb
+++ b/rubocop/cop/search/namespaced_class.rb
@@ -20,8 +20,10 @@ class NamespacedClass < RuboCop::Cop::Base
 
         # These namespaces are considered acceptable.
         # Note: Nested namespace like Foo::Bar are also supported.
-        PERMITTED_NAMESPACES = %w[Search EE::Search API::Search EE::API::Search RuboCop::Cop::Search]
-          .map { |x| x.split('::') }.freeze
+        PERMITTED_NAMESPACES = %w[
+          Search EE::Search API::Search EE::API::Search API::Admin::Search RuboCop::Cop::Search
+          API::Entities::Search::Zoekt
+        ].map { |x| x.split('::') }.freeze
 
         SEARCH_REGEXES = [
           /elastic/i,
-- 
GitLab