diff --git a/.rubocop.yml b/.rubocop.yml
index 5a42f393ed30c226299e48bc0e56e22523c8c182..2993c6f2aebb19065bf7a6edcc92832d94f472ff 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -463,6 +463,11 @@ Gitlab/DocumentationLinks/HardcodedUrl:
     - spec/**/*
     - tooling/**/*
 
+Gitlab/DocumentationLinks/Link:
+  Enabled: true
+  Exclude:
+    - '**/*.haml'
+
 GitlabSecurity/PublicSend:
   Enabled: true
   Exclude:
diff --git a/.rubocop_todo/gettext/static_identifier.yml b/.rubocop_todo/gettext/static_identifier.yml
index 7ba845d31184551b0a7c5fcfdccad6c4b438ba6a..a286043b61dae66210340afe4befe0b5514cb6aa 100644
--- a/.rubocop_todo/gettext/static_identifier.yml
+++ b/.rubocop_todo/gettext/static_identifier.yml
@@ -8,7 +8,6 @@ Gettext/StaticIdentifier:
     - 'app/services/security/ci_configuration/base_create_service.rb'
     - 'app/services/users/banned_user_base_service.rb'
     - 'ee/app/mailers/ee/emails/admin_notification.rb'
-    - 'ee/app/models/integrations/github.rb'
     - 'ee/app/services/ee/projects/create_from_template_service.rb'
     - 'ee/app/services/security/security_orchestration_policies/policy_configuration_validation_service.rb'
     - 'ee/app/services/timebox_report_service.rb'
diff --git a/.rubocop_todo/gitlab/avoid_gitlab_instance_checks.yml b/.rubocop_todo/gitlab/avoid_gitlab_instance_checks.yml
index e9a15e8e0a0b5901252fa0cfecab921a3d908540..7bfe34b04723d552e92d6431612d5b86d1683783 100644
--- a/.rubocop_todo/gitlab/avoid_gitlab_instance_checks.yml
+++ b/.rubocop_todo/gitlab/avoid_gitlab_instance_checks.yml
@@ -53,7 +53,6 @@ Gitlab/AvoidGitlabInstanceChecks:
     - 'ee/app/models/ee/member.rb'
     - 'ee/app/models/ee/namespace.rb'
     - 'ee/app/models/ee/plan.rb'
-    - 'ee/app/models/ee/preloaders/single_hierarchy_project_group_plans_preloader.rb'
     - 'ee/app/models/ee/project.rb'
     - 'ee/app/models/ee/project_statistics.rb'
     - 'ee/app/models/ee/user.rb'
diff --git a/.rubocop_todo/gitlab/documentation_links/link.yml b/.rubocop_todo/gitlab/documentation_links/link.yml
index aea9ca22fe9c55ba7556152b0d152aeef38f0d6a..8e812fd0b4c2887796c3e2b6c627f60e3e8c6534 100644
--- a/.rubocop_todo/gitlab/documentation_links/link.yml
+++ b/.rubocop_todo/gitlab/documentation_links/link.yml
@@ -2,7 +2,6 @@
 # Cop supports --autocorrect.
 Gitlab/DocumentationLinks/Link:
   Exclude:
-    - '**/*.haml'
     - 'app/helpers/releases_helper.rb'
     - 'app/presenters/commit_status_presenter.rb'
     - 'app/presenters/key_presenter.rb'
diff --git a/.rubocop_todo/gitlab/feature_flag_without_actor.yml b/.rubocop_todo/gitlab/feature_flag_without_actor.yml
index 16ab8c7e0881c31967eed308a33ebe50257119bd..e1b1478596a7b3a66bb4b818a024ccf201773271 100644
--- a/.rubocop_todo/gitlab/feature_flag_without_actor.yml
+++ b/.rubocop_todo/gitlab/feature_flag_without_actor.yml
@@ -7,7 +7,6 @@ Gitlab/FeatureFlagWithoutActor:
     - 'app/controllers/concerns/request_payload_logger.rb'
     - 'app/controllers/explore/projects_controller.rb'
     - 'app/controllers/groups_controller.rb'
-    - 'app/controllers/omniauth_callbacks_controller.rb'
     - 'app/controllers/projects/settings/integrations_controller.rb'
     - 'app/controllers/repositories/git_http_controller.rb'
     - 'app/controllers/search_controller.rb'
@@ -55,12 +54,7 @@ Gitlab/FeatureFlagWithoutActor:
     - 'app/views/explore/projects/_projects.html.haml'
     - 'app/views/layouts/notify.html.haml'
     - 'app/views/layouts/service_desk.html.haml'
-    - 'app/views/profiles/two_factor_auths/show.html.haml'
-    - 'app/views/shared/integrations/_tabs.html.haml'
-    - 'app/views/shared/integrations/gitlab_slack_application/_help.html.haml'
-    - 'app/views/shared/integrations/overrides.html.haml'
     - 'app/views/shared/issuable/_search_bar.html.haml'
-    - 'app/views/user_settings/ssh_keys/_key.html.haml'
     - 'app/workers/background_migration/single_database_worker.rb'
     - 'app/workers/bulk_imports/pipeline_batch_worker.rb'
     - 'app/workers/bulk_imports/pipeline_worker.rb'
@@ -100,8 +94,9 @@ Gitlab/FeatureFlagWithoutActor:
     - 'ee/app/views/admin/application_settings/_ee_package_registry.haml'
     - 'ee/app/views/admin/application_settings/_elasticsearch_form.html.haml'
     - 'ee/app/views/admin/application_settings/_git_two_factor_session_expiry.html.haml'
-    - 'ee/app/views/admin/application_settings/security_and_compliance.html.haml'
     - 'ee/app/views/admin/geo/shared/_replication_nav.haml'
+    - 'ee/app/views/groups/contribution_analytics/show.html.haml'
+    - 'ee/app/views/notify/okr_checkin_reminder_notification.html.haml'
     - 'ee/app/views/projects/on_demand_scans/index.html.haml'
     - 'ee/app/views/projects/settings/merge_requests/_merge_trains_settings.html.haml'
     - 'ee/lib/api/code_suggestions.rb'
@@ -133,7 +128,6 @@ Gitlab/FeatureFlagWithoutActor:
     - 'lib/banzai/filter/references/user_reference_filter.rb'
     - 'lib/feature/definition.rb'
     - 'lib/feature/gitaly.rb'
-    - 'lib/gitlab/auth/two_factor_auth_verifier.rb'
     - 'lib/gitlab/ci/pipeline/chain/command.rb'
     - 'lib/gitlab/ci/queue/metrics.rb'
     - 'lib/gitlab/database/background_migration/batch_optimizer.rb'
diff --git a/.rubocop_todo/layout/class_structure.yml b/.rubocop_todo/layout/class_structure.yml
index db8514e295405a48565af20df7f446d73d5f8f48..fe9388057bb29f4d670f2efff0f44c5f5882bcd0 100644
--- a/.rubocop_todo/layout/class_structure.yml
+++ b/.rubocop_todo/layout/class_structure.yml
@@ -72,16 +72,12 @@ Layout/ClassStructure:
     - 'app/models/integrations/external_wiki.rb'
     - 'app/models/integrations/gitlab_slack_application.rb'
     - 'app/models/integrations/hangouts_chat.rb'
-    - 'app/models/integrations/harbor.rb'
     - 'app/models/integrations/jenkins.rb'
     - 'app/models/integrations/jira.rb'
     - 'app/models/integrations/mattermost.rb'
     - 'app/models/integrations/microsoft_teams.rb'
-    - 'app/models/integrations/phorge.rb'
     - 'app/models/integrations/pipelines_email.rb'
     - 'app/models/integrations/prometheus.rb'
-    - 'app/models/integrations/pumble.rb'
-    - 'app/models/integrations/teamcity.rb'
     - 'app/models/integrations/zentao.rb'
     - 'app/models/issue.rb'
     - 'app/models/jira_connect/public_key.rb'
diff --git a/.rubocop_todo/layout/empty_line_after_magic_comment.yml b/.rubocop_todo/layout/empty_line_after_magic_comment.yml
index aff118f96ecb9b53a66eaebc1f0283bbbd6de3f6..1673d19d68c4ae3f2f4e2770666d54d73da5e659 100644
--- a/.rubocop_todo/layout/empty_line_after_magic_comment.yml
+++ b/.rubocop_todo/layout/empty_line_after_magic_comment.yml
@@ -34,7 +34,6 @@ Layout/EmptyLineAfterMagicComment:
     - 'app/models/concerns/enums/ci/commit_status.rb'
     - 'app/models/dependency_proxy.rb'
     - 'app/models/draft_note.rb'
-    - 'app/models/integrations/harbor.rb'
     - 'app/models/ml.rb'
     - 'app/models/namespace/traversal_hierarchy.rb'
     - 'app/models/namespaces/traversal/linear.rb'
diff --git a/.rubocop_todo/layout/empty_lines_around_method_body.yml b/.rubocop_todo/layout/empty_lines_around_method_body.yml
new file mode 100644
index 0000000000000000000000000000000000000000..27b2ee6020895ffec43288998faaf8ecef8d987e
--- /dev/null
+++ b/.rubocop_todo/layout/empty_lines_around_method_body.yml
@@ -0,0 +1,34 @@
+---
+# Cop supports --autocorrect.
+Layout/EmptyLinesAroundMethodBody:
+  Details: grace period
+  Exclude:
+    - 'app/components/pajamas/toggle_component.rb'
+    - 'app/models/concerns/ci/contextable.rb'
+    - 'app/models/group.rb'
+    - 'app/models/repository.rb'
+    - 'app/services/members/destroy_service.rb'
+    - 'ee/app/models/software_license.rb'
+    - 'ee/lib/gitlab/elastic/helper.rb'
+    - 'ee/lib/remote_development/workspace_operations/reconcile/output/desired_config_generator.rb'
+    - 'ee/spec/support/helpers/identity_verification_helpers.rb'
+    - 'ee/spec/support/shared_contexts/remote_development/remote_development_shared_contexts.rb'
+    - 'lib/api/helpers/packages_helpers.rb'
+    - 'lib/gitlab/background_migration/batched_migration_job.rb'
+    - 'lib/gitlab/ci/project_config.rb'
+    - 'lib/gitlab/cross_project_access.rb'
+    - 'lib/gitlab/data_builder/push.rb'
+    - 'lib/gitlab/database/migrations/constraints_helpers.rb'
+    - 'lib/gitlab/database/partitioning/list/convert_table.rb'
+    - 'lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb'
+    - 'lib/gitlab/diff/file.rb'
+    - 'lib/gitlab/fp/settings/default_settings_parser.rb'
+    - 'lib/gitlab/git/repository.rb'
+    - 'lib/gitlab/gitaly_client/operation_service.rb'
+    - 'lib/gitlab/import/import_failure_service.rb'
+    - 'lib/gitlab/memory/upload_and_cleanup_reports.rb'
+    - 'spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb'
+    - 'spec/lib/gitlab/popen/runner_spec.rb'
+    - 'spec/support/helpers/workhorse_lfs_helpers.rb'
+    - 'spec/support/matchers/invoke_rop_steps.rb'
+    - 'tooling/lib/tooling/find_changes.rb'
diff --git a/.rubocop_todo/layout/line_continuation_spacing.yml b/.rubocop_todo/layout/line_continuation_spacing.yml
index fbc982a8a5db0f06143e28ce2ae9f32ff88fd5b6..27844e6da488d1779d8cf99ea395ed4a6bb2b07f 100644
--- a/.rubocop_todo/layout/line_continuation_spacing.yml
+++ b/.rubocop_todo/layout/line_continuation_spacing.yml
@@ -7,7 +7,6 @@ Layout/LineContinuationSpacing:
     - 'app/helpers/tags_helper.rb'
     - 'app/helpers/tree_helper.rb'
     - 'app/models/concerns/spammable.rb'
-    - 'app/models/integrations/teamcity.rb'
     - 'app/models/work_items/parent_link.rb'
     - 'app/services/feature_flags/update_service.rb'
     - 'app/services/issues/build_service.rb'
diff --git a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml
index 49660960b8a9c9db92655429b96e8d44a0b8a9fb..faad7d69ebde5269b1640ca72d3f6363ffdb288a 100644
--- a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml
+++ b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml
@@ -14,8 +14,6 @@ Layout/LineEndStringConcatenationIndentation:
     - 'app/models/integrations/gitlab_slack_application.rb'
     - 'app/models/integrations/hangouts_chat.rb'
     - 'app/models/integrations/jira.rb'
-    - 'app/models/integrations/pivotaltracker.rb'
-    - 'app/models/integrations/teamcity.rb'
     - 'app/models/work_items/parent_link.rb'
     - 'app/serializers/import/github_failure_entity.rb'
     - 'app/services/ci/components/fetch_service.rb'
@@ -531,7 +529,6 @@ Layout/LineEndStringConcatenationIndentation:
     - 'spec/models/integrations/chat_message/group_mention_message_spec.rb'
     - 'spec/models/integrations/chat_message/merge_message_spec.rb'
     - 'spec/models/integrations/gitlab_slack_application_spec.rb'
-    - 'spec/models/integrations/teamcity_spec.rb'
     - 'spec/models/issue_spec.rb'
     - 'spec/models/key_spec.rb'
     - 'spec/models/note_spec.rb'
diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml
index fe7b3e6d59160fe6484d6bcc685180951cc3864c..2c7f316e8e65c0c3d8f91c44d91ec20fb652e0d6 100644
--- a/.rubocop_todo/layout/line_length.yml
+++ b/.rubocop_todo/layout/line_length.yml
@@ -127,13 +127,10 @@ Layout/LineLength:
     - 'app/models/integrations/chat_message/wiki_page_message.rb'
     - 'app/models/integrations/datadog.rb'
     - 'app/models/integrations/drone_ci.rb'
-    - 'app/models/integrations/harbor.rb'
     - 'app/models/integrations/jenkins.rb'
     - 'app/models/integrations/microsoft_teams.rb'
     - 'app/models/integrations/pipelines_email.rb'
-    - 'app/models/integrations/pivotaltracker.rb'
     - 'app/models/integrations/prometheus.rb'
-    - 'app/models/integrations/teamcity.rb'
     - 'app/models/integrations/zentao.rb'
     - 'app/models/internal_id.rb'
     - 'app/models/issue.rb'
@@ -403,6 +400,7 @@ Layout/LineLength:
     - 'config/initializers/validate_database_config.rb'
     - 'config/initializers/validate_puma.rb'
     - 'config/initializers/zz_metrics.rb'
+    - 'config/puma.rb'
     - 'config/routes.rb'
     - 'config/routes/admin.rb'
     - 'config/routes/group.rb'
@@ -3626,7 +3624,6 @@ Layout/LineLength:
     - 'spec/requests/api/graphql/mutations/releases/delete_spec.rb'
     - 'spec/requests/api/graphql/mutations/releases/update_spec.rb'
     - 'spec/requests/api/graphql/mutations/snippets/create_spec.rb'
-    - 'spec/requests/api/graphql/mutations/work_items/delete_spec.rb'
     - 'spec/requests/api/graphql/namespace_query_spec.rb'
     - 'spec/requests/api/graphql/packages/package_spec.rb'
     - 'spec/requests/api/graphql/project/alert_management/alert/notes_spec.rb'
diff --git a/.rubocop_todo/layout/trailing_whitespace.yml b/.rubocop_todo/layout/trailing_whitespace.yml
new file mode 100644
index 0000000000000000000000000000000000000000..292c2c4ed321c0e328e7a9dfb53d602f1ba7e60a
--- /dev/null
+++ b/.rubocop_todo/layout/trailing_whitespace.yml
@@ -0,0 +1,6 @@
+---
+# Cop supports --autocorrect.
+Layout/TrailingWhitespace:
+  Details: grace period
+  Exclude:
+    - 'lib/gitlab/database_warnings.rb'
diff --git a/.rubocop_todo/lint/unused_method_argument.yml b/.rubocop_todo/lint/unused_method_argument.yml
index 6dfad4ebd8523a9bcef485a6be46f18945912e3a..b2b037494562b4d53ceaf2b1ca0db98522205986 100644
--- a/.rubocop_todo/lint/unused_method_argument.yml
+++ b/.rubocop_todo/lint/unused_method_argument.yml
@@ -105,11 +105,7 @@ Lint/UnusedMethodArgument:
     - 'app/models/group.rb'
     - 'app/models/integrations/buildkite.rb'
     - 'app/models/integrations/microsoft_teams.rb'
-    - 'app/models/integrations/mock_ci.rb'
-    - 'app/models/integrations/mock_monitoring.rb'
     - 'app/models/integrations/prometheus.rb'
-    - 'app/models/integrations/pumble.rb'
-    - 'app/models/integrations/teamcity.rb'
     - 'app/models/internal_id.rb'
     - 'app/models/issue.rb'
     - 'app/models/label_note.rb'
diff --git a/.rubocop_todo/lint/void.yml b/.rubocop_todo/lint/void.yml
new file mode 100644
index 0000000000000000000000000000000000000000..aff419582f9d9179ca220acd0524f9e4249aa4eb
--- /dev/null
+++ b/.rubocop_todo/lint/void.yml
@@ -0,0 +1,5 @@
+---
+# Cop supports --autocorrect.
+Lint/Void:
+  Exclude:
+    - 'config/initializers/database_config.rb'
diff --git a/.rubocop_todo/rails/date.yml b/.rubocop_todo/rails/date.yml
index 93757f8bbaf097f4cae6e84aca8368b134e87868..68657c2373a02e414067c563c6e5dc95140fb169 100644
--- a/.rubocop_todo/rails/date.yml
+++ b/.rubocop_todo/rails/date.yml
@@ -34,8 +34,6 @@ Rails/Date:
     - 'ee/app/presenters/subscription_presenter.rb'
     - 'ee/app/services/iterations/cadences/create_iterations_in_advance_service.rb'
     - 'ee/app/services/search/elastic/destroy_expired_subscription_service.rb'
-    - 'ee/app/views/groups/contribution_analytics/show.html.haml'
-    - 'ee/app/views/notify/okr_checkin_reminder_notification.html.haml'
     - 'ee/app/workers/okrs/checkin_reminder_emails_cron_worker.rb'
     - 'ee/db/fixtures/development/20_burndown.rb'
     - 'ee/lib/analytics/productivity_analytics_request_params.rb'
diff --git a/.rubocop_todo/rspec/be_eq.yml b/.rubocop_todo/rspec/be_eq.yml
index 6e769bb38f2f2ceed3109d35f0332f952fc38ffc..63fa38fba15c934d2de28283bc112fafe05ef67f 100644
--- a/.rubocop_todo/rspec/be_eq.yml
+++ b/.rubocop_todo/rspec/be_eq.yml
@@ -874,7 +874,6 @@ RSpec/BeEq:
     - 'spec/lib/gitlab/github_import/representation/note_text_spec.rb'
     - 'spec/lib/gitlab/github_import/representation/protected_branch_spec.rb'
     - 'spec/lib/gitlab/github_import/settings_spec.rb'
-    - 'spec/lib/gitlab/github_import/user_finder_spec.rb'
     - 'spec/lib/gitlab/global_id/deprecations_spec.rb'
     - 'spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb'
     - 'spec/lib/gitlab/graphql/pagination/externally_paginated_array_connection_spec.rb'
diff --git a/.rubocop_todo/rspec/before_all_role_assignment.yml b/.rubocop_todo/rspec/before_all_role_assignment.yml
index ea76db71af2c86c95b4709dcd2abd9840bed297c..d870cf3ab75e3ca2e959990610c1cd74ad20f1fb 100644
--- a/.rubocop_todo/rspec/before_all_role_assignment.yml
+++ b/.rubocop_todo/rspec/before_all_role_assignment.yml
@@ -1049,11 +1049,9 @@ RSpec/BeforeAllRoleAssignment:
     - 'spec/requests/api/graphql/mutations/groups/update_spec.rb'
     - 'spec/requests/api/graphql/mutations/incident_management/timeline_event_tag/create_spec.rb'
     - 'spec/requests/api/graphql/mutations/issues/create_spec.rb'
-    - 'spec/requests/api/graphql/mutations/issues/link_alerts_spec.rb'
     - 'spec/requests/api/graphql/mutations/issues/move_spec.rb'
     - 'spec/requests/api/graphql/mutations/issues/set_crm_contacts_spec.rb'
     - 'spec/requests/api/graphql/mutations/issues/set_locked_spec.rb'
-    - 'spec/requests/api/graphql/mutations/issues/update_spec.rb'
     - 'spec/requests/api/graphql/mutations/jira_import/import_users_spec.rb'
     - 'spec/requests/api/graphql/mutations/merge_requests/accept_spec.rb'
     - 'spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb'
diff --git a/.rubocop_todo/rspec/context_wording.yml b/.rubocop_todo/rspec/context_wording.yml
index f442491a32b565f2420dd47426635bd8008163a9..ffe455110b1d8045a115569ce0ab10c5c7323942 100644
--- a/.rubocop_todo/rspec/context_wording.yml
+++ b/.rubocop_todo/rspec/context_wording.yml
@@ -1542,7 +1542,6 @@ RSpec/ContextWording:
     - 'spec/lib/gitlab/cycle_analytics/permissions_spec.rb'
     - 'spec/lib/gitlab/daemon_spec.rb'
     - 'spec/lib/gitlab/data_builder/build_spec.rb'
-    - 'spec/lib/gitlab/data_builder/issuable_spec.rb'
     - 'spec/lib/gitlab/data_builder/pipeline_spec.rb'
     - 'spec/lib/gitlab/database/background_migration/batch_optimizer_spec.rb'
     - 'spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb'
@@ -1979,13 +1978,11 @@ RSpec/ContextWording:
     - 'spec/models/integrations/drone_ci_spec.rb'
     - 'spec/models/integrations/every_integration_spec.rb'
     - 'spec/models/integrations/external_wiki_spec.rb'
-    - 'spec/models/integrations/harbor_spec.rb'
     - 'spec/models/integrations/jenkins_spec.rb'
     - 'spec/models/integrations/jira_spec.rb'
     - 'spec/models/integrations/microsoft_teams_spec.rb'
     - 'spec/models/integrations/pipelines_email_spec.rb'
     - 'spec/models/integrations/prometheus_spec.rb'
-    - 'spec/models/integrations/teamcity_spec.rb'
     - 'spec/models/internal_id_spec.rb'
     - 'spec/models/issue/metrics_spec.rb'
     - 'spec/models/issue_assignee_spec.rb'
diff --git a/.rubocop_todo/rspec/example_without_description.yml b/.rubocop_todo/rspec/example_without_description.yml
index 6fe93933d1a08808e697553537c643e78850d758..69c376d2d74512bdab1574972dead495320d9173 100644
--- a/.rubocop_todo/rspec/example_without_description.yml
+++ b/.rubocop_todo/rspec/example_without_description.yml
@@ -430,7 +430,6 @@ RSpec/ExampleWithoutDescription:
     - 'spec/models/integration_spec.rb'
     - 'spec/models/integrations/drone_ci_spec.rb'
     - 'spec/models/integrations/jira_cloud_app_spec.rb'
-    - 'spec/models/integrations/teamcity_spec.rb'
     - 'spec/models/list_user_preference_spec.rb'
     - 'spec/models/members/members/member_approval_spec.rb'
     - 'spec/models/merge_request_diff_spec.rb'
diff --git a/.rubocop_todo/rspec/example_wording.yml b/.rubocop_todo/rspec/example_wording.yml
index b1afacfcba74f5cca00241adcc902d9012875a6a..e87933e9e03d4f3d9ad156fab5712a29c9546986 100644
--- a/.rubocop_todo/rspec/example_wording.yml
+++ b/.rubocop_todo/rspec/example_wording.yml
@@ -43,7 +43,6 @@ RSpec/ExampleWording:
     - 'spec/lib/gitlab/git/diff_spec.rb'
     - 'spec/models/concerns/issuable_spec.rb'
     - 'spec/models/deployment_spec.rb'
-    - 'spec/models/packages/maven/metadatum_spec.rb'
     - 'spec/models/packages/package_spec.rb'
     - 'spec/models/project_spec.rb'
     - 'spec/models/releases/link_spec.rb'
diff --git a/.rubocop_todo/rspec/feature_category.yml b/.rubocop_todo/rspec/feature_category.yml
index 58154511eb9f4302841252df13ae56ab75548859..d625f8f5de66e0413e37da4f279243af63eaa199 100644
--- a/.rubocop_todo/rspec/feature_category.yml
+++ b/.rubocop_todo/rspec/feature_category.yml
@@ -108,7 +108,6 @@ RSpec/FeatureCategory:
     - 'ee/spec/graphql/mutations/boards/epic_boards/update_spec.rb'
     - 'ee/spec/graphql/mutations/boards/epic_lists/create_spec.rb'
     - 'ee/spec/graphql/mutations/boards/epic_lists/update_spec.rb'
-    - 'ee/spec/graphql/mutations/boards/epics/create_spec.rb'
     - 'ee/spec/graphql/mutations/boards/lists/update_limit_metrics_spec.rb'
     - 'ee/spec/graphql/mutations/boards/update_epic_user_preferences_spec.rb'
     - 'ee/spec/graphql/mutations/boards/update_spec.rb'
@@ -994,7 +993,6 @@ RSpec/FeatureCategory:
     - 'ee/spec/services/boards/epic_lists/list_service_spec.rb'
     - 'ee/spec/services/boards/epic_lists/update_service_spec.rb'
     - 'ee/spec/services/boards/epic_user_preferences/update_service_spec.rb'
-    - 'ee/spec/services/boards/epics/create_service_spec.rb'
     - 'ee/spec/services/boards/epics/move_service_spec.rb'
     - 'ee/spec/services/boards/lists/update_service_spec.rb'
     - 'ee/spec/services/boards/update_service_spec.rb'
@@ -1013,7 +1011,6 @@ RSpec/FeatureCategory:
     - 'ee/spec/services/projects/restore_service_spec.rb'
     - 'ee/spec/services/projects/setup_ci_cd_spec.rb'
     - 'ee/spec/services/protected_environments/base_service_spec.rb'
-    - 'ee/spec/services/protected_environments/environment_dropdown_service_spec.rb'
     - 'ee/spec/services/protected_environments/search_service_spec.rb'
     - 'ee/spec/services/push_rules/create_or_update_service_spec.rb'
     - 'ee/spec/services/requirements_management/prepare_import_csv_service_spec.rb'
@@ -1217,7 +1214,6 @@ RSpec/FeatureCategory:
     - 'spec/controllers/projects/variables_controller_spec.rb'
     - 'spec/controllers/projects/web_ide_schemas_controller_spec.rb'
     - 'spec/controllers/projects/web_ide_terminals_controller_spec.rb'
-    - 'spec/controllers/root_controller_spec.rb'
     - 'spec/controllers/snippets/blobs_controller_spec.rb'
     - 'spec/controllers/snippets_controller_spec.rb'
     - 'spec/controllers/users/callouts_controller_spec.rb'
@@ -3314,7 +3310,6 @@ RSpec/FeatureCategory:
     - 'spec/models/integrations/chat_message/pipeline_message_spec.rb'
     - 'spec/models/integrations/chat_message/push_message_spec.rb'
     - 'spec/models/integrations/chat_message/wiki_page_message_spec.rb'
-    - 'spec/models/integrations/harbor_spec.rb'
     - 'spec/models/integrations/packagist_spec.rb'
     - 'spec/models/internal_id_spec.rb'
     - 'spec/models/issuable_severity_spec.rb'
@@ -3490,7 +3485,6 @@ RSpec/FeatureCategory:
     - 'spec/presenters/ci/stage_presenter_spec.rb'
     - 'spec/presenters/ci/trigger_presenter_spec.rb'
     - 'spec/presenters/ci/variable_presenter_spec.rb'
-    - 'spec/presenters/clusterable_presenter_spec.rb'
     - 'spec/presenters/clusters/cluster_presenter_spec.rb'
     - 'spec/presenters/commit_status_presenter_spec.rb'
     - 'spec/presenters/deploy_key_presenter_spec.rb'
@@ -3498,9 +3492,7 @@ RSpec/FeatureCategory:
     - 'spec/presenters/dev_ops_report/metric_presenter_spec.rb'
     - 'spec/presenters/event_presenter_spec.rb'
     - 'spec/presenters/gitlab/blame_presenter_spec.rb'
-    - 'spec/presenters/group_clusterable_presenter_spec.rb'
     - 'spec/presenters/group_member_presenter_spec.rb'
-    - 'spec/presenters/instance_clusterable_presenter_spec.rb'
     - 'spec/presenters/issue_presenter_spec.rb'
     - 'spec/presenters/key_presenter_spec.rb'
     - 'spec/presenters/label_presenter_spec.rb'
diff --git a/.rubocop_todo/rspec/named_subject.yml b/.rubocop_todo/rspec/named_subject.yml
index 858522ad77c6ce8b4ca5de1f0f241489a829cf31..f6526674d488779f129f0e16fe316fb6b85572bd 100644
--- a/.rubocop_todo/rspec/named_subject.yml
+++ b/.rubocop_todo/rspec/named_subject.yml
@@ -1034,7 +1034,6 @@ RSpec/NamedSubject:
     - 'ee/spec/support/shared_examples/controllers/analytics/cycle_analytics/shared_stage_shared_examples.rb'
     - 'ee/spec/tasks/gitlab/license_rake_spec.rb'
     - 'ee/spec/tasks/gitlab/seed/group_seed_rake_spec.rb'
-    - 'ee/spec/tasks/gitlab/spdx_rake_spec.rb'
     - 'ee/spec/validators/user_existence_validator_spec.rb'
     - 'ee/spec/validators/user_id_existence_validator_spec.rb'
     - 'ee/spec/workers/active_user_count_threshold_worker_spec.rb'
@@ -2474,10 +2473,7 @@ RSpec/NamedSubject:
     - 'spec/models/integrations/jenkins_spec.rb'
     - 'spec/models/integrations/matrix_spec.rb'
     - 'spec/models/integrations/pipelines_email_spec.rb'
-    - 'spec/models/integrations/pivotaltracker_spec.rb'
-    - 'spec/models/integrations/pushover_spec.rb'
     - 'spec/models/integrations/squash_tm_spec.rb'
-    - 'spec/models/integrations/teamcity_spec.rb'
     - 'spec/models/integrations/telegram_spec.rb'
     - 'spec/models/integrations/zentao_spec.rb'
     - 'spec/models/internal_id_spec.rb'
diff --git a/.rubocop_todo/style/endless_method.yml b/.rubocop_todo/style/endless_method.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2faa71df565145096e4bd945c2f3fcc1bdac7130
--- /dev/null
+++ b/.rubocop_todo/style/endless_method.yml
@@ -0,0 +1,31 @@
+---
+# Cop supports --autocorrect.
+Style/EndlessMethod:
+  Details: grace period
+  Exclude:
+    - 'app/models/concerns/enum_inheritance.rb'
+    - 'app/models/pages/project_settings.rb'
+    - 'ee/app/controllers/groups/security/compliance_dashboard/frameworks_controller.rb'
+    - 'ee/app/models/compliance_management/framework.rb'
+    - 'ee/app/services/compliance_management/frameworks/json_export_service.rb'
+    - 'ee/app/services/sbom/ingestion/vulnerability_data.rb'
+    - 'lib/backup/tasks/artifacts.rb'
+    - 'lib/backup/tasks/builds.rb'
+    - 'lib/backup/tasks/ci_secure_files.rb'
+    - 'lib/backup/tasks/database.rb'
+    - 'lib/backup/tasks/external_diffs.rb'
+    - 'lib/backup/tasks/lfs.rb'
+    - 'lib/backup/tasks/packages.rb'
+    - 'lib/backup/tasks/pages.rb'
+    - 'lib/backup/tasks/registry.rb'
+    - 'lib/backup/tasks/repositories.rb'
+    - 'lib/backup/tasks/task.rb'
+    - 'lib/backup/tasks/terraform_state.rb'
+    - 'lib/backup/tasks/uploads.rb'
+    - 'lib/gitlab/pages/deployment_validations.rb'
+    - 'lib/gitlab/repositories/design_management_repository.rb'
+    - 'lib/gitlab/repositories/project_repository.rb'
+    - 'lib/gitlab/repositories/repo_type.rb'
+    - 'lib/gitlab/repositories/snippet_repository.rb'
+    - 'lib/gitlab/repositories/wiki_repository.rb'
+    - 'lib/gitlab/usage_data.rb'
diff --git a/.rubocop_todo/style/if_unless_modifier.yml b/.rubocop_todo/style/if_unless_modifier.yml
index 5130634da88b0aec20a264d0b8dc7838fe6ee12a..5325616076a4292a5bf206c2ac838f1d327c3fa0 100644
--- a/.rubocop_todo/style/if_unless_modifier.yml
+++ b/.rubocop_todo/style/if_unless_modifier.yml
@@ -300,7 +300,6 @@ Style/IfUnlessModifier:
     - 'ee/app/services/ee/projects/create_service.rb'
     - 'ee/app/services/ee/projects/destroy_service.rb'
     - 'ee/app/services/ee/protected_branches/create_service.rb'
-    - 'ee/app/services/ee/todo_service.rb'
     - 'ee/app/services/ee/users/update_service.rb'
     - 'ee/app/services/epics/create_service.rb'
     - 'ee/app/services/epics/epic_links/update_service.rb'
@@ -511,7 +510,6 @@ Style/IfUnlessModifier:
     - 'lib/gitlab/ci/pipeline/chain/validate/repository.rb'
     - 'lib/gitlab/ci/pipeline/expression/lexeme/base.rb'
     - 'lib/gitlab/ci/pipeline/expression/lexer.rb'
-    - 'lib/gitlab/ci/pipeline/seed/build.rb'
     - 'lib/gitlab/ci/reports/security/finding.rb'
     - 'lib/gitlab/ci/runner/backoff.rb'
     - 'lib/gitlab/ci/runner_instructions.rb'
diff --git a/.rubocop_todo/style/inline_disable_annotation.yml b/.rubocop_todo/style/inline_disable_annotation.yml
index 3378f6472990d5173a2b8f351cda1d4152229762..3e924882055982147a854e7b7c52a27c37e388c6 100644
--- a/.rubocop_todo/style/inline_disable_annotation.yml
+++ b/.rubocop_todo/style/inline_disable_annotation.yml
@@ -1676,7 +1676,6 @@ Style/InlineDisableAnnotation:
     - 'lib/api/deploy_keys.rb'
     - 'lib/api/discussions.rb'
     - 'lib/api/entities/basic_project_details.rb'
-    - 'lib/api/entities/ci/runner_details.rb'
     - 'lib/api/entities/feature.rb'
     - 'lib/api/entities/ml/mlflow/search_runs.rb'
     - 'lib/api/entities/project.rb'
diff --git a/.rubocop_todo/style/redundant_self.yml b/.rubocop_todo/style/redundant_self.yml
index c2ecd263cf7db66297c7b15ef32ac24edef5ef13..3e021bcccdaae85644ff1617d3f6a25a67011731 100644
--- a/.rubocop_todo/style/redundant_self.yml
+++ b/.rubocop_todo/style/redundant_self.yml
@@ -83,7 +83,6 @@ Style/RedundantSelf:
     - 'app/models/label.rb'
     - 'app/models/legacy_diff_note.rb'
     - 'app/models/lfs_object.rb'
-    - 'app/models/lfs_objects_project.rb'
     - 'app/models/member.rb'
     - 'app/models/members/project_member.rb'
     - 'app/models/merge_request.rb'
diff --git a/.rubocop_todo/style/string_concatenation.yml b/.rubocop_todo/style/string_concatenation.yml
index 78c78aaa7e33c02cecbd0289c09fe154ec7908aa..7d406b4555f9e00e557c9982ba486b8a49327b52 100644
--- a/.rubocop_todo/style/string_concatenation.yml
+++ b/.rubocop_todo/style/string_concatenation.yml
@@ -9,7 +9,6 @@ Style/StringConcatenation:
     - 'app/models/concerns/routable.rb'
     - 'app/models/integrations/chat_message/merge_message.rb'
     - 'app/models/integrations/chat_message/note_message.rb'
-    - 'app/models/integrations/mock_monitoring.rb'
     - 'app/models/namespace.rb'
     - 'app/models/packages/go/module_version.rb'
     - 'app/models/pool_repository.rb'
diff --git a/.rubocop_todo/style/super_arguments.yml b/.rubocop_todo/style/super_arguments.yml
index 0510904b172e8884ecb7758e48ff017eaf8c43c0..3b8654bb4f3562f5c2a1d16ddb0bf751e59d7ba9 100644
--- a/.rubocop_todo/style/super_arguments.yml
+++ b/.rubocop_todo/style/super_arguments.yml
@@ -1,6 +1,7 @@
 ---
 # Cop supports --autocorrect.
 Style/SuperArguments:
+  Details: grace period
   Exclude:
     - 'app/finders/merge_requests_finder.rb'
     - 'app/finders/packages/composer/packages_finder.rb'
@@ -22,9 +23,12 @@ Style/SuperArguments:
     - 'app/graphql/types/base_field.rb'
     - 'app/helpers/lazy_image_tag_helper.rb'
     - 'app/models/application_setting_implementation.rb'
+    - 'app/models/audit_event.rb'
     - 'app/models/ci/build.rb'
     - 'app/models/ci/commit_with_pipeline.rb'
+    - 'app/models/concerns/audit_events/common_model.rb'
     - 'app/models/concerns/ci/taggable.rb'
+    - 'app/models/concerns/cross_database_modification.rb'
     - 'app/models/concerns/gitlab/sensitive_serializable_hash.rb'
     - 'app/models/concerns/reportable_changes.rb'
     - 'app/models/concerns/time_trackable.rb'
@@ -33,10 +37,14 @@ Style/SuperArguments:
     - 'app/models/integrations/matrix.rb'
     - 'app/models/integrations/microsoft_teams.rb'
     - 'app/models/integrations/telegram.rb'
+    - 'app/models/issue.rb'
+    - 'app/models/label.rb'
+    - 'app/models/list.rb'
     - 'app/models/ml/model_version.rb'
     - 'app/models/namespaces/traversal/linear.rb'
     - 'app/models/pages_domain.rb'
     - 'app/models/project.rb'
+    - 'app/models/project_feature.rb'
     - 'app/models/remote_mirror.rb'
     - 'app/models/user.rb'
     - 'app/models/user_preference.rb'
@@ -80,6 +88,7 @@ Style/SuperArguments:
     - 'ee/app/graphql/ee/resolvers/projects_resolver.rb'
     - 'ee/app/graphql/resolvers/epics_resolver.rb'
     - 'ee/app/helpers/ee/issuables_helper.rb'
+    - 'ee/app/helpers/ee/users_helper.rb'
     - 'ee/app/models/ee/group.rb'
     - 'ee/app/models/vulnerabilities/flag.rb'
     - 'ee/app/serializers/ee/issue_serializer.rb'
@@ -98,6 +107,9 @@ Style/SuperArguments:
     - 'ee/app/services/ee/merge_requests/update_service.rb'
     - 'ee/app/services/ee/notes/create_service.rb'
     - 'ee/app/services/ee/projects/container_repository/delete_tags_service.rb'
+    - 'ee/app/services/ee/protected_branches/create_service.rb'
+    - 'ee/app/services/ee/protected_branches/destroy_service.rb'
+    - 'ee/app/services/ee/users/destroy_service.rb'
     - 'ee/app/services/gitlab_subscriptions/user_add_on_assignments/base_create_service.rb'
     - 'ee/app/services/jira/requests/issues/list_service.rb'
     - 'ee/app/services/vulnerabilities/starboard_vulnerability_create_service.rb'
@@ -134,6 +146,7 @@ Style/SuperArguments:
     - 'lib/gitlab/analytics/cycle_analytics/request_params.rb'
     - 'lib/gitlab/asciidoc/html5_converter.rb'
     - 'lib/gitlab/bitbucket_server_import/importers/pull_request_notes/standalone_notes.rb'
+    - 'lib/gitlab/ci/config/entry/product/matrix.rb'
     - 'lib/gitlab/ci/tags/tag_list.rb'
     - 'lib/gitlab/config/entry/inheritable.rb'
     - 'lib/gitlab/config/entry/validatable.rb'
@@ -152,6 +165,8 @@ Style/SuperArguments:
     - 'lib/gitlab/diff/formatters/file_formatter.rb'
     - 'lib/gitlab/diff/formatters/image_formatter.rb'
     - 'lib/gitlab/diff/formatters/text_formatter.rb'
+    - 'lib/gitlab/diff/inline_diff_markdown_marker.rb'
+    - 'lib/gitlab/diff/inline_diff_marker.rb'
     - 'lib/gitlab/email/handler/create_issue_handler.rb'
     - 'lib/gitlab/email/handler/create_merge_request_handler.rb'
     - 'lib/gitlab/email/handler/create_note_on_issuable_handler.rb'
diff --git a/Gemfile b/Gemfile
index f7a51d3bce79c1a97acc2cf8e8bace38184d8a0b..a0df8f95441711ab1fd571834a0ae90391e458c6 100644
--- a/Gemfile
+++ b/Gemfile
@@ -14,7 +14,7 @@ end
 
 # Please see https://docs.gitlab.com/ee/development/feature_categorization/#gemfile
 ignore_feature_category = Module.new do
-  def gem(*arguments, feature_category: nil, **keyword_arguments) # rubocop:disable Lint/UnusedMethodArgument
+  def gem(*arguments, feature_category: nil, **keyword_arguments) # rubocop:disable Lint/UnusedMethodArgument -- Ignoring feature_category intentionally
     super(*arguments, **keyword_arguments)
   end
 end
@@ -522,7 +522,7 @@ group :development, :test do
   gem 'spring', '~> 4.1.0', feature_category: :shared
   gem 'spring-commands-rspec', '~> 1.0.4', feature_category: :shared
 
-  gem 'gitlab-styles', '~> 13.0.2', feature_category: :tooling
+  gem 'gitlab-styles', '~> 13.1.0', feature_category: :tooling, require: false
   gem 'haml_lint', '~> 0.58', feature_category: :tooling
 
   # Benchmarking & profiling
diff --git a/Gemfile.checksum b/Gemfile.checksum
index d44710a2f3c1dd9742ded03f2024457d015196eb..d5489dd6ac7187bfdda953e18b7be454a9c7fd71 100644
--- a/Gemfile.checksum
+++ b/Gemfile.checksum
@@ -240,7 +240,7 @@
 {"name":"gitlab-sdk","version":"0.3.1","platform":"ruby","checksum":"48ba49084f4ab92df7c7ef9f347020d9dfdf6ed9c1e782b67264e98ffe6ea710"},
 {"name":"gitlab-secret_detection","version":"0.18.0","platform":"ruby","checksum":"c143c22c8a70898b11141dd530fc740725835c54a5cd01117c1ecfefab798ae6"},
 {"name":"gitlab-security_report_schemas","version":"0.1.2.min15.0.0.max15.2.1","platform":"ruby","checksum":"300037487ec9d51a814f648514ff521cb82b94fc51d9fe53389175b36ac680ae"},
-{"name":"gitlab-styles","version":"13.0.2","platform":"ruby","checksum":"e662b9334643763b55a861f9e26091096547f98179bd89b0fa8d6c6fb8cec861"},
+{"name":"gitlab-styles","version":"13.1.0","platform":"ruby","checksum":"46c7c5729616355868b7b40a4ffcd052b36346076042abe8cafaee1688cbf2c1"},
 {"name":"gitlab_chronic_duration","version":"0.12.0","platform":"ruby","checksum":"0d766944d415b5c831f176871ee8625783fc0c5bfbef2d79a3a616f207ffc16d"},
 {"name":"gitlab_omniauth-ldap","version":"2.2.0","platform":"ruby","checksum":"bb4d20acb3b123ed654a8f6a47d3fac673ece7ed0b6992edb92dca14bad2838c"},
 {"name":"gitlab_quality-test_tooling","version":"2.4.0","platform":"ruby","checksum":"2e4c12528b05253f1b9c9cef49f4f545d4aab94bf28ca337611c795b2cfb36a0"},
@@ -592,7 +592,7 @@
 {"name":"redis-namespace","version":"1.11.0","platform":"ruby","checksum":"e91a1aa2b2d888b6dea1d4ab8d39e1ae6fac3426161feb9d91dd5cca598a2239"},
 {"name":"redis-rack","version":"3.0.0","platform":"ruby","checksum":"abb50b82ae10ad4d11ca2e4901bfc2b98256cdafbbd95f80c86fc9e001478380"},
 {"name":"redis-store","version":"1.11.0","platform":"ruby","checksum":"edc4f3e239dcd1fdd9905584e6b1e623a84618e14436e6e8a07c70891008eda4"},
-{"name":"regexp_parser","version":"2.6.0","platform":"ruby","checksum":"f163ba463a45ca2f2730e0902f2475bb0eefcd536dfc2f900a86d1e5a7d7a556"},
+{"name":"regexp_parser","version":"2.10.0","platform":"ruby","checksum":"cb6f0ddde88772cd64bff1dbbf68df66d376043fe2e66a9ef77fcb1b0c548c61"},
 {"name":"regexp_property_values","version":"1.0.0","platform":"java","checksum":"5e26782b01241616855c4ee7bb8a62fce9387e484f2d3eaf04f2a0633708222e"},
 {"name":"regexp_property_values","version":"1.0.0","platform":"ruby","checksum":"162499dc0bba1e66d334273a059f207a61981cc8cc69d2ca743594e7886d080f"},
 {"name":"representable","version":"3.2.0","platform":"ruby","checksum":"cc29bf7eebc31653586849371a43ffe36c60b54b0a6365b5f7d95ec34d1ebace"},
@@ -623,8 +623,8 @@
 {"name":"rspec-support","version":"3.13.1","platform":"ruby","checksum":"48877d4f15b772b7538f3693c22225f2eda490ba65a0515c4e7cf6f2f17de70f"},
 {"name":"rspec_junit_formatter","version":"0.6.0","platform":"ruby","checksum":"40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15"},
 {"name":"rspec_profiling","version":"0.0.9","platform":"ruby","checksum":"6199be2daeaa14bac3d10d704dbb0a8df052cf046332c505603263aea24f7590"},
-{"name":"rubocop","version":"1.68.0","platform":"ruby","checksum":"07df508504d81e97174e8d21030f25d52c1be7ee8615939db43f3b377ea6c12b"},
-{"name":"rubocop-ast","version":"1.32.3","platform":"ruby","checksum":"40201e861c73a3c2d59428c7627828ef81fb2f8a306bc4a1c1801452afe3fe0f"},
+{"name":"rubocop","version":"1.71.1","platform":"ruby","checksum":"d3dfd1e484a3a619dcf76c6a4fba694cd833921e4fd254d111845c26bcecfcfa"},
+{"name":"rubocop-ast","version":"1.38.0","platform":"ruby","checksum":"4fdf6792fe443a9a18acb12dbc8225d0d64cd1654e41fedb30e79c18edbb26ae"},
 {"name":"rubocop-capybara","version":"2.21.0","platform":"ruby","checksum":"5d264efdd8b6c7081a3d4889decf1451a1cfaaec204d81534e236bc825b280ab"},
 {"name":"rubocop-factory_bot","version":"2.26.1","platform":"ruby","checksum":"8de13cd4edcee5ca800f255188167ecef8dbfc3d1fae9f15734e9d2e755392aa"},
 {"name":"rubocop-graphql","version":"1.5.4","platform":"ruby","checksum":"2d888d40b08577daf1e74ca4623be1e3058c1a93543d5a7220818f561a254192"},
diff --git a/Gemfile.lock b/Gemfile.lock
index 77f78a9ec6e9ae515e4a19c4f9f75660c892a64c..ba674fb6d6d558e823991fe4eb7eb4f6ecda8ed6 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -782,8 +782,8 @@ GEM
     gitlab-security_report_schemas (0.1.2.min15.0.0.max15.2.1)
       activesupport (>= 6, < 8)
       json_schemer (~> 2.3.0)
-    gitlab-styles (13.0.2)
-      rubocop (~> 1.68.0)
+    gitlab-styles (13.1.0)
+      rubocop (= 1.71.1)
       rubocop-capybara (~> 2.21.0)
       rubocop-factory_bot (~> 2.26.1)
       rubocop-graphql (~> 1.5.4)
@@ -1579,7 +1579,7 @@ GEM
       redis-store (>= 1.2, < 2)
     redis-store (1.11.0)
       redis (>= 4, < 6)
-    regexp_parser (2.6.0)
+    regexp_parser (2.10.0)
     regexp_property_values (1.0.0)
     representable (3.2.0)
       declarative (< 0.1.0)
@@ -1651,17 +1651,17 @@ GEM
       activerecord
       get_process_mem
       rails
-    rubocop (1.68.0)
+    rubocop (1.71.1)
       json (~> 2.3)
       language_server-protocol (>= 3.17.0)
       parallel (~> 1.10)
       parser (>= 3.3.0.2)
       rainbow (>= 2.2.2, < 4.0)
-      regexp_parser (>= 2.4, < 3.0)
-      rubocop-ast (>= 1.32.2, < 2.0)
+      regexp_parser (>= 2.9.3, < 3.0)
+      rubocop-ast (>= 1.38.0, < 2.0)
       ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 2.4.0, < 3.0)
-    rubocop-ast (1.32.3)
+      unicode-display_width (>= 2.4.0, < 4.0)
+    rubocop-ast (1.38.0)
       parser (>= 3.3.1.0)
     rubocop-capybara (2.21.0)
       rubocop (~> 1.41)
@@ -2110,7 +2110,7 @@ DEPENDENCIES
   gitlab-secret_detection (< 1.0)
   gitlab-security_report_schemas (= 0.1.2.min15.0.0.max15.2.1)
   gitlab-sidekiq-fetcher!
-  gitlab-styles (~> 13.0.2)
+  gitlab-styles (~> 13.1.0)
   gitlab-topology-service-client (~> 0.1)!
   gitlab-utils!
   gitlab_chronic_duration (~> 0.12)
diff --git a/Gemfile.next.checksum b/Gemfile.next.checksum
index ca29c9d974264121c67e2801c99c068b559c9463..abdb16260bbd241742d1d2e7e5e86e03f2cfb5b5 100644
--- a/Gemfile.next.checksum
+++ b/Gemfile.next.checksum
@@ -240,7 +240,7 @@
 {"name":"gitlab-sdk","version":"0.3.1","platform":"ruby","checksum":"48ba49084f4ab92df7c7ef9f347020d9dfdf6ed9c1e782b67264e98ffe6ea710"},
 {"name":"gitlab-secret_detection","version":"0.18.0","platform":"ruby","checksum":"c143c22c8a70898b11141dd530fc740725835c54a5cd01117c1ecfefab798ae6"},
 {"name":"gitlab-security_report_schemas","version":"0.1.2.min15.0.0.max15.2.1","platform":"ruby","checksum":"300037487ec9d51a814f648514ff521cb82b94fc51d9fe53389175b36ac680ae"},
-{"name":"gitlab-styles","version":"13.0.2","platform":"ruby","checksum":"e662b9334643763b55a861f9e26091096547f98179bd89b0fa8d6c6fb8cec861"},
+{"name":"gitlab-styles","version":"13.1.0","platform":"ruby","checksum":"46c7c5729616355868b7b40a4ffcd052b36346076042abe8cafaee1688cbf2c1"},
 {"name":"gitlab_chronic_duration","version":"0.12.0","platform":"ruby","checksum":"0d766944d415b5c831f176871ee8625783fc0c5bfbef2d79a3a616f207ffc16d"},
 {"name":"gitlab_omniauth-ldap","version":"2.2.0","platform":"ruby","checksum":"bb4d20acb3b123ed654a8f6a47d3fac673ece7ed0b6992edb92dca14bad2838c"},
 {"name":"gitlab_quality-test_tooling","version":"2.4.0","platform":"ruby","checksum":"2e4c12528b05253f1b9c9cef49f4f545d4aab94bf28ca337611c795b2cfb36a0"},
@@ -601,7 +601,7 @@
 {"name":"redis-namespace","version":"1.11.0","platform":"ruby","checksum":"e91a1aa2b2d888b6dea1d4ab8d39e1ae6fac3426161feb9d91dd5cca598a2239"},
 {"name":"redis-rack","version":"3.0.0","platform":"ruby","checksum":"abb50b82ae10ad4d11ca2e4901bfc2b98256cdafbbd95f80c86fc9e001478380"},
 {"name":"redis-store","version":"1.11.0","platform":"ruby","checksum":"edc4f3e239dcd1fdd9905584e6b1e623a84618e14436e6e8a07c70891008eda4"},
-{"name":"regexp_parser","version":"2.6.0","platform":"ruby","checksum":"f163ba463a45ca2f2730e0902f2475bb0eefcd536dfc2f900a86d1e5a7d7a556"},
+{"name":"regexp_parser","version":"2.10.0","platform":"ruby","checksum":"cb6f0ddde88772cd64bff1dbbf68df66d376043fe2e66a9ef77fcb1b0c548c61"},
 {"name":"regexp_property_values","version":"1.0.0","platform":"java","checksum":"5e26782b01241616855c4ee7bb8a62fce9387e484f2d3eaf04f2a0633708222e"},
 {"name":"regexp_property_values","version":"1.0.0","platform":"ruby","checksum":"162499dc0bba1e66d334273a059f207a61981cc8cc69d2ca743594e7886d080f"},
 {"name":"reline","version":"0.6.0","platform":"ruby","checksum":"57620375dcbe56ec09bac7192bfb7460c716bbf0054dc94345ecaa5438e539d2"},
@@ -633,8 +633,8 @@
 {"name":"rspec-support","version":"3.13.1","platform":"ruby","checksum":"48877d4f15b772b7538f3693c22225f2eda490ba65a0515c4e7cf6f2f17de70f"},
 {"name":"rspec_junit_formatter","version":"0.6.0","platform":"ruby","checksum":"40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15"},
 {"name":"rspec_profiling","version":"0.0.9","platform":"ruby","checksum":"6199be2daeaa14bac3d10d704dbb0a8df052cf046332c505603263aea24f7590"},
-{"name":"rubocop","version":"1.68.0","platform":"ruby","checksum":"07df508504d81e97174e8d21030f25d52c1be7ee8615939db43f3b377ea6c12b"},
-{"name":"rubocop-ast","version":"1.32.3","platform":"ruby","checksum":"40201e861c73a3c2d59428c7627828ef81fb2f8a306bc4a1c1801452afe3fe0f"},
+{"name":"rubocop","version":"1.71.1","platform":"ruby","checksum":"d3dfd1e484a3a619dcf76c6a4fba694cd833921e4fd254d111845c26bcecfcfa"},
+{"name":"rubocop-ast","version":"1.38.0","platform":"ruby","checksum":"4fdf6792fe443a9a18acb12dbc8225d0d64cd1654e41fedb30e79c18edbb26ae"},
 {"name":"rubocop-capybara","version":"2.21.0","platform":"ruby","checksum":"5d264efdd8b6c7081a3d4889decf1451a1cfaaec204d81534e236bc825b280ab"},
 {"name":"rubocop-factory_bot","version":"2.26.1","platform":"ruby","checksum":"8de13cd4edcee5ca800f255188167ecef8dbfc3d1fae9f15734e9d2e755392aa"},
 {"name":"rubocop-graphql","version":"1.5.4","platform":"ruby","checksum":"2d888d40b08577daf1e74ca4623be1e3058c1a93543d5a7220818f561a254192"},
diff --git a/Gemfile.next.lock b/Gemfile.next.lock
index a4720ca1df8a29c8d4735c1a2fd0c4fa366a0ff7..875229b5e7aa1c2a759621e545de17915253c247 100644
--- a/Gemfile.next.lock
+++ b/Gemfile.next.lock
@@ -794,8 +794,8 @@ GEM
     gitlab-security_report_schemas (0.1.2.min15.0.0.max15.2.1)
       activesupport (>= 6, < 8)
       json_schemer (~> 2.3.0)
-    gitlab-styles (13.0.2)
-      rubocop (~> 1.68.0)
+    gitlab-styles (13.1.0)
+      rubocop (= 1.71.1)
       rubocop-capybara (~> 2.21.0)
       rubocop-factory_bot (~> 2.26.1)
       rubocop-graphql (~> 1.5.4)
@@ -1609,7 +1609,7 @@ GEM
       redis-store (>= 1.2, < 2)
     redis-store (1.11.0)
       redis (>= 4, < 6)
-    regexp_parser (2.6.0)
+    regexp_parser (2.10.0)
     regexp_property_values (1.0.0)
     reline (0.6.0)
       io-console (~> 0.5)
@@ -1683,17 +1683,17 @@ GEM
       activerecord
       get_process_mem
       rails
-    rubocop (1.68.0)
+    rubocop (1.71.1)
       json (~> 2.3)
       language_server-protocol (>= 3.17.0)
       parallel (~> 1.10)
       parser (>= 3.3.0.2)
       rainbow (>= 2.2.2, < 4.0)
-      regexp_parser (>= 2.4, < 3.0)
-      rubocop-ast (>= 1.32.2, < 2.0)
+      regexp_parser (>= 2.9.3, < 3.0)
+      rubocop-ast (>= 1.38.0, < 2.0)
       ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 2.4.0, < 3.0)
-    rubocop-ast (1.32.3)
+      unicode-display_width (>= 2.4.0, < 4.0)
+    rubocop-ast (1.38.0)
       parser (>= 3.3.1.0)
     rubocop-capybara (2.21.0)
       rubocop (~> 1.41)
@@ -2145,7 +2145,7 @@ DEPENDENCIES
   gitlab-secret_detection (< 1.0)
   gitlab-security_report_schemas (= 0.1.2.min15.0.0.max15.2.1)
   gitlab-sidekiq-fetcher!
-  gitlab-styles (~> 13.0.2)
+  gitlab-styles (~> 13.1.0)
   gitlab-topology-service-client (~> 0.1)!
   gitlab-utils!
   gitlab_chronic_duration (~> 0.12)
diff --git a/ee/app/views/groups/contribution_analytics/show.html.haml b/ee/app/views/groups/contribution_analytics/show.html.haml
index d682205d6cc61ca6b56ef07206f45bb5aec1dabb..65d885cafc14c46c182725051bc8b3413a1cd776 100644
--- a/ee/app/views/groups/contribution_analytics/show.html.haml
+++ b/ee/app/views/groups/contribution_analytics/show.html.haml
@@ -21,7 +21,7 @@
   data: {
     full_path: @group.full_path,
     start_date: @start_date.to_date.iso8601,
-    end_date: Date.today.iso8601,
+    end_date: Time.zone.today.iso8601,
     data_source_clickhouse: @data_source_clickhouse.to_s
   }
 }
diff --git a/ee/app/views/notify/okr_checkin_reminder_notification.html.haml b/ee/app/views/notify/okr_checkin_reminder_notification.html.haml
index d18f2812378a0b2b8d413fc66e7979345faa3cca..347f8b9de86cd39d13407f130676357f211c9b47 100644
--- a/ee/app/views/notify/okr_checkin_reminder_notification.html.haml
+++ b/ee/app/views/notify/okr_checkin_reminder_notification.html.haml
@@ -5,7 +5,7 @@
   %p
     = assignees_label(@work_item)
 %p
-  = sprintf(s_('OKRs|An update is due on: %{update_due_date}'), { update_due_date: Date.today.to_fs(:medium) }).html_safe
+  = sprintf(s_('OKRs|An update is due on: %{update_due_date}'), { update_due_date: Time.zone.today.to_fs(:medium) }).html_safe
 
 - if @work_item.description
   .md
diff --git a/spec/rubocop/support_workaround.rb b/spec/rubocop/support_workaround.rb
index d0a799dcddbd44def1361d4611cc45979448cf36..e1fd4053a835ce9640cdc559432650cf144c9990 100644
--- a/spec/rubocop/support_workaround.rb
+++ b/spec/rubocop/support_workaround.rb
@@ -6,7 +6,6 @@
 # All helpers are only included in rubocop specs (type: :rubocop/:rubocop_rspec).
 
 require 'rubocop/rspec/cop_helper'
-require 'rubocop/rspec/host_environment_simulation_helper'
 require 'rubocop/rspec/shared_contexts'
 require 'rubocop/rspec/expect_offense'
 require 'rubocop/rspec/parallel_formatter'
@@ -14,8 +13,6 @@
 RSpec.configure do |config|
   config.include CopHelper, type: :rubocop
   config.include CopHelper, type: :rubocop_rspec
-  config.include HostEnvironmentSimulatorHelper, type: :rubocop
-  config.include HostEnvironmentSimulatorHelper, type: :rubocop_rspec
   config.include_context 'config', :config
   config.include_context 'isolated environment', :isolated_environment
   config.include_context 'maintain registry', :restore_registry