Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '.rubocop_todo/rails')
-rw-r--r--.rubocop_todo/rails/active_record_callbacks_order.yml28
-rw-r--r--.rubocop_todo/rails/application_controller.yml13
-rw-r--r--.rubocop_todo/rails/content_tag.yml63
-rw-r--r--.rubocop_todo/rails/create_table_with_timestamps.yml69
-rw-r--r--.rubocop_todo/rails/file_path.yml145
-rw-r--r--.rubocop_todo/rails/has_many_or_has_one_dependent.yml154
-rw-r--r--.rubocop_todo/rails/helper_instance_variable.yml85
-rw-r--r--.rubocop_todo/rails/index_with.yml52
-rw-r--r--.rubocop_todo/rails/inverse_of.yml115
-rw-r--r--.rubocop_todo/rails/lexically_scoped_action_filter.yml48
-rw-r--r--.rubocop_todo/rails/mailer_name.yml5
-rw-r--r--.rubocop_todo/rails/negate_include.yml58
-rw-r--r--.rubocop_todo/rails/pick.yml43
-rw-r--r--.rubocop_todo/rails/pluck.yml109
-rw-r--r--.rubocop_todo/rails/rake_environment.yml25
-rw-r--r--.rubocop_todo/rails/redundant_foreign_key.yml66
-rw-r--r--.rubocop_todo/rails/skips_model_validations.yml748
-rw-r--r--.rubocop_todo/rails/squished_sql_heredocs.yml217
-rw-r--r--.rubocop_todo/rails/time_zone.yml2
-rw-r--r--.rubocop_todo/rails/where_exists.yml45
20 files changed, 2088 insertions, 2 deletions
diff --git a/.rubocop_todo/rails/active_record_callbacks_order.yml b/.rubocop_todo/rails/active_record_callbacks_order.yml
new file mode 100644
index 00000000000..9585a720c6a
--- /dev/null
+++ b/.rubocop_todo/rails/active_record_callbacks_order.yml
@@ -0,0 +1,28 @@
+---
+# Cop supports --auto-correct.
+Rails/ActiveRecordCallbacksOrder:
+ # Offense count: 30
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/models/award_emoji.rb'
+ - 'app/models/ci/job_artifact.rb'
+ - 'app/models/gpg_key.rb'
+ - 'app/models/group.rb'
+ - 'app/models/issue.rb'
+ - 'app/models/key.rb'
+ - 'app/models/merge_request.rb'
+ - 'app/models/namespace.rb'
+ - 'app/models/namespace_statistics.rb'
+ - 'app/models/note.rb'
+ - 'app/models/pages_domain.rb'
+ - 'app/models/personal_access_token.rb'
+ - 'app/models/project.rb'
+ - 'app/models/prometheus_alert.rb'
+ - 'app/models/remote_mirror.rb'
+ - 'app/models/resource_label_event.rb'
+ - 'app/models/snippet_statistics.rb'
+ - 'app/models/upload.rb'
+ - 'app/models/user.rb'
+ - 'ee/app/models/dast_site_profile.rb'
+ - 'ee/app/models/geo_node.rb'
diff --git a/.rubocop_todo/rails/application_controller.yml b/.rubocop_todo/rails/application_controller.yml
new file mode 100644
index 00000000000..d53fd3411d3
--- /dev/null
+++ b/.rubocop_todo/rails/application_controller.yml
@@ -0,0 +1,13 @@
+---
+# Cop supports --auto-correct.
+Rails/ApplicationController:
+ Exclude:
+ - 'app/controllers/acme_challenges_controller.rb'
+ - 'app/controllers/chaos_controller.rb'
+ - 'app/controllers/health_controller.rb'
+ - 'app/controllers/metrics_controller.rb'
+ - 'ee/app/controllers/oauth/geo_auth_controller.rb'
+ - 'ee/spec/helpers/ee/integrations_helper_spec.rb'
+ - 'lib/gitlab/base_doorkeeper_controller.rb'
+ - 'lib/gitlab/request_forgery_protection.rb'
+ - 'spec/controllers/concerns/continue_params_spec.rb'
diff --git a/.rubocop_todo/rails/content_tag.yml b/.rubocop_todo/rails/content_tag.yml
new file mode 100644
index 00000000000..33f6dd36008
--- /dev/null
+++ b/.rubocop_todo/rails/content_tag.yml
@@ -0,0 +1,63 @@
+---
+# Cop supports --auto-correct.
+Rails/ContentTag:
+ # Offense count: 163
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/controllers/concerns/wiki_actions.rb'
+ - 'app/helpers/appearances_helper.rb'
+ - 'app/helpers/application_helper.rb'
+ - 'app/helpers/avatars_helper.rb'
+ - 'app/helpers/blob_helper.rb'
+ - 'app/helpers/breadcrumbs_helper.rb'
+ - 'app/helpers/button_helper.rb'
+ - 'app/helpers/ci/pipelines_helper.rb'
+ - 'app/helpers/ci/runners_helper.rb'
+ - 'app/helpers/ci/status_helper.rb'
+ - 'app/helpers/clusters_helper.rb'
+ - 'app/helpers/commits_helper.rb'
+ - 'app/helpers/diff_helper.rb'
+ - 'app/helpers/dropdowns_helper.rb'
+ - 'app/helpers/emails_helper.rb'
+ - 'app/helpers/environment_helper.rb'
+ - 'app/helpers/events_helper.rb'
+ - 'app/helpers/groups_helper.rb'
+ - 'app/helpers/hooks_helper.rb'
+ - 'app/helpers/icons_helper.rb'
+ - 'app/helpers/issuables_helper.rb'
+ - 'app/helpers/issues_helper.rb'
+ - 'app/helpers/labels_helper.rb'
+ - 'app/helpers/listbox_helper.rb'
+ - 'app/helpers/markup_helper.rb'
+ - 'app/helpers/notes_helper.rb'
+ - 'app/helpers/projects_helper.rb'
+ - 'app/helpers/repository_languages_helper.rb'
+ - 'app/helpers/search_helper.rb'
+ - 'app/helpers/tab_helper.rb'
+ - 'app/helpers/timeboxes_helper.rb'
+ - 'app/helpers/todos_helper.rb'
+ - 'app/helpers/users_helper.rb'
+ - 'app/helpers/version_check_helper.rb'
+ - 'app/helpers/wiki_helper.rb'
+ - 'app/presenters/ci/pipeline_presenter.rb'
+ - 'app/presenters/merge_request_presenter.rb'
+ - 'app/presenters/project_presenter.rb'
+ - 'app/serializers/analytics/cycle_analytics/stage_entity.rb'
+ - 'app/serializers/entity_date_helper.rb'
+ - 'app/services/system_notes/base_service.rb'
+ - 'app/services/system_notes/commit_service.rb'
+ - 'ee/app/helpers/ee/button_helper.rb'
+ - 'ee/app/helpers/ee/geo_helper.rb'
+ - 'ee/app/helpers/ee/groups_helper.rb'
+ - 'ee/app/helpers/ee/issuables_helper.rb'
+ - 'ee/app/helpers/ee/lock_helper.rb'
+ - 'ee/app/helpers/ee/namespaces_helper.rb'
+ - 'ee/app/helpers/ee/search_helper.rb'
+ - 'ee/lib/gitlab/expiring_subscription_message.rb'
+ - 'lib/banzai/filter/autolink_filter.rb'
+ - 'lib/banzai/filter/gollum_tags_filter.rb'
+ - 'lib/gitlab/emoji.rb'
+ - 'lib/gitlab/form_builders/gitlab_ui_form_builder.rb'
+ - 'lib/gitlab/middleware/go.rb'
+ - 'spec/frontend/fixtures/tabs.rb'
diff --git a/.rubocop_todo/rails/create_table_with_timestamps.yml b/.rubocop_todo/rails/create_table_with_timestamps.yml
new file mode 100644
index 00000000000..6e60fa3e1d5
--- /dev/null
+++ b/.rubocop_todo/rails/create_table_with_timestamps.yml
@@ -0,0 +1,69 @@
+---
+Rails/CreateTableWithTimestamps:
+ # Offense count: 63
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'db/migrate/20210305180331_create_ci_unit_tests.rb'
+ - 'db/migrate/20210305182855_create_ci_unit_test_failures.rb'
+ - 'db/migrate/20210317035357_create_dast_profiles_pipelines.rb'
+ - 'db/migrate/20210317104301_create_in_product_marketing_emails.rb'
+ - 'db/migrate/20210323125809_create_status_check_responses_table.rb'
+ - 'db/migrate/20210329191850_add_finding_signature_table.rb'
+ - 'db/migrate/20210411212813_add_clusters_integrations_prometheus.rb'
+ - 'db/migrate/20210423054022_create_dast_site_profiles_pipelines.rb'
+ - 'db/migrate/20210429032320_add_escalation_rules.rb'
+ - 'db/migrate/20210429131525_create_user_credit_card_validations.rb'
+ - 'db/migrate/20210511104929_add_epic_board_recent_visits_table.rb'
+ - 'db/migrate/20210512120122_add_pending_builds_table.rb'
+ - 'db/migrate/20210527194558_create_ci_job_token_project_scope_links.rb'
+ - 'db/migrate/20210601123341_add_running_builds_table.rb'
+ - 'db/migrate/20210602122213_add_upcoming_reconciliations.rb'
+ - 'db/migrate/20210604032738_create_dast_site_profiles_builds.rb'
+ - 'db/migrate/20210604051330_create_dast_scanner_profiles_builds.rb'
+ - 'db/migrate/20210604082145_create_external_status_checks_table.rb'
+ - 'db/migrate/20210713211008_create_banned_users.rb'
+ - 'db/migrate/20210729081739_create_project_topics.rb'
+ - 'db/migrate/20210729202143_create_incident_management_issuable_escalation_statuses.rb'
+ - 'db/migrate/20210730101609_create_analytics_cycle_analytics_stage_event_hashes.rb'
+ - 'db/migrate/20210809014850_create_agent_group_authorizations.rb'
+ - 'db/migrate/20210812171704_create_project_ci_feature_usages.rb'
+ - 'db/migrate/20210813101742_create_zentao_tracker_data.rb'
+ - 'db/migrate/20210813111909_create_ci_build_trace_metadata.rb'
+ - 'db/migrate/20210819185500_create_external_audit_event_destinations_table.rb'
+ - 'db/migrate/20210823172643_create_user_group_callout.rb'
+ - 'db/migrate/20210823213417_create_dependency_proxy_image_ttl_group_policies.rb'
+ - 'db/migrate/20210913010411_create_agent_project_authorizations.rb'
+ - 'db/migrate/20210922215740_create_issue_customer_relations_contacts.rb'
+ - 'db/migrate/20211004062942_create_coverage_fuzzing_corpuses.rb'
+ - 'db/migrate/20211004122540_create_member_tasks.rb'
+ - 'db/migrate/20211011004242_create_content_blocked_states.rb'
+ - 'db/migrate/20211011140930_create_ci_namespace_mirrors.rb'
+ - 'db/migrate/20211011140931_create_ci_project_mirrors.rb'
+ - 'db/migrate/20211011140932_create_namespaces_sync_events.rb'
+ - 'db/migrate/20211011141239_create_projects_sync_events.rb'
+ - 'db/migrate/20211028132247_create_packages_npm_metadata.rb'
+ - 'db/migrate/20211101132310_add_reindexing_queue.rb'
+ - 'db/migrate/20211101165656_create_upload_states.rb'
+ - 'db/migrate/20211110014701_create_agent_activity_events.rb'
+ - 'db/migrate/20211110092710_create_issue_emails.rb'
+ - 'db/migrate/20211111112425_create_merge_requests_compliance_violations.rb'
+ - 'db/migrate/20211115132613_create_incident_management_timeline_events.rb'
+ - 'db/migrate/20211117174209_create_vulnerability_reads.rb'
+ - 'db/migrate/20211119111006_create_job_artifact_states.rb'
+ - 'db/migrate/20211119154221_create_pages_deployment_states.rb'
+ - 'db/migrate/20211119195201_create_deployment_approvals.rb'
+ - 'db/migrate/20211201143042_create_lfs_object_states.rb'
+ - 'db/migrate/20211216220939_add_group_crm_settings.rb'
+ - 'db/migrate/20220110170953_create_ci_secure_files.rb'
+ - 'db/migrate/20220112205111_create_security_training_providers.rb'
+ - 'db/migrate/20220113125401_create_security_trainings.rb'
+ - 'db/migrate/20220120033115_create_alert_management_alert_metric_images.rb'
+ - 'db/migrate/20220204093120_create_analytics_cycle_analytics_aggregations.rb'
+ - 'db/migrate/20220211125954_create_related_epic_links.rb'
+ - 'db/migrate/20220216110023_create_saved_replies.rb'
+ - 'db/migrate/20220301175426_create_project_build_artifacts_size_refresh.rb'
+ - 'db/migrate/20220302110724_add_group_features_table.rb'
+ - 'db/migrate/20220314184009_create_protected_environment_approval_rules.rb'
+ - 'db/migrate/20220425120604_create_packages_cleanup_policies.rb'
+ - 'db/migrate/20220503102855_add_namespace_ci_cd_settings_table.rb'
diff --git a/.rubocop_todo/rails/file_path.yml b/.rubocop_todo/rails/file_path.yml
new file mode 100644
index 00000000000..58fa6d6255d
--- /dev/null
+++ b/.rubocop_todo/rails/file_path.yml
@@ -0,0 +1,145 @@
+---
+Rails/FilePath:
+ # Offense count: 212
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/controllers/clusters/clusters_controller.rb'
+ - 'app/controllers/help_controller.rb'
+ - 'app/helpers/startupjs_helper.rb'
+ - 'app/models/clusters/applications/cert_manager.rb'
+ - 'app/models/clusters/applications/elastic_stack.rb'
+ - 'app/models/clusters/concerns/application_data.rb'
+ - 'app/models/concerns/cross_database_modification.rb'
+ - 'app/models/release_highlight.rb'
+ - 'app/serializers/review_app_setup_entity.rb'
+ - 'app/services/clusters/aws/fetch_credentials_service.rb'
+ - 'app/services/clusters/aws/provision_service.rb'
+ - 'app/services/metrics/sample_metrics_service.rb'
+ - 'app/services/projects/readme_renderer_service.rb'
+ - 'config/environments/development.rb'
+ - 'config/initializers/1_settings.rb'
+ - 'config/initializers/7_prometheus_metrics.rb'
+ - 'config/initializers/lograge.rb'
+ - 'config/initializers_before_autoloader/001_fast_gettext.rb'
+ - 'db/migrate/20210517144856_require_snapshot_namespace.rb'
+ - 'db/post_migrate/20210630025020_migrate_push_event_payloads_event_id_back_to_integer_for_gitlab_com.rb'
+ - 'ee/app/helpers/ee/application_helper.rb'
+ - 'ee/app/services/security/security_orchestration_policies/project_create_service.rb'
+ - 'ee/db/fixtures/development/20_vulnerabilities.rb'
+ - 'ee/db/fixtures/development/21_dast_profiles.rb'
+ - 'ee/db/fixtures/development/32_compliance_report_violations.rb'
+ - 'ee/lib/ee/feature/definition.rb'
+ - 'ee/lib/ee/gitlab/usage/metric_definition.rb'
+ - 'ee/lib/generators/geo_migration/geo_migration_generator.rb'
+ - 'ee/lib/gitlab/geo/health_check.rb'
+ - 'ee/lib/tasks/gitlab/seed/metrics.rake'
+ - 'ee/spec/db/production/license_spec.rb'
+ - 'ee/spec/factories/spdx_catalogue.rb'
+ - 'ee/spec/factories/vulnerabilities/findings.rb'
+ - 'ee/spec/features/epics/update_epic_spec.rb'
+ - 'ee/spec/lib/gitlab/code_owners/file_spec.rb'
+ - 'ee/spec/lib/gitlab/spdx/catalogue_gateway_spec.rb'
+ - 'ee/spec/lib/gitlab/spdx/catalogue_spec.rb'
+ - 'ee/spec/models/geo/every_geo_event_spec.rb'
+ - 'ee/spec/models/release_highlight_spec.rb'
+ - 'ee/spec/requests/api/experiments_spec.rb'
+ - 'ee/spec/services/ee/merge_requests/refresh_service_spec.rb'
+ - 'ee/spec/support/factory_bot.rb'
+ - 'ee/spec/uploaders/every_gitlab_uploader_spec.rb'
+ - 'ee/spec/validators/json_schema_validator_spec.rb'
+ - 'lib/api/api.rb'
+ - 'lib/error_tracking/collector/payload_validator.rb'
+ - 'lib/feature/definition.rb'
+ - 'lib/gitlab/ci/reports/codequality_reports.rb'
+ - 'lib/gitlab/database/migrations/runner.rb'
+ - 'lib/gitlab/favicon.rb'
+ - 'lib/gitlab/feature_categories.rb'
+ - 'lib/gitlab/graphql/queries.rb'
+ - 'lib/gitlab/language_data.rb'
+ - 'lib/gitlab/metrics/exporter/base_exporter.rb'
+ - 'lib/gitlab/middleware/multipart.rb'
+ - 'lib/gitlab/profiler.rb'
+ - 'lib/gitlab/robots_txt.rb'
+ - 'lib/gitlab/setup_helper.rb'
+ - 'lib/gitlab/sidekiq_config.rb'
+ - 'lib/gitlab/tracking/event_definition.rb'
+ - 'lib/gitlab/usage/metric_definition.rb'
+ - 'lib/pager_duty/webhook_payload_parser.rb'
+ - 'lib/system_check/app/database_config_exists_check.rb'
+ - 'lib/system_check/app/gitlab_config_exists_check.rb'
+ - 'lib/system_check/app/gitlab_config_up_to_date_check.rb'
+ - 'lib/system_check/app/systemd_unit_files_or_init_script_up_to_date_check.rb'
+ - 'lib/system_check/app/uploads_directory_exists_check.rb'
+ - 'lib/system_check/incoming_email/imap_authentication_check.rb'
+ - 'lib/tasks/gitlab/metrics_exporter.rake'
+ - 'lib/tasks/tanuki_emoji.rake'
+ - 'metrics_server/metrics_server.rb'
+ - 'spec/commands/metrics_server/metrics_server_spec.rb'
+ - 'spec/config/object_store_settings_spec.rb'
+ - 'spec/controllers/help_controller_spec.rb'
+ - 'spec/db/development/create_base_work_item_types_spec.rb'
+ - 'spec/db/development/import_common_metrics_spec.rb'
+ - 'spec/db/production/create_base_work_item_types_spec.rb'
+ - 'spec/db/production/import_common_metrics_spec.rb'
+ - 'spec/db/schema_spec.rb'
+ - 'spec/factories/design_management/designs.rb'
+ - 'spec/factories/design_management/versions.rb'
+ - 'spec/factories/error_tracking/error_event.rb'
+ - 'spec/factories/file_uploaders.rb'
+ - 'spec/factories/packages/debian/distribution_key.rb'
+ - 'spec/factories/pages_domains.rb'
+ - 'spec/factories/serverless/domain_cluster.rb'
+ - 'spec/features/admin/admin_appearance_spec.rb'
+ - 'spec/features/groups/group_settings_spec.rb'
+ - 'spec/features/groups/import_export/import_file_spec.rb'
+ - 'spec/features/help_pages_spec.rb'
+ - 'spec/features/issues/user_creates_issue_spec.rb'
+ - 'spec/features/profiles/user_edit_profile_spec.rb'
+ - 'spec/features/projects/files/user_replaces_files_spec.rb'
+ - 'spec/features/projects/import_export/import_file_spec.rb'
+ - 'spec/features/projects/issues/design_management/user_uploads_designs_spec.rb'
+ - 'spec/features/projects/issues/design_management/user_views_designs_with_svg_xss_spec.rb'
+ - 'spec/features/projects/settings/repository_settings_spec.rb'
+ - 'spec/features/projects/settings/user_changes_avatar_spec.rb'
+ - 'spec/features/projects/snippets/create_snippet_spec.rb'
+ - 'spec/features/projects/tags/user_edits_tags_spec.rb'
+ - 'spec/features/projects/tree/upload_file_spec.rb'
+ - 'spec/features/refactor_blob_viewer_disabled/projects/files/user_replaces_files_spec.rb'
+ - 'spec/features/snippets/user_creates_snippet_spec.rb'
+ - 'spec/features/snippets/user_edits_snippet_spec.rb'
+ - 'spec/features/uploads/user_uploads_avatar_to_group_spec.rb'
+ - 'spec/features/uploads/user_uploads_avatar_to_profile_spec.rb'
+ - 'spec/features/uploads/user_uploads_file_to_note_spec.rb'
+ - 'spec/helpers/blob_helper_spec.rb'
+ - 'spec/helpers/startupjs_helper_spec.rb'
+ - 'spec/lib/backup/database_spec.rb'
+ - 'spec/lib/gitlab/background_migration/fix_first_mentioned_in_commit_at_spec.rb'
+ - 'spec/lib/gitlab/ci/parsers/security/validators/schema_validator_spec.rb'
+ - 'spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb'
+ - 'spec/lib/gitlab/database/schema_migrations/context_spec.rb'
+ - 'spec/lib/gitlab/feature_categories_spec.rb'
+ - 'spec/lib/gitlab/file_hook_spec.rb'
+ - 'spec/lib/gitlab/http_spec.rb'
+ - 'spec/lib/gitlab/jwt_authenticatable_spec.rb'
+ - 'spec/lib/gitlab/mail_room/mail_room_spec.rb'
+ - 'spec/lib/gitlab/metrics/dashboard/finder_spec.rb'
+ - 'spec/lib/gitlab/middleware/multipart/handler_spec.rb'
+ - 'spec/lib/gitlab/project_transfer_spec.rb'
+ - 'spec/lib/gitlab/sanitizers/svg_spec.rb'
+ - 'spec/metrics_server/metrics_server_spec.rb'
+ - 'spec/models/clusters/applications/cert_manager_spec.rb'
+ - 'spec/models/release_highlight_spec.rb'
+ - 'spec/requests/api/internal/mail_room_spec.rb'
+ - 'spec/serializers/review_app_setup_entity_spec.rb'
+ - 'spec/services/clusters/aws/fetch_credentials_service_spec.rb'
+ - 'spec/services/clusters/aws/provision_service_spec.rb'
+ - 'spec/services/metrics/sample_metrics_service_spec.rb'
+ - 'spec/support/helpers/test_env.rb'
+ - 'spec/support/helpers/upload_helpers.rb'
+ - 'spec/support/shared_examples/features/project_upload_files_shared_examples.rb'
+ - 'spec/support/shared_examples/features/wiki/file_attachments_shared_examples.rb'
+ - 'spec/support/shared_examples/models/application_setting_shared_examples.rb'
+ - 'spec/support/shared_examples/models/wiki_shared_examples.rb'
+ - 'spec/tasks/gitlab/db_rake_spec.rb'
+ - 'spec/tasks/gitlab/generate_sample_prometheus_data_spec.rb'
diff --git a/.rubocop_todo/rails/has_many_or_has_one_dependent.yml b/.rubocop_todo/rails/has_many_or_has_one_dependent.yml
new file mode 100644
index 00000000000..92ba718bfff
--- /dev/null
+++ b/.rubocop_todo/rails/has_many_or_has_one_dependent.yml
@@ -0,0 +1,154 @@
+---
+Rails/HasManyOrHasOneDependent:
+ # Offense count: 593
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/models/alert_management/alert.rb'
+ - 'app/models/analytics/cycle_analytics/project_value_stream.rb'
+ - 'app/models/analytics/cycle_analytics/stage_event_hash.rb'
+ - 'app/models/application_setting/term.rb'
+ - 'app/models/bulk_import.rb'
+ - 'app/models/bulk_imports/entity.rb'
+ - 'app/models/bulk_imports/export.rb'
+ - 'app/models/ci/bridge.rb'
+ - 'app/models/ci/build.rb'
+ - 'app/models/ci/pipeline.rb'
+ - 'app/models/ci/pipeline_schedule.rb'
+ - 'app/models/ci/processable.rb'
+ - 'app/models/ci/ref.rb'
+ - 'app/models/ci/resource_group.rb'
+ - 'app/models/ci/runner.rb'
+ - 'app/models/ci/stage.rb'
+ - 'app/models/ci/trigger.rb'
+ - 'app/models/ci/trigger_request.rb'
+ - 'app/models/ci/unit_test.rb'
+ - 'app/models/clusters/agent.rb'
+ - 'app/models/clusters/applications/knative.rb'
+ - 'app/models/clusters/cluster.rb'
+ - 'app/models/clusters/project.rb'
+ - 'app/models/commit_status.rb'
+ - 'app/models/concerns/ci/metadatable.rb'
+ - 'app/models/concerns/integrations/has_data_fields.rb'
+ - 'app/models/concerns/issuable.rb'
+ - 'app/models/concerns/label_eventable.rb'
+ - 'app/models/concerns/milestone_eventable.rb'
+ - 'app/models/concerns/packages/debian/distribution.rb'
+ - 'app/models/concerns/protected_ref.rb'
+ - 'app/models/concerns/state_eventable.rb'
+ - 'app/models/concerns/timebox.rb'
+ - 'app/models/concerns/versioned_description.rb'
+ - 'app/models/concerns/with_uploads.rb'
+ - 'app/models/customer_relations/contact.rb'
+ - 'app/models/deploy_key.rb'
+ - 'app/models/deploy_token.rb'
+ - 'app/models/deployment.rb'
+ - 'app/models/design_management/design.rb'
+ - 'app/models/design_management/version.rb'
+ - 'app/models/environment.rb'
+ - 'app/models/error_tracking/error.rb'
+ - 'app/models/event.rb'
+ - 'app/models/experiment.rb'
+ - 'app/models/fork_network.rb'
+ - 'app/models/gpg_key.rb'
+ - 'app/models/group.rb'
+ - 'app/models/hooks/web_hook.rb'
+ - 'app/models/integration.rb'
+ - 'app/models/issue.rb'
+ - 'app/models/jira_connect_installation.rb'
+ - 'app/models/label.rb'
+ - 'app/models/lfs_object.rb'
+ - 'app/models/list.rb'
+ - 'app/models/member.rb'
+ - 'app/models/merge_request.rb'
+ - 'app/models/merge_request_context_commit.rb'
+ - 'app/models/milestone.rb'
+ - 'app/models/namespace.rb'
+ - 'app/models/namespaces/project_namespace.rb'
+ - 'app/models/note.rb'
+ - 'app/models/operations/feature_flag.rb'
+ - 'app/models/operations/feature_flags/strategy.rb'
+ - 'app/models/operations/feature_flags/user_list.rb'
+ - 'app/models/packages/debian/project_distribution.rb'
+ - 'app/models/packages/dependency.rb'
+ - 'app/models/packages/dependency_link.rb'
+ - 'app/models/packages/package.rb'
+ - 'app/models/packages/package_file.rb'
+ - 'app/models/pages_domain.rb'
+ - 'app/models/plan.rb'
+ - 'app/models/pool_repository.rb'
+ - 'app/models/project.rb'
+ - 'app/models/projects/topic.rb'
+ - 'app/models/prometheus_alert.rb'
+ - 'app/models/prometheus_metric.rb'
+ - 'app/models/release.rb'
+ - 'app/models/snippet.rb'
+ - 'app/models/terraform/state.rb'
+ - 'app/models/user.rb'
+ - 'app/models/wiki_page/meta.rb'
+ - 'app/models/work_items/type.rb'
+ - 'app/models/x509_certificate.rb'
+ - 'app/models/x509_issuer.rb'
+ - 'ee/app/models/analytics/devops_adoption/enabled_namespace.rb'
+ - 'ee/app/models/analytics/devops_adoption/snapshot.rb'
+ - 'ee/app/models/approval_merge_request_rule.rb'
+ - 'ee/app/models/approval_project_rule.rb'
+ - 'ee/app/models/boards/epic_board.rb'
+ - 'ee/app/models/boards/epic_list.rb'
+ - 'ee/app/models/compliance_management/framework.rb'
+ - 'ee/app/models/concerns/ee/iteration_eventable.rb'
+ - 'ee/app/models/concerns/ee/protected_branch.rb'
+ - 'ee/app/models/concerns/ee/protected_ref.rb'
+ - 'ee/app/models/concerns/ee/weight_eventable.rb'
+ - 'ee/app/models/concerns/geo/eventable.rb'
+ - 'ee/app/models/concerns/issue_widgets/acts_like_requirement.rb'
+ - 'ee/app/models/concerns/security/scan_execution_policy.rb'
+ - 'ee/app/models/dast/profile.rb'
+ - 'ee/app/models/dast_site.rb'
+ - 'ee/app/models/dast_site_profile.rb'
+ - 'ee/app/models/dast_site_validation.rb'
+ - 'ee/app/models/ee/alert_management/alert.rb'
+ - 'ee/app/models/ee/analytics/cycle_analytics/stage_event_hash.rb'
+ - 'ee/app/models/ee/board.rb'
+ - 'ee/app/models/ee/ci/build.rb'
+ - 'ee/app/models/ee/ci/job_artifact.rb'
+ - 'ee/app/models/ee/ci/pipeline.rb'
+ - 'ee/app/models/ee/deployment.rb'
+ - 'ee/app/models/ee/environment.rb'
+ - 'ee/app/models/ee/epic.rb'
+ - 'ee/app/models/ee/group.rb'
+ - 'ee/app/models/ee/issue.rb'
+ - 'ee/app/models/ee/iteration.rb'
+ - 'ee/app/models/ee/label.rb'
+ - 'ee/app/models/ee/lfs_object.rb'
+ - 'ee/app/models/ee/merge_request.rb'
+ - 'ee/app/models/ee/merge_request_diff.rb'
+ - 'ee/app/models/ee/milestone.rb'
+ - 'ee/app/models/ee/namespace.rb'
+ - 'ee/app/models/ee/pages_deployment.rb'
+ - 'ee/app/models/ee/plan.rb'
+ - 'ee/app/models/ee/project.rb'
+ - 'ee/app/models/ee/upload.rb'
+ - 'ee/app/models/ee/user.rb'
+ - 'ee/app/models/ee/vulnerability.rb'
+ - 'ee/app/models/elastic/reindexing_subtask.rb'
+ - 'ee/app/models/elastic/reindexing_task.rb'
+ - 'ee/app/models/geo/event.rb'
+ - 'ee/app/models/geo_node.rb'
+ - 'ee/app/models/incident_management/escalation_policy.rb'
+ - 'ee/app/models/incident_management/oncall_participant.rb'
+ - 'ee/app/models/incident_management/oncall_rotation.rb'
+ - 'ee/app/models/incident_management/oncall_schedule.rb'
+ - 'ee/app/models/integrations/gitlab_slack_application.rb'
+ - 'ee/app/models/iterations/cadence.rb'
+ - 'ee/app/models/protected_environment.rb'
+ - 'ee/app/models/protected_environments/approval_rule.rb'
+ - 'ee/app/models/push_rule.rb'
+ - 'ee/app/models/saml_provider.rb'
+ - 'ee/app/models/security/finding.rb'
+ - 'ee/app/models/security/scan.rb'
+ - 'ee/app/models/security/training_provider.rb'
+ - 'ee/app/models/vulnerabilities/finding.rb'
+ - 'ee/app/models/vulnerabilities/identifier.rb'
+ - 'ee/app/models/vulnerabilities/remediation.rb'
+ - 'ee/app/models/vulnerabilities/scanner.rb'
diff --git a/.rubocop_todo/rails/helper_instance_variable.yml b/.rubocop_todo/rails/helper_instance_variable.yml
new file mode 100644
index 00000000000..8a1a6093c3d
--- /dev/null
+++ b/.rubocop_todo/rails/helper_instance_variable.yml
@@ -0,0 +1,85 @@
+---
+Rails/HelperInstanceVariable:
+ # Offense count: 671
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/helpers/admin/user_actions_helper.rb'
+ - 'app/helpers/application_helper.rb'
+ - 'app/helpers/application_settings_helper.rb'
+ - 'app/helpers/award_emoji_helper.rb'
+ - 'app/helpers/blob_helper.rb'
+ - 'app/helpers/boards_helper.rb'
+ - 'app/helpers/branches_helper.rb'
+ - 'app/helpers/breadcrumbs_helper.rb'
+ - 'app/helpers/broadcast_messages_helper.rb'
+ - 'app/helpers/ci/builds_helper.rb'
+ - 'app/helpers/ci/jobs_helper.rb'
+ - 'app/helpers/commits_helper.rb'
+ - 'app/helpers/compare_helper.rb'
+ - 'app/helpers/diff_helper.rb'
+ - 'app/helpers/emails_helper.rb'
+ - 'app/helpers/environments_helper.rb'
+ - 'app/helpers/events_helper.rb'
+ - 'app/helpers/explore_helper.rb'
+ - 'app/helpers/feature_flags_helper.rb'
+ - 'app/helpers/form_helper.rb'
+ - 'app/helpers/graph_helper.rb'
+ - 'app/helpers/groups_helper.rb'
+ - 'app/helpers/icons_helper.rb'
+ - 'app/helpers/ide_helper.rb'
+ - 'app/helpers/import_helper.rb'
+ - 'app/helpers/integrations_helper.rb'
+ - 'app/helpers/issuables_description_templates_helper.rb'
+ - 'app/helpers/issuables_helper.rb'
+ - 'app/helpers/issues_helper.rb'
+ - 'app/helpers/labels_helper.rb'
+ - 'app/helpers/markup_helper.rb'
+ - 'app/helpers/merge_requests_helper.rb'
+ - 'app/helpers/mirror_helper.rb'
+ - 'app/helpers/nav_helper.rb'
+ - 'app/helpers/notes_helper.rb'
+ - 'app/helpers/operations_helper.rb'
+ - 'app/helpers/page_layout_helper.rb'
+ - 'app/helpers/projects_helper.rb'
+ - 'app/helpers/releases_helper.rb'
+ - 'app/helpers/routing/projects_helper.rb'
+ - 'app/helpers/routing/pseudonymization_helper.rb'
+ - 'app/helpers/routing/snippets_helper.rb'
+ - 'app/helpers/search_helper.rb'
+ - 'app/helpers/selects_helper.rb'
+ - 'app/helpers/startupjs_helper.rb'
+ - 'app/helpers/submodule_helper.rb'
+ - 'app/helpers/tab_helper.rb'
+ - 'app/helpers/tags_helper.rb'
+ - 'app/helpers/timeboxes_helper.rb'
+ - 'app/helpers/tree_helper.rb'
+ - 'app/helpers/users_helper.rb'
+ - 'app/helpers/web_ide_button_helper.rb'
+ - 'app/helpers/webpack_helper.rb'
+ - 'app/helpers/wiki_helper.rb'
+ - 'ee/app/helpers/ee/application_helper.rb'
+ - 'ee/app/helpers/ee/boards_helper.rb'
+ - 'ee/app/helpers/ee/feature_flags_helper.rb'
+ - 'ee/app/helpers/ee/form_helper.rb'
+ - 'ee/app/helpers/ee/graph_helper.rb'
+ - 'ee/app/helpers/ee/groups/group_members_helper.rb'
+ - 'ee/app/helpers/ee/groups_helper.rb'
+ - 'ee/app/helpers/ee/integrations_helper.rb'
+ - 'ee/app/helpers/ee/kerberos_spnego_helper.rb'
+ - 'ee/app/helpers/ee/labels_helper.rb'
+ - 'ee/app/helpers/ee/lock_helper.rb'
+ - 'ee/app/helpers/ee/merge_requests_helper.rb'
+ - 'ee/app/helpers/ee/mirror_helper.rb'
+ - 'ee/app/helpers/ee/namespace_storage_limit_alert_helper.rb'
+ - 'ee/app/helpers/ee/notes_helper.rb'
+ - 'ee/app/helpers/ee/operations_helper.rb'
+ - 'ee/app/helpers/ee/projects/security/configuration_helper.rb'
+ - 'ee/app/helpers/ee/projects_helper.rb'
+ - 'ee/app/helpers/ee/search_helper.rb'
+ - 'ee/app/helpers/ee/selects_helper.rb'
+ - 'ee/app/helpers/ee/subscribable_banner_helper.rb'
+ - 'ee/app/helpers/ee/wiki_helper.rb'
+ - 'ee/app/helpers/path_locks_helper.rb'
+ - 'ee/app/helpers/projects/security/discover_helper.rb'
+ - 'ee/app/helpers/seats_count_alert_helper.rb'
diff --git a/.rubocop_todo/rails/index_with.yml b/.rubocop_todo/rails/index_with.yml
new file mode 100644
index 00000000000..09339d3fd56
--- /dev/null
+++ b/.rubocop_todo/rails/index_with.yml
@@ -0,0 +1,52 @@
+---
+# Cop supports --auto-correct.
+Rails/IndexWith:
+ # Offense count: 54
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/helpers/ci/jobs_helper.rb'
+ - 'app/models/ci/build_trace_chunk.rb'
+ - 'app/models/ci/processable.rb'
+ - 'app/models/concerns/cached_commit.rb'
+ - 'app/models/environment.rb'
+ - 'app/services/concerns/rate_limited_service.rb'
+ - 'db/post_migrate/20210731132939_backfill_stage_event_hash.rb'
+ - 'ee/app/models/vulnerabilities/projects_grade.rb'
+ - 'ee/lib/ee/gitlab/usage_data.rb'
+ - 'ee/lib/gitlab/auth/group_saml/auth_hash.rb'
+ - 'ee/lib/gitlab/custom_file_templates.rb'
+ - 'ee/lib/gitlab/insights/reducers/count_per_label_reducer.rb'
+ - 'ee/spec/lib/ee/gitlab/application_context_spec.rb'
+ - 'ee/spec/models/ee/namespace_spec.rb'
+ - 'ee/spec/models/sca/license_compliance_spec.rb'
+ - 'ee/spec/views/admin/dashboard/index.html.haml_spec.rb'
+ - 'lib/api/entities/project_integration.rb'
+ - 'lib/api/helpers/packages/conan/api_helpers.rb'
+ - 'lib/banzai/filter/repository_link_filter.rb'
+ - 'lib/gitlab/background_migration/update_jira_tracker_data_deployment_type_based_on_url.rb'
+ - 'lib/gitlab/ci/ansi2html.rb'
+ - 'lib/gitlab/ci/reports/security/finding.rb'
+ - 'lib/gitlab/ci/reports/security/identifier.rb'
+ - 'lib/gitlab/ci/reports/test_suite.rb'
+ - 'lib/gitlab/database/count/exact_count_strategy.rb'
+ - 'lib/gitlab/database/migration_helpers.rb'
+ - 'lib/gitlab/database/obsolete_ignored_columns.rb'
+ - 'lib/gitlab/issuable_metadata.rb'
+ - 'lib/gitlab/template/base_template.rb'
+ - 'lib/gitlab/usage_data.rb'
+ - 'lib/google_api/cloud_platform/client.rb'
+ - 'qa/qa/resource/reusable.rb'
+ - 'scripts/trigger-build.rb'
+ - 'spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb'
+ - 'spec/lib/gitlab/conflict/file_spec.rb'
+ - 'spec/lib/gitlab/import_export/model_configuration_spec.rb'
+ - 'spec/lib/gitlab/import_export/project/tree_restorer_spec.rb'
+ - 'spec/lib/google_api/cloud_platform/client_spec.rb'
+ - 'spec/lib/learn_gitlab/onboarding_spec.rb'
+ - 'spec/models/event_spec.rb'
+ - 'spec/presenters/projects/security/configuration_presenter_spec.rb'
+ - 'spec/support/database/multiple_databases.rb'
+ - 'spec/support/shared_contexts/services/projects/container_repository/delete_tags_service_shared_context.rb'
+ - 'spec/support/shared_examples/models/concerns/sanitizable_shared_examples.rb'
+ - 'spec/views/admin/dashboard/index.html.haml_spec.rb'
diff --git a/.rubocop_todo/rails/inverse_of.yml b/.rubocop_todo/rails/inverse_of.yml
new file mode 100644
index 00000000000..7a757ec8a9d
--- /dev/null
+++ b/.rubocop_todo/rails/inverse_of.yml
@@ -0,0 +1,115 @@
+---
+Rails/InverseOf:
+ # Offense count: 210
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/models/alert_management/alert.rb'
+ - 'app/models/alert_management/alert_assignee.rb'
+ - 'app/models/analytics/cycle_analytics/project_stage.rb'
+ - 'app/models/application_setting.rb'
+ - 'app/models/audit_event.rb'
+ - 'app/models/board.rb'
+ - 'app/models/bulk_imports/entity.rb'
+ - 'app/models/bulk_imports/tracker.rb'
+ - 'app/models/chat_name.rb'
+ - 'app/models/ci/bridge.rb'
+ - 'app/models/ci/build.rb'
+ - 'app/models/ci/build_pending_state.rb'
+ - 'app/models/ci/build_trace_chunk.rb'
+ - 'app/models/ci/daily_build_group_report_result.rb'
+ - 'app/models/ci/job_artifact.rb'
+ - 'app/models/ci/job_variable.rb'
+ - 'app/models/ci/pipeline.rb'
+ - 'app/models/ci/pipeline_schedule.rb'
+ - 'app/models/ci/runner.rb'
+ - 'app/models/ci/runner_namespace.rb'
+ - 'app/models/ci/sources/pipeline.rb'
+ - 'app/models/ci/stage.rb'
+ - 'app/models/ci/trigger_request.rb'
+ - 'app/models/ci/unit_test_failure.rb'
+ - 'app/models/clusters/applications/runner.rb'
+ - 'app/models/clusters/cluster.rb'
+ - 'app/models/clusters/concerns/application_core.rb'
+ - 'app/models/clusters/integrations/elastic_stack.rb'
+ - 'app/models/clusters/integrations/prometheus.rb'
+ - 'app/models/clusters/project.rb'
+ - 'app/models/commit_signatures/x509_commit_signature.rb'
+ - 'app/models/commit_status.rb'
+ - 'app/models/concerns/analytics/cycle_analytics/stage.rb'
+ - 'app/models/concerns/awardable.rb'
+ - 'app/models/concerns/commit_signature.rb'
+ - 'app/models/concerns/merge_request_reviewer_state.rb'
+ - 'app/models/concerns/with_uploads.rb'
+ - 'app/models/custom_emoji.rb'
+ - 'app/models/customer_relations/contact.rb'
+ - 'app/models/customer_relations/organization.rb'
+ - 'app/models/deploy_key.rb'
+ - 'app/models/deploy_token.rb'
+ - 'app/models/environment.rb'
+ - 'app/models/error_tracking/error.rb'
+ - 'app/models/exported_protected_branch.rb'
+ - 'app/models/group.rb'
+ - 'app/models/group/crm_settings.rb'
+ - 'app/models/group_group_link.rb'
+ - 'app/models/hooks/service_hook.rb'
+ - 'app/models/incident_management/timeline_event.rb'
+ - 'app/models/integrations/base_slash_commands.rb'
+ - 'app/models/issue.rb'
+ - 'app/models/jira_connect_subscription.rb'
+ - 'app/models/members/group_member.rb'
+ - 'app/models/members/project_member.rb'
+ - 'app/models/merge_request.rb'
+ - 'app/models/merge_request/metrics.rb'
+ - 'app/models/merge_request_diff.rb'
+ - 'app/models/namespace.rb'
+ - 'app/models/notification_setting.rb'
+ - 'app/models/packages/composer/cache_file.rb'
+ - 'app/models/packages/maven/metadatum.rb'
+ - 'app/models/project.rb'
+ - 'app/models/resource_state_event.rb'
+ - 'app/models/serverless/domain_cluster.rb'
+ - 'app/models/terraform/state_version.rb'
+ - 'app/models/todo.rb'
+ - 'app/models/user.rb'
+ - 'app/models/x509_certificate.rb'
+ - 'ee/app/models/allowed_email_domain.rb'
+ - 'ee/app/models/analytics/cycle_analytics/group_stage.rb'
+ - 'ee/app/models/analytics/cycle_analytics/group_value_stream.rb'
+ - 'ee/app/models/analytics/devops_adoption/enabled_namespace.rb'
+ - 'ee/app/models/analytics/devops_adoption/snapshot.rb'
+ - 'ee/app/models/audit_events/external_audit_event_destination.rb'
+ - 'ee/app/models/ci/sources/project.rb'
+ - 'ee/app/models/compliance_management/compliance_framework/project_settings.rb'
+ - 'ee/app/models/concerns/incident_management/base_pending_escalation.rb'
+ - 'ee/app/models/dast/profile_schedule.rb'
+ - 'ee/app/models/ee/ci/build.rb'
+ - 'ee/app/models/ee/ci/pipeline.rb'
+ - 'ee/app/models/ee/epic.rb'
+ - 'ee/app/models/ee/group.rb'
+ - 'ee/app/models/ee/iteration.rb'
+ - 'ee/app/models/ee/merge_request.rb'
+ - 'ee/app/models/ee/plan.rb'
+ - 'ee/app/models/ee/project.rb'
+ - 'ee/app/models/ee/service_desk_setting.rb'
+ - 'ee/app/models/ee/user.rb'
+ - 'ee/app/models/elastic/reindexing_subtask.rb'
+ - 'ee/app/models/elastic/reindexing_task.rb'
+ - 'ee/app/models/geo/event.rb'
+ - 'ee/app/models/geo/event_log.rb'
+ - 'ee/app/models/geo/job_artifact_registry.rb'
+ - 'ee/app/models/geo/upload_registry.rb'
+ - 'ee/app/models/group_deletion_schedule.rb'
+ - 'ee/app/models/incident_management/escalation_rule.rb'
+ - 'ee/app/models/incident_management/oncall_participant.rb'
+ - 'ee/app/models/insight.rb'
+ - 'ee/app/models/integrations/gitlab_slack_application.rb'
+ - 'ee/app/models/requirements_management/requirement.rb'
+ - 'ee/app/models/requirements_management/test_report.rb'
+ - 'ee/app/models/security/orchestration_policy_configuration.rb'
+ - 'ee/app/models/security/orchestration_policy_rule_schedule.rb'
+ - 'ee/app/models/slack_integration.rb'
+ - 'ee/app/models/software_license_policy.rb'
+ - 'ee/app/models/user_permission_export_upload.rb'
+ - 'ee/app/models/vulnerabilities/feedback.rb'
+ - 'ee/app/models/vulnerabilities/statistic.rb'
diff --git a/.rubocop_todo/rails/lexically_scoped_action_filter.yml b/.rubocop_todo/rails/lexically_scoped_action_filter.yml
new file mode 100644
index 00000000000..84b85f76c68
--- /dev/null
+++ b/.rubocop_todo/rails/lexically_scoped_action_filter.yml
@@ -0,0 +1,48 @@
+---
+Rails/LexicallyScopedActionFilter:
+ # Offense count: 73
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/controllers/admin/groups_controller.rb'
+ - 'app/controllers/clusters/base_controller.rb'
+ - 'app/controllers/clusters/clusters_controller.rb'
+ - 'app/controllers/concerns/enforces_two_factor_authentication.rb'
+ - 'app/controllers/concerns/integrations/actions.rb'
+ - 'app/controllers/concerns/multiple_boards_actions.rb'
+ - 'app/controllers/concerns/oauth_applications.rb'
+ - 'app/controllers/concerns/spammable_actions/captcha_check/html_format_actions_support.rb'
+ - 'app/controllers/confirmations_controller.rb'
+ - 'app/controllers/dashboard_controller.rb'
+ - 'app/controllers/groups/group_members_controller.rb'
+ - 'app/controllers/groups/milestones_controller.rb'
+ - 'app/controllers/groups/runners_controller.rb'
+ - 'app/controllers/groups/uploads_controller.rb'
+ - 'app/controllers/groups_controller.rb'
+ - 'app/controllers/import/base_controller.rb'
+ - 'app/controllers/oauth/applications_controller.rb'
+ - 'app/controllers/passwords_controller.rb'
+ - 'app/controllers/projects/badges_controller.rb'
+ - 'app/controllers/projects/branches_controller.rb'
+ - 'app/controllers/projects/environments_controller.rb'
+ - 'app/controllers/projects/incidents_controller.rb'
+ - 'app/controllers/projects/issue_links_controller.rb'
+ - 'app/controllers/projects/issues_controller.rb'
+ - 'app/controllers/projects/labels_controller.rb'
+ - 'app/controllers/projects/merge_requests_controller.rb'
+ - 'app/controllers/projects/milestones_controller.rb'
+ - 'app/controllers/projects/notes_controller.rb'
+ - 'app/controllers/projects/pipelines_controller.rb'
+ - 'app/controllers/projects/project_members_controller.rb'
+ - 'app/controllers/projects/prometheus/alerts_controller.rb'
+ - 'app/controllers/projects/releases_controller.rb'
+ - 'app/controllers/projects/service_hook_logs_controller.rb'
+ - 'app/controllers/projects/snippets_controller.rb'
+ - 'app/controllers/projects/tags_controller.rb'
+ - 'app/controllers/projects/todos_controller.rb'
+ - 'app/controllers/projects/tree_controller.rb'
+ - 'app/controllers/projects/uploads_controller.rb'
+ - 'app/controllers/snippets/blobs_controller.rb'
+ - 'app/controllers/snippets/notes_controller.rb'
+ - 'app/controllers/snippets_controller.rb'
+ - 'app/controllers/uploads_controller.rb'
diff --git a/.rubocop_todo/rails/mailer_name.yml b/.rubocop_todo/rails/mailer_name.yml
new file mode 100644
index 00000000000..17e55c178f7
--- /dev/null
+++ b/.rubocop_todo/rails/mailer_name.yml
@@ -0,0 +1,5 @@
+---
+# Cop supports --auto-correct.
+Rails/MailerName:
+ Exclude:
+ - 'app/mailers/notify.rb'
diff --git a/.rubocop_todo/rails/negate_include.yml b/.rubocop_todo/rails/negate_include.yml
new file mode 100644
index 00000000000..7bf78b82b60
--- /dev/null
+++ b/.rubocop_todo/rails/negate_include.yml
@@ -0,0 +1,58 @@
+---
+# Cop supports --auto-correct.
+Rails/NegateInclude:
+ # Offense count: 65
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/finders/projects_finder.rb'
+ - 'app/helpers/application_settings_helper.rb'
+ - 'app/helpers/projects_helper.rb'
+ - 'app/helpers/tree_helper.rb'
+ - 'app/models/concerns/timebox.rb'
+ - 'app/models/integrations/chat_message/pipeline_message.rb'
+ - 'app/models/label.rb'
+ - 'app/models/merge_request.rb'
+ - 'app/services/todo_service.rb'
+ - 'config/application.rb'
+ - 'config/initializers/1_settings.rb'
+ - 'danger/roulette/Dangerfile'
+ - 'ee/app/finders/security/pipeline_vulnerabilities_finder.rb'
+ - 'ee/app/models/ee/epic.rb'
+ - 'ee/app/models/ee/vulnerability.rb'
+ - 'ee/app/services/epic_issues/create_service.rb'
+ - 'ee/app/services/security/ingestion/tasks/ingest_remediations.rb'
+ - 'ee/app/services/security/security_orchestration_policies/validate_policy_service.rb'
+ - 'lib/api/maven_packages.rb'
+ - 'lib/generators/gitlab/usage_metric_generator.rb'
+ - 'lib/gitlab/background_migration/legacy_upload_mover.rb'
+ - 'lib/gitlab/ci/build/rules/rule/clause/exists.rb'
+ - 'lib/gitlab/ci/parsers/coverage/sax_document.rb'
+ - 'lib/gitlab/ci/queue/metrics.rb'
+ - 'lib/gitlab/database/each_database.rb'
+ - 'lib/gitlab/email/handler/create_issue_handler.rb'
+ - 'lib/gitlab/email/handler/service_desk_handler.rb'
+ - 'lib/gitlab/graphql/queries.rb'
+ - 'lib/gitlab/import_export/attributes_permitter.rb'
+ - 'lib/gitlab/search_results.rb'
+ - 'lib/gitlab/task_helpers.rb'
+ - 'lib/gitlab/url_blocker.rb'
+ - 'lib/gitlab_edition.rb'
+ - 'qa/qa/runtime/ip_address.rb'
+ - 'qa/qa/support/run.rb'
+ - 'qa/qa/tools/delete_test_users.rb'
+ - 'qa/qa/vendor/jenkins/page/configure_job.rb'
+ - 'qa/qa/vendor/jenkins/page/last_job_console.rb'
+ - 'rubocop/cop/gitlab/feature_available_usage.rb'
+ - 'rubocop/cop/graphql/id_type.rb'
+ - 'rubocop/cop/migration/add_reference.rb'
+ - 'rubocop/cop/rspec/factory_bot/inline_association.rb'
+ - 'scripts/lib/gitlab.rb'
+ - 'scripts/static-analysis'
+ - 'spec/lib/container_registry/blob_spec.rb'
+ - 'spec/lib/container_registry/client_spec.rb'
+ - 'spec/lib/gitlab/metrics/dashboard/stages/metric_endpoint_inserter_spec.rb'
+ - 'spec/lib/gitlab/metrics/subscribers/active_record_spec.rb'
+ - 'spec/support/matchers/pushed_frontend_feature_flags_matcher.rb'
+ - 'spec/support/shared_contexts/markdown_golden_master_shared_examples.rb'
+ - 'spec/uploaders/object_storage_spec.rb'
diff --git a/.rubocop_todo/rails/pick.yml b/.rubocop_todo/rails/pick.yml
new file mode 100644
index 00000000000..95ed3e61cb5
--- /dev/null
+++ b/.rubocop_todo/rails/pick.yml
@@ -0,0 +1,43 @@
+---
+# Cop supports --auto-correct.
+Rails/Pick:
+ # Offense count: 42
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/models/ci/pipeline.rb'
+ - 'app/models/merge_request.rb'
+ - 'app/models/merge_request/metrics.rb'
+ - 'app/models/merge_request_diff.rb'
+ - 'db/post_migrate/20210825193652_backfill_cadence_id_for_boards_scoped_to_iteration.rb'
+ - 'db/post_migrate/20220213103859_remove_integrations_type.rb'
+ - 'db/post_migrate/20220412143552_consume_remaining_encrypt_integration_property_jobs.rb'
+ - 'ee/app/models/concerns/epic_tree_sorting.rb'
+ - 'ee/app/models/ee/group.rb'
+ - 'ee/app/models/ee/namespace.rb'
+ - 'ee/app/models/geo/project_registry.rb'
+ - 'ee/lib/analytics/merge_request_metrics_calculator.rb'
+ - 'ee/lib/ee/gitlab/background_migration/backfill_iteration_cadence_id_for_boards.rb'
+ - 'ee/lib/ee/gitlab/background_migration/populate_status_column_of_security_scans.rb'
+ - 'ee/spec/finders/security/findings_finder_spec.rb'
+ - 'lib/gitlab/background_migration/backfill_ci_namespace_mirrors.rb'
+ - 'lib/gitlab/background_migration/backfill_ci_project_mirrors.rb'
+ - 'lib/gitlab/background_migration/backfill_integrations_type_new.rb'
+ - 'lib/gitlab/background_migration/backfill_namespace_traversal_ids_children.rb'
+ - 'lib/gitlab/background_migration/backfill_namespace_traversal_ids_roots.rb'
+ - 'lib/gitlab/background_migration/backfill_work_item_type_id_for_issues.rb'
+ - 'lib/gitlab/background_migration/batching_strategies/backfill_project_namespace_per_group_batching_strategy.rb'
+ - 'lib/gitlab/background_migration/batching_strategies/primary_key_batching_strategy.rb'
+ - 'lib/gitlab/background_migration/cleanup_orphaned_lfs_objects_projects.rb'
+ - 'lib/gitlab/background_migration/drop_invalid_security_findings.rb'
+ - 'lib/gitlab/background_migration/encrypt_static_object_token.rb'
+ - 'lib/gitlab/background_migration/fix_first_mentioned_in_commit_at.rb'
+ - 'lib/gitlab/background_migration/populate_vulnerability_reads.rb'
+ - 'lib/gitlab/background_migration/update_timelogs_null_spent_at.rb'
+ - 'lib/gitlab/database/dynamic_model_helpers.rb'
+ - 'lib/gitlab/database/migrations/background_migration_helpers.rb'
+ - 'lib/gitlab/database/partitioning_migration_helpers/backfill_partitioned_table.rb'
+ - 'lib/gitlab/github_import/user_finder.rb'
+ - 'lib/gitlab/relative_positioning/item_context.rb'
+ - 'spec/lib/gitlab/background_migration/backfill_snippet_repositories_spec.rb'
+ - 'spec/requests/projects/cycle_analytics_events_spec.rb'
diff --git a/.rubocop_todo/rails/pluck.yml b/.rubocop_todo/rails/pluck.yml
new file mode 100644
index 00000000000..608801085d4
--- /dev/null
+++ b/.rubocop_todo/rails/pluck.yml
@@ -0,0 +1,109 @@
+---
+# Cop supports --auto-correct.
+Rails/Pluck:
+ # Offense count: 155
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/finders/merge_requests/oldest_per_commit_finder.rb'
+ - 'app/helpers/issuables_description_templates_helper.rb'
+ - 'app/models/ci/unit_test.rb'
+ - 'app/models/commit.rb'
+ - 'app/models/concerns/sensitive_serializable_hash.rb'
+ - 'app/models/integrations/chat_message/pipeline_message.rb'
+ - 'app/models/list.rb'
+ - 'app/services/ci/pipeline_processing/atomic_processing_service/status_collection.rb'
+ - 'app/services/feature_flags/update_service.rb'
+ - 'app/services/pod_logs/base_service.rb'
+ - 'app/services/prometheus/create_default_alerts_service.rb'
+ - 'ee/app/graphql/mutations/incident_management/oncall_rotation/base.rb'
+ - 'ee/app/models/boards/epic_list.rb'
+ - 'ee/app/models/vulnerabilities/finding.rb'
+ - 'ee/app/services/concerns/incident_management/oncall_rotations/shared_rotation_logic.rb'
+ - 'ee/app/workers/geo/container_repository_sync_dispatch_worker.rb'
+ - 'ee/app/workers/geo/file_download_dispatch_worker.rb'
+ - 'ee/app/workers/geo/registry_sync_worker.rb'
+ - 'ee/app/workers/geo/repository_shard_sync_worker.rb'
+ - 'ee/app/workers/geo/repository_verification/secondary/shard_worker.rb'
+ - 'ee/app/workers/geo/scheduler/scheduler_worker.rb'
+ - 'ee/lib/ee/banzai/filter/references/iteration_reference_filter.rb'
+ - 'ee/lib/ee/gitlab/auth/ldap/person.rb'
+ - 'ee/lib/ee/gitlab/background_migration/populate_uuids_for_security_findings.rb'
+ - 'ee/lib/ee/gitlab/checks/push_rules/file_size_check.rb'
+ - 'ee/lib/gitlab/ci/reports/license_scanning/report.rb'
+ - 'ee/spec/controllers/groups/audit_events_controller_spec.rb'
+ - 'ee/spec/controllers/projects/audit_events_controller_spec.rb'
+ - 'ee/spec/helpers/ee/geo_helper_spec.rb'
+ - 'ee/spec/lib/gitlab/custom_file_templates_spec.rb'
+ - 'ee/spec/lib/gitlab/spdx/catalogue_spec.rb'
+ - 'ee/spec/models/analytics/cycle_analytics/group_level_spec.rb'
+ - 'ee/spec/models/dast_site_profile_spec.rb'
+ - 'ee/spec/models/integrations/chat_message/vulnerability_message_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/releases/create_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/releases/update_spec.rb'
+ - 'ee/spec/services/analytics/cycle_analytics/stages/update_service_spec.rb'
+ - 'ee/spec/services/analytics/cycle_analytics/value_streams/create_service_spec.rb'
+ - 'ee/spec/services/analytics/cycle_analytics/value_streams/update_service_spec.rb'
+ - 'ee/spec/services/ee/groups/autocomplete_service_spec.rb'
+ - 'ee/spec/services/quick_actions/interpret_service_spec.rb'
+ - 'lib/banzai/filter/references/label_reference_filter.rb'
+ - 'lib/banzai/filter/references/milestone_reference_filter.rb'
+ - 'lib/banzai/renderer.rb'
+ - 'lib/gitlab/access.rb'
+ - 'lib/gitlab/analytics/cycle_analytics/default_stages.rb'
+ - 'lib/gitlab/checks/lfs_check.rb'
+ - 'lib/gitlab/ci/pipeline/chain/build/associations.rb'
+ - 'lib/gitlab/ci/pipeline/chain/validate/external.rb'
+ - 'lib/gitlab/ci/variables/collection/sort.rb'
+ - 'lib/gitlab/config/entry/validators.rb'
+ - 'lib/gitlab/git_access.rb'
+ - 'lib/gitlab/metrics/dashboard/importers/prometheus_metrics.rb'
+ - 'lib/gitlab/metrics/dashboard/stages/custom_metrics_details_inserter.rb'
+ - 'lib/gitlab/sidekiq_config/cli_methods.rb'
+ - 'lib/gitlab/usage/metrics/name_suggestion.rb'
+ - 'lib/gitlab/usage_data_counters/hll_redis_counter.rb'
+ - 'qa/qa/specs/features/browser_ui/3_create/jira/jira_basic_integration_spec.rb'
+ - 'qa/qa/support/page_error_checker.rb'
+ - 'scripts/perf/query_limiting_report.rb'
+ - 'spec/config/mail_room_spec.rb'
+ - 'spec/config/metrics/aggregates/aggregated_metrics_spec.rb'
+ - 'spec/finders/license_template_finder_spec.rb'
+ - 'spec/graphql/resolvers/ci/test_suite_resolver_spec.rb'
+ - 'spec/helpers/groups/group_members_helper_spec.rb'
+ - 'spec/lib/atlassian/jira_connect/serializers/pull_request_entity_spec.rb'
+ - 'spec/lib/banzai/reference_redactor_spec.rb'
+ - 'spec/lib/gitlab/ci/ansi2json/line_spec.rb'
+ - 'spec/lib/gitlab/ci/yaml_processor_spec.rb'
+ - 'spec/lib/gitlab/conflict/file_spec.rb'
+ - 'spec/lib/gitlab/git/blame_spec.rb'
+ - 'spec/lib/gitlab/git/conflict/parser_spec.rb'
+ - 'spec/lib/gitlab/language_detection_spec.rb'
+ - 'spec/lib/gitlab/lograge/custom_options_spec.rb'
+ - 'spec/lib/gitlab/metrics/dashboard/processor_spec.rb'
+ - 'spec/lib/gitlab/phabricator_import/conduit/tasks_response_spec.rb'
+ - 'spec/lib/gitlab/relative_positioning/item_context_spec.rb'
+ - 'spec/lib/gitlab/search/query_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_config/worker_matcher_spec.rb'
+ - 'spec/lib/gitlab/tree_summary_spec.rb'
+ - 'spec/lib/peek/views/rugged_spec.rb'
+ - 'spec/migrations/20210713042000_fix_ci_sources_pipelines_index_names_spec.rb'
+ - 'spec/models/ci/bridge_spec.rb'
+ - 'spec/models/ci/build_spec.rb'
+ - 'spec/models/ci/pipeline_spec.rb'
+ - 'spec/models/clusters/platforms/kubernetes_spec.rb'
+ - 'spec/models/instance_configuration_spec.rb'
+ - 'spec/models/integrations/chat_message/alert_message_spec.rb'
+ - 'spec/models/integrations/jira_spec.rb'
+ - 'spec/models/project_auto_devops_spec.rb'
+ - 'spec/models/project_spec.rb'
+ - 'spec/presenters/packages/detail/package_presenter_spec.rb'
+ - 'spec/presenters/packages/nuget/service_index_presenter_spec.rb'
+ - 'spec/serializers/ci/dag_pipeline_entity_spec.rb'
+ - 'spec/serializers/ci/pipeline_entity_spec.rb'
+ - 'spec/serializers/diff_file_entity_spec.rb'
+ - 'spec/serializers/stage_entity_spec.rb'
+ - 'spec/services/ci/pipeline_processing/atomic_processing_service/status_collection_spec.rb'
+ - 'spec/services/metrics/dashboard/custom_metric_embed_service_spec.rb'
+ - 'spec/services/projects/participants_service_spec.rb'
+ - 'spec/support/shared_contexts/markdown_golden_master_shared_examples.rb'
+ - 'tooling/danger/sidekiq_queues.rb'
diff --git a/.rubocop_todo/rails/rake_environment.yml b/.rubocop_todo/rails/rake_environment.yml
new file mode 100644
index 00000000000..d248db022ce
--- /dev/null
+++ b/.rubocop_todo/rails/rake_environment.yml
@@ -0,0 +1,25 @@
+---
+# Cop supports --auto-correct.
+Rails/RakeEnvironment:
+ # Offense count: 31
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'ee/lib/tasks/gitlab/elastic/test.rake'
+ - 'lib/tasks/config_lint.rake'
+ - 'lib/tasks/dev.rake'
+ - 'lib/tasks/gettext.rake'
+ - 'lib/tasks/gitlab/assets.rake'
+ - 'lib/tasks/gitlab/db.rake'
+ - 'lib/tasks/gitlab/docs/compile_deprecations.rake'
+ - 'lib/tasks/gitlab/docs/redirect.rake'
+ - 'lib/tasks/gitlab/helpers.rake'
+ - 'lib/tasks/gitlab/sidekiq.rake'
+ - 'lib/tasks/gitlab/tw/codeowners.rake'
+ - 'lib/tasks/gitlab/update_templates.rake'
+ - 'lib/tasks/lint.rake'
+ - 'lib/tasks/migrate/setup_postgresql.rake'
+ - 'lib/tasks/setup.rake'
+ - 'lib/tasks/test.rake'
+ - 'lib/tasks/yarn.rake'
+ - 'qa/qa/fixtures/auto_devops_rack/Rakefile'
diff --git a/.rubocop_todo/rails/redundant_foreign_key.yml b/.rubocop_todo/rails/redundant_foreign_key.yml
new file mode 100644
index 00000000000..6b2300ba792
--- /dev/null
+++ b/.rubocop_todo/rails/redundant_foreign_key.yml
@@ -0,0 +1,66 @@
+---
+# Cop supports --auto-correct.
+Rails/RedundantForeignKey:
+ # Offense count: 90
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/models/alert_management/metric_image.rb'
+ - 'app/models/ci/build.rb'
+ - 'app/models/ci/build_need.rb'
+ - 'app/models/ci/build_pending_state.rb'
+ - 'app/models/ci/build_trace_chunk.rb'
+ - 'app/models/ci/daily_build_group_report_result.rb'
+ - 'app/models/ci/job_artifact.rb'
+ - 'app/models/ci/job_variable.rb'
+ - 'app/models/ci/pipeline.rb'
+ - 'app/models/ci/sources/pipeline.rb'
+ - 'app/models/ci/stage.rb'
+ - 'app/models/ci/unit_test_failure.rb'
+ - 'app/models/clusters/applications/runner.rb'
+ - 'app/models/clusters/concerns/application_core.rb'
+ - 'app/models/clusters/integrations/elastic_stack.rb'
+ - 'app/models/clusters/integrations/prometheus.rb'
+ - 'app/models/commit_signatures/x509_commit_signature.rb'
+ - 'app/models/concerns/analytics/cycle_analytics/stage.rb'
+ - 'app/models/concerns/commit_signature.rb'
+ - 'app/models/group.rb'
+ - 'app/models/group_group_link.rb'
+ - 'app/models/integrations/zentao_tracker_data.rb'
+ - 'app/models/member.rb'
+ - 'app/models/merge_request.rb'
+ - 'app/models/merge_request/metrics.rb'
+ - 'app/models/namespace.rb'
+ - 'app/models/namespaces/project_namespace.rb'
+ - 'app/models/packages/debian/publication.rb'
+ - 'app/models/project.rb'
+ - 'app/models/resource_state_event.rb'
+ - 'app/models/review.rb'
+ - 'app/models/user.rb'
+ - 'app/models/x509_certificate.rb'
+ - 'ee/app/models/allowed_email_domain.rb'
+ - 'ee/app/models/boards/epic_board.rb'
+ - 'ee/app/models/boards/epic_list_user_preference.rb'
+ - 'ee/app/models/ci/sources/project.rb'
+ - 'ee/app/models/concerns/incident_management/base_pending_escalation.rb'
+ - 'ee/app/models/deployments/approval.rb'
+ - 'ee/app/models/ee/iteration.rb'
+ - 'ee/app/models/ee/service_desk_setting.rb'
+ - 'ee/app/models/geo/event_log.rb'
+ - 'ee/app/models/incident_management/escalation_rule.rb'
+ - 'ee/app/models/incident_management/oncall_participant.rb'
+ - 'ee/app/models/incident_management/oncall_shift.rb'
+ - 'ee/app/models/incident_management/pending_escalations/alert.rb'
+ - 'ee/app/models/incident_management/pending_escalations/issue.rb'
+ - 'ee/app/models/incident_management/timeline_event.rb'
+ - 'ee/app/models/issuable_metric_image.rb'
+ - 'ee/app/models/security/orchestration_policy_configuration.rb'
+ - 'ee/app/models/security/orchestration_policy_rule_schedule.rb'
+ - 'ee/app/models/vulnerabilities/feedback.rb'
+ - 'ee/app/models/vulnerabilities/finding.rb'
+ - 'ee/app/models/vulnerabilities/finding_signature.rb'
+ - 'ee/app/models/vulnerabilities/identifier.rb'
+ - 'ee/lib/ee/gitlab/background_migration/populate_uuids_for_security_findings.rb'
+ - 'ee/lib/ee/gitlab/background_migration/recalculate_vulnerability_finding_signatures_for_findings.rb'
+ - 'lib/gitlab/background_migration/drop_invalid_vulnerabilities.rb'
+ - 'lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid.rb'
diff --git a/.rubocop_todo/rails/skips_model_validations.yml b/.rubocop_todo/rails/skips_model_validations.yml
new file mode 100644
index 00000000000..e6402ef27f2
--- /dev/null
+++ b/.rubocop_todo/rails/skips_model_validations.yml
@@ -0,0 +1,748 @@
+---
+Rails/SkipsModelValidations:
+ # Offense count: 1424
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/controllers/import/github_controller.rb'
+ - 'app/controllers/projects/environments_controller.rb'
+ - 'app/controllers/projects/notes_controller.rb'
+ - 'app/models/alert_management/alert.rb'
+ - 'app/models/analytics/cycle_analytics/aggregation.rb'
+ - 'app/models/chat_name.rb'
+ - 'app/models/ci/build.rb'
+ - 'app/models/ci/build_trace_chunks/database.rb'
+ - 'app/models/ci/build_trace_metadata.rb'
+ - 'app/models/ci/daily_build_group_report_result.rb'
+ - 'app/models/ci/deleted_object.rb'
+ - 'app/models/ci/namespace_mirror.rb'
+ - 'app/models/ci/pending_build.rb'
+ - 'app/models/ci/pipeline_schedule.rb'
+ - 'app/models/ci/processable.rb'
+ - 'app/models/ci/project_mirror.rb'
+ - 'app/models/ci/resource_group.rb'
+ - 'app/models/ci/runner.rb'
+ - 'app/models/ci/running_build.rb'
+ - 'app/models/ci/unit_test.rb'
+ - 'app/models/commit_status.rb'
+ - 'app/models/concerns/batch_nullify_dependent_associations.rb'
+ - 'app/models/concerns/board_recent_visit.rb'
+ - 'app/models/concerns/cache_markdown_field.rb'
+ - 'app/models/concerns/can_move_repository_storage.rb'
+ - 'app/models/concerns/cascading_namespace_setting_attribute.rb'
+ - 'app/models/concerns/counter_attribute.rb'
+ - 'app/models/concerns/deprecated_assignee.rb'
+ - 'app/models/concerns/file_store_mounter.rb'
+ - 'app/models/concerns/has_wiki_page_meta_attributes.rb'
+ - 'app/models/concerns/noteable.rb'
+ - 'app/models/concerns/packages/debian/distribution.rb'
+ - 'app/models/concerns/relative_positioning.rb'
+ - 'app/models/concerns/repository_storage_movable.rb'
+ - 'app/models/concerns/resolvable_note.rb'
+ - 'app/models/concerns/schedulable.rb'
+ - 'app/models/concerns/subscribable.rb'
+ - 'app/models/container_expiration_policy.rb'
+ - 'app/models/customer_relations/contact.rb'
+ - 'app/models/customer_relations/organization.rb'
+ - 'app/models/deployment.rb'
+ - 'app/models/diff_note_position.rb'
+ - 'app/models/environment.rb'
+ - 'app/models/gpg_key.rb'
+ - 'app/models/group.rb'
+ - 'app/models/group_import_state.rb'
+ - 'app/models/hooks/web_hook.rb'
+ - 'app/models/internal_id.rb'
+ - 'app/models/issue.rb'
+ - 'app/models/jira_import_state.rb'
+ - 'app/models/loose_foreign_keys/deleted_record.rb'
+ - 'app/models/merge_request.rb'
+ - 'app/models/merge_request/diff_commit_user.rb'
+ - 'app/models/merge_request_diff.rb'
+ - 'app/models/namespace.rb'
+ - 'app/models/note.rb'
+ - 'app/models/project.rb'
+ - 'app/models/project_authorization.rb'
+ - 'app/models/project_import_state.rb'
+ - 'app/models/project_statistics.rb'
+ - 'app/models/project_wiki.rb'
+ - 'app/models/projects/ci_feature_usage.rb'
+ - 'app/models/projects/repository_storage_move.rb'
+ - 'app/models/projects/topic.rb'
+ - 'app/models/raw_usage_data.rb'
+ - 'app/models/remote_mirror.rb'
+ - 'app/models/route.rb'
+ - 'app/models/todo.rb'
+ - 'app/models/u2f_registration.rb'
+ - 'app/models/user.rb'
+ - 'app/models/user_custom_attribute.rb'
+ - 'app/models/user_interacted_project.rb'
+ - 'app/services/boards/lists/base_destroy_service.rb'
+ - 'app/services/boards/lists/move_service.rb'
+ - 'app/services/bulk_create_integration_service.rb'
+ - 'app/services/bulk_update_integration_service.rb'
+ - 'app/services/ci/abort_pipelines_service.rb'
+ - 'app/services/ci/disable_user_pipeline_schedules_service.rb'
+ - 'app/services/ci/expire_pipeline_cache_service.rb'
+ - 'app/services/ci/job_artifacts/create_service.rb'
+ - 'app/services/ci/job_artifacts/destroy_batch_service.rb'
+ - 'app/services/ci/job_artifacts/expire_project_build_artifacts_service.rb'
+ - 'app/services/ci/job_artifacts/update_unknown_locked_status_service.rb'
+ - 'app/services/ci/test_failure_history_service.rb'
+ - 'app/services/ci/update_build_state_service.rb'
+ - 'app/services/ci/update_pending_build_service.rb'
+ - 'app/services/clusters/agent_tokens/track_usage_service.rb'
+ - 'app/services/clusters/agents/refresh_authorization_service.rb'
+ - 'app/services/clusters/integrations/prometheus_health_check_service.rb'
+ - 'app/services/deployments/archive_in_project_service.rb'
+ - 'app/services/event_create_service.rb'
+ - 'app/services/groups/transfer_service.rb'
+ - 'app/services/issuable_base_service.rb'
+ - 'app/services/issues/move_service.rb'
+ - 'app/services/issues/set_crm_contacts_service.rb'
+ - 'app/services/keys/expiry_notification_service.rb'
+ - 'app/services/keys/last_used_service.rb'
+ - 'app/services/labels/promote_service.rb'
+ - 'app/services/labels/transfer_service.rb'
+ - 'app/services/merge_requests/base_service.rb'
+ - 'app/services/merge_requests/bulk_remove_attention_requested_service.rb'
+ - 'app/services/merge_requests/cleanup_refs_service.rb'
+ - 'app/services/merge_requests/ff_merge_service.rb'
+ - 'app/services/merge_requests/handle_assignees_change_service.rb'
+ - 'app/services/merge_requests/merge_service.rb'
+ - 'app/services/merge_requests/rebase_service.rb'
+ - 'app/services/merge_requests/reopen_service.rb'
+ - 'app/services/milestones/promote_service.rb'
+ - 'app/services/milestones/transfer_service.rb'
+ - 'app/services/packages/composer/create_package_service.rb'
+ - 'app/services/packages/debian/generate_distribution_service.rb'
+ - 'app/services/packages/generic/create_package_file_service.rb'
+ - 'app/services/packages/mark_package_files_for_destruction_service.rb'
+ - 'app/services/packages/npm/create_tag_service.rb'
+ - 'app/services/packages/pypi/create_package_service.rb'
+ - 'app/services/packages/rubygems/create_dependencies_service.rb'
+ - 'app/services/personal_access_tokens/last_used_service.rb'
+ - 'app/services/projects/destroy_service.rb'
+ - 'app/services/projects/detect_repository_languages_service.rb'
+ - 'app/services/projects/move_deploy_keys_projects_service.rb'
+ - 'app/services/projects/move_forks_service.rb'
+ - 'app/services/projects/move_lfs_objects_projects_service.rb'
+ - 'app/services/projects/move_notification_settings_service.rb'
+ - 'app/services/projects/move_project_authorizations_service.rb'
+ - 'app/services/projects/move_project_group_links_service.rb'
+ - 'app/services/projects/move_project_members_service.rb'
+ - 'app/services/projects/move_users_star_projects_service.rb'
+ - 'app/services/projects/repository_languages_service.rb'
+ - 'app/services/projects/unlink_fork_service.rb'
+ - 'app/services/reset_project_cache_service.rb'
+ - 'app/services/spam/akismet_mark_as_spam_service.rb'
+ - 'app/services/spam/ham_service.rb'
+ - 'app/services/suggestions/apply_service.rb'
+ - 'app/services/suggestions/outdate_service.rb'
+ - 'app/services/users/activity_service.rb'
+ - 'app/services/users/migrate_to_ghost_user_service.rb'
+ - 'app/services/users/respond_to_terms_service.rb'
+ - 'app/services/users/set_status_service.rb'
+ - 'app/services/users/upsert_credit_card_validation_service.rb'
+ - 'app/services/x509_certificate_revoke_service.rb'
+ - 'app/uploaders/file_mover.rb'
+ - 'app/uploaders/object_storage.rb'
+ - 'app/workers/analytics/usage_trends/counter_job_worker.rb'
+ - 'app/workers/concerns/dependency_proxy/expireable.rb'
+ - 'app/workers/concerns/packages/cleanup_artifact_worker.rb'
+ - 'app/workers/container_expiration_policy_worker.rb'
+ - 'app/workers/namespaceless_project_destroy_worker.rb'
+ - 'app/workers/packages/helm/extraction_worker.rb'
+ - 'app/workers/packages/nuget/extraction_worker.rb'
+ - 'app/workers/packages/rubygems/extraction_worker.rb'
+ - 'app/workers/personal_access_tokens/expired_notification_worker.rb'
+ - 'app/workers/personal_access_tokens/expiring_worker.rb'
+ - 'app/workers/pipeline_metrics_worker.rb'
+ - 'app/workers/process_commit_worker.rb'
+ - 'app/workers/repository_check/clear_worker.rb'
+ - 'app/workers/repository_check/single_repository_worker.rb'
+ - 'app/workers/stuck_merge_jobs_worker.rb'
+ - 'app/workers/x509_issuer_crl_check_worker.rb'
+ - 'db/migrate/20210428151144_update_invalid_web_hooks.rb'
+ - 'db/migrate/20210629031900_associate_existing_dast_builds_with_variables.rb'
+ - 'db/migrate/20210630224625_generate_customers_dot_jwt_signing_key.rb'
+ - 'db/migrate/20210729123101_confirm_security_bot.rb'
+ - 'db/migrate/20220413054910_backfill_delayed_group_deletion.rb'
+ - 'db/post_migrate/20210303121224_update_gitlab_subscriptions_start_at_post_eoa.rb'
+ - 'db/post_migrate/20210303165302_cleanup_cluster_tokens_with_null_name.rb'
+ - 'db/post_migrate/20210406144743_backfill_total_tuple_count_for_batched_migrations.rb'
+ - 'db/post_migrate/20210513155546_backfill_nuget_temporary_packages_to_processing_status.rb'
+ - 'db/post_migrate/20210601073400_fix_total_stage_in_vsa.rb'
+ - 'db/post_migrate/20210615234935_fix_batched_migrations_old_format_job_arguments.rb'
+ - 'db/post_migrate/20210722042939_update_issuable_slas_where_issue_closed.rb'
+ - 'db/post_migrate/20210731132939_backfill_stage_event_hash.rb'
+ - 'db/post_migrate/20210809123658_orphaned_invite_tokens_cleanup.rb'
+ - 'db/post_migrate/20210811122206_update_external_project_bots.rb'
+ - 'db/post_migrate/20210825150212_cleanup_remaining_orphan_invites.rb'
+ - 'db/post_migrate/20210826171758_initialize_throttle_unauthenticated_api_columns.rb'
+ - 'db/post_migrate/20210901153324_slice_merge_request_diff_commit_migrations.rb'
+ - 'db/post_migrate/20210908132335_disable_job_token_scope_when_unused.rb'
+ - 'db/post_migrate/20210914095310_cleanup_orphan_project_access_tokens.rb'
+ - 'db/post_migrate/20211217174331_mark_recalculate_finding_signatures_as_completed.rb'
+ - 'db/post_migrate/20211220123956_update_invalid_member_states.rb'
+ - 'db/post_migrate/20220305223212_add_security_training_providers.rb'
+ - 'db/post_migrate/20220307203459_rename_user_email_lookup_limit_setting_to_search_settings_cleanup.rb'
+ - 'db/post_migrate/20220322132242_update_pages_onboarding_state.rb'
+ - 'ee/app/controllers/ee/clusters/clusters_controller.rb'
+ - 'ee/app/models/approval_merge_request_rule.rb'
+ - 'ee/app/models/ci/minutes/namespace_monthly_usage.rb'
+ - 'ee/app/models/ci/minutes/project_monthly_usage.rb'
+ - 'ee/app/models/concerns/deprecated_approvals_before_merge.rb'
+ - 'ee/app/models/concerns/epic_tree_sorting.rb'
+ - 'ee/app/models/concerns/geo/replicable_registry.rb'
+ - 'ee/app/models/concerns/geo/verification_state.rb'
+ - 'ee/app/models/ee/description_version.rb'
+ - 'ee/app/models/ee/environment.rb'
+ - 'ee/app/models/ee/epic.rb'
+ - 'ee/app/models/ee/event.rb'
+ - 'ee/app/models/ee/group.rb'
+ - 'ee/app/models/ee/iteration.rb'
+ - 'ee/app/models/ee/namespace_setting.rb'
+ - 'ee/app/models/ee/project_wiki.rb'
+ - 'ee/app/models/geo/container_repository_registry.rb'
+ - 'ee/app/models/geo/design_registry.rb'
+ - 'ee/app/models/geo/project_registry.rb'
+ - 'ee/app/models/geo_node.rb'
+ - 'ee/app/models/incident_management/oncall_rotation.rb'
+ - 'ee/app/models/vulnerabilities/feedback.rb'
+ - 'ee/app/services/app_sec/dast/profiles/create_associations_service.rb'
+ - 'ee/app/services/ci/minutes/additional_packs/change_namespace_service.rb'
+ - 'ee/app/services/ci/minutes/batch_reset_service.rb'
+ - 'ee/app/services/ci/minutes/refresh_cached_data_service.rb'
+ - 'ee/app/services/ci/minutes/reset_usage_service.rb'
+ - 'ee/app/services/ci/minutes/update_project_and_namespace_usage_service.rb'
+ - 'ee/app/services/ci/sync_reports_to_approval_rules_service.rb'
+ - 'ee/app/services/ee/issues/move_service.rb'
+ - 'ee/app/services/ee/labels/promote_service.rb'
+ - 'ee/app/services/ee/milestones/promote_service.rb'
+ - 'ee/app/services/ee/projects/transfer_service.rb'
+ - 'ee/app/services/ee/users/migrate_to_ghost_user_service.rb'
+ - 'ee/app/services/epics/strategies/due_date_inherited_strategy.rb'
+ - 'ee/app/services/epics/strategies/start_date_inherited_strategy.rb'
+ - 'ee/app/services/geo/job_artifact_deleted_event_store.rb'
+ - 'ee/app/services/geo/repository_verification_reset.rb'
+ - 'ee/app/services/incident_management/oncall_rotations/edit_service.rb'
+ - 'ee/app/services/incident_management/oncall_rotations/remove_participant_service.rb'
+ - 'ee/app/services/iterations/cadences/create_iterations_in_advance_service.rb'
+ - 'ee/app/services/iterations/cadences/destroy_service.rb'
+ - 'ee/app/services/iterations/delete_service.rb'
+ - 'ee/app/services/iterations/roll_over_issues_service.rb'
+ - 'ee/app/services/ldap_group_reset_service.rb'
+ - 'ee/app/services/personal_access_tokens/revoke_invalid_tokens.rb'
+ - 'ee/app/services/security/findings/cleanup_service.rb'
+ - 'ee/app/services/security/ingestion/mark_as_resolved_service.rb'
+ - 'ee/app/services/security/store_findings_metadata_service.rb'
+ - 'ee/app/services/security/store_scan_service.rb'
+ - 'ee/app/services/security/update_training_service.rb'
+ - 'ee/app/services/vulnerabilities/starboard_vulnerability_resolve_service.rb'
+ - 'ee/app/workers/import_software_licenses_worker.rb'
+ - 'ee/app/workers/iterations_update_status_worker.rb'
+ - 'ee/app/workers/sync_seat_link_request_worker.rb'
+ - 'ee/lib/api/geo_replication.rb'
+ - 'ee/lib/ee/api/protected_branches.rb'
+ - 'ee/lib/ee/gitlab/auth/ldap/sync/group.rb'
+ - 'ee/lib/ee/gitlab/background_migration/backfill_iteration_cadence_id_for_boards.rb'
+ - 'ee/lib/ee/gitlab/background_migration/migrate_job_artifact_registry_to_ssf.rb'
+ - 'ee/lib/ee/gitlab/background_migration/migrate_requirements_to_work_items.rb'
+ - 'ee/lib/ee/gitlab/background_migration/populate_resolved_on_default_branch_column.rb'
+ - 'ee/lib/ee/gitlab/background_migration/populate_uuids_for_security_findings.rb'
+ - 'ee/lib/gitlab/geo/replicator.rb'
+ - 'ee/lib/tasks/migrate/ldap.rake'
+ - 'ee/spec/controllers/admin/geo/projects_controller_spec.rb'
+ - 'ee/spec/controllers/groups/dependency_proxy_for_containers_controller_spec.rb'
+ - 'ee/spec/controllers/groups/ldaps_controller_spec.rb'
+ - 'ee/spec/controllers/projects/merge_requests_controller_spec.rb'
+ - 'ee/spec/controllers/trials_controller_spec.rb'
+ - 'ee/spec/factories/import_states.rb'
+ - 'ee/spec/features/admin/admin_settings_spec.rb'
+ - 'ee/spec/features/epic_boards/epic_boards_sidebar_spec.rb'
+ - 'ee/spec/features/projects/settings/ee/service_desk_setting_spec.rb'
+ - 'ee/spec/features/projects/settings/issues_settings_spec.rb'
+ - 'ee/spec/features/projects/settings/protected_environments_spec.rb'
+ - 'ee/spec/features/projects/user_applies_custom_file_template_spec.rb'
+ - 'ee/spec/features/trials/select_namespace_spec.rb'
+ - 'ee/spec/finders/geo/repository_verification_finder_spec.rb'
+ - 'ee/spec/finders/security/findings_finder_spec.rb'
+ - 'ee/spec/finders/security/training_urls_finder_spec.rb'
+ - 'ee/spec/finders/template_finder_spec.rb'
+ - 'ee/spec/graphql/mutations/issues/set_epic_spec.rb'
+ - 'ee/spec/graphql/mutations/issues/set_escalation_policy_spec.rb'
+ - 'ee/spec/graphql/mutations/issues/set_iteration_spec.rb'
+ - 'ee/spec/graphql/resolvers/boards/epic_lists_resolvers_spec.rb'
+ - 'ee/spec/helpers/ee/blob_helper_spec.rb'
+ - 'ee/spec/helpers/push_rules_helper_spec.rb'
+ - 'ee/spec/lib/banzai/filter/references/epic_reference_filter_spec.rb'
+ - 'ee/spec/lib/banzai/filter/references/iteration_reference_filter_spec.rb'
+ - 'ee/spec/lib/banzai/filter/references/vulnerability_reference_filters_spec.rb'
+ - 'ee/spec/lib/ee/api/helpers_spec.rb'
+ - 'ee/spec/lib/ee/audit/group_changes_auditor_spec.rb'
+ - 'ee/spec/lib/ee/audit/project_changes_auditor_spec.rb'
+ - 'ee/spec/lib/ee/audit/project_ci_cd_setting_changes_auditor_spec.rb'
+ - 'ee/spec/lib/ee/audit/project_feature_changes_auditor_spec.rb'
+ - 'ee/spec/lib/ee/audit/protected_branches_changes_auditor_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/fix_incorrect_max_seats_used_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/ldap/access_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/saml/user_spec.rb'
+ - 'ee/spec/lib/gitlab/custom_file_templates_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/geo_tasks_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/jwt_request_decoder_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/replication/file_downloader_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/replication/file_transfer_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/replication/job_artifact_downloader_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/signed_data_spec.rb'
+ - 'ee/spec/lib/gitlab/git_access_spec.rb'
+ - 'ee/spec/models/application_setting_spec.rb'
+ - 'ee/spec/models/ci/minutes/namespace_monthly_usage_spec.rb'
+ - 'ee/spec/models/concerns/elastic/note_spec.rb'
+ - 'ee/spec/models/concerns/geo/verification_state_spec.rb'
+ - 'ee/spec/models/dast/profile_schedule_spec.rb'
+ - 'ee/spec/models/ee/group_spec.rb'
+ - 'ee/spec/models/ee/groups/feature_setting_spec.rb'
+ - 'ee/spec/models/ee/iteration_spec.rb'
+ - 'ee/spec/models/ee/iterations/cadence_spec.rb'
+ - 'ee/spec/models/ee/key_spec.rb'
+ - 'ee/spec/models/ee/namespace_limit_spec.rb'
+ - 'ee/spec/models/ee/vulnerability_spec.rb'
+ - 'ee/spec/models/geo_node_spec.rb'
+ - 'ee/spec/models/geo_node_status_spec.rb'
+ - 'ee/spec/models/group_wiki_repository_spec.rb'
+ - 'ee/spec/models/instance_security_dashboard_spec.rb'
+ - 'ee/spec/models/merge_request/blocking_spec.rb'
+ - 'ee/spec/models/merge_train_spec.rb'
+ - 'ee/spec/models/packages/package_file_spec.rb'
+ - 'ee/spec/models/project_feature_spec.rb'
+ - 'ee/spec/models/project_import_state_spec.rb'
+ - 'ee/spec/models/project_spec.rb'
+ - 'ee/spec/models/project_team_spec.rb'
+ - 'ee/spec/models/push_rule_spec.rb'
+ - 'ee/spec/models/requirements_management/requirement_spec.rb'
+ - 'ee/spec/models/security/scan_spec.rb'
+ - 'ee/spec/models/snippet_repository_spec.rb'
+ - 'ee/spec/models/vulnerabilities/feedback_spec.rb'
+ - 'ee/spec/models/vulnerabilities/stat_diff_spec.rb'
+ - 'ee/spec/policies/group_policy_spec.rb'
+ - 'ee/spec/policies/project_policy_spec.rb'
+ - 'ee/spec/requests/api/epic_issues_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/issues/promote_to_epic_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/issues/set_epic_spec.rb'
+ - 'ee/spec/requests/api/groups_spec.rb'
+ - 'ee/spec/requests/api/internal/app_sec/dast/site_validations_spec.rb'
+ - 'ee/spec/requests/api/internal/kubernetes_spec.rb'
+ - 'ee/spec/requests/api/namespaces_spec.rb'
+ - 'ee/spec/requests/api/project_approvals_spec.rb'
+ - 'ee/spec/requests/git_http_geo_spec.rb'
+ - 'ee/spec/requests/projects/merge_requests_controller_spec.rb'
+ - 'ee/spec/serializers/merge_request_widget_entity_spec.rb'
+ - 'ee/spec/services/ci/create_pipeline_service_spec.rb'
+ - 'ee/spec/services/ci/minutes/email_notification_service_spec.rb'
+ - 'ee/spec/services/ci/register_job_service_spec.rb'
+ - 'ee/spec/services/ci_cd/setup_project_spec.rb'
+ - 'ee/spec/services/ee/boards/issues/list_service_spec.rb'
+ - 'ee/spec/services/ee/notification_service_spec.rb'
+ - 'ee/spec/services/ee/releases/create_evidence_service_spec.rb'
+ - 'ee/spec/services/epic_issues/update_service_spec.rb'
+ - 'ee/spec/services/epics/issue_promote_service_spec.rb'
+ - 'ee/spec/services/epics/update_service_spec.rb'
+ - 'ee/spec/services/geo/file_download_service_spec.rb'
+ - 'ee/spec/services/geo/file_registry_removal_service_spec.rb'
+ - 'ee/spec/services/geo/hashed_storage_migration_service_spec.rb'
+ - 'ee/spec/services/groups/create_service_spec.rb'
+ - 'ee/spec/services/groups/update_service_spec.rb'
+ - 'ee/spec/services/merge_trains/check_status_service_spec.rb'
+ - 'ee/spec/services/merge_trains/refresh_merge_request_service_spec.rb'
+ - 'ee/spec/services/merge_trains/refresh_service_spec.rb'
+ - 'ee/spec/services/projects/setup_ci_cd_spec.rb'
+ - 'ee/spec/services/projects/update_mirror_service_spec.rb'
+ - 'ee/spec/services/security/ingestion/ingest_report_slice_service_spec.rb'
+ - 'ee/spec/services/security/security_orchestration_policies/create_pipeline_service_spec.rb'
+ - 'ee/spec/services/vulnerabilities/starboard_vulnerability_resolve_service_spec.rb'
+ - 'ee/spec/services/vulnerabilities/statistics/adjustment_service_spec.rb'
+ - 'ee/spec/services/vulnerabilities/statistics/update_service_spec.rb'
+ - 'ee/spec/support/helpers/ee/geo_helpers.rb'
+ - 'ee/spec/support/shared_examples/models/requirement_issues_examples.rb'
+ - 'ee/spec/support/shared_examples/policies/protected_environments_shared_examples.rb'
+ - 'ee/spec/workers/app_sec/dast/profile_schedule_worker_spec.rb'
+ - 'ee/spec/workers/ee/repository_check/batch_worker_spec.rb'
+ - 'ee/spec/workers/geo/repositories_clean_up_worker_spec.rb'
+ - 'ee/spec/workers/geo/repository_shard_sync_worker_spec.rb'
+ - 'ee/spec/workers/geo/repository_sync_worker_spec.rb'
+ - 'ee/spec/workers/geo/repository_verification/primary/batch_worker_spec.rb'
+ - 'ee/spec/workers/geo/repository_verification/primary/shard_worker_spec.rb'
+ - 'ee/spec/workers/geo/repository_verification/secondary/scheduler_worker_spec.rb'
+ - 'ee/spec/workers/geo/repository_verification/secondary/single_worker_spec.rb'
+ - 'ee/spec/workers/geo/verification_state_backfill_service_spec.rb'
+ - 'ee/spec/workers/import_software_licenses_worker_spec.rb'
+ - 'ee/spec/workers/iterations/roll_over_issues_worker_spec.rb'
+ - 'ee/spec/workers/iterations_update_status_worker_spec.rb'
+ - 'ee/spec/workers/network_policy_metrics_worker_spec.rb'
+ - 'ee/spec/workers/security/orchestration_policy_rule_schedule_namespace_worker_spec.rb'
+ - 'ee/spec/workers/security/orchestration_policy_rule_schedule_worker_spec.rb'
+ - 'ee/spec/workers/update_all_mirrors_worker_spec.rb'
+ - 'lib/api/commit_statuses.rb'
+ - 'lib/api/usage_data.rb'
+ - 'lib/gitlab/background_migration/add_primary_email_to_emails_if_user_confirmed.rb'
+ - 'lib/gitlab/background_migration/backfill_ci_queuing_tables.rb'
+ - 'lib/gitlab/background_migration/backfill_draft_status_on_merge_requests.rb'
+ - 'lib/gitlab/background_migration/backfill_jira_tracker_deployment_type2.rb'
+ - 'lib/gitlab/background_migration/backfill_member_namespace_for_group_members.rb'
+ - 'lib/gitlab/background_migration/backfill_namespace_id_for_namespace_route.rb'
+ - 'lib/gitlab/background_migration/backfill_namespace_traversal_ids_roots.rb'
+ - 'lib/gitlab/background_migration/backfill_projects_with_coverage.rb'
+ - 'lib/gitlab/background_migration/backfill_topics_title.rb'
+ - 'lib/gitlab/background_migration/backfill_user_namespace.rb'
+ - 'lib/gitlab/background_migration/backfill_work_item_type_id_for_issues.rb'
+ - 'lib/gitlab/background_migration/cleanup_draft_data_from_faulty_regex.rb'
+ - 'lib/gitlab/background_migration/copy_column_using_background_migration_job.rb'
+ - 'lib/gitlab/background_migration/legacy_upload_mover.rb'
+ - 'lib/gitlab/background_migration/merge_topics_with_same_name.rb'
+ - 'lib/gitlab/background_migration/migrate_merge_request_diff_commit_users.rb'
+ - 'lib/gitlab/background_migration/migrate_null_private_profile_to_false.rb'
+ - 'lib/gitlab/background_migration/migrate_personal_namespace_project_maintainer_to_owner.rb'
+ - 'lib/gitlab/background_migration/migrate_project_taggings_context_from_tags_to_topics.rb'
+ - 'lib/gitlab/background_migration/migrate_shimo_confluence_integration_category.rb'
+ - 'lib/gitlab/background_migration/migrate_u2f_webauthn.rb'
+ - 'lib/gitlab/background_migration/nullify_orphan_runner_id_on_ci_builds.rb'
+ - 'lib/gitlab/background_migration/project_namespaces/backfill_project_namespaces.rb'
+ - 'lib/gitlab/background_migration/remove_all_trace_expiration_dates.rb'
+ - 'lib/gitlab/background_migration/reset_duplicate_ci_runners_token_encrypted_values_on_projects.rb'
+ - 'lib/gitlab/background_migration/reset_duplicate_ci_runners_token_values_on_projects.rb'
+ - 'lib/gitlab/bitbucket_import/importer.rb'
+ - 'lib/gitlab/bitbucket_server_import/importer.rb'
+ - 'lib/gitlab/ci/tags/bulk_insert.rb'
+ - 'lib/gitlab/ci/trace.rb'
+ - 'lib/gitlab/composer/cache.rb'
+ - 'lib/gitlab/database/background_migration_job.rb'
+ - 'lib/gitlab/database/postgresql_adapter/dump_schema_versions_mixin.rb'
+ - 'lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base.rb'
+ - 'lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces.rb'
+ - 'lib/gitlab/database/schema_migrations.rb'
+ - 'lib/gitlab/etag_caching/middleware.rb'
+ - 'lib/gitlab/fogbugz_import/importer.rb'
+ - 'lib/gitlab/github_import/importer/pull_request_merged_by_importer.rb'
+ - 'lib/gitlab/github_import/importer/pull_request_review_importer.rb'
+ - 'lib/gitlab/import/set_async_jid.rb'
+ - 'lib/gitlab/jira_import/handle_labels_service.rb'
+ - 'lib/gitlab/job_waiter.rb'
+ - 'lib/gitlab/legacy_github_import/importer.rb'
+ - 'lib/gitlab/markdown_cache/active_record/extension.rb'
+ - 'lib/gitlab/otp_key_rotator.rb'
+ - 'lib/gitlab/seeder.rb'
+ - 'lib/tasks/ci/cleanup.rake'
+ - 'lib/tasks/gitlab/external_diffs.rake'
+ - 'lib/tasks/gitlab/ldap.rake'
+ - 'lib/tasks/gitlab/user_management.rake'
+ - 'lib/tasks/migrate/migrate_iids.rake'
+ - 'spec/controllers/groups/dependency_proxy_for_containers_controller_spec.rb'
+ - 'spec/controllers/groups_controller_spec.rb'
+ - 'spec/controllers/import/bitbucket_controller_spec.rb'
+ - 'spec/controllers/import/gitlab_controller_spec.rb'
+ - 'spec/controllers/omniauth_callbacks_controller_spec.rb'
+ - 'spec/controllers/projects/forks_controller_spec.rb'
+ - 'spec/controllers/projects/graphs_controller_spec.rb'
+ - 'spec/controllers/projects/jobs_controller_spec.rb'
+ - 'spec/controllers/projects/merge_requests/content_controller_spec.rb'
+ - 'spec/controllers/projects/merge_requests_controller_spec.rb'
+ - 'spec/controllers/projects/notes_controller_spec.rb'
+ - 'spec/controllers/projects/pipelines/tests_controller_spec.rb'
+ - 'spec/controllers/projects/repositories_controller_spec.rb'
+ - 'spec/controllers/projects/settings/ci_cd_controller_spec.rb'
+ - 'spec/controllers/projects/starrers_controller_spec.rb'
+ - 'spec/controllers/projects_controller_spec.rb'
+ - 'spec/controllers/uploads_controller_spec.rb'
+ - 'spec/factories/alert_management/alerts.rb'
+ - 'spec/factories/container_expiration_policies.rb'
+ - 'spec/factories/design_management/versions.rb'
+ - 'spec/factories/environments.rb'
+ - 'spec/factories/import_states.rb'
+ - 'spec/factories/projects.rb'
+ - 'spec/factories/usage_data.rb'
+ - 'spec/features/admin/admin_settings_spec.rb'
+ - 'spec/features/admin/admin_uses_repository_checks_spec.rb'
+ - 'spec/features/dashboard/projects_spec.rb'
+ - 'spec/features/groups_spec.rb'
+ - 'spec/features/issues/create_issue_for_discussions_in_merge_request_spec.rb'
+ - 'spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb'
+ - 'spec/features/issues/discussion_lock_spec.rb'
+ - 'spec/features/merge_request/merge_request_discussion_lock_spec.rb'
+ - 'spec/features/merge_request/user_creates_image_diff_notes_spec.rb'
+ - 'spec/features/merge_request/user_locks_discussion_spec.rb'
+ - 'spec/features/merge_request/user_merges_only_if_pipeline_succeeds_spec.rb'
+ - 'spec/features/merge_request/user_sees_diff_spec.rb'
+ - 'spec/features/merge_request/user_sees_merge_button_depending_on_unresolved_discussions_spec.rb'
+ - 'spec/features/merge_request/user_sees_merge_widget_spec.rb'
+ - 'spec/features/merge_request/user_sees_pipelines_spec.rb'
+ - 'spec/features/merge_request/user_views_merge_request_from_deleted_fork_spec.rb'
+ - 'spec/features/monitor_sidebar_link_spec.rb'
+ - 'spec/features/password_reset_spec.rb'
+ - 'spec/features/profiles/emails_spec.rb'
+ - 'spec/features/projects/blobs/blob_show_spec.rb'
+ - 'spec/features/projects/diffs/diff_show_spec.rb'
+ - 'spec/features/projects/features_visibility_spec.rb'
+ - 'spec/features/projects/fork_spec.rb'
+ - 'spec/features/projects/jobs/user_browses_jobs_spec.rb'
+ - 'spec/features/projects/jobs_spec.rb'
+ - 'spec/features/projects/members/invite_group_spec.rb'
+ - 'spec/features/projects/milestones/milestone_spec.rb'
+ - 'spec/features/projects/pipeline_schedules_spec.rb'
+ - 'spec/features/projects/pipelines/pipeline_spec.rb'
+ - 'spec/features/projects/settings/service_desk_setting_spec.rb'
+ - 'spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb'
+ - 'spec/features/projects/user_sees_sidebar_spec.rb'
+ - 'spec/features/projects_spec.rb'
+ - 'spec/features/refactor_blob_viewer_disabled/projects/blobs/blob_show_spec.rb'
+ - 'spec/features/u2f_spec.rb'
+ - 'spec/features/users/show_spec.rb'
+ - 'spec/features/webauthn_spec.rb'
+ - 'spec/finders/groups_finder_spec.rb'
+ - 'spec/finders/notes_finder_spec.rb'
+ - 'spec/finders/packages/go/package_finder_spec.rb'
+ - 'spec/finders/packages/maven/package_finder_spec.rb'
+ - 'spec/finders/packages/npm/package_finder_spec.rb'
+ - 'spec/finders/packages/nuget/package_finder_spec.rb'
+ - 'spec/finders/packages/package_finder_spec.rb'
+ - 'spec/finders/projects_finder_spec.rb'
+ - 'spec/finders/releases/group_releases_finder_spec.rb'
+ - 'spec/finders/releases_finder_spec.rb'
+ - 'spec/finders/user_group_notification_settings_finder_spec.rb'
+ - 'spec/graphql/mutations/custom_emoji/destroy_spec.rb'
+ - 'spec/graphql/mutations/issues/set_escalation_status_spec.rb'
+ - 'spec/graphql/mutations/issues/update_spec.rb'
+ - 'spec/graphql/resolvers/ci/test_suite_resolver_spec.rb'
+ - 'spec/graphql/types/project_type_spec.rb'
+ - 'spec/helpers/auth_helper_spec.rb'
+ - 'spec/helpers/events_helper_spec.rb'
+ - 'spec/helpers/groups_helper_spec.rb'
+ - 'spec/helpers/import_helper_spec.rb'
+ - 'spec/helpers/members_helper_spec.rb'
+ - 'spec/helpers/projects_helper_spec.rb'
+ - 'spec/initializers/active_record_locking_spec.rb'
+ - 'spec/lib/api/helpers_spec.rb'
+ - 'spec/lib/backup/repositories_spec.rb'
+ - 'spec/lib/banzai/filter/references/issue_reference_filter_spec.rb'
+ - 'spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb'
+ - 'spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb'
+ - 'spec/lib/banzai/reference_parser/merge_request_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/snippet_parser_spec.rb'
+ - 'spec/lib/gitlab/asciidoc_spec.rb'
+ - 'spec/lib/gitlab/auth/saml/user_spec.rb'
+ - 'spec/lib/gitlab/background_migration/backfill_project_repositories_spec.rb'
+ - 'spec/lib/gitlab/background_migration/batched_migration_job_spec.rb'
+ - 'spec/lib/gitlab/background_migration/update_timelogs_null_spent_at_spec.rb'
+ - 'spec/lib/gitlab/ci/variables/builder/group_spec.rb'
+ - 'spec/lib/gitlab/ci/variables/builder/project_spec.rb'
+ - 'spec/lib/gitlab/contributions_calendar_spec.rb'
+ - 'spec/lib/gitlab/cycle_analytics/permissions_spec.rb'
+ - 'spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb'
+ - 'spec/lib/gitlab/database/batch_count_spec.rb'
+ - 'spec/lib/gitlab/database/consistency_checker_spec.rb'
+ - 'spec/lib/gitlab/database/load_balancing/connection_proxy_spec.rb'
+ - 'spec/lib/gitlab/database/load_balancing_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb'
+ - 'spec/lib/gitlab/database/query_analyzers/prevent_cross_database_modification_spec.rb'
+ - 'spec/lib/gitlab/database/schema_migrations/migrations_spec.rb'
+ - 'spec/lib/gitlab/discussions_diff/file_collection_spec.rb'
+ - 'spec/lib/gitlab/email/handler/create_note_handler_spec.rb'
+ - 'spec/lib/gitlab/email/handler/create_note_on_issuable_handler_spec.rb'
+ - 'spec/lib/gitlab/etag_caching/store_spec.rb'
+ - 'spec/lib/gitlab/git_access_spec.rb'
+ - 'spec/lib/gitlab/git_access_wiki_spec.rb'
+ - 'spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb'
+ - 'spec/lib/gitlab/middleware/go_spec.rb'
+ - 'spec/lib/gitlab/middleware/query_analyzer_spec.rb'
+ - 'spec/lib/gitlab/object_hierarchy_spec.rb'
+ - 'spec/lib/gitlab/pages_transfer_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_middleware/query_analyzer_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/project_information_menu_spec.rb'
+ - 'spec/mailers/notify_spec.rb'
+ - 'spec/migrations/20211126115449_encrypt_static_objects_external_storage_auth_token_spec.rb'
+ - 'spec/migrations/remove_duplicate_dast_site_tokens_spec.rb'
+ - 'spec/migrations/schedule_update_timelogs_null_spent_at_spec.rb'
+ - 'spec/models/application_setting_spec.rb'
+ - 'spec/models/ci/build_dependencies_spec.rb'
+ - 'spec/models/ci/build_spec.rb'
+ - 'spec/models/ci/group_spec.rb'
+ - 'spec/models/ci/legacy_stage_spec.rb'
+ - 'spec/models/ci/pipeline_schedule_spec.rb'
+ - 'spec/models/ci/pipeline_spec.rb'
+ - 'spec/models/ci/processable_spec.rb'
+ - 'spec/models/ci/resource_group_spec.rb'
+ - 'spec/models/ci/runner_spec.rb'
+ - 'spec/models/ci/stage_spec.rb'
+ - 'spec/models/commit_signatures/gpg_signature_spec.rb'
+ - 'spec/models/commit_status_spec.rb'
+ - 'spec/models/concerns/cache_markdown_field_spec.rb'
+ - 'spec/models/concerns/deployment_platform_spec.rb'
+ - 'spec/models/concerns/deprecated_assignee_spec.rb'
+ - 'spec/models/concerns/each_batch_spec.rb'
+ - 'spec/models/concerns/pg_full_text_searchable_spec.rb'
+ - 'spec/models/concerns/project_features_compatibility_spec.rb'
+ - 'spec/models/concerns/spammable_spec.rb'
+ - 'spec/models/container_repository_spec.rb'
+ - 'spec/models/deploy_keys_project_spec.rb'
+ - 'spec/models/deploy_token_spec.rb'
+ - 'spec/models/diff_discussion_spec.rb'
+ - 'spec/models/diff_note_spec.rb'
+ - 'spec/models/environment_spec.rb'
+ - 'spec/models/group_spec.rb'
+ - 'spec/models/guest_spec.rb'
+ - 'spec/models/integration_spec.rb'
+ - 'spec/models/issue_spec.rb'
+ - 'spec/models/loose_foreign_keys/deleted_record_spec.rb'
+ - 'spec/models/member_spec.rb'
+ - 'spec/models/members/group_member_spec.rb'
+ - 'spec/models/members/project_member_spec.rb'
+ - 'spec/models/merge_request_diff_spec.rb'
+ - 'spec/models/merge_request_spec.rb'
+ - 'spec/models/namespace/traversal_hierarchy_spec.rb'
+ - 'spec/models/namespace_spec.rb'
+ - 'spec/models/note_spec.rb'
+ - 'spec/models/project_authorization_spec.rb'
+ - 'spec/models/project_feature_spec.rb'
+ - 'spec/models/project_spec.rb'
+ - 'spec/models/project_statistics_spec.rb'
+ - 'spec/models/projects/build_artifacts_size_refresh_spec.rb'
+ - 'spec/models/projects/topic_spec.rb'
+ - 'spec/models/remote_mirror_spec.rb'
+ - 'spec/models/repository_spec.rb'
+ - 'spec/models/route_spec.rb'
+ - 'spec/models/snippet_repository_spec.rb'
+ - 'spec/models/user_spec.rb'
+ - 'spec/policies/ci/build_policy_spec.rb'
+ - 'spec/policies/custom_emoji_policy_spec.rb'
+ - 'spec/policies/note_policy_spec.rb'
+ - 'spec/policies/project_policy_spec.rb'
+ - 'spec/presenters/ci/build_presenter_spec.rb'
+ - 'spec/presenters/project_presenter_spec.rb'
+ - 'spec/requests/api/ci/job_artifacts_spec.rb'
+ - 'spec/requests/api/ci/runner/jobs_request_post_spec.rb'
+ - 'spec/requests/api/container_repositories_spec.rb'
+ - 'spec/requests/api/graphql/container_repository/container_repository_details_spec.rb'
+ - 'spec/requests/api/graphql/group/dependency_proxy_blobs_spec.rb'
+ - 'spec/requests/api/graphql/group/dependency_proxy_group_setting_spec.rb'
+ - 'spec/requests/api/graphql/group/dependency_proxy_image_ttl_policy_spec.rb'
+ - 'spec/requests/api/graphql/group/dependency_proxy_manifests_spec.rb'
+ - 'spec/requests/api/graphql/mutations/custom_emoji/destroy_spec.rb'
+ - 'spec/requests/api/graphql/mutations/snippets/create_spec.rb'
+ - 'spec/requests/api/graphql/mutations/snippets/destroy_spec.rb'
+ - 'spec/requests/api/graphql/mutations/snippets/update_spec.rb'
+ - 'spec/requests/api/helm_packages_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/merge_requests_spec.rb'
+ - 'spec/requests/api/notes_spec.rb'
+ - 'spec/requests/api/nuget_group_packages_spec.rb'
+ - 'spec/requests/api/projects_spec.rb'
+ - 'spec/requests/api/pypi_packages_spec.rb'
+ - 'spec/requests/api/releases_spec.rb'
+ - 'spec/requests/api/rubygem_packages_spec.rb'
+ - 'spec/requests/api/snippets_spec.rb'
+ - 'spec/requests/api/tags_spec.rb'
+ - 'spec/requests/git_http_spec.rb'
+ - 'spec/requests/groups/settings/access_tokens_controller_spec.rb'
+ - 'spec/requests/jwt_controller_spec.rb'
+ - 'spec/requests/lfs_http_spec.rb'
+ - 'spec/requests/projects/merge_requests_spec.rb'
+ - 'spec/requests/projects/settings/access_tokens_controller_spec.rb'
+ - 'spec/services/alert_management/create_alert_issue_service_spec.rb'
+ - 'spec/services/ci/compare_reports_base_service_spec.rb'
+ - 'spec/services/ci/compare_test_reports_service_spec.rb'
+ - 'spec/services/ci/job_artifacts/update_unknown_locked_status_service_spec.rb'
+ - 'spec/services/ci/register_job_service_spec.rb'
+ - 'spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb'
+ - 'spec/services/ci/retry_job_service_spec.rb'
+ - 'spec/services/ci/retry_pipeline_service_spec.rb'
+ - 'spec/services/ci/test_failure_history_service_spec.rb'
+ - 'spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb'
+ - 'spec/services/container_expiration_policies/cleanup_service_spec.rb'
+ - 'spec/services/dependency_proxy/find_cached_manifest_service_spec.rb'
+ - 'spec/services/deployments/update_environment_service_spec.rb'
+ - 'spec/services/groups/create_service_spec.rb'
+ - 'spec/services/groups/transfer_service_spec.rb'
+ - 'spec/services/groups/update_service_spec.rb'
+ - 'spec/services/incident_management/pager_duty/process_webhook_service_spec.rb'
+ - 'spec/services/issuable/common_system_notes_service_spec.rb'
+ - 'spec/services/issues/clone_service_spec.rb'
+ - 'spec/services/issues/close_service_spec.rb'
+ - 'spec/services/issues/update_service_spec.rb'
+ - 'spec/services/members/destroy_service_spec.rb'
+ - 'spec/services/merge_requests/get_urls_service_spec.rb'
+ - 'spec/services/merge_requests/merge_service_spec.rb'
+ - 'spec/services/merge_requests/refresh_service_spec.rb'
+ - 'spec/services/merge_requests/reopen_service_spec.rb'
+ - 'spec/services/merge_requests/update_service_spec.rb'
+ - 'spec/services/notes/update_service_spec.rb'
+ - 'spec/services/notification_service_spec.rb'
+ - 'spec/services/packages/maven/metadata/sync_service_spec.rb'
+ - 'spec/services/packages/nuget/search_service_spec.rb'
+ - 'spec/services/projects/container_repository/delete_tags_service_spec.rb'
+ - 'spec/services/projects/create_service_spec.rb'
+ - 'spec/services/projects/destroy_service_spec.rb'
+ - 'spec/services/projects/fork_service_spec.rb'
+ - 'spec/services/projects/refresh_build_artifacts_size_statistics_service_spec.rb'
+ - 'spec/services/repositories/destroy_service_spec.rb'
+ - 'spec/services/spam/ham_service_spec.rb'
+ - 'spec/services/system_notes/design_management_service_spec.rb'
+ - 'spec/services/system_notes/issuables_service_spec.rb'
+ - 'spec/services/system_notes/time_tracking_service_spec.rb'
+ - 'spec/services/users/repair_ldap_blocked_service_spec.rb'
+ - 'spec/services/work_items/task_list_reference_replacement_service_spec.rb'
+ - 'spec/support/helpers/access_matchers_helpers.rb'
+ - 'spec/support/matchers/access_matchers_for_controller.rb'
+ - 'spec/support/shared_contexts/email_shared_context.rb'
+ - 'spec/support/shared_contexts/finders/packages/npm/package_finder_shared_context.rb'
+ - 'spec/support/shared_contexts/mailers/notify_shared_context.rb'
+ - 'spec/support/shared_contexts/requests/api/npm_packages_shared_context.rb'
+ - 'spec/support/shared_examples/ci/stuck_builds_shared_examples.rb'
+ - 'spec/support/shared_examples/controllers/create_notes_rate_limit_shared_examples.rb'
+ - 'spec/support/shared_examples/controllers/githubish_import_controller_shared_examples.rb'
+ - 'spec/support/shared_examples/controllers/uploads_actions_shared_examples.rb'
+ - 'spec/support/shared_examples/features/2fa_shared_examples.rb'
+ - 'spec/support/shared_examples/features/access_tokens_shared_examples.rb'
+ - 'spec/support/shared_examples/features/sidebar_shared_examples.rb'
+ - 'spec/support/shared_examples/lib/banzai/reference_parser_shared_examples.rb'
+ - 'spec/support/shared_examples/lib/gitlab/ci/ci_trace_shared_examples.rb'
+ - 'spec/support/shared_examples/models/concerns/featurable_shared_examples.rb'
+ - 'spec/support/shared_examples/models/concerns/ttl_expirable_shared_examples.rb'
+ - 'spec/support/shared_examples/models/members_notifications_shared_example.rb'
+ - 'spec/support/shared_examples/models/packages/debian/distribution_shared_examples.rb'
+ - 'spec/support/shared_examples/models/throttled_touch_shared_examples.rb'
+ - 'spec/support/shared_examples/policies/resource_access_token_shared_examples.rb'
+ - 'spec/support/shared_examples/requests/api/conan_packages_shared_examples.rb'
+ - 'spec/support/shared_examples/requests/api/members_shared_examples.rb'
+ - 'spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb'
+ - 'spec/support/shared_examples/requests/user_activity_shared_examples.rb'
+ - 'spec/support/shared_examples/services/boards/lists_list_service_shared_examples.rb'
+ - 'spec/support/shared_examples/services/container_registry_auth_service_shared_examples.rb'
+ - 'spec/support/shared_examples/services/notification_service_shared_examples.rb'
+ - 'spec/support/shared_examples/views/pipeline_status_changes_email.rb'
+ - 'spec/support/trace/trace_helpers.rb'
+ - 'spec/support_specs/matchers/exceed_query_limit_helpers_spec.rb'
+ - 'spec/tasks/gitlab/artifacts/check_rake_spec.rb'
+ - 'spec/tasks/gitlab/external_diffs_rake_spec.rb'
+ - 'spec/tasks/gitlab/uploads/check_rake_spec.rb'
+ - 'spec/uploaders/job_artifact_uploader_spec.rb'
+ - 'spec/views/groups/edit.html.haml_spec.rb'
+ - 'spec/views/projects/environments/terminal.html.haml_spec.rb'
+ - 'spec/views/projects/tracing/show.html.haml_spec.rb'
+ - 'spec/workers/auto_devops/disable_worker_spec.rb'
+ - 'spec/workers/build_finished_worker_spec.rb'
+ - 'spec/workers/ci/merge_requests/add_todo_when_build_fails_worker_spec.rb'
+ - 'spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb'
+ - 'spec/workers/container_expiration_policies/cleanup_container_repository_worker_spec.rb'
+ - 'spec/workers/container_expiration_policy_worker_spec.rb'
+ - 'spec/workers/container_registry/migration/guard_worker_spec.rb'
+ - 'spec/workers/gitlab/github_import/advance_stage_worker_spec.rb'
+ - 'spec/workers/packages/cleanup_package_file_worker_spec.rb'
+ - 'spec/workers/packages/cleanup_package_registry_worker_spec.rb'
+ - 'spec/workers/packages/composer/cache_cleanup_worker_spec.rb'
+ - 'spec/workers/pipeline_schedule_worker_spec.rb'
+ - 'spec/workers/remote_mirror_notification_worker_spec.rb'
+ - 'spec/workers/repository_check/batch_worker_spec.rb'
+ - 'spec/workers/repository_check/clear_worker_spec.rb'
diff --git a/.rubocop_todo/rails/squished_sql_heredocs.yml b/.rubocop_todo/rails/squished_sql_heredocs.yml
new file mode 100644
index 00000000000..dc71b7b32ce
--- /dev/null
+++ b/.rubocop_todo/rails/squished_sql_heredocs.yml
@@ -0,0 +1,217 @@
+---
+# Cop supports --auto-correct.
+Rails/SquishedSQLHeredocs:
+ # Offense count: 356
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/finders/members_finder.rb'
+ - 'app/models/analytics/cycle_analytics/stage_event_hash.rb'
+ - 'app/models/ci/resource_group.rb'
+ - 'app/models/clusters/clusters_hierarchy.rb'
+ - 'app/models/concerns/analytics/cycle_analytics/stage_event_model.rb'
+ - 'app/models/concerns/has_environment_scope.rb'
+ - 'app/models/customer_relations/contact.rb'
+ - 'app/models/customer_relations/organization.rb'
+ - 'app/models/deployment.rb'
+ - 'app/models/issue/metrics.rb'
+ - 'app/models/merge_request/metrics.rb'
+ - 'app/models/namespace/traversal_hierarchy.rb'
+ - 'app/models/namespaces/traversal/linear.rb'
+ - 'app/models/project.rb'
+ - 'app/models/user.rb'
+ - 'app/services/issuable/destroy_label_links_service.rb'
+ - 'app/services/issues/relative_position_rebalancing_service.rb'
+ - 'app/services/projects/fetch_statistics_increment_service.rb'
+ - 'app/services/todos/destroy/destroyed_issuable_service.rb'
+ - 'app/workers/users/deactivate_dormant_users_worker.rb'
+ - 'db/migrate/20210323155010_populate_dismissal_information_for_vulnerabilities.rb'
+ - 'db/migrate/20210601080039_group_protected_environments_add_index_and_constraint.rb'
+ - 'db/migrate/20210611100359_rebuild_index_for_cadence_iterations_automation.rb'
+ - 'db/migrate/20210617022324_create_incident_management_pending_alert_escalations.rb'
+ - 'db/migrate/20210621043337_rename_services_to_integrations.rb'
+ - 'db/migrate/20210621044000_rename_services_indexes_to_integrations.rb'
+ - 'db/migrate/20210706152139_add_index_type_to_postgres_indexes_view.rb'
+ - 'db/migrate/20210719145532_add_foreign_keys_view.rb'
+ - 'db/migrate/20210721135638_add_triggers_to_integrations_type_new.rb'
+ - 'db/migrate/20210721174453_remove_schedule_and_status_null_constraints_from_pending_escalations_alert.rb'
+ - 'db/migrate/20210722150102_operations_feature_flags_correct_flexible_rollout_values.rb'
+ - 'db/migrate/20210730194555_create_incident_management_pending_issue_escalations.rb'
+ - 'db/migrate/20210818175949_update_integrations_trigger_type_new_on_insert.rb'
+ - 'db/migrate/20210825104656_create_analytics_cycle_analytics_merge_request_stage_events.rb'
+ - 'db/migrate/20210825110016_create_analytics_cycle_analytics_issue_stage_events.rb'
+ - 'db/migrate/20210826122748_create_loose_foreign_keys_deleted_records.rb'
+ - 'db/migrate/20210826145509_add_function_for_inserting_deleted_records.rb'
+ - 'db/migrate/20210903054158_recreate_stage_issue_events_table_with_bigints.rb'
+ - 'db/migrate/20210906100021_delete_project_namespace_trigger.rb'
+ - 'db/migrate/20210929032555_create_verification_codes.rb'
+ - 'db/migrate/20211005092428_drop_time_range_partitioned_loose_fk.rb'
+ - 'db/migrate/20211005093558_add_range_partitioned_loose_fk_table.rb'
+ - 'db/migrate/20211005100112_recreate_loose_fk_insert_function.rb'
+ - 'db/migrate/20211007090229_create_issue_search_table.rb'
+ - 'db/migrate/20211011141242_create_namespaces_sync_trigger.rb'
+ - 'db/migrate/20211011141243_create_projects_sync_trigger.rb'
+ - 'db/migrate/20211012015903_next_traversal_ids_sibling_function.rb'
+ - 'db/migrate/20211018161447_fix_double_entries_in_postgres_index_view.rb'
+ - 'db/migrate/20211112155416_populate_default_value_for_personal_access_tokens_prefix.rb'
+ - 'db/migrate/20211118103439_remove_hardcoded_partition_from_loose_fk_trigger_function.rb'
+ - 'db/migrate/20211123135255_create_batched_background_migration_job_transition_logs.rb'
+ - 'db/migrate/20220106111958_add_insert_or_update_vulnerability_reads_trigger.rb'
+ - 'db/migrate/20220106112043_add_update_vulnerability_reads_trigger.rb'
+ - 'db/migrate/20220106112085_add_update_vulnerability_reads_location_trigger.rb'
+ - 'db/migrate/20220106163326_add_has_issues_on_vulnerability_reads_trigger.rb'
+ - 'db/migrate/20220208171826_update_default_scan_method_of_dast_site_profile.rb'
+ - 'db/migrate/20220211214605_update_integrations_trigger_type_new_on_insert_null_safe.rb'
+ - 'db/migrate/20220213100000_remove_integration_type_triggers.rb'
+ - 'db/migrate/20220304052335_remove_not_null_contraint_on_title_from_sprints.rb'
+ - 'db/migrate/20220321234317_remove_all_issuable_escalation_statuses.rb'
+ - 'db/migrate/20220329110630_add_ci_namespace_mirrors_unnest_index_on_traversal_ids.rb'
+ - 'db/migrate/20220412060931_add_nullify_build_data_trigger_on_merge_request_metrics.rb'
+ - 'db/migrate/20220413124200_add_view_for_per_table_autovacuum_status.rb'
+ - 'db/migrate/20220415015143_replace_iterations_cadence_date_range_constraint.rb'
+ - 'db/migrate/20220422200633_fix_view_for_per_table_autovacuum_status.rb'
+ - 'db/migrate/20220422220507_remove_tmp_index_supporting_leaky_regex_cleanup.rb'
+ - 'db/post_migrate/20210302074524_backfill_namespace_statistics_with_wiki_size.rb'
+ - 'db/post_migrate/20210311045138_set_traversal_ids_for_gitlab_org_group_staging.rb'
+ - 'db/post_migrate/20210311045139_set_traversal_ids_for_gitlab_org_group_com.rb'
+ - 'db/post_migrate/20210311093723_add_partial_index_on_ci_pipelines_by_cancelable_status_and_users.rb'
+ - 'db/post_migrate/20210317104032_set_iteration_cadence_automatic_to_false.rb'
+ - 'db/post_migrate/20210331105335_drop_non_partitioned_audit_events.rb'
+ - 'db/post_migrate/20210430134202_copy_adoption_snapshot_namespace.rb'
+ - 'db/post_migrate/20210430135954_copy_adoption_segments_namespace.rb'
+ - 'db/post_migrate/20210525075724_clean_up_pending_builds_table.rb'
+ - 'db/post_migrate/20210609125005_drop_non_partitioned_web_hook_logs.rb'
+ - 'db/post_migrate/20210610102413_migrate_protected_attribute_to_pending_builds.rb'
+ - 'db/post_migrate/20210610141711_disable_expiration_policies_linked_to_no_container_images.rb'
+ - 'db/post_migrate/20210708011426_finalize_ci_builds_metadata_bigint_conversion.rb'
+ - 'db/post_migrate/20210721174521_add_non_null_constraint_for_escalation_rule_on_pending_alert_escalations.rb'
+ - 'db/post_migrate/20210812013042_remove_duplicate_project_authorizations.rb'
+ - 'db/post_migrate/20210907211557_finalize_ci_builds_bigint_conversion.rb'
+ - 'db/post_migrate/20210910194952_update_report_type_for_existing_approval_project_rules.rb'
+ - 'db/post_migrate/20211105135157_drop_ci_build_trace_sections.rb'
+ - 'db/post_migrate/20211112113300_remove_ci_pipeline_chat_data_fk_on_chat_names.rb'
+ - 'db/post_migrate/20211130165043_backfill_sequence_column_for_sprints_table.rb'
+ - 'db/post_migrate/20211206161271_add_indexes_for_primary_email_cleanup_migration.rb'
+ - 'db/post_migrate/20211220064757_drop_temporary_indexes_for_primary_email_migration.rb'
+ - 'db/post_migrate/20220128155251_remove_dangling_running_builds.rb'
+ - 'db/post_migrate/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size.rb'
+ - 'db/post_migrate/20220204110725_backfill_cycle_analytics_aggregations.rb'
+ - 'db/post_migrate/20220213103859_remove_integrations_type.rb'
+ - 'db/post_migrate/20220309084954_remove_leftover_external_pull_request_deletions.rb'
+ - 'db/post_migrate/20220318111040_add_indexes_for_primary_email_second_cleanup_migration.rb'
+ - 'db/post_migrate/20220318111949_drop_temporary_indexes_for_primary_email_migration_second_cleanup.rb'
+ - 'db/post_migrate/20220329175119_remove_leftover_ci_job_artifact_deletions.rb'
+ - 'db/post_migrate/20220420135946_update_batched_background_migration_arguments.rb'
+ - 'ee/app/models/dora/daily_metrics.rb'
+ - 'ee/app/models/ee/group.rb'
+ - 'ee/app/models/ee/issue.rb'
+ - 'ee/app/models/iterations/cadence.rb'
+ - 'ee/app/models/vulnerabilities/statistic.rb'
+ - 'ee/app/services/analytics/cycle_analytics/consistency_check_service.rb'
+ - 'ee/app/services/security/ingestion/bulk_updatable_task.rb'
+ - 'ee/app/services/security/ingestion/tasks/ingest_vulnerability_statistics.rb'
+ - 'ee/app/services/vulnerabilities/historical_statistics/adjustment_service.rb'
+ - 'ee/app/services/vulnerabilities/statistics/adjustment_service.rb'
+ - 'ee/app/services/vulnerabilities/statistics/update_service.rb'
+ - 'ee/db/geo/migrate/20170906174622_remove_duplicates_from_project_registry.rb'
+ - 'ee/db/geo/migrate/20180510223634_set_resync_flag_for_retried_projects.rb'
+ - 'ee/db/geo/post_migrate/20210217020154_add_unique_index_on_container_repository_registry.rb'
+ - 'ee/db/geo/post_migrate/20210217020156_add_unique_index_on_terraform_state_version_registry.rb'
+ - 'ee/lib/ee/gitlab/background_migration/backfill_iteration_cadence_id_for_boards.rb'
+ - 'ee/lib/ee/gitlab/background_migration/create_security_setting.rb'
+ - 'ee/lib/ee/gitlab/background_migration/populate_latest_pipeline_ids.rb'
+ - 'ee/lib/ee/gitlab/background_migration/populate_resolved_on_default_branch_column.rb'
+ - 'ee/lib/ee/gitlab/background_migration/populate_status_column_of_security_scans.rb'
+ - 'ee/lib/ee/gitlab/background_migration/populate_test_reports_issue_id.rb'
+ - 'ee/lib/ee/gitlab/background_migration/update_vulnerability_occurrences_location.rb'
+ - 'ee/lib/ee/gitlab/usage_data.rb'
+ - 'ee/lib/gitlab/geo/base_batcher.rb'
+ - 'ee/spec/models/ee/user_spec.rb'
+ - 'lib/gitlab/background_migration/backfill_ci_namespace_mirrors.rb'
+ - 'lib/gitlab/background_migration/backfill_ci_project_mirrors.rb'
+ - 'lib/gitlab/background_migration/backfill_group_features.rb'
+ - 'lib/gitlab/background_migration/backfill_integrations_type_new.rb'
+ - 'lib/gitlab/background_migration/backfill_issue_search_data.rb'
+ - 'lib/gitlab/background_migration/backfill_namespace_id_for_project_route.rb'
+ - 'lib/gitlab/background_migration/backfill_namespace_traversal_ids_children.rb'
+ - 'lib/gitlab/background_migration/backfill_project_settings.rb'
+ - 'lib/gitlab/background_migration/backfill_projects_with_coverage.rb'
+ - 'lib/gitlab/background_migration/backfill_upvotes_count_on_issues.rb'
+ - 'lib/gitlab/background_migration/copy_ci_builds_columns_to_security_scans.rb'
+ - 'lib/gitlab/background_migration/disable_expiration_policies_linked_to_no_container_images.rb'
+ - 'lib/gitlab/background_migration/encrypt_static_object_token.rb'
+ - 'lib/gitlab/background_migration/fix_duplicate_project_name_and_path.rb'
+ - 'lib/gitlab/background_migration/fix_first_mentioned_in_commit_at.rb'
+ - 'lib/gitlab/background_migration/fix_projects_without_project_feature.rb'
+ - 'lib/gitlab/background_migration/fix_projects_without_prometheus_service.rb'
+ - 'lib/gitlab/background_migration/move_container_registry_enabled_to_project_feature.rb'
+ - 'lib/gitlab/background_migration/populate_container_repository_migration_plan.rb'
+ - 'lib/gitlab/background_migration/populate_topics_non_private_projects_count.rb'
+ - 'lib/gitlab/background_migration/populate_topics_total_projects_count_cache.rb'
+ - 'lib/gitlab/background_migration/populate_vulnerability_reads.rb'
+ - 'lib/gitlab/background_migration/project_namespaces/backfill_project_namespaces.rb'
+ - 'lib/gitlab/background_migration/update_timelogs_null_spent_at.rb'
+ - 'lib/gitlab/background_migration/update_timelogs_project_id.rb'
+ - 'lib/gitlab/background_migration/update_users_where_two_factor_auth_required_from_group.rb'
+ - 'lib/gitlab/database/bulk_update.rb'
+ - 'lib/gitlab/database/count/tablesample_count_strategy.rb'
+ - 'lib/gitlab/database/load_balancing/load_balancer.rb'
+ - 'lib/gitlab/database/migration_helpers.rb'
+ - 'lib/gitlab/database/migration_helpers/loose_foreign_key_helpers.rb'
+ - 'lib/gitlab/database/migration_helpers/v2.rb'
+ - 'lib/gitlab/database/migrations/batched_background_migration_helpers.rb'
+ - 'lib/gitlab/database/migrations/observers/query_statistics.rb'
+ - 'lib/gitlab/database/partitioning/replace_table.rb'
+ - 'lib/gitlab/database/partitioning/single_numeric_list_partition.rb'
+ - 'lib/gitlab/database/partitioning/sliding_list_strategy.rb'
+ - 'lib/gitlab/database/partitioning/time_partition.rb'
+ - 'lib/gitlab/database/partitioning_migration_helpers/backfill_partitioned_table.rb'
+ - 'lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb'
+ - 'lib/gitlab/database/postgres_hll/batch_distinct_counter.rb'
+ - 'lib/gitlab/database/schema_helpers.rb'
+ - 'lib/gitlab/database/schema_migrations/migrations.rb'
+ - 'lib/gitlab/database/unidirectional_copy_trigger.rb'
+ - 'lib/gitlab/graphql/pagination/keyset/conditions/not_null_condition.rb'
+ - 'lib/gitlab/graphql/pagination/keyset/conditions/null_condition.rb'
+ - 'lib/gitlab/pagination/keyset/in_operator_optimization/query_builder.rb'
+ - 'lib/gitlab/sql/glob.rb'
+ - 'lib/tasks/dev.rake'
+ - 'qa/qa/service/praefect_manager.rb'
+ - 'spec/db/schema_spec.rb'
+ - 'spec/initializers/00_rails_disable_joins_spec.rb'
+ - 'spec/lib/gitlab/background_migration/copy_column_using_background_migration_job_spec.rb'
+ - 'spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb'
+ - 'spec/lib/gitlab/database/migration_helpers_spec.rb'
+ - 'spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning/detached_partition_dropper_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning/monthly_strategy_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning/partition_manager_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning/replace_table_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning/time_partition_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning_migration_helpers/backfill_partitioned_table_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning_migration_helpers/foreign_key_helpers_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning_migration_helpers/index_helpers_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning_spec.rb'
+ - 'spec/lib/gitlab/database/postgres_foreign_key_spec.rb'
+ - 'spec/lib/gitlab/database/postgres_index_bloat_estimate_spec.rb'
+ - 'spec/lib/gitlab/database/postgres_index_spec.rb'
+ - 'spec/lib/gitlab/database/postgres_partition_spec.rb'
+ - 'spec/lib/gitlab/database/postgres_partitioned_table_spec.rb'
+ - 'spec/lib/gitlab/database/reindexing/reindex_concurrently_spec.rb'
+ - 'spec/lib/gitlab/database/reindexing_spec.rb'
+ - 'spec/lib/gitlab/database/schema_migrations/migrations_spec.rb'
+ - 'spec/lib/gitlab/database/similarity_score_spec.rb'
+ - 'spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb'
+ - 'spec/lib/gitlab/graphql/pagination/keyset/conditions/not_null_condition_spec.rb'
+ - 'spec/lib/gitlab/graphql/pagination/keyset/conditions/null_condition_spec.rb'
+ - 'spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/record_loader_strategy_spec.rb'
+ - 'spec/lib/gitlab/pagination/keyset/order_spec.rb'
+ - 'spec/models/application_record_spec.rb'
+ - 'spec/models/concerns/after_commit_queue_spec.rb'
+ - 'spec/support/db_cleaner.rb'
+ - 'spec/support/helpers/database/partitioning_helpers.rb'
+ - 'spec/support/helpers/database/table_schema_helpers.rb'
+ - 'spec/support/helpers/database/trigger_helpers.rb'
+ - 'spec/support/shared_examples/loose_foreign_keys/have_loose_foreign_key.rb'
diff --git a/.rubocop_todo/rails/time_zone.yml b/.rubocop_todo/rails/time_zone.yml
index 86d0632ac47..ff97dfeb444 100644
--- a/.rubocop_todo/rails/time_zone.yml
+++ b/.rubocop_todo/rails/time_zone.yml
@@ -13,7 +13,6 @@ Rails/TimeZone:
- ee/lib/gitlab/geo/log_cursor/logger.rb
- ee/lib/gitlab/geo/oauth/login_state.rb
- ee/lib/gitlab/prometheus/queries/cluster_query.rb
- - ee/lib/gitlab/prometheus/queries/packet_flow_query.rb
- ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb
- ee/spec/lib/ee/gitlab/ci/pipeline/quota/job_activity_spec.rb
- ee/spec/lib/gitlab/analytics/cycle_analytics/data_collector_spec.rb
@@ -44,7 +43,6 @@ Rails/TimeZone:
- ee/spec/lib/gitlab/git_access_spec.rb
- ee/spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb
- ee/spec/lib/gitlab/prometheus/queries/cluster_query_spec.rb
- - ee/spec/lib/gitlab/prometheus/queries/packet_flow_query_spec.rb
- lib/api/helpers.rb
- lib/api/sidekiq_metrics.rb
- lib/backup/manager.rb
diff --git a/.rubocop_todo/rails/where_exists.yml b/.rubocop_todo/rails/where_exists.yml
new file mode 100644
index 00000000000..00ff82d137e
--- /dev/null
+++ b/.rubocop_todo/rails/where_exists.yml
@@ -0,0 +1,45 @@
+---
+# Cop supports --auto-correct.
+Rails/WhereExists:
+ # Offense count: 48
+ # Temporarily disabled due to too many offenses
+ Enabled: false
+ Exclude:
+ - 'app/models/application_setting/term.rb'
+ - 'app/models/ci/pipeline_artifact.rb'
+ - 'app/models/ci/ref.rb'
+ - 'app/models/clusters/agent.rb'
+ - 'app/models/concerns/has_wiki.rb'
+ - 'app/models/concerns/noteable.rb'
+ - 'app/models/container_repository.rb'
+ - 'app/models/design_management/design.rb'
+ - 'app/models/group.rb'
+ - 'app/models/group_deploy_token.rb'
+ - 'app/models/label.rb'
+ - 'app/models/lfs_object.rb'
+ - 'app/models/merge_request_diff.rb'
+ - 'app/models/namespace.rb'
+ - 'app/models/onboarding_progress.rb'
+ - 'app/models/project.rb'
+ - 'app/models/protected_branch/push_access_level.rb'
+ - 'app/services/projects/transfer_service.rb'
+ - 'app/services/todos/destroy/unauthorized_features_service.rb'
+ - 'db/migrate/20210422195929_create_elastic_reindexing_slices.rb'
+ - 'ee/app/models/approval_merge_request_rule_source.rb'
+ - 'ee/app/models/concerns/ee/protected_ref_access.rb'
+ - 'ee/app/models/ee/epic.rb'
+ - 'ee/app/models/ee/group_member.rb'
+ - 'ee/app/models/ee/milestone_release.rb'
+ - 'ee/app/models/geo_node.rb'
+ - 'ee/app/models/merge_requests/external_status_check.rb'
+ - 'ee/app/models/merge_train.rb'
+ - 'ee/app/workers/concerns/elastic/indexing_control.rb'
+ - 'lib/gitlab/auth.rb'
+ - 'lib/gitlab/checks/matching_merge_request.rb'
+ - 'lib/gitlab/database/partitioning/detached_partition_dropper.rb'
+ - 'spec/lib/bulk_imports/projects/pipelines/snippets_repository_pipeline_spec.rb'
+ - 'spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_features_spec.rb'
+ - 'spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_with_new_features_spec.rb'
+ - 'spec/models/user_spec.rb'
+ - 'spec/services/clusters/cleanup/service_account_service_spec.rb'
+ - 'spec/services/clusters/destroy_service_spec.rb'