diff --git a/.rubocop_todo/style/percent_literal_delimiters.yml b/.rubocop_todo/style/percent_literal_delimiters.yml
index 5b5fca8cc774399dba48dc146a5212bb17e7ef96..5dc4cf6e056de2e8a0dd784f69b62736bb0b55e7 100644
--- a/.rubocop_todo/style/percent_literal_delimiters.yml
+++ b/.rubocop_todo/style/percent_literal_delimiters.yml
@@ -3,70 +3,6 @@
 Style/PercentLiteralDelimiters:
   Exclude:
     - 'metrics_server/metrics_server.rb'
-    - 'spec/graphql/mutations/alert_management/update_alert_status_spec.rb'
-    - 'spec/graphql/mutations/ci/runner/update_spec.rb'
-    - 'spec/graphql/mutations/commits/create_spec.rb'
-    - 'spec/graphql/resolvers/board_lists_resolver_spec.rb'
-    - 'spec/graphql/resolvers/container_repository_tags_resolver_spec.rb'
-    - 'spec/graphql/resolvers/projects/jira_projects_resolver_spec.rb'
-    - 'spec/graphql/resolvers/projects_resolver_spec.rb'
-    - 'spec/graphql/types/boards/board_issue_input_type_spec.rb'
-    - 'spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb'
-    - 'spec/graphql/types/issue_type_spec.rb'
-    - 'spec/helpers/appearances_helper_spec.rb'
-    - 'spec/helpers/application_settings_helper_spec.rb'
-    - 'spec/helpers/auth_helper_spec.rb'
-    - 'spec/helpers/breadcrumbs_helper_spec.rb'
-    - 'spec/helpers/ci/pipelines_helper_spec.rb'
-    - 'spec/helpers/clusters_helper_spec.rb'
-    - 'spec/helpers/diff_helper_spec.rb'
-    - 'spec/helpers/emails_helper_spec.rb'
-    - 'spec/helpers/issuables_description_templates_helper_spec.rb'
-    - 'spec/helpers/issues_helper_spec.rb'
-    - 'spec/helpers/nav_helper_spec.rb'
-    - 'spec/helpers/page_layout_helper_spec.rb'
-    - 'spec/helpers/profiles_helper_spec.rb'
-    - 'spec/helpers/releases_helper_spec.rb'
-    - 'spec/helpers/tracking_helper_spec.rb'
-    - 'spec/initializers/direct_upload_support_spec.rb'
-    - 'spec/initializers/enumerator_next_patch_spec.rb'
-    - 'spec/initializers/rack_multipart_patch_spec.rb'
-    - 'spec/lib/api/ci/helpers/runner_helpers_spec.rb'
-    - 'spec/lib/api/entities/user_spec.rb'
-    - 'spec/lib/api/helpers/common_helpers_spec.rb'
-    - 'spec/lib/backup/files_spec.rb'
-    - 'spec/lib/backup/manager_spec.rb'
-    - 'spec/lib/backup/repositories_spec.rb'
-    - 'spec/lib/banzai/filter/asset_proxy_filter_spec.rb'
-    - 'spec/lib/banzai/filter/autolink_filter_spec.rb'
-    - 'spec/lib/banzai/filter/broadcast_message_sanitization_filter_spec.rb'
-    - 'spec/lib/banzai/filter/image_link_filter_spec.rb'
-    - 'spec/lib/banzai/filter/references/alert_reference_filter_spec.rb'
-    - 'spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb'
-    - 'spec/lib/banzai/filter/references/commit_reference_filter_spec.rb'
-    - 'spec/lib/banzai/filter/references/design_reference_filter_spec.rb'
-    - 'spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb'
-    - 'spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb'
-    - 'spec/lib/banzai/filter/references/issue_reference_filter_spec.rb'
-    - 'spec/lib/banzai/filter/references/label_reference_filter_spec.rb'
-    - 'spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb'
-    - 'spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb'
-    - 'spec/lib/banzai/filter/references/project_reference_filter_spec.rb'
-    - 'spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb'
-    - 'spec/lib/banzai/filter/references/user_reference_filter_spec.rb'
-    - 'spec/lib/banzai/filter/syntax_highlight_filter_spec.rb'
-    - 'spec/lib/banzai/filter_array_spec.rb'
-    - 'spec/lib/banzai/pipeline/description_pipeline_spec.rb'
-    - 'spec/lib/banzai/pipeline/full_pipeline_spec.rb'
-    - 'spec/lib/banzai/pipeline/gfm_pipeline_spec.rb'
-    - 'spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb'
-    - 'spec/lib/banzai/reference_parser/base_parser_spec.rb'
-    - 'spec/lib/banzai/reference_parser/issue_parser_spec.rb'
-    - 'spec/lib/banzai/reference_parser/merge_request_parser_spec.rb'
-    - 'spec/lib/bitbucket/collection_spec.rb'
-    - 'spec/lib/bitbucket/representation/repo_spec.rb'
-    - 'spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb'
-    - 'spec/lib/bulk_imports/common/transformers/prohibited_attributes_transformer_spec.rb'
     - 'spec/lib/gitlab/alert_management/payload/base_spec.rb'
     - 'spec/lib/gitlab/asset_proxy_spec.rb'
     - 'spec/lib/gitlab/auth/ldap/auth_hash_spec.rb'
@@ -186,7 +122,6 @@ Style/PercentLiteralDelimiters:
     - 'spec/lib/gitlab/popen_spec.rb'
     - 'spec/lib/gitlab/process_management_spec.rb'
     - 'spec/lib/gitlab/process_supervisor_spec.rb'
-    - 'spec/lib/gitlab/prometheus/query_variables_spec.rb'
     - 'spec/lib/gitlab/quick_actions/extractor_spec.rb'
     - 'spec/lib/gitlab/reference_extractor_spec.rb'
     - 'spec/lib/gitlab/repository_cache_adapter_spec.rb'
@@ -261,7 +196,6 @@ Style/PercentLiteralDelimiters:
     - 'spec/models/diff_viewer/base_spec.rb'
     - 'spec/models/environment_spec.rb'
     - 'spec/models/group_label_spec.rb'
-    - 'spec/models/group_spec.rb'
     - 'spec/models/instance_configuration_spec.rb'
     - 'spec/models/integration_spec.rb'
     - 'spec/models/integrations/buildkite_spec.rb'
@@ -279,7 +213,6 @@ Style/PercentLiteralDelimiters:
     - 'spec/models/project_feature_spec.rb'
     - 'spec/models/project_label_spec.rb'
     - 'spec/models/project_spec.rb'
-    - 'spec/models/project_team_spec.rb'
     - 'spec/models/projects/topic_spec.rb'
     - 'spec/models/prometheus_metric_spec.rb'
     - 'spec/models/releases/link_spec.rb'
@@ -320,13 +253,11 @@ Style/PercentLiteralDelimiters:
     - 'spec/requests/api/graphql/project/terraform/state_spec.rb'
     - 'spec/requests/api/graphql/project/terraform/states_spec.rb'
     - 'spec/requests/api/internal/base_spec.rb'
-    - 'spec/requests/api/invitations_spec.rb'
     - 'spec/requests/api/issues/get_group_issues_spec.rb'
     - 'spec/requests/api/issues/get_project_issues_spec.rb'
     - 'spec/requests/api/issues/issues_spec.rb'
     - 'spec/requests/api/issues/post_projects_issues_spec.rb'
     - 'spec/requests/api/issues/put_projects_issues_spec.rb'
-    - 'spec/requests/api/members_spec.rb'
     - 'spec/requests/api/merge_requests_spec.rb'
     - 'spec/requests/api/metadata_spec.rb'
     - 'spec/requests/api/project_container_repositories_spec.rb'
@@ -377,8 +308,6 @@ Style/PercentLiteralDelimiters:
     - 'spec/services/issues/export_csv_service_spec.rb'
     - 'spec/services/jira/requests/projects/list_service_spec.rb'
     - 'spec/services/lfs/file_transformer_spec.rb'
-    - 'spec/services/members/create_service_spec.rb'
-    - 'spec/services/members/invite_service_spec.rb'
     - 'spec/services/merge_requests/conflicts/resolve_service_spec.rb'
     - 'spec/services/merge_requests/merge_service_spec.rb'
     - 'spec/services/merge_requests/pushed_branches_service_spec.rb'
@@ -422,7 +351,6 @@ Style/PercentLiteralDelimiters:
     - 'spec/support/shared_examples/metrics/transaction_metrics_with_labels_shared_examples.rb'
     - 'spec/support/shared_examples/models/application_setting_shared_examples.rb'
     - 'spec/support/shared_examples/models/diff_positionable_note_shared_examples.rb'
-    - 'spec/support/shared_examples/models/member_shared_examples.rb'
     - 'spec/support/shared_examples/models/project_ci_cd_settings_shared_examples.rb'
     - 'spec/support/shared_examples/models/wiki_shared_examples.rb'
     - 'spec/support/shared_examples/path_extraction_shared_examples.rb'
diff --git a/spec/graphql/mutations/alert_management/update_alert_status_spec.rb b/spec/graphql/mutations/alert_management/update_alert_status_spec.rb
index fb11ec7065b0d6c89f138c8a689caa07c976d4d2..8e1b2d9011788600492f9c0a598c22424f24e779 100644
--- a/spec/graphql/mutations/alert_management/update_alert_status_spec.rb
+++ b/spec/graphql/mutations/alert_management/update_alert_status_spec.rb
@@ -52,7 +52,7 @@
 
           allow(alert).to receive(:save).and_return(false)
           allow(alert).to receive(:errors).and_return(
-            double(full_messages: %w(foo bar), :[] => nil)
+            double(full_messages: %w[foo bar], :[] => nil)
           )
           expect(resolve).to eq(
             alert: alert,
diff --git a/spec/graphql/mutations/ci/runner/update_spec.rb b/spec/graphql/mutations/ci/runner/update_spec.rb
index 50351321be83fc92dd74a1902d477b6648e14ab4..02bb7ee2170c886049cebf420e2331f35a05d274 100644
--- a/spec/graphql/mutations/ci/runner/update_spec.rb
+++ b/spec/graphql/mutations/ci/runner/update_spec.rb
@@ -69,7 +69,7 @@
             active: false,
             locked: true,
             run_untagged: false,
-            tag_list: %w(tag1 tag2)
+            tag_list: %w[tag1 tag2]
           }
         end
 
diff --git a/spec/graphql/mutations/commits/create_spec.rb b/spec/graphql/mutations/commits/create_spec.rb
index 2c452410ccae49af0880223fe7dc4c7a7da69ffa..8cfd27485e6bf1db353fda0a26345ecbef87c62b 100644
--- a/spec/graphql/mutations/commits/create_spec.rb
+++ b/spec/graphql/mutations/commits/create_spec.rb
@@ -67,7 +67,7 @@
         context 'when service successfully creates a new commit' do
           it "returns the ETag path for the commit's pipeline" do
             commit_pipeline_path = subject[:commit_pipeline_path]
-            expect(commit_pipeline_path).to match(%r(pipelines/sha/\w+))
+            expect(commit_pipeline_path).to match(%r{pipelines/sha/\w+})
           end
 
           it 'returns the content of the commit' do
diff --git a/spec/graphql/resolvers/board_lists_resolver_spec.rb b/spec/graphql/resolvers/board_lists_resolver_spec.rb
index 1de59c5f507adc6717d803a5f840eb3bcf4c4b3c..2a794c4d1e398b49c41e5c5b2ba782f60f26310c 100644
--- a/spec/graphql/resolvers/board_lists_resolver_spec.rb
+++ b/spec/graphql/resolvers/board_lists_resolver_spec.rb
@@ -41,7 +41,7 @@
         lists = resolve_board_lists
 
         expect(lists.count).to eq 3
-        expect(lists.map(&:list_type)).to eq %w(backlog label closed)
+        expect(lists.map(&:list_type)).to eq %w[backlog label closed]
       end
 
       context 'when another user has list preferences' do
diff --git a/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb b/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb
index 3ed3fe76267077e09bd0f273d654ef7e7cc05fd0..95e252472338e30541c886a0ea68b5a3d1900b33 100644
--- a/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb
+++ b/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb
@@ -25,7 +25,7 @@
       subject { resolver.map(&:name) }
 
       before do
-        stub_container_registry_tags(repository: repository.path, tags: %w(aaa bab bbb ccc 123), with_manifest: false)
+        stub_container_registry_tags(repository: repository.path, tags: %w[aaa bab bbb ccc 123], with_manifest: false)
       end
 
       context 'without sort' do
@@ -37,19 +37,19 @@
         context "name_asc" do
           let(:args) { { sort: :name_asc } }
 
-          it { is_expected.to eq(%w(123 aaa bab bbb ccc)) }
+          it { is_expected.to eq(%w[123 aaa bab bbb ccc]) }
         end
 
         context "name_desc" do
           let(:args) { { sort: :name_desc } }
 
-          it { is_expected.to eq(%w(ccc bbb bab aaa 123)) }
+          it { is_expected.to eq(%w[ccc bbb bab aaa 123]) }
         end
 
         context 'filter by name' do
           let(:args) { { sort: :name_desc, name: 'b' } }
 
-          it { is_expected.to eq(%w(bbb bab)) }
+          it { is_expected.to eq(%w[bbb bab]) }
         end
       end
     end
diff --git a/spec/graphql/resolvers/projects/jira_projects_resolver_spec.rb b/spec/graphql/resolvers/projects/jira_projects_resolver_spec.rb
index 6af2f56cef47e2cdee80a958ee0a8af1d0f1728d..b2d5e0b74055f46397957997e3fdce235c9f772b 100644
--- a/spec/graphql/resolvers/projects/jira_projects_resolver_spec.rb
+++ b/spec/graphql/resolvers/projects/jira_projects_resolver_spec.rb
@@ -60,9 +60,9 @@
             project_ids = jira_projects.map(&:id)
 
             expect(jira_projects.size).to eq 2
-            expect(project_keys).to eq(%w(EX ABC))
-            expect(project_names).to eq(%w(Example Alphabetical))
-            expect(project_ids).to eq(%w(10000 10001))
+            expect(project_keys).to eq(%w[EX ABC])
+            expect(project_names).to eq(%w[Example Alphabetical])
+            expect(project_ids).to eq(%w[10000 10001])
             expect(resolver.max_page_size).to eq(2)
           end
 
@@ -75,9 +75,9 @@
               project_ids = jira_projects.map(&:id)
 
               expect(jira_projects.size).to eq 1
-              expect(project_keys).to eq(%w(ABC))
-              expect(project_names).to eq(%w(Alphabetical))
-              expect(project_ids).to eq(%w(10001))
+              expect(project_keys).to eq(%w[ABC])
+              expect(project_names).to eq(%w[Alphabetical])
+              expect(project_ids).to eq(%w[10001])
               expect(resolver.max_page_size).to eq(1)
             end
           end
diff --git a/spec/graphql/resolvers/projects_resolver_spec.rb b/spec/graphql/resolvers/projects_resolver_spec.rb
index a01404e147bb72b28dde21d729f433ee90eec175..058d46a5e86c4002b1274b0b4ea680e267b295b0 100644
--- a/spec/graphql/resolvers/projects_resolver_spec.rb
+++ b/spec/graphql/resolvers/projects_resolver_spec.rb
@@ -10,7 +10,7 @@
 
     let_it_be(:group) { create(:group, name: 'public-group') }
     let_it_be(:private_group) { create(:group, name: 'private-group') }
-    let_it_be(:project) { create(:project, :public, topic_list: %w(ruby javascript)) }
+    let_it_be(:project) { create(:project, :public, topic_list: %w[ruby javascript]) }
     let_it_be(:other_project) { create(:project, :public) }
     let_it_be(:group_project) { create(:project, :public, group: group) }
     let_it_be(:private_project) { create(:project, :private) }
@@ -68,7 +68,7 @@
         end
 
         context 'when topics filter is provided' do
-          let(:filters) { { topics: %w(ruby) } }
+          let(:filters) { { topics: %w[ruby] } }
 
           it 'returns matching project' do
             is_expected.to contain_exactly(project)
@@ -148,7 +148,7 @@
         end
 
         context 'when topics filter is provided' do
-          let(:filters) { { topics: %w(ruby) } }
+          let(:filters) { { topics: %w[ruby] } }
 
           it 'returns matching project' do
             is_expected.to contain_exactly(project)
diff --git a/spec/graphql/types/boards/board_issue_input_type_spec.rb b/spec/graphql/types/boards/board_issue_input_type_spec.rb
index ed2872c35980bf0bfc70b79992d63257a5774b18..dccd9f1c16c8e568faeba183dc6eebcd19679f74 100644
--- a/spec/graphql/types/boards/board_issue_input_type_spec.rb
+++ b/spec/graphql/types/boards/board_issue_input_type_spec.rb
@@ -6,8 +6,8 @@
   it { expect(described_class.graphql_name).to eq('BoardIssueInput') }
 
   it 'has specific fields' do
-    allowed_args = %w(labelName milestoneTitle assigneeUsername authorUsername
-                      releaseTag myReactionEmoji not search assigneeWildcardId confidential)
+    allowed_args = %w[labelName milestoneTitle assigneeUsername authorUsername
+                      releaseTag myReactionEmoji not search assigneeWildcardId confidential]
 
     expect(described_class.arguments.keys).to include(*allowed_args)
     expect(described_class.arguments['not'].type).to eq(Types::Boards::NegatedBoardIssueInputType)
diff --git a/spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb b/spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb
index f536d91aeda1a4da73c48bb7c26fb9960c773160..15960407a6fb723adfaebcf7de1b0314db726ed7 100644
--- a/spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb
+++ b/spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb
@@ -6,6 +6,6 @@
   it { expect(described_class.graphql_name).to eq('DesignCollectionCopyState') }
 
   it 'exposes the correct event states' do
-    expect(described_class.values.keys).to match_array(%w(READY IN_PROGRESS ERROR))
+    expect(described_class.values.keys).to match_array(%w[READY IN_PROGRESS ERROR])
   end
 end
diff --git a/spec/graphql/types/issue_type_spec.rb b/spec/graphql/types/issue_type_spec.rb
index d4d0eff9adb23bc1c18add37ef7c337474bd1806..f6d461d6a5ff519c5c29bca82bf4bd55a45825af 100644
--- a/spec/graphql/types/issue_type_spec.rb
+++ b/spec/graphql/types/issue_type_spec.rb
@@ -32,7 +32,7 @@
     let_it_be(:now) { Time.now.change(usec: 0) }
     let_it_be(:issues) { create_list(:issue, 10, project: project, created_at: now) }
 
-    let(:count_path) { %w(data project issues count) }
+    let(:count_path) { %w[data project issues count] }
     let(:page_size) { 3 }
     let(:query) do
       <<~GRAPHQL
@@ -81,8 +81,8 @@
     end
 
     context 'count' do
-      let(:end_cursor) { %w(data project issues pageInfo endCursor) }
-      let(:issues_edges) { %w(data project issues edges) }
+      let(:end_cursor) { %w[data project issues pageInfo endCursor] }
+      let(:issues_edges) { %w[data project issues edges] }
 
       it 'returns total count' do
         expect(subject.dig(*count_path)).to eq(issues.count)
diff --git a/spec/helpers/appearances_helper_spec.rb b/spec/helpers/appearances_helper_spec.rb
index 352a90d5a4892c07bb1995fc1d7bd3754de5565e..376db6412e84dfdb86179fcd424aff38fbe9e0ec 100644
--- a/spec/helpers/appearances_helper_spec.rb
+++ b/spec/helpers/appearances_helper_spec.rb
@@ -152,7 +152,7 @@
       let!(:appearance) { create(:appearance, :with_logo) }
 
       it 'returns a path' do
-        expect(helper.brand_image).to match(%r(img .* data-src="/uploads/-/system/appearance/.*png))
+        expect(helper.brand_image).to match(%r{img .* data-src="/uploads/-/system/appearance/.*png})
       end
 
       context 'when there is no associated upload' do
@@ -163,14 +163,14 @@
         end
 
         it 'falls back to using the original path' do
-          expect(helper.brand_image).to match(%r(img .* data-src="/uploads/-/system/appearance/.*png))
+          expect(helper.brand_image).to match(%r{img .* data-src="/uploads/-/system/appearance/.*png})
         end
       end
     end
 
     context 'when there is no logo' do
       it 'returns path of GitLab logo' do
-        expect(helper.brand_image).to match(%r(img .* data-src="#{gitlab_logo}))
+        expect(helper.brand_image).to match(%r{img .* data-src="#{gitlab_logo}})
       end
     end
 
@@ -178,13 +178,13 @@
       let!(:appearance) { create(:appearance, title: 'My title') }
 
       it 'returns the title' do
-        expect(helper.brand_image).to match(%r(img alt="My title"))
+        expect(helper.brand_image).to match(%r{img alt="My title"})
       end
     end
 
     context 'when there is no title' do
       it 'returns the default title' do
-        expect(helper.brand_image).to match(%r(img alt="GitLab))
+        expect(helper.brand_image).to match(%r{img alt="GitLab})
       end
     end
   end
@@ -194,7 +194,7 @@
       let!(:appearance) { create(:appearance, :with_logo) }
 
       it 'returns path of custom logo' do
-        expect(helper.brand_image_path).to match(%r(/uploads/-/system/appearance/.*/dk.png))
+        expect(helper.brand_image_path).to match(%r{/uploads/-/system/appearance/.*/dk.png})
       end
     end
 
diff --git a/spec/helpers/application_settings_helper_spec.rb b/spec/helpers/application_settings_helper_spec.rb
index 9d591164547429798570fc4247e127d72d3c282c..5dc75a60a6e307d0da5fc6c6058b3dc0b0171148 100644
--- a/spec/helpers/application_settings_helper_spec.rb
+++ b/spec/helpers/application_settings_helper_spec.rb
@@ -47,7 +47,7 @@
 
   describe '.visible_attributes' do
     it 'contains tracking parameters' do
-      expect(helper.visible_attributes).to include(*%i(snowplow_collector_hostname snowplow_cookie_domain snowplow_enabled snowplow_app_id))
+      expect(helper.visible_attributes).to include(*%i[snowplow_collector_hostname snowplow_cookie_domain snowplow_enabled snowplow_app_id])
     end
 
     it 'contains :deactivate_dormant_users' do
@@ -60,16 +60,16 @@
 
     it 'contains rate limit parameters' do
       expect(helper.visible_attributes).to include(
-        *%i(
+        *%i[
           issues_create_limit notes_create_limit project_export_limit
           project_download_export_limit project_export_limit project_import_limit
           raw_blob_request_limit group_export_limit group_download_export_limit
           group_import_limit users_get_by_id_limit search_rate_limit search_rate_limit_unauthenticated
-        ))
+        ])
     end
 
     it 'contains GitLab for Slack app parameters' do
-      params = %i(slack_app_enabled slack_app_id slack_app_secret slack_app_signing_secret slack_app_verification_token)
+      params = %i[slack_app_enabled slack_app_id slack_app_secret slack_app_signing_secret slack_app_verification_token]
 
       expect(helper.visible_attributes).to include(*params)
     end
@@ -306,7 +306,7 @@
   describe '#sidekiq_job_limiter_modes_for_select' do
     subject { helper.sidekiq_job_limiter_modes_for_select }
 
-    it { is_expected.to eq([%w(Track track), %w(Compress compress)]) }
+    it { is_expected.to eq([%w[Track track], %w[Compress compress]]) }
   end
 
   describe '#instance_clusters_enabled?', :request_store do
diff --git a/spec/helpers/auth_helper_spec.rb b/spec/helpers/auth_helper_spec.rb
index 580bcb5dcd0f382aedb4962df9fb7bdda05fc632..5684f1cc99dfc4a0c1b7bf064e28ce42514d5c2f 100644
--- a/spec/helpers/auth_helper_spec.rb
+++ b/spec/helpers/auth_helper_spec.rb
@@ -35,12 +35,12 @@
   describe "form_based_providers" do
     it 'includes LDAP providers' do
       allow(helper).to receive(:auth_providers) { [:twitter, :ldapmain] }
-      expect(helper.form_based_providers).to eq %i(ldapmain)
+      expect(helper.form_based_providers).to eq %i[ldapmain]
     end
 
     it 'includes crowd provider' do
       allow(helper).to receive(:auth_providers) { [:twitter, :crowd] }
-      expect(helper.form_based_providers).to eq %i(crowd)
+      expect(helper.form_based_providers).to eq %i[crowd]
     end
   end
 
@@ -101,15 +101,15 @@
 
   describe 'popular_enabled_button_based_providers' do
     it 'returns the intersection set of popular & enabled providers', :aggregate_failures do
-      allow(helper).to receive(:enabled_button_based_providers) { %w(twitter github google_oauth2) }
+      allow(helper).to receive(:enabled_button_based_providers) { %w[twitter github google_oauth2] }
 
-      expect(helper.popular_enabled_button_based_providers).to eq(%w(github google_oauth2))
+      expect(helper.popular_enabled_button_based_providers).to eq(%w[github google_oauth2])
 
-      allow(helper).to receive(:enabled_button_based_providers) { %w(google_oauth2 bitbucket) }
+      allow(helper).to receive(:enabled_button_based_providers) { %w[google_oauth2 bitbucket] }
 
-      expect(helper.popular_enabled_button_based_providers).to eq(%w(google_oauth2))
+      expect(helper.popular_enabled_button_based_providers).to eq(%w[google_oauth2])
 
-      allow(helper).to receive(:enabled_button_based_providers) { %w(bitbucket) }
+      allow(helper).to receive(:enabled_button_based_providers) { %w[bitbucket] }
 
       expect(helper.popular_enabled_button_based_providers).to be_empty
     end
@@ -129,7 +129,7 @@
     context 'all the button based providers are disabled via application_setting' do
       it 'returns false' do
         stub_application_setting(
-          disabled_oauth_sign_in_sources: %w(github twitter)
+          disabled_oauth_sign_in_sources: %w[github twitter]
         )
 
         expect(helper.button_based_providers_enabled?).to be false
diff --git a/spec/helpers/breadcrumbs_helper_spec.rb b/spec/helpers/breadcrumbs_helper_spec.rb
index 8e2a684656b5ed684607ce2ec9972d7fbbd42000..43a30f59e50222564815de37ecd7c0d7b131a2c2 100644
--- a/spec/helpers/breadcrumbs_helper_spec.rb
+++ b/spec/helpers/breadcrumbs_helper_spec.rb
@@ -54,8 +54,8 @@
   describe '#schema_breadcrumb_json' do
     let(:elements) do
       [
-        %w(element1 http://test.host/link1),
-        %w(element2 http://test.host/link2)
+        %w[element1 http://test.host/link1],
+        %w[element2 http://test.host/link2]
       ]
     end
 
@@ -89,8 +89,8 @@
     context 'when extra breadcrumb element is added' do
       let(:extra_elements) do
         [
-          %w(extra_element1 http://test.host/extra_link1),
-          %w(extra_element2 http://test.host/extra_link2)
+          %w[extra_element1 http://test.host/extra_link1],
+          %w[extra_element2 http://test.host/extra_link2]
         ]
       end
 
diff --git a/spec/helpers/ci/pipelines_helper_spec.rb b/spec/helpers/ci/pipelines_helper_spec.rb
index 00bc38dbd94544ec6c3a6d1147181527c365a3b2..100ca3fb30c13a36fffe3d15a5b6c25228f702d4 100644
--- a/spec/helpers/ci/pipelines_helper_spec.rb
+++ b/spec/helpers/ci/pipelines_helper_spec.rb
@@ -110,7 +110,7 @@
       before do
         allow(helper).to receive(:current_user).and_return(user)
         project.add_developer(user)
-        create(:project_setting, project: project, target_platforms: %w(ios))
+        create(:project_setting, project: project, target_platforms: %w[ios])
       end
 
       describe 'the `registration_token` attribute' do
diff --git a/spec/helpers/clusters_helper_spec.rb b/spec/helpers/clusters_helper_spec.rb
index a9fbdfbe3ca748e8ff145dbbb7cda4f5de6c0b2a..f3d6b5bdda666d54678cfbe0101682e9f68ed892 100644
--- a/spec/helpers/clusters_helper_spec.rb
+++ b/spec/helpers/clusters_helper_spec.rb
@@ -48,9 +48,9 @@
     end
 
     it 'generates svg image data', :aggregate_failures do
-      expect(subject.dig(:img_tags, :aws, :path)).to match(%r(/illustrations/logos/amazon_eks|svg))
-      expect(subject.dig(:img_tags, :default, :path)).to match(%r(/illustrations/logos/kubernetes|svg))
-      expect(subject.dig(:img_tags, :gcp, :path)).to match(%r(/illustrations/logos/google_gke|svg))
+      expect(subject.dig(:img_tags, :aws, :path)).to match(%r{/illustrations/logos/amazon_eks|svg})
+      expect(subject.dig(:img_tags, :default, :path)).to match(%r{/illustrations/logos/kubernetes|svg})
+      expect(subject.dig(:img_tags, :gcp, :path)).to match(%r{/illustrations/logos/google_gke|svg})
 
       expect(subject.dig(:img_tags, :aws, :text)).to eq('Amazon EKS')
       expect(subject.dig(:img_tags, :default, :text)).to eq('Kubernetes Cluster')
@@ -62,8 +62,8 @@
     end
 
     it 'displays empty image path' do
-      expect(subject[:clusters_empty_state_image]).to match(%r(/illustrations/empty-state/empty-state-clusters|svg))
-      expect(subject[:empty_state_image]).to match(%r(/illustrations/empty-state/empty-state-agents|svg))
+      expect(subject[:clusters_empty_state_image]).to match(%r{/illustrations/empty-state/empty-state-clusters|svg})
+      expect(subject[:empty_state_image]).to match(%r{/illustrations/empty-state/empty-state-agents|svg})
     end
 
     it 'displays add cluster using certificate path' do
diff --git a/spec/helpers/diff_helper_spec.rb b/spec/helpers/diff_helper_spec.rb
index 927930675150066fe5dfbc29fcbe6684cc215bf3..17ec18d702c0361f5c55e4fe7c9d4ab093012636 100644
--- a/spec/helpers/diff_helper_spec.rb
+++ b/spec/helpers/diff_helper_spec.rb
@@ -196,26 +196,26 @@
   end
 
   describe "#mark_inline_diffs" do
-    let(:old_line) { %{abc 'def'} }
-    let(:new_line) { %{abc "def"} }
+    let(:old_line) { %(abc 'def') }
+    let(:new_line) { %(abc "def") }
 
     it "returns strings with marked inline diffs" do
       marked_old_line, marked_new_line = mark_inline_diffs(old_line, new_line)
 
-      expect(marked_old_line).to eq(%q{abc <span class="idiff left deletion">&#39;</span>def<span class="idiff right deletion">&#39;</span>})
+      expect(marked_old_line).to eq(%q(abc <span class="idiff left deletion">&#39;</span>def<span class="idiff right deletion">&#39;</span>))
       expect(marked_old_line).to be_html_safe
-      expect(marked_new_line).to eq(%q{abc <span class="idiff left addition">&quot;</span>def<span class="idiff right addition">&quot;</span>})
+      expect(marked_new_line).to eq(%q(abc <span class="idiff left addition">&quot;</span>def<span class="idiff right addition">&quot;</span>))
       expect(marked_new_line).to be_html_safe
     end
 
     context 'when given HTML' do
       it 'sanitizes it' do
-        old_line = %{test.txt}
+        old_line = %(test.txt)
         new_line = %{<img src=x onerror=alert(document.domain)>}
 
         marked_old_line, marked_new_line = mark_inline_diffs(old_line, new_line)
 
-        expect(marked_old_line).to eq(%q{<span class="idiff left right deletion">test.txt</span>})
+        expect(marked_old_line).to eq(%q(<span class="idiff left right deletion">test.txt</span>))
         expect(marked_old_line).to be_html_safe
         expect(marked_new_line).to eq(%q{<span class="idiff left right addition">&lt;img src=x onerror=alert(document.domain)&gt;</span>})
         expect(marked_new_line).to be_html_safe
diff --git a/spec/helpers/emails_helper_spec.rb b/spec/helpers/emails_helper_spec.rb
index dbc6bd2eb28ad9eb6451bd45c2c22f5d1a8ea0a9..ee623cea66407939808a3dcda1de08e3bb93525d 100644
--- a/spec/helpers/emails_helper_spec.rb
+++ b/spec/helpers/emails_helper_spec.rb
@@ -237,7 +237,7 @@ def validate_time_string(time_limit, expected_string)
 
       it 'returns the brand header logo' do
         expect(header_logo).to eq(
-          %{<img style="height: 50px" src="/uploads/-/system/appearance/header_logo/#{appearance.id}/dk.png" />}
+          %(<img style="height: 50px" src="/uploads/-/system/appearance/header_logo/#{appearance.id}/dk.png" />)
         )
       end
 
@@ -326,8 +326,8 @@ def validate_time_string(time_limit, expected_string)
         create :appearance, header_message: 'Foo', footer_message: 'Bar', email_header_and_footer_enabled: true
 
         aggregate_failures do
-          expect(html_header_message).to eq(%{<div class="header-message" style=""><p>Foo</p></div>})
-          expect(html_footer_message).to eq(%{<div class="footer-message" style=""><p>Bar</p></div>})
+          expect(html_header_message).to eq(%(<div class="header-message" style=""><p>Foo</p></div>))
+          expect(html_footer_message).to eq(%(<div class="footer-message" style=""><p>Bar</p></div>))
           expect(text_header_message).to eq('Foo')
           expect(text_footer_message).to eq('Bar')
         end
diff --git a/spec/helpers/issuables_description_templates_helper_spec.rb b/spec/helpers/issuables_description_templates_helper_spec.rb
index b32a99fe9890305a0fccb7605c146e545047f671..4634ff83469a25a0e29f8876db85b0b5c9489ad4 100644
--- a/spec/helpers/issuables_description_templates_helper_spec.rb
+++ b/spec/helpers/issuables_description_templates_helper_spec.rb
@@ -85,7 +85,7 @@
   end
 
   describe '#selected_template_name' do
-    let(:template_names) { %w(another_issue_template custom_issue_template) }
+    let(:template_names) { %w[another_issue_template custom_issue_template] }
 
     context 'when no issuable_template parameter is provided' do
       it 'does not select a template' do
@@ -118,7 +118,7 @@
 
   describe '#default_template_name' do
     context 'when a default template is available' do
-      let(:template_names) { %w(another_issue_template deFault) }
+      let(:template_names) { %w[another_issue_template deFault] }
 
       it 'returns the default template' do
         issue = build(:issue)
@@ -140,7 +140,7 @@
     end
 
     context 'when there is no default template' do
-      let(:template_names) { %w(another_issue_template) }
+      let(:template_names) { %w[another_issue_template] }
 
       it 'returns nil' do
         expect(helper.default_template_name(template_names, build(:issue))).to be_nil
diff --git a/spec/helpers/issues_helper_spec.rb b/spec/helpers/issues_helper_spec.rb
index 72fa264698d77b03774c05bc46d979cbe5c9fa32..62d94b59c2aedf6963d1fb6d3cb571ecdedc3743 100644
--- a/spec/helpers/issues_helper_spec.rb
+++ b/spec/helpers/issues_helper_spec.rb
@@ -78,7 +78,7 @@
   describe 'awards_sort' do
     it 'sorts a hash so thumbsup and thumbsdown are always on top' do
       data = { 'thumbsdown' => 'some value', 'lifter' => 'some value', 'thumbsup' => 'some value' }
-      expect(awards_sort(data).keys).to eq(%w(thumbsup thumbsdown lifter))
+      expect(awards_sort(data).keys).to eq(%w[thumbsup thumbsdown lifter])
     end
   end
 
diff --git a/spec/helpers/nav_helper_spec.rb b/spec/helpers/nav_helper_spec.rb
index 950d8b77d014eb08b8110ebaeea67c63bf2048c5..12ab7ca93c07fca577e87e646f5d70d2299c4b7b 100644
--- a/spec/helpers/nav_helper_spec.rb
+++ b/spec/helpers/nav_helper_spec.rb
@@ -115,13 +115,13 @@
   describe '#page_has_markdown?' do
     using RSpec::Parameterized::TableSyntax
 
-    where path: %w(
+    where path: %w[
       projects/merge_requests#show
       projects/merge_requests/conflicts#show
       issues#show
       milestones#show
       issues#designs
-    )
+    ]
 
     with_them do
       before do
diff --git a/spec/helpers/page_layout_helper_spec.rb b/spec/helpers/page_layout_helper_spec.rb
index 43500d985917fdba230891dc4611d024ffe6c169..a4f10933be611e3f2191a5e333bf68cb4c3b5104 100644
--- a/spec/helpers/page_layout_helper_spec.rb
+++ b/spec/helpers/page_layout_helper_spec.rb
@@ -55,7 +55,7 @@
       expect(helper.page_image).to match_asset_path 'assets/twitter_card.jpg'
     end
 
-    %w(project user group).each do |type|
+    %w[project user group].each do |type|
       context "with @#{type} assigned" do
         let(:object) { build(type, trait) }
         let(:trait) { :with_avatar }
@@ -116,11 +116,11 @@
 
     it 'escapes content' do
       allow(helper).to receive(:page_card_attributes)
-        .and_return(foo: %q{foo" http-equiv="refresh}.html_safe)
+        .and_return(foo: %q(foo" http-equiv="refresh).html_safe)
 
       tags = helper.page_card_meta_tags
 
-      expect(tags).to include(%q{content="foo&quot; http-equiv=&quot;refresh"})
+      expect(tags).to include(%q(content="foo&quot; http-equiv=&quot;refresh"))
     end
   end
 
diff --git a/spec/helpers/profiles_helper_spec.rb b/spec/helpers/profiles_helper_spec.rb
index 15ca5f61b516620c37ee208bddd03dbd5057e4ef..ece6574ee38950cde5502262b96135b5ca394856 100644
--- a/spec/helpers/profiles_helper_spec.rb
+++ b/spec/helpers/profiles_helper_spec.rb
@@ -106,9 +106,9 @@
     using RSpec::Parameterized::TableSyntax
 
     where(:stacking, :breakpoint, :expected) do
-      nil  | nil | %w(gl-mb-3 gl-display-inline-block middle-dot-divider)
-      true | nil | %w(gl-mb-3 middle-dot-divider-sm gl-display-block gl-sm-display-inline-block)
-      nil  | :sm | %w(gl-mb-3 gl-display-inline-block middle-dot-divider-sm)
+      nil  | nil | %w[gl-mb-3 gl-display-inline-block middle-dot-divider]
+      true | nil | %w[gl-mb-3 middle-dot-divider-sm gl-display-block gl-sm-display-inline-block]
+      nil  | :sm | %w[gl-mb-3 gl-display-inline-block middle-dot-divider-sm]
     end
 
     with_them do
diff --git a/spec/helpers/releases_helper_spec.rb b/spec/helpers/releases_helper_spec.rb
index 5a9deb5c63b85978cdfd5e5873e8be3361b77a71..daf034edbb1da0200031ca1e6870cacd9f68e9f6 100644
--- a/spec/helpers/releases_helper_spec.rb
+++ b/spec/helpers/releases_helper_spec.rb
@@ -59,7 +59,7 @@
 
     describe '#data_for_edit_release_page' do
       it 'has the needed data to display the "edit release" page' do
-        keys = %i(project_id
+        keys = %i[project_id
                   group_id
                   group_milestones_available
                   project_path
@@ -72,7 +72,7 @@
                   new_milestone_path
                   upcoming_release_docs_path
                   edit_release_docs_path
-                  delete_release_docs_path)
+                  delete_release_docs_path]
 
         expect(helper.data_for_edit_release_page.keys).to match_array(keys)
       end
@@ -80,7 +80,7 @@
 
     describe '#data_for_new_release_page' do
       it 'has the needed data to display the "new release" page' do
-        keys = %i(project_id
+        keys = %i[project_id
                   group_id
                   group_milestones_available
                   project_path
@@ -93,7 +93,7 @@
                   new_milestone_path
                   default_branch
                   upcoming_release_docs_path
-                  edit_release_docs_path)
+                  edit_release_docs_path]
 
         expect(helper.data_for_new_release_page.keys).to match_array(keys)
       end
@@ -101,9 +101,9 @@
 
     describe '#data_for_show_page' do
       it 'has the needed data to display the individual "release" page' do
-        keys = %i(project_id
+        keys = %i[project_id
                   project_path
-                  tag_name)
+                  tag_name]
 
         expect(helper.data_for_show_page.keys).to match_array(keys)
       end
diff --git a/spec/helpers/tracking_helper_spec.rb b/spec/helpers/tracking_helper_spec.rb
index 81121275c928039d9c3da8415e910a3c97863dde..9d3f2d07cbe46296d6e5b892d89e5a8b8564da21 100644
--- a/spec/helpers/tracking_helper_spec.rb
+++ b/spec/helpers/tracking_helper_spec.rb
@@ -6,7 +6,7 @@
   describe '#tracking_attrs' do
     using RSpec::Parameterized::TableSyntax
 
-    let(:input) { %w(a b c) }
+    let(:input) { %w[a b c] }
     let(:result) { { data: { track_label: 'a', track_action: 'b', track_property: 'c' } } }
 
     before do
diff --git a/spec/initializers/direct_upload_support_spec.rb b/spec/initializers/direct_upload_support_spec.rb
index 68dd12fdb6e6d5adcfb9a3da7fbdc167359d0ac2..29d19c8397c1662fa21a27988d25028d247d1ff5 100644
--- a/spec/initializers/direct_upload_support_spec.rb
+++ b/spec/initializers/direct_upload_support_spec.rb
@@ -8,7 +8,7 @@
   end
 
   where(:config_name) do
-    %w(artifacts lfs uploads)
+    %w[artifacts lfs uploads]
   end
 
   with_them do
diff --git a/spec/initializers/enumerator_next_patch_spec.rb b/spec/initializers/enumerator_next_patch_spec.rb
index 99e73af5e86675eaf66430ba76cfcad2a01813c0..bf8ab823e53a8aea26687507349d8fcd533d8c95 100644
--- a/spec/initializers/enumerator_next_patch_spec.rb
+++ b/spec/initializers/enumerator_next_patch_spec.rb
@@ -33,15 +33,15 @@ def make_regexp(method_name)
     end
 
     def have_been_raised_by_next_and_not_fixed_up
-      contain_unique_method_calls_in_order %w(call_enum_method)
+      contain_unique_method_calls_in_order %w[call_enum_method]
     end
 
     def have_been_raised_by_enum_object_and_fixed_up
-      contain_unique_method_calls_in_order %w(make_error call_enum_method)
+      contain_unique_method_calls_in_order %w[make_error call_enum_method]
     end
 
     def have_been_raised_by_nested_next_and_fixed_up
-      contain_unique_method_calls_in_order %w(call_nested_next call_enum_method)
+      contain_unique_method_calls_in_order %w[call_nested_next call_enum_method]
     end
 
     methods = [
diff --git a/spec/initializers/rack_multipart_patch_spec.rb b/spec/initializers/rack_multipart_patch_spec.rb
index 862fdc7901bc89b04c4a2fdc05a397604b464eeb..4b46da732363f6c06acb9cb4ec155091001845c6 100644
--- a/spec/initializers/rack_multipart_patch_spec.rb
+++ b/spec/initializers/rack_multipart_patch_spec.rb
@@ -37,7 +37,7 @@ def multipart_fixture(name, length, boundary = "AaB03x")
       expect(described_class).not_to receive(:log_multipart_warning)
       params = described_class.parse_multipart(env)
 
-      expect(params.keys).to include(*%w(reply fileupload))
+      expect(params.keys).to include(*%w[reply fileupload])
     end
   end
 
@@ -56,7 +56,7 @@ def multipart_fixture(name, length, boundary = "AaB03x")
                                                            })
         params = described_class.parse_multipart(env)
 
-        expect(params.keys).to include(*%w(reply fileupload))
+        expect(params.keys).to include(*%w[reply fileupload])
       end
     end
 
diff --git a/spec/lib/api/ci/helpers/runner_helpers_spec.rb b/spec/lib/api/ci/helpers/runner_helpers_spec.rb
index c36c8d23e88ed498a666b6825a56bc66f5b8fd15..e05be65bf19670085146d516a3e736fb36a115b3 100644
--- a/spec/lib/api/ci/helpers/runner_helpers_spec.rb
+++ b/spec/lib/api/ci/helpers/runner_helpers_spec.rb
@@ -62,7 +62,7 @@ def ip_address
 
       it 'extracts the runner details', :aggregate_failures do
         expect(details.keys).to match_array(
-          %w(system_id name version revision platform architecture executor config ip_address)
+          %w[system_id name version revision platform architecture executor config ip_address]
         )
         expect(details['system_id']).to eq(system_id)
         expect(details['name']).to eq(name)
diff --git a/spec/lib/api/entities/user_spec.rb b/spec/lib/api/entities/user_spec.rb
index 063a11918bae789e1dc7a4293ee525d89433af4e..c5a98e6e42e23df771eef9211e5f522f612b613a 100644
--- a/spec/lib/api/entities/user_spec.rb
+++ b/spec/lib/api/entities/user_spec.rb
@@ -29,7 +29,7 @@
       allow(Ability).to receive(:allowed?).with(current_user, :read_user_profile, user).and_return(can_read_user_profile)
     end
 
-    %i(followers following is_followed).each do |relationship|
+    %i[followers following is_followed].each do |relationship|
       shared_examples 'does not expose relationship' do
         it "does not expose #{relationship}" do
           expect(subject).not_to include(relationship)
diff --git a/spec/lib/api/helpers/common_helpers_spec.rb b/spec/lib/api/helpers/common_helpers_spec.rb
index 5162d2f10001bb236e34c4d7e54ca7489dfc0609..04a1837dec9097f740ced742b6a8843791c28917 100644
--- a/spec/lib/api/helpers/common_helpers_spec.rb
+++ b/spec/lib/api/helpers/common_helpers_spec.rb
@@ -44,7 +44,7 @@ def app
       get '/test?array=&array_of_strings=test,me&array_of_ints=1,2'
 
       expect(json_response['array']).to eq([])
-      expect(json_response['array_of_strings']).to eq(%w(test me))
+      expect(json_response['array_of_strings']).to eq(%w[test me])
       expect(json_response['array_of_ints']).to eq([1, 2])
     end
   end
diff --git a/spec/lib/backup/files_spec.rb b/spec/lib/backup/files_spec.rb
index 9cb57baba25c9a935058ba690780b298c9df647a..48c89e06dfa84f362e07abb96a2bd7ba96bb5369 100644
--- a/spec/lib/backup/files_spec.rb
+++ b/spec/lib/backup/files_spec.rb
@@ -68,7 +68,7 @@
       it 'calls tar command with unlink' do
         expect(subject).to receive(:tar).and_return('blabla-tar')
 
-        expect(subject).to receive(:run_pipeline!).with([%w(gzip -cd), %w(blabla-tar --unlink-first --recursive-unlink -C /var/gitlab-registry -xf -)], any_args)
+        expect(subject).to receive(:run_pipeline!).with([%w[gzip -cd], %w[blabla-tar --unlink-first --recursive-unlink -C /var/gitlab-registry -xf -]], any_args)
         expect(subject).to receive(:pipeline_succeeded?).and_return(true)
         subject.restore('registry.tar.gz', 'backup_id')
       end
@@ -124,7 +124,7 @@
     it 'excludes tmp dirs from archive' do
       expect(subject).to receive(:tar).and_return('blabla-tar')
 
-      expect(subject).to receive(:run_pipeline!).with([%w(blabla-tar --exclude=lost+found --exclude=./@pages.tmp -C /var/gitlab-pages -cf - .), 'gzip -c -1'], any_args)
+      expect(subject).to receive(:run_pipeline!).with([%w[blabla-tar --exclude=lost+found --exclude=./@pages.tmp -C /var/gitlab-pages -cf - .], 'gzip -c -1'], any_args)
       subject.dump('registry.tar.gz', 'backup_id')
     end
 
@@ -146,7 +146,7 @@
 
       it 'excludes tmp dirs from rsync' do
         expect(Gitlab::Popen).to receive(:popen)
-          .with(%w(rsync -a --delete --exclude=lost+found --exclude=/gitlab-pages/@pages.tmp /var/gitlab-pages /var/gitlab-backup))
+          .with(%w[rsync -a --delete --exclude=lost+found --exclude=/gitlab-pages/@pages.tmp /var/gitlab-pages /var/gitlab-backup])
           .and_return(['', 0])
 
         subject.dump('registry.tar.gz', 'backup_id')
@@ -154,7 +154,7 @@
 
       it 'retries if rsync fails due to vanishing files' do
         expect(Gitlab::Popen).to receive(:popen)
-          .with(%w(rsync -a --delete --exclude=lost+found --exclude=/gitlab-pages/@pages.tmp /var/gitlab-pages /var/gitlab-backup))
+          .with(%w[rsync -a --delete --exclude=lost+found --exclude=/gitlab-pages/@pages.tmp /var/gitlab-pages /var/gitlab-backup])
           .and_return(['rsync failed', 24], ['', 0])
 
         expect do
@@ -164,7 +164,7 @@
 
       it 'raises an error and outputs an error message if rsync failed' do
         allow(Gitlab::Popen).to receive(:popen)
-          .with(%w(rsync -a --delete --exclude=lost+found --exclude=/gitlab-pages/@pages.tmp /var/gitlab-pages /var/gitlab-backup))
+          .with(%w[rsync -a --delete --exclude=lost+found --exclude=/gitlab-pages/@pages.tmp /var/gitlab-pages /var/gitlab-backup])
           .and_return(['rsync failed', 1])
 
         expect do
diff --git a/spec/lib/backup/manager_spec.rb b/spec/lib/backup/manager_spec.rb
index 6061441d5f51949e1dccf3234f904b36ebfb6d71..8f85cd9d8b346539e3ae3eb783145f3982348884 100644
--- a/spec/lib/backup/manager_spec.rb
+++ b/spec/lib/backup/manager_spec.rb
@@ -156,7 +156,7 @@
 
   describe '#create' do
     let(:incremental_env) { 'false' }
-    let(:expected_backup_contents) { %w{backup_information.yml task1.tar.gz task2.tar.gz} }
+    let(:expected_backup_contents) { %w[backup_information.yml task1.tar.gz task2.tar.gz] }
     let(:backup_time) { Time.zone.parse('2019-1-1') }
     let(:backup_id) { "1546300800_2019_01_01_#{Gitlab::VERSION}" }
     let(:full_backup_id) { backup_id }
@@ -223,7 +223,7 @@
       end
 
       context 'when SKIP env is set' do
-        let(:expected_backup_contents) { %w{backup_information.yml task1.tar.gz} }
+        let(:expected_backup_contents) { %w[backup_information.yml task1.tar.gz] }
 
         before do
           stub_env('SKIP', 'task2')
@@ -237,7 +237,7 @@
       end
 
       context 'when the destination is optional' do
-        let(:expected_backup_contents) { %w{backup_information.yml task1.tar.gz} }
+        let(:expected_backup_contents) { %w[backup_information.yml task1.tar.gz] }
         let(:definitions) do
           {
             'task1' => Backup::Manager::TaskDefinition.new(task: task1, destination_path: 'task1.tar.gz'),
@@ -1015,7 +1015,7 @@
     end
 
     context 'when BACKUP variable is set to a correct file' do
-      let(:tar_cmdline) { %w{tar -xf 1451606400_2016_01_01_1.2.3_gitlab_backup.tar} }
+      let(:tar_cmdline) { %w[tar -xf 1451606400_2016_01_01_1.2.3_gitlab_backup.tar] }
       let(:backup_id) { "1451606400_2016_01_01_1.2.3" }
 
       before do
diff --git a/spec/lib/backup/repositories_spec.rb b/spec/lib/backup/repositories_spec.rb
index b549f2d355d724cb71c0306b448b7739c1f24a89..ad5fb8ea84e67b420aad42698e9ae2ea39ee7dc8 100644
--- a/spec/lib/backup/repositories_spec.rb
+++ b/spec/lib/backup/repositories_spec.rb
@@ -85,7 +85,7 @@
     end
 
     describe 'storages' do
-      let(:storages) { %w{default} }
+      let(:storages) { %w[default] }
 
       let_it_be(:project) { create(:project_with_design, :repository) }
 
@@ -280,7 +280,7 @@
     end
 
     context 'storages' do
-      let(:storages) { %w{default} }
+      let(:storages) { %w[default] }
 
       before do
         stub_storage_settings('test_second_storage' => {
diff --git a/spec/lib/banzai/filter/asset_proxy_filter_spec.rb b/spec/lib/banzai/filter/asset_proxy_filter_spec.rb
index 7a34bf13c8f8effd443316b18706d484952ec0b2..baa22e0897130edc5a31a437f5bdb0d09b1c7887 100644
--- a/spec/lib/banzai/filter/asset_proxy_filter_spec.rb
+++ b/spec/lib/banzai/filter/asset_proxy_filter_spec.rb
@@ -28,14 +28,14 @@ def image(path)
       stub_application_setting(asset_proxy_enabled: true)
       stub_application_setting(asset_proxy_secret_key: 'shared-secret')
       stub_application_setting(asset_proxy_url: 'https://assets.example.com')
-      stub_application_setting(asset_proxy_allowlist: %w(gitlab.com *.mydomain.com))
+      stub_application_setting(asset_proxy_allowlist: %w[gitlab.com *.mydomain.com])
 
       described_class.initialize_settings
 
       expect(Gitlab.config.asset_proxy.enabled).to be_truthy
       expect(Gitlab.config.asset_proxy.secret_key).to eq 'shared-secret'
       expect(Gitlab.config.asset_proxy.url).to eq 'https://assets.example.com'
-      expect(Gitlab.config.asset_proxy.allowlist).to eq %w(gitlab.com *.mydomain.com)
+      expect(Gitlab.config.asset_proxy.allowlist).to eq %w[gitlab.com *.mydomain.com]
       expect(Gitlab.config.asset_proxy.domain_regexp).to eq(/^(gitlab\.com|.*?\.mydomain\.com)$/i)
     end
 
@@ -52,12 +52,12 @@ def image(path)
 
     it 'supports deprecated whitelist settings' do
       stub_application_setting(asset_proxy_enabled: true)
-      stub_application_setting(asset_proxy_whitelist: %w(foo.com bar.com))
+      stub_application_setting(asset_proxy_whitelist: %w[foo.com bar.com])
       stub_application_setting(asset_proxy_allowlist: [])
 
       described_class.initialize_settings
 
-      expect(Gitlab.config.asset_proxy.allowlist).to eq %w(foo.com bar.com)
+      expect(Gitlab.config.asset_proxy.allowlist).to eq %w[foo.com bar.com]
     end
   end
 
@@ -66,7 +66,7 @@ def image(path)
       stub_asset_proxy_setting(enabled: true)
       stub_asset_proxy_setting(secret_key: 'shared-secret')
       stub_asset_proxy_setting(url: 'https://assets.example.com')
-      stub_asset_proxy_setting(allowlist: %W(gitlab.com *.mydomain.com #{Gitlab.config.gitlab.host}))
+      stub_asset_proxy_setting(allowlist: %W[gitlab.com *.mydomain.com #{Gitlab.config.gitlab.host}])
       stub_asset_proxy_setting(domain_regexp: described_class.compile_allowlist(Gitlab.config.asset_proxy.allowlist))
       @context = described_class.transform_context({})
     end
diff --git a/spec/lib/banzai/filter/autolink_filter_spec.rb b/spec/lib/banzai/filter/autolink_filter_spec.rb
index fe642855f3b256a509aa28d83499ca2d4fd3c866..89a9099a1f43c3cf0a633c40b949370ee2c061ab 100644
--- a/spec/lib/banzai/filter/autolink_filter_spec.rb
+++ b/spec/lib/banzai/filter/autolink_filter_spec.rb
@@ -178,7 +178,7 @@
 
     it 'does not double-encode HTML entities' do
       encoded_link = "#{link}?foo=bar&amp;baz=quux"
-      expected_encoded_link = %{<a href="#{encoded_link}">#{encoded_link}</a>}
+      expected_encoded_link = %(<a href="#{encoded_link}">#{encoded_link}</a>)
       actual = unescape(filter(encoded_link).to_html)
 
       expect(actual).to eq(Rinku.auto_link(encoded_link))
diff --git a/spec/lib/banzai/filter/broadcast_message_sanitization_filter_spec.rb b/spec/lib/banzai/filter/broadcast_message_sanitization_filter_spec.rb
index 3b054862a2602bb1f1e3a3e881cf9cc1583a0fee..69afddf2406e8109c688fb9de611c1d0a0ff221f 100644
--- a/spec/lib/banzai/filter/broadcast_message_sanitization_filter_spec.rb
+++ b/spec/lib/banzai/filter/broadcast_message_sanitization_filter_spec.rb
@@ -14,13 +14,13 @@
     subject { filter(exp).to_html }
 
     context 'allows `a` elements' do
-      let(:exp) { %q{<a href="/">Link</a>} }
+      let(:exp) { %q(<a href="/">Link</a>) }
 
       it { is_expected.to eq(exp) }
     end
 
     context 'allows `br` elements' do
-      let(:exp) { %q{Hello<br>World} }
+      let(:exp) { %q(Hello<br>World) }
 
       it { is_expected.to eq(exp) }
     end
@@ -29,21 +29,21 @@
       let(:allowed_style) { 'color: red; border: blue; background: green; padding: 10px; margin: 10px; text-decoration: underline;' }
 
       context 'allows specific properties' do
-        let(:exp) { %{<a href="#" style="#{allowed_style}">Stylish Link</a>} }
+        let(:exp) { %(<a href="#" style="#{allowed_style}">Stylish Link</a>) }
 
         it { is_expected.to eq(exp) }
       end
 
       it 'disallows other properties in `style` attribute on `a` elements' do
         style = [allowed_style, 'position: fixed'].join(';')
-        doc = filter(%{<a href="#" style="#{style}">Stylish Link</a>})
+        doc = filter(%(<a href="#" style="#{style}">Stylish Link</a>))
 
         expect(doc.at_css('a')['style']).to eq(allowed_style)
       end
     end
 
     context 'allows `class` on `a` elements' do
-      let(:exp) { %q{<a href="#" class="btn">Button Link</a>} }
+      let(:exp) { %q(<a href="#" class="btn">Button Link</a>) }
 
       it { is_expected.to eq(exp) }
     end
diff --git a/spec/lib/banzai/filter/image_link_filter_spec.rb b/spec/lib/banzai/filter/image_link_filter_spec.rb
index 6c9e798790f0a1b18e5c96b4b5d1453601137a5c..75a4c550ec9c24df205193803fcfce2d8d67936f 100644
--- a/spec/lib/banzai/filter/image_link_filter_spec.rb
+++ b/spec/lib/banzai/filter/image_link_filter_spec.rb
@@ -9,8 +9,8 @@
   let(:context) { {} }
 
   def image(path, alt: nil, data_src: nil)
-    alt_tag = alt ? %{alt="#{alt}"} : ""
-    data_src_tag = data_src ? %{data-src="#{data_src}"} : ""
+    alt_tag = alt ? %(alt="#{alt}") : ""
+    data_src_tag = data_src ? %(data-src="#{data_src}") : ""
 
     %(<img src="#{path}" #{alt_tag} #{data_src_tag} />)
   end
diff --git a/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb b/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb
index 6ebf6c3cd1dbbc90d142725481cc74de46e5c25c..9723e9b39f1ae95aab070a0d54401645f5708a3d 100644
--- a/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb
@@ -13,7 +13,7 @@
     expect { described_class.call('') }.to raise_error(ArgumentError, /:project/)
   end
 
-  %w(pre code a style).each do |elem|
+  %w[pre code a style].each do |elem|
     it "ignores valid references contained inside '#{elem}' element" do
       exp = act = "<#{elem}>Alert #{reference}</#{elem}>"
 
@@ -47,7 +47,7 @@
     end
 
     it 'escapes the title attribute' do
-      allow(alert).to receive(:title).and_return(%{"></a>whatever<a title="})
+      allow(alert).to receive(:title).and_return(%("></a>whatever<a title="))
       doc = reference_filter("Alert #{reference}")
 
       expect(doc.text).to eq "Alert #{reference}"
@@ -79,7 +79,7 @@
       doc = reference_filter("Alert #{reference}", only_path: true)
       link = doc.css('a').first.attr('href')
 
-      expect(link).not_to match %r(https?://)
+      expect(link).not_to match %r{https?://}
       expect(link).to eq urls.details_project_alert_management_url(project, alert.iid, only_path: true)
     end
   end
diff --git a/spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb b/spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb
index 594a24fa279c44bd763ca24a59285bb26be5ba40..9300945a9af42f39c1110c4d344cd6ea09075f36 100644
--- a/spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb
@@ -16,7 +16,7 @@
     expect { described_class.call('') }.to raise_error(ArgumentError, /:project/)
   end
 
-  %w(pre code a style).each do |elem|
+  %w[pre code a style].each do |elem|
     it "ignores valid references contained inside '#{elem}' element" do
       exp = act = "<#{elem}>Commit Range #{range.to_reference}</#{elem}>"
       expect(reference_filter(act).to_html).to eq exp
@@ -96,7 +96,7 @@
       doc = reference_filter("See #{reference}", only_path: true)
       link = doc.css('a').first.attr('href')
 
-      expect(link).not_to match %r(https?://)
+      expect(link).not_to match %r{https?://}
       expect(link).to eq urls.project_compare_url(project, from: commit1.id, to: commit2.id, only_path: true)
     end
   end
diff --git a/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb b/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb
index 73e3bf41ee9257cd76efcb9cf01da7635811b1c7..6e0f9eda0e25f3a455035c37700fe265d8c24ea6 100644
--- a/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb
@@ -12,7 +12,7 @@
     expect { described_class.call('') }.to raise_error(ArgumentError, /:project/)
   end
 
-  %w(pre code a style).each do |elem|
+  %w[pre code a style].each do |elem|
     it "ignores valid references contained inside '#{elem}' element" do
       exp = act = "<#{elem}>Commit #{commit.id}</#{elem}>"
       expect(reference_filter(act).to_html).to eq exp
@@ -61,7 +61,7 @@
 
     it 'escapes the title attribute' do
       allow_next_instance_of(Commit) do |instance|
-        allow(instance).to receive(:title).and_return(%{"></a>whatever<a title="})
+        allow(instance).to receive(:title).and_return(%("></a>whatever<a title="))
       end
 
       doc = reference_filter("See #{reference}")
@@ -93,7 +93,7 @@
       doc = reference_filter("See #{reference}", only_path: true)
       link = doc.css('a').first.attr('href')
 
-      expect(link).not_to match %r(https?://)
+      expect(link).not_to match %r{https?://}
       expect(link).to eq urls.project_commit_url(project, reference, only_path: true)
     end
 
diff --git a/spec/lib/banzai/filter/references/design_reference_filter_spec.rb b/spec/lib/banzai/filter/references/design_reference_filter_spec.rb
index d97067de1553a7294ca983d0eab9c1451c203621..fd03d7c0d271f10858022e2e6161fff4e576079d 100644
--- a/spec/lib/banzai/filter/references/design_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/design_reference_filter_spec.rb
@@ -77,7 +77,7 @@
     end
   end
 
-  %w(pre code a style).each do |elem|
+  %w[pre code a style].each do |elem|
     context "wrapped in a <#{elem}/>" do
       let(:input_text) { "<#{elem}>Design #{url_for_design(design)}</#{elem}>" }
 
diff --git a/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb b/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb
index 86fb7d3964d55e3fb30aef9f11bdd71c847f76f1..823f006c98a9d15642f76b854d2f418cb39c2e45 100644
--- a/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb
@@ -14,7 +14,7 @@
       expect { described_class.call('') }.to raise_error(ArgumentError, /:project/)
     end
 
-    %w(pre code a style).each do |elem|
+    %w[pre code a style].each do |elem|
       it "ignores valid references contained inside '#{elem}' element" do
         exp = act = "<#{elem}>Issue #{reference}</#{elem}>"
 
@@ -59,7 +59,7 @@
 
     it 'escapes the title attribute' do
       allow(project.external_issue_tracker).to receive(:title)
-        .and_return(%{"></a>whatever<a title="})
+        .and_return(%("></a>whatever<a title="))
 
       doc = filter("Issue #{reference}")
       expect(doc.text).to eq "Issue #{reference}"
diff --git a/spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb b/spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb
index c2f4bf6caa5bd0a4ab868476ff4f399a3ea3e97d..02be2296d5c5cca925916eca8fe43fb98292f6f0 100644
--- a/spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb
@@ -13,7 +13,7 @@
     expect { described_class.call('') }.to raise_error(ArgumentError, /:project/)
   end
 
-  %w(pre code a style).each do |elem|
+  %w[pre code a style].each do |elem|
     it "ignores valid references contained inside '#{elem}' element" do
       exp = act = "<#{elem}>Feature Flag #{reference}</#{elem}>"
 
@@ -47,7 +47,7 @@
     end
 
     it 'escapes the title attribute' do
-      allow(feature_flag).to receive(:name).and_return(%{"></a>whatever<a title="})
+      allow(feature_flag).to receive(:name).and_return(%("></a>whatever<a title="))
       doc = reference_filter("Feature Flag #{reference}")
 
       expect(doc.text).to eq "Feature Flag #{reference}"
@@ -79,7 +79,7 @@
       doc = reference_filter("Feature Flag #{reference}", only_path: true)
       link = doc.css('a').first.attr('href')
 
-      expect(link).not_to match %r(https?://)
+      expect(link).not_to match %r{https?://}
       expect(link).to eq urls.edit_project_feature_flag_url(project, feature_flag.iid, only_path: true)
     end
   end
diff --git a/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb b/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb
index aadd726ac40fa6ea898fbcb4888bfaf747c7dbdd..d16188e99a3253571498a5bc8f9128608f51876a 100644
--- a/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb
@@ -27,7 +27,7 @@ def helper
     expect { described_class.call('') }.to raise_error(ArgumentError, /:project/)
   end
 
-  %w(pre code a style).each do |elem|
+  %w[pre code a style].each do |elem|
     it "ignores valid references contained inside '#{elem}' element" do
       exp = act = "<#{elem}>Issue #{issue.to_reference}</#{elem}>"
       expect(reference_filter(act).to_html).to eq exp
@@ -77,7 +77,7 @@ def helper
     end
 
     it 'escapes the title attribute' do
-      issue.update_attribute(:title, %{"></a>whatever<a title="})
+      issue.update_attribute(:title, %("></a>whatever<a title="))
 
       doc = reference_filter("Issue #{written_reference}")
       expect(doc.text).to eq "Issue #{reference}"
@@ -128,7 +128,7 @@ def helper
 
     it 'does not escape the data-original attribute' do
       inner_html = 'element <code>node</code> inside'
-      doc = reference_filter(%{<a href="#{written_reference}">#{inner_html}</a>})
+      doc = reference_filter(%(<a href="#{written_reference}">#{inner_html}</a>))
       expect(doc.children.first.attr('data-original')).to eq inner_html
     end
 
@@ -163,7 +163,7 @@ def helper
       doc = reference_filter("Issue #{written_reference}", only_path: true)
       link = doc.css('a').first.attr('href')
 
-      expect(link).not_to match %r(https?://)
+      expect(link).not_to match %r{https?://}
       expect(link).to eq issue_path
     end
 
@@ -381,7 +381,7 @@ def helper
   end
 
   context 'cross-project reference in link href' do
-    let(:reference_link) { %{<a href="#{reference}">Reference</a>} }
+    let(:reference_link) { %(<a href="#{reference}">Reference</a>) }
     let(:reference) { issue.to_reference(project) }
     let(:issue)     { create(:issue, project: project2) }
     let(:project2)  { create(:project, :public, namespace: namespace) }
@@ -412,7 +412,7 @@ def helper
   end
 
   context 'cross-project URL in link href' do
-    let(:reference_link) { %{<a href="#{reference}">Reference</a>} }
+    let(:reference_link) { %(<a href="#{reference}">Reference</a>) }
     let(:reference) { (issue_url + "#note_123").to_s }
     let(:issue)     { create(:issue, project: project2) }
     let(:project2)  { create(:project, :public, namespace: namespace) }
@@ -519,7 +519,7 @@ def helper
 
     it 'links to a valid reference for cross-reference in link href' do
       reference = (issue_url + "#note_123").to_s
-      reference_link = %{<a href="#{reference}">Reference</a>}
+      reference_link = %(<a href="#{reference}">Reference</a>)
 
       doc = reference_filter("See #{reference_link}", context)
 
@@ -530,7 +530,7 @@ def helper
 
     it 'links to a valid reference for issue reference in the link href' do
       reference = issue.to_reference(group)
-      reference_link = %{<a href="#{reference}">Reference</a>}
+      reference_link = %(<a href="#{reference}">Reference</a>)
       doc = reference_filter("See #{reference_link}", context)
 
       link = doc.css('a').first
diff --git a/spec/lib/banzai/filter/references/label_reference_filter_spec.rb b/spec/lib/banzai/filter/references/label_reference_filter_spec.rb
index 91b051d71ec529c8d3ea1cf561090461631e5c30..a4587b70dfabcd3368a985f941acf013e54b9e25 100644
--- a/spec/lib/banzai/filter/references/label_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/label_reference_filter_spec.rb
@@ -19,7 +19,7 @@
     expect { described_class.call('') }.to raise_error(ArgumentError, /:project/)
   end
 
-  %w(pre code a style).each do |elem|
+  %w[pre code a style].each do |elem|
     it "ignores valid references contained inside '#{elem}' element" do
       exp = act = "<#{elem}>Label #{reference}</#{elem}>"
       expect(reference_filter(act).to_html).to eq exp
@@ -64,14 +64,14 @@
     doc = reference_filter("Label #{reference}")
     link = doc.css('a').first.attr('href')
 
-    expect(link).to match %r(https?://)
+    expect(link).to match %r{https?://}
   end
 
   it 'does not include protocol when :only_path true' do
     doc = reference_filter("Label #{reference}", only_path: true)
     link = doc.css('a').first.attr('href')
 
-    expect(link).not_to match %r(https?://)
+    expect(link).not_to match %r{https?://}
   end
 
   it 'links to issue list when :label_url_method is not present' do
@@ -118,7 +118,7 @@
 
     it 'links with adjacent text' do
       doc = reference_filter("Label (#{reference}.)")
-      expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\)))
+      expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\)})
     end
 
     it 'ignores invalid label IDs' do
@@ -142,7 +142,7 @@
 
     it 'links with adjacent text' do
       doc = reference_filter("Label (#{reference}).")
-      expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\)\.))
+      expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\)\.})
     end
 
     it 'ignores invalid label names' do
@@ -166,7 +166,7 @@
 
     it 'links with adjacent text' do
       doc = reference_filter("Label (#{reference}).")
-      expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\)\.))
+      expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\)\.})
     end
 
     it 'ignores invalid label names' do
@@ -191,7 +191,7 @@
     it 'does not include trailing punctuation', :aggregate_failures do
       ['.', ', ok?', '...', '?', '!', ': is that ok?'].each do |trailing_punctuation|
         doc = filter("Label #{reference}#{trailing_punctuation}")
-        expect(doc.to_html).to match(%r(<span.+><a.+><span.+>\?g\.fm&amp;</span></a></span>#{Regexp.escape(trailing_punctuation)}))
+        expect(doc.to_html).to match(%r{<span.+><a.+><span.+>\?g\.fm&amp;</span></a></span>#{Regexp.escape(trailing_punctuation)}})
       end
     end
 
@@ -217,7 +217,7 @@
 
     it 'links with adjacent text' do
       doc = reference_filter("Label (#{reference}.)")
-      expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\)))
+      expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\)})
     end
 
     it 'ignores invalid label names' do
@@ -241,7 +241,7 @@
 
     it 'links with adjacent text' do
       doc = reference_filter("Label (#{reference}.)")
-      expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\)))
+      expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\)})
     end
 
     it 'ignores invalid label names' do
@@ -265,7 +265,7 @@
 
     it 'links with adjacent text' do
       doc = reference_filter("Label (#{reference}.)")
-      expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>g\.fm &amp; references\?</span></a></span>\.\)))
+      expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>g\.fm &amp; references\?</span></a></span>\.\)})
     end
 
     it 'ignores invalid label names' do
@@ -344,7 +344,7 @@
   end
 
   describe 'referencing a label in a link href' do
-    let(:reference) { %{<a href="#{label.to_reference}">Label</a>} }
+    let(:reference) { %(<a href="#{label.to_reference}">Label</a>) }
 
     it 'links to a valid reference' do
       doc = reference_filter("See #{reference}")
@@ -355,7 +355,7 @@
 
     it 'links with adjacent text' do
       doc = reference_filter("Label (#{reference}.)")
-      expect(doc.to_html).to match(%r(\(<span.+><a.+>Label</a></span>\.\)))
+      expect(doc.to_html).to match(%r{\(<span.+><a.+>Label</a></span>\.\)})
     end
 
     it 'includes a data-project attribute' do
@@ -393,7 +393,7 @@
 
       it 'links with adjacent text' do
         doc = reference_filter("Label (#{reference}.)")
-        expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{group_label.name}</span></a></span>\.\)))
+        expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{group_label.name}</span></a></span>\.\)})
       end
 
       it 'ignores invalid label names' do
@@ -416,7 +416,7 @@
 
       it 'links with adjacent text' do
         doc = reference_filter("Label (#{reference}.)")
-        expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{group_label.name}</span></a></span>\.\)))
+        expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{group_label.name}</span></a></span>\.\)})
       end
 
       it 'ignores invalid label names' do
diff --git a/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb b/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb
index 156455221cf5f3f659e84ca2fe9ba950216f2a0c..ccc8478c7d8af3129c232d8169d695ea358a0495 100644
--- a/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb
@@ -12,7 +12,7 @@
     expect { described_class.call('') }.to raise_error(ArgumentError, /:project/)
   end
 
-  %w(pre code a style).each do |elem|
+  %w[pre code a style].each do |elem|
     it "ignores valid references contained inside '#{elem}' element" do
       exp = act = "<#{elem}>Merge #{merge.to_reference}</#{elem}>"
       expect(reference_filter(act).to_html).to eq exp
@@ -83,7 +83,7 @@
     end
 
     it 'escapes the title attribute' do
-      merge.update_attribute(:title, %{"></a>whatever<a title="})
+      merge.update_attribute(:title, %("></a>whatever<a title="))
 
       doc = reference_filter("Merge #{reference}")
       expect(doc.text).to eq "Merge #{reference}"
@@ -141,7 +141,7 @@
       doc = reference_filter("Merge #{reference}", only_path: true)
       link = doc.css('a').first.attr('href')
 
-      expect(link).not_to match %r(https?://)
+      expect(link).not_to match %r{https?://}
       expect(link).to eq urls.project_merge_request_url(project, merge, only_path: true)
     end
   end
diff --git a/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb b/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb
index 7caa6efff6660746ad71f7887f2a3c64251e387e..1fa62d70b72823256e5644b93c805ce97dcc156b 100644
--- a/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb
@@ -16,7 +16,7 @@
   end
 
   shared_examples 'reference parsing' do
-    %w(pre code a style).each do |elem|
+    %w[pre code a style].each do |elem|
       it "ignores valid references contained inside '#{elem}' element" do
         exp = act = "<#{elem}>milestone #{reference}</#{elem}>"
         expect(reference_filter(act).to_html).to eq exp
@@ -49,7 +49,7 @@
       doc = reference_filter("Milestone #{reference}", only_path: true)
       link = doc.css('a').first.attr('href')
 
-      expect(link).not_to match %r(https?://)
+      expect(link).not_to match %r{https?://}
       expect(link).to eq urls.milestone_path(milestone)
     end
   end
@@ -63,7 +63,7 @@
 
     it 'links with adjacent text' do
       doc = reference_filter("Milestone (#{reference}.)")
-      expect(doc.to_html).to match(%r(\(<a.+>#{milestone.reference_link_text}</a>\.\)))
+      expect(doc.to_html).to match(%r{\(<a.+>#{milestone.reference_link_text}</a>\.\)})
     end
 
     it 'ignores invalid milestone IIDs' do
@@ -89,12 +89,12 @@
 
     it 'links with adjacent text' do
       doc = reference_filter("Milestone (#{reference}.)")
-      expect(doc.to_html).to match(%r(\(<a.+>#{milestone.reference_link_text}</a>\.\)))
+      expect(doc.to_html).to match(%r{\(<a.+>#{milestone.reference_link_text}</a>\.\)})
     end
 
     it 'links with adjacent html tags' do
       doc = reference_filter("Milestone <p>#{reference}</p>.")
-      expect(doc.to_html).to match(%r(<p><a.+>#{milestone.reference_link_text}</a></p>))
+      expect(doc.to_html).to match(%r{<p><a.+>#{milestone.reference_link_text}</a></p>})
     end
 
     it 'ignores invalid milestone names' do
@@ -120,7 +120,7 @@
 
     it 'links with adjacent text' do
       doc = reference_filter("Milestone (#{reference}.)")
-      expect(doc.to_html).to match(%r(\(<a.+>#{milestone.reference_link_text}</a>\.\)))
+      expect(doc.to_html).to match(%r{\(<a.+>#{milestone.reference_link_text}</a>\.\)})
     end
 
     it 'ignores invalid milestone names' do
@@ -132,7 +132,7 @@
 
   shared_examples 'referencing a milestone in a link href' do
     let(:unquoted_reference) { "#{Milestone.reference_prefix}#{milestone.name}" }
-    let(:link_reference) { %{<a href="#{unquoted_reference}">Milestone</a>} }
+    let(:link_reference) { %(<a href="#{unquoted_reference}">Milestone</a>) }
 
     before do
       milestone.update!(name: 'gfm')
@@ -146,7 +146,7 @@
 
     it 'links with adjacent text' do
       doc = reference_filter("Milestone (#{link_reference}.)")
-      expect(doc.to_html).to match(%r(\(<a.+>Milestone</a>\.\)))
+      expect(doc.to_html).to match(%r{\(<a.+>Milestone</a>\.\)})
     end
 
     it 'includes a data-project attribute' do
@@ -169,7 +169,7 @@
   shared_examples 'linking to a milestone as the entire link' do
     let(:unquoted_reference) { "#{Milestone.reference_prefix}#{milestone.name}" }
     let(:link) { urls.milestone_url(milestone) }
-    let(:link_reference) { %{<a href="#{link}">#{link}</a>} }
+    let(:link_reference) { %(<a href="#{link}">#{link}</a>) }
 
     it 'replaces the link text with the milestone reference' do
       doc = reference_filter("See #{link}")
@@ -220,7 +220,7 @@
 
     it 'escapes the name attribute' do
       allow_next_instance_of(Milestone) do |instance|
-        allow(instance).to receive(:title).and_return(%{"></a>whatever<a title="})
+        allow(instance).to receive(:title).and_return(%("></a>whatever<a title="))
       end
 
       doc = reference_filter("See #{reference}")
@@ -257,7 +257,7 @@
 
     it 'escapes the name attribute' do
       allow_next_instance_of(Milestone) do |instance|
-        allow(instance).to receive(:title).and_return(%{"></a>whatever<a title="})
+        allow(instance).to receive(:title).and_return(%("></a>whatever<a title="))
       end
 
       doc = reference_filter("See #{reference}")
@@ -294,7 +294,7 @@
 
     it 'escapes the name attribute' do
       allow_next_instance_of(Milestone) do |instance|
-        allow(instance).to receive(:title).and_return(%{"></a>whatever<a title="})
+        allow(instance).to receive(:title).and_return(%("></a>whatever<a title="))
       end
 
       doc = reference_filter("See #{reference}")
diff --git a/spec/lib/banzai/filter/references/project_reference_filter_spec.rb b/spec/lib/banzai/filter/references/project_reference_filter_spec.rb
index b6d6ff2309a0c87586d4c21b28ff36e57c7e510f..9433862ac8ace61b1272def92ce45063e6870d90 100644
--- a/spec/lib/banzai/filter/references/project_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/project_reference_filter_spec.rb
@@ -47,7 +47,7 @@ def get_reference(project)
     expect(doc.css('a').first.attr('href')).to eq urls.project_url(subject)
   end
 
-  %w(pre code a style).each do |elem|
+  %w[pre code a style].each do |elem|
     it "ignores valid references contained inside '#{elem}' element" do
       exp = act = "<#{elem}>Hey #{CGI.escapeHTML(reference)}</#{elem}>"
       expect(reference_filter(act).to_html).to eq exp
diff --git a/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb b/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb
index 32d1cb095d33adcc2320656e6b678995e4882e6e..b196d85ba8a1f1e87960efb93f65552e92f9f5f8 100644
--- a/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb
@@ -13,7 +13,7 @@
     expect { described_class.call('') }.to raise_error(ArgumentError, /:project/)
   end
 
-  %w(pre code a style).each do |elem|
+  %w[pre code a style].each do |elem|
     it "ignores valid references contained inside '#{elem}' element" do
       exp = act = "<#{elem}>Snippet #{reference}</#{elem}>"
       expect(reference_filter(act).to_html).to eq exp
@@ -45,7 +45,7 @@
     end
 
     it 'escapes the title attribute' do
-      snippet.update_attribute(:title, %{"></a>whatever<a title="})
+      snippet.update_attribute(:title, %("></a>whatever<a title="))
 
       doc = reference_filter("Snippet #{reference}")
       expect(doc.text).to eq "Snippet #{reference}"
@@ -76,7 +76,7 @@
       doc = reference_filter("Snippet #{reference}", only_path: true)
       link = doc.css('a').first.attr('href')
 
-      expect(link).not_to match %r(https?://)
+      expect(link).not_to match %r{https?://}
       expect(link).to eq urls.project_snippet_url(project, snippet, only_path: true)
     end
   end
diff --git a/spec/lib/banzai/filter/references/user_reference_filter_spec.rb b/spec/lib/banzai/filter/references/user_reference_filter_spec.rb
index 276701a298485d754406d858477ff16929758acc..7a11ff3ac3db9926ced626ec805e8fd8296b5ccc 100644
--- a/spec/lib/banzai/filter/references/user_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/user_reference_filter_spec.rb
@@ -32,7 +32,7 @@ def get_reference(user)
     expect(reference_filter(act).to_html).to eq(exp)
   end
 
-  %w(pre code a style).each do |elem|
+  %w[pre code a style].each do |elem|
     it "ignores valid references contained inside '#{elem}' element" do
       exp = act = "<#{elem}>Hey #{reference}</#{elem}>"
       expect(reference_filter(act).to_html).to eq exp
diff --git a/spec/lib/banzai/filter/syntax_highlight_filter_spec.rb b/spec/lib/banzai/filter/syntax_highlight_filter_spec.rb
index 4aacebe60245e3d4241a0a5eec1fdb57acf87051..5fe9433cef3b7f295db04876d48aeb8652aa3145 100644
--- a/spec/lib/banzai/filter/syntax_highlight_filter_spec.rb
+++ b/spec/lib/banzai/filter/syntax_highlight_filter_spec.rb
@@ -87,13 +87,13 @@
   end
 
   context "languages that should be passed through" do
-    %w(math mermaid plantuml suggestion).each do |lang|
+    %w[math mermaid plantuml suggestion].each do |lang|
       context "when #{lang} is specified" do
         it "highlights as plaintext but with the correct language attribute and class" do
-          result = filter(%{<pre data-canonical-lang="#{lang}"><code>This is a test</code></pre>})
+          result = filter(%(<pre data-canonical-lang="#{lang}"><code>This is a test</code></pre>))
           copy_code_btn = '<copy-code></copy-code>' unless lang == 'suggestion'
 
-          expect(result.to_html.delete("\n")).to eq(%{<div class="gl-relative markdown-code-block js-markdown-code"><pre data-canonical-lang="#{lang}" class="code highlight js-syntax-highlight language-#{lang}" lang="#{lang}" v-pre="true"><code><span id="LC1" class="line" lang="#{lang}">This is a test</span></code></pre>#{copy_code_btn}</div>})
+          expect(result.to_html.delete("\n")).to eq(%(<div class="gl-relative markdown-code-block js-markdown-code"><pre data-canonical-lang="#{lang}" class="code highlight js-syntax-highlight language-#{lang}" lang="#{lang}" v-pre="true"><code><span id="LC1" class="line" lang="#{lang}">This is a test</span></code></pre>#{copy_code_btn}</div>))
         end
 
         include_examples "XSS prevention", lang
diff --git a/spec/lib/banzai/filter_array_spec.rb b/spec/lib/banzai/filter_array_spec.rb
index bb457568bee03c12624c29b5c403dbdcc6412c51..1c401fdaf8a31cc8c87cfd2e172d57077787538c 100644
--- a/spec/lib/banzai/filter_array_spec.rb
+++ b/spec/lib/banzai/filter_array_spec.rb
@@ -5,37 +5,37 @@
 RSpec.describe Banzai::FilterArray, feature_category: :team_planning do
   describe '#insert_after' do
     it 'inserts an element after a provided element' do
-      filters = described_class.new(%w(a b c))
+      filters = described_class.new(%w[a b c])
 
       filters.insert_after('b', '1')
 
-      expect(filters).to eq %w(a b 1 c)
+      expect(filters).to eq %w[a b 1 c]
     end
 
     it 'inserts an element at the end when the provided element does not exist' do
-      filters = described_class.new(%w(a b c))
+      filters = described_class.new(%w[a b c])
 
       filters.insert_after('d', '1')
 
-      expect(filters).to eq %w(a b c 1)
+      expect(filters).to eq %w[a b c 1]
     end
   end
 
   describe '#insert_before' do
     it 'inserts an element before a provided element' do
-      filters = described_class.new(%w(a b c))
+      filters = described_class.new(%w[a b c])
 
       filters.insert_before('b', '1')
 
-      expect(filters).to eq %w(a 1 b c)
+      expect(filters).to eq %w[a 1 b c]
     end
 
     it 'inserts an element at the beginning when the provided element does not exist' do
-      filters = described_class.new(%w(a b c))
+      filters = described_class.new(%w[a b c])
 
       filters.insert_before('d', '1')
 
-      expect(filters).to eq %w(1 a b c)
+      expect(filters).to eq %w[1 a b c]
     end
   end
 end
diff --git a/spec/lib/banzai/pipeline/description_pipeline_spec.rb b/spec/lib/banzai/pipeline/description_pipeline_spec.rb
index fa25612a06eec1fa505121c226d5671a81775542..2d831d7f7e028d32880238989b403b8bf314b800 100644
--- a/spec/lib/banzai/pipeline/description_pipeline_spec.rb
+++ b/spec/lib/banzai/pipeline/description_pipeline_spec.rb
@@ -27,7 +27,7 @@ def parse(html)
     expect(doc.strip).to eq 'Description'
   end
 
-  %w(pre code img ol ul li).each do |elem|
+  %w[pre code img ol ul li].each do |elem|
     it "removes '#{elem}' elements" do
       act = "<#{elem}>Description</#{elem}>"
 
@@ -35,7 +35,7 @@ def parse(html)
     end
   end
 
-  %w(b i strong em a ins del sup sub).each do |elem|
+  %w[b i strong em a ins del sup sub].each do |elem|
     it "still allows '#{elem}' elements" do
       exp = act = "<#{elem}>Description</#{elem}>"
 
diff --git a/spec/lib/banzai/pipeline/full_pipeline_spec.rb b/spec/lib/banzai/pipeline/full_pipeline_spec.rb
index 6ef03b58f67f9282abed0deebcb26d92a37df4f6..e00d0b6c279d3a8dfcb4ab064e4a9cb19d84aa4e 100644
--- a/spec/lib/banzai/pipeline/full_pipeline_spec.rb
+++ b/spec/lib/banzai/pipeline/full_pipeline_spec.rb
@@ -30,7 +30,7 @@
     it 'escapes the data-original attribute on a reference' do
       markdown = %{[">bad things](#{issue.to_reference})}
       result = described_class.to_html(markdown, project: project)
-      expect(result).to include(%{data-original='\"&amp;gt;bad things'})
+      expect(result).to include(%(data-original='\"&amp;gt;bad things'))
     end
   end
 
diff --git a/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb b/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb
index 58d6b9b9a2c07c888c9fb504bf8049f048892edc..a845e4fa7f470ec4eced3a7919b23bc931c9cb2b 100644
--- a/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb
+++ b/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb
@@ -177,7 +177,7 @@
       stub_asset_proxy_setting(enabled: true)
       stub_asset_proxy_setting(secret_key: 'shared-secret')
       stub_asset_proxy_setting(url: 'https://assets.example.com')
-      stub_asset_proxy_setting(allowlist: %W(gitlab.com *.mydomain.com #{Gitlab.config.gitlab.host}))
+      stub_asset_proxy_setting(allowlist: %W[gitlab.com *.mydomain.com #{Gitlab.config.gitlab.host}])
       stub_asset_proxy_setting(domain_regexp: Banzai::Filter::AssetProxyFilter.compile_allowlist(Gitlab.config.asset_proxy.allowlist))
     end
 
diff --git a/spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb b/spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb
index ae01939605ef900fd23a6d1dd120ac1bef230a6d..3ed4a70d160924cac9d2dfe635a805cac5ab0470 100644
--- a/spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb
+++ b/spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb
@@ -85,7 +85,7 @@
 
       where(:markdown, :expected) do
         %q![foo](/bar\@ "\@title")! | %q(<a href="/bar@" title="@title">foo</a>)
-        %![foo]\n\n[foo]: /bar\\@ "\\@title"! | %q(<a href="/bar@" title="@title">foo</a>)
+        %([foo]\n\n[foo]: /bar\\@ "\\@title") | %q(<a href="/bar@" title="@title">foo</a>)
       end
 
       with_them do
diff --git a/spec/lib/banzai/reference_parser/base_parser_spec.rb b/spec/lib/banzai/reference_parser/base_parser_spec.rb
index bc7a93a7cde89a0d3bfe532e6a354794c22819c1..b55ee01ccebf065124dfec8ca7a070eac00b70e8 100644
--- a/spec/lib/banzai/reference_parser/base_parser_spec.rb
+++ b/spec/lib/banzai/reference_parser/base_parser_spec.rb
@@ -116,7 +116,7 @@ def self.reference_class
           links = Nokogiri::HTML.fragment("<a data-foo='1'></a><a data-foo='2'></a>").children
 
           expect(subject).not_to receive(:references_relation)
-          expect(subject.referenced_by(links, ids_only: true)).to eq(%w(1 2))
+          expect(subject.referenced_by(links, ids_only: true)).to eq(%w[1 2])
         end
 
         context 'and the html fragment does not contain any attributes' do
diff --git a/spec/lib/banzai/reference_parser/issue_parser_spec.rb b/spec/lib/banzai/reference_parser/issue_parser_spec.rb
index 072df6a23aac4e9061ce7fbb76208c0999174f95..e1abb9082f3cc36ad3b710aa75c0231b9bc6fec0 100644
--- a/spec/lib/banzai/reference_parser/issue_parser_spec.rb
+++ b/spec/lib/banzai/reference_parser/issue_parser_spec.rb
@@ -136,7 +136,7 @@
     end
 
     def issue_link(issue)
-      Nokogiri::HTML.fragment(%{<a data-issue="#{issue.id}"></a>}).children[0]
+      Nokogiri::HTML.fragment(%(<a data-issue="#{issue.id}"></a>)).children[0]
     end
 
     before do
diff --git a/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb b/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb
index bab535b67bfd8db2b00cf59d232ce9c72885022e..b9340812676bff1a6a7c8f6a14efd7007117822d 100644
--- a/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb
+++ b/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb
@@ -61,7 +61,7 @@
     end
 
     def merge_request_link(merge_request)
-      Nokogiri::HTML.fragment(%{<a data-project="#{merge_request.project_id}" data-merge-request="#{merge_request.id}"></a>}).children[0]
+      Nokogiri::HTML.fragment(%(<a data-project="#{merge_request.project_id}" data-merge-request="#{merge_request.id}"></a>)).children[0]
     end
 
     before do
diff --git a/spec/lib/bitbucket/collection_spec.rb b/spec/lib/bitbucket/collection_spec.rb
index 715b78c95eb2d27c5cb63c6095af731a8a19496d..9e3848591497c7813b5136022cb94c593589ee67 100644
--- a/spec/lib/bitbucket/collection_spec.rb
+++ b/spec/lib/bitbucket/collection_spec.rb
@@ -21,6 +21,6 @@ def items
   it "iterates paginator" do
     collection = described_class.new(TestPaginator.new)
 
-    expect(collection.to_a).to match(%w(result_1_page_1 result_2_page_1 result_1_page_2 result_2_page_2))
+    expect(collection.to_a).to match(%w[result_1_page_1 result_2_page_1 result_1_page_2 result_2_page_2])
   end
 end
diff --git a/spec/lib/bitbucket/representation/repo_spec.rb b/spec/lib/bitbucket/representation/repo_spec.rb
index b5b9f45f3d446975edfd0df42b84c5237058e7e1..ba5a3306d07c1ff2ae09b0d12521db28c74ec7af 100644
--- a/spec/lib/bitbucket/representation/repo_spec.rb
+++ b/spec/lib/bitbucket/representation/repo_spec.rb
@@ -31,7 +31,7 @@
   end
 
   describe '#owner_and_slug' do
-    it { expect(described_class.new({ 'full_name' => 'ben/test' }).owner_and_slug).to eq(%w(ben test)) }
+    it { expect(described_class.new({ 'full_name' => 'ben/test' }).owner_and_slug).to eq(%w[ben test]) }
   end
 
   describe '#owner' do
diff --git a/spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb b/spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb
index 43da0131dd225912fd67a5d2b593dffa5b6c6933..cc1f88d9613561dda1e19b175602c103138282ac 100644
--- a/spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb
+++ b/spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb
@@ -65,7 +65,7 @@
         expect(board).to be_present
         expect(board.project.id).to eq(project.id)
         expect(board.lists.count).to eq(3)
-        expect(board.lists.map(&:list_type).sort).to match_array(%w(backlog closed label))
+        expect(board.lists.map(&:list_type).sort).to match_array(%w[backlog closed label])
         expect(board.lists.find_by(list_type: "label").label.title).to eq("test")
       end
     end
@@ -90,7 +90,7 @@
         expect(board).to be_present
         expect(board.group.id).to eq(group.id)
         expect(board.lists.count).to eq(3)
-        expect(board.lists.map(&:list_type).sort).to match_array(%w(backlog closed label))
+        expect(board.lists.map(&:list_type).sort).to match_array(%w[backlog closed label])
         expect(board.lists.find_by(list_type: "label").label.title).to eq("test")
       end
     end
diff --git a/spec/lib/bulk_imports/common/transformers/prohibited_attributes_transformer_spec.rb b/spec/lib/bulk_imports/common/transformers/prohibited_attributes_transformer_spec.rb
index 08a82bc84edf79aa1b1e93afae10622f1a28c558..435c7d5d6e42cc352ec20fc57e1eb70baa0ed333 100644
--- a/spec/lib/bulk_imports/common/transformers/prohibited_attributes_transformer_spec.rb
+++ b/spec/lib/bulk_imports/common/transformers/prohibited_attributes_transformer_spec.rb
@@ -34,7 +34,7 @@
         'note_ids' => [1, 2, 3],
         'remote_attachment_url' => 'http://something.dodgy',
         'remote_attachment_request_header' => 'bad value',
-        'remote_attachment_urls' => %w(http://something.dodgy http://something.okay),
+        'remote_attachment_urls' => %w[http://something.dodgy http://something.okay],
         'attributes' => {
           'issue_ids' => [1, 2, 3],
           'merge_request_ids' => [1, 2, 3],