diff --git a/.rubocop_todo/style/conditional_assignment.yml b/.rubocop_todo/style/conditional_assignment.yml
deleted file mode 100644
index d16f2f7c3a7bca31272a932d5a1762e69d20ae91..0000000000000000000000000000000000000000
--- a/.rubocop_todo/style/conditional_assignment.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-# Cop supports --autocorrect.
-Style/ConditionalAssignment:
-  Exclude:
-    - 'app/helpers/icons_helper.rb'
diff --git a/.rubocop_todo/style/each_for_simple_loop.yml b/.rubocop_todo/style/each_for_simple_loop.yml
deleted file mode 100644
index e7f99d69528d19b5abaa9bf4c0d019b46387f105..0000000000000000000000000000000000000000
--- a/.rubocop_todo/style/each_for_simple_loop.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-# Cop supports --autocorrect.
-Style/EachForSimpleLoop:
-  Exclude:
-    - 'ee/spec/lib/gitlab/insights/reducers/count_per_period_reducer_spec.rb'
-    - 'spec/services/members/invitation_reminder_email_service_spec.rb'
diff --git a/.rubocop_todo/style/next.yml b/.rubocop_todo/style/next.yml
deleted file mode 100644
index 6800ba2baf34575e33f9967bc81f39d6a7e90887..0000000000000000000000000000000000000000
--- a/.rubocop_todo/style/next.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-# Cop supports --autocorrect.
-Style/Next:
-  Exclude:
-    - 'lib/gitlab/fogbugz_import/importer.rb'
diff --git a/.rubocop_todo/style/redundant_condition.yml b/.rubocop_todo/style/redundant_condition.yml
deleted file mode 100644
index 535dfa9e462add8d39592369f120fdb73f0c8527..0000000000000000000000000000000000000000
--- a/.rubocop_todo/style/redundant_condition.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-# Cop supports --autocorrect.
-Style/RedundantCondition:
-  Exclude:
-    - 'spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb'
diff --git a/.rubocop_todo/style/redundant_parentheses.yml b/.rubocop_todo/style/redundant_parentheses.yml
deleted file mode 100644
index 3516277bbdcc7411a0bf92f1a012ca718ac1109f..0000000000000000000000000000000000000000
--- a/.rubocop_todo/style/redundant_parentheses.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-# Cop supports --autocorrect.
-Style/RedundantParentheses:
-  Exclude:
-    - 'spec/graphql/types/ci/job_kind_enum_spec.rb'
-    - 'spec/lib/gitlab/import_export/command_line_util_spec.rb'
-    - 'spec/requests/verifies_with_email_spec.rb'
-    - 'spec/services/projects/create_service_spec.rb'
diff --git a/app/helpers/icons_helper.rb b/app/helpers/icons_helper.rb
index bba3fac74680a93d1386939b196ed7161327ddbc..1832d7a6881c3ce4da9a124b5ece2652dec31f7c 100644
--- a/app/helpers/icons_helper.rb
+++ b/app/helpers/icons_helper.rb
@@ -123,51 +123,49 @@ def visibility_level_icon(level, options: {})
 
   def file_type_icon_class(type, mode, name)
     if type == 'folder'
-      icon_class = 'folder-o'
+      'folder-o'
     elsif type == 'archive'
-      icon_class = 'archive'
+      'archive'
     elsif mode == '120000'
-      icon_class = 'share'
+      'share'
     else
       # Guess which icon to choose based on file extension.
       # If you think a file extension is missing, feel free to add it on PR
 
       case File.extname(name).downcase
       when '.pdf'
-        icon_class = 'document'
+        'document'
       when '.jpg', '.jpeg', '.jif', '.jfif',
-          '.jp2', '.jpx', '.j2k', '.j2c',
-          '.apng', '.png', '.gif', '.tif', '.tiff',
-          '.svg', '.ico', '.bmp', '.webp'
-        icon_class = 'doc-image'
+           '.jp2', '.jpx', '.j2k', '.j2c',
+           '.apng', '.png', '.gif', '.tif', '.tiff',
+           '.svg', '.ico', '.bmp', '.webp'
+        'doc-image'
       when '.zip', '.zipx', '.tar', '.gz', '.gzip', '.tgz', '.bz', '.bzip',
-          '.bz2', '.bzip2', '.car', '.tbz', '.xz', 'txz', '.rar', '.7z',
-          '.lz', '.lzma', '.tlz'
-        icon_class = 'doc-compressed'
+           '.bz2', '.bzip2', '.car', '.tbz', '.xz', 'txz', '.rar', '.7z',
+           '.lz', '.lzma', '.tlz'
+        'doc-compressed'
       when '.mp3', '.wma', '.ogg', '.oga', '.wav', '.flac', '.aac', '.3ga',
-          '.ac3', '.midi', '.m4a', '.ape', '.mpa'
-        icon_class = 'volume-up'
+           '.ac3', '.midi', '.m4a', '.ape', '.mpa'
+        'volume-up'
       when '.mp4', '.m4p', '.m4v',
-          '.mpg', '.mp2', '.mpeg', '.mpe', '.mpv',
-          '.mpg', '.mpeg', '.m2v', '.m2ts',
-          '.avi', '.mkv', '.flv', '.ogv', '.mov',
-          '.3gp', '.3g2'
-        icon_class = 'live-preview'
+           '.mpg', '.mp2', '.mpeg', '.mpe', '.mpv',
+           '.mpg', '.mpeg', '.m2v', '.m2ts',
+           '.avi', '.mkv', '.flv', '.ogv', '.mov',
+           '.3gp', '.3g2'
+        'live-preview'
       when '.doc', '.dot', '.docx', '.docm', '.dotx', '.dotm', '.docb',
-          '.odt', '.ott', '.uot', '.rtf'
-        icon_class = 'doc-text'
+           '.odt', '.ott', '.uot', '.rtf'
+        'doc-text'
       when '.xls', '.xlt', '.xlm', '.xlsx', '.xlsm', '.xltx', '.xltm',
-          '.xlsb', '.xla', '.xlam', '.xll', '.xlw', '.ots', '.ods', '.uos'
-        icon_class = 'document'
+           '.xlsb', '.xla', '.xlam', '.xll', '.xlw', '.ots', '.ods', '.uos'
+        'document'
       when '.ppt', '.pot', '.pps', '.pptx', '.pptm', '.potx', '.potm',
-          '.ppam', '.ppsx', '.ppsm', '.sldx', '.sldm', '.odp', '.otp', '.uop'
-        icon_class = 'doc-chart'
+           '.ppam', '.ppsx', '.ppsm', '.sldx', '.sldm', '.odp', '.otp', '.uop'
+        'doc-chart'
       else
-        icon_class = 'doc-text'
+        'doc-text'
       end
     end
-
-    icon_class
   end
 
   private
diff --git a/ee/spec/lib/gitlab/insights/reducers/count_per_period_reducer_spec.rb b/ee/spec/lib/gitlab/insights/reducers/count_per_period_reducer_spec.rb
index 97d3c07198940e9694237df10cd7049fd9304bcf..c39f40d9ee452da36f3fb06635a5bb8640fdf984 100644
--- a/ee/spec/lib/gitlab/insights/reducers/count_per_period_reducer_spec.rb
+++ b/ee/spec/lib/gitlab/insights/reducers/count_per_period_reducer_spec.rb
@@ -143,7 +143,7 @@ def reduce(issuable_relation, period:, period_limit: 5, period_field: :created_a
       # We're traveling back in the loop below, so we want to travel back to the current time ater the loop
       current_now = Time.current
 
-      (0..2).each do |i|
+      3.times do |i|
         merge_request = public_send("issuable#{i}")
         merge_request_metrics_service = MergeRequestMetricsService.new(merge_request.metrics)
         Event.transaction do
diff --git a/lib/gitlab/fogbugz_import/importer.rb b/lib/gitlab/fogbugz_import/importer.rb
index ca1a2b2a07710f78971cb94c632b1752f5a6ce9e..b3f4f4fb933fc6ec784f7ad051505f680a8cc62f 100644
--- a/lib/gitlab/fogbugz_import/importer.rb
+++ b/lib/gitlab/fogbugz_import/importer.rb
@@ -115,13 +115,13 @@ def import_cases
 
           labels = []
           [bug['sCategory'], bug['sPriority']].each do |label|
-            unless label.blank?
-              labels << label
+            next if label.blank?
 
-              unless @known_labels.include?(label)
-                create_label(label)
-                @known_labels << label
-              end
+            labels << label
+
+            unless @known_labels.include?(label)
+              create_label(label)
+              @known_labels << label
             end
           end
 
diff --git a/spec/graphql/types/ci/job_kind_enum_spec.rb b/spec/graphql/types/ci/job_kind_enum_spec.rb
index b48d20b71e250358eb060f94445ebbf874551d9c..a09cd89ec8bca96ecdadacf03212eef548a1ae12 100644
--- a/spec/graphql/types/ci/job_kind_enum_spec.rb
+++ b/spec/graphql/types/ci/job_kind_enum_spec.rb
@@ -5,7 +5,7 @@
 RSpec.describe GitlabSchema.types['CiJobKind'] do
   it 'exposes some job type values' do
     expect(described_class.values.keys).to match_array(
-      (%w[BRIDGE BUILD])
+      %w[BRIDGE BUILD]
     )
   end
 end
diff --git a/spec/lib/gitlab/import_export/command_line_util_spec.rb b/spec/lib/gitlab/import_export/command_line_util_spec.rb
index 8ed3a60d7fc22cea9a184019b65f28ee2fe8dc12..76a35d07c7f41e1d61827f839a35883586751d19 100644
--- a/spec/lib/gitlab/import_export/command_line_util_spec.rb
+++ b/spec/lib/gitlab/import_export/command_line_util_spec.rb
@@ -203,7 +203,7 @@ def initialize
 
       it 'throws a blocked url error' do
         Tempfile.create('test') do |file|
-          expect { subject.download(url, file.path) }.to raise_error((Gitlab::HTTP::BlockedUrlError))
+          expect { subject.download(url, file.path) }.to raise_error(Gitlab::HTTP::BlockedUrlError)
         end
       end
 
diff --git a/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb b/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb
index 0cbf9eab3d8863f0f6bc036113726e67217c74ce..a27e723e3921f612f784358602da5b6d552cd81b 100644
--- a/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb
+++ b/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb
@@ -402,11 +402,7 @@ def perform(*args); end
         include Sidekiq::Worker
         include WorkerAttributes
 
-        if category
-          feature_category category
-        else
-          feature_category :not_owned
-        end
+        feature_category category || :not_owned
 
         def perform; end
       end
diff --git a/spec/requests/verifies_with_email_spec.rb b/spec/requests/verifies_with_email_spec.rb
index cc85ebc7adeca0e1755c3998113940db3b401411..c8a0c0975a3baa517f4a9dc1f37922d535d64112 100644
--- a/spec/requests/verifies_with_email_spec.rb
+++ b/spec/requests/verifies_with_email_spec.rb
@@ -171,8 +171,8 @@
 
         it 'adds a verification error message' do
           expect(json_response)
-            .to include('message' => (s_('IdentityVerification|The code is incorrect. '\
-                                         'Enter it again, or send a new code.')))
+            .to include('message' => s_('IdentityVerification|The code is incorrect. '\
+                                        'Enter it again, or send a new code.'))
         end
       end
 
@@ -184,7 +184,7 @@
 
         it 'adds a verification error message' do
           expect(json_response)
-            .to include('message' => (s_('IdentityVerification|The code has expired. Send a new code and try again.')))
+            .to include('message' => s_('IdentityVerification|The code has expired. Send a new code and try again.'))
         end
       end
 
diff --git a/spec/services/members/invitation_reminder_email_service_spec.rb b/spec/services/members/invitation_reminder_email_service_spec.rb
index 2b72a4919b4f8133b48d23e00c1cd683ac4f0a2f..a3c2e994c2ef7735d96b3acf4a40394fecab2b97 100644
--- a/spec/services/members/invitation_reminder_email_service_spec.rb
+++ b/spec/services/members/invitation_reminder_email_service_spec.rb
@@ -38,7 +38,7 @@
     with_them do
       # Create an invitation today with an expiration date from 0 to 10 days in the future or without an expiration date
       # We chose 10 days here, because we fetch invitations that were created at most 10 days ago.
-      (0..10).each do |day|
+      11.times do |day|
         it 'sends an invitation reminder only on the expected days' do
           next if day > (expires_at_days || 10) # We don't need to test after the invitation has already expired
 
diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb
index 683e438eb08c84655e2d340766a158bf14e2adfd..c5cdc43968f0537b73093a3584acf970c6645aa9 100644
--- a/spec/services/projects/create_service_spec.rb
+++ b/spec/services/projects/create_service_spec.rb
@@ -156,7 +156,7 @@
         project = create_project(bot_user, opts)
 
         expect(project.errors.errors.length).to eq 1
-        expect(project.errors.messages[:namespace].first).to eq(("is not valid"))
+        expect(project.errors.messages[:namespace].first).to eq("is not valid")
       end
     end
   end