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:
-rw-r--r--.rubocop.yml5
-rw-r--r--.rubocop_todo/gemspec/deprecated_attribute_assignment.yml6
-rw-r--r--.rubocop_todo/layout/line_length.yml1
-rw-r--r--.rubocop_todo/performance/string_include.yml6
-rw-r--r--.rubocop_todo/performance/string_replacement.yml8
-rw-r--r--.rubocop_todo/rails/find_each.yml48
-rw-r--r--.rubocop_todo/rails/require_dependency.yml40
-rw-r--r--.rubocop_todo/rails/time_zone.yml6
-rw-r--r--.rubocop_todo/rspec/named_subject.yml3857
-rw-r--r--.rubocop_todo/rspec/specify_expected.yml54
-rw-r--r--.rubocop_todo/style/accessor_grouping.yml3
-rw-r--r--.rubocop_todo/style/arguments_forwarding.yml173
-rw-r--r--.rubocop_todo/style/block_delimiters.yml66
-rw-r--r--.rubocop_todo/style/guard_clause.yml28
-rw-r--r--.rubocop_todo/style/percent_literal_delimiters.yml40
-rw-r--r--.rubocop_todo/style/redundant_return.yml102
-rw-r--r--.rubocop_todo/style/string_literals_in_interpolation.yml10
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.checksum14
-rw-r--r--Gemfile.lock25
-rw-r--r--app/assets/javascripts/merge_requests/components/sticky_header.vue33
-rw-r--r--app/assets/javascripts/pages/projects/merge_requests/page.js3
-rw-r--r--app/assets/javascripts/vue_shared/components/markdown/header.vue2
-rw-r--r--app/controllers/profiles/comment_templates_controller.rb2
-rw-r--r--app/controllers/projects/issues_controller.rb1
-rw-r--r--app/controllers/projects/merge_requests_controller.rb1
-rw-r--r--app/controllers/projects/work_items_controller.rb1
-rw-r--r--app/graphql/mutations/saved_replies/base.rb4
-rw-r--r--app/graphql/mutations/saved_replies/create.rb2
-rw-r--r--app/graphql/mutations/saved_replies/destroy.rb2
-rw-r--r--app/graphql/mutations/saved_replies/update.rb2
-rw-r--r--app/graphql/resolvers/saved_reply_resolver.rb2
-rw-r--r--app/graphql/types/user_interface.rb6
-rw-r--r--app/helpers/merge_requests_helper.rb1
-rw-r--r--app/helpers/users_helper.rb4
-rw-r--r--app/models/ci/bridge.rb4
-rw-r--r--app/models/personal_access_token.rb7
-rw-r--r--app/presenters/user_presenter.rb1
-rw-r--r--app/serializers/build_details_entity.rb2
-rw-r--r--app/serializers/deployment_entity.rb2
-rw-r--r--app/services/web_hook_service.rb4
-rw-r--r--app/views/admin/application_settings/_account_and_limit.html.haml1
-rw-r--r--app/views/admin/users/projects.html.haml4
-rw-r--r--app/views/groups/settings/_permissions.html.haml1
-rw-r--r--config/feature_flags/development/saved_replies.yml8
-rw-r--r--db/migrate/20231027084327_change_personal_access_tokens_remove_not_null_expires_at.rb17
-rw-r--r--db/post_migrate/20231027083355_remove_projects_duplicated_indexes.rb18
-rw-r--r--db/schema_migrations/202310270833551
-rw-r--r--db/schema_migrations/202310270843271
-rw-r--r--db/structure.sql5
-rw-r--r--doc/administration/dedicated/index.md4
-rw-r--r--doc/api/graphql/reference/index.md32
-rw-r--r--doc/api/groups.md5
-rw-r--r--doc/api/settings.md1
-rw-r--r--doc/user/profile/comment_templates.md5
-rw-r--r--doc/user/profile/personal_access_tokens.md36
-rw-r--r--doc/user/profile/service_accounts.md4
-rw-r--r--lib/gitlab/encrypted_configuration.rb2
-rw-r--r--lib/gitlab/graphql/tracers/timer_tracer.rb4
-rw-r--r--lib/gitlab/instrumentation/redis_interceptor.rb4
-rw-r--r--lib/gitlab/kubernetes/kubeconfig/template.rb2
-rw-r--r--lib/gitlab/legacy_http.rb4
-rw-r--r--lib/gitlab/memory/reporter.rb8
-rw-r--r--lib/gitlab/memory/reports_uploader.rb4
-rw-r--r--lib/gitlab/metrics/exporter/metrics_middleware.rb8
-rw-r--r--lib/gitlab/optimistic_locking.rb4
-rw-r--r--lib/sidebars/user_settings/menus/comment_templates_menu.rb2
-rw-r--r--lib/tasks/gitlab/bulk_add_permission.rake2
-rw-r--r--locale/gitlab.pot23
-rw-r--r--metrics_server/metrics_server.rb2
-rw-r--r--package.json2
-rw-r--r--qa/qa/specs/features/api/1_manage/import/import_large_github_repo_spec.rb2
-rw-r--r--qa/qa/tools/long_running_spec_reporter.rb2
-rw-r--r--spec/finders/milestones_finder_spec.rb2
-rw-r--r--spec/frontend/merge_requests/components/sticky_header_spec.js48
-rw-r--r--spec/graphql/mutations/saved_replies/create_spec.rb34
-rw-r--r--spec/graphql/mutations/saved_replies/destroy_spec.rb26
-rw-r--r--spec/graphql/mutations/saved_replies/update_spec.rb34
-rw-r--r--spec/graphql/resolvers/saved_reply_resolver_spec.rb28
-rw-r--r--spec/lib/sidebars/user_settings/menus/comment_templates_menu_spec.rb28
-rw-r--r--spec/models/ci/pipeline_spec.rb2
-rw-r--r--spec/models/concerns/token_authenticatable_spec.rb2
-rw-r--r--spec/models/email_spec.rb6
-rw-r--r--spec/models/user_spec.rb6
-rw-r--r--spec/presenters/user_presenter_spec.rb22
-rw-r--r--spec/requests/api/graphql/project/error_tracking/sentry_errors_request_spec.rb2
-rw-r--r--spec/requests/profiles/comment_templates_controller_spec.rb22
-rw-r--r--spec/support/capybara_slow_finder.rb4
-rw-r--r--spec/support/db_cleaner.rb4
-rw-r--r--spec/support/helpers/database/duplicate_indexes.yml5
-rw-r--r--spec/support/shared_examples/serializers/environment_serializer_shared_examples.rb2
-rw-r--r--spec/tasks/gitlab/db_rake_spec.rb4
-rw-r--r--spec/tooling/danger/customer_success_spec.rb26
-rw-r--r--spec/tooling/danger/datateam_spec.rb46
-rw-r--r--spec/tooling/danger/sidekiq_queues_spec.rb12
-rw-r--r--spec/tooling/lib/tooling/test_map_generator_spec.rb2
-rw-r--r--spec/uploaders/attachment_uploader_spec.rb10
-rw-r--r--spec/uploaders/avatar_uploader_spec.rb10
-rw-r--r--spec/uploaders/ci/pipeline_artifact_uploader_spec.rb4
-rw-r--r--spec/uploaders/dependency_proxy/file_uploader_spec.rb4
-rw-r--r--spec/uploaders/design_management/design_v432x230_uploader_spec.rb14
-rw-r--r--spec/uploaders/external_diff_uploader_spec.rb8
-rw-r--r--spec/uploaders/import_export_uploader_spec.rb4
-rw-r--r--spec/uploaders/job_artifact_uploader_spec.rb4
-rw-r--r--spec/uploaders/lfs_object_uploader_spec.rb4
-rw-r--r--spec/uploaders/namespace_file_uploader_spec.rb6
-rw-r--r--spec/uploaders/object_storage_spec.rb4
-rw-r--r--spec/uploaders/packages/composer/cache_uploader_spec.rb4
-rw-r--r--spec/uploaders/packages/debian/component_file_uploader_spec.rb8
-rw-r--r--spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb8
-rw-r--r--spec/uploaders/packages/package_file_uploader_spec.rb4
-rw-r--r--spec/uploaders/pages/deployment_uploader_spec.rb4
-rw-r--r--spec/uploaders/personal_file_uploader_spec.rb14
-rw-r--r--spec/validators/any_field_validator_spec.rb4
-rw-r--r--spec/views/layouts/_head.html.haml_spec.rb10
-rw-r--r--spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb2
-rw-r--r--spec/views/projects/commit/branches.html.haml_spec.rb2
-rw-r--r--spec/workers/concerns/worker_context_spec.rb4
-rw-r--r--spec/workers/container_registry/migration/enqueuer_worker_spec.rb6
-rw-r--r--spec/workers/groups/update_statistics_worker_spec.rb2
-rw-r--r--spec/workers/jira_connect/sync_branch_worker_spec.rb2
-rw-r--r--spec/workers/post_receive_spec.rb2
-rw-r--r--spec/workers/project_cache_worker_spec.rb14
-rw-r--r--spec/workers/projects/record_target_platforms_worker_spec.rb2
-rw-r--r--spec/workers/stuck_merge_jobs_worker_spec.rb6
-rw-r--r--spec/workers/update_project_statistics_worker_spec.rb2
-rw-r--r--yarn.lock78
127 files changed, 4874 insertions, 541 deletions
diff --git a/.rubocop.yml b/.rubocop.yml
index 23f4ee435bb..adc796f1332 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -316,6 +316,11 @@ Rails/ActiveRecordCallbacksOrder:
- app/models/**/*.rb
- ee/app/models/**/*.rb
+# We disable this since network latency isn't an issue and schema changes execute in a few milliseconds.
+# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136251#note_1638949892.
+Rails/BulkChangeTable:
+ Enabled: false
+
Cop/DefaultScope:
Enabled: true
diff --git a/.rubocop_todo/gemspec/deprecated_attribute_assignment.yml b/.rubocop_todo/gemspec/deprecated_attribute_assignment.yml
new file mode 100644
index 00000000000..32d493c3741
--- /dev/null
+++ b/.rubocop_todo/gemspec/deprecated_attribute_assignment.yml
@@ -0,0 +1,6 @@
+---
+# Cop supports --autocorrect.
+Gemspec/DeprecatedAttributeAssignment:
+ Details: grace period
+ Exclude:
+ - 'spec/fixtures/packages/rubygems/package.gemspec'
diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml
index f109fe253dd..1173c41c188 100644
--- a/.rubocop_todo/layout/line_length.yml
+++ b/.rubocop_todo/layout/line_length.yml
@@ -841,7 +841,6 @@ Layout/LineLength:
- 'ee/app/helpers/vulnerabilities_helper.rb'
- 'ee/app/mailers/ee/emails/profile.rb'
- 'ee/app/mailers/ee/preview/notify_preview.rb'
- - 'ee/app/mailers/emails/namespace_storage_usage_mailer.rb'
- 'ee/app/models/approval_merge_request_rule.rb'
- 'ee/app/models/approval_project_rule.rb'
- 'ee/app/models/approval_state.rb'
diff --git a/.rubocop_todo/performance/string_include.yml b/.rubocop_todo/performance/string_include.yml
new file mode 100644
index 00000000000..c84976d55bf
--- /dev/null
+++ b/.rubocop_todo/performance/string_include.yml
@@ -0,0 +1,6 @@
+---
+# Cop supports --autocorrect.
+Performance/StringInclude:
+ Details: grace period
+ Exclude:
+ - 'spec/support/helpers/query_recorder.rb'
diff --git a/.rubocop_todo/performance/string_replacement.yml b/.rubocop_todo/performance/string_replacement.yml
new file mode 100644
index 00000000000..db22bba0897
--- /dev/null
+++ b/.rubocop_todo/performance/string_replacement.yml
@@ -0,0 +1,8 @@
+---
+# Cop supports --autocorrect.
+Performance/StringReplacement:
+ Details: grace period
+ Exclude:
+ - 'ee/app/models/saml_provider.rb'
+ - 'lib/gitlab/uploads/migration_helper.rb'
+ - 'lib/kramdown/parser/atlassian_document_format.rb'
diff --git a/.rubocop_todo/rails/find_each.yml b/.rubocop_todo/rails/find_each.yml
new file mode 100644
index 00000000000..4e2bbb62439
--- /dev/null
+++ b/.rubocop_todo/rails/find_each.yml
@@ -0,0 +1,48 @@
+---
+# Cop supports --autocorrect.
+Rails/FindEach:
+ Details: grace period
+ Exclude:
+ - 'app/finders/projects/members/effective_access_level_finder.rb'
+ - 'app/services/ci/expire_pipeline_cache_service.rb'
+ - 'app/services/design_management/generate_image_versions_service.rb'
+ - 'app/services/groups/destroy_service.rb'
+ - 'app/services/merge_requests/refresh_service.rb'
+ - 'app/views/issues/_issues_calendar.ics.ruby'
+ - 'db/post_migrate/20220411173544_cleanup_orphans_approval_project_rules.rb'
+ - 'db/post_migrate/20231003045342_migrate_sidekiq_namespaced_jobs.rb'
+ - 'ee/app/workers/compliance_management/merge_requests/compliance_violations_consistency_worker.rb'
+ - 'ee/lib/ee/gitlab/background_migration/backfill_compliance_violations.rb'
+ - 'ee/lib/ee/gitlab/background_migration/create_compliance_standards_adherence.rb'
+ - 'ee/spec/elastic/migrate/20230901120542_force_reindex_commits_from_main_index_spec.rb'
+ - 'ee/spec/elastic/migrate/20231004124852_reindex_and_remove_leftover_notes_from_main_index_spec.rb'
+ - 'ee/spec/elastic/migrate/20231005103449_reindex_and_remove_leftover_merge_request_in_main_index_spec.rb'
+ - 'ee/spec/frontend/fixtures/runner.rb'
+ - 'ee/spec/lib/ee/gitlab/usage_data_spec.rb'
+ - 'ee/spec/requests/api/graphql/ci/jobs_spec.rb'
+ - 'ee/spec/services/package_metadata/ingestion/advisory/advisory_ingestion_task_spec.rb'
+ - 'ee/spec/services/vulnerabilities/starboard_vulnerability_resolve_service_spec.rb'
+ - 'ee/spec/workers/concerns/update_orchestration_policy_configuration_spec.rb'
+ - 'lib/banzai/reference_parser/base_parser.rb'
+ - 'lib/gitlab/background_migration/populate_vulnerability_dismissal_fields.rb'
+ - 'lib/gitlab/internal_events/event_definitions.rb'
+ - 'lib/tasks/tanuki_emoji.rake'
+ - 'qa/qa/ee/page/group/settings/general.rb'
+ - 'spec/features/admin/admin_labels_spec.rb'
+ - 'spec/features/issues/user_interacts_with_awards_spec.rb'
+ - 'spec/features/merge_request/user_creates_image_diff_notes_spec.rb'
+ - 'spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb'
+ - 'spec/features/projects/show/download_buttons_spec.rb'
+ - 'spec/features/projects/show/user_sees_git_instructions_spec.rb'
+ - 'spec/features/search/user_searches_for_merge_requests_spec.rb'
+ - 'spec/frontend/fixtures/analytics.rb'
+ - 'spec/lib/gitlab/background_migration/backfill_missing_ci_cd_settings_spec.rb'
+ - 'spec/lib/gitlab/background_migration/backfill_note_discussion_id_spec.rb'
+ - 'spec/lib/gitlab/database/reindexing/index_selection_spec.rb'
+ - 'spec/lib/gitlab/import_export/project/tree_restorer_spec.rb'
+ - 'spec/lib/gitlab/project_template_spec.rb'
+ - 'spec/lib/gitlab/sample_data_template_spec.rb'
+ - 'spec/lib/gitlab/usage/metric_definition_spec.rb'
+ - 'spec/migrations/20231003045342_migrate_sidekiq_namespaced_jobs_spec.rb'
+ - 'spec/models/ci_platform_metric_spec.rb'
+ - 'spec/workers/authorized_project_update/user_refresh_over_user_range_worker_spec.rb'
diff --git a/.rubocop_todo/rails/require_dependency.yml b/.rubocop_todo/rails/require_dependency.yml
new file mode 100644
index 00000000000..345fe997744
--- /dev/null
+++ b/.rubocop_todo/rails/require_dependency.yml
@@ -0,0 +1,40 @@
+---
+Rails/RequireDependency:
+ Details: grace period
+ Exclude:
+ - 'app/models/alert_management/alert.rb'
+ - 'app/models/design_management/action.rb'
+ - 'config/application.rb'
+ - 'config/initializers/8_devise.rb'
+ - 'config/initializers/query_limiting.rb'
+ - 'config/initializers/zz_metrics.rb'
+ - 'ee/app/finders/status_page/incident_comments_finder.rb'
+ - 'ee/app/models/compliance_management/compliance_framework/project_settings.rb'
+ - 'ee/app/services/group_saml/saml_provider/create_service.rb'
+ - 'ee/app/services/group_saml/saml_provider/update_service.rb'
+ - 'ee/app/services/vulnerabilities/confirm_service.rb'
+ - 'ee/app/services/vulnerabilities/destroy_dismissal_feedback_service.rb'
+ - 'ee/app/services/vulnerabilities/dismiss_service.rb'
+ - 'ee/app/services/vulnerabilities/resolve_service.rb'
+ - 'ee/app/services/vulnerabilities/revert_to_detected_service.rb'
+ - 'ee/spec/lib/gitlab/insights/validators/params_validator_spec.rb'
+ - 'lib/api/terraform/state.rb'
+ - 'lib/gitlab/ci/pipeline/expression/lexeme/pattern/regular_expression.rb'
+ - 'lib/gitlab/email/receiver.rb'
+ - 'lib/gitlab/omniauth_initializer.rb'
+ - 'lib/gitlab/patch/prependable.rb'
+ - 'lib/gitlab/untrusted_regexp.rb'
+ - 'lib/gitlab/utils/merge_hash.rb'
+ - 'lib/gitlab/utils/sanitize_node_link.rb'
+ - 'lib/tasks/gitlab/assets.rake'
+ - 'spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb'
+ - 'spec/lib/gitlab/ci/config/entry/include/rules_spec.rb'
+ - 'spec/lib/gitlab/ci/config/entry/include_spec.rb'
+ - 'spec/lib/gitlab/ci/config/entry/includes_spec.rb'
+ - 'spec/lib/gitlab/ci/config/entry/product/matrix_spec.rb'
+ - 'spec/lib/gitlab/ci/config/entry/product/parallel_spec.rb'
+ - 'spec/lib/gitlab/ci/config/entry/product/variables_spec.rb'
+ - 'spec/lib/gitlab/ci/config/entry/rules_spec.rb'
+ - 'spec/lib/gitlab/memory/watchdog/configuration_spec.rb'
+ - 'spec/lib/gitlab/memory/watchdog/monitor/unique_memory_growth_spec.rb'
+ - 'spec/support/helpers/stub_configuration.rb'
diff --git a/.rubocop_todo/rails/time_zone.yml b/.rubocop_todo/rails/time_zone.yml
index a345dcc5594..faa3cb5ecfb 100644
--- a/.rubocop_todo/rails/time_zone.yml
+++ b/.rubocop_todo/rails/time_zone.yml
@@ -1,11 +1,11 @@
---
# Cop supports --autocorrect.
Rails/TimeZone:
+ Details: grace period
Exclude:
- 'ee/lib/delay.rb'
- 'ee/lib/gitlab/elastic/indexer.rb'
- 'ee/lib/gitlab/geo/event_gap_tracking.rb'
- - 'ee/lib/gitlab/geo/log_cursor/events/repository_updated_event.rb'
- 'ee/lib/gitlab/geo/log_cursor/logger.rb'
- 'ee/lib/gitlab/geo/oauth/login_state.rb'
- 'ee/spec/lib/gitlab/geo/base_request_spec.rb'
@@ -36,13 +36,11 @@ Rails/TimeZone:
- 'lib/gitlab/popen.rb'
- 'lib/gitlab/prometheus_client.rb'
- 'lib/gitlab/task_helpers.rb'
- - 'lib/gitlab/x509/tag.rb'
- 'lib/grafana/time_window.rb'
- 'lib/json_web_token/token.rb'
- 'lib/object_storage/direct_upload.rb'
- 'lib/quality/seeders/issues.rb'
- 'lib/tasks/gitlab/assets.rake'
- - 'lib/tasks/gitlab/backup.rake'
- 'lib/tasks/gitlab/cleanup.rake'
- 'lib/tasks/gitlab/list_repos.rake'
- 'spec/lib/api/helpers_spec.rb'
@@ -78,7 +76,6 @@ Rails/TimeZone:
- 'spec/lib/gitlab/graphql_logger_spec.rb'
- 'spec/lib/gitlab/graphs/commits_spec.rb'
- 'spec/lib/gitlab/import_export/project/relation_factory_spec.rb'
- - 'spec/lib/gitlab/json_logger_spec.rb'
- 'spec/lib/gitlab/lfs_token_spec.rb'
- 'spec/lib/gitlab/log_timestamp_formatter_spec.rb'
- 'spec/lib/gitlab/middleware/rails_queue_duration_spec.rb'
@@ -87,3 +84,4 @@ Rails/TimeZone:
- 'spec/lib/gitlab/x509/signature_spec.rb'
- 'spec/lib/grafana/time_window_spec.rb'
- 'spec/lib/json_web_token/hmac_token_spec.rb'
+ - 'spec/models/merge_request_diff_commit_spec.rb'
diff --git a/.rubocop_todo/rspec/named_subject.yml b/.rubocop_todo/rspec/named_subject.yml
new file mode 100644
index 00000000000..642a0cd45d6
--- /dev/null
+++ b/.rubocop_todo/rspec/named_subject.yml
@@ -0,0 +1,3857 @@
+---
+RSpec/NamedSubject:
+ Details: grace period
+ Exclude:
+ - 'ee/spec/controllers/admin/audit_log_reports_controller_spec.rb'
+ - 'ee/spec/controllers/admin/emails_controller_spec.rb'
+ - 'ee/spec/controllers/admin/geo/settings_controller_spec.rb'
+ - 'ee/spec/controllers/admin/groups_controller_spec.rb'
+ - 'ee/spec/controllers/admin/identities_controller_spec.rb'
+ - 'ee/spec/controllers/admin/projects_controller_spec.rb'
+ - 'ee/spec/controllers/admin/users_controller_spec.rb'
+ - 'ee/spec/controllers/autocomplete_controller_spec.rb'
+ - 'ee/spec/controllers/concerns/ee/routable_actions/sso_enforcement_redirect_spec.rb'
+ - 'ee/spec/controllers/ee/dashboard/projects_controller_spec.rb'
+ - 'ee/spec/controllers/ee/groups/settings/ci_cd_controller_spec.rb'
+ - 'ee/spec/controllers/ee/groups/variables_controller_spec.rb'
+ - 'ee/spec/controllers/ee/groups_controller_spec.rb'
+ - 'ee/spec/controllers/ee/omniauth_callbacks_controller_spec.rb'
+ - 'ee/spec/controllers/ee/profiles/preferences_controller_spec.rb'
+ - 'ee/spec/controllers/ee/registrations_controller_spec.rb'
+ - 'ee/spec/controllers/ee/root_controller_spec.rb'
+ - 'ee/spec/controllers/groups/analytics/cycle_analytics/summary_controller_spec.rb'
+ - 'ee/spec/controllers/groups/analytics/productivity_analytics_controller_spec.rb'
+ - 'ee/spec/controllers/groups/analytics/repository_analytics_controller_spec.rb'
+ - 'ee/spec/controllers/groups/analytics/tasks_by_type_controller_spec.rb'
+ - 'ee/spec/controllers/groups/epic_issues_controller_spec.rb'
+ - 'ee/spec/controllers/groups/epics_controller_spec.rb'
+ - 'ee/spec/controllers/groups/group_members_controller_spec.rb'
+ - 'ee/spec/controllers/groups/groups_controller_spec.rb'
+ - 'ee/spec/controllers/groups/insights_controller_spec.rb'
+ - 'ee/spec/controllers/groups/issues_controller_spec.rb'
+ - 'ee/spec/controllers/groups/iterations_controller_spec.rb'
+ - 'ee/spec/controllers/groups/ldaps_controller_spec.rb'
+ - 'ee/spec/controllers/groups/merge_requests_controller_spec.rb'
+ - 'ee/spec/controllers/groups/saml_providers_controller_spec.rb'
+ - 'ee/spec/controllers/groups/scim_oauth_controller_spec.rb'
+ - 'ee/spec/controllers/groups/security/merge_commit_reports_controller_spec.rb'
+ - 'ee/spec/controllers/groups/security/policies_controller_spec.rb'
+ - 'ee/spec/controllers/groups/sso_controller_spec.rb'
+ - 'ee/spec/controllers/operations_controller_spec.rb'
+ - 'ee/spec/controllers/passwords_controller_spec.rb'
+ - 'ee/spec/controllers/profiles/usage_quotas_controller_spec.rb'
+ - 'ee/spec/controllers/profiles_controller_spec.rb'
+ - 'ee/spec/controllers/projects/analytics/cycle_analytics/summary_controller_spec.rb'
+ - 'ee/spec/controllers/projects/environments_controller_spec.rb'
+ - 'ee/spec/controllers/projects/issues_controller_spec.rb'
+ - 'ee/spec/controllers/projects/iterations_controller_spec.rb'
+ - 'ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb'
+ - 'ee/spec/controllers/projects/merge_requests_controller_spec.rb'
+ - 'ee/spec/controllers/projects/protected_environments_controller_spec.rb'
+ - 'ee/spec/controllers/projects/quality/test_cases_controller_spec.rb'
+ - 'ee/spec/controllers/projects/requirements_management/requirements_controller_spec.rb'
+ - 'ee/spec/controllers/projects/security/scanned_resources_controller_spec.rb'
+ - 'ee/spec/controllers/projects/settings/ci_cd_controller_spec.rb'
+ - 'ee/spec/controllers/projects/settings/repository_controller_spec.rb'
+ - 'ee/spec/controllers/projects/vulnerability_feedback_controller_spec.rb'
+ - 'ee/spec/controllers/projects_controller_spec.rb'
+ - 'ee/spec/controllers/registrations/groups_controller_spec.rb'
+ - 'ee/spec/controllers/registrations/welcome_controller_spec.rb'
+ - 'ee/spec/controllers/security/projects_controller_spec.rb'
+ - 'ee/spec/controllers/sitemap_controller_spec.rb'
+ - 'ee/spec/controllers/subscriptions_controller_spec.rb'
+ - 'ee/spec/db/production/license_spec.rb'
+ - 'ee/spec/elastic/migrate/20230724070100_backfill_epics_spec.rb'
+ - 'ee/spec/features/projects/pipelines/pipeline_spec.rb'
+ - 'ee/spec/features/user_sees_marketing_header_spec.rb'
+ - 'ee/spec/features/users/login_spec.rb'
+ - 'ee/spec/finders/analytics/cycle_analytics/stage_finder_spec.rb'
+ - 'ee/spec/finders/app_sec/fuzzing/coverage/corpuses_finder_spec.rb'
+ - 'ee/spec/finders/approval_rules/group_finder_spec.rb'
+ - 'ee/spec/finders/audit_event_finder_spec.rb'
+ - 'ee/spec/finders/auth/group_saml_identity_finder_spec.rb'
+ - 'ee/spec/finders/autocomplete/group_subgroups_finder_spec.rb'
+ - 'ee/spec/finders/boards/users_finder_spec.rb'
+ - 'ee/spec/finders/compliance_management/merge_requests/compliance_violations_finder_spec.rb'
+ - 'ee/spec/finders/custom_project_templates_finder_spec.rb'
+ - 'ee/spec/finders/dast/profiles_finder_spec.rb'
+ - 'ee/spec/finders/dast_scanner_profiles_finder_spec.rb'
+ - 'ee/spec/finders/dast_site_profiles_finder_spec.rb'
+ - 'ee/spec/finders/dast_site_validations_finder_spec.rb'
+ - 'ee/spec/finders/gpg_keys_finder_spec.rb'
+ - 'ee/spec/finders/group_saml_identity_finder_spec.rb'
+ - 'ee/spec/finders/groups_finder_spec.rb'
+ - 'ee/spec/finders/issues_finder_spec.rb'
+ - 'ee/spec/finders/iterations/cadences_finder_spec.rb'
+ - 'ee/spec/finders/iterations_finder_spec.rb'
+ - 'ee/spec/finders/notes_finder_spec.rb'
+ - 'ee/spec/finders/okrs/checkin_reminder_key_result_finder_spec.rb'
+ - 'ee/spec/finders/productivity_analytics_finder_spec.rb'
+ - 'ee/spec/finders/projects/integrations/jira/issues_finder_spec.rb'
+ - 'ee/spec/finders/remote_development/workspaces_finder_spec.rb'
+ - 'ee/spec/finders/security/approval_groups_finder_spec.rb'
+ - 'ee/spec/finders/security/pipeline_vulnerabilities_finder_spec.rb'
+ - 'ee/spec/finders/security/vulnerabilities_finder_spec.rb'
+ - 'ee/spec/finders/security/vulnerability_feedbacks_finder_spec.rb'
+ - 'ee/spec/finders/security/vulnerability_reads_finder_spec.rb'
+ - 'ee/spec/finders/snippets_finder_spec.rb'
+ - 'ee/spec/graphql/ee/mutations/boards/issues/issue_move_list_spec.rb'
+ - 'ee/spec/graphql/ee/mutations/boards/lists/create_spec.rb'
+ - 'ee/spec/graphql/ee/mutations/ci/job_token_scope/add_project_spec.rb'
+ - 'ee/spec/graphql/ee/mutations/ci/job_token_scope/remove_project_spec.rb'
+ - 'ee/spec/graphql/ee/mutations/ci/project_ci_cd_settings_update_spec.rb'
+ - 'ee/spec/graphql/ee/types/group_type_spec.rb'
+ - 'ee/spec/graphql/ee/types/namespace_type_spec.rb'
+ - 'ee/spec/graphql/graphql_triggers_spec.rb'
+ - 'ee/spec/graphql/mutations/ai/action_spec.rb'
+ - 'ee/spec/graphql/mutations/audit_events/streaming/event_type_filters/create_spec.rb'
+ - 'ee/spec/graphql/mutations/audit_events/streaming/event_type_filters/destroy_spec.rb'
+ - 'ee/spec/graphql/mutations/audit_events/streaming/headers/create_spec.rb'
+ - 'ee/spec/graphql/mutations/audit_events/streaming/headers/destroy_spec.rb'
+ - 'ee/spec/graphql/mutations/boards/epic_boards/destroy_spec.rb'
+ - 'ee/spec/graphql/mutations/boards/epic_boards/epic_move_list_spec.rb'
+ - 'ee/spec/graphql/mutations/boards/epics/create_spec.rb'
+ - 'ee/spec/graphql/mutations/boards/lists/update_limit_metrics_spec.rb'
+ - 'ee/spec/graphql/mutations/boards/update_spec.rb'
+ - 'ee/spec/graphql/mutations/compliance_management/frameworks/create_spec.rb'
+ - 'ee/spec/graphql/mutations/compliance_management/frameworks/update_spec.rb'
+ - 'ee/spec/graphql/mutations/dast/profiles/create_spec.rb'
+ - 'ee/spec/graphql/mutations/dast/profiles/delete_spec.rb'
+ - 'ee/spec/graphql/mutations/dast/profiles/run_spec.rb'
+ - 'ee/spec/graphql/mutations/dast/profiles/update_spec.rb'
+ - 'ee/spec/graphql/mutations/dast_on_demand_scans/create_spec.rb'
+ - 'ee/spec/graphql/mutations/dast_scanner_profiles/create_spec.rb'
+ - 'ee/spec/graphql/mutations/dast_scanner_profiles/delete_spec.rb'
+ - 'ee/spec/graphql/mutations/dast_scanner_profiles/update_spec.rb'
+ - 'ee/spec/graphql/mutations/dast_site_profiles/create_spec.rb'
+ - 'ee/spec/graphql/mutations/dast_site_profiles/delete_spec.rb'
+ - 'ee/spec/graphql/mutations/dast_site_profiles/update_spec.rb'
+ - 'ee/spec/graphql/mutations/dast_site_tokens/create_spec.rb'
+ - 'ee/spec/graphql/mutations/dast_site_validations/create_spec.rb'
+ - 'ee/spec/graphql/mutations/dast_site_validations/revoke_spec.rb'
+ - 'ee/spec/graphql/mutations/deployments/deployment_approve_spec.rb'
+ - 'ee/spec/graphql/mutations/epics/add_issue_spec.rb'
+ - 'ee/spec/graphql/mutations/epics/create_spec.rb'
+ - 'ee/spec/graphql/mutations/epics/update_spec.rb'
+ - 'ee/spec/graphql/mutations/forecasting/build_forecast_spec.rb'
+ - 'ee/spec/graphql/mutations/instance_security_dashboard/add_project_spec.rb'
+ - 'ee/spec/graphql/mutations/instance_security_dashboard/remove_project_spec.rb'
+ - 'ee/spec/graphql/mutations/issues/promote_to_epic_spec.rb'
+ - 'ee/spec/graphql/mutations/issues/set_epic_spec.rb'
+ - 'ee/spec/graphql/mutations/issues/set_iteration_spec.rb'
+ - 'ee/spec/graphql/mutations/issues/set_weight_spec.rb'
+ - 'ee/spec/graphql/mutations/issues/update_spec.rb'
+ - 'ee/spec/graphql/mutations/merge_requests/set_reviewers_spec.rb'
+ - 'ee/spec/graphql/mutations/merge_requests/update_approval_rules_spec.rb'
+ - 'ee/spec/graphql/mutations/namespaces/increase_storage_temporarily_spec.rb'
+ - 'ee/spec/graphql/mutations/projects/set_locked_spec.rb'
+ - 'ee/spec/graphql/mutations/releases/update_spec.rb'
+ - 'ee/spec/graphql/mutations/requirements_management/create_requirement_spec.rb'
+ - 'ee/spec/graphql/mutations/requirements_management/export_requirements_spec.rb'
+ - 'ee/spec/graphql/mutations/requirements_management/update_requirement_spec.rb'
+ - 'ee/spec/graphql/mutations/security/finding/dismiss_spec.rb'
+ - 'ee/spec/graphql/mutations/security_policy/assign_security_policy_project_spec.rb'
+ - 'ee/spec/graphql/mutations/security_policy/commit_scan_execution_policy_spec.rb'
+ - 'ee/spec/graphql/mutations/security_policy/create_security_policy_project_spec.rb'
+ - 'ee/spec/graphql/mutations/security_policy/unassign_security_policy_project_spec.rb'
+ - 'ee/spec/graphql/mutations/vulnerabilities/bulk_dismiss_spec.rb'
+ - 'ee/spec/graphql/mutations/vulnerabilities/create_external_issue_link_spec.rb'
+ - 'ee/spec/graphql/mutations/vulnerabilities/create_spec.rb'
+ - 'ee/spec/graphql/mutations/vulnerabilities/destroy_external_issue_link_spec.rb'
+ - 'ee/spec/graphql/mutations/vulnerabilities/dismiss_spec.rb'
+ - 'ee/spec/graphql/mutations/vulnerabilities/revert_to_detected_spec.rb'
+ - 'ee/spec/graphql/resolvers/app_sec/fuzzing/coverage/corpuses_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/boards/epic_list_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/clusters/agents_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/compliance_management/merge_requests/compliance_violation_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/incident_management/oncall_shifts_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/incident_management/oncall_users_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/product_analytics/dashboards_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/product_analytics/state_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/product_analytics/visualization_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/requirements_management/requirements_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/user_discussions_count_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/user_notes_count_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/vulnerabilities/issue_links_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/vulnerabilities_grade_resolver_spec.rb'
+ - 'ee/spec/graphql/resolvers/vulnerabilities_resolver_spec.rb'
+ - 'ee/spec/graphql/types/asset_type_spec.rb'
+ - 'ee/spec/graphql/types/ci/pipeline_type_spec.rb'
+ - 'ee/spec/graphql/types/incident_management/escalation_rule_input_type_spec.rb'
+ - 'ee/spec/graphql/types/pipeline_security_report_finding_type_spec.rb'
+ - 'ee/spec/graphql/types/project_type_spec.rb'
+ - 'ee/spec/graphql/types/vulnerability_evidence_source_type_spec.rb'
+ - 'ee/spec/graphql/types/vulnerability_evidence_supporting_message_type_spec.rb'
+ - 'ee/spec/graphql/types/vulnerability_evidence_type_spec.rb'
+ - 'ee/spec/graphql/types/vulnerability_location/coverage_fuzzing_type_spec.rb'
+ - 'ee/spec/graphql/types/vulnerability_location_type_spec.rb'
+ - 'ee/spec/graphql/types/vulnerability_request_response_header_type_spec.rb'
+ - 'ee/spec/graphql/types/vulnerability_request_type_spec.rb'
+ - 'ee/spec/graphql/types/vulnerability_response_type_spec.rb'
+ - 'ee/spec/graphql/types/vulnerability_scanner_type_spec.rb'
+ - 'ee/spec/graphql/types/vulnerability_type_spec.rb'
+ - 'ee/spec/helpers/admin/emails_helper_spec.rb'
+ - 'ee/spec/helpers/billing_plans_helper_spec.rb'
+ - 'ee/spec/helpers/compliance_management/compliance_framework/group_settings_helper_spec.rb'
+ - 'ee/spec/helpers/ee/auth_helper_spec.rb'
+ - 'ee/spec/helpers/ee/branches_helper_spec.rb'
+ - 'ee/spec/helpers/ee/ci/catalog/resources_helper_spec.rb'
+ - 'ee/spec/helpers/ee/ci/runners_helper_spec.rb'
+ - 'ee/spec/helpers/ee/emails_helper_spec.rb'
+ - 'ee/spec/helpers/ee/environments_helper_spec.rb'
+ - 'ee/spec/helpers/ee/events_helper_spec.rb'
+ - 'ee/spec/helpers/ee/gitlab_routing_helper_spec.rb'
+ - 'ee/spec/helpers/ee/groups/group_members_helper_spec.rb'
+ - 'ee/spec/helpers/ee/groups_helper_spec.rb'
+ - 'ee/spec/helpers/ee/lock_helper_spec.rb'
+ - 'ee/spec/helpers/ee/operations_helper_spec.rb'
+ - 'ee/spec/helpers/ee/projects/incidents_helper_spec.rb'
+ - 'ee/spec/helpers/ee/projects/pipeline_helper_spec.rb'
+ - 'ee/spec/helpers/ee/subscribable_banner_helper_spec.rb'
+ - 'ee/spec/helpers/groups/ldap_sync_helper_spec.rb'
+ - 'ee/spec/helpers/groups/sso_helper_spec.rb'
+ - 'ee/spec/helpers/kerberos_helper_spec.rb'
+ - 'ee/spec/helpers/license_helper_spec.rb'
+ - 'ee/spec/helpers/merge_requests_helper_spec.rb'
+ - 'ee/spec/helpers/nav/new_dropdown_helper_spec.rb'
+ - 'ee/spec/helpers/projects/security/dast_profiles_helper_spec.rb'
+ - 'ee/spec/helpers/projects_helper_spec.rb'
+ - 'ee/spec/helpers/search_helper_spec.rb'
+ - 'ee/spec/helpers/secrets_helper_spec.rb'
+ - 'ee/spec/helpers/sidebars_helper_spec.rb'
+ - 'ee/spec/helpers/trials_helper_spec.rb'
+ - 'ee/spec/helpers/users/group_callouts_helper_spec.rb'
+ - 'ee/spec/helpers/users_helper_spec.rb'
+ - 'ee/spec/helpers/vulnerabilities_helper_spec.rb'
+ - 'ee/spec/initializers/database_config_spec.rb'
+ - 'ee/spec/initializers/session_store_spec.rb'
+ - 'ee/spec/lib/analytics/devops_adoption/snapshot_calculator_spec.rb'
+ - 'ee/spec/lib/analytics/dora_metrics_aggregator_spec.rb'
+ - 'ee/spec/lib/analytics/forecasting/holt_winters_optimizer_spec.rb'
+ - 'ee/spec/lib/analytics/forecasting/holt_winters_spec.rb'
+ - 'ee/spec/lib/analytics/group_activity_calculator_spec.rb'
+ - 'ee/spec/lib/analytics/merge_request_metrics_calculator_spec.rb'
+ - 'ee/spec/lib/analytics/merge_request_metrics_refresh_spec.rb'
+ - 'ee/spec/lib/analytics/productivity_analytics_request_params_spec.rb'
+ - 'ee/spec/lib/analytics/refresh_comments_data_spec.rb'
+ - 'ee/spec/lib/api/entities/code_suggestions_access_token_spec.rb'
+ - 'ee/spec/lib/api/entities/deployments/approval_spec.rb'
+ - 'ee/spec/lib/api/entities/deployments/approval_summary_spec.rb'
+ - 'ee/spec/lib/api/entities/epic_board_spec.rb'
+ - 'ee/spec/lib/api/entities/epic_boards/list_details_spec.rb'
+ - 'ee/spec/lib/api/entities/epic_boards/list_spec.rb'
+ - 'ee/spec/lib/api/entities/merge_request_approval_setting_spec.rb'
+ - 'ee/spec/lib/api/entities/protected_environments/approval_rule_for_summary_spec.rb'
+ - 'ee/spec/lib/api/entities/protected_environments/approval_rule_spec.rb'
+ - 'ee/spec/lib/api/entities/protected_environments/deploy_access_level_spec.rb'
+ - 'ee/spec/lib/audit/base_changes_auditor_spec.rb'
+ - 'ee/spec/lib/audit/compliance_framework_changes_auditor_spec.rb'
+ - 'ee/spec/lib/audit/group_merge_request_approval_setting_changes_auditor_spec.rb'
+ - 'ee/spec/lib/audit/merge_request_before_destroy_auditor_spec.rb'
+ - 'ee/spec/lib/audit/merge_request_destroy_auditor_spec.rb'
+ - 'ee/spec/lib/audit/project_changes_auditor_spec.rb'
+ - 'ee/spec/lib/audit/protected_environment_authorization_rule_changes_auditor_spec.rb'
+ - 'ee/spec/lib/audit/push_rules/group_push_rules_changes_auditor_spec.rb'
+ - 'ee/spec/lib/audit/push_rules/project_push_rules_changes_auditor_spec.rb'
+ - 'ee/spec/lib/audit_events/external_destination_streamer_spec.rb'
+ - 'ee/spec/lib/audit_events/strategies/amazon_s3_destination_strategy_spec.rb'
+ - 'ee/spec/lib/audit_events/strategies/external_destination_strategy_spec.rb'
+ - 'ee/spec/lib/audit_events/strategies/google_cloud_logging_destination_strategy_spec.rb'
+ - 'ee/spec/lib/audit_events/strategies/group_external_destination_strategy_spec.rb'
+ - 'ee/spec/lib/audit_events/strategies/instance/google_cloud_logging_destination_strategy_spec.rb'
+ - 'ee/spec/lib/audit_events/strategies/instance_external_destination_strategy_spec.rb'
+ - 'ee/spec/lib/banzai/reference_parser/epic_parser_spec.rb'
+ - 'ee/spec/lib/banzai/reference_parser/vulnerability_parser_spec.rb'
+ - 'ee/spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb'
+ - 'ee/spec/lib/bulk_imports/groups/pipelines/epics_pipeline_spec.rb'
+ - 'ee/spec/lib/bulk_imports/groups/pipelines/iterations_cadences_pipeline_spec.rb'
+ - 'ee/spec/lib/bulk_imports/groups/pipelines/iterations_pipeline_spec.rb'
+ - 'ee/spec/lib/code_suggestions/prompts/code_completion/vertex_ai_spec.rb'
+ - 'ee/spec/lib/code_suggestions/prompts/code_generation/anthropic_spec.rb'
+ - 'ee/spec/lib/code_suggestions/task_factory_spec.rb'
+ - 'ee/spec/lib/code_suggestions/tasks/base_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/dependency_list_export_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/deployment_extended_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/experiment_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/geo_node_status_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/geo_site_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/geo_site_status_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/group_detail_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/member_role_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/project_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/scim/conflict_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/scim/emails_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/scim/error_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/scim/not_found_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/scim/user_name_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/scim/user_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/scim/users_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/user_with_admin_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/vulnerability_export_spec.rb'
+ - 'ee/spec/lib/ee/api/entities/vulnerability_spec.rb'
+ - 'ee/spec/lib/ee/api/helpers/notes_helpers_spec.rb'
+ - 'ee/spec/lib/ee/api/helpers/scim_pagination_spec.rb'
+ - 'ee/spec/lib/ee/api/helpers_spec.rb'
+ - 'ee/spec/lib/ee/backup/repositories_spec.rb'
+ - 'ee/spec/lib/ee/bulk_imports/groups/stage_spec.rb'
+ - 'ee/spec/lib/ee/bulk_imports/projects/stage_spec.rb'
+ - 'ee/spec/lib/ee/feature_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/auth/auth_finders_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/auth/current_user_mode_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/auth/request_authenticator_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/backfill_dismissal_reason_in_vulnerability_reads_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/backfill_epic_cache_counts_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/backfill_iteration_cadence_id_for_boards_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/delete_approval_rules_with_vulnerability_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/delete_invalid_epic_issues_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/delete_orphaned_transferred_project_approval_rules_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/fix_approval_project_rules_without_protected_branches_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/migrate_shared_vulnerability_identifiers_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/migrate_shared_vulnerability_scanners_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/migrate_vulnerabilities_feedback_to_vulnerabilities_state_transition_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/populate_approval_merge_request_rules_with_security_orchestration_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/populate_approval_project_rules_with_security_orchestration_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/checks/push_rule_check_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/checks/push_rules/branch_check_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/checks/push_rules/file_size_check_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/checks/push_rules/secrets_check_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/checks/push_rules/tag_check_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/ci/config/entry/bridge_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/ci/config/entry/needs_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/ci/parsers/security/validators/schema_validator_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/ci/pipeline/quota/size_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/ci/templates/templates_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/elastic/helper_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/group_search_results_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/import_export/after_export_strategies/custom_template_export_import_strategy_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/import_export/wiki_repo_saver_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/issuable/clone/copy_resource_events_service_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/metrics/samplers/database_sampler_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/pages/deployment_update_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/repository_size_checker_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/snippet_search_results_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/url_builder_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/usage_data_spec.rb'
+ - 'ee/spec/lib/ee/sidebars/groups/menus/issues_menu_spec.rb'
+ - 'ee/spec/lib/ee/sidebars/projects/menus/issues_menu_spec.rb'
+ - 'ee/spec/lib/ee/sidebars/projects/menus/security_compliance_menu_spec.rb'
+ - 'ee/spec/lib/ee/sidebars/projects/menus/settings_menu_spec.rb'
+ - 'ee/spec/lib/elastic/latest/application_instance_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/latest/epic_class_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/latest/epic_instance_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/latest/git_class_proxy_add_suffix_project_in_wiki_rid_running_wiki_search_spec.rb'
+ - 'ee/spec/lib/elastic/latest/git_class_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/latest/git_instance_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/latest/issue_class_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/latest/note_class_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/latest/project_instance_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/latest/routing_spec.rb'
+ - 'ee/spec/lib/elastic/latest/snippet_instance_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/latest/user_class_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/latest/user_instance_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/latest/wiki_class_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/latest/wiki_instance_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/multi_version_class_proxy_spec.rb'
+ - 'ee/spec/lib/elastic/multi_version_instance_proxy_spec.rb'
+ - 'ee/spec/lib/gitlab/analytics/cycle_analytics/distinct_stage_loader_spec.rb'
+ - 'ee/spec/lib/gitlab/analytics/cycle_analytics/request_params_spec.rb'
+ - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/change_failure_rate_spec.rb'
+ - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_summary_spec.rb'
+ - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/lead_time_for_changes_spec.rb'
+ - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/lead_time_spec.rb'
+ - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/stage_time_summary_spec.rb'
+ - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/time_to_restore_service_spec.rb'
+ - 'ee/spec/lib/gitlab/analytics/type_of_work/tasks_by_type_spec.rb'
+ - 'ee/spec/lib/gitlab/applied_ml/suggested_reviewers/client_spec.rb'
+ - 'ee/spec/lib/gitlab/audit/events/preloader_spec.rb'
+ - 'ee/spec/lib/gitlab/audit/levels/group_spec.rb'
+ - 'ee/spec/lib/gitlab/audit/levels/instance_spec.rb'
+ - 'ee/spec/lib/gitlab/audit/levels/project_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/group_saml/dynamic_settings_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/group_saml/failure_handler_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/group_saml/gma_membership_enforcer_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/group_saml/group_lookup_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/group_saml/identity_linker_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/group_saml/membership_updater_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/group_saml/response_check_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/group_saml/response_store_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/group_saml/sso_enforcer_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/group_saml/sso_state_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/group_saml/token_actor_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/group_saml/user_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/group_saml/xml_response_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/ldap/adapter_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/ldap/person_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/o_auth/user_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/smartcard/certificate_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/smartcard/ldap_certificate_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/smartcard/session_enforcer_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/smartcard/session_spec.rb'
+ - 'ee/spec/lib/gitlab/auth_spec.rb'
+ - 'ee/spec/lib/gitlab/background_migration/create_vulnerability_links_spec.rb'
+ - 'ee/spec/lib/gitlab/checks/changes_access_spec.rb'
+ - 'ee/spec/lib/gitlab/checks/diff_check_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/config/required/processor_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/config/security_orchestration_policies/processor_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/minutes/cached_quota_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/minutes/consumption_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/minutes/cost_factor_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/minutes/pipeline_consumption_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/parsers/license_compliance/license_scanning_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/parsers/metrics/generic_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/pipeline/chain/create_cross_database_associations_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/pipeline/chain/limit/size_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/reports/coverage_fuzzing/report_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/reports/dependency_list/report_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/reports/license_scanning/dependency_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/reports/license_scanning/license_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/reports/license_scanning/report_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/reports/license_scanning/reports_comparer_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/reports/metrics/report_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/reports/metrics/reports_comparer_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/reports/security/finding_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/reports/security/locations/container_scanning_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/reports/security/vulnerability_reports_comparer_spec.rb'
+ - 'ee/spec/lib/gitlab/ci/yaml_processor_spec.rb'
+ - 'ee/spec/lib/gitlab/circuit_breaker/notifier_spec.rb'
+ - 'ee/spec/lib/gitlab/code_owners/file_spec.rb'
+ - 'ee/spec/lib/gitlab/code_owners/loader_spec.rb'
+ - 'ee/spec/lib/gitlab/code_owners/validator_spec.rb'
+ - 'ee/spec/lib/gitlab/code_owners_spec.rb'
+ - 'ee/spec/lib/gitlab/elastic/group_search_results_spec.rb'
+ - 'ee/spec/lib/gitlab/elastic/indexer_spec.rb'
+ - 'ee/spec/lib/gitlab/elastic/project_search_results_spec.rb'
+ - 'ee/spec/lib/gitlab/email/feature_flag_wrapper_spec.rb'
+ - 'ee/spec/lib/gitlab/expiring_subscription_message_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/geo_node_status_check_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/geo_tasks_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/git_push_http_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/git_ssh_proxy_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/health_check_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/jwt_request_decoder_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/log_cursor/event_logs_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/log_cursor/events/cache_invalidation_event_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/log_cursor/events/event_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/log_cursor/events/hashed_storage_attachments_event_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/oauth/session_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/replication/blob_downloader_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/replication/blob_retriever_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/replicator_spec.rb'
+ - 'ee/spec/lib/gitlab/geo/signed_data_spec.rb'
+ - 'ee/spec/lib/gitlab/git_access_wiki_spec.rb'
+ - 'ee/spec/lib/gitlab/git_audit_event_spec.rb'
+ - 'ee/spec/lib/gitlab/graphql/aggregations/epics/epic_node_spec.rb'
+ - 'ee/spec/lib/gitlab/graphql/aggregations/epics/lazy_epic_aggregate_spec.rb'
+ - 'ee/spec/lib/gitlab/graphql/aggregations/security_orchestration_policies/lazy_dast_profile_aggregate_spec.rb'
+ - 'ee/spec/lib/gitlab/graphql/aggregations/vulnerabilities/lazy_user_notes_count_aggregate_spec.rb'
+ - 'ee/spec/lib/gitlab/graphql/aggregations/vulnerability_statistics/lazy_aggregate_spec.rb'
+ - 'ee/spec/lib/gitlab/graphql/loaders/bulk_epic_aggregate_loader_spec.rb'
+ - 'ee/spec/lib/gitlab/import_export/group/group_and_descendants_repo_restorer_spec.rb'
+ - 'ee/spec/lib/gitlab/import_export/group/group_and_descendants_repo_saver_spec.rb'
+ - 'ee/spec/lib/gitlab/import_export/project/deploy_keys_restorer_spec.rb'
+ - 'ee/spec/lib/gitlab/import_export/project/project_hooks_restorer_spec.rb'
+ - 'ee/spec/lib/gitlab/insights/configuration_filter_spec.rb'
+ - 'ee/spec/lib/gitlab/insights/finders/issuable_finder_spec.rb'
+ - 'ee/spec/lib/gitlab/insights/project_insights_config_spec.rb'
+ - 'ee/spec/lib/gitlab/insights/reducers/count_per_label_reducer_spec.rb'
+ - 'ee/spec/lib/gitlab/insights/reducers/count_per_period_reducer_spec.rb'
+ - 'ee/spec/lib/gitlab/insights/reducers/label_count_per_period_reducer_spec.rb'
+ - 'ee/spec/lib/gitlab/insights/serializers/chartjs/line_serializer_spec.rb'
+ - 'ee/spec/lib/gitlab/insights/serializers/chartjs/multi_series_serializer_spec.rb'
+ - 'ee/spec/lib/gitlab/insights/validators/params_validator_spec.rb'
+ - 'ee/spec/lib/gitlab/instrumentation_helper_spec.rb'
+ - 'ee/spec/lib/gitlab/items_collection_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/ai_message_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/anthropic/response_modifiers/tanuki_bot_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/base_response_modifier_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/chain/agents/zero_shot/prompts/anthropic_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/chain/parsers/output_parser_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/chain/response_modifier_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/chain/tools/tool_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/chain/utils/authorizer_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/chat_message_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/chat_storage_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/completions/chat_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/concerns/circuit_breaker_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/concerns/exponential_backoff_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/graphql_subscription_response_service_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/open_ai/completions/generate_commit_message_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/open_ai/templates/generate_description_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/templates/categorize_question_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/templates/explain_vulnerability_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/templates/fill_in_merge_request_template_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/templates/generate_commit_message_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/templates/generate_test_file_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/templates/summarize_merge_request_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/templates/summarize_review_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/templates/summarize_submitted_review_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/completions/analyze_ci_job_failure_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/completions/fill_in_merge_request_template_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/completions/generate_commit_message_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/completions/generate_test_file_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/completions/summarize_merge_request_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/completions/summarize_review_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/completions/summarize_submitted_review_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/model_configurations/base_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/model_configurations/chat_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/model_configurations/code_chat_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/model_configurations/code_completion_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/model_configurations/code_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/model_configurations/text_embeddings_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/vertex_ai/model_configurations/text_spec.rb'
+ - 'ee/spec/lib/gitlab/metrics/samplers/global_search_sampler_spec.rb'
+ - 'ee/spec/lib/gitlab/mirror_spec.rb'
+ - 'ee/spec/lib/gitlab/package_metadata/connector/base_data_file_spec.rb'
+ - 'ee/spec/lib/gitlab/patch/additional_database_tasks_spec.rb'
+ - 'ee/spec/lib/gitlab/patch/draw_route_spec.rb'
+ - 'ee/spec/lib/gitlab/proxy_spec.rb'
+ - 'ee/spec/lib/gitlab/reference_extractor_spec.rb'
+ - 'ee/spec/lib/gitlab/search/aggregation_parser_spec.rb'
+ - 'ee/spec/lib/gitlab/search/aggregation_spec.rb'
+ - 'ee/spec/lib/gitlab/search/client_spec.rb'
+ - 'ee/spec/lib/gitlab/search/zoekt/client_spec.rb'
+ - 'ee/spec/lib/gitlab/search_context/builder_spec.rb'
+ - 'ee/spec/lib/gitlab/sitemaps/generator_spec.rb'
+ - 'ee/spec/lib/gitlab/sitemaps/sitemap_file_spec.rb'
+ - 'ee/spec/lib/gitlab/sitemaps/url_extractor_spec.rb'
+ - 'ee/spec/lib/gitlab/spdx/catalogue_spec.rb'
+ - 'ee/spec/lib/gitlab/status_page/filter/image_filter_spec.rb'
+ - 'ee/spec/lib/gitlab/status_page/pipeline/post_process_pipeline_spec.rb'
+ - 'ee/spec/lib/gitlab/status_page_spec.rb'
+ - 'ee/spec/lib/gitlab/subscription_portal/clients/graphql_spec.rb'
+ - 'ee/spec/lib/gitlab/tree_summary_spec.rb'
+ - 'ee/spec/lib/gitlab/usage_data_metrics_spec.rb'
+ - 'ee/spec/lib/gitlab/vulnerabilities/parser_spec.rb'
+ - 'ee/spec/lib/gitlab/vulnerability_scanning/track_cvs_service_spec.rb'
+ - 'ee/spec/lib/gitlab_subscriptions/upcoming_reconciliation_entity_spec.rb'
+ - 'ee/spec/lib/omni_auth/strategies/kerberos_spec.rb'
+ - 'ee/spec/lib/product_analytics/settings_spec.rb'
+ - 'ee/spec/lib/remote_development/agent_config/main_integration_spec.rb'
+ - 'ee/spec/lib/remote_development/agent_config/updater_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/create/creator_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/create/devfile_flattener_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/create/editor_component_injector_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/create/main_integration_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/create/personal_access_token_creator_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/create/project_cloner_component_injector_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/create/volume_component_injector_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/create/volume_definer_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/create/workspace_creator_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/create/workspace_variables_creator_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/input/actual_state_calculator_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/input/agent_info_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/input/agent_infos_observer_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/input/factory_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/input/params_extractor_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/input/params_to_infos_converter_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/main_integration_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/output/desired_config_generator_prev1_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/output/desired_config_generator_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/output/devfile_parser_prev1_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/output/devfile_parser_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/output/rails_infos_observer_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/persistence/orphaned_workspaces_observer_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/persistence/workspaces_from_agent_infos_updater_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_finder_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_updater_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/update/main_integration_spec.rb'
+ - 'ee/spec/lib/remote_development/workspaces/update/updater_spec.rb'
+ - 'ee/spec/lib/sidebars/groups/menus/epics_menu_spec.rb'
+ - 'ee/spec/lib/sidebars/groups/menus/security_compliance_menu_spec.rb'
+ - 'ee/spec/lib/sidebars/projects/menus/learn_gitlab_menu_spec.rb'
+ - 'ee/spec/lib/sidebars/user_settings/menus/profile_billing_menu_spec.rb'
+ - 'ee/spec/lib/system_check/geo/authorized_keys_check_spec.rb'
+ - 'ee/spec/lib/system_check/geo/authorized_keys_flag_check_spec.rb'
+ - 'ee/spec/lib/system_check/geo/clocks_synchronization_check_spec.rb'
+ - 'ee/spec/lib/system_check/geo/current_node_check_spec.rb'
+ - 'ee/spec/lib/system_check/geo/geo_database_configured_check_spec.rb'
+ - 'ee/spec/lib/system_check/geo/http_connection_check_spec.rb'
+ - 'ee/spec/lib/system_check/geo/license_check_spec.rb'
+ - 'ee/spec/lib/system_check/geo/ssh_port_check_spec.rb'
+ - 'ee/spec/lib/telesign/transaction_callback_spec.rb'
+ - 'ee/spec/mailers/ee/emails/issues_spec.rb'
+ - 'ee/spec/mailers/emails/enterprise_users_spec.rb'
+ - 'ee/spec/mailers/emails/epics_spec.rb'
+ - 'ee/spec/mailers/emails/group_memberships_spec.rb'
+ - 'ee/spec/mailers/emails/in_product_marketing_spec.rb'
+ - 'ee/spec/mailers/emails/merge_commits_spec.rb'
+ - 'ee/spec/mailers/emails/merge_requests_spec.rb'
+ - 'ee/spec/mailers/emails/requirements_spec.rb'
+ - 'ee/spec/mailers/license_mailer_spec.rb'
+ - 'ee/spec/mailers/notify_spec.rb'
+ - 'ee/spec/models/ai/job_failure_analysis_spec.rb'
+ - 'ee/spec/models/ai/project/conversations_spec.rb'
+ - 'ee/spec/models/allowed_email_domain_spec.rb'
+ - 'ee/spec/models/analytics/cycle_analytics/group_level_spec.rb'
+ - 'ee/spec/models/analytics/forecasting/deployment_frequency_forecast_spec.rb'
+ - 'ee/spec/models/analytics/forecasting/forecast_spec.rb'
+ - 'ee/spec/models/analytics/issues_analytics_spec.rb'
+ - 'ee/spec/models/application_setting_spec.rb'
+ - 'ee/spec/models/approval_merge_request_rule_spec.rb'
+ - 'ee/spec/models/approval_project_rule_spec.rb'
+ - 'ee/spec/models/approval_state_spec.rb'
+ - 'ee/spec/models/approval_wrapped_any_approver_rule_spec.rb'
+ - 'ee/spec/models/approval_wrapped_code_owner_rule_spec.rb'
+ - 'ee/spec/models/approval_wrapped_rule_spec.rb'
+ - 'ee/spec/models/approvals/scan_finding_wrapped_rule_set_spec.rb'
+ - 'ee/spec/models/approvals/wrapped_rule_set_spec.rb'
+ - 'ee/spec/models/audit_events/external_audit_event_destination_spec.rb'
+ - 'ee/spec/models/audit_events/instance_external_audit_event_destination_spec.rb'
+ - 'ee/spec/models/audit_events/streaming/event_type_filter_spec.rb'
+ - 'ee/spec/models/audit_events/streaming/instance_event_type_filter_spec.rb'
+ - 'ee/spec/models/boards/epic_board_position_spec.rb'
+ - 'ee/spec/models/burndown_spec.rb'
+ - 'ee/spec/models/ci/bridge_spec.rb'
+ - 'ee/spec/models/ci/build_spec.rb'
+ - 'ee/spec/models/ci/daily_build_group_report_result_spec.rb'
+ - 'ee/spec/models/ci/editor/ai_conversation/message_spec.rb'
+ - 'ee/spec/models/ci/minutes/cost_setting_spec.rb'
+ - 'ee/spec/models/ci/minutes/namespace_monthly_usage_spec.rb'
+ - 'ee/spec/models/ci/minutes/project_monthly_usage_spec.rb'
+ - 'ee/spec/models/ci/minutes/quota_spec.rb'
+ - 'ee/spec/models/ci/pipeline_spec.rb'
+ - 'ee/spec/models/compliance_management/compliance_framework/project_settings_spec.rb'
+ - 'ee/spec/models/compliance_management/framework_spec.rb'
+ - 'ee/spec/models/concerns/approval_rule_like_spec.rb'
+ - 'ee/spec/models/concerns/ee/packages/downloadable_spec.rb'
+ - 'ee/spec/models/concerns/ee/weight_eventable_spec.rb'
+ - 'ee/spec/models/concerns/elastic/projects_search_spec.rb'
+ - 'ee/spec/models/concerns/geo/has_replicator_spec.rb'
+ - 'ee/spec/models/concerns/geo/replicable_model_spec.rb'
+ - 'ee/spec/models/concerns/geo/verifiable_model_spec.rb'
+ - 'ee/spec/models/concerns/geo/verification_state_spec.rb'
+ - 'ee/spec/models/concerns/identity_verifiable_spec.rb'
+ - 'ee/spec/models/concerns/mirror_configuration_spec.rb'
+ - 'ee/spec/models/concerns/projects/custom_branch_rule_spec.rb'
+ - 'ee/spec/models/concerns/timebox_spec.rb'
+ - 'ee/spec/models/dast/branch_spec.rb'
+ - 'ee/spec/models/dast/pre_scan_verification_spec.rb'
+ - 'ee/spec/models/dast/pre_scan_verification_step_spec.rb'
+ - 'ee/spec/models/dast/profile_schedule_spec.rb'
+ - 'ee/spec/models/dast/profile_spec.rb'
+ - 'ee/spec/models/dast/scanner_profiles_build_spec.rb'
+ - 'ee/spec/models/dast/site_profile_secret_variable_spec.rb'
+ - 'ee/spec/models/dast/site_profiles_build_spec.rb'
+ - 'ee/spec/models/dast_scanner_profile_spec.rb'
+ - 'ee/spec/models/dast_site_profile_spec.rb'
+ - 'ee/spec/models/dast_site_spec.rb'
+ - 'ee/spec/models/dast_site_token_spec.rb'
+ - 'ee/spec/models/dast_site_validation_spec.rb'
+ - 'ee/spec/models/dora/base_metric_spec.rb'
+ - 'ee/spec/models/dora/change_failure_rate_metric_spec.rb'
+ - 'ee/spec/models/dora/daily_metrics_spec.rb'
+ - 'ee/spec/models/dora/deployment_frequency_metric_spec.rb'
+ - 'ee/spec/models/dora/time_to_restore_service_metric_spec.rb'
+ - 'ee/spec/models/dora/watchers/deployment_watcher_spec.rb'
+ - 'ee/spec/models/dora/watchers/issue_watcher_spec.rb'
+ - 'ee/spec/models/ee/alert_management/alert_spec.rb'
+ - 'ee/spec/models/ee/approvable_spec.rb'
+ - 'ee/spec/models/ee/audit_event_spec.rb'
+ - 'ee/spec/models/ee/ci/build_dependencies_spec.rb'
+ - 'ee/spec/models/ee/event_collection_spec.rb'
+ - 'ee/spec/models/ee/group_spec.rb'
+ - 'ee/spec/models/ee/groups/feature_setting_spec.rb'
+ - 'ee/spec/models/ee/list_spec.rb'
+ - 'ee/spec/models/ee/merge_request/metrics_spec.rb'
+ - 'ee/spec/models/ee/namespace/root_storage_statistics_spec.rb'
+ - 'ee/spec/models/ee/namespace_spec.rb'
+ - 'ee/spec/models/ee/namespaces/namespace_ban_spec.rb'
+ - 'ee/spec/models/ee/notification_setting_spec.rb'
+ - 'ee/spec/models/ee/pages_domain_spec.rb'
+ - 'ee/spec/models/ee/personal_access_token_spec.rb'
+ - 'ee/spec/models/ee/project_spec.rb'
+ - 'ee/spec/models/ee/project_wiki_spec.rb'
+ - 'ee/spec/models/ee/projects/branch_rule_spec.rb'
+ - 'ee/spec/models/ee/protected_branch_spec.rb'
+ - 'ee/spec/models/ee/resource_label_event_spec.rb'
+ - 'ee/spec/models/ee/resource_state_event_spec.rb'
+ - 'ee/spec/models/ee/user_detail_spec.rb'
+ - 'ee/spec/models/ee/user_spec.rb'
+ - 'ee/spec/models/ee/vulnerability_spec.rb'
+ - 'ee/spec/models/ee/work_items/parent_link_spec.rb'
+ - 'ee/spec/models/embedding/application_record_spec.rb'
+ - 'ee/spec/models/embedding/schema_migration_spec.rb'
+ - 'ee/spec/models/environment_spec.rb'
+ - 'ee/spec/models/epic_issue_spec.rb'
+ - 'ee/spec/models/epic_spec.rb'
+ - 'ee/spec/models/geo/deleted_project_spec.rb'
+ - 'ee/spec/models/geo/event_log_spec.rb'
+ - 'ee/spec/models/geo/every_geo_event_spec.rb'
+ - 'ee/spec/models/geo/package_file_registry_spec.rb'
+ - 'ee/spec/models/geo/push_user_spec.rb'
+ - 'ee/spec/models/geo/repository_updated_event_spec.rb'
+ - 'ee/spec/models/geo/secondary_usage_data_spec.rb'
+ - 'ee/spec/models/geo_node_spec.rb'
+ - 'ee/spec/models/geo_node_status_spec.rb'
+ - 'ee/spec/models/gitlab/seat_link_data_spec.rb'
+ - 'ee/spec/models/gitlab_subscription_spec.rb'
+ - 'ee/spec/models/gitlab_subscriptions/features_spec.rb'
+ - 'ee/spec/models/group_wiki_spec.rb'
+ - 'ee/spec/models/identity_spec.rb'
+ - 'ee/spec/models/incident_management/escalation_policy_spec.rb'
+ - 'ee/spec/models/incident_management/escalation_rule_spec.rb'
+ - 'ee/spec/models/incident_management/issuable_escalation_status_spec.rb'
+ - 'ee/spec/models/incident_management/oncall_participant_spec.rb'
+ - 'ee/spec/models/incident_management/oncall_rotation_spec.rb'
+ - 'ee/spec/models/incident_management/oncall_schedule_spec.rb'
+ - 'ee/spec/models/incident_management/oncall_shift_spec.rb'
+ - 'ee/spec/models/instance_security_dashboard_spec.rb'
+ - 'ee/spec/models/integrations/chat_message/vulnerability_message_spec.rb'
+ - 'ee/spec/models/integrations/github/remote_project_spec.rb'
+ - 'ee/spec/models/integrations/github/status_message_spec.rb'
+ - 'ee/spec/models/integrations/github/status_notifier_spec.rb'
+ - 'ee/spec/models/integrations/github_spec.rb'
+ - 'ee/spec/models/ip_restriction_spec.rb'
+ - 'ee/spec/models/issuable_metric_image_spec.rb'
+ - 'ee/spec/models/issue_spec.rb'
+ - 'ee/spec/models/iteration_note_spec.rb'
+ - 'ee/spec/models/iteration_spec.rb'
+ - 'ee/spec/models/label_note_spec.rb'
+ - 'ee/spec/models/license_spec.rb'
+ - 'ee/spec/models/merge_request_spec.rb'
+ - 'ee/spec/models/merge_requests/external_status_check_spec.rb'
+ - 'ee/spec/models/merge_trains/car_spec.rb'
+ - 'ee/spec/models/merge_trains/train_spec.rb'
+ - 'ee/spec/models/namespace_limit_spec.rb'
+ - 'ee/spec/models/namespace_setting_spec.rb'
+ - 'ee/spec/models/namespaces/free_user_cap/root_size_spec.rb'
+ - 'ee/spec/models/namespaces/storage/root_size_spec.rb'
+ - 'ee/spec/models/packages/package_file_spec.rb'
+ - 'ee/spec/models/product_analytics/dashboard_spec.rb'
+ - 'ee/spec/models/product_analytics/panel_spec.rb'
+ - 'ee/spec/models/product_analytics/visualization_spec.rb'
+ - 'ee/spec/models/project_feature_spec.rb'
+ - 'ee/spec/models/projects/all_branches_rule_spec.rb'
+ - 'ee/spec/models/projects/all_protected_branches_rule_spec.rb'
+ - 'ee/spec/models/projects/target_branch_rule_spec.rb'
+ - 'ee/spec/models/protected_environment_spec.rb'
+ - 'ee/spec/models/push_rule_spec.rb'
+ - 'ee/spec/models/release_highlight_spec.rb'
+ - 'ee/spec/models/remote_development/remote_development_agent_config_spec.rb'
+ - 'ee/spec/models/remote_development/workspace_spec.rb'
+ - 'ee/spec/models/remote_development/workspace_variable_spec.rb'
+ - 'ee/spec/models/requirements_management/requirement_spec.rb'
+ - 'ee/spec/models/requirements_management/test_report_spec.rb'
+ - 'ee/spec/models/saml_provider_spec.rb'
+ - 'ee/spec/models/sbom/occurrence_spec.rb'
+ - 'ee/spec/models/sca/license_policy_spec.rb'
+ - 'ee/spec/models/security/orchestration_policy_configuration_spec.rb'
+ - 'ee/spec/models/security/training_provider_spec.rb'
+ - 'ee/spec/models/security/training_spec.rb'
+ - 'ee/spec/models/snippet_spec.rb'
+ - 'ee/spec/models/software_license_policy_spec.rb'
+ - 'ee/spec/models/software_license_spec.rb'
+ - 'ee/spec/models/status_page/published_incident_spec.rb'
+ - 'ee/spec/models/upload_spec.rb'
+ - 'ee/spec/models/vulnerabilities/finding_spec.rb'
+ - 'ee/spec/models/vulnerabilities/state_transition_spec.rb'
+ - 'ee/spec/models/weight_note_spec.rb'
+ - 'ee/spec/models/zoekt/indexed_namespace_spec.rb'
+ - 'ee/spec/policies/epic_policy_spec.rb'
+ - 'ee/spec/policies/group_policy_spec.rb'
+ - 'ee/spec/policies/merge_request_policy_spec.rb'
+ - 'ee/spec/policies/project_policy_spec.rb'
+ - 'ee/spec/presenters/approval_rule_presenter_spec.rb'
+ - 'ee/spec/presenters/ci/build_runner_presenter_spec.rb'
+ - 'ee/spec/presenters/ci/pipeline_presenter_spec.rb'
+ - 'ee/spec/presenters/merge_request_approver_presenter_spec.rb'
+ - 'ee/spec/presenters/merge_request_presenter_spec.rb'
+ - 'ee/spec/presenters/subscription_presenter_spec.rb'
+ - 'ee/spec/presenters/vulnerabilities/scanner_presenter_spec.rb'
+ - 'ee/spec/presenters/vulnerability_presenter_spec.rb'
+ - 'ee/spec/replicators/geo/pipeline_replicator_spec.rb'
+ - 'ee/spec/requests/admin/user_permission_exports_controller_spec.rb'
+ - 'ee/spec/requests/api/audit_events_spec.rb'
+ - 'ee/spec/requests/api/ci/jobs_spec.rb'
+ - 'ee/spec/requests/api/ci/triggers_spec.rb'
+ - 'ee/spec/requests/api/epic_links_spec.rb'
+ - 'ee/spec/requests/api/geo_spec.rb'
+ - 'ee/spec/requests/api/graphql/ai_messages_spec.rb'
+ - 'ee/spec/requests/api/graphql/audit_events/streaming/headers/create_spec.rb'
+ - 'ee/spec/requests/api/graphql/audit_events/streaming/headers/destroy_spec.rb'
+ - 'ee/spec/requests/api/graphql/audit_events/streaming/headers/update_spec.rb'
+ - 'ee/spec/requests/api/graphql/audit_events/streaming/instance_headers/create_spec.rb'
+ - 'ee/spec/requests/api/graphql/audit_events/streaming/instance_headers/destroy_spec.rb'
+ - 'ee/spec/requests/api/graphql/audit_events/streaming/instance_headers/update_spec.rb'
+ - 'ee/spec/requests/api/graphql/boards/epic_list_query_spec.rb'
+ - 'ee/spec/requests/api/graphql/ci/minutes/usage_spec.rb'
+ - 'ee/spec/requests/api/graphql/environments/deployments_spec.rb'
+ - 'ee/spec/requests/api/graphql/explain_vulnerability_prompt_spec.rb'
+ - 'ee/spec/requests/api/graphql/member_role/group_member_role_spec.rb'
+ - 'ee/spec/requests/api/graphql/member_role/permissions_list_spec.rb'
+ - 'ee/spec/requests/api/graphql/member_role/project_member_role_spec.rb'
+ - 'ee/spec/requests/api/graphql/member_role/single_member_role_spec.rb'
+ - 'ee/spec/requests/api/graphql/milestone_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/audit_events/amazon_s3_configurations/update_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/create_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/audit_events/google_cloud_logging_configurations/destroy_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/audit_events/instance/google_cloud_logging_configurations/destroy_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/audit_events/instance_external_audit_event_destinations/create_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/boards/create_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/boards/epic_boards/destroy_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/boards/epic_boards/epic_move_list_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/boards/epics/create_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/ci/project_subscriptions/delete_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/create_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/destroy_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/update_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/dast/profiles/create_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/dast/profiles/delete_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/dast/profiles/update_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/dast_on_demand_scans/create_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/delete_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/update_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/dast_site_profiles/create_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/dast_site_profiles/delete_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/dast_site_profiles/update_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/dast_site_tokens/create_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/dast_site_validations/create_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/dast_site_validations/revoke_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/dependency_proxy/packages/settings/update_spec.rb'
+ - 'ee/spec/requests/api/graphql/mutations/security_policy/assign_security_policy_project_spec.rb'
+ - 'ee/spec/requests/api/graphql/pipeline_security_report_finding_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/dast_profile_schedule_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/dast_profile_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/dast_profiles_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/dast_scanner_profiles_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/dast_site_profiles_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/dast_site_validations_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/deployment_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/environments_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/pipeline/dast_profile_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/pipelines/dast_profile_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/product_analytics/events_stored_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/product_analytics/product_analytics_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/sbom/dependencies_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/security_orchestration/scan_result_policy_spec.rb'
+ - 'ee/spec/requests/api/graphql/project/vulnerability_severities_count_spec.rb'
+ - 'ee/spec/requests/api/graphql/projects/compliance_frameworks_spec.rb'
+ - 'ee/spec/requests/api/graphql/vulnerabilities/details_spec.rb'
+ - 'ee/spec/requests/api/graphql/vulnerabilities/fields_spec.rb'
+ - 'ee/spec/requests/api/graphql/vulnerabilities/identifiers_spec.rb'
+ - 'ee/spec/requests/api/graphql/vulnerabilities/location_spec.rb'
+ - 'ee/spec/requests/api/graphql/vulnerabilities/primary_identifier_spec.rb'
+ - 'ee/spec/requests/api/graphql/vulnerabilities/scanner_spec.rb'
+ - 'ee/spec/requests/api/group_push_rule_spec.rb'
+ - 'ee/spec/requests/api/group_variables_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/base_spec.rb'
+ - 'ee/spec/requests/api/internal/kubernetes_spec.rb'
+ - 'ee/spec/requests/api/internal/suggested_reviewers_spec.rb'
+ - 'ee/spec/requests/api/issues_spec.rb'
+ - 'ee/spec/requests/api/member_roles_spec.rb'
+ - 'ee/spec/requests/api/members_spec.rb'
+ - 'ee/spec/requests/api/merge_trains_spec.rb'
+ - 'ee/spec/requests/api/namespaces_spec.rb'
+ - 'ee/spec/requests/api/project_import_spec.rb'
+ - 'ee/spec/requests/api/projects_spec.rb'
+ - 'ee/spec/requests/api/releases_spec.rb'
+ - 'ee/spec/requests/api/remote_mirrors_spec.rb'
+ - 'ee/spec/requests/api/saml_group_links_spec.rb'
+ - 'ee/spec/requests/api/status_checks_spec.rb'
+ - 'ee/spec/requests/api/todos_spec.rb'
+ - 'ee/spec/requests/api/vulnerabilities_spec.rb'
+ - 'ee/spec/requests/git_http_geo_spec.rb'
+ - 'ee/spec/requests/groups/analytics/devops_adoption_controller_spec.rb'
+ - 'ee/spec/requests/groups/dependencies_controller_spec.rb'
+ - 'ee/spec/requests/groups/epics/epic_links_controller_spec.rb'
+ - 'ee/spec/requests/groups/group_members_controller_spec.rb'
+ - 'ee/spec/requests/groups/protected_branches_controller_spec.rb'
+ - 'ee/spec/requests/groups/protected_environments_controller_spec.rb'
+ - 'ee/spec/requests/groups/security/credentials_controller_spec.rb'
+ - 'ee/spec/requests/groups/settings/domain_verification_controller_spec.rb'
+ - 'ee/spec/requests/groups/settings/merge_requests_controller_spec.rb'
+ - 'ee/spec/requests/groups_controller_spec.rb'
+ - 'ee/spec/requests/projects/analytics/cycle_analytics/stages_controller_spec.rb'
+ - 'ee/spec/requests/projects/metrics_controller_spec.rb'
+ - 'ee/spec/requests/projects/pipelines_controller_spec.rb'
+ - 'ee/spec/requests/projects/requirements_management/requirements_controller_spec.rb'
+ - 'ee/spec/requests/projects/security/policies_controller_spec.rb'
+ - 'ee/spec/requests/projects/security/scanned_resources_controller_spec.rb'
+ - 'ee/spec/requests/projects/settings/analytics_controller_spec.rb'
+ - 'ee/spec/requests/projects/tracing_controller_spec.rb'
+ - 'ee/spec/requests/repositories/git_http_controller_spec.rb'
+ - 'ee/spec/requests/smartcard_controller_spec.rb'
+ - 'ee/spec/serializers/analytics/cycle_analytics/value_stream_errors_serializer_spec.rb'
+ - 'ee/spec/serializers/audit_event_entity_spec.rb'
+ - 'ee/spec/serializers/autocomplete/group_entity_spec.rb'
+ - 'ee/spec/serializers/autocomplete/iteration_entity_spec.rb'
+ - 'ee/spec/serializers/clusters/deployment_entity_spec.rb'
+ - 'ee/spec/serializers/clusters/environment_entity_spec.rb'
+ - 'ee/spec/serializers/dashboard_operations_project_entity_spec.rb'
+ - 'ee/spec/serializers/dependency_entity_spec.rb'
+ - 'ee/spec/serializers/ee/blob_entity_spec.rb'
+ - 'ee/spec/serializers/ee/build_details_entity_spec.rb'
+ - 'ee/spec/serializers/ee/ci/pipeline_entity_spec.rb'
+ - 'ee/spec/serializers/ee/deployment_entity_spec.rb'
+ - 'ee/spec/serializers/ee/evidences/release_entity_spec.rb'
+ - 'ee/spec/serializers/ee/issue_board_entity_spec.rb'
+ - 'ee/spec/serializers/ee/issue_entity_spec.rb'
+ - 'ee/spec/serializers/ee/issue_sidebar_extras_entity_spec.rb'
+ - 'ee/spec/serializers/ee/merge_request_poll_cached_widget_entity_spec.rb'
+ - 'ee/spec/serializers/ee/note_entity_spec.rb'
+ - 'ee/spec/serializers/environment_entity_spec.rb'
+ - 'ee/spec/serializers/epic_entity_spec.rb'
+ - 'ee/spec/serializers/epic_note_entity_spec.rb'
+ - 'ee/spec/serializers/evidences/build_artifact_entity_spec.rb'
+ - 'ee/spec/serializers/group_vulnerability_autocomplete_entity_spec.rb'
+ - 'ee/spec/serializers/incident_management/escalation_policy_entity_spec.rb'
+ - 'ee/spec/serializers/incident_management/oncall_schedule_entity_spec.rb'
+ - 'ee/spec/serializers/integrations/jira_serializers/issue_detail_entity_spec.rb'
+ - 'ee/spec/serializers/integrations/jira_serializers/issue_entity_spec.rb'
+ - 'ee/spec/serializers/integrations/jira_serializers/issue_serializer_spec.rb'
+ - 'ee/spec/serializers/integrations/zentao_serializers/issue_entity_spec.rb'
+ - 'ee/spec/serializers/license_compliance/collapsed_comparer_entity_spec.rb'
+ - 'ee/spec/serializers/license_compliance/comparer_entity_spec.rb'
+ - 'ee/spec/serializers/license_entity_spec.rb'
+ - 'ee/spec/serializers/merge_request_widget_entity_spec.rb'
+ - 'ee/spec/serializers/metrics_report_metric_entity_spec.rb'
+ - 'ee/spec/serializers/metrics_reports_comparer_entity_spec.rb'
+ - 'ee/spec/serializers/pipeline_serializer_spec.rb'
+ - 'ee/spec/serializers/productivity_analytics_merge_request_entity_spec.rb'
+ - 'ee/spec/serializers/project_mirror_entity_spec.rb'
+ - 'ee/spec/serializers/sbom/dependency_license_list_entity_spec.rb'
+ - 'ee/spec/serializers/sbom/sbom_entity_spec.rb'
+ - 'ee/spec/serializers/security/license_policy_entity_spec.rb'
+ - 'ee/spec/serializers/security/vulnerability_report_data_entity_spec.rb'
+ - 'ee/spec/serializers/test_reports_comparer_entity_spec.rb'
+ - 'ee/spec/serializers/test_reports_comparer_serializer_spec.rb'
+ - 'ee/spec/serializers/test_suite_comparer_entity_spec.rb'
+ - 'ee/spec/serializers/vulnerabilities/feedback_entity_spec.rb'
+ - 'ee/spec/serializers/vulnerabilities/finding_entity_spec.rb'
+ - 'ee/spec/serializers/vulnerabilities/finding_reports_comparer_entity_spec.rb'
+ - 'ee/spec/serializers/vulnerabilities/identifier_entity_spec.rb'
+ - 'ee/spec/serializers/vulnerabilities/request_entity_spec.rb'
+ - 'ee/spec/serializers/vulnerabilities/response_entity_spec.rb'
+ - 'ee/spec/serializers/vulnerabilities/scanner_entity_spec.rb'
+ - 'ee/spec/serializers/vulnerability_entity_spec.rb'
+ - 'ee/spec/serializers/vulnerability_note_entity_spec.rb'
+ - 'ee/spec/services/admin/email_service_spec.rb'
+ - 'ee/spec/services/ai/service_access_tokens_storage_service_spec.rb'
+ - 'ee/spec/services/analytics/cycle_analytics/stages/list_service_spec.rb'
+ - 'ee/spec/services/analytics/cycle_analytics/value_streams/update_service_spec.rb'
+ - 'ee/spec/services/analytics/devops_adoption/enabled_namespaces/find_or_create_service_spec.rb'
+ - 'ee/spec/services/analytics/devops_adoption/snapshots/calculate_and_save_service_spec.rb'
+ - 'ee/spec/services/analytics/devops_adoption/snapshots/create_service_spec.rb'
+ - 'ee/spec/services/analytics/devops_adoption/snapshots/update_service_spec.rb'
+ - 'ee/spec/services/analytics/forecasting/build_forecast_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/pipelines/find_latest_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/pre_scan_verification_steps/create_or_update_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/pre_scan_verification_steps/find_or_create_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/profiles/build_config_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/profiles/create_associations_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/profiles/create_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/profiles/destroy_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/profiles/update_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/scan_configs/fetch_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/scanner_profiles/create_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/scanner_profiles/destroy_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/scanner_profiles/update_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/scans/associate_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/scans/create_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/scans/run_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/site_profile_secret_variables/create_or_update_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/site_profile_secret_variables/destroy_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/site_profiles/create_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/site_profiles/destroy_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/site_profiles/update_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/site_tokens/find_or_create_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/site_validations/find_or_create_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/site_validations/revoke_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/site_validations/runner_service_spec.rb'
+ - 'ee/spec/services/app_sec/dast/sites/find_or_create_service_spec.rb'
+ - 'ee/spec/services/applications/create_service_spec.rb'
+ - 'ee/spec/services/approval_rules/create_service_spec.rb'
+ - 'ee/spec/services/approval_rules/finalize_service_spec.rb'
+ - 'ee/spec/services/approval_rules/project_rule_destroy_service_spec.rb'
+ - 'ee/spec/services/approval_rules/update_service_spec.rb'
+ - 'ee/spec/services/arkose/blocked_users_report_service_spec.rb'
+ - 'ee/spec/services/arkose/status_service_spec.rb'
+ - 'ee/spec/services/audit_events/register_runner_audit_event_service_spec.rb'
+ - 'ee/spec/services/audit_events/streaming/event_type_filters/create_service_spec.rb'
+ - 'ee/spec/services/audit_events/streaming/event_type_filters/destroy_service_spec.rb'
+ - 'ee/spec/services/audit_events/streaming/headers/update_service_spec.rb'
+ - 'ee/spec/services/auto_merge/add_to_merge_train_when_pipeline_succeeds_service_spec.rb'
+ - 'ee/spec/services/auto_merge/merge_train_service_spec.rb'
+ - 'ee/spec/services/boards/epics/list_service_spec.rb'
+ - 'ee/spec/services/boards/epics/move_service_spec.rb'
+ - 'ee/spec/services/boards/epics/position_create_service_spec.rb'
+ - 'ee/spec/services/ci/compare_license_scanning_reports_collapsed_service_spec.rb'
+ - 'ee/spec/services/ci/compare_license_scanning_reports_service_spec.rb'
+ - 'ee/spec/services/ci/compare_metrics_reports_service_spec.rb'
+ - 'ee/spec/services/ci/compare_security_reports_service_spec.rb'
+ - 'ee/spec/services/ci/create_pipeline_service/dast_configuration_spec.rb'
+ - 'ee/spec/services/ci/delete_project_subscription_service_spec.rb'
+ - 'ee/spec/services/ci/external_pull_requests/process_github_event_service_spec.rb'
+ - 'ee/spec/services/ci/llm/async_generate_config_service_spec.rb'
+ - 'ee/spec/services/ci/llm/generate_config_service_spec.rb'
+ - 'ee/spec/services/ci/minutes/refresh_cached_data_service_spec.rb'
+ - 'ee/spec/services/ci/minutes/reset_usage_service_spec.rb'
+ - 'ee/spec/services/ci/minutes/track_live_consumption_service_spec.rb'
+ - 'ee/spec/services/ci/minutes/update_build_minutes_service_spec.rb'
+ - 'ee/spec/services/ci/minutes/update_project_and_namespace_usage_service_spec.rb'
+ - 'ee/spec/services/ci/pipeline_bridge_status_service_spec.rb'
+ - 'ee/spec/services/ci/process_build_service_spec.rb'
+ - 'ee/spec/services/ci/runners/unregister_runner_service_spec.rb'
+ - 'ee/spec/services/ci/subscribe_bridge_service_spec.rb'
+ - 'ee/spec/services/ci/sync_reports_to_approval_rules_service_spec.rb'
+ - 'ee/spec/services/ci_cd/github_integration_setup_service_spec.rb'
+ - 'ee/spec/services/ci_cd/github_setup_service_spec.rb'
+ - 'ee/spec/services/ci_cd/setup_project_spec.rb'
+ - 'ee/spec/services/compliance_management/frameworks/create_service_spec.rb'
+ - 'ee/spec/services/compliance_management/frameworks/destroy_service_spec.rb'
+ - 'ee/spec/services/compliance_management/frameworks/update_service_spec.rb'
+ - 'ee/spec/services/compliance_management/merge_requests/create_compliance_violations_service_spec.rb'
+ - 'ee/spec/services/dashboard/operations/list_service_spec.rb'
+ - 'ee/spec/services/deploy_keys/create_service_spec.rb'
+ - 'ee/spec/services/deployments/approval_service_spec.rb'
+ - 'ee/spec/services/deployments/auto_rollback_service_spec.rb'
+ - 'ee/spec/services/dora/aggregate_metrics_service_spec.rb'
+ - 'ee/spec/services/dora/aggregate_scores_service_spec.rb'
+ - 'ee/spec/services/ee/admin/set_feature_flag_service_spec.rb'
+ - 'ee/spec/services/ee/alert_management/alerts/update_service_spec.rb'
+ - 'ee/spec/services/ee/allowed_email_domains/update_service_spec.rb'
+ - 'ee/spec/services/ee/auth/container_registry_authentication_service_spec.rb'
+ - 'ee/spec/services/ee/ci/job_artifacts/create_service_spec.rb'
+ - 'ee/spec/services/ee/ci/job_artifacts/destroy_all_expired_service_spec.rb'
+ - 'ee/spec/services/ee/ci/job_artifacts/destroy_batch_service_spec.rb'
+ - 'ee/spec/services/ee/deployments/update_environment_service_spec.rb'
+ - 'ee/spec/services/ee/git/branch_push_service_spec.rb'
+ - 'ee/spec/services/ee/gpg_keys/create_service_spec.rb'
+ - 'ee/spec/services/ee/gpg_keys/destroy_service_spec.rb'
+ - 'ee/spec/services/ee/groups/autocomplete_service_spec.rb'
+ - 'ee/spec/services/ee/groups/deploy_tokens/create_service_spec.rb'
+ - 'ee/spec/services/ee/groups/deploy_tokens/destroy_service_spec.rb'
+ - 'ee/spec/services/ee/groups/deploy_tokens/revoke_service_spec.rb'
+ - 'ee/spec/services/ee/groups/group_links/create_service_spec.rb'
+ - 'ee/spec/services/ee/groups/group_links/destroy_service_spec.rb'
+ - 'ee/spec/services/ee/groups/group_links/update_service_spec.rb'
+ - 'ee/spec/services/ee/ip_restrictions/update_service_spec.rb'
+ - 'ee/spec/services/ee/issuable/bulk_update_service_spec.rb'
+ - 'ee/spec/services/ee/issuable/common_system_notes_service_spec.rb'
+ - 'ee/spec/services/ee/issuable/destroy_service_spec.rb'
+ - 'ee/spec/services/ee/issue_links/create_service_spec.rb'
+ - 'ee/spec/services/ee/issues/clone_service_spec.rb'
+ - 'ee/spec/services/ee/issues/move_service_spec.rb'
+ - 'ee/spec/services/ee/issues/update_service_spec.rb'
+ - 'ee/spec/services/ee/keys/destroy_service_spec.rb'
+ - 'ee/spec/services/ee/members/create_service_spec.rb'
+ - 'ee/spec/services/ee/members/creator_service_spec.rb'
+ - 'ee/spec/services/ee/members/destroy_service_spec.rb'
+ - 'ee/spec/services/ee/merge_request_metrics_service_spec.rb'
+ - 'ee/spec/services/ee/merge_requests/base_service_spec.rb'
+ - 'ee/spec/services/ee/merge_requests/create_pipeline_service_spec.rb'
+ - 'ee/spec/services/ee/merge_requests/post_merge_service_spec.rb'
+ - 'ee/spec/services/ee/merge_requests/refresh_service_spec.rb'
+ - 'ee/spec/services/ee/namespace_settings/update_service_spec.rb'
+ - 'ee/spec/services/ee/notes/post_process_service_spec.rb'
+ - 'ee/spec/services/ee/notification_service_spec.rb'
+ - 'ee/spec/services/ee/null_notification_service_spec.rb'
+ - 'ee/spec/services/ee/personal_access_tokens/revoke_service_spec.rb'
+ - 'ee/spec/services/ee/post_receive_service_spec.rb'
+ - 'ee/spec/services/ee/projects/autocomplete_service_spec.rb'
+ - 'ee/spec/services/ee/projects/deploy_tokens/create_service_spec.rb'
+ - 'ee/spec/services/ee/projects/deploy_tokens/destroy_service_spec.rb'
+ - 'ee/spec/services/ee/projects/unlink_fork_service_spec.rb'
+ - 'ee/spec/services/ee/resource_events/change_labels_service_spec.rb'
+ - 'ee/spec/services/ee/system_notes/issuables_service_spec.rb'
+ - 'ee/spec/services/ee/terraform/states/destroy_service_spec.rb'
+ - 'ee/spec/services/ee/todos/destroy/entity_leave_service_spec.rb'
+ - 'ee/spec/services/ee/users/build_service_spec.rb'
+ - 'ee/spec/services/ee/work_items/import_csv_service_spec.rb'
+ - 'ee/spec/services/elastic/data_migration_service_spec.rb'
+ - 'ee/spec/services/elastic/index_projects_service_spec.rb'
+ - 'ee/spec/services/elastic/indexing_control_service_spec.rb'
+ - 'ee/spec/services/elastic/metrics_update_service_spec.rb'
+ - 'ee/spec/services/epic_issues/create_service_spec.rb'
+ - 'ee/spec/services/epic_issues/destroy_service_spec.rb'
+ - 'ee/spec/services/epic_issues/list_service_spec.rb'
+ - 'ee/spec/services/epic_issues/update_service_spec.rb'
+ - 'ee/spec/services/epics/close_service_spec.rb'
+ - 'ee/spec/services/epics/create_service_spec.rb'
+ - 'ee/spec/services/epics/epic_links/create_service_spec.rb'
+ - 'ee/spec/services/epics/epic_links/list_service_spec.rb'
+ - 'ee/spec/services/epics/epic_links/update_service_spec.rb'
+ - 'ee/spec/services/epics/issue_promote_service_spec.rb'
+ - 'ee/spec/services/epics/related_epic_links/destroy_service_spec.rb'
+ - 'ee/spec/services/epics/related_epic_links/list_service_spec.rb'
+ - 'ee/spec/services/epics/reopen_service_spec.rb'
+ - 'ee/spec/services/epics/tree_reorder_service_spec.rb'
+ - 'ee/spec/services/epics/update_service_spec.rb'
+ - 'ee/spec/services/external_status_checks/create_service_spec.rb'
+ - 'ee/spec/services/external_status_checks/destroy_service_spec.rb'
+ - 'ee/spec/services/external_status_checks/dispatch_service_spec.rb'
+ - 'ee/spec/services/external_status_checks/retry_service_spec.rb'
+ - 'ee/spec/services/external_status_checks/update_service_spec.rb'
+ - 'ee/spec/services/geo/base_file_service_spec.rb'
+ - 'ee/spec/services/geo/blob_download_service_spec.rb'
+ - 'ee/spec/services/geo/blob_upload_service_spec.rb'
+ - 'ee/spec/services/geo/cache_invalidation_event_store_spec.rb'
+ - 'ee/spec/services/geo/container_repository_sync_service_spec.rb'
+ - 'ee/spec/services/geo/container_repository_sync_spec.rb'
+ - 'ee/spec/services/geo/event_service_spec.rb'
+ - 'ee/spec/services/geo/file_registry_removal_service_spec.rb'
+ - 'ee/spec/services/geo/framework_repository_sync_service_spec.rb'
+ - 'ee/spec/services/geo/graphql_request_service_spec.rb'
+ - 'ee/spec/services/geo/hashed_storage_attachments_event_store_spec.rb'
+ - 'ee/spec/services/geo/metrics_update_service_spec.rb'
+ - 'ee/spec/services/geo/replication_toggle_request_service_spec.rb'
+ - 'ee/spec/services/gitlab_subscriptions/activate_service_spec.rb'
+ - 'ee/spec/services/gitlab_subscriptions/reconciliations/calculate_seat_count_data_service_spec.rb'
+ - 'ee/spec/services/gitlab_subscriptions/user_add_on_assignments/create_service_spec.rb'
+ - 'ee/spec/services/group_saml/identity/destroy_service_spec.rb'
+ - 'ee/spec/services/groups/compliance_report_csv_service_spec.rb'
+ - 'ee/spec/services/groups/destroy_service_spec.rb'
+ - 'ee/spec/services/groups/epics_count_service_spec.rb'
+ - 'ee/spec/services/groups/mark_for_deletion_service_spec.rb'
+ - 'ee/spec/services/groups/restore_service_spec.rb'
+ - 'ee/spec/services/groups/transfer_service_spec.rb'
+ - 'ee/spec/services/groups/update_repository_storage_service_spec.rb'
+ - 'ee/spec/services/groups/update_service_spec.rb'
+ - 'ee/spec/services/ide/schemas_config_service_spec.rb'
+ - 'ee/spec/services/incident_management/incidents/create_sla_service_spec.rb'
+ - 'ee/spec/services/incident_management/oncall_rotations/edit_service_spec.rb'
+ - 'ee/spec/services/issue_feature_flags/list_service_spec.rb'
+ - 'ee/spec/services/issues/duplicate_service_spec.rb'
+ - 'ee/spec/services/iterations/cadences/create_iterations_in_advance_service_spec.rb'
+ - 'ee/spec/services/iterations/roll_over_issues_service_spec.rb'
+ - 'ee/spec/services/iterations/update_service_spec.rb'
+ - 'ee/spec/services/jira/jql_builder_service_spec.rb'
+ - 'ee/spec/services/jira/requests/issues/list_service_spec.rb'
+ - 'ee/spec/services/keys/create_service_spec.rb'
+ - 'ee/spec/services/lfs/lock_file_service_spec.rb'
+ - 'ee/spec/services/lfs/unlock_file_service_spec.rb'
+ - 'ee/spec/services/llm/analyze_ci_job_failure_service_spec.rb'
+ - 'ee/spec/services/llm/chat_service_spec.rb'
+ - 'ee/spec/services/llm/execute_method_service_spec.rb'
+ - 'ee/spec/services/llm/explain_code_service_spec.rb'
+ - 'ee/spec/services/llm/explain_vulnerability_service_spec.rb'
+ - 'ee/spec/services/llm/generate_commit_message_service_spec.rb'
+ - 'ee/spec/services/llm/generate_test_file_service_spec.rb'
+ - 'ee/spec/services/llm/git_command_service_spec.rb'
+ - 'ee/spec/services/llm/tanuki_bot_service_spec.rb'
+ - 'ee/spec/services/member_roles/create_service_spec.rb'
+ - 'ee/spec/services/merge_request_approval_settings/update_service_spec.rb'
+ - 'ee/spec/services/merge_requests/merge_service_spec.rb'
+ - 'ee/spec/services/merge_requests/mergeability/check_external_status_checks_passed_service_spec.rb'
+ - 'ee/spec/services/merge_requests/reload_merge_head_diff_service_spec.rb'
+ - 'ee/spec/services/merge_trains/add_merge_request_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/notes/create_visual_review_service_spec.rb'
+ - 'ee/spec/services/onboarding/create_iterable_trigger_service_spec.rb'
+ - 'ee/spec/services/personal_access_tokens/groups/update_lifetime_service_spec.rb'
+ - 'ee/spec/services/personal_access_tokens/instance/update_lifetime_service_spec.rb'
+ - 'ee/spec/services/personal_access_tokens/revoke_service_audit_log_spec.rb'
+ - 'ee/spec/services/product_analytics/initialize_stack_service_spec.rb'
+ - 'ee/spec/services/projects/alerting/notify_service_spec.rb'
+ - 'ee/spec/services/projects/create_from_template_service_spec.rb'
+ - 'ee/spec/services/projects/create_service_spec.rb'
+ - 'ee/spec/services/projects/destroy_service_spec.rb'
+ - 'ee/spec/services/projects/disable_legacy_inactive_projects_service_spec.rb'
+ - 'ee/spec/services/projects/fork_service_spec.rb'
+ - 'ee/spec/services/projects/gitlab_projects_import_service_spec.rb'
+ - 'ee/spec/services/projects/group_links/create_service_spec.rb'
+ - 'ee/spec/services/projects/group_links/destroy_service_spec.rb'
+ - 'ee/spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb'
+ - 'ee/spec/services/projects/import_export/export_service_spec.rb'
+ - 'ee/spec/services/projects/import_service_spec.rb'
+ - 'ee/spec/services/projects/mark_for_deletion_service_spec.rb'
+ - 'ee/spec/services/projects/restore_service_spec.rb'
+ - 'ee/spec/services/projects/setup_ci_cd_spec.rb'
+ - 'ee/spec/services/projects/transfer_service_spec.rb'
+ - 'ee/spec/services/projects/update_mirror_service_spec.rb'
+ - 'ee/spec/services/protected_environments/create_service_spec.rb'
+ - 'ee/spec/services/protected_environments/destroy_service_spec.rb'
+ - 'ee/spec/services/protected_environments/environment_dropdown_service_spec.rb'
+ - 'ee/spec/services/protected_environments/search_service_spec.rb'
+ - 'ee/spec/services/protected_environments/update_service_spec.rb'
+ - 'ee/spec/services/push_rules/create_or_update_service_spec.rb'
+ - 'ee/spec/services/quality_management/test_cases/create_service_spec.rb'
+ - 'ee/spec/services/requirements_management/export_csv_service_spec.rb'
+ - 'ee/spec/services/requirements_management/prepare_import_csv_service_spec.rb'
+ - 'ee/spec/services/requirements_management/process_test_reports_service_spec.rb'
+ - 'ee/spec/services/resource_access_tokens/revoke_service_spec.rb'
+ - 'ee/spec/services/resource_events/change_weight_service_spec.rb'
+ - 'ee/spec/services/search/reindexing_service_spec.rb'
+ - 'ee/spec/services/security/dependency_list_service_spec.rb'
+ - 'ee/spec/services/security/ingestion/tasks/ingest_vulnerabilities/create_spec.rb'
+ - 'ee/spec/services/security/scanned_resources_service_spec.rb'
+ - 'ee/spec/services/security/security_orchestration_policies/ci_configuration_service_spec.rb'
+ - 'ee/spec/services/security/security_orchestration_policies/create_pipeline_service_spec.rb'
+ - 'ee/spec/services/security/security_orchestration_policies/fetch_policy_approvers_service_spec.rb'
+ - 'ee/spec/services/security/security_orchestration_policies/process_scan_result_policy_service_spec.rb'
+ - 'ee/spec/services/security/security_orchestration_policies/scan_pipeline_service_spec.rb'
+ - 'ee/spec/services/security/security_orchestration_policies/sync_opened_merge_requests_service_spec.rb'
+ - 'ee/spec/services/security/security_orchestration_policies/sync_scan_result_policies_service_spec.rb'
+ - 'ee/spec/services/security/token_revocation_service_spec.rb'
+ - 'ee/spec/services/security/track_scan_service_spec.rb'
+ - 'ee/spec/services/security/training_providers/base_url_service_spec.rb'
+ - 'ee/spec/services/security/training_urls_service_spec.rb'
+ - 'ee/spec/services/security/vulnerability_scanning/finding_map_spec.rb'
+ - 'ee/spec/services/sitemap/create_service_spec.rb'
+ - 'ee/spec/services/software_license_policies/create_service_spec.rb'
+ - 'ee/spec/services/status_page/mark_for_publication_service_spec.rb'
+ - 'ee/spec/services/status_page/publish_attachments_service_spec.rb'
+ - 'ee/spec/services/status_page/publish_details_service_spec.rb'
+ - 'ee/spec/services/status_page/trigger_publish_service_spec.rb'
+ - 'ee/spec/services/system_notes/epics_service_spec.rb'
+ - 'ee/spec/services/system_notes/escalations_service_spec.rb'
+ - 'ee/spec/services/system_notes/merge_requests_service_spec.rb'
+ - 'ee/spec/services/system_notes/merge_train_service_spec.rb'
+ - 'ee/spec/services/system_notes/vulnerabilities_service_spec.rb'
+ - 'ee/spec/services/todos/destroy/confidential_epic_service_spec.rb'
+ - 'ee/spec/services/users/email_verification/send_custom_confirmation_instructions_service_spec.rb'
+ - 'ee/spec/services/vulnerabilities/create_service_spec.rb'
+ - 'ee/spec/services/vulnerabilities/find_or_create_from_security_finding_service_spec.rb'
+ - 'ee/spec/services/vulnerabilities/findings/find_or_create_from_security_finding_service_spec.rb'
+ - 'ee/spec/services/vulnerabilities/manually_create_service_spec.rb'
+ - 'ee/spec/services/vulnerabilities/security_finding/create_issue_service_spec.rb'
+ - 'ee/spec/services/vulnerabilities/security_finding/create_merge_request_service_spec.rb'
+ - 'ee/spec/services/vulnerabilities/starboard_vulnerability_create_service_spec.rb'
+ - 'ee/spec/services/vulnerabilities/update_service_spec.rb'
+ - 'ee/spec/services/vulnerability_external_issue_links/create_service_spec.rb'
+ - 'ee/spec/services/vulnerability_feedback/create_service_spec.rb'
+ - 'ee/spec/services/work_items/update_service_spec.rb'
+ - 'ee/spec/services/work_items/widgets/health_status_service/update_service_spec.rb'
+ - 'ee/spec/services/work_items/widgets/iteration_service/update_service_spec.rb'
+ - 'ee/spec/services/work_items/widgets/progress_service/update_service_spec.rb'
+ - 'ee/spec/services/work_items/widgets/status_service/update_service_spec.rb'
+ - 'ee/spec/services/work_items/widgets/weight_service/update_service_spec.rb'
+ - 'ee/spec/support/shared_contexts/audit_event_not_licensed_shared_context.rb'
+ - 'ee/spec/support/shared_examples/controllers/analytics/cycle_analytics/shared_stage_shared_examples.rb'
+ - 'ee/spec/tasks/gitlab/elastic_rake_spec.rb'
+ - 'ee/spec/tasks/gitlab/license_rake_spec.rb'
+ - 'ee/spec/tasks/gitlab/seed/group_seed_rake_spec.rb'
+ - 'ee/spec/tasks/gitlab/spdx_rake_spec.rb'
+ - 'ee/spec/validators/user_existence_validator_spec.rb'
+ - 'ee/spec/validators/user_id_existence_validator_spec.rb'
+ - 'ee/spec/views/devise/registrations/new.html.haml_spec.rb'
+ - 'ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb'
+ - 'ee/spec/workers/active_user_count_threshold_worker_spec.rb'
+ - 'ee/spec/workers/admin_emails_worker_spec.rb'
+ - 'ee/spec/workers/app_sec/dast/profile_schedule_worker_spec.rb'
+ - 'ee/spec/workers/approval_rules/external_approval_rule_payload_worker_spec.rb'
+ - 'ee/spec/workers/audit_events/audit_event_streaming_worker_spec.rb'
+ - 'ee/spec/workers/audit_events/user_impersonation_event_create_worker_spec.rb'
+ - 'ee/spec/workers/ci/initial_pipeline_process_worker_spec.rb'
+ - 'ee/spec/workers/ci/llm/generate_config_worker_spec.rb'
+ - 'ee/spec/workers/ci/minutes/refresh_cached_data_worker_spec.rb'
+ - 'ee/spec/workers/ci/minutes/update_project_and_namespace_usage_worker_spec.rb'
+ - 'ee/spec/workers/ci/runners/stale_group_runners_prune_cron_worker_spec.rb'
+ - 'ee/spec/workers/compliance_management/chain_of_custody_report_worker_spec.rb'
+ - 'ee/spec/workers/concerns/elastic/migration_helper_spec.rb'
+ - 'ee/spec/workers/concerns/elastic/migration_obsolete_spec.rb'
+ - 'ee/spec/workers/concerns/elastic/migration_options_spec.rb'
+ - 'ee/spec/workers/concerns/elastic/migration_remove_fields_helper_spec.rb'
+ - 'ee/spec/workers/create_github_webhook_worker_spec.rb'
+ - 'ee/spec/workers/deployments/auto_rollback_worker_spec.rb'
+ - 'ee/spec/workers/dora/daily_metrics/refresh_worker_spec.rb'
+ - 'ee/spec/workers/ee/arkose/blocked_users_report_worker_spec.rb'
+ - 'ee/spec/workers/ee/issuable/related_links_create_worker_spec.rb'
+ - 'ee/spec/workers/ee/issuable_export_csv_worker_spec.rb'
+ - 'ee/spec/workers/ee/repository_check/batch_worker_spec.rb'
+ - 'ee/spec/workers/elastic/migration_worker_spec.rb'
+ - 'ee/spec/workers/elastic/namespace_update_worker_spec.rb'
+ - 'ee/spec/workers/elastic_association_indexer_worker_spec.rb'
+ - 'ee/spec/workers/elastic_cluster_reindexing_cron_worker_spec.rb'
+ - 'ee/spec/workers/elastic_commit_indexer_worker_spec.rb'
+ - 'ee/spec/workers/elastic_delete_project_worker_spec.rb'
+ - 'ee/spec/workers/elastic_full_index_worker_spec.rb'
+ - 'ee/spec/workers/elastic_indexing_control_worker_spec.rb'
+ - 'ee/spec/workers/elastic_namespace_indexer_worker_spec.rb'
+ - 'ee/spec/workers/elastic_namespace_rollout_worker_spec.rb'
+ - 'ee/spec/workers/elastic_remove_expired_namespace_subscriptions_from_index_cron_worker_spec.rb'
+ - 'ee/spec/workers/geo/create_repository_updated_event_worker_spec.rb'
+ - 'ee/spec/workers/geo/destroy_worker_spec.rb'
+ - 'ee/spec/workers/geo/registry_sync_worker_spec.rb'
+ - 'ee/spec/workers/geo/scheduler/scheduler_worker_spec.rb'
+ - 'ee/spec/workers/geo/secondary/registry_consistency_worker_spec.rb'
+ - 'ee/spec/workers/geo/secondary_usage_data_cron_worker_spec.rb'
+ - 'ee/spec/workers/geo/sync_timeout_cron_worker_spec.rb'
+ - 'ee/spec/workers/geo/verification_cron_worker_spec.rb'
+ - 'ee/spec/workers/geo/verification_state_backfill_worker_spec.rb'
+ - 'ee/spec/workers/geo/verification_timeout_worker_spec.rb'
+ - 'ee/spec/workers/gitlab_subscriptions/add_on_purchases/bulk_refresh_user_assignments_worker_spec.rb'
+ - 'ee/spec/workers/gitlab_subscriptions/add_on_purchases/cleanup_user_add_on_assignment_worker_spec.rb'
+ - 'ee/spec/workers/gitlab_subscriptions/add_on_purchases/refresh_user_assignments_worker_spec.rb'
+ - 'ee/spec/workers/gitlab_subscriptions/add_on_purchases/schedule_bulk_refresh_user_assignments_worker_spec.rb'
+ - 'ee/spec/workers/gitlab_subscriptions/schedule_refresh_seats_worker_spec.rb'
+ - 'ee/spec/workers/historical_data_worker_spec.rb'
+ - 'ee/spec/workers/import_software_licenses_worker_spec.rb'
+ - 'ee/spec/workers/incident_management/apply_incident_sla_exceeded_label_worker_spec.rb'
+ - 'ee/spec/workers/incident_management/pending_escalations/alert_check_worker_spec.rb'
+ - 'ee/spec/workers/incident_management/pending_escalations/alert_create_worker_spec.rb'
+ - 'ee/spec/workers/incident_management/pending_escalations/issue_check_worker_spec.rb'
+ - 'ee/spec/workers/incident_management/pending_escalations/issue_create_worker_spec.rb'
+ - 'ee/spec/workers/incident_management/pending_escalations/schedule_check_cron_worker_spec.rb'
+ - 'ee/spec/workers/ldap_all_groups_sync_worker_spec.rb'
+ - 'ee/spec/workers/ldap_group_sync_worker_spec.rb'
+ - 'ee/spec/workers/ldap_sync_worker_spec.rb'
+ - 'ee/spec/workers/llm/completion_worker_spec.rb'
+ - 'ee/spec/workers/members_destroyer/clean_up_group_protected_branch_rules_worker_spec.rb'
+ - 'ee/spec/workers/merge_requests/capture_suggested_reviewers_accepted_worker_spec.rb'
+ - 'ee/spec/workers/merge_requests/fetch_suggested_reviewers_worker_spec.rb'
+ - 'ee/spec/workers/merge_requests/sync_code_owner_approval_rules_worker_spec.rb'
+ - 'ee/spec/workers/personal_access_tokens/groups/policy_worker_spec.rb'
+ - 'ee/spec/workers/personal_access_tokens/instance/policy_worker_spec.rb'
+ - 'ee/spec/workers/product_analytics/initialize_snowplow_product_analytics_worker_spec.rb'
+ - 'ee/spec/workers/project_import_schedule_worker_spec.rb'
+ - 'ee/spec/workers/projects/deregister_suggested_reviewers_project_worker_spec.rb'
+ - 'ee/spec/workers/projects/disable_legacy_open_source_license_for_inactive_projects_worker_spec.rb'
+ - 'ee/spec/workers/projects/register_suggested_reviewers_project_worker_spec.rb'
+ - 'ee/spec/workers/repository_import_worker_spec.rb'
+ - 'ee/spec/workers/repository_update_mirror_worker_spec.rb'
+ - 'ee/spec/workers/requirements_management/import_requirements_csv_worker_spec.rb'
+ - 'ee/spec/workers/requirements_management/process_requirements_reports_worker_spec.rb'
+ - 'ee/spec/workers/search/index_curation_worker_spec.rb'
+ - 'ee/spec/workers/search/zoekt/delete_project_worker_spec.rb'
+ - 'ee/spec/workers/search/zoekt/namespace_indexer_worker_spec.rb'
+ - 'ee/spec/workers/security/scan_execution_policies/rule_schedule_worker_spec.rb'
+ - 'ee/spec/workers/security/scans/purge_by_job_id_worker_spec.rb'
+ - 'ee/spec/workers/security/track_secure_scans_worker_spec.rb'
+ - 'ee/spec/workers/set_user_status_based_on_user_cap_setting_worker_spec.rb'
+ - 'ee/spec/workers/status_page/publish_worker_spec.rb'
+ - 'ee/spec/workers/sync_seat_link_worker_spec.rb'
+ - 'ee/spec/workers/update_all_mirrors_worker_spec.rb'
+ - 'ee/spec/workers/vulnerabilities/mark_dropped_as_resolved_worker_spec.rb'
+ - 'ee/spec/workers/vulnerabilities/update_namespace_ids_of_vulnerability_reads_worker_spec.rb'
+ - 'ee/spec/workers/zoekt/indexer_worker_spec.rb'
+ - 'qa/spec/ee/runtime/geo_spec.rb'
+ - 'qa/spec/factory/resource/user_spec.rb'
+ - 'qa/spec/page/base_spec.rb'
+ - 'qa/spec/page/element_spec.rb'
+ - 'qa/spec/page/logging_spec.rb'
+ - 'qa/spec/page/validator_spec.rb'
+ - 'qa/spec/page/view_spec.rb'
+ - 'qa/spec/resource/api_fabricator_spec.rb'
+ - 'qa/spec/resource/base_spec.rb'
+ - 'qa/spec/resource/events/base_spec.rb'
+ - 'qa/spec/resource/events/project_spec.rb'
+ - 'qa/spec/resource/repository/push_spec.rb'
+ - 'qa/spec/resource/ssh_key_spec.rb'
+ - 'qa/spec/resource/user_spec.rb'
+ - 'qa/spec/runtime/api/client_spec.rb'
+ - 'qa/spec/runtime/key/ed25519_spec.rb'
+ - 'qa/spec/runtime/key/rsa_spec.rb'
+ - 'qa/spec/runtime/release_spec.rb'
+ - 'qa/spec/runtime/scenario_spec.rb'
+ - 'qa/spec/scenario/actable_spec.rb'
+ - 'qa/spec/scenario/bootable_spec.rb'
+ - 'qa/spec/scenario/template_spec.rb'
+ - 'qa/spec/service/docker_run/gitlab_runner_spec.rb'
+ - 'qa/spec/service/docker_run/k3s_spec.rb'
+ - 'qa/spec/service/shellout_spec.rb'
+ - 'qa/spec/specs/parallel_runner_spec.rb'
+ - 'qa/spec/specs/runner_spec.rb'
+ - 'qa/spec/support/helpers/masker_spec.rb'
+ - 'qa/spec/support/repeater_spec.rb'
+ - 'qa/spec/support/retrier_spec.rb'
+ - 'qa/spec/support/system_logs/sentry_spec.rb'
+ - 'qa/spec/support/wait_for_requests_spec.rb'
+ - 'qa/spec/support/waiter_spec.rb'
+ - 'qa/spec/vendor/smocker_api_spec.rb'
+ - 'spec/bin/feature_flag_spec.rb'
+ - 'spec/components/diffs/overflow_warning_component_spec.rb'
+ - 'spec/components/diffs/stats_component_spec.rb'
+ - 'spec/components/pajamas/banner_component_spec.rb'
+ - 'spec/components/pajamas/component_spec.rb'
+ - 'spec/config/object_store_settings_spec.rb'
+ - 'spec/contracts/provider_specs/helpers/provider/contract_source_helper_spec.rb'
+ - 'spec/controllers/admin/application_settings_controller_spec.rb'
+ - 'spec/controllers/admin/applications_controller_spec.rb'
+ - 'spec/controllers/admin/ci/variables_controller_spec.rb'
+ - 'spec/controllers/admin/instance_review_controller_spec.rb'
+ - 'spec/controllers/admin/integrations_controller_spec.rb'
+ - 'spec/controllers/admin/users_controller_spec.rb'
+ - 'spec/controllers/application_controller_spec.rb'
+ - 'spec/controllers/concerns/check_rate_limit_spec.rb'
+ - 'spec/controllers/concerns/graceful_timeout_handling_spec.rb'
+ - 'spec/controllers/concerns/page_limiter_spec.rb'
+ - 'spec/controllers/concerns/preferred_language_switcher_spec.rb'
+ - 'spec/controllers/concerns/product_analytics_tracking_spec.rb'
+ - 'spec/controllers/concerns/renders_commits_spec.rb'
+ - 'spec/controllers/concerns/routable_actions_spec.rb'
+ - 'spec/controllers/concerns/send_file_upload_spec.rb'
+ - 'spec/controllers/concerns/sorting_preference_spec.rb'
+ - 'spec/controllers/concerns/spammable_actions/akismet_mark_as_spam_action_spec.rb'
+ - 'spec/controllers/concerns/spammable_actions/captcha_check/html_format_actions_support_spec.rb'
+ - 'spec/controllers/concerns/spammable_actions/captcha_check/json_format_actions_support_spec.rb'
+ - 'spec/controllers/dashboard/labels_controller_spec.rb'
+ - 'spec/controllers/dashboard/projects_controller_spec.rb'
+ - 'spec/controllers/google_api/authorizations_controller_spec.rb'
+ - 'spec/controllers/graphql_controller_spec.rb'
+ - 'spec/controllers/groups/dependency_proxies_controller_spec.rb'
+ - 'spec/controllers/groups/dependency_proxy_auth_controller_spec.rb'
+ - 'spec/controllers/groups/dependency_proxy_for_containers_controller_spec.rb'
+ - 'spec/controllers/groups/group_links_controller_spec.rb'
+ - 'spec/controllers/groups/group_members_controller_spec.rb'
+ - 'spec/controllers/groups/milestones_controller_spec.rb'
+ - 'spec/controllers/groups/releases_controller_spec.rb'
+ - 'spec/controllers/groups/settings/applications_controller_spec.rb'
+ - 'spec/controllers/groups/settings/ci_cd_controller_spec.rb'
+ - 'spec/controllers/groups/settings/integrations_controller_spec.rb'
+ - 'spec/controllers/groups/settings/repository_controller_spec.rb'
+ - 'spec/controllers/groups/variables_controller_spec.rb'
+ - 'spec/controllers/groups_controller_spec.rb'
+ - 'spec/controllers/help_controller_spec.rb'
+ - 'spec/controllers/import/bitbucket_controller_spec.rb'
+ - 'spec/controllers/jira_connect/events_controller_spec.rb'
+ - 'spec/controllers/jira_connect/subscriptions_controller_spec.rb'
+ - 'spec/controllers/ldap/omniauth_callbacks_controller_spec.rb'
+ - 'spec/controllers/oauth/applications_controller_spec.rb'
+ - 'spec/controllers/oauth/authorizations_controller_spec.rb'
+ - 'spec/controllers/omniauth_callbacks_controller_spec.rb'
+ - 'spec/controllers/passwords_controller_spec.rb'
+ - 'spec/controllers/profiles/emails_controller_spec.rb'
+ - 'spec/controllers/profiles/preferences_controller_spec.rb'
+ - 'spec/controllers/profiles/slacks_controller_spec.rb'
+ - 'spec/controllers/profiles/two_factor_auths_controller_spec.rb'
+ - 'spec/controllers/profiles/webauthn_registrations_controller_spec.rb'
+ - 'spec/controllers/projects/analytics/cycle_analytics/summary_controller_spec.rb'
+ - 'spec/controllers/projects/artifacts_controller_spec.rb'
+ - 'spec/controllers/projects/avatars_controller_spec.rb'
+ - 'spec/controllers/projects/blob_controller_spec.rb'
+ - 'spec/controllers/projects/branches_controller_spec.rb'
+ - 'spec/controllers/projects/ci/lints_controller_spec.rb'
+ - 'spec/controllers/projects/deploy_keys_controller_spec.rb'
+ - 'spec/controllers/projects/design_management/designs/raw_images_controller_spec.rb'
+ - 'spec/controllers/projects/environments_controller_spec.rb'
+ - 'spec/controllers/projects/feature_flags_controller_spec.rb'
+ - 'spec/controllers/projects/forks_controller_spec.rb'
+ - 'spec/controllers/projects/graphs_controller_spec.rb'
+ - 'spec/controllers/projects/issues_controller_spec.rb'
+ - 'spec/controllers/projects/jobs_controller_spec.rb'
+ - 'spec/controllers/projects/mattermosts_controller_spec.rb'
+ - 'spec/controllers/projects/merge_requests/diffs_controller_spec.rb'
+ - 'spec/controllers/projects/merge_requests_controller_spec.rb'
+ - 'spec/controllers/projects/milestones_controller_spec.rb'
+ - 'spec/controllers/projects/notes_controller_spec.rb'
+ - 'spec/controllers/projects/pages_controller_spec.rb'
+ - 'spec/controllers/projects/pages_domains_controller_spec.rb'
+ - 'spec/controllers/projects/pipelines_controller_spec.rb'
+ - 'spec/controllers/projects/protected_branches_controller_spec.rb'
+ - 'spec/controllers/projects/raw_controller_spec.rb'
+ - 'spec/controllers/projects/refs_controller_spec.rb'
+ - 'spec/controllers/projects/releases/evidences_controller_spec.rb'
+ - 'spec/controllers/projects/releases_controller_spec.rb'
+ - 'spec/controllers/projects/settings/ci_cd_controller_spec.rb'
+ - 'spec/controllers/projects/settings/integration_hook_logs_controller_spec.rb'
+ - 'spec/controllers/projects/settings/repository_controller_spec.rb'
+ - 'spec/controllers/projects/snippets/blobs_controller_spec.rb'
+ - 'spec/controllers/projects/snippets_controller_spec.rb'
+ - 'spec/controllers/projects/tags_controller_spec.rb'
+ - 'spec/controllers/projects/terraform_controller_spec.rb'
+ - 'spec/controllers/projects/tree_controller_spec.rb'
+ - 'spec/controllers/projects/usage_quotas_controller_spec.rb'
+ - 'spec/controllers/projects/variables_controller_spec.rb'
+ - 'spec/controllers/projects/web_ide_schemas_controller_spec.rb'
+ - 'spec/controllers/projects/web_ide_terminals_controller_spec.rb'
+ - 'spec/controllers/projects/work_items_controller_spec.rb'
+ - 'spec/controllers/projects_controller_spec.rb'
+ - 'spec/controllers/registrations_controller_spec.rb'
+ - 'spec/controllers/repositories/lfs_storage_controller_spec.rb'
+ - 'spec/controllers/root_controller_spec.rb'
+ - 'spec/controllers/search_controller_spec.rb'
+ - 'spec/controllers/sessions_controller_spec.rb'
+ - 'spec/controllers/snippets/blobs_controller_spec.rb'
+ - 'spec/controllers/snippets/notes_controller_spec.rb'
+ - 'spec/controllers/snippets_controller_spec.rb'
+ - 'spec/controllers/uploads_controller_spec.rb'
+ - 'spec/controllers/users/callouts_controller_spec.rb'
+ - 'spec/experiments/application_experiment_spec.rb'
+ - 'spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb'
+ - 'spec/features/admin/users/user_spec.rb'
+ - 'spec/features/groups/clusters/user_spec.rb'
+ - 'spec/features/merge_request/user_sees_merge_widget_spec.rb'
+ - 'spec/features/profiles/password_spec.rb'
+ - 'spec/features/projects/clusters/user_spec.rb'
+ - 'spec/features/projects/pipelines/pipeline_spec.rb'
+ - 'spec/features/projects/settings/registry_settings_cleanup_tags_spec.rb'
+ - 'spec/features/projects/settings/registry_settings_spec.rb'
+ - 'spec/features/users/show_spec.rb'
+ - 'spec/finders/abuse_reports_finder_spec.rb'
+ - 'spec/finders/achievements/achievements_finder_spec.rb'
+ - 'spec/finders/analytics/cycle_analytics/stage_finder_spec.rb'
+ - 'spec/finders/autocomplete/users_finder_spec.rb'
+ - 'spec/finders/branches_finder_spec.rb'
+ - 'spec/finders/bulk_imports/entities_finder_spec.rb'
+ - 'spec/finders/bulk_imports/imports_finder_spec.rb'
+ - 'spec/finders/ci/auth_job_finder_spec.rb'
+ - 'spec/finders/ci/commit_statuses_finder_spec.rb'
+ - 'spec/finders/ci/job_artifacts_finder_spec.rb'
+ - 'spec/finders/ci/jobs_finder_spec.rb'
+ - 'spec/finders/ci/pipeline_schedules_finder_spec.rb'
+ - 'spec/finders/ci/pipelines_finder_spec.rb'
+ - 'spec/finders/ci/pipelines_for_merge_request_finder_spec.rb'
+ - 'spec/finders/ci/runners_finder_spec.rb'
+ - 'spec/finders/ci/triggers_finder_spec.rb'
+ - 'spec/finders/clusters/agents/authorizations/ci_access/finder_spec.rb'
+ - 'spec/finders/clusters/agents/authorizations/user_access/finder_spec.rb'
+ - 'spec/finders/clusters/knative_services_finder_spec.rb'
+ - 'spec/finders/container_repositories_finder_spec.rb'
+ - 'spec/finders/crm/contacts_finder_spec.rb'
+ - 'spec/finders/crm/organizations_finder_spec.rb'
+ - 'spec/finders/data_transfer/group_data_transfer_finder_spec.rb'
+ - 'spec/finders/data_transfer/project_data_transfer_finder_spec.rb'
+ - 'spec/finders/deploy_tokens/tokens_finder_spec.rb'
+ - 'spec/finders/deployments_finder_spec.rb'
+ - 'spec/finders/feature_flags_finder_spec.rb'
+ - 'spec/finders/group_descendants_finder_spec.rb'
+ - 'spec/finders/group_members_finder_spec.rb'
+ - 'spec/finders/group_projects_finder_spec.rb'
+ - 'spec/finders/groups/environment_scopes_finder_spec.rb'
+ - 'spec/finders/keys_finder_spec.rb'
+ - 'spec/finders/notes_finder_spec.rb'
+ - 'spec/finders/packages/conan/package_file_finder_spec.rb'
+ - 'spec/finders/packages/conan/package_finder_spec.rb'
+ - 'spec/finders/packages/debian/distributions_finder_spec.rb'
+ - 'spec/finders/packages/go/package_finder_spec.rb'
+ - 'spec/finders/packages/group_packages_finder_spec.rb'
+ - 'spec/finders/packages/maven/package_finder_spec.rb'
+ - 'spec/finders/packages/package_file_finder_spec.rb'
+ - 'spec/finders/packages/package_finder_spec.rb'
+ - 'spec/finders/packages/packages_finder_spec.rb'
+ - 'spec/finders/packages/pipelines_finder_spec.rb'
+ - 'spec/finders/packages/pypi/packages_finder_spec.rb'
+ - 'spec/finders/personal_access_tokens_finder_spec.rb'
+ - 'spec/finders/projects/export_job_finder_spec.rb'
+ - 'spec/finders/projects/members/effective_access_level_finder_spec.rb'
+ - 'spec/finders/projects/members/effective_access_level_per_user_finder_spec.rb'
+ - 'spec/finders/projects/ml/candidate_finder_spec.rb'
+ - 'spec/finders/projects/ml/model_finder_spec.rb'
+ - 'spec/finders/projects/prometheus/alerts_finder_spec.rb'
+ - 'spec/finders/prometheus_metrics_finder_spec.rb'
+ - 'spec/finders/releases/evidence_pipeline_finder_spec.rb'
+ - 'spec/finders/releases_finder_spec.rb'
+ - 'spec/finders/repositories/tree_finder_spec.rb'
+ - 'spec/finders/resource_milestone_event_finder_spec.rb'
+ - 'spec/finders/resource_state_event_finder_spec.rb'
+ - 'spec/finders/tags_finder_spec.rb'
+ - 'spec/finders/uploader_finder_spec.rb'
+ - 'spec/finders/user_group_notification_settings_finder_spec.rb'
+ - 'spec/finders/user_groups_counter_spec.rb'
+ - 'spec/finders/vs_code/settings/settings_finder_spec.rb'
+ - 'spec/frontend/fixtures/project.rb'
+ - 'spec/graphql/features/authorization_spec.rb'
+ - 'spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb'
+ - 'spec/graphql/mutations/alert_management/create_alert_issue_spec.rb'
+ - 'spec/graphql/mutations/alert_management/http_integration/create_spec.rb'
+ - 'spec/graphql/mutations/alert_management/http_integration/destroy_spec.rb'
+ - 'spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb'
+ - 'spec/graphql/mutations/alert_management/http_integration/update_spec.rb'
+ - 'spec/graphql/mutations/alert_management/prometheus_integration/create_spec.rb'
+ - 'spec/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb'
+ - 'spec/graphql/mutations/alert_management/prometheus_integration/update_spec.rb'
+ - 'spec/graphql/mutations/alert_management/update_alert_status_spec.rb'
+ - 'spec/graphql/mutations/boards/issues/issue_move_list_spec.rb'
+ - 'spec/graphql/mutations/boards/update_spec.rb'
+ - 'spec/graphql/mutations/branches/create_spec.rb'
+ - 'spec/graphql/mutations/ci/job_token_scope/add_project_spec.rb'
+ - 'spec/graphql/mutations/ci/job_token_scope/remove_project_spec.rb'
+ - 'spec/graphql/mutations/ci/runner/delete_spec.rb'
+ - 'spec/graphql/mutations/clusters/agent_tokens/create_spec.rb'
+ - 'spec/graphql/mutations/clusters/agent_tokens/revoke_spec.rb'
+ - 'spec/graphql/mutations/clusters/agents/create_spec.rb'
+ - 'spec/graphql/mutations/clusters/agents/delete_spec.rb'
+ - 'spec/graphql/mutations/commits/create_spec.rb'
+ - 'spec/graphql/mutations/container_repositories/destroy_tags_spec.rb'
+ - 'spec/graphql/mutations/environments/canary_ingress/update_spec.rb'
+ - 'spec/graphql/mutations/environments/create_spec.rb'
+ - 'spec/graphql/mutations/environments/delete_spec.rb'
+ - 'spec/graphql/mutations/environments/stop_spec.rb'
+ - 'spec/graphql/mutations/environments/update_spec.rb'
+ - 'spec/graphql/mutations/issues/create_spec.rb'
+ - 'spec/graphql/mutations/issues/set_confidential_spec.rb'
+ - 'spec/graphql/mutations/issues/set_due_date_spec.rb'
+ - 'spec/graphql/mutations/issues/set_locked_spec.rb'
+ - 'spec/graphql/mutations/issues/set_severity_spec.rb'
+ - 'spec/graphql/mutations/issues/update_spec.rb'
+ - 'spec/graphql/mutations/labels/create_spec.rb'
+ - 'spec/graphql/mutations/merge_requests/create_spec.rb'
+ - 'spec/graphql/mutations/merge_requests/set_draft_spec.rb'
+ - 'spec/graphql/mutations/merge_requests/set_labels_spec.rb'
+ - 'spec/graphql/mutations/merge_requests/set_locked_spec.rb'
+ - 'spec/graphql/mutations/merge_requests/set_milestone_spec.rb'
+ - 'spec/graphql/mutations/merge_requests/set_reviewers_spec.rb'
+ - 'spec/graphql/mutations/merge_requests/update_spec.rb'
+ - 'spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb'
+ - 'spec/graphql/mutations/pages/mark_onboarding_complete_spec.rb'
+ - 'spec/graphql/mutations/release_asset_links/create_spec.rb'
+ - 'spec/graphql/mutations/release_asset_links/delete_spec.rb'
+ - 'spec/graphql/mutations/release_asset_links/update_spec.rb'
+ - 'spec/graphql/mutations/releases/create_spec.rb'
+ - 'spec/graphql/mutations/releases/delete_spec.rb'
+ - 'spec/graphql/mutations/releases/update_spec.rb'
+ - 'spec/graphql/mutations/saved_replies/create_spec.rb'
+ - 'spec/graphql/mutations/saved_replies/destroy_spec.rb'
+ - 'spec/graphql/mutations/saved_replies/update_spec.rb'
+ - 'spec/graphql/mutations/terraform/state/delete_spec.rb'
+ - 'spec/graphql/mutations/terraform/state/lock_spec.rb'
+ - 'spec/graphql/mutations/terraform/state/unlock_spec.rb'
+ - 'spec/graphql/mutations/timelogs/delete_spec.rb'
+ - 'spec/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver_spec.rb'
+ - 'spec/graphql/resolvers/alert_management/alert_status_counts_resolver_spec.rb'
+ - 'spec/graphql/resolvers/blame_resolver_spec.rb'
+ - 'spec/graphql/resolvers/ci/runner_projects_resolver_spec.rb'
+ - 'spec/graphql/resolvers/clusters/agent_activity_events_resolver_spec.rb'
+ - 'spec/graphql/resolvers/clusters/agent_tokens_resolver_spec.rb'
+ - 'spec/graphql/resolvers/clusters/agents/authorizations/ci_access_resolver_spec.rb'
+ - 'spec/graphql/resolvers/clusters/agents/authorizations/user_access_resolver_spec.rb'
+ - 'spec/graphql/resolvers/clusters/agents_resolver_spec.rb'
+ - 'spec/graphql/resolvers/container_repositories_resolver_spec.rb'
+ - 'spec/graphql/resolvers/group_members/notification_email_resolver_spec.rb'
+ - 'spec/graphql/resolvers/groups_resolver_spec.rb'
+ - 'spec/graphql/resolvers/issue_status_counts_resolver_spec.rb'
+ - 'spec/graphql/resolvers/kas/agent_configurations_resolver_spec.rb'
+ - 'spec/graphql/resolvers/kas/agent_connections_resolver_spec.rb'
+ - 'spec/graphql/resolvers/labels_resolver_spec.rb'
+ - 'spec/graphql/resolvers/merge_requests_count_resolver_spec.rb'
+ - 'spec/graphql/resolvers/packages_base_resolver_spec.rb'
+ - 'spec/graphql/resolvers/paginated_tree_resolver_spec.rb'
+ - 'spec/graphql/resolvers/terraform/states_resolver_spec.rb'
+ - 'spec/graphql/resolvers/user_discussions_count_resolver_spec.rb'
+ - 'spec/graphql/resolvers/user_notes_count_resolver_spec.rb'
+ - 'spec/graphql/subscriptions/issuable_updated_spec.rb'
+ - 'spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb'
+ - 'spec/graphql/types/ci/job_token_scope_type_spec.rb'
+ - 'spec/graphql/types/environment_type_spec.rb'
+ - 'spec/graphql/types/invitation_interface_spec.rb'
+ - 'spec/graphql/types/issue_type_spec.rb'
+ - 'spec/graphql/types/member_interface_spec.rb'
+ - 'spec/graphql/types/project_type_spec.rb'
+ - 'spec/graphql/types/todo_type_spec.rb'
+ - 'spec/graphql/types/untrusted_regexp_spec.rb'
+ - 'spec/graphql/types/user_type_spec.rb'
+ - 'spec/graphql/types/users/autocompleted_user_type_spec.rb'
+ - 'spec/helpers/admin/background_migrations_helper_spec.rb'
+ - 'spec/helpers/admin/components_helper_spec.rb'
+ - 'spec/helpers/appearances_helper_spec.rb'
+ - 'spec/helpers/application_helper_spec.rb'
+ - 'spec/helpers/artifacts_helper_spec.rb'
+ - 'spec/helpers/avatars_helper_spec.rb'
+ - 'spec/helpers/award_emoji_helper_spec.rb'
+ - 'spec/helpers/badges_helper_spec.rb'
+ - 'spec/helpers/branches_helper_spec.rb'
+ - 'spec/helpers/breadcrumbs_helper_spec.rb'
+ - 'spec/helpers/ci/builds_helper_spec.rb'
+ - 'spec/helpers/ci/catalog/resources_helper_spec.rb'
+ - 'spec/helpers/ci/pipeline_editor_helper_spec.rb'
+ - 'spec/helpers/ci/pipelines_helper_spec.rb'
+ - 'spec/helpers/ci/triggers_helper_spec.rb'
+ - 'spec/helpers/clusters_helper_spec.rb'
+ - 'spec/helpers/commits_helper_spec.rb'
+ - 'spec/helpers/diff_helper_spec.rb'
+ - 'spec/helpers/environment_helper_spec.rb'
+ - 'spec/helpers/environments_helper_spec.rb'
+ - 'spec/helpers/events_helper_spec.rb'
+ - 'spec/helpers/gitlab_routing_helper_spec.rb'
+ - 'spec/helpers/groups/group_members_helper_spec.rb'
+ - 'spec/helpers/groups_helper_spec.rb'
+ - 'spec/helpers/hooks_helper_spec.rb'
+ - 'spec/helpers/integrations_helper_spec.rb'
+ - 'spec/helpers/jira_connect_helper_spec.rb'
+ - 'spec/helpers/json_helper_spec.rb'
+ - 'spec/helpers/labels_helper_spec.rb'
+ - 'spec/helpers/listbox_helper_spec.rb'
+ - 'spec/helpers/markup_helper_spec.rb'
+ - 'spec/helpers/merge_requests_helper_spec.rb'
+ - 'spec/helpers/namespaces_helper_spec.rb'
+ - 'spec/helpers/nav/top_nav_helper_spec.rb'
+ - 'spec/helpers/nav_helper_spec.rb'
+ - 'spec/helpers/operations_helper_spec.rb'
+ - 'spec/helpers/page_layout_helper_spec.rb'
+ - 'spec/helpers/projects/cluster_agents_helper_spec.rb'
+ - 'spec/helpers/projects/ml/experiments_helper_spec.rb'
+ - 'spec/helpers/projects/project_members_helper_spec.rb'
+ - 'spec/helpers/projects/terraform_helper_spec.rb'
+ - 'spec/helpers/projects_helper_spec.rb'
+ - 'spec/helpers/routing/pseudonymization_helper_spec.rb'
+ - 'spec/helpers/search_helper_spec.rb'
+ - 'spec/helpers/sessions_helper_spec.rb'
+ - 'spec/helpers/sidebars_helper_spec.rb'
+ - 'spec/helpers/snippets_helper_spec.rb'
+ - 'spec/helpers/stat_anchors_helper_spec.rb'
+ - 'spec/helpers/tree_helper_spec.rb'
+ - 'spec/helpers/whats_new_helper_spec.rb'
+ - 'spec/helpers/wiki_helper_spec.rb'
+ - 'spec/helpers/wiki_page_version_helper_spec.rb'
+ - 'spec/initializers/00_deprecations_spec.rb'
+ - 'spec/initializers/carrierwave_s3_encryption_headers_patch_spec.rb'
+ - 'spec/initializers/cookies_serializer_spec.rb'
+ - 'spec/initializers/direct_upload_support_spec.rb'
+ - 'spec/initializers/doorkeeper_spec.rb'
+ - 'spec/initializers/enumerator_next_patch_spec.rb'
+ - 'spec/initializers/lograge_spec.rb'
+ - 'spec/initializers/pages_storage_check_spec.rb'
+ - 'spec/initializers/rails_asset_host_spec.rb'
+ - 'spec/initializers/session_store_spec.rb'
+ - 'spec/initializers/settings_spec.rb'
+ - 'spec/initializers/sidekiq_spec.rb'
+ - 'spec/initializers/validate_database_config_spec.rb'
+ - 'spec/initializers/validate_puma_spec.rb'
+ - 'spec/lib/api/ci/helpers/runner_spec.rb'
+ - 'spec/lib/api/entities/application_setting_spec.rb'
+ - 'spec/lib/api/entities/bulk_import_spec.rb'
+ - 'spec/lib/api/entities/bulk_imports/entity_failure_spec.rb'
+ - 'spec/lib/api/entities/bulk_imports/entity_spec.rb'
+ - 'spec/lib/api/entities/bulk_imports/export_batch_status_spec.rb'
+ - 'spec/lib/api/entities/bulk_imports/export_status_spec.rb'
+ - 'spec/lib/api/entities/changelog_spec.rb'
+ - 'spec/lib/api/entities/ci/job_artifact_file_spec.rb'
+ - 'spec/lib/api/entities/ci/job_request/dependency_spec.rb'
+ - 'spec/lib/api/entities/ci/job_request/image_spec.rb'
+ - 'spec/lib/api/entities/ci/job_request/port_spec.rb'
+ - 'spec/lib/api/entities/ci/job_request/service_spec.rb'
+ - 'spec/lib/api/entities/ci/pipeline_spec.rb'
+ - 'spec/lib/api/entities/clusters/agent_spec.rb'
+ - 'spec/lib/api/entities/design_management/design_spec.rb'
+ - 'spec/lib/api/entities/ml/mlflow/get_run_spec.rb'
+ - 'spec/lib/api/entities/ml/mlflow/run_info_spec.rb'
+ - 'spec/lib/api/entities/ml/mlflow/run_spec.rb'
+ - 'spec/lib/api/entities/ml/mlflow/search_runs_spec.rb'
+ - 'spec/lib/api/entities/package_spec.rb'
+ - 'spec/lib/api/entities/plan_limit_spec.rb'
+ - 'spec/lib/api/entities/project_import_failed_relation_spec.rb'
+ - 'spec/lib/api/entities/project_import_status_spec.rb'
+ - 'spec/lib/api/entities/project_job_token_scope_spec.rb'
+ - 'spec/lib/api/entities/projects/topic_spec.rb'
+ - 'spec/lib/api/entities/snippet_spec.rb'
+ - 'spec/lib/api/entities/user_spec.rb'
+ - 'spec/lib/api/entities/wiki_page_spec.rb'
+ - 'spec/lib/api/helpers/authentication_spec.rb'
+ - 'spec/lib/api/helpers/caching_spec.rb'
+ - 'spec/lib/api/helpers/import_github_helpers_spec.rb'
+ - 'spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb'
+ - 'spec/lib/api/helpers/packages/npm_spec.rb'
+ - 'spec/lib/api/helpers/packages_helpers_spec.rb'
+ - 'spec/lib/api/helpers/pagination_spec.rb'
+ - 'spec/lib/api/helpers/pagination_strategies_spec.rb'
+ - 'spec/lib/api/helpers/rate_limiter_spec.rb'
+ - 'spec/lib/api/helpers/variables_helpers_spec.rb'
+ - 'spec/lib/api/helpers_spec.rb'
+ - 'spec/lib/api/support/git_access_actor_spec.rb'
+ - 'spec/lib/atlassian/jira_connect/client_spec.rb'
+ - 'spec/lib/atlassian/jira_connect/serializers/author_entity_spec.rb'
+ - 'spec/lib/atlassian/jira_connect/serializers/base_entity_spec.rb'
+ - 'spec/lib/atlassian/jira_connect/serializers/branch_entity_spec.rb'
+ - 'spec/lib/atlassian/jira_connect/serializers/build_entity_spec.rb'
+ - 'spec/lib/atlassian/jira_connect/serializers/deployment_entity_spec.rb'
+ - 'spec/lib/atlassian/jira_connect/serializers/feature_flag_entity_spec.rb'
+ - 'spec/lib/atlassian/jira_connect/serializers/pull_request_entity_spec.rb'
+ - 'spec/lib/atlassian/jira_connect/serializers/repository_entity_spec.rb'
+ - 'spec/lib/atlassian/jira_connect/serializers/reviewer_entity_spec.rb'
+ - 'spec/lib/backup/database_backup_error_spec.rb'
+ - 'spec/lib/backup/database_model_spec.rb'
+ - 'spec/lib/backup/database_spec.rb'
+ - 'spec/lib/backup/dump/postgres_spec.rb'
+ - 'spec/lib/backup/files_spec.rb'
+ - 'spec/lib/backup/gitaly_backup_spec.rb'
+ - 'spec/lib/backup/manager_spec.rb'
+ - 'spec/lib/backup/repositories_spec.rb'
+ - 'spec/lib/backup/task_spec.rb'
+ - 'spec/lib/banzai/color_parser_spec.rb'
+ - 'spec/lib/banzai/filter/broadcast_message_placeholders_filter_spec.rb'
+ - 'spec/lib/banzai/filter/math_filter_spec.rb'
+ - 'spec/lib/banzai/filter/output_safety_spec.rb'
+ - 'spec/lib/banzai/filter/references/project_reference_filter_spec.rb'
+ - 'spec/lib/banzai/filter/references/reference_cache_spec.rb'
+ - 'spec/lib/banzai/pipeline/post_process_pipeline_spec.rb'
+ - 'spec/lib/banzai/reference_parser/alert_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/base_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/commit_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/commit_range_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/design_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/external_issue_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/feature_flag_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/issue_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/label_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/mentioned_group_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/mentioned_project_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/mentioned_user_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/merge_request_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/milestone_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/project_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/snippet_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/user_parser_spec.rb'
+ - 'spec/lib/banzai/reference_parser/work_item_parser_spec.rb'
+ - 'spec/lib/banzai/renderer_spec.rb'
+ - 'spec/lib/bitbucket_server/client_spec.rb'
+ - 'spec/lib/bitbucket_server/collection_spec.rb'
+ - 'spec/lib/bitbucket_server/connection_spec.rb'
+ - 'spec/lib/bitbucket_server/representation/activity_spec.rb'
+ - 'spec/lib/bitbucket_server/representation/comment_spec.rb'
+ - 'spec/lib/bitbucket_server/representation/pull_request_comment_spec.rb'
+ - 'spec/lib/bitbucket_server/representation/pull_request_spec.rb'
+ - 'spec/lib/bitbucket_server/representation/repo_spec.rb'
+ - 'spec/lib/bulk_imports/clients/graphql_spec.rb'
+ - 'spec/lib/bulk_imports/clients/http_spec.rb'
+ - 'spec/lib/bulk_imports/common/extractors/graphql_extractor_spec.rb'
+ - 'spec/lib/bulk_imports/common/extractors/json_extractor_spec.rb'
+ - 'spec/lib/bulk_imports/common/extractors/ndjson_extractor_spec.rb'
+ - 'spec/lib/bulk_imports/common/extractors/rest_extractor_spec.rb'
+ - 'spec/lib/bulk_imports/common/pipelines/badges_pipeline_spec.rb'
+ - 'spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb'
+ - 'spec/lib/bulk_imports/common/pipelines/labels_pipeline_spec.rb'
+ - 'spec/lib/bulk_imports/common/pipelines/milestones_pipeline_spec.rb'
+ - 'spec/lib/bulk_imports/common/transformers/prohibited_attributes_transformer_spec.rb'
+ - 'spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb'
+ - 'spec/lib/bulk_imports/groups/graphql/get_group_query_spec.rb'
+ - 'spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb'
+ - 'spec/lib/bulk_imports/groups/loaders/group_loader_spec.rb'
+ - 'spec/lib/bulk_imports/groups/pipelines/group_pipeline_spec.rb'
+ - 'spec/lib/bulk_imports/groups/pipelines/project_entities_pipeline_spec.rb'
+ - 'spec/lib/bulk_imports/groups/pipelines/subgroup_entities_pipeline_spec.rb'
+ - 'spec/lib/bulk_imports/groups/transformers/subgroup_to_entity_transformer_spec.rb'
+ - 'spec/lib/bulk_imports/ndjson_pipeline_spec.rb'
+ - 'spec/lib/bulk_imports/pipeline/context_spec.rb'
+ - 'spec/lib/bulk_imports/pipeline/extracted_data_spec.rb'
+ - 'spec/lib/bulk_imports/pipeline/runner_spec.rb'
+ - 'spec/lib/bulk_imports/projects/graphql/get_project_query_spec.rb'
+ - 'spec/lib/bulk_imports/projects/graphql/get_repository_query_spec.rb'
+ - 'spec/lib/bulk_imports/projects/graphql/get_snippet_repository_query_spec.rb'
+ - 'spec/lib/bulk_imports/projects/pipelines/references_pipeline_spec.rb'
+ - 'spec/lib/bulk_imports/projects/stage_spec.rb'
+ - 'spec/lib/bulk_imports/source_url_builder_spec.rb'
+ - 'spec/lib/bulk_imports/users_mapper_spec.rb'
+ - 'spec/lib/constraints/admin_constrainer_spec.rb'
+ - 'spec/lib/constraints/group_url_constrainer_spec.rb'
+ - 'spec/lib/constraints/project_url_constrainer_spec.rb'
+ - 'spec/lib/constraints/user_url_constrainer_spec.rb'
+ - 'spec/lib/container_registry/client_spec.rb'
+ - 'spec/lib/container_registry/gitlab_api_client_spec.rb'
+ - 'spec/lib/container_registry/migration_spec.rb'
+ - 'spec/lib/container_registry/path_spec.rb'
+ - 'spec/lib/container_registry/registry_spec.rb'
+ - 'spec/lib/container_registry/tag_spec.rb'
+ - 'spec/lib/error_tracking/sentry_client/event_spec.rb'
+ - 'spec/lib/error_tracking/sentry_client/issue_spec.rb'
+ - 'spec/lib/error_tracking/sentry_client/projects_spec.rb'
+ - 'spec/lib/error_tracking/sentry_client/repo_spec.rb'
+ - 'spec/lib/extracts_ref/requested_ref_spec.rb'
+ - 'spec/lib/feature/definition_spec.rb'
+ - 'spec/lib/feature/gitaly_spec.rb'
+ - 'spec/lib/feature_spec.rb'
+ - 'spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb'
+ - 'spec/lib/generators/model/model_generator_spec.rb'
+ - 'spec/lib/gitaly/server_spec.rb'
+ - 'spec/lib/gitlab/alert_management/fingerprint_spec.rb'
+ - 'spec/lib/gitlab/alert_management/payload/base_spec.rb'
+ - 'spec/lib/gitlab/alert_management/payload_spec.rb'
+ - 'spec/lib/gitlab/allowable_spec.rb'
+ - 'spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb'
+ - 'spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb'
+ - 'spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb'
+ - 'spec/lib/gitlab/analytics/cycle_analytics/stage_events/plan_stage_start_spec.rb'
+ - 'spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb'
+ - 'spec/lib/gitlab/anonymous_session_spec.rb'
+ - 'spec/lib/gitlab/api_authentication/token_locator_spec.rb'
+ - 'spec/lib/gitlab/app_json_logger_spec.rb'
+ - 'spec/lib/gitlab/app_logger_spec.rb'
+ - 'spec/lib/gitlab/app_text_logger_spec.rb'
+ - 'spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb'
+ - 'spec/lib/gitlab/application_rate_limiter_spec.rb'
+ - 'spec/lib/gitlab/audit/ci_runner_token_author_spec.rb'
+ - 'spec/lib/gitlab/audit/null_author_spec.rb'
+ - 'spec/lib/gitlab/audit/null_target_spec.rb'
+ - 'spec/lib/gitlab/audit/target_spec.rb'
+ - 'spec/lib/gitlab/audit/type/definition_spec.rb'
+ - 'spec/lib/gitlab/auth/atlassian/identity_linker_spec.rb'
+ - 'spec/lib/gitlab/auth/auth_finders_spec.rb'
+ - 'spec/lib/gitlab/auth/current_user_mode_spec.rb'
+ - 'spec/lib/gitlab/auth/ip_rate_limiter_spec.rb'
+ - 'spec/lib/gitlab/auth/ldap/dn_spec.rb'
+ - 'spec/lib/gitlab/auth/ldap/person_spec.rb'
+ - 'spec/lib/gitlab/auth/o_auth/identity_linker_spec.rb'
+ - 'spec/lib/gitlab/auth/o_auth/provider_spec.rb'
+ - 'spec/lib/gitlab/auth/request_authenticator_spec.rb'
+ - 'spec/lib/gitlab/auth/result_spec.rb'
+ - 'spec/lib/gitlab/auth/saml/identity_linker_spec.rb'
+ - 'spec/lib/gitlab/auth/saml/origin_validator_spec.rb'
+ - 'spec/lib/gitlab/auth/two_factor_auth_verifier_spec.rb'
+ - 'spec/lib/gitlab/auth_spec.rb'
+ - 'spec/lib/gitlab/authorized_keys_spec.rb'
+ - 'spec/lib/gitlab/avatar_cache_spec.rb'
+ - 'spec/lib/gitlab/background_migration/backfill_admin_mode_scope_for_personal_access_tokens_spec.rb'
+ - 'spec/lib/gitlab/background_migration/backfill_missing_ci_cd_settings_spec.rb'
+ - 'spec/lib/gitlab/background_migration/backfill_project_repositories_spec.rb'
+ - 'spec/lib/gitlab/background_migration/backfill_topics_title_spec.rb'
+ - 'spec/lib/gitlab/background_migration/backfill_user_details_fields_spec.rb'
+ - 'spec/lib/gitlab/background_migration/delete_invalid_protected_branch_merge_access_levels_spec.rb'
+ - 'spec/lib/gitlab/background_migration/delete_invalid_protected_branch_push_access_levels_spec.rb'
+ - 'spec/lib/gitlab/background_migration/delete_invalid_protected_tag_create_access_levels_spec.rb'
+ - 'spec/lib/gitlab/background_migration/delete_orphans_approval_merge_request_rules2_spec.rb'
+ - 'spec/lib/gitlab/background_migration/delete_orphans_approval_merge_request_rules_spec.rb'
+ - 'spec/lib/gitlab/background_migration/delete_orphans_approval_project_rules2_spec.rb'
+ - 'spec/lib/gitlab/background_migration/delete_orphans_approval_project_rules_spec.rb'
+ - 'spec/lib/gitlab/background_migration/legacy_uploads_migrator_spec.rb'
+ - 'spec/lib/gitlab/background_migration/mailers/unconfirm_mailer_spec.rb'
+ - 'spec/lib/gitlab/background_migration/nullify_creator_id_column_of_orphaned_projects_spec.rb'
+ - 'spec/lib/gitlab/background_migration/populate_vulnerability_dismissal_fields_spec.rb'
+ - 'spec/lib/gitlab/background_migration/redis/backfill_project_pipeline_status_ttl_spec.rb'
+ - 'spec/lib/gitlab/background_migration/remove_backfilled_job_artifacts_expire_at_spec.rb'
+ - 'spec/lib/gitlab/background_migration/remove_project_group_link_with_missing_groups_spec.rb'
+ - 'spec/lib/gitlab/background_migration/truncate_overlong_vulnerability_html_titles_spec.rb'
+ - 'spec/lib/gitlab/background_migration/update_ci_pipeline_artifacts_unknown_locked_status_spec.rb'
+ - 'spec/lib/gitlab/background_task_spec.rb'
+ - 'spec/lib/gitlab/bitbucket_import/importer_spec.rb'
+ - 'spec/lib/gitlab/bitbucket_import/parallel_importer_spec.rb'
+ - 'spec/lib/gitlab/bitbucket_server_import/importers/pull_request_notes_importer_spec.rb'
+ - 'spec/lib/gitlab/blame_spec.rb'
+ - 'spec/lib/gitlab/branch_push_merge_commit_analyzer_spec.rb'
+ - 'spec/lib/gitlab/bullet/exclusions_spec.rb'
+ - 'spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb'
+ - 'spec/lib/gitlab/cache/helpers_spec.rb'
+ - 'spec/lib/gitlab/cache/metrics_spec.rb'
+ - 'spec/lib/gitlab/cache_spec.rb'
+ - 'spec/lib/gitlab/chat_name_token_spec.rb'
+ - 'spec/lib/gitlab/checks/branch_check_spec.rb'
+ - 'spec/lib/gitlab/checks/changes_access_spec.rb'
+ - 'spec/lib/gitlab/checks/container_moved_spec.rb'
+ - 'spec/lib/gitlab/checks/diff_check_spec.rb'
+ - 'spec/lib/gitlab/checks/file_size_check/any_oversized_blobs_spec.rb'
+ - 'spec/lib/gitlab/checks/file_size_check/hook_environment_aware_any_oversized_blobs_spec.rb'
+ - 'spec/lib/gitlab/checks/global_file_size_check_spec.rb'
+ - 'spec/lib/gitlab/checks/lfs_check_spec.rb'
+ - 'spec/lib/gitlab/checks/lfs_integrity_spec.rb'
+ - 'spec/lib/gitlab/checks/matching_merge_request_spec.rb'
+ - 'spec/lib/gitlab/checks/project_created_spec.rb'
+ - 'spec/lib/gitlab/checks/push_check_spec.rb'
+ - 'spec/lib/gitlab/checks/push_file_count_check_spec.rb'
+ - 'spec/lib/gitlab/checks/single_change_access_spec.rb'
+ - 'spec/lib/gitlab/checks/snippet_check_spec.rb'
+ - 'spec/lib/gitlab/checks/tag_check_spec.rb'
+ - 'spec/lib/gitlab/ci/ansi2html_spec.rb'
+ - 'spec/lib/gitlab/ci/ansi2json/line_spec.rb'
+ - 'spec/lib/gitlab/ci/ansi2json/parser_spec.rb'
+ - 'spec/lib/gitlab/ci/ansi2json/result_spec.rb'
+ - 'spec/lib/gitlab/ci/ansi2json/style_spec.rb'
+ - 'spec/lib/gitlab/ci/ansi2json_spec.rb'
+ - 'spec/lib/gitlab/ci/artifact_file_reader_spec.rb'
+ - 'spec/lib/gitlab/ci/artifacts/decompressed_artifact_size_validator_spec.rb'
+ - 'spec/lib/gitlab/ci/artifacts/metrics_spec.rb'
+ - 'spec/lib/gitlab/ci/badge/release/latest_release_spec.rb'
+ - 'spec/lib/gitlab/ci/build/artifacts/metadata/entry_spec.rb'
+ - 'spec/lib/gitlab/ci/build/auto_retry_spec.rb'
+ - 'spec/lib/gitlab/ci/build/credentials/factory_spec.rb'
+ - 'spec/lib/gitlab/ci/build/credentials/registry/dependency_proxy_spec.rb'
+ - 'spec/lib/gitlab/ci/build/credentials/registry/gitlab_registry_spec.rb'
+ - 'spec/lib/gitlab/ci/build/image_spec.rb'
+ - 'spec/lib/gitlab/ci/build/policy/refs_spec.rb'
+ - 'spec/lib/gitlab/ci/build/port_spec.rb'
+ - 'spec/lib/gitlab/ci/build/prerequisite/kubernetes_namespace_spec.rb'
+ - 'spec/lib/gitlab/ci/build/releaser_spec.rb'
+ - 'spec/lib/gitlab/ci/build/rules_spec.rb'
+ - 'spec/lib/gitlab/ci/build/step_spec.rb'
+ - 'spec/lib/gitlab/ci/config/entry/bridge_spec.rb'
+ - 'spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb'
+ - 'spec/lib/gitlab/ci/config/entry/inherit/variables_spec.rb'
+ - 'spec/lib/gitlab/ci/config/entry/rules/rule_spec.rb'
+ - 'spec/lib/gitlab/ci/config/entry/trigger_spec.rb'
+ - 'spec/lib/gitlab/ci/config/extendable/entry_spec.rb'
+ - 'spec/lib/gitlab/ci/config/extendable_spec.rb'
+ - 'spec/lib/gitlab/ci/config/external/context_spec.rb'
+ - 'spec/lib/gitlab/ci/config/external/file/component_spec.rb'
+ - 'spec/lib/gitlab/ci/config/external/file/remote_spec.rb'
+ - 'spec/lib/gitlab/ci/config/external/mapper_spec.rb'
+ - 'spec/lib/gitlab/ci/config/external/processor_spec.rb'
+ - 'spec/lib/gitlab/ci/config/interpolation/access_spec.rb'
+ - 'spec/lib/gitlab/ci/config/interpolation/block_spec.rb'
+ - 'spec/lib/gitlab/ci/config/interpolation/config_spec.rb'
+ - 'spec/lib/gitlab/ci/config/interpolation/context_spec.rb'
+ - 'spec/lib/gitlab/ci/config/interpolation/functions_stack_spec.rb'
+ - 'spec/lib/gitlab/ci/config/interpolation/interpolator_spec.rb'
+ - 'spec/lib/gitlab/ci/config/interpolation/template_spec.rb'
+ - 'spec/lib/gitlab/ci/config/normalizer/matrix_strategy_spec.rb'
+ - 'spec/lib/gitlab/ci/config/normalizer_spec.rb'
+ - 'spec/lib/gitlab/ci/config/yaml/tags/reference_spec.rb'
+ - 'spec/lib/gitlab/ci/cron_parser_spec.rb'
+ - 'spec/lib/gitlab/ci/decompressed_gzip_size_validator_spec.rb'
+ - 'spec/lib/gitlab/ci/environment_matcher_spec.rb'
+ - 'spec/lib/gitlab/ci/lint_spec.rb'
+ - 'spec/lib/gitlab/ci/matching/runner_matcher_spec.rb'
+ - 'spec/lib/gitlab/ci/parsers/accessibility/pa11y_spec.rb'
+ - 'spec/lib/gitlab/ci/parsers/security/validators/schema_validator_spec.rb'
+ - 'spec/lib/gitlab/ci/parsers/terraform/tfplan_spec.rb'
+ - 'spec/lib/gitlab/ci/parsers/test/junit_spec.rb'
+ - 'spec/lib/gitlab/ci/parsers_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/chain/assign_partition_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/chain/cancel_pending_pipelines_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/chain/command_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/chain/config/content_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/chain/ensure_environments_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/chain/helpers_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/chain/limit/active_jobs_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/chain/remove_unwanted_chat_jobs_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern/regular_expression_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/expression/token_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/seed/build/cache_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/seed/build_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/seed/processable/resource_group_spec.rb'
+ - 'spec/lib/gitlab/ci/pipeline/seed/stage_spec.rb'
+ - 'spec/lib/gitlab/ci/queue/metrics_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/coverage_report_generator_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/sbom/source_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/security/aggregated_report_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/security/finding_signature_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/security/flag_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/security/identifier_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/security/link_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/security/report_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/security/reports_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/security/scan_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/security/scanned_resource_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/security/scanner_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/terraform_reports_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/test_report_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/test_report_summary_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/test_suite_spec.rb'
+ - 'spec/lib/gitlab/ci/reports/test_suite_summary_spec.rb'
+ - 'spec/lib/gitlab/ci/runner/metrics_spec.rb'
+ - 'spec/lib/gitlab/ci/runner_instructions_spec.rb'
+ - 'spec/lib/gitlab/ci/runner_releases_spec.rb'
+ - 'spec/lib/gitlab/ci/secure_files/cer_spec.rb'
+ - 'spec/lib/gitlab/ci/secure_files/migration_helper_spec.rb'
+ - 'spec/lib/gitlab/ci/secure_files/mobile_provision_spec.rb'
+ - 'spec/lib/gitlab/ci/secure_files/p12_spec.rb'
+ - 'spec/lib/gitlab/ci/status/bridge/common_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/action_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/cancelable_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/canceled_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/common_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/created_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/erased_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/failed_allowed_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/failed_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/manual_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/pending_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/play_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/preparing_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/retried_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/retryable_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/scheduled_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/skipped_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/stop_spec.rb'
+ - 'spec/lib/gitlab/ci/status/build/unschedule_spec.rb'
+ - 'spec/lib/gitlab/ci/status/canceled_spec.rb'
+ - 'spec/lib/gitlab/ci/status/created_spec.rb'
+ - 'spec/lib/gitlab/ci/status/external/common_spec.rb'
+ - 'spec/lib/gitlab/ci/status/failed_spec.rb'
+ - 'spec/lib/gitlab/ci/status/group/common_spec.rb'
+ - 'spec/lib/gitlab/ci/status/manual_spec.rb'
+ - 'spec/lib/gitlab/ci/status/pending_spec.rb'
+ - 'spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb'
+ - 'spec/lib/gitlab/ci/status/pipeline/common_spec.rb'
+ - 'spec/lib/gitlab/ci/status/pipeline/delayed_spec.rb'
+ - 'spec/lib/gitlab/ci/status/preparing_spec.rb'
+ - 'spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb'
+ - 'spec/lib/gitlab/ci/status/running_spec.rb'
+ - 'spec/lib/gitlab/ci/status/scheduled_spec.rb'
+ - 'spec/lib/gitlab/ci/status/skipped_spec.rb'
+ - 'spec/lib/gitlab/ci/status/stage/common_spec.rb'
+ - 'spec/lib/gitlab/ci/status/success_spec.rb'
+ - 'spec/lib/gitlab/ci/status/success_warning_spec.rb'
+ - 'spec/lib/gitlab/ci/status/waiting_for_callback_spec.rb'
+ - 'spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb'
+ - 'spec/lib/gitlab/ci/trace/archive_spec.rb'
+ - 'spec/lib/gitlab/ci/trace/checksum_spec.rb'
+ - 'spec/lib/gitlab/ci/trace/chunked_io_spec.rb'
+ - 'spec/lib/gitlab/ci/trace/metrics_spec.rb'
+ - 'spec/lib/gitlab/ci/trace/remote_checksum_spec.rb'
+ - 'spec/lib/gitlab/ci/trace/section_parser_spec.rb'
+ - 'spec/lib/gitlab/ci/variables/builder/group_spec.rb'
+ - 'spec/lib/gitlab/ci/variables/builder/pipeline_spec.rb'
+ - 'spec/lib/gitlab/ci/variables/builder/project_spec.rb'
+ - 'spec/lib/gitlab/ci/variables/builder/release_spec.rb'
+ - 'spec/lib/gitlab/ci/variables/builder_spec.rb'
+ - 'spec/lib/gitlab/ci/variables/collection/sort_spec.rb'
+ - 'spec/lib/gitlab/ci/variables/collection_spec.rb'
+ - 'spec/lib/gitlab/ci/yaml_processor_spec.rb'
+ - 'spec/lib/gitlab/cleanup/personal_access_tokens_spec.rb'
+ - 'spec/lib/gitlab/cleanup/project_uploads_spec.rb'
+ - 'spec/lib/gitlab/cleanup/remote_uploads_spec.rb'
+ - 'spec/lib/gitlab/closing_issue_extractor_spec.rb'
+ - 'spec/lib/gitlab/cluster/lifecycle_events_spec.rb'
+ - 'spec/lib/gitlab/cluster/rack_timeout_observer_spec.rb'
+ - 'spec/lib/gitlab/code_navigation_path_spec.rb'
+ - 'spec/lib/gitlab/composer/cache_spec.rb'
+ - 'spec/lib/gitlab/container_repository/tags/cache_spec.rb'
+ - 'spec/lib/gitlab/content_security_policy/config_loader_spec.rb'
+ - 'spec/lib/gitlab/cycle_analytics/permissions_spec.rb'
+ - 'spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb'
+ - 'spec/lib/gitlab/daemon_spec.rb'
+ - 'spec/lib/gitlab/data_builder/push_spec.rb'
+ - 'spec/lib/gitlab/database/async_constraints/postgres_async_constraint_validation_spec.rb'
+ - 'spec/lib/gitlab/database/async_constraints/validators/foreign_key_spec.rb'
+ - 'spec/lib/gitlab/database/async_constraints_spec.rb'
+ - 'spec/lib/gitlab/database/async_indexes/index_base_spec.rb'
+ - 'spec/lib/gitlab/database/async_indexes/index_creator_spec.rb'
+ - 'spec/lib/gitlab/database/async_indexes/index_destructor_spec.rb'
+ - 'spec/lib/gitlab/database/async_indexes/postgres_async_index_spec.rb'
+ - 'spec/lib/gitlab/database/async_indexes_spec.rb'
+ - 'spec/lib/gitlab/database/background_migration/batch_optimizer_spec.rb'
+ - 'spec/lib/gitlab/database/background_migration/batched_job_spec.rb'
+ - 'spec/lib/gitlab/database/background_migration/batched_migration_spec.rb'
+ - 'spec/lib/gitlab/database/batch_average_counter_spec.rb'
+ - 'spec/lib/gitlab/database/bump_sequences_spec.rb'
+ - 'spec/lib/gitlab/database/count/exact_count_strategy_spec.rb'
+ - 'spec/lib/gitlab/database/count/reltuples_count_strategy_spec.rb'
+ - 'spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb'
+ - 'spec/lib/gitlab/database/count_spec.rb'
+ - 'spec/lib/gitlab/database/database_connection_info_spec.rb'
+ - 'spec/lib/gitlab/database/dynamic_model_helpers_spec.rb'
+ - 'spec/lib/gitlab/database/gitlab_schema_spec.rb'
+ - 'spec/lib/gitlab/database/health_status/indicators/autovacuum_active_on_table_spec.rb'
+ - 'spec/lib/gitlab/database/load_balancing/load_balancer_spec.rb'
+ - 'spec/lib/gitlab/database/load_balancing/rack_middleware_spec.rb'
+ - 'spec/lib/gitlab/database/load_balancing/resolver_spec.rb'
+ - 'spec/lib/gitlab/database/load_balancing/service_discovery_spec.rb'
+ - 'spec/lib/gitlab/database/load_balancing/srv_resolver_spec.rb'
+ - 'spec/lib/gitlab/database/lock_writes_manager_spec.rb'
+ - 'spec/lib/gitlab/database/loose_foreign_keys_spec.rb'
+ - 'spec/lib/gitlab/database/migration_helpers/wraparound_vacuum_helpers_spec.rb'
+ - 'spec/lib/gitlab/database/migration_helpers_spec.rb'
+ - 'spec/lib/gitlab/database/migration_spec.rb'
+ - 'spec/lib/gitlab/database/migrations/base_background_runner_spec.rb'
+ - 'spec/lib/gitlab/database/migrations/extension_helpers_spec.rb'
+ - 'spec/lib/gitlab/database/migrations/instrumentation_spec.rb'
+ - 'spec/lib/gitlab/database/migrations/lock_retry_mixin_spec.rb'
+ - 'spec/lib/gitlab/database/migrations/observers/query_details_spec.rb'
+ - 'spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb'
+ - 'spec/lib/gitlab/database/migrations/observers/total_database_size_change_spec.rb'
+ - 'spec/lib/gitlab/database/migrations/redis_helpers_spec.rb'
+ - 'spec/lib/gitlab/database/migrations/runner_backoff/active_record_mixin_spec.rb'
+ - 'spec/lib/gitlab/database/migrations/runner_backoff/communicator_spec.rb'
+ - 'spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb'
+ - 'spec/lib/gitlab/database/migrations/version_spec.rb'
+ - 'spec/lib/gitlab/database/obsolete_ignored_columns_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning/list/locking_configuration_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/partition_monitoring_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/index_helpers_spec.rb'
+ - 'spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb'
+ - 'spec/lib/gitlab/database/pg_class_spec.rb'
+ - 'spec/lib/gitlab/database/pg_depend_spec.rb'
+ - 'spec/lib/gitlab/database/postgres_autovacuum_activity_spec.rb'
+ - 'spec/lib/gitlab/database/postgres_index_bloat_estimate_spec.rb'
+ - 'spec/lib/gitlab/database/postgres_index_spec.rb'
+ - 'spec/lib/gitlab/database/query_analyzers/prevent_set_operator_mismatch/columns_spec.rb'
+ - 'spec/lib/gitlab/database/query_analyzers/prevent_set_operator_mismatch/common_table_expressions_spec.rb'
+ - 'spec/lib/gitlab/database/query_analyzers/prevent_set_operator_mismatch/targets_spec.rb'
+ - 'spec/lib/gitlab/database/query_analyzers/restrict_allowed_schemas_spec.rb'
+ - 'spec/lib/gitlab/database/reindexing/coordinator_spec.rb'
+ - 'spec/lib/gitlab/database/reindexing/index_selection_spec.rb'
+ - 'spec/lib/gitlab/database/reindexing/reindex_action_spec.rb'
+ - 'spec/lib/gitlab/database/reindexing/reindex_concurrently_spec.rb'
+ - 'spec/lib/gitlab/database/reindexing_spec.rb'
+ - 'spec/lib/gitlab/database/schema_cleaner_spec.rb'
+ - 'spec/lib/gitlab/database/similarity_score_spec.rb'
+ - 'spec/lib/gitlab/database/tables_locker_spec.rb'
+ - 'spec/lib/gitlab/database/tables_sorted_by_foreign_keys_spec.rb'
+ - 'spec/lib/gitlab/database/tables_truncate_spec.rb'
+ - 'spec/lib/gitlab/database/transaction/context_spec.rb'
+ - 'spec/lib/gitlab/database/transaction_timeout_settings_spec.rb'
+ - 'spec/lib/gitlab/database/with_lock_retries_outside_transaction_spec.rb'
+ - 'spec/lib/gitlab/database/with_lock_retries_spec.rb'
+ - 'spec/lib/gitlab/database_importers/default_organization_importer_spec.rb'
+ - 'spec/lib/gitlab/database_spec.rb'
+ - 'spec/lib/gitlab/database_warnings_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/base_linker_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/cargo_toml_linker_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/composer_json_linker_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/gemspec_linker_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/parser/gemfile_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/podfile_linker_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/podspec_linker_spec.rb'
+ - 'spec/lib/gitlab/dependency_linker/requirements_txt_linker_spec.rb'
+ - 'spec/lib/gitlab/diff/char_diff_spec.rb'
+ - 'spec/lib/gitlab/diff/diff_refs_spec.rb'
+ - 'spec/lib/gitlab/diff/file_collection/merge_request_diff_batch_spec.rb'
+ - 'spec/lib/gitlab/diff/formatters/file_formatter_spec.rb'
+ - 'spec/lib/gitlab/diff/formatters/image_formatter_spec.rb'
+ - 'spec/lib/gitlab/diff/highlight_spec.rb'
+ - 'spec/lib/gitlab/diff/inline_diff_markdown_marker_spec.rb'
+ - 'spec/lib/gitlab/diff/inline_diff_marker_spec.rb'
+ - 'spec/lib/gitlab/diff/inline_diff_spec.rb'
+ - 'spec/lib/gitlab/diff/line_mapper_spec.rb'
+ - 'spec/lib/gitlab/diff/lines_unfolder_spec.rb'
+ - 'spec/lib/gitlab/diff/pair_selector_spec.rb'
+ - 'spec/lib/gitlab/diff/parallel_diff_spec.rb'
+ - 'spec/lib/gitlab/diff/position_spec.rb'
+ - 'spec/lib/gitlab/diff/position_tracer_spec.rb'
+ - 'spec/lib/gitlab/diff/rendered/notebook/diff_file_helper_spec.rb'
+ - 'spec/lib/gitlab/diff/suggestion_diff_spec.rb'
+ - 'spec/lib/gitlab/diff/suggestions_parser_spec.rb'
+ - 'spec/lib/gitlab/discussions_diff/file_collection_spec.rb'
+ - 'spec/lib/gitlab/doctor/secrets_spec.rb'
+ - 'spec/lib/gitlab/email/handler/service_desk_handler_spec.rb'
+ - 'spec/lib/gitlab/email/html_to_markdown_parser_spec.rb'
+ - 'spec/lib/gitlab/empty_search_results_spec.rb'
+ - 'spec/lib/gitlab/encoding_helper_spec.rb'
+ - 'spec/lib/gitlab/error_tracking/error_repository/open_api_strategy_spec.rb'
+ - 'spec/lib/gitlab/etag_caching/store_spec.rb'
+ - 'spec/lib/gitlab/event_store/store_spec.rb'
+ - 'spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb'
+ - 'spec/lib/gitlab/exclusive_lease_helpers_spec.rb'
+ - 'spec/lib/gitlab/experiment/rollout/feature_spec.rb'
+ - 'spec/lib/gitlab/faraday/error_callback_spec.rb'
+ - 'spec/lib/gitlab/favicon_spec.rb'
+ - 'spec/lib/gitlab/feature_categories_spec.rb'
+ - 'spec/lib/gitlab/file_finder_spec.rb'
+ - 'spec/lib/gitlab/fogbugz_import/importer_spec.rb'
+ - 'spec/lib/gitlab/fogbugz_import/project_creator_spec.rb'
+ - 'spec/lib/gitlab/gfm/reference_rewriter_spec.rb'
+ - 'spec/lib/gitlab/git/attributes_at_ref_parser_spec.rb'
+ - 'spec/lib/gitlab/git/attributes_parser_spec.rb'
+ - 'spec/lib/gitlab/git/blame_pagination_spec.rb'
+ - 'spec/lib/gitlab/git/blob_spec.rb'
+ - 'spec/lib/gitlab/git/branch_spec.rb'
+ - 'spec/lib/gitlab/git/changes_spec.rb'
+ - 'spec/lib/gitlab/git/commit_spec.rb'
+ - 'spec/lib/gitlab/git/compare_spec.rb'
+ - 'spec/lib/gitlab/git/diff_collection_spec.rb'
+ - 'spec/lib/gitlab/git/finders/refs_finder_spec.rb'
+ - 'spec/lib/gitlab/git/hook_env_spec.rb'
+ - 'spec/lib/gitlab/git/lfs_changes_spec.rb'
+ - 'spec/lib/gitlab/git/lfs_pointer_file_spec.rb'
+ - 'spec/lib/gitlab/git/object_pool_spec.rb'
+ - 'spec/lib/gitlab/git/push_spec.rb'
+ - 'spec/lib/gitlab/git/repository_spec.rb'
+ - 'spec/lib/gitlab/git/tag_spec.rb'
+ - 'spec/lib/gitlab/git/user_spec.rb'
+ - 'spec/lib/gitlab/git_access_design_spec.rb'
+ - 'spec/lib/gitlab/git_access_wiki_spec.rb'
+ - 'spec/lib/gitlab/git_post_receive_spec.rb'
+ - 'spec/lib/gitlab/gitaly_client/blob_service_spec.rb'
+ - 'spec/lib/gitlab/gitaly_client/call_spec.rb'
+ - 'spec/lib/gitlab/gitaly_client/commit_service_spec.rb'
+ - 'spec/lib/gitlab/gitaly_client/conflicts_service_spec.rb'
+ - 'spec/lib/gitlab/gitaly_client/diff_spec.rb'
+ - 'spec/lib/gitlab/gitaly_client/health_check_service_spec.rb'
+ - 'spec/lib/gitlab/gitaly_client/object_pool_service_spec.rb'
+ - 'spec/lib/gitlab/gitaly_client/operation_service_spec.rb'
+ - 'spec/lib/gitlab/gitaly_client/ref_service_spec.rb'
+ - 'spec/lib/gitlab/gitaly_client/util_spec.rb'
+ - 'spec/lib/gitlab/gitaly_client_spec.rb'
+ - 'spec/lib/gitlab/github_gists_import/importer/gist_importer_spec.rb'
+ - 'spec/lib/gitlab/github_import/importer/diff_note_importer_spec.rb'
+ - 'spec/lib/gitlab/github_import/importer/protected_branches_importer_spec.rb'
+ - 'spec/lib/gitlab/github_import/importer/pull_requests/all_merged_by_importer_spec.rb'
+ - 'spec/lib/gitlab/github_import/importer/pull_requests/merged_by_importer_spec.rb'
+ - 'spec/lib/gitlab/github_import/importer/pull_requests/review_importer_spec.rb'
+ - 'spec/lib/gitlab/github_import/importer/pull_requests/reviews_importer_spec.rb'
+ - 'spec/lib/gitlab/github_import/importer/single_endpoint_diff_notes_importer_spec.rb'
+ - 'spec/lib/gitlab/github_import/importer/single_endpoint_issue_events_importer_spec.rb'
+ - 'spec/lib/gitlab/github_import/importer/single_endpoint_issue_notes_importer_spec.rb'
+ - 'spec/lib/gitlab/github_import/importer/single_endpoint_merge_request_notes_importer_spec.rb'
+ - 'spec/lib/gitlab/github_import/representation/note_text_spec.rb'
+ - 'spec/lib/gitlab/gl_repository/repo_type_spec.rb'
+ - 'spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb'
+ - 'spec/lib/gitlab/grape_logging/loggers/exception_logger_spec.rb'
+ - 'spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb'
+ - 'spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb'
+ - 'spec/lib/gitlab/grape_logging/loggers/response_logger_spec.rb'
+ - 'spec/lib/gitlab/grape_logging/loggers/token_logger_spec.rb'
+ - 'spec/lib/gitlab/graphql/batch_key_spec.rb'
+ - 'spec/lib/gitlab/graphql/copy_field_description_spec.rb'
+ - 'spec/lib/gitlab/graphql/known_operations_spec.rb'
+ - 'spec/lib/gitlab/graphql/lazy_spec.rb'
+ - 'spec/lib/gitlab/graphql/loaders/issuable_loader_spec.rb'
+ - 'spec/lib/gitlab/graphql/pagination/active_record_array_connection_spec.rb'
+ - 'spec/lib/gitlab/graphql/pagination/keyset/connection_spec.rb'
+ - 'spec/lib/gitlab/graphql/queries_spec.rb'
+ - 'spec/lib/gitlab/graphql_logger_spec.rb'
+ - 'spec/lib/gitlab/graphs/commits_spec.rb'
+ - 'spec/lib/gitlab/group_search_results_spec.rb'
+ - 'spec/lib/gitlab/hashed_path_spec.rb'
+ - 'spec/lib/gitlab/health_checks/db_check_spec.rb'
+ - 'spec/lib/gitlab/health_checks/gitaly_check_spec.rb'
+ - 'spec/lib/gitlab/health_checks/probes/collection_spec.rb'
+ - 'spec/lib/gitlab/health_checks/redis_spec.rb'
+ - 'spec/lib/gitlab/hook_data/base_builder_spec.rb'
+ - 'spec/lib/gitlab/http_connection_adapter_spec.rb'
+ - 'spec/lib/gitlab/http_io_spec.rb'
+ - 'spec/lib/gitlab/import/database_helpers_spec.rb'
+ - 'spec/lib/gitlab/import/merge_request_creator_spec.rb'
+ - 'spec/lib/gitlab/import/merge_request_helpers_spec.rb'
+ - 'spec/lib/gitlab/import/metrics_spec.rb'
+ - 'spec/lib/gitlab/import_export/after_export_strategies/web_upload_strategy_spec.rb'
+ - 'spec/lib/gitlab/import_export/attribute_cleaner_spec.rb'
+ - 'spec/lib/gitlab/import_export/attributes_permitter_spec.rb'
+ - 'spec/lib/gitlab/import_export/base/object_builder_spec.rb'
+ - 'spec/lib/gitlab/import_export/base/relation_factory_spec.rb'
+ - 'spec/lib/gitlab/import_export/command_line_util_spec.rb'
+ - 'spec/lib/gitlab/import_export/config_spec.rb'
+ - 'spec/lib/gitlab/import_export/decompressed_archive_size_validator_spec.rb'
+ - 'spec/lib/gitlab/import_export/duration_measuring_spec.rb'
+ - 'spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb'
+ - 'spec/lib/gitlab/import_export/file_importer_spec.rb'
+ - 'spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb'
+ - 'spec/lib/gitlab/import_export/import_failure_service_spec.rb'
+ - 'spec/lib/gitlab/import_export/importer_spec.rb'
+ - 'spec/lib/gitlab/import_export/json/ndjson_reader_spec.rb'
+ - 'spec/lib/gitlab/import_export/json/ndjson_writer_spec.rb'
+ - 'spec/lib/gitlab/import_export/json/streaming_serializer_spec.rb'
+ - 'spec/lib/gitlab/import_export/log_util_spec.rb'
+ - 'spec/lib/gitlab/import_export/project/export_task_spec.rb'
+ - 'spec/lib/gitlab/import_export/project/import_task_spec.rb'
+ - 'spec/lib/gitlab/import_export/project/object_builder_spec.rb'
+ - 'spec/lib/gitlab/import_export/project/sample/relation_tree_restorer_spec.rb'
+ - 'spec/lib/gitlab/import_export/reader_spec.rb'
+ - 'spec/lib/gitlab/import_export/remote_stream_upload_spec.rb'
+ - 'spec/lib/gitlab/import_export/repo_restorer_spec.rb'
+ - 'spec/lib/gitlab/import_export/saver_spec.rb'
+ - 'spec/lib/gitlab/import_export/shared_spec.rb'
+ - 'spec/lib/gitlab/import_export/uploads_restorer_spec.rb'
+ - 'spec/lib/gitlab/instrumentation_helper_spec.rb'
+ - 'spec/lib/gitlab/internal_post_receive/response_spec.rb'
+ - 'spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb'
+ - 'spec/lib/gitlab/issuable_sorter_spec.rb'
+ - 'spec/lib/gitlab/issuables_count_for_state_spec.rb'
+ - 'spec/lib/gitlab/jira_import/base_importer_spec.rb'
+ - 'spec/lib/gitlab/jira_import/handle_labels_service_spec.rb'
+ - 'spec/lib/gitlab/jira_import/issue_serializer_spec.rb'
+ - 'spec/lib/gitlab/jira_import/issues_importer_spec.rb'
+ - 'spec/lib/gitlab/jira_import/labels_importer_spec.rb'
+ - 'spec/lib/gitlab/jira_import/metadata_collector_spec.rb'
+ - 'spec/lib/gitlab/jira_import_spec.rb'
+ - 'spec/lib/gitlab/json_spec.rb'
+ - 'spec/lib/gitlab/kas/client_spec.rb'
+ - 'spec/lib/gitlab/kroki_spec.rb'
+ - 'spec/lib/gitlab/kubernetes/config_maps/aws_node_auth_spec.rb'
+ - 'spec/lib/gitlab/kubernetes/default_namespace_spec.rb'
+ - 'spec/lib/gitlab/kubernetes/kube_client_spec.rb'
+ - 'spec/lib/gitlab/kubernetes/namespace_spec.rb'
+ - 'spec/lib/gitlab/kubernetes/node_spec.rb'
+ - 'spec/lib/gitlab/kubernetes_spec.rb'
+ - 'spec/lib/gitlab/language_detection_spec.rb'
+ - 'spec/lib/gitlab/legacy_github_import/importer_spec.rb'
+ - 'spec/lib/gitlab/legacy_github_import/label_formatter_spec.rb'
+ - 'spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb'
+ - 'spec/lib/gitlab/log_timestamp_formatter_spec.rb'
+ - 'spec/lib/gitlab/logger_spec.rb'
+ - 'spec/lib/gitlab/lograge/custom_options_spec.rb'
+ - 'spec/lib/gitlab/loop_helpers_spec.rb'
+ - 'spec/lib/gitlab/manifest_import/metadata_spec.rb'
+ - 'spec/lib/gitlab/manifest_import/project_creator_spec.rb'
+ - 'spec/lib/gitlab/memory/diagnostic_reports_logger_spec.rb'
+ - 'spec/lib/gitlab/memory/instrumentation_spec.rb'
+ - 'spec/lib/gitlab/memory/watchdog/event_reporter_spec.rb'
+ - 'spec/lib/gitlab/metrics/methods_spec.rb'
+ - 'spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb'
+ - 'spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb'
+ - 'spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb'
+ - 'spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb'
+ - 'spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb'
+ - 'spec/lib/gitlab/metrics/subscribers/load_balancing_spec.rb'
+ - 'spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb'
+ - 'spec/lib/gitlab/metrics_spec.rb'
+ - 'spec/lib/gitlab/middleware/handle_malformed_strings_spec.rb'
+ - 'spec/lib/gitlab/middleware/multipart_spec.rb'
+ - 'spec/lib/gitlab/middleware/path_traversal_check_spec.rb'
+ - 'spec/lib/gitlab/middleware/query_analyzer_spec.rb'
+ - 'spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb'
+ - 'spec/lib/gitlab/middleware/request_context_spec.rb'
+ - 'spec/lib/gitlab/monitor/demo_projects_spec.rb'
+ - 'spec/lib/gitlab/multi_destination_logger_spec.rb'
+ - 'spec/lib/gitlab/namespaced_session_store_spec.rb'
+ - 'spec/lib/gitlab/no_cache_headers_spec.rb'
+ - 'spec/lib/gitlab/noteable_metadata_spec.rb'
+ - 'spec/lib/gitlab/object_hierarchy_spec.rb'
+ - 'spec/lib/gitlab/omniauth_initializer_spec.rb'
+ - 'spec/lib/gitlab/optimistic_locking_spec.rb'
+ - 'spec/lib/gitlab/pages/settings_spec.rb'
+ - 'spec/lib/gitlab/pagination/cursor_based_keyset_spec.rb'
+ - 'spec/lib/gitlab/pagination/keyset/order_spec.rb'
+ - 'spec/lib/gitlab/pagination/keyset/page_spec.rb'
+ - 'spec/lib/gitlab/pagination/keyset/pager_spec.rb'
+ - 'spec/lib/gitlab/pagination/keyset/request_context_spec.rb'
+ - 'spec/lib/gitlab/pagination/keyset_spec.rb'
+ - 'spec/lib/gitlab/pagination/offset_header_builder_spec.rb'
+ - 'spec/lib/gitlab/pagination/offset_pagination_spec.rb'
+ - 'spec/lib/gitlab/patch/draw_route_spec.rb'
+ - 'spec/lib/gitlab/patch/prependable_spec.rb'
+ - 'spec/lib/gitlab/patch/sidekiq_scheduled_enq_spec.rb'
+ - 'spec/lib/gitlab/path_regex_spec.rb'
+ - 'spec/lib/gitlab/performance_bar/stats_spec.rb'
+ - 'spec/lib/gitlab/performance_bar/with_top_level_warnings_spec.rb'
+ - 'spec/lib/gitlab/plantuml_spec.rb'
+ - 'spec/lib/gitlab/popen/runner_spec.rb'
+ - 'spec/lib/gitlab/popen_spec.rb'
+ - 'spec/lib/gitlab/process_memory_cache/helper_spec.rb'
+ - 'spec/lib/gitlab/prometheus/adapter_spec.rb'
+ - 'spec/lib/gitlab/prometheus_client_spec.rb'
+ - 'spec/lib/gitlab/puma/error_handler_spec.rb'
+ - 'spec/lib/gitlab/puma_logging/json_formatter_spec.rb'
+ - 'spec/lib/gitlab/quick_actions/command_definition_spec.rb'
+ - 'spec/lib/gitlab/quick_actions/spend_time_and_date_separator_spec.rb'
+ - 'spec/lib/gitlab/quick_actions/substitution_definition_spec.rb'
+ - 'spec/lib/gitlab/rack_attack/store_spec.rb'
+ - 'spec/lib/gitlab/rack_attack/user_allowlist_spec.rb'
+ - 'spec/lib/gitlab/rack_attack_spec.rb'
+ - 'spec/lib/gitlab/reactive_cache_set_cache_spec.rb'
+ - 'spec/lib/gitlab/redis/boolean_spec.rb'
+ - 'spec/lib/gitlab/redis/cross_slot_spec.rb'
+ - 'spec/lib/gitlab/redis/db_load_balancing_spec.rb'
+ - 'spec/lib/gitlab/redis/multi_store_spec.rb'
+ - 'spec/lib/gitlab/redis/queues_spec.rb'
+ - 'spec/lib/gitlab/redis/sidekiq_status_spec.rb'
+ - 'spec/lib/gitlab/reference_extractor_spec.rb'
+ - 'spec/lib/gitlab/regex_spec.rb'
+ - 'spec/lib/gitlab/relative_positioning/item_context_spec.rb'
+ - 'spec/lib/gitlab/relative_positioning/mover_spec.rb'
+ - 'spec/lib/gitlab/repository_archive_rate_limiter_spec.rb'
+ - 'spec/lib/gitlab/repository_cache_adapter_spec.rb'
+ - 'spec/lib/gitlab/repository_hash_cache_spec.rb'
+ - 'spec/lib/gitlab/repository_set_cache_spec.rb'
+ - 'spec/lib/gitlab/repository_size_checker_spec.rb'
+ - 'spec/lib/gitlab/request_context_spec.rb'
+ - 'spec/lib/gitlab/route_map_spec.rb'
+ - 'spec/lib/gitlab/routing_spec.rb'
+ - 'spec/lib/gitlab/rugged_instrumentation_spec.rb'
+ - 'spec/lib/gitlab/runtime_spec.rb'
+ - 'spec/lib/gitlab/sanitizers/exif_spec.rb'
+ - 'spec/lib/gitlab/search/found_blob_spec.rb'
+ - 'spec/lib/gitlab/search/found_wiki_page_spec.rb'
+ - 'spec/lib/gitlab/search/params_spec.rb'
+ - 'spec/lib/gitlab/search/query_spec.rb'
+ - 'spec/lib/gitlab/search_context/builder_spec.rb'
+ - 'spec/lib/gitlab/serializer/pagination_spec.rb'
+ - 'spec/lib/gitlab/setup_helper/workhorse_spec.rb'
+ - 'spec/lib/gitlab/shell_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_logging/json_formatter_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_logging/structured_logger_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_middleware/admin_mode/server_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_middleware/instrumentation_logger_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_middleware/monitor_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_middleware/pause_control/pause_control_service_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_middleware/query_analyzer_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_middleware/size_limiter/server_spec.rb'
+ - 'spec/lib/gitlab/sidekiq_middleware/skip_jobs_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/application_help_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/command_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/deploy_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/incident_management/incident_new_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/issue_close_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/issue_comment_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/issue_new_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/issue_search_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/issue_show_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/presenters/access_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/presenters/deploy_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/presenters/error_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/presenters/incident_management/incident_new_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/presenters/issue_comment_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/presenters/issue_move_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/presenters/issue_new_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb'
+ - 'spec/lib/gitlab/slash_commands/presenters/issue_show_spec.rb'
+ - 'spec/lib/gitlab/spamcheck/client_spec.rb'
+ - 'spec/lib/gitlab/spamcheck/result_spec.rb'
+ - 'spec/lib/gitlab/string_regex_marker_spec.rb'
+ - 'spec/lib/gitlab/submodule_links_spec.rb'
+ - 'spec/lib/gitlab/task_helpers_spec.rb'
+ - 'spec/lib/gitlab/template/gitignore_template_spec.rb'
+ - 'spec/lib/gitlab/template/gitlab_ci_yml_template_spec.rb'
+ - 'spec/lib/gitlab/terraform/state_migration_helper_spec.rb'
+ - 'spec/lib/gitlab/terraform_registry_token_spec.rb'
+ - 'spec/lib/gitlab/throttle_spec.rb'
+ - 'spec/lib/gitlab/time_tracking_formatter_spec.rb'
+ - 'spec/lib/gitlab/tracking/destinations/database_events_snowplow_spec.rb'
+ - 'spec/lib/gitlab/tracking/destinations/snowplow_micro_spec.rb'
+ - 'spec/lib/gitlab/tracking/destinations/snowplow_spec.rb'
+ - 'spec/lib/gitlab/tracking_spec.rb'
+ - 'spec/lib/gitlab/tree_summary_spec.rb'
+ - 'spec/lib/gitlab/unicode_spec.rb'
+ - 'spec/lib/gitlab/untrusted_regexp_spec.rb'
+ - 'spec/lib/gitlab/url_blocker_spec.rb'
+ - 'spec/lib/gitlab/url_builder_spec.rb'
+ - 'spec/lib/gitlab/usage/metric_definition_spec.rb'
+ - 'spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb'
+ - 'spec/lib/gitlab/usage/metrics/instrumentations/generic_metric_spec.rb'
+ - 'spec/lib/gitlab/usage/metrics/instrumentations/numbers_metric_spec.rb'
+ - 'spec/lib/gitlab/usage/metrics/instrumentations/redis_hll_metric_spec.rb'
+ - 'spec/lib/gitlab/usage/metrics/instrumentations/redis_metric_spec.rb'
+ - 'spec/lib/gitlab/usage_data/topology_spec.rb'
+ - 'spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb'
+ - 'spec/lib/gitlab/usage_data_counters/kubernetes_agent_counter_spec.rb'
+ - 'spec/lib/gitlab/usage_data_counters/redis_counter_spec.rb'
+ - 'spec/lib/gitlab/usage_data_counters_spec.rb'
+ - 'spec/lib/gitlab/usage_data_metrics_spec.rb'
+ - 'spec/lib/gitlab/usage_data_spec.rb'
+ - 'spec/lib/gitlab/utils/deep_size_spec.rb'
+ - 'spec/lib/gitlab/utils/delegator_override_spec.rb'
+ - 'spec/lib/gitlab/utils/file_info_spec.rb'
+ - 'spec/lib/gitlab/utils/gzip_spec.rb'
+ - 'spec/lib/gitlab/utils/inline_hash_spec.rb'
+ - 'spec/lib/gitlab/utils/measuring_spec.rb'
+ - 'spec/lib/gitlab/utils/mime_type_spec.rb'
+ - 'spec/lib/gitlab/utils/override_spec.rb'
+ - 'spec/lib/gitlab/utils/safe_inline_hash_spec.rb'
+ - 'spec/lib/gitlab/utils/sanitize_node_link_spec.rb'
+ - 'spec/lib/gitlab/utils/usage_data_spec.rb'
+ - 'spec/lib/gitlab/utils/username_and_email_generator_spec.rb'
+ - 'spec/lib/gitlab/word_diff/parser_spec.rb'
+ - 'spec/lib/gitlab/work_items/work_item_hierarchy_spec.rb'
+ - 'spec/lib/gitlab/workhorse_spec.rb'
+ - 'spec/lib/gitlab/x509/certificate_spec.rb'
+ - 'spec/lib/gitlab_spec.rb'
+ - 'spec/lib/google_api/auth_spec.rb'
+ - 'spec/lib/google_api/cloud_platform/client_spec.rb'
+ - 'spec/lib/grafana/time_window_spec.rb'
+ - 'spec/lib/grafana/validator_spec.rb'
+ - 'spec/lib/json_web_token/rsa_token_spec.rb'
+ - 'spec/lib/kramdown/kramdown_spec.rb'
+ - 'spec/lib/mattermost/client_spec.rb'
+ - 'spec/lib/mattermost/command_spec.rb'
+ - 'spec/lib/mattermost/session_spec.rb'
+ - 'spec/lib/mattermost/team_spec.rb'
+ - 'spec/lib/microsoft_teams/activity_spec.rb'
+ - 'spec/lib/microsoft_teams/notifier_spec.rb'
+ - 'spec/lib/object_storage/config_spec.rb'
+ - 'spec/lib/object_storage/direct_upload_spec.rb'
+ - 'spec/lib/object_storage/fog_helpers_spec.rb'
+ - 'spec/lib/omni_auth/strategies/bitbucket_spec.rb'
+ - 'spec/lib/omni_auth/strategies/jwt_spec.rb'
+ - 'spec/lib/peek/views/active_record_spec.rb'
+ - 'spec/lib/peek/views/bullet_detailed_spec.rb'
+ - 'spec/lib/peek/views/external_http_spec.rb'
+ - 'spec/lib/peek/views/memory_spec.rb'
+ - 'spec/lib/peek/views/redis_detailed_spec.rb'
+ - 'spec/lib/peek/views/rugged_spec.rb'
+ - 'spec/lib/product_analytics/event_params_spec.rb'
+ - 'spec/lib/quality/seeders/issues_spec.rb'
+ - 'spec/lib/release_highlights/validator/entry_spec.rb'
+ - 'spec/lib/release_highlights/validator_spec.rb'
+ - 'spec/lib/safe_zip/entry_spec.rb'
+ - 'spec/lib/sbom/package_url_spec.rb'
+ - 'spec/lib/security/report_schema_version_matcher_spec.rb'
+ - 'spec/lib/security/weak_passwords_spec.rb'
+ - 'spec/lib/service_ping/devops_report_spec.rb'
+ - 'spec/lib/sidebars/admin/menus/abuse_reports_menu_spec.rb'
+ - 'spec/lib/sidebars/concerns/container_with_html_options_spec.rb'
+ - 'spec/lib/sidebars/concerns/has_avatar_spec.rb'
+ - 'spec/lib/sidebars/concerns/link_with_html_options_spec.rb'
+ - 'spec/lib/sidebars/concerns/super_sidebar_panel_spec.rb'
+ - 'spec/lib/sidebars/explore/menus/catalog_menu_spec.rb'
+ - 'spec/lib/sidebars/explore/panel_spec.rb'
+ - 'spec/lib/sidebars/groups/menus/packages_registries_menu_spec.rb'
+ - 'spec/lib/sidebars/groups/super_sidebar_menus/analyze_menu_spec.rb'
+ - 'spec/lib/sidebars/groups/super_sidebar_menus/build_menu_spec.rb'
+ - 'spec/lib/sidebars/groups/super_sidebar_menus/deploy_menu_spec.rb'
+ - 'spec/lib/sidebars/groups/super_sidebar_menus/manage_menu_spec.rb'
+ - 'spec/lib/sidebars/groups/super_sidebar_menus/operations_menu_spec.rb'
+ - 'spec/lib/sidebars/groups/super_sidebar_menus/plan_menu_spec.rb'
+ - 'spec/lib/sidebars/groups/super_sidebar_menus/secure_menu_spec.rb'
+ - 'spec/lib/sidebars/groups/super_sidebar_panel_spec.rb'
+ - 'spec/lib/sidebars/menu_item_spec.rb'
+ - 'spec/lib/sidebars/menu_spec.rb'
+ - 'spec/lib/sidebars/organizations/menus/manage_menu_spec.rb'
+ - 'spec/lib/sidebars/organizations/menus/settings_menu_spec.rb'
+ - 'spec/lib/sidebars/organizations/panel_spec.rb'
+ - 'spec/lib/sidebars/organizations/super_sidebar_panel_spec.rb'
+ - 'spec/lib/sidebars/projects/context_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/analytics_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/ci_cd_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/confluence_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/deployments_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/external_issue_tracker_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/external_wiki_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/hidden_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/issues_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/monitor_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/packages_registries_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/repository_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/settings_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/snippets_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/wiki_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/panel_spec.rb'
+ - 'spec/lib/sidebars/projects/super_sidebar_menus/analyze_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/super_sidebar_menus/build_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/super_sidebar_menus/code_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/super_sidebar_menus/deploy_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/super_sidebar_menus/manage_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/super_sidebar_menus/monitor_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/super_sidebar_menus/operations_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/super_sidebar_menus/plan_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/super_sidebar_menus/secure_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/super_sidebar_panel_spec.rb'
+ - 'spec/lib/sidebars/static_menu_spec.rb'
+ - 'spec/lib/sidebars/uncategorized_menu_spec.rb'
+ - 'spec/lib/sidebars/user_profile/panel_spec.rb'
+ - 'spec/lib/sidebars/user_settings/menus/access_tokens_menu_spec.rb'
+ - 'spec/lib/sidebars/user_settings/menus/comment_templates_menu_spec.rb'
+ - 'spec/lib/sidebars/user_settings/menus/password_menu_spec.rb'
+ - 'spec/lib/sidebars/user_settings/panel_spec.rb'
+ - 'spec/lib/sidebars/your_work/menus/organizations_menu_spec.rb'
+ - 'spec/lib/sidebars/your_work/panel_spec.rb'
+ - 'spec/lib/system_check/app/hashed_storage_all_projects_check_spec.rb'
+ - 'spec/lib/system_check/app/hashed_storage_enabled_check_spec.rb'
+ - 'spec/lib/system_check/base_check_spec.rb'
+ - 'spec/lib/system_check/incoming_email_check_spec.rb'
+ - 'spec/lib/system_check/orphans/namespace_check_spec.rb'
+ - 'spec/lib/system_check/orphans/repository_check_spec.rb'
+ - 'spec/lib/system_check/sidekiq_check_spec.rb'
+ - 'spec/lib/system_check/simple_executor_spec.rb'
+ - 'spec/lib/system_check_spec.rb'
+ - 'spec/lib/uploaded_file_spec.rb'
+ - 'spec/mailers/devise_mailer_spec.rb'
+ - 'spec/mailers/emails/admin_notification_spec.rb'
+ - 'spec/mailers/emails/auto_devops_spec.rb'
+ - 'spec/mailers/emails/groups_spec.rb'
+ - 'spec/mailers/emails/imports_spec.rb'
+ - 'spec/mailers/emails/issues_spec.rb'
+ - 'spec/mailers/emails/merge_requests_spec.rb'
+ - 'spec/mailers/emails/service_desk_spec.rb'
+ - 'spec/mailers/notify_spec.rb'
+ - 'spec/metrics_server/metrics_server_spec.rb'
+ - 'spec/migrations/20221028022627_add_index_on_password_last_changed_at_to_user_details_spec.rb'
+ - 'spec/migrations/20221101032600_add_text_limit_to_default_preferred_language_on_application_settings_spec.rb'
+ - 'spec/migrations/20221210154044_update_active_billable_users_index_spec.rb'
+ - 'spec/migrations/20221221110733_remove_temp_index_for_project_statistics_upload_size_migration_spec.rb'
+ - 'spec/migrations/20230714015909_add_index_for_member_expiring_query_spec.rb'
+ - 'spec/migrations/drop_packages_events_table_spec.rb'
+ - 'spec/models/ability_spec.rb'
+ - 'spec/models/abuse/trust_score_spec.rb'
+ - 'spec/models/abuse_report_spec.rb'
+ - 'spec/models/active_session_spec.rb'
+ - 'spec/models/ai/service_access_token_spec.rb'
+ - 'spec/models/alert_management/alert_spec.rb'
+ - 'spec/models/alerting/project_alerting_setting_spec.rb'
+ - 'spec/models/analytics/usage_trends/measurement_spec.rb'
+ - 'spec/models/application_setting_spec.rb'
+ - 'spec/models/audit_event_spec.rb'
+ - 'spec/models/aws/role_spec.rb'
+ - 'spec/models/blob_spec.rb'
+ - 'spec/models/blob_viewer/changelog_spec.rb'
+ - 'spec/models/blob_viewer/composer_json_spec.rb'
+ - 'spec/models/blob_viewer/gemspec_spec.rb'
+ - 'spec/models/blob_viewer/go_mod_spec.rb'
+ - 'spec/models/blob_viewer/license_spec.rb'
+ - 'spec/models/blob_viewer/markup_spec.rb'
+ - 'spec/models/blob_viewer/package_json_spec.rb'
+ - 'spec/models/blob_viewer/podspec_json_spec.rb'
+ - 'spec/models/blob_viewer/podspec_spec.rb'
+ - 'spec/models/blob_viewer/readme_spec.rb'
+ - 'spec/models/blob_viewer/route_map_spec.rb'
+ - 'spec/models/blob_viewer/server_side_spec.rb'
+ - 'spec/models/bulk_imports/entity_spec.rb'
+ - 'spec/models/bulk_imports/export_status_spec.rb'
+ - 'spec/models/bulk_imports/export_upload_spec.rb'
+ - 'spec/models/bulk_imports/file_transfer/group_config_spec.rb'
+ - 'spec/models/bulk_imports/file_transfer/project_config_spec.rb'
+ - 'spec/models/chat_name_spec.rb'
+ - 'spec/models/ci/bridge_spec.rb'
+ - 'spec/models/ci/build_dependencies_spec.rb'
+ - 'spec/models/ci/build_metadata_spec.rb'
+ - 'spec/models/ci/build_runner_session_spec.rb'
+ - 'spec/models/ci/build_spec.rb'
+ - 'spec/models/ci/build_trace_chunk_spec.rb'
+ - 'spec/models/ci/build_trace_chunks/database_spec.rb'
+ - 'spec/models/ci/build_trace_chunks/fog_spec.rb'
+ - 'spec/models/ci/build_trace_spec.rb'
+ - 'spec/models/ci/daily_build_group_report_result_spec.rb'
+ - 'spec/models/ci/external_pull_request_spec.rb'
+ - 'spec/models/ci/group_spec.rb'
+ - 'spec/models/ci/group_variable_spec.rb'
+ - 'spec/models/ci/job_annotation_spec.rb'
+ - 'spec/models/ci/job_artifact_spec.rb'
+ - 'spec/models/ci/job_token/allowlist_spec.rb'
+ - 'spec/models/ci/job_token/project_scope_link_spec.rb'
+ - 'spec/models/ci/job_token/scope_spec.rb'
+ - 'spec/models/ci/pending_build_spec.rb'
+ - 'spec/models/ci/persistent_ref_spec.rb'
+ - 'spec/models/ci/pipeline_artifact_spec.rb'
+ - 'spec/models/ci/pipeline_message_spec.rb'
+ - 'spec/models/ci/pipeline_schedule_spec.rb'
+ - 'spec/models/ci/pipeline_spec.rb'
+ - 'spec/models/ci/processable_spec.rb'
+ - 'spec/models/ci/ref_spec.rb'
+ - 'spec/models/ci/resource_group_spec.rb'
+ - 'spec/models/ci/runner_spec.rb'
+ - 'spec/models/ci/secure_file_spec.rb'
+ - 'spec/models/ci/stage_spec.rb'
+ - 'spec/models/ci/variable_spec.rb'
+ - 'spec/models/clusters/agent_spec.rb'
+ - 'spec/models/clusters/agents/authorizations/ci_access/implicit_authorization_spec.rb'
+ - 'spec/models/clusters/agents/authorizations/user_access/group_authorization_spec.rb'
+ - 'spec/models/clusters/agents/authorizations/user_access/project_authorization_spec.rb'
+ - 'spec/models/clusters/cluster_spec.rb'
+ - 'spec/models/clusters/platforms/kubernetes_spec.rb'
+ - 'spec/models/clusters/providers/aws_spec.rb'
+ - 'spec/models/commit_collection_spec.rb'
+ - 'spec/models/commit_status_spec.rb'
+ - 'spec/models/compare_spec.rb'
+ - 'spec/models/concerns/approvable_spec.rb'
+ - 'spec/models/concerns/as_cte_spec.rb'
+ - 'spec/models/concerns/atomic_internal_id_spec.rb'
+ - 'spec/models/concerns/checksummable_spec.rb'
+ - 'spec/models/concerns/chronic_duration_attribute_spec.rb'
+ - 'spec/models/concerns/ci/has_variable_spec.rb'
+ - 'spec/models/concerns/ci/maskable_spec.rb'
+ - 'spec/models/concerns/ci/partitionable_spec.rb'
+ - 'spec/models/concerns/clusters/agents/authorizations/user_access/scopes_spec.rb'
+ - 'spec/models/concerns/deployment_platform_spec.rb'
+ - 'spec/models/concerns/discussion_on_diff_spec.rb'
+ - 'spec/models/concerns/exportable_spec.rb'
+ - 'spec/models/concerns/featurable_spec.rb'
+ - 'spec/models/concerns/from_set_operator_spec.rb'
+ - 'spec/models/concerns/has_environment_scope_spec.rb'
+ - 'spec/models/concerns/ignorable_columns_spec.rb'
+ - 'spec/models/concerns/issuable_spec.rb'
+ - 'spec/models/concerns/mentionable_spec.rb'
+ - 'spec/models/concerns/noteable_spec.rb'
+ - 'spec/models/concerns/packages/downloadable_spec.rb'
+ - 'spec/models/concerns/partitioned_table_spec.rb'
+ - 'spec/models/concerns/reactive_caching_spec.rb'
+ - 'spec/models/concerns/recoverable_by_any_email_spec.rb'
+ - 'spec/models/concerns/redis_cacheable_spec.rb'
+ - 'spec/models/concerns/require_email_verification_spec.rb'
+ - 'spec/models/concerns/resolvable_discussion_spec.rb'
+ - 'spec/models/concerns/resolvable_note_spec.rb'
+ - 'spec/models/concerns/runners_token_prefixable_spec.rb'
+ - 'spec/models/concerns/spammable_spec.rb'
+ - 'spec/models/concerns/stepable_spec.rb'
+ - 'spec/models/concerns/subquery_spec.rb'
+ - 'spec/models/concerns/token_authenticatable_spec.rb'
+ - 'spec/models/concerns/token_authenticatable_strategies/encrypted_spec.rb'
+ - 'spec/models/container_expiration_policy_spec.rb'
+ - 'spec/models/container_registry/event_spec.rb'
+ - 'spec/models/container_repository_spec.rb'
+ - 'spec/models/context_commits_diff_spec.rb'
+ - 'spec/models/customer_relations/issue_contact_spec.rb'
+ - 'spec/models/cycle_analytics/project_level_stage_adapter_spec.rb'
+ - 'spec/models/deploy_key_spec.rb'
+ - 'spec/models/deploy_keys_project_spec.rb'
+ - 'spec/models/deploy_token_spec.rb'
+ - 'spec/models/deployment_spec.rb'
+ - 'spec/models/design_management/action_spec.rb'
+ - 'spec/models/design_management/design_action_spec.rb'
+ - 'spec/models/design_management/design_at_version_spec.rb'
+ - 'spec/models/design_management/repository_spec.rb'
+ - 'spec/models/design_management/version_spec.rb'
+ - 'spec/models/diff_discussion_spec.rb'
+ - 'spec/models/diff_note_spec.rb'
+ - 'spec/models/diff_viewer/server_side_spec.rb'
+ - 'spec/models/discussion_spec.rb'
+ - 'spec/models/environment_spec.rb'
+ - 'spec/models/environment_status_spec.rb'
+ - 'spec/models/error_tracking/client_key_spec.rb'
+ - 'spec/models/error_tracking/error_spec.rb'
+ - 'spec/models/error_tracking/project_error_tracking_setting_spec.rb'
+ - 'spec/models/event_collection_spec.rb'
+ - 'spec/models/group_deploy_key_spec.rb'
+ - 'spec/models/group_spec.rb'
+ - 'spec/models/hooks/web_hook_log_spec.rb'
+ - 'spec/models/hooks/web_hook_spec.rb'
+ - 'spec/models/import_export_upload_spec.rb'
+ - 'spec/models/import_failure_spec.rb'
+ - 'spec/models/incident_management/project_incident_management_setting_spec.rb'
+ - 'spec/models/instance_configuration_spec.rb'
+ - 'spec/models/instance_metadata/kas_spec.rb'
+ - 'spec/models/instance_metadata_spec.rb'
+ - 'spec/models/integration_spec.rb'
+ - 'spec/models/integrations/apple_app_store_spec.rb'
+ - 'spec/models/integrations/asana_spec.rb'
+ - 'spec/models/integrations/assembla_spec.rb'
+ - 'spec/models/integrations/bamboo_spec.rb'
+ - 'spec/models/integrations/base_chat_notification_spec.rb'
+ - 'spec/models/integrations/base_issue_tracker_spec.rb'
+ - 'spec/models/integrations/base_third_party_wiki_spec.rb'
+ - 'spec/models/integrations/bugzilla_spec.rb'
+ - 'spec/models/integrations/buildkite_spec.rb'
+ - 'spec/models/integrations/campfire_spec.rb'
+ - 'spec/models/integrations/chat_message/alert_message_spec.rb'
+ - 'spec/models/integrations/chat_message/deployment_message_spec.rb'
+ - 'spec/models/integrations/chat_message/group_mention_message_spec.rb'
+ - 'spec/models/integrations/chat_message/issue_message_spec.rb'
+ - 'spec/models/integrations/chat_message/merge_message_spec.rb'
+ - 'spec/models/integrations/chat_message/note_message_spec.rb'
+ - 'spec/models/integrations/chat_message/pipeline_message_spec.rb'
+ - 'spec/models/integrations/chat_message/push_message_spec.rb'
+ - 'spec/models/integrations/chat_message/wiki_page_message_spec.rb'
+ - 'spec/models/integrations/clickup_spec.rb'
+ - 'spec/models/integrations/confluence_spec.rb'
+ - 'spec/models/integrations/custom_issue_tracker_spec.rb'
+ - 'spec/models/integrations/discord_spec.rb'
+ - 'spec/models/integrations/drone_ci_spec.rb'
+ - 'spec/models/integrations/emails_on_push_spec.rb'
+ - 'spec/models/integrations/ewm_spec.rb'
+ - 'spec/models/integrations/external_wiki_spec.rb'
+ - 'spec/models/integrations/gitlab_slack_application_spec.rb'
+ - 'spec/models/integrations/google_play_spec.rb'
+ - 'spec/models/integrations/integration_list_spec.rb'
+ - 'spec/models/integrations/irker_spec.rb'
+ - 'spec/models/integrations/jenkins_spec.rb'
+ - 'spec/models/integrations/jira_spec.rb'
+ - 'spec/models/integrations/mattermost_slash_commands_spec.rb'
+ - 'spec/models/integrations/pipelines_email_spec.rb'
+ - 'spec/models/integrations/pivotaltracker_spec.rb'
+ - 'spec/models/integrations/pushover_spec.rb'
+ - 'spec/models/integrations/redmine_spec.rb'
+ - 'spec/models/integrations/shimo_spec.rb'
+ - 'spec/models/integrations/squash_tm_spec.rb'
+ - 'spec/models/integrations/teamcity_spec.rb'
+ - 'spec/models/integrations/telegram_spec.rb'
+ - 'spec/models/integrations/youtrack_spec.rb'
+ - 'spec/models/integrations/zentao_spec.rb'
+ - 'spec/models/internal_id_spec.rb'
+ - 'spec/models/issue/metrics_spec.rb'
+ - 'spec/models/issue_email_participant_spec.rb'
+ - 'spec/models/issue_spec.rb'
+ - 'spec/models/jira_connect_installation_spec.rb'
+ - 'spec/models/jira_import_state_spec.rb'
+ - 'spec/models/label_priority_spec.rb'
+ - 'spec/models/legacy_diff_discussion_spec.rb'
+ - 'spec/models/lfs_download_object_spec.rb'
+ - 'spec/models/lfs_object_spec.rb'
+ - 'spec/models/lfs_objects_project_spec.rb'
+ - 'spec/models/loose_foreign_keys/modification_tracker_spec.rb'
+ - 'spec/models/member_spec.rb'
+ - 'spec/models/merge_request_diff_commit_spec.rb'
+ - 'spec/models/merge_request_diff_spec.rb'
+ - 'spec/models/merge_request_spec.rb'
+ - 'spec/models/milestone_note_spec.rb'
+ - 'spec/models/milestone_release_spec.rb'
+ - 'spec/models/milestone_spec.rb'
+ - 'spec/models/ml/candidate_metric_spec.rb'
+ - 'spec/models/ml/candidate_spec.rb'
+ - 'spec/models/ml/experiment_spec.rb'
+ - 'spec/models/ml/model_spec.rb'
+ - 'spec/models/namespace/package_setting_spec.rb'
+ - 'spec/models/namespace/traversal_hierarchy_spec.rb'
+ - 'spec/models/namespace_setting_spec.rb'
+ - 'spec/models/namespace_spec.rb'
+ - 'spec/models/note_spec.rb'
+ - 'spec/models/notification_recipient_spec.rb'
+ - 'spec/models/notification_setting_spec.rb'
+ - 'spec/models/operations/feature_flag_spec.rb'
+ - 'spec/models/operations/feature_flags_client_spec.rb'
+ - 'spec/models/packages/dependency_link_spec.rb'
+ - 'spec/models/packages/dependency_spec.rb'
+ - 'spec/models/packages/npm/metadata_cache_spec.rb'
+ - 'spec/models/packages/nuget/metadatum_spec.rb'
+ - 'spec/models/packages/package_file_spec.rb'
+ - 'spec/models/packages/package_spec.rb'
+ - 'spec/models/packages/rpm/repository_file_spec.rb'
+ - 'spec/models/pages_domain_spec.rb'
+ - 'spec/models/personal_access_token_spec.rb'
+ - 'spec/models/plan_limits_spec.rb'
+ - 'spec/models/project_authorization_spec.rb'
+ - 'spec/models/project_ci_cd_setting_spec.rb'
+ - 'spec/models/project_feature_spec.rb'
+ - 'spec/models/project_import_state_spec.rb'
+ - 'spec/models/project_label_spec.rb'
+ - 'spec/models/project_setting_spec.rb'
+ - 'spec/models/project_spec.rb'
+ - 'spec/models/project_wiki_spec.rb'
+ - 'spec/models/projects/branch_rule_spec.rb'
+ - 'spec/models/projects/data_transfer_spec.rb'
+ - 'spec/models/projects/import_export/relation_export_spec.rb'
+ - 'spec/models/projects/import_export/relation_export_upload_spec.rb'
+ - 'spec/models/projects/project_topic_spec.rb'
+ - 'spec/models/projects/topic_spec.rb'
+ - 'spec/models/prometheus_alert_event_spec.rb'
+ - 'spec/models/prometheus_alert_spec.rb'
+ - 'spec/models/prometheus_metric_spec.rb'
+ - 'spec/models/protected_branch_spec.rb'
+ - 'spec/models/release_highlight_spec.rb'
+ - 'spec/models/releases/source_spec.rb'
+ - 'spec/models/remote_mirror_spec.rb'
+ - 'spec/models/repository_spec.rb'
+ - 'spec/models/resource_label_event_spec.rb'
+ - 'spec/models/resource_state_event_spec.rb'
+ - 'spec/models/sent_notification_spec.rb'
+ - 'spec/models/service_desk/custom_email_credential_spec.rb'
+ - 'spec/models/service_desk/custom_email_verification_spec.rb'
+ - 'spec/models/snippet_blob_spec.rb'
+ - 'spec/models/snippet_input_action_collection_spec.rb'
+ - 'spec/models/snippet_input_action_spec.rb'
+ - 'spec/models/snippet_spec.rb'
+ - 'spec/models/snippet_statistics_spec.rb'
+ - 'spec/models/state_note_spec.rb'
+ - 'spec/models/subscription_spec.rb'
+ - 'spec/models/suggestion_spec.rb'
+ - 'spec/models/system/broadcast_message_spec.rb'
+ - 'spec/models/terraform/state_spec.rb'
+ - 'spec/models/terraform/state_version_spec.rb'
+ - 'spec/models/timelog_spec.rb'
+ - 'spec/models/todo_spec.rb'
+ - 'spec/models/tree_spec.rb'
+ - 'spec/models/upload_spec.rb'
+ - 'spec/models/uploads/fog_spec.rb'
+ - 'spec/models/uploads/local_spec.rb'
+ - 'spec/models/user_custom_attribute_spec.rb'
+ - 'spec/models/user_interacted_project_spec.rb'
+ - 'spec/models/user_spec.rb'
+ - 'spec/models/user_status_spec.rb'
+ - 'spec/models/users/credit_card_validation_spec.rb'
+ - 'spec/models/users/merge_request_interaction_spec.rb'
+ - 'spec/models/users/namespace_commit_email_spec.rb'
+ - 'spec/models/web_ide_terminal_spec.rb'
+ - 'spec/models/wiki_page/meta_spec.rb'
+ - 'spec/models/wiki_page_spec.rb'
+ - 'spec/models/work_items/type_spec.rb'
+ - 'spec/models/x509_certificate_spec.rb'
+ - 'spec/models/zoom_meeting_spec.rb'
+ - 'spec/policies/concerns/policy_actor_spec.rb'
+ - 'spec/policies/group_deploy_keys_group_policy_spec.rb'
+ - 'spec/policies/project_policy_spec.rb'
+ - 'spec/presenters/blobs/unfold_presenter_spec.rb'
+ - 'spec/presenters/ci/build_presenter_spec.rb'
+ - 'spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb'
+ - 'spec/presenters/ci/pipeline_presenter_spec.rb'
+ - 'spec/presenters/ci/trigger_presenter_spec.rb'
+ - 'spec/presenters/clusterable_presenter_spec.rb'
+ - 'spec/presenters/commit_presenter_spec.rb'
+ - 'spec/presenters/commit_status_presenter_spec.rb'
+ - 'spec/presenters/deploy_key_presenter_spec.rb'
+ - 'spec/presenters/dev_ops_report/metric_presenter_spec.rb'
+ - 'spec/presenters/gitlab/blame_presenter_spec.rb'
+ - 'spec/presenters/issue_presenter_spec.rb'
+ - 'spec/presenters/key_presenter_spec.rb'
+ - 'spec/presenters/merge_request_presenter_spec.rb'
+ - 'spec/presenters/ml/candidate_details_presenter_spec.rb'
+ - 'spec/presenters/ml/candidates_csv_presenter_spec.rb'
+ - 'spec/presenters/packages/composer/packages_presenter_spec.rb'
+ - 'spec/presenters/packages/helm/index_presenter_spec.rb'
+ - 'spec/presenters/packages/nuget/package_metadata_presenter_spec.rb'
+ - 'spec/presenters/packages/nuget/packages_metadata_presenter_spec.rb'
+ - 'spec/presenters/projects/import_export/project_export_presenter_spec.rb'
+ - 'spec/presenters/projects/security/configuration_presenter_spec.rb'
+ - 'spec/presenters/sentry_error_presenter_spec.rb'
+ - 'spec/presenters/snippet_blob_presenter_spec.rb'
+ - 'spec/presenters/snippet_presenter_spec.rb'
+ - 'spec/presenters/terraform/modules_presenter_spec.rb'
+ - 'spec/requests/abuse_reports_controller_spec.rb'
+ - 'spec/requests/admin/abuse_reports_controller_spec.rb'
+ - 'spec/requests/admin/projects_controller_spec.rb'
+ - 'spec/requests/api/alert_management_alerts_spec.rb'
+ - 'spec/requests/api/api_spec.rb'
+ - 'spec/requests/api/ci/job_artifacts_spec.rb'
+ - 'spec/requests/api/ci/jobs_spec.rb'
+ - 'spec/requests/api/ci/pipelines_spec.rb'
+ - 'spec/requests/api/ci/resource_groups_spec.rb'
+ - 'spec/requests/api/ci/runner/jobs_artifacts_spec.rb'
+ - 'spec/requests/api/ci/runner/runners_delete_spec.rb'
+ - 'spec/requests/api/ci/runners_reset_registration_token_spec.rb'
+ - 'spec/requests/api/commit_statuses_spec.rb'
+ - 'spec/requests/api/commits_spec.rb'
+ - 'spec/requests/api/composer_packages_spec.rb'
+ - 'spec/requests/api/container_repositories_spec.rb'
+ - 'spec/requests/api/deploy_keys_spec.rb'
+ - 'spec/requests/api/deploy_tokens_spec.rb'
+ - 'spec/requests/api/deployments_spec.rb'
+ - 'spec/requests/api/feature_flags_spec.rb'
+ - 'spec/requests/api/freeze_periods_spec.rb'
+ - 'spec/requests/api/geo_spec.rb'
+ - 'spec/requests/api/graphql/container_repository/container_repository_details_spec.rb'
+ - 'spec/requests/api/graphql/environments/deployments_spec.rb'
+ - 'spec/requests/api/graphql/gitlab_schema_spec.rb'
+ - 'spec/requests/api/graphql/group/container_repositories_spec.rb'
+ - 'spec/requests/api/graphql/group/data_transfer_spec.rb'
+ - 'spec/requests/api/graphql/group/dependency_proxy_blobs_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/group/timelogs_spec.rb'
+ - 'spec/requests/api/graphql/groups_query_spec.rb'
+ - 'spec/requests/api/graphql/mutations/achievements/award_spec.rb'
+ - 'spec/requests/api/graphql/mutations/achievements/create_spec.rb'
+ - 'spec/requests/api/graphql/mutations/achievements/delete_spec.rb'
+ - 'spec/requests/api/graphql/mutations/achievements/delete_user_achievement_spec.rb'
+ - 'spec/requests/api/graphql/mutations/achievements/revoke_spec.rb'
+ - 'spec/requests/api/graphql/mutations/achievements/update_spec.rb'
+ - 'spec/requests/api/graphql/mutations/achievements/update_user_achievement_priorities_spec.rb'
+ - 'spec/requests/api/graphql/mutations/admin/abuse_report_labels/create_spec.rb'
+ - 'spec/requests/api/graphql/mutations/boards/destroy_spec.rb'
+ - 'spec/requests/api/graphql/mutations/ci/pipeline_trigger/create_spec.rb'
+ - 'spec/requests/api/graphql/mutations/ci/pipeline_trigger/delete_spec.rb'
+ - 'spec/requests/api/graphql/mutations/ci/pipeline_trigger/update_spec.rb'
+ - 'spec/requests/api/graphql/mutations/ci/runners_registration_token/reset_spec.rb'
+ - 'spec/requests/api/graphql/mutations/container_registry/protection/rule/create_spec.rb'
+ - 'spec/requests/api/graphql/mutations/container_repository/destroy_tags_spec.rb'
+ - 'spec/requests/api/graphql/mutations/dependency_proxy/group_settings/update_spec.rb'
+ - 'spec/requests/api/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb'
+ - 'spec/requests/api/graphql/mutations/labels/create_spec.rb'
+ - 'spec/requests/api/graphql/mutations/packages/protection/rule/create_spec.rb'
+ - 'spec/requests/api/graphql/mutations/packages/protection/rule/delete_spec.rb'
+ - 'spec/requests/api/graphql/mutations/snippets/create_spec.rb'
+ - 'spec/requests/api/graphql/mutations/snippets/update_spec.rb'
+ - 'spec/requests/api/graphql/namespace/package_settings_spec.rb'
+ - 'spec/requests/api/graphql/namespace_query_spec.rb'
+ - 'spec/requests/api/graphql/packages/composer_spec.rb'
+ - 'spec/requests/api/graphql/packages/conan_spec.rb'
+ - 'spec/requests/api/graphql/packages/helm_spec.rb'
+ - 'spec/requests/api/graphql/packages/maven_spec.rb'
+ - 'spec/requests/api/graphql/packages/nuget_spec.rb'
+ - 'spec/requests/api/graphql/packages/package_spec.rb'
+ - 'spec/requests/api/graphql/packages/pypi_spec.rb'
+ - 'spec/requests/api/graphql/project/ci_access_authorized_agents_spec.rb'
+ - 'spec/requests/api/graphql/project/container_repositories_spec.rb'
+ - 'spec/requests/api/graphql/project/data_transfer_spec.rb'
+ - 'spec/requests/api/graphql/project/deployment_spec.rb'
+ - 'spec/requests/api/graphql/project/environments_spec.rb'
+ - 'spec/requests/api/graphql/project/packages_cleanup_policy_spec.rb'
+ - 'spec/requests/api/graphql/project/packages_protection_rules_spec.rb'
+ - 'spec/requests/api/graphql/project/user_access_authorized_agents_spec.rb'
+ - 'spec/requests/api/graphql_spec.rb'
+ - 'spec/requests/api/group_container_repositories_spec.rb'
+ - 'spec/requests/api/group_import_spec.rb'
+ - 'spec/requests/api/group_packages_spec.rb'
+ - 'spec/requests/api/groups_spec.rb'
+ - 'spec/requests/api/helpers_spec.rb'
+ - 'spec/requests/api/integrations/slack/events_spec.rb'
+ - 'spec/requests/api/integrations/slack/interactions_spec.rb'
+ - 'spec/requests/api/internal/base_spec.rb'
+ - 'spec/requests/api/internal/container_registry/migration_spec.rb'
+ - 'spec/requests/api/internal/workhorse_spec.rb'
+ - 'spec/requests/api/maven_packages_spec.rb'
+ - 'spec/requests/api/notes_spec.rb'
+ - 'spec/requests/api/npm_project_packages_spec.rb'
+ - 'spec/requests/api/project_container_repositories_spec.rb'
+ - 'spec/requests/api/project_import_spec.rb'
+ - 'spec/requests/api/project_job_token_scope_spec.rb'
+ - 'spec/requests/api/project_packages_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/terraform/modules/v1/packages_spec.rb'
+ - 'spec/requests/groups/settings/access_tokens_controller_spec.rb'
+ - 'spec/requests/health_controller_spec.rb'
+ - 'spec/requests/ide_controller_spec.rb'
+ - 'spec/requests/import/gitlab_projects_controller_spec.rb'
+ - 'spec/requests/lfs_http_spec.rb'
+ - 'spec/requests/projects/cluster_agents_controller_spec.rb'
+ - 'spec/requests/projects/google_cloud/databases_controller_spec.rb'
+ - 'spec/requests/projects/incidents_controller_spec.rb'
+ - 'spec/requests/projects/issue_links_controller_spec.rb'
+ - 'spec/requests/projects/merge_requests/diffs_spec.rb'
+ - 'spec/requests/projects/network_controller_spec.rb'
+ - 'spec/requests/projects/packages/package_files_controller_spec.rb'
+ - 'spec/requests/projects/redirect_controller_spec.rb'
+ - 'spec/requests/projects/releases_controller_spec.rb'
+ - 'spec/requests/projects/settings/access_tokens_controller_spec.rb'
+ - 'spec/requests/projects/settings/packages_and_registries_controller_spec.rb'
+ - 'spec/requests/terraform/services_controller_spec.rb'
+ - 'spec/requests/time_tracking/timelogs_controller_spec.rb'
+ - 'spec/requests/users/group_callouts_spec.rb'
+ - 'spec/requests/users/namespace_visits_controller_spec.rb'
+ - 'spec/requests/users/project_callouts_spec.rb'
+ - 'spec/requests/users_controller_spec.rb'
+ - 'spec/rubocop/check_graceful_task_spec.rb'
+ - 'spec/rubocop/cop/rake/require_spec.rb'
+ - 'spec/rubocop/todo_dir_spec.rb'
+ - 'spec/scripts/api/commit_merge_requests_spec.rb'
+ - 'spec/scripts/api/create_merge_request_discussion_spec.rb'
+ - 'spec/scripts/api/create_merge_request_note_spec.rb'
+ - 'spec/scripts/api/get_package_and_test_job_spec.rb'
+ - 'spec/scripts/failed_tests_spec.rb'
+ - 'spec/scripts/generate_failed_package_and_test_mr_message_spec.rb'
+ - 'spec/scripts/generate_message_to_run_e2e_pipeline_spec.rb'
+ - 'spec/scripts/generate_rspec_pipeline_spec.rb'
+ - 'spec/scripts/lib/glfm/parse_examples_spec.rb'
+ - 'spec/scripts/lib/glfm/update_example_snapshots_spec.rb'
+ - 'spec/scripts/lib/glfm/update_specification_spec.rb'
+ - 'spec/scripts/lib/glfm/verify_all_generated_files_are_up_to_date_spec.rb'
+ - 'spec/scripts/pipeline/average_reports_spec.rb'
+ - 'spec/scripts/pipeline_test_report_builder_spec.rb'
+ - 'spec/scripts/review_apps/automated_cleanup_spec.rb'
+ - 'spec/scripts/setup/find_jh_branch_spec.rb'
+ - 'spec/scripts/trigger-build_spec.rb'
+ - 'spec/serializers/accessibility_error_entity_spec.rb'
+ - 'spec/serializers/accessibility_reports_comparer_entity_spec.rb'
+ - 'spec/serializers/accessibility_reports_comparer_serializer_spec.rb'
+ - 'spec/serializers/activity_pub/activity_streams_serializer_spec.rb'
+ - 'spec/serializers/activity_pub/project_entity_spec.rb'
+ - 'spec/serializers/activity_pub/release_entity_spec.rb'
+ - 'spec/serializers/activity_pub/releases_actor_entity_spec.rb'
+ - 'spec/serializers/activity_pub/releases_actor_serializer_spec.rb'
+ - 'spec/serializers/activity_pub/releases_outbox_serializer_spec.rb'
+ - 'spec/serializers/activity_pub/user_entity_spec.rb'
+ - 'spec/serializers/admin/abuse_report_serializer_spec.rb'
+ - 'spec/serializers/analytics_build_entity_spec.rb'
+ - 'spec/serializers/analytics_build_serializer_spec.rb'
+ - 'spec/serializers/analytics_issue_entity_spec.rb'
+ - 'spec/serializers/analytics_issue_serializer_spec.rb'
+ - 'spec/serializers/analytics_merge_request_serializer_spec.rb'
+ - 'spec/serializers/analytics_summary_serializer_spec.rb'
+ - 'spec/serializers/base_discussion_entity_spec.rb'
+ - 'spec/serializers/blob_entity_spec.rb'
+ - 'spec/serializers/build_action_entity_spec.rb'
+ - 'spec/serializers/build_artifact_entity_spec.rb'
+ - 'spec/serializers/build_details_entity_spec.rb'
+ - 'spec/serializers/build_trace_entity_spec.rb'
+ - 'spec/serializers/ci/codequality_mr_diff_report_serializer_spec.rb'
+ - 'spec/serializers/ci/dag_job_entity_spec.rb'
+ - 'spec/serializers/ci/dag_job_group_entity_spec.rb'
+ - 'spec/serializers/ci/dag_pipeline_entity_spec.rb'
+ - 'spec/serializers/ci/dag_pipeline_serializer_spec.rb'
+ - 'spec/serializers/ci/dag_stage_entity_spec.rb'
+ - 'spec/serializers/ci/downloadable_artifact_entity_spec.rb'
+ - 'spec/serializers/ci/downloadable_artifact_serializer_spec.rb'
+ - 'spec/serializers/ci/group_variable_entity_spec.rb'
+ - 'spec/serializers/ci/job_annotation_entity_spec.rb'
+ - 'spec/serializers/ci/job_entity_spec.rb'
+ - 'spec/serializers/ci/job_serializer_spec.rb'
+ - 'spec/serializers/ci/pipeline_entity_spec.rb'
+ - 'spec/serializers/ci/variable_entity_spec.rb'
+ - 'spec/serializers/cluster_entity_spec.rb'
+ - 'spec/serializers/codequality_degradation_entity_spec.rb'
+ - 'spec/serializers/codequality_reports_comparer_entity_spec.rb'
+ - 'spec/serializers/codequality_reports_comparer_serializer_spec.rb'
+ - 'spec/serializers/commit_entity_spec.rb'
+ - 'spec/serializers/container_repositories_serializer_spec.rb'
+ - 'spec/serializers/container_repository_entity_spec.rb'
+ - 'spec/serializers/container_tag_entity_spec.rb'
+ - 'spec/serializers/context_commits_diff_entity_spec.rb'
+ - 'spec/serializers/deployment_cluster_entity_spec.rb'
+ - 'spec/serializers/deployment_entity_spec.rb'
+ - 'spec/serializers/detailed_status_entity_spec.rb'
+ - 'spec/serializers/diff_file_entity_spec.rb'
+ - 'spec/serializers/diff_file_metadata_entity_spec.rb'
+ - 'spec/serializers/diff_line_entity_spec.rb'
+ - 'spec/serializers/diff_line_serializer_spec.rb'
+ - 'spec/serializers/diff_viewer_entity_spec.rb'
+ - 'spec/serializers/diffs_entity_spec.rb'
+ - 'spec/serializers/diffs_metadata_entity_spec.rb'
+ - 'spec/serializers/discussion_diff_file_entity_spec.rb'
+ - 'spec/serializers/discussion_entity_spec.rb'
+ - 'spec/serializers/entity_request_spec.rb'
+ - 'spec/serializers/environment_entity_spec.rb'
+ - 'spec/serializers/environment_serializer_spec.rb'
+ - 'spec/serializers/environment_status_entity_spec.rb'
+ - 'spec/serializers/evidences/evidence_entity_spec.rb'
+ - 'spec/serializers/evidences/issue_entity_spec.rb'
+ - 'spec/serializers/evidences/milestone_entity_spec.rb'
+ - 'spec/serializers/evidences/project_entity_spec.rb'
+ - 'spec/serializers/evidences/release_entity_spec.rb'
+ - 'spec/serializers/feature_flag_entity_spec.rb'
+ - 'spec/serializers/feature_flag_summary_entity_spec.rb'
+ - 'spec/serializers/feature_flag_summary_serializer_spec.rb'
+ - 'spec/serializers/feature_flags_client_serializer_spec.rb'
+ - 'spec/serializers/group_issuable_autocomplete_entity_spec.rb'
+ - 'spec/serializers/import/bulk_import_entity_spec.rb'
+ - 'spec/serializers/import/github_org_entity_spec.rb'
+ - 'spec/serializers/import/github_org_serializer_spec.rb'
+ - 'spec/serializers/integrations/event_entity_spec.rb'
+ - 'spec/serializers/integrations/field_entity_spec.rb'
+ - 'spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb'
+ - 'spec/serializers/integrations/harbor_serializers/repository_entity_spec.rb'
+ - 'spec/serializers/integrations/harbor_serializers/tag_entity_spec.rb'
+ - 'spec/serializers/integrations/project_entity_spec.rb'
+ - 'spec/serializers/issuable_sidebar_extras_entity_spec.rb'
+ - 'spec/serializers/issue_board_entity_spec.rb'
+ - 'spec/serializers/issue_entity_spec.rb'
+ - 'spec/serializers/jira_connect/group_entity_spec.rb'
+ - 'spec/serializers/jira_connect/subscription_entity_spec.rb'
+ - 'spec/serializers/job_artifact_report_entity_spec.rb'
+ - 'spec/serializers/label_serializer_spec.rb'
+ - 'spec/serializers/lfs_file_lock_entity_spec.rb'
+ - 'spec/serializers/merge_request_basic_entity_spec.rb'
+ - 'spec/serializers/merge_request_current_user_entity_spec.rb'
+ - 'spec/serializers/merge_request_diff_entity_spec.rb'
+ - 'spec/serializers/merge_request_for_pipeline_entity_spec.rb'
+ - 'spec/serializers/merge_request_metrics_helper_spec.rb'
+ - 'spec/serializers/merge_request_poll_cached_widget_entity_spec.rb'
+ - 'spec/serializers/merge_request_poll_widget_entity_spec.rb'
+ - 'spec/serializers/merge_request_user_entity_spec.rb'
+ - 'spec/serializers/merge_request_widget_commit_entity_spec.rb'
+ - 'spec/serializers/merge_request_widget_entity_spec.rb'
+ - 'spec/serializers/merge_requests/pipeline_entity_spec.rb'
+ - 'spec/serializers/move_to_project_entity_spec.rb'
+ - 'spec/serializers/namespace_basic_entity_spec.rb'
+ - 'spec/serializers/paginated_diff_entity_spec.rb'
+ - 'spec/serializers/pipeline_details_entity_spec.rb'
+ - 'spec/serializers/pipeline_serializer_spec.rb'
+ - 'spec/serializers/profile/event_entity_spec.rb'
+ - 'spec/serializers/project_import_entity_spec.rb'
+ - 'spec/serializers/project_note_entity_spec.rb'
+ - 'spec/serializers/project_serializer_spec.rb'
+ - 'spec/serializers/release_serializer_spec.rb'
+ - 'spec/serializers/remote_mirror_entity_spec.rb'
+ - 'spec/serializers/request_aware_entity_spec.rb'
+ - 'spec/serializers/review_app_setup_entity_spec.rb'
+ - 'spec/serializers/runner_entity_spec.rb'
+ - 'spec/serializers/serverless/domain_entity_spec.rb'
+ - 'spec/serializers/stage_entity_spec.rb'
+ - 'spec/serializers/stage_serializer_spec.rb'
+ - 'spec/serializers/suggestion_entity_spec.rb'
+ - 'spec/serializers/test_case_entity_spec.rb'
+ - 'spec/serializers/test_reports_comparer_entity_spec.rb'
+ - 'spec/serializers/test_reports_comparer_serializer_spec.rb'
+ - 'spec/serializers/test_suite_comparer_entity_spec.rb'
+ - 'spec/serializers/test_suite_entity_spec.rb'
+ - 'spec/serializers/trigger_variable_entity_spec.rb'
+ - 'spec/serializers/user_entity_spec.rb'
+ - 'spec/serializers/web_ide_terminal_serializer_spec.rb'
+ - 'spec/services/admin/abuse_reports/moderate_user_service_spec.rb'
+ - 'spec/services/admin/abuse_reports/update_service_spec.rb'
+ - 'spec/services/admin/set_feature_flag_service_spec.rb'
+ - 'spec/services/application_settings/update_service_spec.rb'
+ - 'spec/services/applications/create_service_spec.rb'
+ - 'spec/services/auto_merge/base_service_spec.rb'
+ - 'spec/services/auto_merge_service_spec.rb'
+ - 'spec/services/award_emojis/base_service_spec.rb'
+ - 'spec/services/branches/create_service_spec.rb'
+ - 'spec/services/bulk_imports/archive_extraction_service_spec.rb'
+ - 'spec/services/bulk_imports/create_service_spec.rb'
+ - 'spec/services/bulk_imports/export_service_spec.rb'
+ - 'spec/services/bulk_imports/file_decompression_service_spec.rb'
+ - 'spec/services/bulk_imports/file_download_service_spec.rb'
+ - 'spec/services/bulk_imports/get_importable_data_service_spec.rb'
+ - 'spec/services/bulk_imports/lfs_objects_export_service_spec.rb'
+ - 'spec/services/bulk_imports/process_service_spec.rb'
+ - 'spec/services/bulk_imports/relation_batch_export_service_spec.rb'
+ - 'spec/services/bulk_imports/relation_export_service_spec.rb'
+ - 'spec/services/bulk_imports/tree_export_service_spec.rb'
+ - 'spec/services/bulk_push_event_payload_service_spec.rb'
+ - 'spec/services/captcha/captcha_verification_service_spec.rb'
+ - 'spec/services/chat_names/authorize_user_service_spec.rb'
+ - 'spec/services/chat_names/find_user_service_spec.rb'
+ - 'spec/services/ci/archive_trace_service_spec.rb'
+ - 'spec/services/ci/build_report_result_service_spec.rb'
+ - 'spec/services/ci/compare_accessibility_reports_service_spec.rb'
+ - 'spec/services/ci/compare_codequality_reports_service_spec.rb'
+ - 'spec/services/ci/create_downstream_pipeline_service_spec.rb'
+ - 'spec/services/ci/create_pipeline_service/custom_config_content_spec.rb'
+ - 'spec/services/ci/create_pipeline_service/dry_run_spec.rb'
+ - 'spec/services/ci/create_pipeline_service/environment_spec.rb'
+ - 'spec/services/ci/create_pipeline_service/parameter_content_spec.rb'
+ - 'spec/services/ci/create_web_ide_terminal_service_spec.rb'
+ - 'spec/services/ci/deployments/destroy_service_spec.rb'
+ - 'spec/services/ci/destroy_pipeline_service_spec.rb'
+ - 'spec/services/ci/destroy_secure_file_service_spec.rb'
+ - 'spec/services/ci/drop_pipeline_service_spec.rb'
+ - 'spec/services/ci/expire_pipeline_cache_service_spec.rb'
+ - 'spec/services/ci/find_exposed_artifacts_service_spec.rb'
+ - 'spec/services/ci/generate_codequality_mr_diff_report_service_spec.rb'
+ - 'spec/services/ci/generate_coverage_reports_service_spec.rb'
+ - 'spec/services/ci/generate_terraform_reports_service_spec.rb'
+ - 'spec/services/ci/job_artifacts/delete_project_artifacts_service_spec.rb'
+ - 'spec/services/ci/job_artifacts/destroy_all_expired_service_spec.rb'
+ - 'spec/services/ci/job_artifacts/destroy_batch_service_spec.rb'
+ - 'spec/services/ci/job_artifacts/update_unknown_locked_status_service_spec.rb'
+ - 'spec/services/ci/parse_annotations_artifact_service_spec.rb'
+ - 'spec/services/ci/parse_dotenv_artifact_service_spec.rb'
+ - 'spec/services/ci/pipeline_artifacts/coverage_report_service_spec.rb'
+ - 'spec/services/ci/pipeline_artifacts/create_code_quality_mr_diff_report_service_spec.rb'
+ - 'spec/services/ci/pipeline_artifacts/destroy_all_expired_service_spec.rb'
+ - 'spec/services/ci/pipeline_bridge_status_service_spec.rb'
+ - 'spec/services/ci/pipeline_creation/cancel_redundant_pipelines_service_spec.rb'
+ - 'spec/services/ci/pipeline_schedule_service_spec.rb'
+ - 'spec/services/ci/play_build_service_spec.rb'
+ - 'spec/services/ci/prepare_build_service_spec.rb'
+ - 'spec/services/ci/process_build_service_spec.rb'
+ - 'spec/services/ci/process_pipeline_service_spec.rb'
+ - 'spec/services/ci/prometheus_metrics/observe_histograms_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/run_scheduled_build_service_spec.rb'
+ - 'spec/services/ci/track_failed_build_service_spec.rb'
+ - 'spec/services/ci/unlock_artifacts_service_spec.rb'
+ - 'spec/services/ci/update_build_queue_service_spec.rb'
+ - 'spec/services/ci/update_build_state_service_spec.rb'
+ - 'spec/services/ci/update_instance_variables_service_spec.rb'
+ - 'spec/services/clusters/agent_tokens/create_service_spec.rb'
+ - 'spec/services/clusters/agent_tokens/revoke_service_spec.rb'
+ - 'spec/services/clusters/agent_tokens/track_usage_service_spec.rb'
+ - 'spec/services/clusters/agents/authorizations/ci_access/refresh_service_spec.rb'
+ - 'spec/services/clusters/agents/authorizations/user_access/refresh_service_spec.rb'
+ - 'spec/services/clusters/agents/create_activity_event_service_spec.rb'
+ - 'spec/services/clusters/agents/delete_expired_events_service_spec.rb'
+ - 'spec/services/clusters/build_kubernetes_namespace_service_spec.rb'
+ - 'spec/services/clusters/cleanup/project_namespace_service_spec.rb'
+ - 'spec/services/clusters/cleanup/service_account_service_spec.rb'
+ - 'spec/services/clusters/create_service_spec.rb'
+ - 'spec/services/clusters/destroy_service_spec.rb'
+ - 'spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb'
+ - 'spec/services/clusters/kubernetes/create_or_update_service_account_service_spec.rb'
+ - 'spec/services/clusters/kubernetes/fetch_kubernetes_token_service_spec.rb'
+ - 'spec/services/compare_service_spec.rb'
+ - 'spec/services/concerns/exclusive_lease_guard_spec.rb'
+ - 'spec/services/concerns/rate_limited_service_spec.rb'
+ - 'spec/services/container_expiration_policies/cleanup_service_spec.rb'
+ - 'spec/services/container_registry/protection/create_rule_service_spec.rb'
+ - 'spec/services/database/consistency_check_service_spec.rb'
+ - 'spec/services/dependency_proxy/auth_token_service_spec.rb'
+ - 'spec/services/dependency_proxy/head_manifest_service_spec.rb'
+ - 'spec/services/dependency_proxy/request_token_service_spec.rb'
+ - 'spec/services/deploy_keys/create_service_spec.rb'
+ - 'spec/services/deployments/archive_in_project_service_spec.rb'
+ - 'spec/services/deployments/update_environment_service_spec.rb'
+ - 'spec/services/design_management/copy_design_collection/copy_service_spec.rb'
+ - 'spec/services/design_management/copy_design_collection/queue_service_spec.rb'
+ - 'spec/services/design_management/design_user_notes_count_service_spec.rb'
+ - 'spec/services/design_management/move_designs_service_spec.rb'
+ - 'spec/services/discussions/capture_diff_note_position_service_spec.rb'
+ - 'spec/services/discussions/update_diff_position_service_spec.rb'
+ - 'spec/services/environments/auto_stop_service_spec.rb'
+ - 'spec/services/environments/canary_ingress/update_service_spec.rb'
+ - 'spec/services/environments/create_service_spec.rb'
+ - 'spec/services/environments/destroy_service_spec.rb'
+ - 'spec/services/environments/reset_auto_stop_service_spec.rb'
+ - 'spec/services/environments/schedule_to_delete_review_apps_service_spec.rb'
+ - 'spec/services/environments/stop_service_spec.rb'
+ - 'spec/services/environments/stop_stale_service_spec.rb'
+ - 'spec/services/environments/update_service_spec.rb'
+ - 'spec/services/error_tracking/list_issues_service_spec.rb'
+ - 'spec/services/error_tracking/list_projects_service_spec.rb'
+ - 'spec/services/event_create_service_spec.rb'
+ - 'spec/services/events/destroy_service_spec.rb'
+ - 'spec/services/export_csv/base_service_spec.rb'
+ - 'spec/services/feature_flags/create_service_spec.rb'
+ - 'spec/services/feature_flags/destroy_service_spec.rb'
+ - 'spec/services/feature_flags/update_service_spec.rb'
+ - 'spec/services/files/create_service_spec.rb'
+ - 'spec/services/files/delete_service_spec.rb'
+ - 'spec/services/files/multi_service_spec.rb'
+ - 'spec/services/files/update_service_spec.rb'
+ - 'spec/services/git/base_hooks_service_spec.rb'
+ - 'spec/services/git/branch_hooks_service_spec.rb'
+ - 'spec/services/git/branch_push_service_spec.rb'
+ - 'spec/services/git/process_ref_changes_service_spec.rb'
+ - 'spec/services/git/tag_push_service_spec.rb'
+ - 'spec/services/git/wiki_push_service_spec.rb'
+ - 'spec/services/google_cloud/fetch_google_ip_list_service_spec.rb'
+ - 'spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb'
+ - 'spec/services/gpg_keys/create_service_spec.rb'
+ - 'spec/services/gpg_keys/destroy_service_spec.rb'
+ - 'spec/services/groups/autocomplete_service_spec.rb'
+ - 'spec/services/groups/create_service_spec.rb'
+ - 'spec/services/groups/deploy_tokens/revoke_service_spec.rb'
+ - 'spec/services/groups/group_links/create_service_spec.rb'
+ - 'spec/services/groups/group_links/destroy_service_spec.rb'
+ - 'spec/services/groups/group_links/update_service_spec.rb'
+ - 'spec/services/groups/merge_requests_count_service_spec.rb'
+ - 'spec/services/groups/open_issues_count_service_spec.rb'
+ - 'spec/services/groups/transfer_service_spec.rb'
+ - 'spec/services/groups/update_service_spec.rb'
+ - 'spec/services/groups/update_shared_runners_service_spec.rb'
+ - 'spec/services/ide/schemas_config_service_spec.rb'
+ - 'spec/services/import/bitbucket_server_service_spec.rb'
+ - 'spec/services/import/fogbugz_service_spec.rb'
+ - 'spec/services/import/github_service_spec.rb'
+ - 'spec/services/import/gitlab_projects/create_project_service_spec.rb'
+ - 'spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_s3_spec.rb'
+ - 'spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb'
+ - 'spec/services/import/prepare_service_spec.rb'
+ - 'spec/services/import/validate_remote_git_endpoint_service_spec.rb'
+ - 'spec/services/integrations/slack_interactions/incident_management/incident_modal_opened_service_spec.rb'
+ - 'spec/services/integrations/test/project_service_spec.rb'
+ - 'spec/services/issuable/common_system_notes_service_spec.rb'
+ - 'spec/services/issuable/import_csv/base_service_spec.rb'
+ - 'spec/services/issue_links/list_service_spec.rb'
+ - 'spec/services/issues/build_service_spec.rb'
+ - 'spec/services/issues/clone_service_spec.rb'
+ - 'spec/services/issues/create_service_spec.rb'
+ - 'spec/services/issues/duplicate_service_spec.rb'
+ - 'spec/services/issues/export_csv_service_spec.rb'
+ - 'spec/services/issues/import_csv_service_spec.rb'
+ - 'spec/services/issues/move_service_spec.rb'
+ - 'spec/services/issues/prepare_import_csv_service_spec.rb'
+ - 'spec/services/issues/relative_position_rebalancing_service_spec.rb'
+ - 'spec/services/issues/reorder_service_spec.rb'
+ - 'spec/services/issues/update_service_spec.rb'
+ - 'spec/services/jira/requests/projects/list_service_spec.rb'
+ - 'spec/services/jira_connect/sync_service_spec.rb'
+ - 'spec/services/jira_connect_installations/destroy_service_spec.rb'
+ - 'spec/services/jira_connect_subscriptions/create_service_spec.rb'
+ - 'spec/services/jira_import/start_import_service_spec.rb'
+ - 'spec/services/jira_import/users_importer_spec.rb'
+ - 'spec/services/keys/create_service_spec.rb'
+ - 'spec/services/keys/destroy_service_spec.rb'
+ - 'spec/services/keys/expiry_notification_service_spec.rb'
+ - 'spec/services/lfs/file_transformer_spec.rb'
+ - 'spec/services/lfs/lock_file_service_spec.rb'
+ - 'spec/services/lfs/locks_finder_service_spec.rb'
+ - 'spec/services/lfs/unlock_file_service_spec.rb'
+ - 'spec/services/markdown_content_rewriter_service_spec.rb'
+ - 'spec/services/mattermost/create_team_service_spec.rb'
+ - 'spec/services/members/invitation_reminder_email_service_spec.rb'
+ - 'spec/services/members/update_service_spec.rb'
+ - 'spec/services/merge_requests/add_context_service_spec.rb'
+ - 'spec/services/merge_requests/base_service_spec.rb'
+ - 'spec/services/merge_requests/build_service_spec.rb'
+ - 'spec/services/merge_requests/conflicts/resolve_service_spec.rb'
+ - 'spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb'
+ - 'spec/services/merge_requests/export_csv_service_spec.rb'
+ - 'spec/services/merge_requests/merge_orchestration_service_spec.rb'
+ - 'spec/services/merge_requests/mergeability_check_batch_service_spec.rb'
+ - 'spec/services/merge_requests/mergeability_check_service_spec.rb'
+ - 'spec/services/merge_requests/post_merge_service_spec.rb'
+ - 'spec/services/merge_requests/rebase_service_spec.rb'
+ - 'spec/services/merge_requests/refresh_service_spec.rb'
+ - 'spec/services/merge_requests/reload_diffs_service_spec.rb'
+ - 'spec/services/merge_requests/reload_merge_head_diff_service_spec.rb'
+ - 'spec/services/merge_requests/resolved_discussion_notification_service_spec.rb'
+ - 'spec/services/merge_requests/retarget_chain_service_spec.rb'
+ - 'spec/services/merge_requests/update_service_spec.rb'
+ - 'spec/services/milestones/closed_issues_count_service_spec.rb'
+ - 'spec/services/milestones/create_service_spec.rb'
+ - 'spec/services/milestones/issues_count_service_spec.rb'
+ - 'spec/services/milestones/merge_requests_count_service_spec.rb'
+ - 'spec/services/ml/experiment_tracking/candidate_repository_spec.rb'
+ - 'spec/services/ml/experiment_tracking/experiment_repository_spec.rb'
+ - 'spec/services/ml/experiment_tracking/handle_candidate_gitlab_metadata_service_spec.rb'
+ - 'spec/services/note_summary_spec.rb'
+ - 'spec/services/notes/create_service_spec.rb'
+ - 'spec/services/notes/post_process_service_spec.rb'
+ - 'spec/services/notification_recipients/builder/default_spec.rb'
+ - 'spec/services/notification_recipients/builder/new_note_spec.rb'
+ - 'spec/services/notification_service_spec.rb'
+ - 'spec/services/packages/composer/composer_json_service_spec.rb'
+ - 'spec/services/packages/composer/create_package_service_spec.rb'
+ - 'spec/services/packages/conan/create_package_file_service_spec.rb'
+ - 'spec/services/packages/conan/search_service_spec.rb'
+ - 'spec/services/packages/create_dependency_service_spec.rb'
+ - 'spec/services/packages/create_package_file_service_spec.rb'
+ - 'spec/services/packages/create_temporary_package_service_spec.rb'
+ - 'spec/services/packages/debian/extract_changes_metadata_service_spec.rb'
+ - 'spec/services/packages/debian/extract_deb_metadata_service_spec.rb'
+ - 'spec/services/packages/debian/extract_metadata_service_spec.rb'
+ - 'spec/services/packages/debian/parse_debian822_service_spec.rb'
+ - 'spec/services/packages/debian/process_package_file_service_spec.rb'
+ - 'spec/services/packages/go/create_package_service_spec.rb'
+ - 'spec/services/packages/helm/extract_file_metadata_service_spec.rb'
+ - 'spec/services/packages/mark_package_files_for_destruction_service_spec.rb'
+ - 'spec/services/packages/mark_packages_for_destruction_service_spec.rb'
+ - 'spec/services/packages/maven/find_or_create_package_service_spec.rb'
+ - 'spec/services/packages/maven/metadata/append_package_file_service_spec.rb'
+ - 'spec/services/packages/maven/metadata/create_plugins_xml_service_spec.rb'
+ - 'spec/services/packages/maven/metadata/create_versions_xml_service_spec.rb'
+ - 'spec/services/packages/ml_model/find_or_create_package_service_spec.rb'
+ - 'spec/services/packages/npm/create_metadata_cache_service_spec.rb'
+ - 'spec/services/packages/npm/create_package_service_spec.rb'
+ - 'spec/services/packages/npm/create_tag_service_spec.rb'
+ - 'spec/services/packages/npm/generate_metadata_service_spec.rb'
+ - 'spec/services/packages/nuget/create_dependency_service_spec.rb'
+ - 'spec/services/packages/nuget/extract_metadata_content_service_spec.rb'
+ - 'spec/services/packages/nuget/extract_metadata_file_service_spec.rb'
+ - 'spec/services/packages/nuget/metadata_extraction_service_spec.rb'
+ - 'spec/services/packages/nuget/odata_package_entry_service_spec.rb'
+ - 'spec/services/packages/nuget/process_package_file_service_spec.rb'
+ - 'spec/services/packages/nuget/symbols/create_symbol_files_service_spec.rb'
+ - 'spec/services/packages/nuget/symbols/extract_signature_and_checksum_service_spec.rb'
+ - 'spec/services/packages/nuget/sync_metadatum_service_spec.rb'
+ - 'spec/services/packages/nuget/update_package_from_metadata_service_spec.rb'
+ - 'spec/services/packages/protection/create_rule_service_spec.rb'
+ - 'spec/services/packages/protection/delete_rule_service_spec.rb'
+ - 'spec/services/packages/pypi/create_package_service_spec.rb'
+ - 'spec/services/packages/remove_tag_service_spec.rb'
+ - 'spec/services/packages/rpm/parse_package_service_spec.rb'
+ - 'spec/services/packages/rpm/repository_metadata/build_filelist_xml_service_spec.rb'
+ - 'spec/services/packages/rpm/repository_metadata/build_other_xml_service_spec.rb'
+ - 'spec/services/packages/rpm/repository_metadata/build_primary_xml_service_spec.rb'
+ - 'spec/services/packages/rpm/repository_metadata/build_repomd_xml_service_spec.rb'
+ - 'spec/services/packages/rubygems/create_dependencies_service_spec.rb'
+ - 'spec/services/packages/rubygems/create_gemspec_service_spec.rb'
+ - 'spec/services/packages/rubygems/dependency_resolver_service_spec.rb'
+ - 'spec/services/packages/rubygems/metadata_extraction_service_spec.rb'
+ - 'spec/services/packages/rubygems/process_gem_service_spec.rb'
+ - 'spec/services/packages/terraform_module/create_package_service_spec.rb'
+ - 'spec/services/packages/update_tags_service_spec.rb'
+ - 'spec/services/personal_access_tokens/create_service_spec.rb'
+ - 'spec/services/personal_access_tokens/last_used_service_spec.rb'
+ - 'spec/services/personal_access_tokens/revoke_service_spec.rb'
+ - 'spec/services/post_receive_service_spec.rb'
+ - 'spec/services/product_analytics/build_activity_graph_service_spec.rb'
+ - 'spec/services/product_analytics/build_graph_service_spec.rb'
+ - 'spec/services/projects/alerting/notify_service_spec.rb'
+ - 'spec/services/projects/all_issues_count_service_spec.rb'
+ - 'spec/services/projects/all_merge_requests_count_service_spec.rb'
+ - 'spec/services/projects/auto_devops/disable_service_spec.rb'
+ - 'spec/services/projects/autocomplete_service_spec.rb'
+ - 'spec/services/projects/batch_open_issues_count_service_spec.rb'
+ - 'spec/services/projects/batch_open_merge_requests_count_service_spec.rb'
+ - 'spec/services/projects/branches_by_mode_service_spec.rb'
+ - 'spec/services/projects/container_repository/delete_tags_service_spec.rb'
+ - 'spec/services/projects/container_repository/destroy_service_spec.rb'
+ - 'spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb'
+ - 'spec/services/projects/container_repository/third_party/cleanup_tags_service_spec.rb'
+ - 'spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb'
+ - 'spec/services/projects/create_from_template_service_spec.rb'
+ - 'spec/services/projects/detect_repository_languages_service_spec.rb'
+ - 'spec/services/projects/fetch_statistics_increment_service_spec.rb'
+ - 'spec/services/projects/fork_service_spec.rb'
+ - 'spec/services/projects/forks_count_service_spec.rb'
+ - 'spec/services/projects/group_links/create_service_spec.rb'
+ - 'spec/services/projects/group_links/destroy_service_spec.rb'
+ - 'spec/services/projects/group_links/update_service_spec.rb'
+ - 'spec/services/projects/hashed_storage/base_attachment_service_spec.rb'
+ - 'spec/services/projects/import_service_spec.rb'
+ - 'spec/services/projects/lfs_pointers/lfs_download_link_list_service_spec.rb'
+ - 'spec/services/projects/lfs_pointers/lfs_download_service_spec.rb'
+ - 'spec/services/projects/lfs_pointers/lfs_import_service_spec.rb'
+ - 'spec/services/projects/lfs_pointers/lfs_link_service_spec.rb'
+ - 'spec/services/projects/lfs_pointers/lfs_object_download_list_service_spec.rb'
+ - 'spec/services/projects/move_access_service_spec.rb'
+ - 'spec/services/projects/move_deploy_keys_projects_service_spec.rb'
+ - 'spec/services/projects/move_forks_service_spec.rb'
+ - 'spec/services/projects/move_lfs_objects_projects_service_spec.rb'
+ - 'spec/services/projects/move_notification_settings_service_spec.rb'
+ - 'spec/services/projects/move_project_authorizations_service_spec.rb'
+ - 'spec/services/projects/move_project_group_links_service_spec.rb'
+ - 'spec/services/projects/move_project_members_service_spec.rb'
+ - 'spec/services/projects/move_users_star_projects_service_spec.rb'
+ - 'spec/services/projects/open_issues_count_service_spec.rb'
+ - 'spec/services/projects/open_merge_requests_count_service_spec.rb'
+ - 'spec/services/projects/operations/update_service_spec.rb'
+ - 'spec/services/projects/overwrite_project_service_spec.rb'
+ - 'spec/services/projects/prometheus/alerts/notify_service_spec.rb'
+ - 'spec/services/projects/prometheus/metrics/destroy_service_spec.rb'
+ - 'spec/services/projects/readme_renderer_service_spec.rb'
+ - 'spec/services/projects/transfer_service_spec.rb'
+ - 'spec/services/projects/unlink_fork_service_spec.rb'
+ - 'spec/services/projects/update_pages_service_spec.rb'
+ - 'spec/services/projects/update_repository_storage_service_spec.rb'
+ - 'spec/services/releases/create_service_spec.rb'
+ - 'spec/services/releases/destroy_service_spec.rb'
+ - 'spec/services/repositories/destroy_service_spec.rb'
+ - 'spec/services/repositories/replicate_service_spec.rb'
+ - 'spec/services/reset_project_cache_service_spec.rb'
+ - 'spec/services/resource_access_tokens/create_service_spec.rb'
+ - 'spec/services/search_service_spec.rb'
+ - 'spec/services/service_ping/submit_service_ping_service_spec.rb'
+ - 'spec/services/snippets/bulk_destroy_service_spec.rb'
+ - 'spec/services/snippets/count_service_spec.rb'
+ - 'spec/services/snippets/create_service_spec.rb'
+ - 'spec/services/snippets/destroy_service_spec.rb'
+ - 'spec/services/snippets/repository_validation_service_spec.rb'
+ - 'spec/services/snippets/update_repository_storage_service_spec.rb'
+ - 'spec/services/snippets/update_statistics_service_spec.rb'
+ - 'spec/services/spam/akismet_mark_as_spam_service_spec.rb'
+ - 'spec/services/spam/akismet_service_spec.rb'
+ - 'spec/services/spam/ham_service_spec.rb'
+ - 'spec/services/spam/spam_action_service_spec.rb'
+ - 'spec/services/submodules/update_service_spec.rb'
+ - 'spec/services/suggestions/create_service_spec.rb'
+ - 'spec/services/suggestions/outdate_service_spec.rb'
+ - 'spec/services/system_hooks_service_spec.rb'
+ - 'spec/services/system_note_service_spec.rb'
+ - 'spec/services/system_notes/alert_management_service_spec.rb'
+ - 'spec/services/system_notes/commit_service_spec.rb'
+ - 'spec/services/system_notes/design_management_service_spec.rb'
+ - 'spec/services/system_notes/incidents_service_spec.rb'
+ - 'spec/services/system_notes/issuables_service_spec.rb'
+ - 'spec/services/system_notes/merge_requests_service_spec.rb'
+ - 'spec/services/system_notes/time_tracking_service_spec.rb'
+ - 'spec/services/system_notes/zoom_service_spec.rb'
+ - 'spec/services/tags/destroy_service_spec.rb'
+ - 'spec/services/terraform/remote_state_handler_spec.rb'
+ - 'spec/services/terraform/states/destroy_service_spec.rb'
+ - 'spec/services/terraform/states/trigger_destroy_service_spec.rb'
+ - 'spec/services/timelogs/delete_service_spec.rb'
+ - 'spec/services/todos/destroy/confidential_issue_service_spec.rb'
+ - 'spec/services/todos/destroy/design_service_spec.rb'
+ - 'spec/services/todos/destroy/destroyed_issuable_service_spec.rb'
+ - 'spec/services/todos/destroy/entity_leave_service_spec.rb'
+ - 'spec/services/todos/destroy/group_private_service_spec.rb'
+ - 'spec/services/todos/destroy/project_private_service_spec.rb'
+ - 'spec/services/todos/destroy/unauthorized_features_service_spec.rb'
+ - 'spec/services/topics/merge_service_spec.rb'
+ - 'spec/services/two_factor/destroy_service_spec.rb'
+ - 'spec/services/update_container_registry_info_service_spec.rb'
+ - 'spec/services/upload_service_spec.rb'
+ - 'spec/services/uploads/destroy_service_spec.rb'
+ - 'spec/services/user_agent_detail_service_spec.rb'
+ - 'spec/services/users/activity_service_spec.rb'
+ - 'spec/services/users/approve_service_spec.rb'
+ - 'spec/services/users/assigned_issues_count_service_spec.rb'
+ - 'spec/services/users/in_product_marketing_email_records_spec.rb'
+ - 'spec/services/users/keys_count_service_spec.rb'
+ - 'spec/services/users/reject_service_spec.rb'
+ - 'spec/services/users/saved_replies/create_service_spec.rb'
+ - 'spec/services/users/saved_replies/destroy_service_spec.rb'
+ - 'spec/services/users/saved_replies/update_service_spec.rb'
+ - 'spec/services/users/update_canonical_email_service_spec.rb'
+ - 'spec/services/users/update_service_spec.rb'
+ - 'spec/services/vs_code/settings/create_or_update_service_spec.rb'
+ - 'spec/services/vs_code/settings/delete_service_spec.rb'
+ - 'spec/services/web_hooks/destroy_service_spec.rb'
+ - 'spec/services/webauthn/destroy_service_spec.rb'
+ - 'spec/services/wiki_pages/base_service_spec.rb'
+ - 'spec/services/wiki_pages/event_create_service_spec.rb'
+ - 'spec/services/work_items/callbacks/award_emoji_spec.rb'
+ - 'spec/services/work_items/export_csv_service_spec.rb'
+ - 'spec/services/work_items/import_csv_service_spec.rb'
+ - 'spec/services/work_items/parent_links/base_service_spec.rb'
+ - 'spec/services/work_items/parent_links/create_service_spec.rb'
+ - 'spec/services/work_items/parent_links/destroy_service_spec.rb'
+ - 'spec/services/work_items/prepare_import_csv_service_spec.rb'
+ - 'spec/services/work_items/update_service_spec.rb'
+ - 'spec/services/work_items/widgets/assignees_service/update_service_spec.rb'
+ - 'spec/services/work_items/widgets/current_user_todos_service/update_service_spec.rb'
+ - 'spec/services/work_items/widgets/hierarchy_service/update_service_spec.rb'
+ - 'spec/spam/concerns/has_spam_action_response_fields_spec.rb'
+ - 'spec/support/helpers/cycle_analytics_helpers/test_generation.rb'
+ - 'spec/support/shared_contexts/lib/gitlab/sidekiq_logging/structured_logger_shared_context.rb'
+ - 'spec/support/shared_contexts/lib/gitlab/sidekiq_middleware/server_metrics_shared_context.rb'
+ - 'spec/support/shared_examples/uploaders/object_storage_shared_examples.rb'
+ - 'spec/support_specs/database/without_check_constraint_spec.rb'
+ - 'spec/support_specs/helpers/graphql_helpers_spec.rb'
+ - 'spec/support_specs/helpers/html_escaped_helpers_spec.rb'
+ - 'spec/support_specs/helpers/stub_feature_flags_spec.rb'
+ - 'spec/tasks/gitlab/artifacts/migrate_rake_spec.rb'
+ - 'spec/tasks/gitlab/audit_event_types/check_docs_task_spec.rb'
+ - 'spec/tasks/gitlab/audit_event_types/compile_docs_task_spec.rb'
+ - 'spec/tasks/gitlab/check_rake_spec.rb'
+ - 'spec/tasks/gitlab/ci_secure_files/migrate_rake_spec.rb'
+ - 'spec/tasks/gitlab/cleanup_rake_spec.rb'
+ - 'spec/tasks/gitlab/container_registry_rake_spec.rb'
+ - 'spec/tasks/gitlab/db/decomposition/connection_status_rake_spec.rb'
+ - 'spec/tasks/gitlab/db_rake_spec.rb'
+ - 'spec/tasks/gitlab/gitaly_rake_spec.rb'
+ - 'spec/tasks/gitlab/lfs/migrate_rake_spec.rb'
+ - 'spec/tasks/gitlab/pages_rake_spec.rb'
+ - 'spec/tasks/gitlab/seed/group_seed_rake_spec.rb'
+ - 'spec/tasks/gitlab/snippets_rake_spec.rb'
+ - 'spec/tasks/gitlab/terraform/migrate_rake_spec.rb'
+ - 'spec/tasks/gitlab/x509/update_rake_spec.rb'
+ - 'spec/tooling/danger/analytics_instrumentation_spec.rb'
+ - 'spec/tooling/danger/stable_branch_spec.rb'
+ - 'spec/tooling/docs/deprecation_handling_spec.rb'
+ - 'spec/tooling/graphql/docs/renderer_spec.rb'
+ - 'spec/tooling/lib/tooling/crystalball/coverage_lines_strategy_spec.rb'
+ - 'spec/tooling/lib/tooling/find_changes_spec.rb'
+ - 'spec/tooling/lib/tooling/find_codeowners_spec.rb'
+ - 'spec/tooling/lib/tooling/find_files_using_feature_flags_spec.rb'
+ - 'spec/tooling/lib/tooling/find_tests_spec.rb'
+ - 'spec/tooling/lib/tooling/gettext_extractor_spec.rb'
+ - 'spec/tooling/lib/tooling/helm3_client_spec.rb'
+ - 'spec/tooling/lib/tooling/helpers/file_handler_spec.rb'
+ - 'spec/tooling/lib/tooling/helpers/predictive_tests_helper_spec.rb'
+ - 'spec/tooling/lib/tooling/job_metrics_spec.rb'
+ - 'spec/tooling/lib/tooling/kubernetes_client_spec.rb'
+ - 'spec/tooling/lib/tooling/mappings/graphql_base_type_mappings_spec.rb'
+ - 'spec/tooling/lib/tooling/mappings/js_to_system_specs_mappings_spec.rb'
+ - 'spec/tooling/lib/tooling/mappings/partial_to_views_mappings_spec.rb'
+ - 'spec/tooling/lib/tooling/mappings/view_to_js_mappings_spec.rb'
+ - 'spec/tooling/lib/tooling/mappings/view_to_system_specs_mappings_spec.rb'
+ - 'spec/tooling/lib/tooling/predictive_tests_spec.rb'
+ - 'spec/tooling/lib/tooling/test_map_generator_spec.rb'
+ - 'spec/tooling/lib/tooling/test_map_packer_spec.rb'
+ - 'spec/tooling/quality/test_level_spec.rb'
+ - 'spec/uploaders/ci/secure_file_uploader_spec.rb'
+ - 'spec/uploaders/file_mover_spec.rb'
+ - 'spec/uploaders/file_uploader_spec.rb'
+ - 'spec/uploaders/gitlab_uploader_spec.rb'
+ - 'spec/uploaders/import_export_uploader_spec.rb'
+ - 'spec/uploaders/namespace_file_uploader_spec.rb'
+ - 'spec/uploaders/object_storage/cdn/google_cdn_spec.rb'
+ - 'spec/uploaders/object_storage/cdn_spec.rb'
+ - 'spec/uploaders/object_storage/s3_spec.rb'
+ - 'spec/uploaders/object_storage_spec.rb'
+ - 'spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb'
+ - 'spec/uploaders/packages/npm/metadata_cache_uploader_spec.rb'
+ - 'spec/uploaders/packages/nuget/symbol_uploader_spec.rb'
+ - 'spec/uploaders/terraform/state_uploader_spec.rb'
+ - 'spec/validators/addressable_url_validator_spec.rb'
+ - 'spec/validators/color_validator_spec.rb'
+ - 'spec/validators/cron_freeze_period_timezone_validator_spec.rb'
+ - 'spec/validators/cron_validator_spec.rb'
+ - 'spec/validators/devise_email_validator_spec.rb'
+ - 'spec/validators/future_date_validator_spec.rb'
+ - 'spec/validators/import/gitlab_projects/remote_file_validator_spec.rb'
+ - 'spec/validators/iso8601_date_validator_spec.rb'
+ - 'spec/validators/json_schema_validator_spec.rb'
+ - 'spec/validators/named_ecdsa_key_validator_spec.rb'
+ - 'spec/validators/nested_attributes_duplicates_validator_spec.rb'
+ - 'spec/validators/qualified_domain_array_validator_spec.rb'
+ - 'spec/validators/sha_validator_spec.rb'
+ - 'spec/views/admin/application_settings/_ci_cd.html.haml_spec.rb'
+ - 'spec/views/admin/application_settings/_package_registry.html.haml_spec.rb'
+ - 'spec/views/devise/confirmations/almost_there.html.haml_spec.rb'
+ - 'spec/views/devise/sessions/new.html.haml_spec.rb'
+ - 'spec/views/layouts/fullscreen.html.haml_spec.rb'
+ - 'spec/views/layouts/organization.html.haml_spec.rb'
+ - 'spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb'
+ - 'spec/workers/analytics/usage_trends/counter_job_worker_spec.rb'
+ - 'spec/workers/approve_blocked_pending_approval_users_worker_spec.rb'
+ - 'spec/workers/authorized_project_update/periodic_recalculate_worker_spec.rb'
+ - 'spec/workers/auto_devops/disable_worker_spec.rb'
+ - 'spec/workers/auto_merge_process_worker_spec.rb'
+ - 'spec/workers/bulk_imports/entity_worker_spec.rb'
+ - 'spec/workers/bulk_imports/finish_batched_pipeline_worker_spec.rb'
+ - 'spec/workers/bulk_imports/stuck_import_worker_spec.rb'
+ - 'spec/workers/ci/archive_trace_worker_spec.rb'
+ - 'spec/workers/ci/archive_traces_cron_worker_spec.rb'
+ - 'spec/workers/ci/build_finished_worker_spec.rb'
+ - 'spec/workers/ci/build_prepare_worker_spec.rb'
+ - 'spec/workers/ci/build_schedule_worker_spec.rb'
+ - 'spec/workers/ci/build_trace_chunk_flush_worker_spec.rb'
+ - 'spec/workers/ci/daily_build_group_report_results_worker_spec.rb'
+ - 'spec/workers/ci/delete_unit_tests_worker_spec.rb'
+ - 'spec/workers/ci/drop_pipeline_worker_spec.rb'
+ - 'spec/workers/ci/initial_pipeline_process_worker_spec.rb'
+ - 'spec/workers/ci/merge_requests/cleanup_ref_worker_spec.rb'
+ - 'spec/workers/ci/parse_secure_file_metadata_worker_spec.rb'
+ - 'spec/workers/ci/pending_builds/update_group_worker_spec.rb'
+ - 'spec/workers/ci/pending_builds/update_project_worker_spec.rb'
+ - 'spec/workers/ci/pipeline_artifacts/coverage_report_worker_spec.rb'
+ - 'spec/workers/ci/pipeline_artifacts/create_quality_report_worker_spec.rb'
+ - 'spec/workers/ci/pipeline_artifacts/expire_artifacts_worker_spec.rb'
+ - 'spec/workers/ci/pipeline_bridge_status_worker_spec.rb'
+ - 'spec/workers/ci/pipeline_cleanup_ref_worker_spec.rb'
+ - 'spec/workers/ci/ref_delete_unlock_artifacts_worker_spec.rb'
+ - 'spec/workers/ci/refs/unlock_previous_pipelines_worker_spec.rb'
+ - 'spec/workers/ci/resource_groups/assign_resource_from_resource_group_worker_spec.rb'
+ - 'spec/workers/ci/stuck_builds/drop_running_worker_spec.rb'
+ - 'spec/workers/ci/stuck_builds/drop_scheduled_worker_spec.rb'
+ - 'spec/workers/ci/test_failure_history_worker_spec.rb'
+ - 'spec/workers/ci/track_failed_build_worker_spec.rb'
+ - 'spec/workers/ci_platform_metrics_update_cron_worker_spec.rb'
+ - 'spec/workers/cleanup_container_repository_worker_spec.rb'
+ - 'spec/workers/clusters/agents/delete_expired_events_worker_spec.rb'
+ - 'spec/workers/clusters/agents/notify_git_push_worker_spec.rb'
+ - 'spec/workers/clusters/cleanup/project_namespace_worker_spec.rb'
+ - 'spec/workers/clusters/cleanup/service_account_worker_spec.rb'
+ - 'spec/workers/concerns/packages/cleanup_artifact_worker_spec.rb'
+ - 'spec/workers/concerns/packages/error_handling_spec.rb'
+ - 'spec/workers/concerns/worker_context_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/enqueuer_worker_spec.rb'
+ - 'spec/workers/container_registry/migration/guard_worker_spec.rb'
+ - 'spec/workers/container_registry/migration/observer_worker_spec.rb'
+ - 'spec/workers/counters/cleanup_refresh_worker_spec.rb'
+ - 'spec/workers/create_commit_signature_worker_spec.rb'
+ - 'spec/workers/database/drop_detached_partitions_worker_spec.rb'
+ - 'spec/workers/database/partition_management_worker_spec.rb'
+ - 'spec/workers/dependency_proxy/cleanup_dependency_proxy_worker_spec.rb'
+ - 'spec/workers/dependency_proxy/image_ttl_group_policy_worker_spec.rb'
+ - 'spec/workers/deployments/archive_in_project_worker_spec.rb'
+ - 'spec/workers/deployments/link_merge_request_worker_spec.rb'
+ - 'spec/workers/deployments/update_environment_worker_spec.rb'
+ - 'spec/workers/design_management/copy_design_collection_worker_spec.rb'
+ - 'spec/workers/detect_repository_languages_worker_spec.rb'
+ - 'spec/workers/emails_on_push_worker_spec.rb'
+ - 'spec/workers/environments/auto_delete_cron_worker_spec.rb'
+ - 'spec/workers/environments/auto_stop_cron_worker_spec.rb'
+ - 'spec/workers/environments/auto_stop_worker_spec.rb'
+ - 'spec/workers/environments/canary_ingress/update_worker_spec.rb'
+ - 'spec/workers/error_tracking_issue_link_worker_spec.rb'
+ - 'spec/workers/file_hook_worker_spec.rb'
+ - 'spec/workers/flush_counter_increments_worker_spec.rb'
+ - 'spec/workers/gitlab/github_gists_import/import_gist_worker_spec.rb'
+ - 'spec/workers/gitlab/github_import/pull_requests/import_merged_by_worker_spec.rb'
+ - 'spec/workers/gitlab/github_import/pull_requests/import_review_worker_spec.rb'
+ - 'spec/workers/gitlab/jira_import/import_issue_worker_spec.rb'
+ - 'spec/workers/gitlab_service_ping_worker_spec.rb'
+ - 'spec/workers/google_cloud/create_cloudsql_instance_worker_spec.rb'
+ - 'spec/workers/group_export_worker_spec.rb'
+ - 'spec/workers/group_import_worker_spec.rb'
+ - 'spec/workers/groups/update_two_factor_requirement_for_members_worker_spec.rb'
+ - 'spec/workers/integrations/create_external_cross_reference_worker_spec.rb'
+ - 'spec/workers/integrations/irker_worker_spec.rb'
+ - 'spec/workers/issuable/label_links_destroy_worker_spec.rb'
+ - 'spec/workers/issuable/related_links_create_worker_spec.rb'
+ - 'spec/workers/issuable_export_csv_worker_spec.rb'
+ - 'spec/workers/issuables/clear_groups_issue_counter_worker_spec.rb'
+ - 'spec/workers/jira_connect/send_uninstalled_hook_worker_spec.rb'
+ - 'spec/workers/jira_connect/sync_builds_worker_spec.rb'
+ - 'spec/workers/jira_connect/sync_deployments_worker_spec.rb'
+ - 'spec/workers/jira_connect/sync_feature_flags_worker_spec.rb'
+ - 'spec/workers/member_invitation_reminder_emails_worker_spec.rb'
+ - 'spec/workers/merge_request_mergeability_check_worker_spec.rb'
+ - 'spec/workers/merge_requests/close_issue_worker_spec.rb'
+ - 'spec/workers/merge_requests/create_pipeline_worker_spec.rb'
+ - 'spec/workers/merge_requests/ensure_prepared_worker_spec.rb'
+ - 'spec/workers/merge_requests/mergeability_check_batch_worker_spec.rb'
+ - 'spec/workers/merge_requests/update_head_pipeline_worker_spec.rb'
+ - 'spec/workers/merge_worker_spec.rb'
+ - 'spec/workers/namespaces/update_root_statistics_worker_spec.rb'
+ - 'spec/workers/new_note_worker_spec.rb'
+ - 'spec/workers/object_pool/create_worker_spec.rb'
+ - 'spec/workers/object_pool/destroy_worker_spec.rb'
+ - 'spec/workers/object_pool/join_worker_spec.rb'
+ - 'spec/workers/object_storage/delete_stale_direct_uploads_worker_spec.rb'
+ - 'spec/workers/onboarding/issue_created_worker_spec.rb'
+ - 'spec/workers/packages/cleanup/delete_orphaned_dependencies_worker_spec.rb'
+ - 'spec/workers/packages/cleanup_package_file_worker_spec.rb'
+ - 'spec/workers/packages/composer/cache_cleanup_worker_spec.rb'
+ - 'spec/workers/packages/composer/cache_update_worker_spec.rb'
+ - 'spec/workers/packages/debian/cleanup_dangling_package_files_worker_spec.rb'
+ - 'spec/workers/packages/debian/generate_distribution_worker_spec.rb'
+ - 'spec/workers/packages/debian/process_package_file_worker_spec.rb'
+ - 'spec/workers/packages/go/sync_packages_worker_spec.rb'
+ - 'spec/workers/packages/helm/extraction_worker_spec.rb'
+ - 'spec/workers/packages/mark_package_files_for_destruction_worker_spec.rb'
+ - 'spec/workers/packages/maven/metadata/sync_worker_spec.rb'
+ - 'spec/workers/packages/npm/create_metadata_cache_worker_spec.rb'
+ - 'spec/workers/packages/nuget/extraction_worker_spec.rb'
+ - 'spec/workers/packages/rubygems/extraction_worker_spec.rb'
+ - 'spec/workers/partition_creation_worker_spec.rb'
+ - 'spec/workers/pipeline_notification_worker_spec.rb'
+ - 'spec/workers/pipeline_process_worker_spec.rb'
+ - 'spec/workers/pipeline_schedule_worker_spec.rb'
+ - 'spec/workers/process_commit_worker_spec.rb'
+ - 'spec/workers/project_cache_worker_spec.rb'
+ - 'spec/workers/project_export_worker_spec.rb'
+ - 'spec/workers/projects/after_import_worker_spec.rb'
+ - 'spec/workers/projects/finalize_project_statistics_refresh_worker_spec.rb'
+ - 'spec/workers/projects/git_garbage_collect_worker_spec.rb'
+ - 'spec/workers/projects/import_export/parallel_project_export_worker_spec.rb'
+ - 'spec/workers/projects/post_creation_worker_spec.rb'
+ - 'spec/workers/projects/schedule_refresh_build_artifacts_size_statistics_worker_spec.rb'
+ - 'spec/workers/propagate_integration_group_worker_spec.rb'
+ - 'spec/workers/propagate_integration_inherit_descendant_worker_spec.rb'
+ - 'spec/workers/propagate_integration_inherit_worker_spec.rb'
+ - 'spec/workers/propagate_integration_project_worker_spec.rb'
+ - 'spec/workers/propagate_integration_worker_spec.rb'
+ - 'spec/workers/prune_old_events_worker_spec.rb'
+ - 'spec/workers/purge_dependency_proxy_cache_worker_spec.rb'
+ - 'spec/workers/rebase_worker_spec.rb'
+ - 'spec/workers/redis_migration_worker_spec.rb'
+ - 'spec/workers/remote_mirror_notification_worker_spec.rb'
+ - 'spec/workers/remove_expired_group_links_worker_spec.rb'
+ - 'spec/workers/repository_check/batch_worker_spec.rb'
+ - 'spec/workers/repository_check/dispatch_worker_spec.rb'
+ - 'spec/workers/repository_check/single_repository_worker_spec.rb'
+ - 'spec/workers/repository_import_worker_spec.rb'
+ - 'spec/workers/repository_update_remote_mirror_worker_spec.rb'
+ - 'spec/workers/schedule_merge_request_cleanup_refs_worker_spec.rb'
+ - 'spec/workers/stage_update_worker_spec.rb'
+ - 'spec/workers/stuck_ci_jobs_worker_spec.rb'
+ - 'spec/workers/system_hook_push_worker_spec.rb'
+ - 'spec/workers/terraform/states/destroy_worker_spec.rb'
+ - 'spec/workers/update_container_registry_info_worker_spec.rb'
+ - 'spec/workers/update_external_pull_requests_worker_spec.rb'
+ - 'spec/workers/update_head_pipeline_for_merge_request_worker_spec.rb'
+ - 'spec/workers/update_highest_role_worker_spec.rb'
+ - 'spec/workers/update_merge_requests_worker_spec.rb'
+ - 'spec/workers/upload_checksum_worker_spec.rb'
+ - 'spec/workers/users/create_statistics_worker_spec.rb'
+ - 'spec/workers/users/migrate_records_to_ghost_user_in_batches_worker_spec.rb'
+ - 'spec/workers/web_hook_worker_spec.rb'
+ - 'spec/workers/web_hooks/log_destroy_worker_spec.rb'
+ - 'spec/workers/work_items/import_work_items_csv_worker_spec.rb'
+ - 'spec/workers/x509_certificate_revoke_worker_spec.rb'
diff --git a/.rubocop_todo/rspec/specify_expected.yml b/.rubocop_todo/rspec/specify_expected.yml
new file mode 100644
index 00000000000..9a4c7a769d7
--- /dev/null
+++ b/.rubocop_todo/rspec/specify_expected.yml
@@ -0,0 +1,54 @@
+---
+# Cop supports --autocorrect.
+RSpec/SpecifyExpected:
+ Details: grace period
+ Exclude:
+ - 'ee/spec/controllers/groups/analytics/repository_analytics_controller_spec.rb'
+ - 'ee/spec/graphql/ee/types/branch_protection_type_spec.rb'
+ - 'ee/spec/graphql/ee/types/branch_protections/merge_access_level_type_spec.rb'
+ - 'ee/spec/graphql/ee/types/branch_protections/push_access_level_type_spec.rb'
+ - 'ee/spec/graphql/ee/types/branch_protections/unprotect_access_level_type_spec.rb'
+ - 'ee/spec/graphql/mutations/boards/epic_boards/create_spec.rb'
+ - 'ee/spec/graphql/mutations/boards/epic_boards/update_spec.rb'
+ - 'ee/spec/lib/code_suggestions/instructions_extractor_spec.rb'
+ - 'ee/spec/lib/ee/sidebars/projects/menus/analytics_menu_spec.rb'
+ - 'ee/spec/lib/ee/sidebars/projects/menus/settings_menu_spec.rb'
+ - 'ee/spec/lib/sidebars/groups/menus/analytics_menu_spec.rb'
+ - 'ee/spec/lib/sidebars/groups/menus/epics_menu_spec.rb'
+ - 'ee/spec/lib/sidebars/groups/menus/security_compliance_menu_spec.rb'
+ - 'ee/spec/lib/sidebars/groups/menus/wiki_menu_spec.rb'
+ - 'ee/spec/models/ee/users/merge_request_interaction_spec.rb'
+ - 'ee/spec/services/security/security_orchestration_policies/update_violations_service_spec.rb'
+ - 'spec/finders/ci/freeze_periods_finder_spec.rb'
+ - 'spec/finders/groups/user_groups_finder_spec.rb'
+ - 'spec/graphql/resolvers/users/groups_resolver_spec.rb'
+ - 'spec/graphql/types/access_levels/deploy_key_type_spec.rb'
+ - 'spec/graphql/types/branch_protections/merge_access_level_type_spec.rb'
+ - 'spec/graphql/types/branch_protections/push_access_level_type_spec.rb'
+ - 'spec/graphql/types/branch_rules/branch_protection_type_spec.rb'
+ - 'spec/lib/banzai/filter/references/design_reference_filter_spec.rb'
+ - 'spec/lib/gitlab/color_spec.rb'
+ - 'spec/lib/sidebars/admin/menus/monitoring_menu_spec.rb'
+ - 'spec/lib/sidebars/groups/menus/ci_cd_menu_spec.rb'
+ - 'spec/lib/sidebars/groups/menus/group_information_menu_spec.rb'
+ - 'spec/lib/sidebars/groups/menus/issues_menu_spec.rb'
+ - 'spec/lib/sidebars/groups/menus/scope_menu_spec.rb'
+ - 'spec/lib/sidebars/groups/menus/settings_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/analytics_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/deployments_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/hidden_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/monitor_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/project_information_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/scope_menu_spec.rb'
+ - 'spec/lib/sidebars/projects/menus/settings_menu_spec.rb'
+ - 'spec/models/application_setting_spec.rb'
+ - 'spec/models/concerns/subquery_spec.rb'
+ - 'spec/models/integrations/jira_tracker_data_spec.rb'
+ - 'spec/models/issue_spec.rb'
+ - 'spec/models/project_spec.rb'
+ - 'spec/models/user_spec.rb'
+ - 'spec/policies/group_policy_spec.rb'
+ - 'spec/policies/merge_request_policy_spec.rb'
+ - 'spec/policies/project_policy_spec.rb'
+ - 'spec/requests/api/graphql/current_user/groups_query_spec.rb'
diff --git a/.rubocop_todo/style/accessor_grouping.yml b/.rubocop_todo/style/accessor_grouping.yml
index c2cab738ccb..4587df5d52d 100644
--- a/.rubocop_todo/style/accessor_grouping.yml
+++ b/.rubocop_todo/style/accessor_grouping.yml
@@ -1,6 +1,7 @@
---
# Cop supports --autocorrect.
Style/AccessorGrouping:
+ Details: grace period
Exclude:
- 'app/finders/template_finder.rb'
- 'app/models/commit.rb'
@@ -54,6 +55,7 @@ Style/AccessorGrouping:
- 'lib/gitlab/graphql/connection_redaction.rb'
- 'lib/gitlab/http_io.rb'
- 'lib/gitlab/import_export/project/tree_restorer.rb'
+ - 'lib/gitlab/search/abuse_detection.rb'
- 'lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb'
- 'lib/gitlab/suggestions/file_suggestion.rb'
- 'lib/gitlab/tracking/event_definition.rb'
@@ -64,6 +66,5 @@ Style/AccessorGrouping:
- 'lib/object_storage/direct_upload.rb'
- 'lib/safe_zip/entry.rb'
- 'lib/system_check/simple_executor.rb'
- - 'lib/uploaded_file.rb'
- 'qa/qa/ee/resource/geo/node.rb'
- 'qa/qa/ee/resource/settings/elasticsearch.rb'
diff --git a/.rubocop_todo/style/arguments_forwarding.yml b/.rubocop_todo/style/arguments_forwarding.yml
new file mode 100644
index 00000000000..f51e582b5a0
--- /dev/null
+++ b/.rubocop_todo/style/arguments_forwarding.yml
@@ -0,0 +1,173 @@
+---
+# Cop supports --autocorrect.
+Style/ArgumentsForwarding:
+ Details: grace period
+ Exclude:
+ - 'app/controllers/chaos_controller.rb'
+ - 'app/finders/clusters/knative_services_finder.rb'
+ - 'app/finders/group_finder.rb'
+ - 'app/graphql/mutations/ci/runner/create.rb'
+ - 'app/graphql/mutations/design_management/move.rb'
+ - 'app/graphql/mutations/todos/mark_all_done.rb'
+ - 'app/graphql/resolvers/concerns/caching_array_resolver.rb'
+ - 'app/helpers/emoji_helper.rb'
+ - 'app/helpers/issuables_helper.rb'
+ - 'app/helpers/namespaces_helper.rb'
+ - 'app/helpers/notify_helper.rb'
+ - 'app/helpers/routing/groups/members_helper.rb'
+ - 'app/helpers/routing/pipeline_schedules_helper.rb'
+ - 'app/helpers/routing/projects/members_helper.rb'
+ - 'app/helpers/routing/projects_helper.rb'
+ - 'app/helpers/routing/snippets_helper.rb'
+ - 'app/helpers/wiki_helper.rb'
+ - 'app/helpers/workhorse_helper.rb'
+ - 'app/models/application_record.rb'
+ - 'app/models/ci/build.rb'
+ - 'app/models/commit.rb'
+ - 'app/models/commit_collection.rb'
+ - 'app/models/concerns/as_cte.rb'
+ - 'app/models/concerns/async_devise_email.rb'
+ - 'app/models/concerns/optionally_search.rb'
+ - 'app/models/concerns/presentable.rb'
+ - 'app/models/concerns/prometheus_adapter.rb'
+ - 'app/models/concerns/reactive_caching.rb'
+ - 'app/models/merge_request.rb'
+ - 'app/models/merge_request_context_commit.rb'
+ - 'app/models/merge_request_context_commit_diff_file.rb'
+ - 'app/models/network/commit.rb'
+ - 'app/presenters/gitlab/blame_presenter.rb'
+ - 'app/services/ci/prometheus_metrics/observe_histograms_service.rb'
+ - 'app/services/concerns/rate_limited_service.rb'
+ - 'app/services/issuable_base_service.rb'
+ - 'app/services/members/creator_service.rb'
+ - 'app/services/notification_recipients/build_service.rb'
+ - 'app/services/notification_service.rb'
+ - 'app/services/users/update_service.rb'
+ - 'app/workers/authorized_keys_worker.rb'
+ - 'app/workers/concerns/limited_capacity/worker.rb'
+ - 'app/workers/concerns/reactive_cacheable_worker.rb'
+ - 'app/workers/concerns/reenqueuer.rb'
+ - 'app/workers/gitlab/github_import/refresh_import_jid_worker.rb'
+ - 'app/workers/pages_worker.rb'
+ - 'config/initializers/6_labkit_middleware.rb'
+ - 'config/initializers/active_record_table_definition.rb'
+ - 'config/initializers/postgresql_cte.rb'
+ - 'ee/app/controllers/groups/analytics/application_controller.rb'
+ - 'ee/app/helpers/ee/gitlab_routing_helper.rb'
+ - 'ee/app/helpers/ee/saml_providers_helper.rb'
+ - 'ee/app/models/ee/group.rb'
+ - 'ee/app/models/elastic/migration_record.rb'
+ - 'ee/app/models/license.rb'
+ - 'ee/app/services/search/reindexing_service.rb'
+ - 'ee/db/geo/migrate/20210504143244_add_verification_to_merge_request_diff_registry.rb'
+ - 'ee/lib/analytics/forecasting/holt_winters_optimizer.rb'
+ - 'ee/lib/analytics/merge_request_metrics_refresh.rb'
+ - 'ee/lib/ee/gitlab/url_builder.rb'
+ - 'ee/lib/elastic/latest/application_class_proxy.rb'
+ - 'ee/lib/elastic/latest/query_context.rb'
+ - 'ee/lib/elastic/latest/wiki_class_proxy.rb'
+ - 'ee/lib/gitlab/elastic/expr_name.rb'
+ - 'ee/lib/gitlab/geo/replicator.rb'
+ - 'ee/lib/gitlab/insights/reducers/base_reducer.rb'
+ - 'ee/spec/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/saml/membership_updater_spec.rb'
+ - 'ee/spec/lib/gitlab/status_page/storage/s3_client_spec.rb'
+ - 'ee/spec/models/protected_environment_spec.rb'
+ - 'ee/spec/requests/api/graphql/boards/epic_lists_query_spec.rb'
+ - 'ee/spec/services/status_page/publish_service_spec.rb'
+ - 'lib/api/helpers.rb'
+ - 'lib/api/helpers/caching.rb'
+ - 'lib/api/helpers/pagination.rb'
+ - 'lib/atlassian/jira_connect/jwt/asymmetric.rb'
+ - 'lib/error_tracking/sentry_client/issue.rb'
+ - 'lib/gitlab/auth/ldap/adapter.rb'
+ - 'lib/gitlab/auth/ldap/dn.rb'
+ - 'lib/gitlab/cache.rb'
+ - 'lib/gitlab/ci/parsers.rb'
+ - 'lib/gitlab/ci/pipeline/expression/token.rb'
+ - 'lib/gitlab/config/entry/configurable.rb'
+ - 'lib/gitlab/config/entry/simplifiable.rb'
+ - 'lib/gitlab/current_settings.rb'
+ - 'lib/gitlab/database/load_balancing/connection_proxy.rb'
+ - 'lib/gitlab/database/migration_helpers.rb'
+ - 'lib/gitlab/git/diff.rb'
+ - 'lib/gitlab/git/repository.rb'
+ - 'lib/gitlab/gitaly_client/storage_settings.rb'
+ - 'lib/gitlab/gitaly_client/with_feature_flag_actors.rb'
+ - 'lib/gitlab/github_import/client.rb'
+ - 'lib/gitlab/gon_helper.rb'
+ - 'lib/gitlab/graphql/authorize/authorize_resource.rb'
+ - 'lib/gitlab/graphql/mount_mutation.rb'
+ - 'lib/gitlab/import_export/attribute_cleaner.rb'
+ - 'lib/gitlab/import_export/base/relation_factory.rb'
+ - 'lib/gitlab/import_export/file_importer.rb'
+ - 'lib/gitlab/import_export/json/ndjson_reader.rb'
+ - 'lib/gitlab/import_export/json/ndjson_writer.rb'
+ - 'lib/gitlab/import_export/saver.rb'
+ - 'lib/gitlab/import_export/version_checker.rb'
+ - 'lib/gitlab/jira/http_client.rb'
+ - 'lib/gitlab/kubernetes/kubeconfig/template.rb'
+ - 'lib/gitlab/legacy_github_import/client.rb'
+ - 'lib/gitlab/memory/watchdog/configuration.rb'
+ - 'lib/gitlab/metrics/prometheus.rb'
+ - 'lib/gitlab/nav/top_nav_view_model_builder.rb'
+ - 'lib/gitlab/quick_actions/dsl.rb'
+ - 'lib/gitlab/rack_attack.rb'
+ - 'lib/gitlab/redis/multi_store.rb'
+ - 'lib/gitlab/repository_cache.rb'
+ - 'lib/gitlab/tracking.rb'
+ - 'lib/gitlab/url_blocker.rb'
+ - 'lib/gitlab/url_builder.rb'
+ - 'lib/gitlab/usage/metrics/query.rb'
+ - 'lib/gitlab_settings/settings.rb'
+ - 'lib/kramdown/parser/atlassian_document_format.rb'
+ - 'lib/uploaded_file.rb'
+ - 'metrics_server/metrics_server.rb'
+ - 'qa/qa/ee/resource/audit_events.rb'
+ - 'qa/qa/ee/runtime/path.rb'
+ - 'qa/qa/page/base.rb'
+ - 'qa/qa/page/view.rb'
+ - 'qa/qa/resource/api_fabricator.rb'
+ - 'qa/qa/resource/base.rb'
+ - 'qa/qa/resource/group_base.rb'
+ - 'qa/qa/resource/group_runner.rb'
+ - 'qa/qa/resource/project.rb'
+ - 'qa/qa/resource/project_runner.rb'
+ - 'qa/qa/resource/sandbox.rb'
+ - 'qa/qa/runtime/feature.rb'
+ - 'qa/qa/runtime/path.rb'
+ - 'qa/qa/runtime/release.rb'
+ - 'qa/qa/scenario/actable.rb'
+ - 'qa/qa/scenario/template.rb'
+ - 'qa/qa/specs/helpers/rspec.rb'
+ - 'qa/qa/support/matchers/have_text.rb'
+ - 'qa/qa/support/page/logging.rb'
+ - 'qa/qa/tools/delete_subgroups.rb'
+ - 'spec/features/projects/environments/environments_spec.rb'
+ - 'spec/graphql/features/authorization_spec.rb'
+ - 'spec/helpers/application_helper_spec.rb'
+ - 'spec/helpers/timeboxes_helper_spec.rb'
+ - 'spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb'
+ - 'spec/lib/gitlab/ci/status/bridge/factory_spec.rb'
+ - 'spec/lib/gitlab/database/load_balancing/load_balancer_spec.rb'
+ - 'spec/lib/gitlab/graphql/markdown_field_spec.rb'
+ - 'spec/lib/gitlab/import_export/group/tree_saver_spec.rb'
+ - 'spec/lib/gitlab/pagination/offset_pagination_spec.rb'
+ - 'spec/models/concerns/cache_markdown_field_spec.rb'
+ - 'spec/requests/api/go_proxy_spec.rb'
+ - 'spec/requests/api/graphql/project/error_tracking/sentry_errors_request_spec.rb'
+ - 'spec/services/ci/expire_pipeline_cache_service_spec.rb'
+ - 'spec/services/ci/retry_pipeline_service_spec.rb'
+ - 'spec/support/factory_bot.rb'
+ - 'spec/support/helpers/api_helpers.rb'
+ - 'spec/support/helpers/database/trigger_helpers.rb'
+ - 'spec/support/helpers/fast_rails_root.rb'
+ - 'spec/support/helpers/features/dom_helpers.rb'
+ - 'spec/support/helpers/git_http_helpers.rb'
+ - 'spec/support/helpers/graphql_helpers.rb'
+ - 'spec/support/helpers/harbor_helper.rb'
+ - 'spec/support/helpers/login_helpers.rb'
+ - 'spec/support/helpers/merge_request_diff_helpers.rb'
+ - 'spec/support/helpers/next_instance_of.rb'
+ - 'spec/support/helpers/reactive_caching_helpers.rb'
+ - 'spec/support/shared_examples/features/2fa_shared_examples.rb'
diff --git a/.rubocop_todo/style/block_delimiters.yml b/.rubocop_todo/style/block_delimiters.yml
new file mode 100644
index 00000000000..09f96781560
--- /dev/null
+++ b/.rubocop_todo/style/block_delimiters.yml
@@ -0,0 +1,66 @@
+---
+# Cop supports --autocorrect.
+Style/BlockDelimiters:
+ Details: grace period
+ Exclude:
+ - 'ee/spec/finders/security/related_pipelines_finder_spec.rb'
+ - 'ee/spec/finders/security/vulnerability_reads_finder_spec.rb'
+ - 'ee/spec/helpers/compliance_management/compliance_framework/group_settings_helper_spec.rb'
+ - 'ee/spec/helpers/ee/labels_helper_spec.rb'
+ - 'ee/spec/helpers/ee/projects/security/api_fuzzing_configuration_helper_spec.rb'
+ - 'ee/spec/helpers/ee/projects/security/dast_configuration_helper_spec.rb'
+ - 'ee/spec/helpers/ee/projects/security/sast_configuration_helper_spec.rb'
+ - 'ee/spec/lib/ee/gitlab/observability_spec.rb'
+ - 'ee/spec/lib/gitlab/auth/smartcard/san_extension_spec.rb'
+ - 'ee/spec/lib/gitlab/package_metadata/connector/base_data_file_spec.rb'
+ - 'ee/spec/lib/gitlab/package_metadata/connector/gcp_spec.rb'
+ - 'ee/spec/lib/gitlab/package_metadata/connector/offline_spec.rb'
+ - 'ee/spec/models/analytics/cycle_analytics/value_stream_setting_spec.rb'
+ - 'ee/spec/models/audit_events/streaming/instance_event_type_filter_spec.rb'
+ - 'ee/spec/models/ee/design_management/repository_spec.rb'
+ - 'ee/spec/models/ee/projects/wiki_repository_spec.rb'
+ - 'ee/spec/models/geo/design_management_repository_state_spec.rb'
+ - 'ee/spec/models/geo/wiki_repository_state_spec.rb'
+ - 'ee/spec/models/merge_request_spec.rb'
+ - 'ee/spec/models/namespace_setting_spec.rb'
+ - 'ee/spec/models/protected_environments/deploy_access_level_spec.rb'
+ - 'ee/spec/models/security/finding_spec.rb'
+ - 'ee/spec/models/vulnerabilities/feedback_spec.rb'
+ - 'ee/spec/services/gitlab_subscriptions/reconciliations/calculate_seat_count_data_service_spec.rb'
+ - 'ee/spec/services/package_metadata/advisory_data_object_spec.rb'
+ - 'ee/spec/services/package_metadata/compressed_package_data_object_spec.rb'
+ - 'ee/spec/services/package_metadata/data_object_fabricator_spec.rb'
+ - 'ee/spec/services/security/scanned_resources_counting_service_spec.rb'
+ - 'ee/spec/services/security/scanned_resources_service_spec.rb'
+ - 'ee/spec/services/security/security_orchestration_policies/ci_configuration_service_spec.rb'
+ - 'ee/spec/services/security/vulnerability_counting_service_spec.rb'
+ - 'spec/helpers/abuse_reports_helper_spec.rb'
+ - 'spec/helpers/admin/user_actions_helper_spec.rb'
+ - 'spec/helpers/merge_requests_helper_spec.rb'
+ - 'spec/helpers/projects/cluster_agents_helper_spec.rb'
+ - 'spec/lib/gitlab/ci/build/rules_spec.rb'
+ - 'spec/lib/gitlab/ci/config/external/file/artifact_spec.rb'
+ - 'spec/lib/gitlab/ci/config/external/file/base_spec.rb'
+ - 'spec/lib/gitlab/ci/config/external/file/local_spec.rb'
+ - 'spec/lib/gitlab/ci/config/external/file/project_spec.rb'
+ - 'spec/lib/gitlab/ci/config/external/file/remote_spec.rb'
+ - 'spec/lib/gitlab/ci/config/external/file/template_spec.rb'
+ - 'spec/lib/gitlab/data_builder/build_spec.rb'
+ - 'spec/lib/gitlab/git/wraps_gitaly_errors_spec.rb'
+ - 'spec/lib/release_highlights/validator/entry_spec.rb'
+ - 'spec/models/abuse_report_spec.rb'
+ - 'spec/models/ci/group_variable_spec.rb'
+ - 'spec/models/container_registry/protection/rule_spec.rb'
+ - 'spec/models/environment_status_spec.rb'
+ - 'spec/models/hooks/web_hook_spec.rb'
+ - 'spec/models/incident_management/timeline_event_tag_spec.rb'
+ - 'spec/models/packages/npm/metadatum_spec.rb'
+ - 'spec/models/packages/protection/rule_spec.rb'
+ - 'spec/models/users/in_product_marketing_email_spec.rb'
+ - 'spec/models/users/phone_number_validation_spec.rb'
+ - 'spec/models/users/project_callout_spec.rb'
+ - 'spec/presenters/tree_entry_presenter_spec.rb'
+ - 'spec/requests/api/graphql/mutations/container_registry/protection/rule/create_spec.rb'
+ - 'spec/requests/jira_connect/subscriptions_controller_spec.rb'
+ - 'spec/services/packages/nuget/extract_remote_metadata_file_service_spec.rb'
+ - 'spec/services/packages/protection/delete_rule_service_spec.rb'
diff --git a/.rubocop_todo/style/guard_clause.yml b/.rubocop_todo/style/guard_clause.yml
index 7c70fde48f3..74051fa5944 100644
--- a/.rubocop_todo/style/guard_clause.yml
+++ b/.rubocop_todo/style/guard_clause.yml
@@ -1,6 +1,7 @@
---
# Cop supports --autocorrect.
Style/GuardClause:
+ Details: grace period
Exclude:
- 'app/controllers/admin/users_controller.rb'
- 'app/controllers/application_controller.rb'
@@ -13,7 +14,6 @@ Style/GuardClause:
- 'app/controllers/concerns/enforces_admin_authentication.rb'
- 'app/controllers/concerns/enforces_two_factor_authentication.rb'
- 'app/controllers/concerns/impersonation.rb'
- - 'app/controllers/concerns/issuable_collections.rb'
- 'app/controllers/groups/application_controller.rb'
- 'app/controllers/groups_controller.rb'
- 'app/controllers/import/gitea_controller.rb'
@@ -55,7 +55,6 @@ Style/GuardClause:
- 'app/graphql/resolvers/blobs_resolver.rb'
- 'app/graphql/resolvers/board_list_issues_resolver.rb'
- 'app/graphql/resolvers/concerns/board_item_filterable.rb'
- - 'app/graphql/resolvers/concerns/time_frame_arguments.rb'
- 'app/graphql/resolvers/projects/jira_projects_resolver.rb'
- 'app/graphql/types/ci/job_type.rb'
- 'app/graphql/types/permission_types/base_permission_type.rb'
@@ -74,7 +73,6 @@ Style/GuardClause:
- 'app/models/appearance.rb'
- 'app/models/application_setting.rb'
- 'app/models/bulk_imports/entity.rb'
- - 'app/models/ci/build.rb'
- 'app/models/ci/build_trace.rb'
- 'app/models/ci/job_artifact.rb'
- 'app/models/ci/job_token/project_scope_link.rb'
@@ -83,10 +81,12 @@ Style/GuardClause:
- 'app/models/clusters/cluster.rb'
- 'app/models/clusters/platforms/kubernetes.rb'
- 'app/models/commit_range.rb'
+ - 'app/models/concerns/atomic_internal_id.rb'
- 'app/models/concerns/avatarable.rb'
- 'app/models/concerns/bulk_insert_safe.rb'
- 'app/models/concerns/cache_markdown_field.rb'
- 'app/models/concerns/cacheable_attributes.rb'
+ - 'app/models/concerns/cascading_namespace_setting_attribute.rb'
- 'app/models/concerns/deprecated_assignee.rb'
- 'app/models/concerns/has_wiki_page_meta_attributes.rb'
- 'app/models/concerns/issuable_link.rb'
@@ -134,14 +134,12 @@ Style/GuardClause:
- 'app/models/project_import_state.rb'
- 'app/models/project_label.rb'
- 'app/models/project_setting.rb'
- - 'app/models/protected_branch/push_access_level.rb'
- 'app/models/repository.rb'
- 'app/models/sent_notification.rb'
- 'app/models/sentry_issue.rb'
- 'app/models/service_desk_setting.rb'
- 'app/models/snippet_input_action.rb'
- 'app/models/user.rb'
- - 'app/models/users/in_product_marketing_email.rb'
- 'app/models/work_item.rb'
- 'app/models/work_items/parent_link.rb'
- 'app/presenters/ci/pipeline_presenter.rb'
@@ -171,8 +169,6 @@ Style/GuardClause:
- 'app/services/files/delete_service.rb'
- 'app/services/files/multi_service.rb'
- 'app/services/files/update_service.rb'
- - 'app/services/git/branch_hooks_service.rb'
- - 'app/services/groups/group_links/update_service.rb'
- 'app/services/groups/import_export/export_service.rb'
- 'app/services/groups/transfer_service.rb'
- 'app/services/groups/update_service.rb'
@@ -189,7 +185,6 @@ Style/GuardClause:
- 'app/services/merge_requests/add_spent_time_service.rb'
- 'app/services/merge_requests/base_service.rb'
- 'app/services/merge_requests/build_service.rb'
- - 'app/services/merge_requests/merge_base_service.rb'
- 'app/services/merge_requests/merge_service.rb'
- 'app/services/merge_requests/mergeability_check_service.rb'
- 'app/services/merge_requests/push_options_handler_service.rb'
@@ -199,7 +194,6 @@ Style/GuardClause:
- 'app/services/notes/post_process_service.rb'
- 'app/services/notification_recipients/builder/default.rb'
- 'app/services/notification_service.rb'
- - 'app/services/packages/create_event_service.rb'
- 'app/services/packages/create_package_service.rb'
- 'app/services/packages/nuget/search_service.rb'
- 'app/services/post_receive_service.rb'
@@ -309,7 +303,6 @@ Style/GuardClause:
- 'ee/app/models/ee/project_group_link.rb'
- 'ee/app/models/ee/project_member.rb'
- 'ee/app/models/ee/user.rb'
- - 'ee/app/models/epic/related_epic_link.rb'
- 'ee/app/models/epic_issue.rb'
- 'ee/app/models/geo_node.rb'
- 'ee/app/models/geo_node_status.rb'
@@ -320,7 +313,6 @@ Style/GuardClause:
- 'ee/app/models/namespace_limit.rb'
- 'ee/app/models/preloaders/environments/protected_environment_preloader.rb'
- 'ee/app/models/protected_environment.rb'
- - 'ee/app/models/protected_environments/deploy_access_level.rb'
- 'ee/app/models/users_security_dashboard_project.rb'
- 'ee/app/models/vulnerabilities/feedback.rb'
- 'ee/app/presenters/ee/merge_request_presenter.rb'
@@ -352,19 +344,16 @@ Style/GuardClause:
- 'ee/app/services/ee/projects/gitlab_projects_import_service.rb'
- 'ee/app/services/ee/projects/update_service.rb'
- 'ee/app/services/ee/protected_branches/loggable.rb'
- - 'ee/app/services/ee/wiki_pages/base_service.rb'
- 'ee/app/services/epics/close_service.rb'
- 'ee/app/services/epics/create_service.rb'
- 'ee/app/services/epics/reopen_service.rb'
- 'ee/app/services/epics/tree_reorder_service.rb'
- 'ee/app/services/epics/update_service.rb'
- - 'ee/app/services/geo/framework_repository_sync_service.rb'
- 'ee/app/services/geo/metrics_update_service.rb'
- 'ee/app/services/group_saml/group_managed_accounts/transfer_membership_service.rb'
- 'ee/app/services/groups/update_repository_storage_service.rb'
- 'ee/app/services/incident_management/oncall_rotations/remove_participant_service.rb'
- 'ee/app/services/iterations/delete_service.rb'
- - 'ee/app/services/merge_trains/check_status_service.rb'
- 'ee/app/services/merge_trains/refresh_merge_request_service.rb'
- 'ee/app/services/projects/update_mirror_service.rb'
- 'ee/app/services/security/override_uuids_service.rb'
@@ -418,7 +407,6 @@ Style/GuardClause:
- 'ee/spec/features/billings/billing_plans_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_spec.rb'
- 'ee/spec/support/ci/minutes_helpers.rb'
- - 'haml_lint/linter/documentation_links.rb'
- 'lib/api/commits.rb'
- 'lib/api/feature_flags.rb'
- 'lib/api/helpers.rb'
@@ -432,8 +420,6 @@ Style/GuardClause:
- 'lib/banzai/filter/gollum_tags_filter.rb'
- 'lib/banzai/filter/references/merge_request_reference_filter.rb'
- 'lib/banzai/filter/wiki_link_filter/rewriter.rb'
- - 'lib/bulk_imports/clients/graphql.rb'
- - 'lib/bulk_imports/pipeline/runner.rb'
- 'lib/bulk_imports/projects/pipelines/project_pipeline.rb'
- 'lib/container_registry/client.rb'
- 'lib/feature/definition.rb'
@@ -471,7 +457,6 @@ Style/GuardClause:
- 'lib/gitlab/ci/pipeline/chain/validate/abilities.rb'
- 'lib/gitlab/ci/pipeline/chain/validate/repository.rb'
- 'lib/gitlab/ci/pipeline/expression/lexeme/base.rb'
- - 'lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb'
- 'lib/gitlab/ci/reports/codequality_reports_comparer.rb'
- 'lib/gitlab/ci/runner/backoff.rb'
- 'lib/gitlab/ci/runner_upgrade_check.rb'
@@ -481,7 +466,6 @@ Style/GuardClause:
- 'lib/gitlab/ci/yaml_processor.rb'
- 'lib/gitlab/config/entry/validators.rb'
- 'lib/gitlab/daemon.rb'
- - 'lib/gitlab/database/background_migration/batch_optimizer.rb'
- 'lib/gitlab/database/background_migration/batched_migration_wrapper.rb'
- 'lib/gitlab/database/consistency_checker.rb'
- 'lib/gitlab/database/load_balancing/load_balancer.rb'
@@ -535,10 +519,8 @@ Style/GuardClause:
- 'lib/gitlab/legacy_github_import/issuable_formatter.rb'
- 'lib/gitlab/marginalia.rb'
- 'lib/gitlab/metrics/samplers/ruby_sampler.rb'
- - 'lib/gitlab/metrics/subscribers/action_cable.rb'
- 'lib/gitlab/metrics/subscribers/active_record.rb'
- 'lib/gitlab/metrics/subscribers/external_http.rb'
- - 'lib/gitlab/metrics/subscribers/rails_cache.rb'
- 'lib/gitlab/metrics/web_transaction.rb'
- 'lib/gitlab/middleware/read_only/controller.rb'
- 'lib/gitlab/pages/deployment_update.rb'
@@ -560,11 +542,9 @@ Style/GuardClause:
- 'lib/gitlab/serializer/pagination.rb'
- 'lib/gitlab/shell.rb'
- 'lib/gitlab/sidekiq_config/cli_methods.rb'
- - 'lib/gitlab/sidekiq_middleware/extra_done_log_metadata.rb'
- 'lib/gitlab/sidekiq_middleware/size_limiter/compressor.rb'
- 'lib/gitlab/sql/set_operator.rb'
- 'lib/gitlab/url_blocker.rb'
- - 'lib/gitlab/usage/metric_definition.rb'
- 'lib/gitlab/usage/metrics/instrumentations/count_bulk_imports_entities_metric.rb'
- 'lib/gitlab/utils/override.rb'
- 'lib/gitlab/webpack/manifest.rb'
@@ -607,7 +587,6 @@ Style/GuardClause:
- 'spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb'
- 'spec/services/issues/relative_position_rebalancing_service_spec.rb'
- 'spec/services/packages/maven/metadata/append_package_file_service_spec.rb'
- - 'spec/support/capybara.rb'
- 'spec/support/database/prevent_cross_joins.rb'
- 'spec/support/helpers/access_matchers_helpers.rb'
- 'spec/support/helpers/capybara_helpers.rb'
@@ -622,7 +601,6 @@ Style/GuardClause:
- 'spec/support/helpers/wait_helpers.rb'
- 'spec/support/import_export/export_file_helper.rb'
- 'spec/support/shared_examples/features/packages_shared_examples.rb'
- - 'spec/support/shared_examples/services/packages/debian/generate_distribution_shared_examples.rb'
- 'spec/tooling/lib/tooling/find_codeowners_spec.rb'
- 'spec/workers/container_expiration_policies/cleanup_container_repository_worker_spec.rb'
- 'tooling/lib/tooling/helm3_client.rb'
diff --git a/.rubocop_todo/style/percent_literal_delimiters.yml b/.rubocop_todo/style/percent_literal_delimiters.yml
deleted file mode 100644
index 1db9e97b669..00000000000
--- a/.rubocop_todo/style/percent_literal_delimiters.yml
+++ /dev/null
@@ -1,40 +0,0 @@
----
-# Cop supports --autocorrect.
-Style/PercentLiteralDelimiters:
- Exclude:
- - 'metrics_server/metrics_server.rb'
- - 'spec/tasks/gitlab/db_rake_spec.rb'
- - 'spec/tooling/danger/customer_success_spec.rb'
- - 'spec/tooling/danger/datateam_spec.rb'
- - 'spec/tooling/danger/sidekiq_queues_spec.rb'
- - 'spec/tooling/lib/tooling/test_map_generator_spec.rb'
- - 'spec/uploaders/attachment_uploader_spec.rb'
- - 'spec/uploaders/avatar_uploader_spec.rb'
- - 'spec/uploaders/ci/pipeline_artifact_uploader_spec.rb'
- - 'spec/uploaders/dependency_proxy/file_uploader_spec.rb'
- - 'spec/uploaders/design_management/design_v432x230_uploader_spec.rb'
- - 'spec/uploaders/external_diff_uploader_spec.rb'
- - 'spec/uploaders/import_export_uploader_spec.rb'
- - 'spec/uploaders/job_artifact_uploader_spec.rb'
- - 'spec/uploaders/lfs_object_uploader_spec.rb'
- - 'spec/uploaders/namespace_file_uploader_spec.rb'
- - 'spec/uploaders/object_storage_spec.rb'
- - 'spec/uploaders/packages/composer/cache_uploader_spec.rb'
- - 'spec/uploaders/packages/debian/component_file_uploader_spec.rb'
- - 'spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb'
- - 'spec/uploaders/packages/package_file_uploader_spec.rb'
- - 'spec/uploaders/pages/deployment_uploader_spec.rb'
- - 'spec/uploaders/personal_file_uploader_spec.rb'
- - 'spec/validators/any_field_validator_spec.rb'
- - 'spec/views/layouts/_head.html.haml_spec.rb'
- - 'spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb'
- - 'spec/views/projects/commit/branches.html.haml_spec.rb'
- - 'spec/workers/concerns/worker_context_spec.rb'
- - 'spec/workers/container_registry/migration/enqueuer_worker_spec.rb'
- - 'spec/workers/groups/update_statistics_worker_spec.rb'
- - 'spec/workers/jira_connect/sync_branch_worker_spec.rb'
- - 'spec/workers/post_receive_spec.rb'
- - 'spec/workers/project_cache_worker_spec.rb'
- - 'spec/workers/projects/record_target_platforms_worker_spec.rb'
- - 'spec/workers/stuck_merge_jobs_worker_spec.rb'
- - 'spec/workers/update_project_statistics_worker_spec.rb'
diff --git a/.rubocop_todo/style/redundant_return.yml b/.rubocop_todo/style/redundant_return.yml
new file mode 100644
index 00000000000..344dbbbc4cd
--- /dev/null
+++ b/.rubocop_todo/style/redundant_return.yml
@@ -0,0 +1,102 @@
+---
+# Cop supports --autocorrect.
+Style/RedundantReturn:
+ Details: grace period
+ Exclude:
+ - 'app/controllers/concerns/hotlink_interceptor.rb'
+ - 'app/controllers/concerns/issuable_collections.rb'
+ - 'app/controllers/concerns/notes_actions.rb'
+ - 'app/controllers/concerns/snippet_authorizations.rb'
+ - 'app/controllers/groups/labels_controller.rb'
+ - 'app/controllers/groups/milestones_controller.rb'
+ - 'app/controllers/groups/registry/repositories_controller.rb'
+ - 'app/controllers/groups/settings/ci_cd_controller.rb'
+ - 'app/controllers/groups/variables_controller.rb'
+ - 'app/controllers/import/bitbucket_server_controller.rb'
+ - 'app/controllers/import/github_controller.rb'
+ - 'app/controllers/profiles_controller.rb'
+ - 'app/controllers/projects/application_controller.rb'
+ - 'app/controllers/projects/artifacts_controller.rb'
+ - 'app/controllers/projects/blob_controller.rb'
+ - 'app/controllers/projects/jobs_controller.rb'
+ - 'app/controllers/projects/labels_controller.rb'
+ - 'app/controllers/projects/merge_requests/conflicts_controller.rb'
+ - 'app/controllers/projects/merge_requests/diffs_controller.rb'
+ - 'app/controllers/projects/merge_requests_controller.rb'
+ - 'app/controllers/projects/milestones_controller.rb'
+ - 'app/controllers/projects/notes_controller.rb'
+ - 'app/controllers/projects/pipeline_schedules_controller.rb'
+ - 'app/controllers/projects/pipelines_controller.rb'
+ - 'app/controllers/projects/refs_controller.rb'
+ - 'app/controllers/projects/snippets/application_controller.rb'
+ - 'app/controllers/projects/web_ide_terminals_controller.rb'
+ - 'app/controllers/sent_notifications_controller.rb'
+ - 'app/controllers/snippets/notes_controller.rb'
+ - 'app/helpers/profiles_helper.rb'
+ - 'app/models/clusters/cluster.rb'
+ - 'app/models/concerns/cascading_namespace_setting_attribute.rb'
+ - 'app/models/namespace.rb'
+ - 'app/models/namespaces/randomized_suffix_path.rb'
+ - 'app/models/notification_recipient.rb'
+ - 'app/models/packages/debian/publication.rb'
+ - 'app/models/releases/link.rb'
+ - 'app/models/work_items/widgets/hierarchy.rb'
+ - 'app/presenters/packages/nuget/service_index_presenter.rb'
+ - 'app/presenters/packages/nuget/version_helpers.rb'
+ - 'app/services/boards/base_item_move_service.rb'
+ - 'app/services/error_tracking/base_service.rb'
+ - 'app/services/error_tracking/issue_update_service.rb'
+ - 'app/services/jira_import/start_import_service.rb'
+ - 'app/services/releases/update_service.rb'
+ - 'ee/app/controllers/concerns/audit_events/enforces_valid_date_params.rb'
+ - 'ee/app/controllers/concerns/description_diff_actions.rb'
+ - 'ee/app/controllers/ee/dashboard/projects_controller.rb'
+ - 'ee/app/controllers/ee/projects/environments_controller.rb'
+ - 'ee/app/controllers/ee/projects/merge_requests_controller.rb'
+ - 'ee/app/controllers/groups/analytics/application_controller.rb'
+ - 'ee/app/controllers/groups/analytics/cycle_analytics/stages_controller.rb'
+ - 'ee/app/controllers/groups/analytics/cycle_analytics/summary_controller.rb'
+ - 'ee/app/controllers/groups/analytics/tasks_by_type_controller.rb'
+ - 'ee/app/controllers/groups/epics_controller.rb'
+ - 'ee/app/controllers/projects/integrations/jira/issues_controller.rb'
+ - 'ee/app/controllers/projects/integrations/zentao/issues_controller.rb'
+ - 'ee/app/controllers/projects/on_demand_scans_controller.rb'
+ - 'ee/app/controllers/projects/security/dast_site_profiles_controller.rb'
+ - 'ee/app/controllers/projects/vulnerability_feedback_controller.rb'
+ - 'ee/app/helpers/ee/application_helper.rb'
+ - 'ee/app/helpers/ee/boards_helper.rb'
+ - 'ee/app/helpers/ee/personal_access_tokens_helper.rb'
+ - 'ee/app/models/geo/upload_registry.rb'
+ - 'ee/app/serializers/vulnerabilities/feedback_entity.rb'
+ - 'ee/app/serializers/vulnerabilities/finding_entity.rb'
+ - 'ee/app/serializers/vulnerabilities/issue_link_entity.rb'
+ - 'ee/app/serializers/vulnerabilities/merge_request_link_entity.rb'
+ - 'ee/app/services/audit_events/streaming/headers/base.rb'
+ - 'ee/app/services/ee/post_receive_service.rb'
+ - 'ee/app/services/gitlab_subscriptions/user_add_on_assignments/create_service.rb'
+ - 'ee/app/services/security/orchestration/assign_service.rb'
+ - 'ee/app/services/vulnerabilities/manually_create_service.rb'
+ - 'ee/app/workers/ee/repository_check/batch_worker.rb'
+ - 'ee/app/workers/ee/repository_check/single_repository_worker.rb'
+ - 'ee/lib/api/dependency_proxy/packages/maven.rb'
+ - 'ee/lib/ee/api/entities/billable_member.rb'
+ - 'ee/lib/ee/gitlab/checks/push_rules/secrets_check.rb'
+ - 'ee/lib/gitlab/llm/chain/tools/epic_identifier/executor.rb'
+ - 'ee/lib/gitlab/llm/chain/tools/issue_identifier/executor.rb'
+ - 'lib/api/nuget_project_packages.rb'
+ - 'lib/api/pagination_params.rb'
+ - 'lib/feature/gitaly.rb'
+ - 'lib/gitlab/auth/database/authentication.rb'
+ - 'lib/gitlab/ci/parsers/coverage/sax_document.rb'
+ - 'lib/gitlab/database/health_status/indicators/prometheus_alert_indicator.rb'
+ - 'lib/gitlab/graphql/queries.rb'
+ - 'lib/gitlab/hotlinking_detector.rb'
+ - 'lib/gitlab/instrumentation_helper.rb'
+ - 'lib/gitlab/redis/wrapper.rb'
+ - 'lib/gitlab/signed_tag.rb'
+ - 'qa/qa/specs/helpers/context_selector.rb'
+ - 'qa/qa/support/formatters/allure_metadata_formatter.rb'
+ - 'qa/qa/support/formatters/context_formatter.rb'
+ - 'rubocop/cop/background_migration/dictionary_file.rb'
+ - 'scripts/api/get_package_and_test_job.rb'
+ - 'tooling/lib/tooling/mappings/graphql_base_type_mappings.rb'
diff --git a/.rubocop_todo/style/string_literals_in_interpolation.yml b/.rubocop_todo/style/string_literals_in_interpolation.yml
index daa9b90b177..4eced04e261 100644
--- a/.rubocop_todo/style/string_literals_in_interpolation.yml
+++ b/.rubocop_todo/style/string_literals_in_interpolation.yml
@@ -1,15 +1,13 @@
---
# Cop supports --autocorrect.
Style/StringLiteralsInInterpolation:
+ Details: grace period
Exclude:
- - 'app/graphql/mutations/base_mutation.rb'
- - 'app/helpers/colors_helper.rb'
- 'app/models/application_setting_implementation.rb'
- 'app/models/ci/namespace_mirror.rb'
- 'app/services/draft_notes/publish_service.rb'
- 'app/services/projects/create_service.rb'
- 'app/validators/nested_attributes_duplicates_validator.rb'
- - 'app/views/events/_event.atom.builder'
- 'app/workers/concerns/application_worker.rb'
- 'config/initializers/validate_database_config.rb'
- 'ee/app/helpers/ee/merge_requests_helper.rb'
@@ -17,8 +15,7 @@ Style/StringLiteralsInInterpolation:
- 'ee/app/services/epics/tree_reorder_service.rb'
- 'ee/lib/ee/api/helpers/issues_helpers.rb'
- 'ee/spec/features/admin/admin_settings_spec.rb'
- - 'ee/spec/features/subscriptions/expiring_subscription_message_spec.rb'
- - 'ee/spec/lib/gitlab/expiring_subscription_message_spec.rb'
+ - 'ee/spec/lib/gitlab/llm/chain/agents/zero_shot/executor_real_requests_spec.rb'
- 'lib/api/helpers/snippets_helpers.rb'
- 'lib/api/validations/validators/check_assignees_count.rb'
- 'lib/banzai/filter/references/abstract_reference_filter.rb'
@@ -39,15 +36,12 @@ Style/StringLiteralsInInterpolation:
- 'lib/tasks/gitlab/info.rake'
- 'lib/tasks/gitlab/sidekiq.rake'
- 'qa/qa/ee/page/component/secure_report.rb'
- - 'qa/qa/ee/page/group/secure/show.rb'
- 'qa/qa/resource/events/base.rb'
- 'qa/qa/service/cluster_provider/base.rb'
- 'qa/qa/service/cluster_provider/gcloud.rb'
- - 'qa/qa/specs/helpers/context_selector.rb'
- 'qa/qa/tools/generate_perf_testdata.rb'
- 'rubocop/cop/migration/prevent_index_creation.rb'
- 'spec/features/commits_spec.rb'
- - 'spec/features/dashboard/merge_requests_spec.rb'
- 'spec/features/users/login_spec.rb'
- 'spec/lib/banzai/filter/references/commit_reference_filter_spec.rb'
- 'spec/lib/banzai/filter/references/issue_reference_filter_spec.rb'
diff --git a/Gemfile b/Gemfile
index 77da6d57fef..f25635fde1b 100644
--- a/Gemfile
+++ b/Gemfile
@@ -426,7 +426,7 @@ group :development, :test do
gem 'spring', '~> 4.1.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'spring-commands-rspec', '~> 1.0.4' # rubocop:todo Gemfile/MissingFeatureCategory
- gem 'gitlab-styles', '~> 10.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
+ gem 'gitlab-styles', '~> 11.0.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'haml_lint', '~> 0.40.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'bundler-audit', '~> 0.9.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
diff --git a/Gemfile.checksum b/Gemfile.checksum
index 2110a0cd7a6..5c4be5c85ce 100644
--- a/Gemfile.checksum
+++ b/Gemfile.checksum
@@ -218,7 +218,7 @@
{"name":"gitlab-mail_room","version":"0.0.23","platform":"ruby","checksum":"23564fa4dab24ec5011d4c64a801fc0228301d5b0f046a26a1d8e96e36c19997"},
{"name":"gitlab-markup","version":"1.9.0","platform":"ruby","checksum":"7eda045a08ec2d110084252fa13a8c9eac8bdac0e302035ca7db4b82bcbd7ed4"},
{"name":"gitlab-net-dns","version":"0.9.2","platform":"ruby","checksum":"f726d978479d43810819f12a45c0906d775a07e34df111bbe693fffbbef3059d"},
-{"name":"gitlab-styles","version":"10.1.0","platform":"ruby","checksum":"f42745f5397d042fe24cf2d0eb56c995b37f9f43d8fb79b834d197a1cafdc84a"},
+{"name":"gitlab-styles","version":"11.0.0","platform":"ruby","checksum":"0dd8ec066ce9955ac51d3616c6bfded30f75bb526f39ff392ece6f43d5b9406b"},
{"name":"gitlab_chronic_duration","version":"0.12.0","platform":"ruby","checksum":"0d766944d415b5c831f176871ee8625783fc0c5bfbef2d79a3a616f207ffc16d"},
{"name":"gitlab_omniauth-ldap","version":"2.2.0","platform":"ruby","checksum":"bb4d20acb3b123ed654a8f6a47d3fac673ece7ed0b6992edb92dca14bad2838c"},
{"name":"gitlab_quality-test_tooling","version":"1.5.0","platform":"ruby","checksum":"7ce31d48462290f39c2c9bf8ae99b39b31e3a5eba0546bac058cdb6f7f88afd3"},
@@ -547,14 +547,14 @@
{"name":"rspec-support","version":"3.12.0","platform":"ruby","checksum":"dd4d44b247ff679b95b5607ac5641d197a5f9b1d33f916123cb98fc5f917c58b"},
{"name":"rspec_junit_formatter","version":"0.6.0","platform":"ruby","checksum":"40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15"},
{"name":"rspec_profiling","version":"0.0.6","platform":"ruby","checksum":"7a45697f79dcec9a174a0e26703465f6bd52ee78e8d798741240bfcef38f6e6e"},
-{"name":"rubocop","version":"1.50.2","platform":"ruby","checksum":"7cfeb0616f686ac61d049beae89f31446792d7e9f5728152657548f70aa78650"},
+{"name":"rubocop","version":"1.57.2","platform":"ruby","checksum":"8f679dfe42d7821dc61dafb17d14b1294343157a197b9f8a23720ca17fb9161b"},
{"name":"rubocop-ast","version":"1.29.0","platform":"ruby","checksum":"d1da2ab279a074baefc81758ac430c5768a8da8c7438dd4e5819ce5984d00ba1"},
-{"name":"rubocop-capybara","version":"2.18.0","platform":"ruby","checksum":"66b256755101f76dc455ba9694e2414bc957db5200401d204b00bc835401d605"},
-{"name":"rubocop-factory_bot","version":"2.23.1","platform":"ruby","checksum":"c19ee30c02e591f4293c07e943e22b7999c545d5010aac4d79621ee310850c4f"},
+{"name":"rubocop-capybara","version":"2.19.0","platform":"ruby","checksum":"fa329e0f185be313fa5dabd6056f83a718db7f4a259aa97fc287a40254899ccb"},
+{"name":"rubocop-factory_bot","version":"2.24.0","platform":"ruby","checksum":"3018d350315277200c31c98a5297c9d19463536c04bdeba0a75a512e3975e9f8"},
{"name":"rubocop-graphql","version":"0.19.0","platform":"ruby","checksum":"ba4b2fc91c9f0fda47e0870a6ae15a1e5525d6caffcb150dc88b00caaacc3e43"},
-{"name":"rubocop-performance","version":"1.18.0","platform":"ruby","checksum":"4c9d74f1b5bfaffb5b1cdb843279364198ac804e2644ae194615834dd011e02e"},
-{"name":"rubocop-rails","version":"2.20.2","platform":"ruby","checksum":"d20cbd613900fa22bcf85a7fba78ab68b21fc4f90b1e73c97284d40674332417"},
-{"name":"rubocop-rspec","version":"2.22.0","platform":"ruby","checksum":"2d7493222c81c78ad304ddd81aaf64b3543bcfac6d3d8706c220331921753a03"},
+{"name":"rubocop-performance","version":"1.19.1","platform":"ruby","checksum":"52664172d944eb45d478ed6d04c8b02c36cf0ee15726fabb6c90a95ca5cdfadf"},
+{"name":"rubocop-rails","version":"2.22.1","platform":"ruby","checksum":"db673cdb6321d8bb7627cd6cfb2cb36114acaa0e89581e4694b7304ce2acbd46"},
+{"name":"rubocop-rspec","version":"2.25.0","platform":"ruby","checksum":"083f8a0481dbb9969b2a9eae85670a454fe91d46812e6ec97b34e7f6227b99f3"},
{"name":"ruby-fogbugz","version":"0.3.0","platform":"ruby","checksum":"5e04cde474648f498a71cf1e1a7ab42c66b953862fbe224f793ec0a7a1d5f657"},
{"name":"ruby-lsp","version":"0.12.3","platform":"ruby","checksum":"e49d82cdcb20c16f3b78556e3107af813f785c05d2d02658f810d03852db4567"},
{"name":"ruby-lsp-rails","version":"0.2.7","platform":"ruby","checksum":"722c4613d212aa136733b36674e5773e2352de9b3c1a05cafec86dc589a47811"},
diff --git a/Gemfile.lock b/Gemfile.lock
index 645c0a115ae..6fbd0fb6c01 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -687,8 +687,8 @@ GEM
oauth2 (>= 1.4.4, < 3)
gitlab-markup (1.9.0)
gitlab-net-dns (0.9.2)
- gitlab-styles (10.1.0)
- rubocop (~> 1.50.2)
+ gitlab-styles (11.0.0)
+ rubocop (~> 1.57.1)
rubocop-graphql (~> 0.18)
rubocop-performance (~> 1.15)
rubocop-rails (~> 2.17)
@@ -1409,33 +1409,34 @@ GEM
pg
rails
sqlite3
- rubocop (1.50.2)
+ rubocop (1.57.2)
json (~> 2.3)
+ language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
- parser (>= 3.2.0.0)
+ parser (>= 3.2.2.4)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
- rubocop-ast (>= 1.28.0, < 2.0)
+ rubocop-ast (>= 1.28.1, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.29.0)
parser (>= 3.2.1.0)
- rubocop-capybara (2.18.0)
+ rubocop-capybara (2.19.0)
rubocop (~> 1.41)
- rubocop-factory_bot (2.23.1)
+ rubocop-factory_bot (2.24.0)
rubocop (~> 1.33)
rubocop-graphql (0.19.0)
rubocop (>= 0.87, < 2)
- rubocop-performance (1.18.0)
+ rubocop-performance (1.19.1)
rubocop (>= 1.7.0, < 2.0)
rubocop-ast (>= 0.4.0)
- rubocop-rails (2.20.2)
+ rubocop-rails (2.22.1)
activesupport (>= 4.2.0)
rack (>= 1.1)
rubocop (>= 1.33.0, < 2.0)
- rubocop-rspec (2.22.0)
- rubocop (~> 1.33)
+ rubocop-rspec (2.25.0)
+ rubocop (~> 1.40)
rubocop-capybara (~> 2.17)
rubocop-factory_bot (~> 2.22)
ruby-fogbugz (0.3.0)
@@ -1862,7 +1863,7 @@ DEPENDENCIES
gitlab-safe_request_store!
gitlab-schema-validation!
gitlab-sidekiq-fetcher!
- gitlab-styles (~> 10.1.0)
+ gitlab-styles (~> 11.0.0)
gitlab-utils!
gitlab_chronic_duration (~> 0.12)
gitlab_omniauth-ldap (~> 2.2.0)
diff --git a/app/assets/javascripts/merge_requests/components/sticky_header.vue b/app/assets/javascripts/merge_requests/components/sticky_header.vue
index 62654c3baf6..877e6142bae 100644
--- a/app/assets/javascripts/merge_requests/components/sticky_header.vue
+++ b/app/assets/javascripts/merge_requests/components/sticky_header.vue
@@ -1,5 +1,12 @@
<script>
-import { GlIntersectionObserver, GlLink, GlSprintf, GlBadge } from '@gitlab/ui';
+import {
+ GlIntersectionObserver,
+ GlLink,
+ GlSprintf,
+ GlBadge,
+ GlIcon,
+ GlTooltipDirective,
+} from '@gitlab/ui';
// eslint-disable-next-line no-restricted-imports
import { mapGetters, mapState } from 'vuex';
import SafeHtml from '~/vue_shared/directives/safe_html';
@@ -45,6 +52,7 @@ export default {
GlLink,
GlSprintf,
GlBadge,
+ GlIcon,
DiscussionCounter,
StatusBadge,
TodoWidget,
@@ -53,10 +61,12 @@ export default {
},
directives: {
SafeHtml,
+ GlTooltip: GlTooltipDirective,
},
mixins: [glFeatureFlagsMixin()],
inject: {
projectPath: { default: null },
+ sourceProjectPath: { default: null },
title: { default: '' },
tabs: { default: () => [] },
isFluidLayout: { default: false },
@@ -89,6 +99,16 @@ export default {
isNotificationsTodosButtons() {
return this.glFeatures.notificationsTodosButtons && this.glFeatures.movedMrSidebar;
},
+ isForked() {
+ return this.projectPath !== this.sourceProjectPath;
+ },
+ sourceBranch() {
+ if (this.isForked) {
+ return `${this.sourceProjectPath}:${this.getNoteableData.source_branch}`;
+ }
+
+ return this.getNoteableData.source_branch;
+ },
},
watch: {
discussionTabCounter(val) {
@@ -153,8 +173,17 @@ export default {
:title="getNoteableData.source_branch"
:href="getNoteableData.source_branch_path"
class="gl-text-blue-500! gl-font-monospace gl-bg-blue-50 gl-rounded-base gl-font-sm gl-px-2 gl-text-truncate gl-max-w-26"
+ data-testid="source-branch"
>
- {{ getNoteableData.source_branch }}
+ <span
+ v-if="isForked"
+ v-gl-tooltip
+ class="gl-vertical-align-middle gl-mr-n2"
+ :title="__('The source project is a fork')"
+ >
+ <gl-icon name="fork" :size="12" class="gl-ml-1" />
+ </span>
+ {{ sourceBranch }}
</gl-link>
</template>
<template #target>
diff --git a/app/assets/javascripts/pages/projects/merge_requests/page.js b/app/assets/javascripts/pages/projects/merge_requests/page.js
index fb243d01dc6..a9d281fc899 100644
--- a/app/assets/javascripts/pages/projects/merge_requests/page.js
+++ b/app/assets/javascripts/pages/projects/merge_requests/page.js
@@ -28,7 +28,7 @@ requestIdleCallback(() => {
if (el) {
const { data } = el.dataset;
- const { iid, projectPath, title, tabs, isFluidLayout } = JSON.parse(data);
+ const { iid, projectPath, title, tabs, isFluidLayout, sourceProjectPath } = JSON.parse(data);
// eslint-disable-next-line no-new
new Vue({
@@ -42,6 +42,7 @@ requestIdleCallback(() => {
title,
tabs,
isFluidLayout: parseBoolean(isFluidLayout),
+ sourceProjectPath,
},
render(h) {
return h(StickyHeader);
diff --git a/app/assets/javascripts/vue_shared/components/markdown/header.vue b/app/assets/javascripts/vue_shared/components/markdown/header.vue
index 741bdfd211b..cc3c95a047b 100644
--- a/app/assets/javascripts/vue_shared/components/markdown/header.vue
+++ b/app/assets/javascripts/vue_shared/components/markdown/header.vue
@@ -492,7 +492,7 @@ export default {
tracking-property="quickAction"
/>
<comment-templates-dropdown
- v-if="!previewMarkdown && newCommentTemplatePath && glFeatures.savedReplies"
+ v-if="!previewMarkdown && newCommentTemplatePath"
:new-comment-template-path="newCommentTemplatePath"
@select="insertSavedReply"
/>
diff --git a/app/controllers/profiles/comment_templates_controller.rb b/app/controllers/profiles/comment_templates_controller.rb
index d6725c27f76..f7c1f8733de 100644
--- a/app/controllers/profiles/comment_templates_controller.rb
+++ b/app/controllers/profiles/comment_templates_controller.rb
@@ -5,8 +5,6 @@ module Profiles
feature_category :user_profile
before_action do
- render_404 unless Feature.enabled?(:saved_replies, current_user)
-
@hide_search_settings = true
end
end
diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb
index fe0e3b68288..a6444dc038c 100644
--- a/app/controllers/projects/issues_controller.rb
+++ b/app/controllers/projects/issues_controller.rb
@@ -45,7 +45,6 @@ class Projects::IssuesController < Projects::ApplicationController
before_action do
push_frontend_feature_flag(:preserve_unchanged_markdown, project)
- push_frontend_feature_flag(:saved_replies, current_user)
push_frontend_feature_flag(:issues_grid_view)
push_frontend_feature_flag(:service_desk_ticket)
push_frontend_feature_flag(:issues_list_drawer, project)
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index fc7f56c7dd1..eb7505bd81f 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -41,7 +41,6 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
push_frontend_feature_flag(:moved_mr_sidebar, project)
push_frontend_feature_flag(:sast_reports_in_inline_diff, project)
push_frontend_feature_flag(:mr_experience_survey, project)
- push_frontend_feature_flag(:saved_replies, current_user)
push_force_frontend_feature_flag(:summarize_my_code_review, summarize_my_code_review_enabled?)
push_frontend_feature_flag(:ci_job_failures_in_mr, project)
push_frontend_feature_flag(:mr_pipelines_graphql, project)
diff --git a/app/controllers/projects/work_items_controller.rb b/app/controllers/projects/work_items_controller.rb
index c3986be31b0..84cc1b16136 100644
--- a/app/controllers/projects/work_items_controller.rb
+++ b/app/controllers/projects/work_items_controller.rb
@@ -11,7 +11,6 @@ class Projects::WorkItemsController < Projects::ApplicationController
push_force_frontend_feature_flag(:work_items, project&.work_items_feature_flag_enabled?)
push_force_frontend_feature_flag(:work_items_mvc, project&.work_items_mvc_feature_flag_enabled?)
push_force_frontend_feature_flag(:work_items_mvc_2, project&.work_items_mvc_2_feature_flag_enabled?)
- push_force_frontend_feature_flag(:saved_replies, current_user)
push_force_frontend_feature_flag(:linked_work_items, project&.linked_work_items_feature_flag_enabled?)
end
diff --git a/app/graphql/mutations/saved_replies/base.rb b/app/graphql/mutations/saved_replies/base.rb
index 4923fcb7851..79761645eb7 100644
--- a/app/graphql/mutations/saved_replies/base.rb
+++ b/app/graphql/mutations/saved_replies/base.rb
@@ -23,10 +23,6 @@ module Mutations
end
end
- def feature_enabled?
- Feature.enabled?(:saved_replies, current_user)
- end
-
def find_object(id)
GitlabSchema.find_by_gid(id)
end
diff --git a/app/graphql/mutations/saved_replies/create.rb b/app/graphql/mutations/saved_replies/create.rb
index d97461a1c2a..25c02b79cb8 100644
--- a/app/graphql/mutations/saved_replies/create.rb
+++ b/app/graphql/mutations/saved_replies/create.rb
@@ -16,8 +16,6 @@ module Mutations
description: copy_field_description(Types::SavedReplyType, :content)
def resolve(name:, content:)
- raise Gitlab::Graphql::Errors::ResourceNotAvailable, 'Feature disabled' unless feature_enabled?
-
result = ::Users::SavedReplies::CreateService.new(current_user: current_user, name: name, content: content).execute
present_result(result)
end
diff --git a/app/graphql/mutations/saved_replies/destroy.rb b/app/graphql/mutations/saved_replies/destroy.rb
index 7cd0f21ad45..655ed9cb798 100644
--- a/app/graphql/mutations/saved_replies/destroy.rb
+++ b/app/graphql/mutations/saved_replies/destroy.rb
@@ -12,8 +12,6 @@ module Mutations
description: copy_field_description(Types::SavedReplyType, :id)
def resolve(id:)
- raise Gitlab::Graphql::Errors::ResourceNotAvailable, 'Feature disabled' unless feature_enabled?
-
saved_reply = authorized_find!(id)
result = ::Users::SavedReplies::DestroyService.new(saved_reply: saved_reply).execute
present_result(result)
diff --git a/app/graphql/mutations/saved_replies/update.rb b/app/graphql/mutations/saved_replies/update.rb
index d9368de7547..f5dc81614d2 100644
--- a/app/graphql/mutations/saved_replies/update.rb
+++ b/app/graphql/mutations/saved_replies/update.rb
@@ -20,8 +20,6 @@ module Mutations
description: copy_field_description(Types::SavedReplyType, :content)
def resolve(id:, name:, content:)
- raise Gitlab::Graphql::Errors::ResourceNotAvailable, 'Feature disabled' unless feature_enabled?
-
saved_reply = authorized_find!(id)
result = ::Users::SavedReplies::UpdateService.new(saved_reply: saved_reply, name: name, content: content).execute
present_result(result)
diff --git a/app/graphql/resolvers/saved_reply_resolver.rb b/app/graphql/resolvers/saved_reply_resolver.rb
index 96bbc139c96..1a5f2c9be78 100644
--- a/app/graphql/resolvers/saved_reply_resolver.rb
+++ b/app/graphql/resolvers/saved_reply_resolver.rb
@@ -11,8 +11,6 @@ module Resolvers
description: 'ID of a saved reply.'
def resolve(id:)
- return unless Feature.enabled?(:saved_replies, current_user)
-
saved_reply = ::Users::SavedReply.find_saved_reply(user_id: current_user.id, id: id.model_id)
return unless saved_reply
diff --git a/app/graphql/types/user_interface.rb b/app/graphql/types/user_interface.rb
index 7a43d5891d7..040711b5f58 100644
--- a/app/graphql/types/user_interface.rb
+++ b/app/graphql/types/user_interface.rb
@@ -139,13 +139,11 @@ module Types
field :saved_replies,
Types::SavedReplyType.connection_type,
null: true,
- description: 'Saved replies authored by the user. ' \
- 'Will not return saved replies if `saved_replies` feature flag is disabled.'
+ description: 'Saved replies authored by the user.'
field :saved_reply,
resolver: Resolvers::SavedReplyResolver,
- description: 'Saved reply authored by the user. ' \
- 'Will not return saved reply if `saved_replies` feature flag is disabled.'
+ description: 'Saved reply authored by the user.'
field :gitpod_enabled, GraphQL::Types::Boolean, null: true,
description: 'Whether Gitpod is enabled at the user level.'
diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb
index 558ef9c798f..1dc4c393bf2 100644
--- a/app/helpers/merge_requests_helper.rb
+++ b/app/helpers/merge_requests_helper.rb
@@ -290,6 +290,7 @@ module MergeRequestsHelper
data = {
iid: @merge_request.iid,
projectPath: @project.full_path,
+ sourceProjectPath: @merge_request.source_project_path,
title: markdown_field(@merge_request, :title),
isFluidLayout: fluid_layout.to_s,
tabs: [
diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb
index a8570ab304a..84a809bc510 100644
--- a/app/helpers/users_helper.rb
+++ b/app/helpers/users_helper.rb
@@ -347,10 +347,6 @@ module UsersHelper
}.with_indifferent_access.freeze
end
- def saved_replies_enabled?
- Feature.enabled?(:saved_replies, current_user)
- end
-
def preload_project_associations(_)
# Overridden in EE
end
diff --git a/app/models/ci/bridge.rb b/app/models/ci/bridge.rb
index d0ccf5c543a..cf6401dc1da 100644
--- a/app/models/ci/bridge.rb
+++ b/app/models/ci/bridge.rb
@@ -114,7 +114,7 @@ module Ci
project = options&.dig(:trigger, :project)
next unless project
- scoped_variables.to_runner_variables.yield_self do |all_variables|
+ scoped_variables.to_runner_variables.then do |all_variables|
::ExpandVariables.expand(project, all_variables)
end
end
@@ -199,7 +199,7 @@ module Ci
branch = options&.dig(:trigger, :branch)
return unless branch
- scoped_variables.to_runner_variables.yield_self do |all_variables|
+ scoped_variables.to_runner_variables.then do |all_variables|
::ExpandVariables.expand(branch, all_variables)
end
end
diff --git a/app/models/personal_access_token.rb b/app/models/personal_access_token.rb
index 4dfe7252a0c..f2fbb5b989e 100644
--- a/app/models/personal_access_token.rb
+++ b/app/models/personal_access_token.rb
@@ -44,8 +44,9 @@ class PersonalAccessToken < ApplicationRecord
scope :last_used_after, -> (date) { where("last_used_at >= ?", date) }
validates :scopes, presence: true
+ validates :expires_at, presence: true, on: :create, unless: :allow_expires_at_to_be_empty?
+
validate :validate_scopes
- validates :expires_at, presence: true, on: :create
validate :expires_at_before_instance_max_expiry_date, on: :create
def revoke!
@@ -97,6 +98,10 @@ class PersonalAccessToken < ApplicationRecord
self.class.token_prefix
end
+ def allow_expires_at_to_be_empty?
+ false
+ end
+
def expires_at_before_instance_max_expiry_date
return unless expires_at
diff --git a/app/presenters/user_presenter.rb b/app/presenters/user_presenter.rb
index 43164cca9c9..da087ce6858 100644
--- a/app/presenters/user_presenter.rb
+++ b/app/presenters/user_presenter.rb
@@ -21,7 +21,6 @@ class UserPresenter < Gitlab::View::Presenter::Delegated
delegator_override :saved_replies
def saved_replies
- return ::Users::SavedReply.none unless Feature.enabled?(:saved_replies, current_user)
return ::Users::SavedReply.none unless current_user.can?(:read_saved_replies, user)
user.saved_replies
diff --git a/app/serializers/build_details_entity.rb b/app/serializers/build_details_entity.rb
index 9aee031328b..35063ceeb06 100644
--- a/app/serializers/build_details_entity.rb
+++ b/app/serializers/build_details_entity.rb
@@ -14,7 +14,7 @@ class BuildDetailsEntity < Ci::JobEntity
expose :deployment_status, if: -> (*) { build.deployment_job? } do
expose :deployment_status, as: :status
expose :persisted_environment, as: :environment do |build, options|
- options.merge(deployment_details: false).yield_self do |opts|
+ options.merge(deployment_details: false).then do |opts|
EnvironmentEntity.represent(build.persisted_environment, opts)
end
end
diff --git a/app/serializers/deployment_entity.rb b/app/serializers/deployment_entity.rb
index 7cd913d057e..851d7a95d40 100644
--- a/app/serializers/deployment_entity.rb
+++ b/app/serializers/deployment_entity.rb
@@ -28,7 +28,7 @@ class DeploymentEntity < Grape::Entity
expose :deployed_by, as: :user, using: UserEntity
expose :deployable, if: -> (deployment) { deployment.deployable.present? } do |deployment, opts|
- deployment.deployable.yield_self do |deployable|
+ deployment.deployable.then do |deployable|
if include_details?
Ci::JobEntity.represent(deployable, opts)
elsif can_read_deployables?
diff --git a/app/services/web_hook_service.rb b/app/services/web_hook_service.rb
index 854eb41c8a6..035f1754cbb 100644
--- a/app/services/web_hook_service.rb
+++ b/app/services/web_hook_service.rb
@@ -83,13 +83,13 @@ class WebHookService
log_execution(
response: response,
- execution_duration: Gitlab::Metrics::System.monotonic_time - start_time
+ execution_duration: ::Gitlab::Metrics::System.monotonic_time - start_time
)
ServiceResponse.success(message: response.body, payload: { http_status: response.code })
rescue *Gitlab::HTTP::HTTP_ERRORS,
Gitlab::Json::LimitedEncoder::LimitExceeded, URI::InvalidURIError => e
- execution_duration = Gitlab::Metrics::System.monotonic_time - start_time
+ execution_duration = ::Gitlab::Metrics::System.monotonic_time - start_time
error_message = e.to_s
log_execution(
diff --git a/app/views/admin/application_settings/_account_and_limit.html.haml b/app/views/admin/application_settings/_account_and_limit.html.haml
index 52f7fa3bc12..1d58b0106c4 100644
--- a/app/views/admin/application_settings/_account_and_limit.html.haml
+++ b/app/views/admin/application_settings/_account_and_limit.html.haml
@@ -30,6 +30,7 @@
= render_if_exists 'admin/application_settings/git_two_factor_session_expiry', form: f
= render_if_exists 'admin/application_settings/personal_access_token_expiration_policy', form: f
+ = render_if_exists 'admin/application_settings/service_access_tokens_expiration_enforced', form: f
= render_if_exists 'admin/application_settings/ssh_key_expiration_policy', form: f
.form-group
diff --git a/app/views/admin/users/projects.html.haml b/app/views/admin/users/projects.html.haml
index fa89c3d4b4f..bbf1e3b0b2f 100644
--- a/app/views/admin/users/projects.html.haml
+++ b/app/views/admin/users/projects.html.haml
@@ -1,3 +1,4 @@
+-# rubocop: disable CodeReuse/ActiveRecord
- add_to_breadcrumbs _("Users"), admin_users_path
- breadcrumb_title @user.name
- page_title _("Groups and projects"), @user.name, _("Users")
@@ -9,7 +10,7 @@
= _('Groups')
- c.with_body do
%ul.hover-list
- - @user.group_members.includes(:source).each do |group_member| # rubocop: disable CodeReuse/ActiveRecord
+ - @user.group_members.includes(:source).find_each do |group_member|
- group = group_member.group
%li.group_member
%strong= link_to group.name, admin_group_path(group)
@@ -50,3 +51,4 @@
- if member.respond_to? :project
= link_button_to nil, project_project_member_path(project, member), data: { confirm: remove_member_message(member), confirm_btn_variant: 'danger' }, aria: { label: _('Remove') }, remote: true, method: :delete, class: 'gl-ml-3', title: _('Remove user from project'), variant: :danger, size: :small, icon: 'remove'
+-# rubocop: enable CodeReuse/ActiveRecord
diff --git a/app/views/groups/settings/_permissions.html.haml b/app/views/groups/settings/_permissions.html.haml
index 19abacd038a..8ea80700340 100644
--- a/app/views/groups/settings/_permissions.html.haml
+++ b/app/views/groups/settings/_permissions.html.haml
@@ -43,6 +43,7 @@
= render 'groups/settings/project_creation_level', f: f, group: @group
= render 'groups/settings/subgroup_creation_level', f: f, group: @group
= render_if_exists 'groups/settings/prevent_forking', f: f, group: @group
+ = render_if_exists 'groups/settings/service_access_tokens_expiration_enforced', f: f, group: @group
= render 'groups/settings/two_factor_auth', f: f, group: @group
= render_if_exists 'groups/personal_access_token_expiration_policy', f: f, group: @group
= render 'groups/settings/membership', f: f, group: @group
diff --git a/config/feature_flags/development/saved_replies.yml b/config/feature_flags/development/saved_replies.yml
deleted file mode 100644
index 0c973292ba0..00000000000
--- a/config/feature_flags/development/saved_replies.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: saved_replies
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80811
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/352956
-milestone: '14.9'
-type: development
-group: group::project management
-default_enabled: true
diff --git a/db/migrate/20231027084327_change_personal_access_tokens_remove_not_null_expires_at.rb b/db/migrate/20231027084327_change_personal_access_tokens_remove_not_null_expires_at.rb
new file mode 100644
index 00000000000..0f7e3d53707
--- /dev/null
+++ b/db/migrate/20231027084327_change_personal_access_tokens_remove_not_null_expires_at.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class ChangePersonalAccessTokensRemoveNotNullExpiresAt < Gitlab::Database::Migration[2.2]
+ milestone '16.6'
+
+ disable_ddl_transaction!
+
+ CONSTRAINT_NAME = 'check_b8d60815eb'
+
+ def up
+ remove_not_null_constraint :personal_access_tokens, :expires_at
+ end
+
+ def down
+ add_not_null_constraint :personal_access_tokens, :expires_at, validate: false, constraint_name: CONSTRAINT_NAME
+ end
+end
diff --git a/db/post_migrate/20231027083355_remove_projects_duplicated_indexes.rb b/db/post_migrate/20231027083355_remove_projects_duplicated_indexes.rb
new file mode 100644
index 00000000000..7911a60df3f
--- /dev/null
+++ b/db/post_migrate/20231027083355_remove_projects_duplicated_indexes.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class RemoveProjectsDuplicatedIndexes < Gitlab::Database::Migration[2.2]
+ disable_ddl_transaction!
+
+ milestone '16.6'
+
+ INDEX_NAME = :index_on_projects_path
+ TABLE_NAME = :projects
+
+ def up
+ remove_concurrent_index_by_name TABLE_NAME, INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index TABLE_NAME, :path, name: INDEX_NAME
+ end
+end
diff --git a/db/schema_migrations/20231027083355 b/db/schema_migrations/20231027083355
new file mode 100644
index 00000000000..2ceb5337067
--- /dev/null
+++ b/db/schema_migrations/20231027083355
@@ -0,0 +1 @@
+ce4863f02f807498da9c3cf7b49d85a2e5a296903fe0673bfa6f40d50c8a51b5 \ No newline at end of file
diff --git a/db/schema_migrations/20231027084327 b/db/schema_migrations/20231027084327
new file mode 100644
index 00000000000..9b4a0baee6e
--- /dev/null
+++ b/db/schema_migrations/20231027084327
@@ -0,0 +1 @@
+38dcfa54fa7da63c1fbceb842e277b27bd90b1b0ef31fc82db8f80e6ba286047 \ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index ab1bf35fc90..333cf6c65a4 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -28134,9 +28134,6 @@ ALTER TABLE vulnerability_scanners
ALTER TABLE packages_tags
ADD CONSTRAINT check_91b8472153 CHECK ((project_id IS NOT NULL)) NOT VALID;
-ALTER TABLE personal_access_tokens
- ADD CONSTRAINT check_b8d60815eb CHECK ((expires_at IS NOT NULL)) NOT VALID;
-
ALTER TABLE sprints
ADD CONSTRAINT check_ccd8a1eae0 CHECK ((start_date IS NOT NULL)) NOT VALID;
@@ -33587,8 +33584,6 @@ CREATE UNIQUE INDEX index_on_project_id_escalation_policy_name_unique ON inciden
CREATE INDEX index_on_projects_lower_path ON projects USING btree (lower((path)::text));
-CREATE INDEX index_on_projects_path ON projects USING btree (path);
-
CREATE INDEX index_on_routes_lower_path ON routes USING btree (lower((path)::text));
CREATE INDEX index_on_sbom_sources_package_manager_name ON sbom_sources USING btree ((((source -> 'package_manager'::text) ->> 'name'::text)));
diff --git a/doc/administration/dedicated/index.md b/doc/administration/dedicated/index.md
index 83105e7b557..16efc353c84 100644
--- a/doc/administration/dedicated/index.md
+++ b/doc/administration/dedicated/index.md
@@ -214,7 +214,9 @@ Make sure the AWS KMS keys are replicated to your desired primary, secondary and
## Configuration changes
-To change or update the configuration for your GitLab Dedicated instance, open a [support ticket](https://support.gitlab.com/hc/en-us/requests/new?ticket_form_id=4414917877650) with your request. You can request configuration changes for the options originally specified during onboarding, or for any of the following optional features.
+Switchboard empowers the user to make limited configuration changes to their Dedicated Tenant Instance. As Switchboard matures further configuration changes will be made available.
+
+To change or update the configuration of your GitLab Dedicated instance, use Switchboard following the instructions in the relevant section or open a [support ticket](https://support.gitlab.com/hc/en-us/requests/new?ticket_form_id=4414917877650) with your request. You can request configuration changes for the options originally specified during onboarding, or for any of the following optional features.
The turnaround time to process configuration change requests is [documented in the GitLab handbook](https://about.gitlab.com/handbook/engineering/infrastructure/team/gitlab-dedicated/#handling-configuration-changes-for-tenant-environments).
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index 11f2482de5f..2edb3b4e351 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -13486,7 +13486,7 @@ A user with add-on data.
| <a id="addonuserprojectmemberships"></a>`projectMemberships` | [`ProjectMemberConnection`](#projectmemberconnection) | Project memberships of the user. (see [Connections](#connections)) |
| <a id="addonuserpronouns"></a>`pronouns` | [`String`](#string) | Pronouns of the user. |
| <a id="addonuserpublicemail"></a>`publicEmail` | [`String`](#string) | User's public email. |
-| <a id="addonusersavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. (see [Connections](#connections)) |
+| <a id="addonusersavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. (see [Connections](#connections)) |
| <a id="addonuserstate"></a>`state` | [`UserState!`](#userstate) | State of the user. |
| <a id="addonuserstatus"></a>`status` | [`UserStatus`](#userstatus) | User status. |
| <a id="addonusertwitter"></a>`twitter` | [`String`](#string) | Twitter username of the user. |
@@ -13645,7 +13645,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
##### `AddOnUser.savedReply`
-Saved reply authored by the user. Will not return saved reply if `saved_replies` feature flag is disabled.
+Saved reply authored by the user.
Returns [`SavedReply`](#savedreply).
@@ -14157,7 +14157,7 @@ Core representation of a GitLab user.
| <a id="autocompleteduserprojectmemberships"></a>`projectMemberships` | [`ProjectMemberConnection`](#projectmemberconnection) | Project memberships of the user. (see [Connections](#connections)) |
| <a id="autocompleteduserpronouns"></a>`pronouns` | [`String`](#string) | Pronouns of the user. |
| <a id="autocompleteduserpublicemail"></a>`publicEmail` | [`String`](#string) | User's public email. |
-| <a id="autocompletedusersavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. (see [Connections](#connections)) |
+| <a id="autocompletedusersavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. (see [Connections](#connections)) |
| <a id="autocompleteduserstate"></a>`state` | [`UserState!`](#userstate) | State of the user. |
| <a id="autocompleteduserstatus"></a>`status` | [`UserStatus`](#userstatus) | User status. |
| <a id="autocompletedusertwitter"></a>`twitter` | [`String`](#string) | Twitter username of the user. |
@@ -14308,7 +14308,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
##### `AutocompletedUser.savedReply`
-Saved reply authored by the user. Will not return saved reply if `saved_replies` feature flag is disabled.
+Saved reply authored by the user.
Returns [`SavedReply`](#savedreply).
@@ -20596,7 +20596,7 @@ A user assigned to a merge request.
| <a id="mergerequestassigneeprojectmemberships"></a>`projectMemberships` | [`ProjectMemberConnection`](#projectmemberconnection) | Project memberships of the user. (see [Connections](#connections)) |
| <a id="mergerequestassigneepronouns"></a>`pronouns` | [`String`](#string) | Pronouns of the user. |
| <a id="mergerequestassigneepublicemail"></a>`publicEmail` | [`String`](#string) | User's public email. |
-| <a id="mergerequestassigneesavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. (see [Connections](#connections)) |
+| <a id="mergerequestassigneesavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. (see [Connections](#connections)) |
| <a id="mergerequestassigneestate"></a>`state` | [`UserState!`](#userstate) | State of the user. |
| <a id="mergerequestassigneestatus"></a>`status` | [`UserStatus`](#userstatus) | User status. |
| <a id="mergerequestassigneetwitter"></a>`twitter` | [`String`](#string) | Twitter username of the user. |
@@ -20735,7 +20735,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
##### `MergeRequestAssignee.savedReply`
-Saved reply authored by the user. Will not return saved reply if `saved_replies` feature flag is disabled.
+Saved reply authored by the user.
Returns [`SavedReply`](#savedreply).
@@ -20878,7 +20878,7 @@ The author of the merge request.
| <a id="mergerequestauthorprojectmemberships"></a>`projectMemberships` | [`ProjectMemberConnection`](#projectmemberconnection) | Project memberships of the user. (see [Connections](#connections)) |
| <a id="mergerequestauthorpronouns"></a>`pronouns` | [`String`](#string) | Pronouns of the user. |
| <a id="mergerequestauthorpublicemail"></a>`publicEmail` | [`String`](#string) | User's public email. |
-| <a id="mergerequestauthorsavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. (see [Connections](#connections)) |
+| <a id="mergerequestauthorsavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. (see [Connections](#connections)) |
| <a id="mergerequestauthorstate"></a>`state` | [`UserState!`](#userstate) | State of the user. |
| <a id="mergerequestauthorstatus"></a>`status` | [`UserStatus`](#userstatus) | User status. |
| <a id="mergerequestauthortwitter"></a>`twitter` | [`String`](#string) | Twitter username of the user. |
@@ -21017,7 +21017,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
##### `MergeRequestAuthor.savedReply`
-Saved reply authored by the user. Will not return saved reply if `saved_replies` feature flag is disabled.
+Saved reply authored by the user.
Returns [`SavedReply`](#savedreply).
@@ -21223,7 +21223,7 @@ A user participating in a merge request.
| <a id="mergerequestparticipantprojectmemberships"></a>`projectMemberships` | [`ProjectMemberConnection`](#projectmemberconnection) | Project memberships of the user. (see [Connections](#connections)) |
| <a id="mergerequestparticipantpronouns"></a>`pronouns` | [`String`](#string) | Pronouns of the user. |
| <a id="mergerequestparticipantpublicemail"></a>`publicEmail` | [`String`](#string) | User's public email. |
-| <a id="mergerequestparticipantsavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. (see [Connections](#connections)) |
+| <a id="mergerequestparticipantsavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. (see [Connections](#connections)) |
| <a id="mergerequestparticipantstate"></a>`state` | [`UserState!`](#userstate) | State of the user. |
| <a id="mergerequestparticipantstatus"></a>`status` | [`UserStatus`](#userstatus) | User status. |
| <a id="mergerequestparticipanttwitter"></a>`twitter` | [`String`](#string) | Twitter username of the user. |
@@ -21362,7 +21362,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
##### `MergeRequestParticipant.savedReply`
-Saved reply authored by the user. Will not return saved reply if `saved_replies` feature flag is disabled.
+Saved reply authored by the user.
Returns [`SavedReply`](#savedreply).
@@ -21541,7 +21541,7 @@ A user assigned to a merge request as a reviewer.
| <a id="mergerequestreviewerprojectmemberships"></a>`projectMemberships` | [`ProjectMemberConnection`](#projectmemberconnection) | Project memberships of the user. (see [Connections](#connections)) |
| <a id="mergerequestreviewerpronouns"></a>`pronouns` | [`String`](#string) | Pronouns of the user. |
| <a id="mergerequestreviewerpublicemail"></a>`publicEmail` | [`String`](#string) | User's public email. |
-| <a id="mergerequestreviewersavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. (see [Connections](#connections)) |
+| <a id="mergerequestreviewersavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. (see [Connections](#connections)) |
| <a id="mergerequestreviewerstate"></a>`state` | [`UserState!`](#userstate) | State of the user. |
| <a id="mergerequestreviewerstatus"></a>`status` | [`UserStatus`](#userstatus) | User status. |
| <a id="mergerequestreviewertwitter"></a>`twitter` | [`String`](#string) | Twitter username of the user. |
@@ -21680,7 +21680,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
##### `MergeRequestReviewer.savedReply`
-Saved reply authored by the user. Will not return saved reply if `saved_replies` feature flag is disabled.
+Saved reply authored by the user.
Returns [`SavedReply`](#savedreply).
@@ -26485,7 +26485,7 @@ Core representation of a GitLab user.
| <a id="usercoreprojectmemberships"></a>`projectMemberships` | [`ProjectMemberConnection`](#projectmemberconnection) | Project memberships of the user. (see [Connections](#connections)) |
| <a id="usercorepronouns"></a>`pronouns` | [`String`](#string) | Pronouns of the user. |
| <a id="usercorepublicemail"></a>`publicEmail` | [`String`](#string) | User's public email. |
-| <a id="usercoresavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. (see [Connections](#connections)) |
+| <a id="usercoresavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. (see [Connections](#connections)) |
| <a id="usercorestate"></a>`state` | [`UserState!`](#userstate) | State of the user. |
| <a id="usercorestatus"></a>`status` | [`UserStatus`](#userstatus) | User status. |
| <a id="usercoretwitter"></a>`twitter` | [`String`](#string) | Twitter username of the user. |
@@ -26624,7 +26624,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
##### `UserCore.savedReply`
-Saved reply authored by the user. Will not return saved reply if `saved_replies` feature flag is disabled.
+Saved reply authored by the user.
Returns [`SavedReply`](#savedreply).
@@ -32010,7 +32010,7 @@ Implementations:
| <a id="userprojectmemberships"></a>`projectMemberships` | [`ProjectMemberConnection`](#projectmemberconnection) | Project memberships of the user. (see [Connections](#connections)) |
| <a id="userpronouns"></a>`pronouns` | [`String`](#string) | Pronouns of the user. |
| <a id="userpublicemail"></a>`publicEmail` | [`String`](#string) | User's public email. |
-| <a id="usersavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. (see [Connections](#connections)) |
+| <a id="usersavedreplies"></a>`savedReplies` | [`SavedReplyConnection`](#savedreplyconnection) | Saved replies authored by the user. (see [Connections](#connections)) |
| <a id="userstate"></a>`state` | [`UserState!`](#userstate) | State of the user. |
| <a id="userstatus"></a>`status` | [`UserStatus`](#userstatus) | User status. |
| <a id="usertwitter"></a>`twitter` | [`String`](#string) | Twitter username of the user. |
@@ -32149,7 +32149,7 @@ four standard [pagination arguments](#connection-pagination-arguments):
###### `User.savedReply`
-Saved reply authored by the user. Will not return saved reply if `saved_replies` feature flag is disabled.
+Saved reply authored by the user.
Returns [`SavedReply`](#savedreply).
diff --git a/doc/api/groups.md b/doc/api/groups.md
index 879e0626305..c9ec64e83db 100644
--- a/doc/api/groups.md
+++ b/doc/api/groups.md
@@ -1340,6 +1340,10 @@ Example response:
}
```
+| Attribute | Type | Required | Description |
+| --------- | --------------- | -------- | ----------- |
+| `expires_at` | date | no | Personal access token expiry date. When left blank, the token follows the [standard rule of expiry for personal access tokens](../user/profile/personal_access_tokens.md#when-personal-access-tokens-expire). |
+
### Rotate a Personal Access Token for Service Account User
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/406781) in GitLab 16.1.
@@ -1484,6 +1488,7 @@ PUT /groups/:id/hooks/:hook_id
| `releases_events` | boolean | no | Trigger hook on release events. |
| `subgroup_events` | boolean | no | Trigger hook on subgroup events. |
| `enable_ssl_verification` | boolean | no | Do SSL verification when triggering the hook. |
+| `service_access_tokens_expiration_enforced` | boolean | no | Require service account access tokens to have an expiration date. |
| `token` | string | no | Secret token to validate received payloads. Not returned in the response. When you change the webhook URL, the secret token is reset and not retained. |
### Delete group hook
diff --git a/doc/api/settings.md b/doc/api/settings.md
index c8899eeb3e6..07472d99945 100644
--- a/doc/api/settings.md
+++ b/doc/api/settings.md
@@ -542,6 +542,7 @@ listed in the descriptions of the relevant settings.
| `rsa_key_restriction` | integer | no | The minimum allowed bit length of an uploaded RSA key. Default is `0` (no restriction). `-1` disables RSA keys. |
| `session_expire_delay` | integer | no | Session duration in minutes. GitLab restart is required to apply changes. |
| `security_policy_global_group_approvers_enabled` | boolean | no | Whether to look up scan result policy approval groups globally or within project hierarchies. |
+| `service_access_tokens_expiration_enforced` | boolean | no | Flag to indicate if token expiry date can be optional for service account users |
| `shared_runners_enabled` | boolean | no | (**If enabled, requires:** `shared_runners_text` and `shared_runners_minutes`) Enable shared runners for new projects. |
| `shared_runners_minutes` **(PREMIUM ALL)** | integer | required by: `shared_runners_enabled` | Set the maximum number of compute minutes that a group can use on shared runners per month. |
| `shared_runners_text` | string | required by: `shared_runners_enabled` | Shared runners text. |
diff --git a/doc/user/profile/comment_templates.md b/doc/user/profile/comment_templates.md
index 5af93d7e2cf..98fabdb0a35 100644
--- a/doc/user/profile/comment_templates.md
+++ b/doc/user/profile/comment_templates.md
@@ -10,10 +10,7 @@ type: howto
> - GraphQL support [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/352956) in GitLab 14.9 [with a flag](../../administration/feature_flags.md) named `saved_replies`. Disabled by default.
> - User interface [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113232) in GitLab 15.10 [with a flag](../../administration/feature_flags.md) named `saved_replies`. Disabled by default. Enabled for GitLab team members only.
> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119468) in GitLab 16.0.
-
-FLAG:
-On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable the feature flag](../../administration/feature_flags.md) named `saved_replies`.
-On GitLab.com, this feature is available.
+> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123363) in GitLab 16.6.
With comment templates, create and reuse text for any text area in:
diff --git a/doc/user/profile/personal_access_tokens.md b/doc/user/profile/personal_access_tokens.md
index 9135a142612..a953a878cc9 100644
--- a/doc/user/profile/personal_access_tokens.md
+++ b/doc/user/profile/personal_access_tokens.md
@@ -137,6 +137,42 @@ Personal access tokens expire on the date you define, at midnight, 00:00 AM UTC.
- In GitLab Ultimate, administrators can
[limit the allowable lifetime of access tokens](../../administration/settings/account_and_limit_settings.md#limit-the-lifetime-of-access-tokens). If not set, the maximum allowable lifetime of a personal access token is 365 days.
- In GitLab Free and Premium, the maximum allowable lifetime of a personal access token is 365 days.
+- If you do not set an expiry date when creating a personal access token, the expiry date is set to the
+ [maximum allowed lifetime for the token](../../administration/settings/account_and_limit_settings.md#limit-the-lifetime-of-access-tokens).
+ If the maximum allowed lifetime is not set, the default expiry date is 365 days from the date of creation.
+
+### Service Accounts
+
+You can [create a personal access token for a service account](../../api/groups.md#create-personal-access-token-for-service-account-user) with no expiry date.
+
+NOTE:
+Allowing personal access tokens for service accounts to be created with no expiry date only affects tokens created after you change this setting. It does not affect existing tokens.
+
+#### GitLab.com
+
+Prerequisite:
+
+- You must have the Owner role in the top-level group.
+
+1. On the left sidebar, select **Search or go to** and find your group.
+1. Select **Settings > Permissions and group features**.
+1. Clear the **Service account token expiration** checkbox.
+
+You can now create personal access tokens for a service account user with no expiry date.
+
+#### Self-managed GitLab
+
+Prerequisite:
+
+- You must be an administrator for your self-managed instance.
+
+1. On the left sidebar, select **Search or go to**.
+1. Select **Admin Area**.
+1. Select **Settings > General**.
+1. Expand **Account and limit**.
+1. Clear the **Service account token expiration** checkbox.
+
+You can now create personal access tokens for a service account user with no expiry date.
## Create a personal access token programmatically **(FREE SELF)**
diff --git a/doc/user/profile/service_accounts.md b/doc/user/profile/service_accounts.md
index 6bb96b9c552..8fa0067f150 100644
--- a/doc/user/profile/service_accounts.md
+++ b/doc/user/profile/service_accounts.md
@@ -53,6 +53,8 @@ Prerequisite:
You define the scopes for the service account by [setting the scopes for the personal access token](personal_access_tokens.md#personal-access-token-scopes).
+ Optional. You can [create a personal access token with no expiry date](personal_access_tokens.md#when-personal-access-tokens-expire).
+
The response includes the personal access token value.
1. Make this service account a group or project member by [manually adding the service account user to the group or project](#add-a-service-account-to-subgroup-or-project).
@@ -74,6 +76,8 @@ Prerequisite:
You define the scopes for the service account by [setting the scopes for the personal access token](personal_access_tokens.md#personal-access-token-scopes).
+ Optional. You can [create a personal access token with no expiry date](personal_access_tokens.md#when-personal-access-tokens-expire).
+
The response includes the personal access token value.
1. Make this service account a group or project member by
diff --git a/lib/gitlab/encrypted_configuration.rb b/lib/gitlab/encrypted_configuration.rb
index 6b64281e631..5ead57e17fd 100644
--- a/lib/gitlab/encrypted_configuration.rb
+++ b/lib/gitlab/encrypted_configuration.rb
@@ -30,7 +30,7 @@ module Gitlab
end
def initialize(content_path: nil, base_key: nil, previous_keys: [])
- @content_path = Pathname.new(content_path).yield_self { |path| path.symlink? ? path.realpath : path } if content_path
+ @content_path = Pathname.new(content_path).then { |path| path.symlink? ? path.realpath : path } if content_path
@key = self.class.generate_key(base_key) if base_key
@previous_keys = previous_keys
end
diff --git a/lib/gitlab/graphql/tracers/timer_tracer.rb b/lib/gitlab/graphql/tracers/timer_tracer.rb
index 8e058621110..2cf06086a3c 100644
--- a/lib/gitlab/graphql/tracers/timer_tracer.rb
+++ b/lib/gitlab/graphql/tracers/timer_tracer.rb
@@ -15,11 +15,11 @@ module Gitlab
end
def trace(key, data)
- start_time = Gitlab::Metrics::System.monotonic_time
+ start_time = ::Gitlab::Metrics::System.monotonic_time
yield
ensure
- data[:duration_s] = Gitlab::Metrics::System.monotonic_time - start_time
+ data[:duration_s] = ::Gitlab::Metrics::System.monotonic_time - start_time
end
end
end
diff --git a/lib/gitlab/instrumentation/redis_interceptor.rb b/lib/gitlab/instrumentation/redis_interceptor.rb
index 20ba1ab82a7..5934204bd0f 100644
--- a/lib/gitlab/instrumentation/redis_interceptor.rb
+++ b/lib/gitlab/instrumentation/redis_interceptor.rb
@@ -31,7 +31,7 @@ module Gitlab
private
def instrument_call(commands, pipelined = false)
- start = Gitlab::Metrics::System.monotonic_time # must come first so that 'start' is always defined
+ start = ::Gitlab::Metrics::System.monotonic_time # must come first so that 'start' is always defined
instrumentation_class.instance_count_request(commands.size)
instrumentation_class.instance_count_pipelined_request(commands.size) if pipelined
@@ -50,7 +50,7 @@ module Gitlab
instrumentation_class.log_exception(ex)
raise ex
ensure
- duration = Gitlab::Metrics::System.monotonic_time - start
+ duration = ::Gitlab::Metrics::System.monotonic_time - start
unless exclude_from_apdex?(commands)
commands.each { instrumentation_class.instance_observe_duration(duration / commands.size) }
diff --git a/lib/gitlab/kubernetes/kubeconfig/template.rb b/lib/gitlab/kubernetes/kubeconfig/template.rb
index d40b9ce117e..844472f9c8e 100644
--- a/lib/gitlab/kubernetes/kubeconfig/template.rb
+++ b/lib/gitlab/kubernetes/kubeconfig/template.rb
@@ -44,7 +44,7 @@ module Gitlab
)
end
kubeconfig_yaml[:clusters].each do |cluster|
- ca_pem = cluster.dig(:cluster, :'certificate-authority-data')&.yield_self do |data|
+ ca_pem = cluster.dig(:cluster, :'certificate-authority-data')&.then do |data|
Base64.strict_decode64(data)
end
diff --git a/lib/gitlab/legacy_http.rb b/lib/gitlab/legacy_http.rb
index f38b2819c15..cf6ab80d37f 100644
--- a/lib/gitlab/legacy_http.rb
+++ b/lib/gitlab/legacy_http.rb
@@ -35,8 +35,8 @@ module Gitlab
read_total_timeout = options.fetch(:timeout, Gitlab::HTTP::DEFAULT_READ_TOTAL_TIMEOUT)
httparty_perform_request(http_method, path, options_with_timeouts) do |fragment|
- start_time ||= Gitlab::Metrics::System.monotonic_time
- elapsed = Gitlab::Metrics::System.monotonic_time - start_time
+ start_time ||= ::Gitlab::Metrics::System.monotonic_time
+ elapsed = ::Gitlab::Metrics::System.monotonic_time - start_time
if elapsed > read_total_timeout
raise Gitlab::HTTP::ReadTotalTimeout, "Request timed out after #{elapsed} seconds"
diff --git a/lib/gitlab/memory/reporter.rb b/lib/gitlab/memory/reporter.rb
index db0fd24983b..8d32745ac34 100644
--- a/lib/gitlab/memory/reporter.rb
+++ b/lib/gitlab/memory/reporter.rb
@@ -26,13 +26,13 @@ module Gitlab
perf_report: report.name
))
- start_monotonic_time = Gitlab::Metrics::System.monotonic_time
- start_thread_cpu_time = Gitlab::Metrics::System.thread_cpu_time
+ start_monotonic_time = ::Gitlab::Metrics::System.monotonic_time
+ start_thread_cpu_time = ::Gitlab::Metrics::System.thread_cpu_time
report_file = store_report(report)
- cpu_s = Gitlab::Metrics::System.thread_cpu_duration(start_thread_cpu_time)
- duration_s = Gitlab::Metrics::System.monotonic_time - start_monotonic_time
+ cpu_s = ::Gitlab::Metrics::System.thread_cpu_duration(start_thread_cpu_time)
+ duration_s = ::Gitlab::Metrics::System.monotonic_time - start_monotonic_time
@logger.info(
log_labels(
diff --git a/lib/gitlab/memory/reports_uploader.rb b/lib/gitlab/memory/reports_uploader.rb
index 76c3e0862e2..17230414a6a 100644
--- a/lib/gitlab/memory/reports_uploader.rb
+++ b/lib/gitlab/memory/reports_uploader.rb
@@ -13,11 +13,11 @@ module Gitlab
def upload(path)
log_upload_requested(path)
- start_monotonic_time = Gitlab::Metrics::System.monotonic_time
+ start_monotonic_time = ::Gitlab::Metrics::System.monotonic_time
File.open(path.to_s) { |file| fog.put_object(gcs_bucket, File.basename(path), file) }
- duration_s = Gitlab::Metrics::System.monotonic_time - start_monotonic_time
+ duration_s = ::Gitlab::Metrics::System.monotonic_time - start_monotonic_time
log_upload_success(path, duration_s)
rescue StandardError, Errno::ENOENT => error
log_exception(error)
diff --git a/lib/gitlab/metrics/exporter/metrics_middleware.rb b/lib/gitlab/metrics/exporter/metrics_middleware.rb
index 258b655229e..b80a8c503e8 100644
--- a/lib/gitlab/metrics/exporter/metrics_middleware.rb
+++ b/lib/gitlab/metrics/exporter/metrics_middleware.rb
@@ -9,10 +9,10 @@ module Gitlab
default_labels = {
pid: pid
}
- @requests_total = Gitlab::Metrics.counter(
+ @requests_total = ::Gitlab::Metrics.counter(
:exporter_http_requests_total, 'Total number of HTTP requests', default_labels
)
- @request_durations = Gitlab::Metrics.histogram(
+ @request_durations = ::Gitlab::Metrics.histogram(
:exporter_http_request_duration_seconds,
'HTTP request duration histogram (seconds)',
default_labels,
@@ -21,9 +21,9 @@ module Gitlab
end
def call(env)
- start = Gitlab::Metrics::System.monotonic_time
+ start = ::Gitlab::Metrics::System.monotonic_time
@app.call(env).tap do |response|
- duration = Gitlab::Metrics::System.monotonic_time - start
+ duration = ::Gitlab::Metrics::System.monotonic_time - start
labels = {
method: env['REQUEST_METHOD'].downcase,
diff --git a/lib/gitlab/optimistic_locking.rb b/lib/gitlab/optimistic_locking.rb
index 3c8ac55f70b..adc417f287c 100644
--- a/lib/gitlab/optimistic_locking.rb
+++ b/lib/gitlab/optimistic_locking.rb
@@ -7,7 +7,7 @@ module Gitlab
module_function
def retry_lock(subject, max_retries = MAX_RETRIES, name:, &block)
- start_time = Gitlab::Metrics::System.monotonic_time
+ start_time = ::Gitlab::Metrics::System.monotonic_time
retry_attempts = 0
# prevent scope override, see https://gitlab.com/gitlab-org/gitlab/-/issues/391186
@@ -39,7 +39,7 @@ module Gitlab
def log_optimistic_lock_retries(name:, retry_attempts:, start_time:)
return unless retry_attempts > 0
- elapsed_time = Gitlab::Metrics::System.monotonic_time - start_time
+ elapsed_time = ::Gitlab::Metrics::System.monotonic_time - start_time
retry_lock_logger.info(
message: "Optimistic Lock released with retries",
diff --git a/lib/sidebars/user_settings/menus/comment_templates_menu.rb b/lib/sidebars/user_settings/menus/comment_templates_menu.rb
index da37c42bbd4..1e9aea8ec9a 100644
--- a/lib/sidebars/user_settings/menus/comment_templates_menu.rb
+++ b/lib/sidebars/user_settings/menus/comment_templates_menu.rb
@@ -23,7 +23,7 @@ module Sidebars
override :render?
def render?
- !!context.current_user && saved_replies_enabled?
+ !!context.current_user
end
override :active_routes
diff --git a/lib/tasks/gitlab/bulk_add_permission.rake b/lib/tasks/gitlab/bulk_add_permission.rake
index 240b808baf3..917fce42762 100644
--- a/lib/tasks/gitlab/bulk_add_permission.rake
+++ b/lib/tasks/gitlab/bulk_add_permission.rake
@@ -3,7 +3,7 @@
namespace :gitlab do
namespace :import do
desc "GitLab | Import | Add all users to all projects (admin users are added as maintainers)"
- task all_users_to_all_projects: :environment do |t, args|
+ task all_users_to_all_projects: :environment do |t, args|
user_ids = User.where(admin: false).pluck(:id)
admin_ids = User.where(admin: true).pluck(:id)
projects = Project.all
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 38cadff29e0..d1109f02a2a 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -9820,6 +9820,9 @@ msgstr ""
msgid "Changes to the title have not been saved"
msgstr ""
+msgid "Changes will not affect existing token expiration dates. %{link_start}How will this affect expiration dates?%{link_end}"
+msgstr ""
+
msgid "Changes:"
msgstr ""
@@ -23315,6 +23318,12 @@ msgstr ""
msgid "GroupSettings|Select the project containing your custom Insights file."
msgstr ""
+msgid "GroupSettings|Service access tokens expiration enforced setting was not saved"
+msgstr ""
+
+msgid "GroupSettings|Service account token expiration"
+msgstr ""
+
msgid "GroupSettings|Set a size limit for all content in each Pages site in this group. %{link_start}Learn more.%{link_end}"
msgstr ""
@@ -37226,6 +37235,11 @@ msgstr ""
msgid "ProjectCreationLevel|Roles allowed to create projects"
msgstr ""
+msgid "ProjectExceededSize|Here is the project exceeding the storage quota:%{projects_list}"
+msgid_plural "ProjectExceededSize|From the %{repository_size_excess_project_count} projects exceeding the quota, below are the projects using the most storage:%{projects_list}"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "ProjectFileTree|Name"
msgstr ""
@@ -40492,6 +40506,9 @@ msgstr ""
msgid "Require additional authentication for administrative tasks."
msgstr ""
+msgid "Require expiration date"
+msgstr ""
+
msgid "Required approvals (%{approvals_given} given)"
msgstr ""
@@ -44246,12 +44263,18 @@ msgstr ""
msgid "Service Desk allows people to create issues in your GitLab instance without their own user account. It provides a unique email address for end users to create issues in a project. Replies can be sent either through the GitLab interface or by email. End users only see threads through email."
msgstr ""
+msgid "Service access token expiration"
+msgstr ""
+
msgid "Service account"
msgstr ""
msgid "Service account generated successfully"
msgstr ""
+msgid "Service account token expiration"
+msgstr ""
+
msgid "Service accounts"
msgstr ""
diff --git a/metrics_server/metrics_server.rb b/metrics_server/metrics_server.rb
index 7d4968f930c..873489b444e 100644
--- a/metrics_server/metrics_server.rb
+++ b/metrics_server/metrics_server.rb
@@ -88,7 +88,7 @@ class MetricsServer # rubocop:disable Gitlab/NamespacedClass
end
def ensure_valid_target!(target)
- raise "Target must be one of [puma,sidekiq]" unless %w(puma sidekiq).include?(target)
+ raise "Target must be one of [puma,sidekiq]" unless %w[puma sidekiq].include?(target)
end
end
diff --git a/package.json b/package.json
index e7484d71612..7d6f449cb46 100644
--- a/package.json
+++ b/package.json
@@ -190,7 +190,7 @@
"remark-rehype": "^10.1.0",
"scrollparent": "^2.0.1",
"semver": "^7.3.4",
- "sentrybrowser": "npm:@sentry/browser@7.78.0",
+ "sentrybrowser": "npm:@sentry/browser@7.79.0",
"sentrybrowser5": "npm:@sentry/browser@5.30.0",
"sortablejs": "^1.10.2",
"string-hash": "1.1.3",
diff --git a/qa/qa/specs/features/api/1_manage/import/import_large_github_repo_spec.rb b/qa/qa/specs/features/api/1_manage/import/import_large_github_repo_spec.rb
index 0019eb47eeb..9c0720aa185 100644
--- a/qa/qa/specs/features/api/1_manage/import/import_large_github_repo_spec.rb
+++ b/qa/qa/specs/features/api/1_manage/import/import_large_github_repo_spec.rb
@@ -292,7 +292,7 @@ module QA
fetch_github_objects unless only_stats_comparison
import_status = -> {
- imported_project.project_import_status.yield_self do |status|
+ imported_project.project_import_status.then do |status|
@stats = status[:stats]&.slice(:fetched, :imported)
# fail fast if import explicitly failed
diff --git a/qa/qa/tools/long_running_spec_reporter.rb b/qa/qa/tools/long_running_spec_reporter.rb
index 865b16f1d41..82015d024fb 100644
--- a/qa/qa/tools/long_running_spec_reporter.rb
+++ b/qa/qa/tools/long_running_spec_reporter.rb
@@ -41,7 +41,7 @@ module QA
def mean_runtime
@mean_runtime ||= latest_report.values
.select { |v| v < RUNTIME_THRESHOLD }
- .yield_self { |runtimes| runtimes.sum(0.0) / runtimes.length }
+ .then { |runtimes| runtimes.sum(0.0) / runtimes.length }
end
# Spec files exceeding runtime threshold
diff --git a/spec/finders/milestones_finder_spec.rb b/spec/finders/milestones_finder_spec.rb
index c4c62e21ad9..118679a4911 100644
--- a/spec/finders/milestones_finder_spec.rb
+++ b/spec/finders/milestones_finder_spec.rb
@@ -22,7 +22,7 @@ RSpec.describe MilestonesFinder do
end
it 'returns milestones for groups' do
- result = described_class.new(group_ids: group.id, state: 'all').execute
+ result = described_class.new(group_ids: group.id, state: 'all').execute
expect(result).to contain_exactly(milestone_5, milestone_1, milestone_2)
end
diff --git a/spec/frontend/merge_requests/components/sticky_header_spec.js b/spec/frontend/merge_requests/components/sticky_header_spec.js
new file mode 100644
index 00000000000..9fc265cd9ad
--- /dev/null
+++ b/spec/frontend/merge_requests/components/sticky_header_spec.js
@@ -0,0 +1,48 @@
+import Vue from 'vue';
+// eslint-disable-next-line no-restricted-imports
+import Vuex from 'vuex';
+import { GlSprintf } from '@gitlab/ui';
+import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
+import StickyHeader from '~/merge_requests/components/sticky_header.vue';
+
+Vue.use(Vuex);
+
+let wrapper;
+
+function createComponent(provide = {}) {
+ const store = new Vuex.Store({
+ state: {
+ page: { activeTab: 'overview' },
+ notes: { notes: { doneFetchingBatchDiscussions: true } },
+ },
+ getters: {
+ getNoteableData: () => ({
+ id: 1,
+ source_branch: 'source-branch',
+ target_branch: 'main',
+ }),
+ discussionTabCounter: () => 1,
+ },
+ });
+
+ wrapper = shallowMountExtended(StickyHeader, {
+ store,
+ provide,
+ stubs: {
+ GlSprintf,
+ },
+ });
+}
+
+describe('Merge requests sticky header component', () => {
+ describe('forked project', () => {
+ it('renders source branch with source project path', () => {
+ createComponent({
+ projectPath: 'gitlab-org/gitlab',
+ sourceProjectPath: 'root/gitlab',
+ });
+
+ expect(wrapper.findByTestId('source-branch').text()).toBe('root/gitlab:source-branch');
+ });
+ });
+});
diff --git a/spec/graphql/mutations/saved_replies/create_spec.rb b/spec/graphql/mutations/saved_replies/create_spec.rb
index 9423ba2b354..9db23ab5345 100644
--- a/spec/graphql/mutations/saved_replies/create_spec.rb
+++ b/spec/graphql/mutations/saved_replies/create_spec.rb
@@ -14,33 +14,17 @@ RSpec.describe Mutations::SavedReplies::Create do
mutation.resolve(**mutation_arguments)
end
- context 'when feature is disabled' do
- before do
- stub_feature_flags(saved_replies: false)
- end
-
- it 'raises Gitlab::Graphql::Errors::ResourceNotAvailable' do
- expect { subject }.to raise_error(Gitlab::Graphql::Errors::ResourceNotAvailable, 'Feature disabled')
- end
- end
-
- context 'when feature is enabled for current user' do
- before do
- stub_feature_flags(saved_replies: current_user)
- end
+ context 'when service fails to create a new saved reply' do
+ let(:mutation_arguments) { { name: '', content: '' } }
- context 'when service fails to create a new saved reply' do
- let(:mutation_arguments) { { name: '', content: '' } }
-
- it { expect(subject[:saved_reply]).to be_nil }
- it { expect(subject[:errors]).to match_array(["Content can't be blank", "Name can't be blank"]) }
- end
+ it { expect(subject[:saved_reply]).to be_nil }
+ it { expect(subject[:errors]).to match_array(["Content can't be blank", "Name can't be blank"]) }
+ end
- context 'when service successfully creates a new saved reply' do
- it { expect(subject[:saved_reply].name).to eq(mutation_arguments[:name]) }
- it { expect(subject[:saved_reply].content).to eq(mutation_arguments[:content]) }
- it { expect(subject[:errors]).to be_empty }
- end
+ context 'when service successfully creates a new saved reply' do
+ it { expect(subject[:saved_reply].name).to eq(mutation_arguments[:name]) }
+ it { expect(subject[:saved_reply].content).to eq(mutation_arguments[:content]) }
+ it { expect(subject[:errors]).to be_empty }
end
end
end
diff --git a/spec/graphql/mutations/saved_replies/destroy_spec.rb b/spec/graphql/mutations/saved_replies/destroy_spec.rb
index 6cff28ec0b2..84efd9ee0b8 100644
--- a/spec/graphql/mutations/saved_replies/destroy_spec.rb
+++ b/spec/graphql/mutations/saved_replies/destroy_spec.rb
@@ -13,34 +13,18 @@ RSpec.describe Mutations::SavedReplies::Destroy do
mutation.resolve(id: saved_reply.to_global_id)
end
- context 'when feature is disabled' do
+ context 'when service fails to delete a new saved reply' do
before do
- stub_feature_flags(saved_replies: false)
+ saved_reply.destroy!
end
it 'raises Gitlab::Graphql::Errors::ResourceNotAvailable' do
- expect { subject }.to raise_error(Gitlab::Graphql::Errors::ResourceNotAvailable, 'Feature disabled')
+ expect { subject }.to raise_error(Gitlab::Graphql::Errors::ResourceNotAvailable)
end
end
- context 'when feature is enabled for current user' do
- before do
- stub_feature_flags(saved_replies: current_user)
- end
-
- context 'when service fails to delete a new saved reply' do
- before do
- saved_reply.destroy!
- end
-
- it 'raises Gitlab::Graphql::Errors::ResourceNotAvailable' do
- expect { subject }.to raise_error(Gitlab::Graphql::Errors::ResourceNotAvailable)
- end
- end
-
- context 'when service successfully deletes the saved reply' do
- it { expect(subject[:errors]).to be_empty }
- end
+ context 'when service successfully deletes the saved reply' do
+ it { expect(subject[:errors]).to be_empty }
end
end
end
diff --git a/spec/graphql/mutations/saved_replies/update_spec.rb b/spec/graphql/mutations/saved_replies/update_spec.rb
index 9b0e90b7b41..cc358d946a5 100644
--- a/spec/graphql/mutations/saved_replies/update_spec.rb
+++ b/spec/graphql/mutations/saved_replies/update_spec.rb
@@ -15,33 +15,17 @@ RSpec.describe Mutations::SavedReplies::Update do
mutation.resolve(id: saved_reply.to_global_id, **mutation_arguments)
end
- context 'when feature is disabled' do
- before do
- stub_feature_flags(saved_replies: false)
- end
-
- it 'raises Gitlab::Graphql::Errors::ResourceNotAvailable' do
- expect { subject }.to raise_error(Gitlab::Graphql::Errors::ResourceNotAvailable, 'Feature disabled')
- end
- end
-
- context 'when feature is enabled for current user' do
- before do
- stub_feature_flags(saved_replies: current_user)
- end
+ context 'when service fails to update a new saved reply' do
+ let(:mutation_arguments) { { name: '', content: '' } }
- context 'when service fails to update a new saved reply' do
- let(:mutation_arguments) { { name: '', content: '' } }
-
- it { expect(subject[:saved_reply]).to be_nil }
- it { expect(subject[:errors]).to match_array(["Content can't be blank", "Name can't be blank"]) }
- end
+ it { expect(subject[:saved_reply]).to be_nil }
+ it { expect(subject[:errors]).to match_array(["Content can't be blank", "Name can't be blank"]) }
+ end
- context 'when service successfully updates the saved reply' do
- it { expect(subject[:saved_reply].name).to eq(mutation_arguments[:name]) }
- it { expect(subject[:saved_reply].content).to eq(mutation_arguments[:content]) }
- it { expect(subject[:errors]).to be_empty }
- end
+ context 'when service successfully updates the saved reply' do
+ it { expect(subject[:saved_reply].name).to eq(mutation_arguments[:name]) }
+ it { expect(subject[:saved_reply].content).to eq(mutation_arguments[:content]) }
+ it { expect(subject[:errors]).to be_empty }
end
end
end
diff --git a/spec/graphql/resolvers/saved_reply_resolver_spec.rb b/spec/graphql/resolvers/saved_reply_resolver_spec.rb
index f1cb0ca5214..d6457e8c21a 100644
--- a/spec/graphql/resolvers/saved_reply_resolver_spec.rb
+++ b/spec/graphql/resolvers/saved_reply_resolver_spec.rb
@@ -8,30 +8,18 @@ RSpec.describe Resolvers::SavedReplyResolver, feature_category: :user_profile do
let_it_be(:current_user) { create(:user) }
let_it_be(:saved_reply) { create(:saved_reply, user: current_user) }
- describe 'feature flag disabled' do
- before do
- stub_feature_flags(saved_replies: false)
- end
-
- it 'does not return saved reply' do
- expect(resolve_saved_reply).to be_nil
- end
+ it 'returns users saved reply' do
+ expect(resolve_saved_reply).to eq(saved_reply)
end
- describe 'feature flag enabled' do
- it 'returns users saved reply' do
- expect(resolve_saved_reply).to eq(saved_reply)
- end
-
- it 'returns nil when saved reply is not found' do
- expect(resolve_saved_reply({ id: 'gid://gitlab/Users::SavedReply/100' })).to be_nil
- end
+ it 'returns nil when saved reply is not found' do
+ expect(resolve_saved_reply({ id: 'gid://gitlab/Users::SavedReply/100' })).to be_nil
+ end
- it 'returns nil when saved reply is another users' do
- other_users_saved_reply = create(:saved_reply, user: create(:user))
+ it 'returns nil when saved reply is another users' do
+ other_users_saved_reply = create(:saved_reply, user: create(:user))
- expect(resolve_saved_reply({ id: other_users_saved_reply.to_global_id })).to be_nil
- end
+ expect(resolve_saved_reply({ id: other_users_saved_reply.to_global_id })).to be_nil
end
def resolve_saved_reply(args = { id: saved_reply.to_global_id })
diff --git a/spec/lib/sidebars/user_settings/menus/comment_templates_menu_spec.rb b/spec/lib/sidebars/user_settings/menus/comment_templates_menu_spec.rb
index 37a383cfd9d..9a093efe6ba 100644
--- a/spec/lib/sidebars/user_settings/menus/comment_templates_menu_spec.rb
+++ b/spec/lib/sidebars/user_settings/menus/comment_templates_menu_spec.rb
@@ -15,10 +15,6 @@ RSpec.describe Sidebars::UserSettings::Menus::CommentTemplatesMenu, feature_cate
let_it_be(:user) { build(:user) }
context 'when comment templates are enabled' do
- before do
- allow(subject).to receive(:saved_replies_enabled?).and_return(true)
- end
-
context 'when user is logged in' do
let(:context) { Sidebars::Context.new(current_user: user, container: nil) }
@@ -37,29 +33,5 @@ RSpec.describe Sidebars::UserSettings::Menus::CommentTemplatesMenu, feature_cate
end
end
end
-
- context 'when comment templates are disabled' do
- before do
- allow(subject).to receive(:saved_replies_enabled?).and_return(false)
- end
-
- context 'when user is logged in' do
- let(:context) { Sidebars::Context.new(current_user: user, container: nil) }
-
- it 'renders' do
- expect(subject.render?).to be false
- end
- end
-
- context 'when user is not logged in' do
- let(:context) { Sidebars::Context.new(current_user: nil, container: nil) }
-
- subject { described_class.new(context) }
-
- it 'does not render' do
- expect(subject.render?).to be false
- end
- end
- end
end
end
diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb
index 7b3a0124675..9696ba7b3ee 100644
--- a/spec/models/ci/pipeline_spec.rb
+++ b/spec/models/ci/pipeline_spec.rb
@@ -359,7 +359,7 @@ RSpec.describe Ci::Pipeline, :mailer, factory_default: :keep, feature_category:
end
it 'has an association with processable CI/CD entities' do
- pipeline.processables.pluck('name').yield_self do |processables|
+ pipeline.processables.pluck('name').then do |processables|
expect(processables).to match_array %w[build bridge]
end
end
diff --git a/spec/models/concerns/token_authenticatable_spec.rb b/spec/models/concerns/token_authenticatable_spec.rb
index 822e2817d84..9bd20676c0e 100644
--- a/spec/models/concerns/token_authenticatable_spec.rb
+++ b/spec/models/concerns/token_authenticatable_spec.rb
@@ -260,7 +260,7 @@ RSpec.describe Ci::Build, 'TokenAuthenticatable' do
it 'persists a new token' do
build.save!
- build.token.yield_self do |previous_token|
+ build.token.then do |previous_token|
build.reset_token!
expect(build.token).not_to eq previous_token
diff --git a/spec/models/email_spec.rb b/spec/models/email_spec.rb
index b76063bfa1a..ecb8f72470d 100644
--- a/spec/models/email_spec.rb
+++ b/spec/models/email_spec.rb
@@ -89,7 +89,7 @@ RSpec.describe Email do
end
context 'when the confirmation period has expired' do
- let(:confirmation_sent_at) { expired_confirmation_sent_at }
+ let(:confirmation_sent_at) { expired_confirmation_sent_at }
it_behaves_like 'unconfirmed email'
@@ -101,7 +101,7 @@ RSpec.describe Email do
end
context 'when the confirmation period has not expired' do
- let(:confirmation_sent_at) { extant_confirmation_sent_at }
+ let(:confirmation_sent_at) { extant_confirmation_sent_at }
it_behaves_like 'unconfirmed email'
@@ -138,7 +138,7 @@ RSpec.describe Email do
end
context 'when the confirmation period has expired' do
- let(:confirmation_sent_at) { expired_confirmation_sent_at }
+ let(:confirmation_sent_at) { expired_confirmation_sent_at }
it_behaves_like 'unconfirmed email'
it_behaves_like 'confirms the email on force_confirm'
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 17eabc0f7cd..fe229ce836f 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -1843,7 +1843,7 @@ RSpec.describe User, feature_category: :user_profile do
end
context 'when the confirmation period has expired' do
- let(:confirmation_sent_at) { expired_confirmation_sent_at }
+ let(:confirmation_sent_at) { expired_confirmation_sent_at }
it_behaves_like 'unconfirmed user'
@@ -1861,7 +1861,7 @@ RSpec.describe User, feature_category: :user_profile do
end
context 'when the confirmation period has not expired' do
- let(:confirmation_sent_at) { extant_confirmation_sent_at }
+ let(:confirmation_sent_at) { extant_confirmation_sent_at }
it_behaves_like 'unconfirmed user'
@@ -2052,7 +2052,7 @@ RSpec.describe User, feature_category: :user_profile do
end
context 'when the confirmation period has expired' do
- let(:confirmation_sent_at) { expired_confirmation_sent_at }
+ let(:confirmation_sent_at) { expired_confirmation_sent_at }
it_behaves_like 'unconfirmed user'
it_behaves_like 'confirms the user on force_confirm'
diff --git a/spec/presenters/user_presenter_spec.rb b/spec/presenters/user_presenter_spec.rb
index d1124d73dbd..fcbadf40bc9 100644
--- a/spec/presenters/user_presenter_spec.rb
+++ b/spec/presenters/user_presenter_spec.rb
@@ -61,28 +61,14 @@ RSpec.describe UserPresenter do
let_it_be(:other_user) { create(:user) }
let_it_be(:saved_reply) { create(:saved_reply, user: user) }
- context 'when feature is disabled' do
- before do
- stub_feature_flags(saved_replies: false)
- end
+ context 'when user has no permission to read saved replies' do
+ let(:current_user) { other_user }
it { expect(presenter.saved_replies).to eq(::Users::SavedReply.none) }
end
- context 'when feature is enabled' do
- before do
- stub_feature_flags(saved_replies: current_user)
- end
-
- context 'when user has no permission to read saved replies' do
- let(:current_user) { other_user }
-
- it { expect(presenter.saved_replies).to eq(::Users::SavedReply.none) }
- end
-
- context 'when user has permission to read saved replies' do
- it { expect(presenter.saved_replies).to eq([saved_reply]) }
- end
+ context 'when user has permission to read saved replies' do
+ it { expect(presenter.saved_replies).to eq([saved_reply]) }
end
end
end
diff --git a/spec/requests/api/graphql/project/error_tracking/sentry_errors_request_spec.rb b/spec/requests/api/graphql/project/error_tracking/sentry_errors_request_spec.rb
index 6cbc70022ed..c2910938acf 100644
--- a/spec/requests/api/graphql/project/error_tracking/sentry_errors_request_spec.rb
+++ b/spec/requests/api/graphql/project/error_tracking/sentry_errors_request_spec.rb
@@ -119,7 +119,7 @@ RSpec.describe 'sentry errors requests', feature_category: :error_tracking do
end
let(:error_data) { graphql_data.dig('project', 'sentryErrors', 'errors', 'nodes') }
- let(:pagination_data) { graphql_data.dig('project', 'sentryErrors', 'errors', 'pageInfo') }
+ let(:pagination_data) { graphql_data.dig('project', 'sentryErrors', 'errors', 'pageInfo') }
it_behaves_like 'a working graphql query' do
before do
diff --git a/spec/requests/profiles/comment_templates_controller_spec.rb b/spec/requests/profiles/comment_templates_controller_spec.rb
index cdbfbb0a346..d58fc3f19ea 100644
--- a/spec/requests/profiles/comment_templates_controller_spec.rb
+++ b/spec/requests/profiles/comment_templates_controller_spec.rb
@@ -10,26 +10,14 @@ RSpec.describe Profiles::CommentTemplatesController, feature_category: :user_pro
end
describe 'GET #index' do
- describe 'feature flag disabled' do
- before do
- stub_feature_flags(saved_replies: false)
-
- get '/-/profile/comment_templates'
- end
-
- it { expect(response).to have_gitlab_http_status(:not_found) }
+ before do
+ get '/-/profile/comment_templates'
end
- describe 'feature flag enabled' do
- before do
- get '/-/profile/comment_templates'
- end
-
- it { expect(response).to have_gitlab_http_status(:ok) }
+ it { expect(response).to have_gitlab_http_status(:ok) }
- it 'sets hide search settings ivar' do
- expect(assigns(:hide_search_settings)).to eq(true)
- end
+ it 'sets hide search settings ivar' do
+ expect(assigns(:hide_search_settings)).to eq(true)
end
end
end
diff --git a/spec/support/capybara_slow_finder.rb b/spec/support/capybara_slow_finder.rb
index 975ddd52c1f..697b288e8b5 100644
--- a/spec/support/capybara_slow_finder.rb
+++ b/spec/support/capybara_slow_finder.rb
@@ -13,13 +13,13 @@ module Capybara
# Inspired by https://github.com/ngauthier/capybara-slow_finder_errors
module SlowFinder
def synchronize(seconds = nil, errors: nil)
- start_time = Gitlab::Metrics::System.monotonic_time
+ start_time = ::Gitlab::Metrics::System.monotonic_time
super
rescue Capybara::ElementNotFound => e
seconds ||= Capybara.default_max_wait_time
- raise e unless seconds > 0 && Gitlab::Metrics::System.monotonic_time - start_time > seconds
+ raise e unless seconds > 0 && ::Gitlab::Metrics::System.monotonic_time - start_time > seconds
message = format(MESSAGE, timeout: seconds)
raise e, "#{$!}\n\n#{message}", e.backtrace
diff --git a/spec/support/db_cleaner.rb b/spec/support/db_cleaner.rb
index eeeb583cac1..0a1d68a744c 100644
--- a/spec/support/db_cleaner.rb
+++ b/spec/support/db_cleaner.rb
@@ -57,7 +57,7 @@ module DbCleaner
end
def recreate_all_databases!
- start = Gitlab::Metrics::System.monotonic_time
+ start = ::Gitlab::Metrics::System.monotonic_time
puts "Recreating the database"
@@ -81,7 +81,7 @@ module DbCleaner
Gitlab::Database::Partitioning.sync_partitions_ignore_db_error
stub_feature_flags(disallow_database_ddl_feature_flags: disable_ddl_was)
- puts "Databases re-creation done in #{Gitlab::Metrics::System.monotonic_time - start}"
+ puts "Databases re-creation done in #{::Gitlab::Metrics::System.monotonic_time - start}"
end
def recreate_databases_and_seed_if_needed
diff --git a/spec/support/helpers/database/duplicate_indexes.yml b/spec/support/helpers/database/duplicate_indexes.yml
index 57ce762bbda..1ebc45a9d81 100644
--- a/spec/support/helpers/database/duplicate_indexes.yml
+++ b/spec/support/helpers/database/duplicate_indexes.yml
@@ -167,11 +167,6 @@ project_repositories:
project_topics:
index_project_topics_on_project_id_and_topic_id:
- index_project_topics_on_project_id
-projects:
- index_projects_api_path_id_desc:
- - index_on_projects_path
- index_projects_on_path_and_id:
- - index_on_projects_path
protected_environments:
index_protected_environments_on_project_id_and_name:
- index_protected_environments_on_project_id
diff --git a/spec/support/shared_examples/serializers/environment_serializer_shared_examples.rb b/spec/support/shared_examples/serializers/environment_serializer_shared_examples.rb
index 9eaad541df7..b7247f1f243 100644
--- a/spec/support/shared_examples/serializers/environment_serializer_shared_examples.rb
+++ b/spec/support/shared_examples/serializers/environment_serializer_shared_examples.rb
@@ -48,7 +48,7 @@ RSpec.shared_examples 'avoid N+1 on environments serialization' do
query ||= { page: 1, per_page: 20 }
request = double(url: "#{Gitlab.config.gitlab.url}:8080/api/v4/projects?#{query.to_query}", query_parameters: query)
- EnvironmentSerializer.new(current_user: user, project: project).yield_self do |serializer|
+ EnvironmentSerializer.new(current_user: user, project: project).then do |serializer|
serializer.within_folders if grouping
serializer.with_pagination(request, spy('response'))
serializer.represent(Environment.where(project: project))
diff --git a/spec/tasks/gitlab/db_rake_spec.rb b/spec/tasks/gitlab/db_rake_spec.rb
index ba266168627..a966f2118b0 100644
--- a/spec/tasks/gitlab/db_rake_spec.rb
+++ b/spec/tasks/gitlab/db_rake_spec.rb
@@ -601,8 +601,8 @@ RSpec.describe 'gitlab:db namespace rake task', :silence_stdout, feature_categor
end
describe 'drop_tables' do
- let(:tables) { %w(one two schema_migrations) }
- let(:views) { %w(three four pg_stat_statements) }
+ let(:tables) { %w[one two schema_migrations] }
+ let(:views) { %w[three four pg_stat_statements] }
let(:schemas) { Gitlab::Database::EXTRA_SCHEMAS }
let(:ignored_views) { double(ActiveRecord::Relation, pluck: ['pg_stat_statements']) }
diff --git a/spec/tooling/danger/customer_success_spec.rb b/spec/tooling/danger/customer_success_spec.rb
index fd3ead7b2d6..40ab7c79418 100644
--- a/spec/tooling/danger/customer_success_spec.rb
+++ b/spec/tooling/danger/customer_success_spec.rb
@@ -17,53 +17,53 @@ RSpec.describe Tooling::Danger::CustomerSuccess do
where do
{
'with data category changes to Ops and no Customer Success::Impact Check label' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb],
changed_lines: ['-data_category: cat1', '+data_category: operational'],
customer_labeled: false,
impacted: true,
- impacted_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml)
+ impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
},
'with data category changes and Customer Success::Impact Check label' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml],
changed_lines: ['-data_category: cat1', '+data_category: operational'],
customer_labeled: true,
impacted: false,
- impacted_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml)
+ impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
},
'with metric file changes and no data category changes' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml],
changed_lines: ['-product_stage: growth'],
customer_labeled: false,
impacted: false,
impacted_files: []
},
'with data category changes from Ops' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb],
changed_lines: ['-data_category: operational', '+data_category: cat2'],
customer_labeled: false,
impacted: true,
- impacted_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml)
+ impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
},
'with data category removed' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb],
changed_lines: ['-data_category: operational'],
customer_labeled: false,
impacted: true,
- impacted_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml)
+ impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
},
'with data category added' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb],
changed_lines: ['+data_category: operational'],
customer_labeled: false,
impacted: true,
- impacted_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml)
+ impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
},
'with data category in uppercase' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb],
changed_lines: ['+data_category: Operational'],
customer_labeled: false,
impacted: true,
- impacted_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml)
+ impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
}
}
end
diff --git a/spec/tooling/danger/datateam_spec.rb b/spec/tooling/danger/datateam_spec.rb
index 85fcc20fd7c..9d8aaf08520 100644
--- a/spec/tooling/danger/datateam_spec.rb
+++ b/spec/tooling/danger/datateam_spec.rb
@@ -17,95 +17,95 @@ RSpec.describe Tooling::Danger::Datateam do
where do
{
'with structure.sql subtraction changes and no Data Warehouse::Impact Check label' => {
- modified_files: %w(db/structure.sql app/models/user.rb),
+ modified_files: %w[db/structure.sql app/models/user.rb],
changed_lines: ['-group_id bigint NOT NULL'],
mr_labels: [],
impacted: true,
- impacted_files: %w(db/structure.sql)
+ impacted_files: %w[db/structure.sql]
},
'with structure.sql subtraction changes and Data Warehouse::Impact Check label' => {
- modified_files: %w(db/structure.sql),
+ modified_files: %w[db/structure.sql],
changed_lines: ['-group_id bigint NOT NULL)'],
mr_labels: ['Data Warehouse::Impact Check'],
impacted: false,
- impacted_files: %w(db/structure.sql)
+ impacted_files: %w[db/structure.sql]
},
'with structure.sql addition changes and no Data Warehouse::Impact Check label' => {
- modified_files: %w(db/structure.sql app/models/user.rb),
+ modified_files: %w[db/structure.sql app/models/user.rb],
changed_lines: ['+group_id bigint NOT NULL'],
mr_labels: [],
impacted: false,
- impacted_files: %w(db/structure.sql)
+ impacted_files: %w[db/structure.sql]
},
'with user model changes' => {
- modified_files: %w(app/models/users.rb),
+ modified_files: %w[app/models/users.rb],
changed_lines: ['+has_one :namespace'],
mr_labels: [],
impacted: false,
impacted_files: []
},
'with perfomance indicator changes and no Data Warehouse::Impact Check label' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb],
changed_lines: ['+-gmau'],
mr_labels: [],
impacted: true,
- impacted_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml)
+ impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
},
'with perfomance indicator changes and Data Warehouse::Impact Check label' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml],
changed_lines: ['+-gmau'],
mr_labels: ['Data Warehouse::Impact Check'],
impacted: false,
- impacted_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml)
+ impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
},
'with metric file changes and no performance indicator changes' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml],
changed_lines: ['-product_stage: growth'],
mr_labels: [],
impacted: false,
impacted_files: []
},
'with metric file changes and no performance indicator changes and other label' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml],
changed_lines: ['-product_stage: growth'],
mr_labels: ['type::maintenance'],
impacted: false,
impacted_files: []
},
'with performance indicator changes and other label' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb],
changed_lines: ['+-gmau'],
mr_labels: ['type::maintenance'],
impacted: true,
- impacted_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml)
+ impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
},
'with performance indicator changes, Data Warehouse::Impact Check and other label' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb],
changed_lines: ['+-gmau'],
mr_labels: ['type::maintenance', 'Data Warehouse::Impact Check'],
impacted: false,
- impacted_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml)
+ impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
},
'with performance indicator changes and other labels' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb],
changed_lines: ['+-gmau'],
mr_labels: ['type::maintenance', 'Data Warehouse::Impacted'],
impacted: false,
- impacted_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml)
+ impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
},
'with metric status removed' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb],
changed_lines: ['+status: removed'],
mr_labels: ['type::maintenance'],
impacted: true,
- impacted_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml)
+ impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
},
'with metric status active' => {
- modified_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb),
+ modified_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml app/models/user.rb],
changed_lines: ['+status: active'],
mr_labels: ['type::maintenance'],
impacted: false,
- impacted_files: %w(config/metrics/20210216182127_user_secret_detection_jobs.yml)
+ impacted_files: %w[config/metrics/20210216182127_user_secret_detection_jobs.yml]
}
}
end
diff --git a/spec/tooling/danger/sidekiq_queues_spec.rb b/spec/tooling/danger/sidekiq_queues_spec.rb
index 5ebcb018cc3..143ea9732cd 100644
--- a/spec/tooling/danger/sidekiq_queues_spec.rb
+++ b/spec/tooling/danger/sidekiq_queues_spec.rb
@@ -17,12 +17,12 @@ RSpec.describe Tooling::Danger::SidekiqQueues do
using RSpec::Parameterized::TableSyntax
where(:modified_files, :changed_queue_files) do
- %w(app/workers/all_queues.yml ee/app/workers/all_queues.yml foo) | %w(app/workers/all_queues.yml ee/app/workers/all_queues.yml)
- %w(app/workers/all_queues.yml ee/app/workers/all_queues.yml) | %w(app/workers/all_queues.yml ee/app/workers/all_queues.yml)
- %w(app/workers/all_queues.yml foo) | %w(app/workers/all_queues.yml)
- %w(ee/app/workers/all_queues.yml foo) | %w(ee/app/workers/all_queues.yml)
- %w(foo) | %w()
- %w() | %w()
+ %w[app/workers/all_queues.yml ee/app/workers/all_queues.yml foo] | %w[app/workers/all_queues.yml ee/app/workers/all_queues.yml]
+ %w[app/workers/all_queues.yml ee/app/workers/all_queues.yml] | %w[app/workers/all_queues.yml ee/app/workers/all_queues.yml]
+ %w[app/workers/all_queues.yml foo] | %w[app/workers/all_queues.yml]
+ %w[ee/app/workers/all_queues.yml foo] | %w[ee/app/workers/all_queues.yml]
+ %w[foo] | %w[]
+ %w[] | %w[]
end
with_them do
diff --git a/spec/tooling/lib/tooling/test_map_generator_spec.rb b/spec/tooling/lib/tooling/test_map_generator_spec.rb
index 1b369923d8d..eaaf525fc49 100644
--- a/spec/tooling/lib/tooling/test_map_generator_spec.rb
+++ b/spec/tooling/lib/tooling/test_map_generator_spec.rb
@@ -88,7 +88,7 @@ RSpec.describe Tooling::TestMapGenerator do
end
it 'displays a warning when report has no examples' do
- expect { subject.parse('yaml3.yml') }.to output(%|No examples in yaml3.yml! Metadata: {:type=>"Crystalball::ExecutionMap", :commit=>"74056e8d9cf3773f43faa1cf5416f8779c8284c9", :timestamp=>1602671965, :version=>nil}\n|).to_stdout
+ expect { subject.parse('yaml3.yml') }.to output(%(No examples in yaml3.yml! Metadata: {:type=>"Crystalball::ExecutionMap", :commit=>"74056e8d9cf3773f43faa1cf5416f8779c8284c9", :timestamp=>1602671965, :version=>nil}\n)).to_stdout
end
end
diff --git a/spec/uploaders/attachment_uploader_spec.rb b/spec/uploaders/attachment_uploader_spec.rb
index a035402e207..e4e96aa15b7 100644
--- a/spec/uploaders/attachment_uploader_spec.rb
+++ b/spec/uploaders/attachment_uploader_spec.rb
@@ -10,9 +10,9 @@ RSpec.describe AttachmentUploader do
subject { uploader }
it_behaves_like 'builds correct paths',
- store_dir: %r[uploads/-/system/note/attachment/],
- upload_path: %r[uploads/-/system/note/attachment/],
- absolute_path: %r[#{CarrierWave.root}/uploads/-/system/note/attachment/]
+ store_dir: %r{uploads/-/system/note/attachment/},
+ upload_path: %r{uploads/-/system/note/attachment/},
+ absolute_path: %r{#{CarrierWave.root}/uploads/-/system/note/attachment/}
context "object_store is REMOTE" do
before do
@@ -22,8 +22,8 @@ RSpec.describe AttachmentUploader do
include_context 'with storage', described_class::Store::REMOTE
it_behaves_like 'builds correct paths',
- store_dir: %r[note/attachment/],
- upload_path: %r[note/attachment/]
+ store_dir: %r{note/attachment/},
+ upload_path: %r{note/attachment/}
end
describe "#migrate!" do
diff --git a/spec/uploaders/avatar_uploader_spec.rb b/spec/uploaders/avatar_uploader_spec.rb
index bba7eb78f99..333f23d7947 100644
--- a/spec/uploaders/avatar_uploader_spec.rb
+++ b/spec/uploaders/avatar_uploader_spec.rb
@@ -10,9 +10,9 @@ RSpec.describe AvatarUploader do
subject { uploader }
it_behaves_like 'builds correct paths',
- store_dir: %r[uploads/-/system/user/avatar/],
- upload_path: %r[uploads/-/system/user/avatar/],
- absolute_path: %r[#{CarrierWave.root}/uploads/-/system/user/avatar/]
+ store_dir: %r{uploads/-/system/user/avatar/},
+ upload_path: %r{uploads/-/system/user/avatar/},
+ absolute_path: %r{#{CarrierWave.root}/uploads/-/system/user/avatar/}
context "object_store is REMOTE" do
before do
@@ -22,8 +22,8 @@ RSpec.describe AvatarUploader do
include_context 'with storage', described_class::Store::REMOTE
it_behaves_like 'builds correct paths',
- store_dir: %r[user/avatar/],
- upload_path: %r[user/avatar/]
+ store_dir: %r{user/avatar/},
+ upload_path: %r{user/avatar/}
end
context "with a file" do
diff --git a/spec/uploaders/ci/pipeline_artifact_uploader_spec.rb b/spec/uploaders/ci/pipeline_artifact_uploader_spec.rb
index 3935f081372..ace7bcbce48 100644
--- a/spec/uploaders/ci/pipeline_artifact_uploader_spec.rb
+++ b/spec/uploaders/ci/pipeline_artifact_uploader_spec.rb
@@ -10,8 +10,8 @@ RSpec.describe Ci::PipelineArtifactUploader do
it_behaves_like "builds correct paths",
store_dir: %r[\h{2}/\h{2}/\h{64}/pipelines/\d+/artifacts/\d+],
- cache_dir: %r[artifacts/tmp/cache],
- work_dir: %r[artifacts/tmp/work]
+ cache_dir: %r{artifacts/tmp/cache},
+ work_dir: %r{artifacts/tmp/work}
context 'when object store is REMOTE' do
before do
diff --git a/spec/uploaders/dependency_proxy/file_uploader_spec.rb b/spec/uploaders/dependency_proxy/file_uploader_spec.rb
index 3cb2d1ea0f0..faaa5541f0b 100644
--- a/spec/uploaders/dependency_proxy/file_uploader_spec.rb
+++ b/spec/uploaders/dependency_proxy/file_uploader_spec.rb
@@ -12,8 +12,8 @@ RSpec.describe DependencyProxy::FileUploader do
it_behaves_like "builds correct paths",
store_dir: %r[\h{2}/\h{2}],
- cache_dir: %r[/dependency_proxy/tmp/cache],
- work_dir: %r[/dependency_proxy/tmp/work]
+ cache_dir: %r{/dependency_proxy/tmp/cache},
+ work_dir: %r{/dependency_proxy/tmp/work}
context 'object store is remote' do
before do
diff --git a/spec/uploaders/design_management/design_v432x230_uploader_spec.rb b/spec/uploaders/design_management/design_v432x230_uploader_spec.rb
index 3991058b32d..edfab24331c 100644
--- a/spec/uploaders/design_management/design_v432x230_uploader_spec.rb
+++ b/spec/uploaders/design_management/design_v432x230_uploader_spec.rb
@@ -11,10 +11,10 @@ RSpec.describe DesignManagement::DesignV432x230Uploader do
subject(:uploader) { described_class.new(model, :image_v432x230) }
it_behaves_like 'builds correct paths',
- store_dir: %r[uploads/-/system/design_management/action/image_v432x230/],
- upload_path: %r[uploads/-/system/design_management/action/image_v432x230/],
- relative_path: %r[uploads/-/system/design_management/action/image_v432x230/],
- absolute_path: %r[#{CarrierWave.root}/uploads/-/system/design_management/action/image_v432x230/]
+ store_dir: %r{uploads/-/system/design_management/action/image_v432x230/},
+ upload_path: %r{uploads/-/system/design_management/action/image_v432x230/},
+ relative_path: %r{uploads/-/system/design_management/action/image_v432x230/},
+ absolute_path: %r{#{CarrierWave.root}/uploads/-/system/design_management/action/image_v432x230/}
context 'object_store is REMOTE' do
before do
@@ -24,9 +24,9 @@ RSpec.describe DesignManagement::DesignV432x230Uploader do
include_context 'with storage', described_class::Store::REMOTE
it_behaves_like 'builds correct paths',
- store_dir: %r[design_management/action/image_v432x230/],
- upload_path: %r[design_management/action/image_v432x230/],
- relative_path: %r[design_management/action/image_v432x230/]
+ store_dir: %r{design_management/action/image_v432x230/},
+ upload_path: %r{design_management/action/image_v432x230/},
+ relative_path: %r{design_management/action/image_v432x230/}
end
describe "#migrate!" do
diff --git a/spec/uploaders/external_diff_uploader_spec.rb b/spec/uploaders/external_diff_uploader_spec.rb
index 2121e9cbc29..25e8bd0a4dc 100644
--- a/spec/uploaders/external_diff_uploader_spec.rb
+++ b/spec/uploaders/external_diff_uploader_spec.rb
@@ -9,9 +9,9 @@ RSpec.describe ExternalDiffUploader do
subject(:uploader) { described_class.new(diff, :external_diff) }
it_behaves_like "builds correct paths",
- store_dir: %r[merge_request_diffs/mr-\d+],
- cache_dir: %r[/external-diffs/tmp/cache],
- work_dir: %r[/external-diffs/tmp/work]
+ store_dir: %r{merge_request_diffs/mr-\d+},
+ cache_dir: %r{/external-diffs/tmp/cache},
+ work_dir: %r{/external-diffs/tmp/work}
context "object store is REMOTE" do
before do
@@ -21,7 +21,7 @@ RSpec.describe ExternalDiffUploader do
include_context 'with storage', described_class::Store::REMOTE
it_behaves_like "builds correct paths",
- store_dir: %r[merge_request_diffs/mr-\d+]
+ store_dir: %r{merge_request_diffs/mr-\d+}
end
describe 'remote file' do
diff --git a/spec/uploaders/import_export_uploader_spec.rb b/spec/uploaders/import_export_uploader_spec.rb
index 64e92f5d60e..1a2041df3d0 100644
--- a/spec/uploaders/import_export_uploader_spec.rb
+++ b/spec/uploaders/import_export_uploader_spec.rb
@@ -39,8 +39,8 @@ RSpec.describe ImportExportUploader do
include_context 'with storage', described_class::Store::REMOTE
patterns = {
- store_dir: %r[import_export_upload/import_file/],
- upload_path: %r[import_export_upload/import_file/]
+ store_dir: %r{import_export_upload/import_file/},
+ upload_path: %r{import_export_upload/import_file/}
}
it_behaves_like 'builds correct paths', patterns do
diff --git a/spec/uploaders/job_artifact_uploader_spec.rb b/spec/uploaders/job_artifact_uploader_spec.rb
index dac9e97641d..ea4f0036fa4 100644
--- a/spec/uploaders/job_artifact_uploader_spec.rb
+++ b/spec/uploaders/job_artifact_uploader_spec.rb
@@ -11,8 +11,8 @@ RSpec.describe JobArtifactUploader do
it_behaves_like "builds correct paths",
store_dir: %r[\h{2}/\h{2}/\h{64}/\d{4}_\d{1,2}_\d{1,2}/\d+/\d+\z],
- cache_dir: %r[artifacts/tmp/cache],
- work_dir: %r[artifacts/tmp/work]
+ cache_dir: %r{artifacts/tmp/cache},
+ work_dir: %r{artifacts/tmp/work}
context "object store is REMOTE" do
before do
diff --git a/spec/uploaders/lfs_object_uploader_spec.rb b/spec/uploaders/lfs_object_uploader_spec.rb
index 9bbfd910ada..77bde5da7ea 100644
--- a/spec/uploaders/lfs_object_uploader_spec.rb
+++ b/spec/uploaders/lfs_object_uploader_spec.rb
@@ -11,8 +11,8 @@ RSpec.describe LfsObjectUploader do
it_behaves_like "builds correct paths",
store_dir: %r[\h{2}/\h{2}],
- cache_dir: %r[/lfs-objects/tmp/cache],
- work_dir: %r[/lfs-objects/tmp/work]
+ cache_dir: %r{/lfs-objects/tmp/cache},
+ work_dir: %r{/lfs-objects/tmp/work}
context "object store is REMOTE" do
before do
diff --git a/spec/uploaders/namespace_file_uploader_spec.rb b/spec/uploaders/namespace_file_uploader_spec.rb
index 02381123ba5..0db7f82dcbd 100644
--- a/spec/uploaders/namespace_file_uploader_spec.rb
+++ b/spec/uploaders/namespace_file_uploader_spec.rb
@@ -13,9 +13,9 @@ RSpec.describe NamespaceFileUploader do
it_behaves_like 'builds correct paths' do
let(:patterns) do
{
- store_dir: %r[uploads/-/system/namespace/\d+],
+ store_dir: %r{uploads/-/system/namespace/\d+},
upload_path: identifier,
- absolute_path: %r[#{CarrierWave.root}/uploads/-/system/namespace/\d+/#{identifier}]
+ absolute_path: %r{#{CarrierWave.root}/uploads/-/system/namespace/\d+/#{identifier}}
}
end
end
@@ -30,7 +30,7 @@ RSpec.describe NamespaceFileUploader do
it_behaves_like 'builds correct paths' do
let(:patterns) do
{
- store_dir: %r[namespace/\d+/\h+],
+ store_dir: %r{namespace/\d+/\h+},
upload_path: identifier
}
end
diff --git a/spec/uploaders/object_storage_spec.rb b/spec/uploaders/object_storage_spec.rb
index 576f6deeec6..e4a9b92df64 100644
--- a/spec/uploaders/object_storage_spec.rb
+++ b/spec/uploaders/object_storage_spec.rb
@@ -255,7 +255,7 @@ RSpec.describe ObjectStorage, :clean_gitlab_redis_shared_state, feature_category
describe '#use_file' do
context 'when file is stored locally' do
it "calls a regular path" do
- expect { |b| uploader.use_file(&b) }.not_to yield_with_args(%r[tmp/cache])
+ expect { |b| uploader.use_file(&b) }.not_to yield_with_args(%r{tmp/cache})
end
end
@@ -267,7 +267,7 @@ RSpec.describe ObjectStorage, :clean_gitlab_redis_shared_state, feature_category
end
it "calls a cache path" do
- expect { |b| uploader.use_file(&b) }.to yield_with_args(%r[tmp/cache])
+ expect { |b| uploader.use_file(&b) }.to yield_with_args(%r{tmp/cache})
end
it "cleans up the cached file" do
diff --git a/spec/uploaders/packages/composer/cache_uploader_spec.rb b/spec/uploaders/packages/composer/cache_uploader_spec.rb
index 7eea4a839ab..56e8b28ef36 100644
--- a/spec/uploaders/packages/composer/cache_uploader_spec.rb
+++ b/spec/uploaders/packages/composer/cache_uploader_spec.rb
@@ -10,8 +10,8 @@ RSpec.describe Packages::Composer::CacheUploader do
it_behaves_like "builds correct paths",
store_dir: %r[^\h{2}/\h{2}/\h{64}/packages/composer_cache/\d+$],
- cache_dir: %r[/packages/tmp/cache],
- work_dir: %r[/packages/tmp/work]
+ cache_dir: %r{/packages/tmp/cache},
+ work_dir: %r{/packages/tmp/work}
context 'object store is remote' do
before do
diff --git a/spec/uploaders/packages/debian/component_file_uploader_spec.rb b/spec/uploaders/packages/debian/component_file_uploader_spec.rb
index 84ba751c737..ffc5d8085fa 100644
--- a/spec/uploaders/packages/debian/component_file_uploader_spec.rb
+++ b/spec/uploaders/packages/debian/component_file_uploader_spec.rb
@@ -13,8 +13,8 @@ RSpec.describe Packages::Debian::ComponentFileUploader do
it_behaves_like "builds correct paths",
store_dir: %r[^\h{2}/\h{2}/\h{64}/debian_#{container_type}_component_file/\d+$],
- cache_dir: %r[/packages/tmp/cache$],
- work_dir: %r[/packages/tmp/work$]
+ cache_dir: %r{/packages/tmp/cache$},
+ work_dir: %r{/packages/tmp/work$}
context 'object store is remote' do
before do
@@ -25,8 +25,8 @@ RSpec.describe Packages::Debian::ComponentFileUploader do
it_behaves_like "builds correct paths",
store_dir: %r[^\h{2}/\h{2}/\h{64}/debian_#{container_type}_component_file/\d+$],
- cache_dir: %r[/packages/tmp/cache$],
- work_dir: %r[/packages/tmp/work$]
+ cache_dir: %r{/packages/tmp/cache$},
+ work_dir: %r{/packages/tmp/work$}
end
describe 'remote file' do
diff --git a/spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb b/spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb
index df630569856..2086ab5966c 100644
--- a/spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb
+++ b/spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb
@@ -13,8 +13,8 @@ RSpec.describe Packages::Debian::DistributionReleaseFileUploader do
it_behaves_like "builds correct paths",
store_dir: %r[^\h{2}/\h{2}/\h{64}/debian_#{container_type}_distribution/\d+$],
- cache_dir: %r[/packages/tmp/cache$],
- work_dir: %r[/packages/tmp/work$]
+ cache_dir: %r{/packages/tmp/cache$},
+ work_dir: %r{/packages/tmp/work$}
context 'object store is remote' do
before do
@@ -25,8 +25,8 @@ RSpec.describe Packages::Debian::DistributionReleaseFileUploader do
it_behaves_like "builds correct paths",
store_dir: %r[^\h{2}/\h{2}/\h{64}/debian_#{container_type}_distribution/\d+$],
- cache_dir: %r[/packages/tmp/cache$],
- work_dir: %r[/packages/tmp/work$]
+ cache_dir: %r{/packages/tmp/cache$},
+ work_dir: %r{/packages/tmp/work$}
end
describe 'remote file' do
diff --git a/spec/uploaders/packages/package_file_uploader_spec.rb b/spec/uploaders/packages/package_file_uploader_spec.rb
index ddd9823d55c..36acb681669 100644
--- a/spec/uploaders/packages/package_file_uploader_spec.rb
+++ b/spec/uploaders/packages/package_file_uploader_spec.rb
@@ -10,8 +10,8 @@ RSpec.describe Packages::PackageFileUploader do
it_behaves_like "builds correct paths",
store_dir: %r[^\h{2}/\h{2}/\h{64}/packages/\d+/files/\d+$],
- cache_dir: %r[/packages/tmp/cache],
- work_dir: %r[/packages/tmp/work]
+ cache_dir: %r{/packages/tmp/cache},
+ work_dir: %r{/packages/tmp/work}
context 'object store is remote' do
before do
diff --git a/spec/uploaders/pages/deployment_uploader_spec.rb b/spec/uploaders/pages/deployment_uploader_spec.rb
index 7686efd4fe4..a5fe2dfe9ba 100644
--- a/spec/uploaders/pages/deployment_uploader_spec.rb
+++ b/spec/uploaders/pages/deployment_uploader_spec.rb
@@ -14,8 +14,8 @@ RSpec.describe Pages::DeploymentUploader do
it_behaves_like "builds correct paths",
store_dir: %r[/\h{2}/\h{2}/\h{64}/pages_deployments/\d+],
- cache_dir: %r[pages/@hashed/tmp/cache],
- work_dir: %r[pages/@hashed/tmp/work]
+ cache_dir: %r{pages/@hashed/tmp/cache},
+ work_dir: %r{pages/@hashed/tmp/work}
context 'when object store is REMOTE' do
before do
diff --git a/spec/uploaders/personal_file_uploader_spec.rb b/spec/uploaders/personal_file_uploader_spec.rb
index 58edf3f093d..de5ed8318e4 100644
--- a/spec/uploaders/personal_file_uploader_spec.rb
+++ b/spec/uploaders/personal_file_uploader_spec.rb
@@ -43,16 +43,16 @@ RSpec.describe PersonalFileUploader do
it 'builds correct paths for both local and remote storage' do
paths = uploader.upload_paths('test.jpg')
- expect(paths.first).to match(%r[\h+/test.jpg])
- expect(paths.second).to match(%r[^personal_snippet/\d+/\h+/test.jpg])
+ expect(paths.first).to match(%r{\h+/test.jpg})
+ expect(paths.second).to match(%r{^personal_snippet/\d+/\h+/test.jpg})
end
end
context 'object_store is LOCAL' do
it_behaves_like 'builds correct paths',
- store_dir: %r[uploads/-/system/personal_snippet/\d+/\h+],
- upload_path: %r[\h+/\S+],
- absolute_path: %r[#{CarrierWave.root}/uploads/-/system/personal_snippet/\d+/\h+/\S+$]
+ store_dir: %r{uploads/-/system/personal_snippet/\d+/\h+},
+ upload_path: %r{\h+/\S+},
+ absolute_path: %r{#{CarrierWave.root}/uploads/-/system/personal_snippet/\d+/\h+/\S+$}
it_behaves_like '#base_dir'
it_behaves_like '#to_h'
@@ -66,8 +66,8 @@ RSpec.describe PersonalFileUploader do
include_context 'with storage', described_class::Store::REMOTE
it_behaves_like 'builds correct paths',
- store_dir: %r[\d+/\h+],
- upload_path: %r[^personal_snippet/\d+/\h+/<filename>]
+ store_dir: %r{\d+/\h+},
+ upload_path: %r{^personal_snippet/\d+/\h+/<filename>}
it_behaves_like '#base_dir'
it_behaves_like '#to_h'
diff --git a/spec/validators/any_field_validator_spec.rb b/spec/validators/any_field_validator_spec.rb
index bede006abf6..2d3d3982828 100644
--- a/spec/validators/any_field_validator_spec.rb
+++ b/spec/validators/any_field_validator_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe AnyFieldValidator do
Class.new(ApplicationRecord) do
self.table_name = 'vulnerabilities'
- validates_with AnyFieldValidator, fields: %w(title description)
+ validates_with AnyFieldValidator, fields: %w[title description]
end
end
@@ -18,7 +18,7 @@ RSpec.describe AnyFieldValidator do
expect(validated_object.valid?).to be_falsey
expect(validated_object.errors.messages)
.to eq(base: ["At least one field of %{one_of_required_fields} must be present" %
- { one_of_required_fields: %w(title description) }])
+ { one_of_required_fields: %w[title description] }])
end
it 'validates if only one field is present' do
diff --git a/spec/views/layouts/_head.html.haml_spec.rb b/spec/views/layouts/_head.html.haml_spec.rb
index 504a9492d7a..56936dbafcf 100644
--- a/spec/views/layouts/_head.html.haml_spec.rb
+++ b/spec/views/layouts/_head.html.haml_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe 'layouts/_head' do
render
- expect(rendered).to match(%{content="foo&quot; http-equiv=&quot;refresh"})
+ expect(rendered).to match(%(content="foo&quot; http-equiv=&quot;refresh"))
end
it 'escapes HTML-safe strings in page_description' do
@@ -23,7 +23,7 @@ RSpec.describe 'layouts/_head' do
render
- expect(rendered).to match(%{content="foo&quot; http-equiv=&quot;refresh"})
+ expect(rendered).to match(%(content="foo&quot; http-equiv=&quot;refresh"))
end
it 'escapes HTML-safe strings in page_image' do
@@ -31,7 +31,7 @@ RSpec.describe 'layouts/_head' do
render
- expect(rendered).to match(%{content="foo&quot; http-equiv=&quot;refresh"})
+ expect(rendered).to match(%(content="foo&quot; http-equiv=&quot;refresh"))
end
context 'when an asset_host is set' do
@@ -101,7 +101,7 @@ RSpec.describe 'layouts/_head' do
render
expect(rendered).to match(%r{<script.*>.*var u="//#{matomo_host}/".*</script>}m)
- expect(rendered).to match(%r(<noscript>.*<img src="//#{matomo_host}/matomo.php.*</noscript>))
+ expect(rendered).to match(%r{<noscript>.*<img src="//#{matomo_host}/matomo.php.*</noscript>})
expect(rendered).not_to include('_paq.push(["disableCookies"])')
end
@@ -120,6 +120,6 @@ RSpec.describe 'layouts/_head' do
def stub_helper_with_safe_string(method)
allow_any_instance_of(PageLayoutHelper).to receive(method)
- .and_return(%q{foo" http-equiv="refresh}.html_safe)
+ .and_return(%q(foo" http-equiv="refresh).html_safe)
end
end
diff --git a/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb b/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
index 005283f66da..34debcab5f7 100644
--- a/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
+++ b/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
@@ -32,7 +32,7 @@ RSpec.describe 'layouts/nav/sidebar/_project', feature_category: :navigation do
it 'has a link to the project activity path' do
render
- expect(rendered).to have_link('Project information', href: activity_project_path(project), class: %w(shortcuts-project-information))
+ expect(rendered).to have_link('Project information', href: activity_project_path(project), class: %w[shortcuts-project-information])
expect(rendered).to have_selector('[aria-label="Project information"]')
end
diff --git a/spec/views/projects/commit/branches.html.haml_spec.rb b/spec/views/projects/commit/branches.html.haml_spec.rb
index f1064be3047..d6fbf6453c0 100644
--- a/spec/views/projects/commit/branches.html.haml_spec.rb
+++ b/spec/views/projects/commit/branches.html.haml_spec.rb
@@ -61,7 +61,7 @@ RSpec.describe 'projects/commit/branches.html.haml' do
before do
assign(:branches, ['master'])
assign(:branches_limit_exceeded, true)
- assign(:tags, %w(tag1 tag2))
+ assign(:tags, %w[tag1 tag2])
assign(:tags_limit_exceeded, false)
render
diff --git a/spec/workers/concerns/worker_context_spec.rb b/spec/workers/concerns/worker_context_spec.rb
index 700d9e37a55..7a046517fd1 100644
--- a/spec/workers/concerns/worker_context_spec.rb
+++ b/spec/workers/concerns/worker_context_spec.rb
@@ -74,7 +74,7 @@ RSpec.describe WorkerContext, feature_category: :shared do
describe '.bulk_perform_async_with_contexts' do
subject do
worker.bulk_perform_async_with_contexts(
- %w(hello world),
+ %w[hello world],
context_proc: -> (_) { { user: build_stubbed(:user) } },
arguments_proc: -> (word) { word }
)
@@ -93,7 +93,7 @@ RSpec.describe WorkerContext, feature_category: :shared do
subject do
worker.bulk_perform_in_with_contexts(
10.minutes,
- %w(hello world),
+ %w[hello world],
context_proc: -> (_) { { user: build_stubbed(:user) } },
arguments_proc: -> (word) { word }
)
diff --git a/spec/workers/container_registry/migration/enqueuer_worker_spec.rb b/spec/workers/container_registry/migration/enqueuer_worker_spec.rb
index 4a603e538ef..ff388b1a29d 100644
--- a/spec/workers/container_registry/migration/enqueuer_worker_spec.rb
+++ b/spec/workers/container_registry/migration/enqueuer_worker_spec.rb
@@ -16,7 +16,7 @@ RSpec.describe ContainerRegistry::Migration::EnqueuerWorker, :aggregate_failures
before do
stub_container_registry_config(enabled: true)
stub_application_setting(container_registry_import_created_before: 1.day.ago)
- stub_container_registry_tags(repository: container_repository.path, tags: %w(tag1 tag2 tag3), with_manifest: true)
+ stub_container_registry_tags(repository: container_repository.path, tags: %w[tag1 tag2 tag3], with_manifest: true)
end
describe '#perform' do
@@ -133,7 +133,7 @@ RSpec.describe ContainerRegistry::Migration::EnqueuerWorker, :aggregate_failures
stub_container_registry_tags(
repository: container_repository2.path,
- tags: %w(tag4 tag5 tag6),
+ tags: %w[tag4 tag5 tag6],
with_manifest: true
)
end
@@ -204,7 +204,7 @@ RSpec.describe ContainerRegistry::Migration::EnqueuerWorker, :aggregate_failures
stub_application_setting(container_registry_import_max_tags_count: 0)
# Add 8 tags to the next repository
stub_container_registry_tags(
- repository: container_repository.path, tags: %w(a b c d e f g h), with_manifest: true
+ repository: container_repository.path, tags: %w[a b c d e f g h], with_manifest: true
)
end
diff --git a/spec/workers/groups/update_statistics_worker_spec.rb b/spec/workers/groups/update_statistics_worker_spec.rb
index f47606f0580..5fc4ccdab0d 100644
--- a/spec/workers/groups/update_statistics_worker_spec.rb
+++ b/spec/workers/groups/update_statistics_worker_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
RSpec.describe Groups::UpdateStatisticsWorker, feature_category: :source_code_management do
let_it_be(:group) { create(:group) }
- let(:statistics) { %w(wiki_size) }
+ let(:statistics) { %w[wiki_size] }
subject(:worker) { described_class.new }
diff --git a/spec/workers/jira_connect/sync_branch_worker_spec.rb b/spec/workers/jira_connect/sync_branch_worker_spec.rb
index 1c2661ad0e5..18eb22b8a47 100644
--- a/spec/workers/jira_connect/sync_branch_worker_spec.rb
+++ b/spec/workers/jira_connect/sync_branch_worker_spec.rb
@@ -14,7 +14,7 @@ RSpec.describe JiraConnect::SyncBranchWorker, feature_category: :integrations do
let(:project_id) { project.id }
let(:branch_name) { 'master' }
- let(:commit_shas) { %w(b83d6e3 5a62481) }
+ let(:commit_shas) { %w[b83d6e3 5a62481] }
let(:update_sequence_id) { 1 }
def perform
diff --git a/spec/workers/post_receive_spec.rb b/spec/workers/post_receive_spec.rb
index 2e0a2535453..dcece830a85 100644
--- a/spec/workers/post_receive_spec.rb
+++ b/spec/workers/post_receive_spec.rb
@@ -391,7 +391,7 @@ RSpec.describe PostReceive, feature_category: :source_code_management do
it 'enqueues a UpdateMergeRequestsWorker job' do
allow(Project).to receive(:find_by).and_return(project)
- expect_next(MergeRequests::PushedBranchesService).to receive(:execute).and_return(%w(tést))
+ expect_next(MergeRequests::PushedBranchesService).to receive(:execute).and_return(%w[tést])
expect(UpdateMergeRequestsWorker).to receive(:perform_async).with(project.id, project.first_owner.id, any_args)
diff --git a/spec/workers/project_cache_worker_spec.rb b/spec/workers/project_cache_worker_spec.rb
index 4d468897599..7ef2494b5cf 100644
--- a/spec/workers/project_cache_worker_spec.rb
+++ b/spec/workers/project_cache_worker_spec.rb
@@ -35,10 +35,10 @@ RSpec.describe ProjectCacheWorker, feature_category: :source_code_management do
context 'with an existing project' do
it 'refreshes the method caches' do
expect_any_instance_of(Repository).to receive(:refresh_method_caches)
- .with(%i(readme))
+ .with(%i[readme])
.and_call_original
- worker.perform(project.id, %w(readme))
+ worker.perform(project.id, %w[readme])
end
context 'with statistics disabled' do
@@ -52,7 +52,7 @@ RSpec.describe ProjectCacheWorker, feature_category: :source_code_management do
end
context 'with statistics' do
- let(:statistics) { %w(repository_size) }
+ let(:statistics) { %w[repository_size] }
it 'updates the project statistics' do
expect(worker).to receive(:update_statistics)
@@ -69,16 +69,16 @@ RSpec.describe ProjectCacheWorker, feature_category: :source_code_management do
allow(Gitlab::MarkupHelper).to receive(:plain?).and_return(true)
expect_any_instance_of(Repository).to receive(:refresh_method_caches)
- .with(%i(readme))
+ .with(%i[readme])
.and_call_original
- worker.perform(project.id, %w(readme))
+ worker.perform(project.id, %w[readme])
end
end
end
end
describe '#update_statistics' do
- let(:statistics) { %w(repository_size) }
+ let(:statistics) { %w[repository_size] }
context 'when a lease could not be obtained' do
it 'does not update the project statistics' do
@@ -120,7 +120,7 @@ RSpec.describe ProjectCacheWorker, feature_category: :source_code_management do
end
it_behaves_like 'an idempotent worker' do
- let(:job_args) { [project.id, %w(readme), %w(repository_size)] }
+ let(:job_args) { [project.id, %w[readme], %w[repository_size]] }
it 'calls Projects::UpdateStatisticsService service twice', :clean_gitlab_redis_shared_state do
expect(Projects::UpdateStatisticsService).to receive(:new).once.and_return(double(execute: true))
diff --git a/spec/workers/projects/record_target_platforms_worker_spec.rb b/spec/workers/projects/record_target_platforms_worker_spec.rb
index d4515f7727a..23705d0c86e 100644
--- a/spec/workers/projects/record_target_platforms_worker_spec.rb
+++ b/spec/workers/projects/record_target_platforms_worker_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe Projects::RecordTargetPlatformsWorker, feature_category: :activat
let_it_be(:project) { create(:project, :repository, detected_repository_languages: true) }
let(:worker) { described_class.new }
- let(:service_result) { %w(ios osx watchos) }
+ let(:service_result) { %w[ios osx watchos] }
let(:service_double) { instance_double(Projects::RecordTargetPlatformsService, execute: service_result) }
let(:lease_key) { "#{described_class.name.underscore}:#{project.id}" }
let(:lease_timeout) { described_class::LEASE_TIMEOUT }
diff --git a/spec/workers/stuck_merge_jobs_worker_spec.rb b/spec/workers/stuck_merge_jobs_worker_spec.rb
index 44dc6550cdb..03f371ab740 100644
--- a/spec/workers/stuck_merge_jobs_worker_spec.rb
+++ b/spec/workers/stuck_merge_jobs_worker_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe StuckMergeJobsWorker, feature_category: :code_review_workflow do
context 'merge job identified as completed' do
it 'updates merge request to merged when locked but has merge_commit_sha' do
- allow(Gitlab::SidekiqStatus).to receive(:completed_jids).and_return(%w(123 456))
+ allow(Gitlab::SidekiqStatus).to receive(:completed_jids).and_return(%w[123 456])
mr_with_sha = create(:merge_request, :locked, merge_jid: '123', state: :locked, merge_commit_sha: 'foo-bar-baz')
mr_without_sha = create(:merge_request, :locked, merge_jid: '123', state: :locked, merge_commit_sha: nil)
@@ -23,7 +23,7 @@ RSpec.describe StuckMergeJobsWorker, feature_category: :code_review_workflow do
end
it 'updates merge request to opened when locked but has not been merged', :sidekiq_might_not_need_inline do
- allow(Gitlab::SidekiqStatus).to receive(:completed_jids).and_return(%w(123))
+ allow(Gitlab::SidekiqStatus).to receive(:completed_jids).and_return(%w[123])
merge_request = create(:merge_request, :locked, merge_jid: '123', state: :locked)
pipeline = create(:ci_empty_pipeline, project: merge_request.project, ref: merge_request.source_branch, sha: merge_request.source_branch_sha)
@@ -35,7 +35,7 @@ RSpec.describe StuckMergeJobsWorker, feature_category: :code_review_workflow do
end
it 'logs updated stuck merge job ids' do
- allow(Gitlab::SidekiqStatus).to receive(:completed_jids).and_return(%w(123 456))
+ allow(Gitlab::SidekiqStatus).to receive(:completed_jids).and_return(%w[123 456])
create(:merge_request, :locked, merge_jid: '123')
create(:merge_request, :locked, merge_jid: '456')
diff --git a/spec/workers/update_project_statistics_worker_spec.rb b/spec/workers/update_project_statistics_worker_spec.rb
index c5e6f45a201..ba0834e64dc 100644
--- a/spec/workers/update_project_statistics_worker_spec.rb
+++ b/spec/workers/update_project_statistics_worker_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe UpdateProjectStatisticsWorker, feature_category: :source_code_man
let(:worker) { described_class.new }
let(:project) { create(:project, :repository) }
- let(:statistics) { %w(repository_size) }
+ let(:statistics) { %w[repository_size] }
let(:lease_key) { "namespace:namespaces_root_statistics:#{project.namespace_id}" }
describe '#perform' do
diff --git a/yarn.lock b/yarn.lock
index 7573404abbb..ffb3e72662e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1913,14 +1913,14 @@
estree-walker "^2.0.2"
picomatch "^2.3.1"
-"@sentry-internal/tracing@7.78.0":
- version "7.78.0"
- resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.78.0.tgz#254d29a9434ee1de41201620b172a8cc56387e72"
- integrity sha512-53wf+HWyjiansZ0U+q7Q7U2kEjXfL/C8+XOwE4ntLVPGFyvxuYaRUb8OEYFNTsODf20ihnxOLZ+GsXXPlqPfFA==
+"@sentry-internal/tracing@7.79.0":
+ version "7.79.0"
+ resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.79.0.tgz#db99820e93e15bf4d990f1b270a1d1c2a69fd564"
+ integrity sha512-Mf9Bd0OrZ24h1qZpvmz9IRnfORMGYNYC1xWBBFpIR1AauEDX89x+mJwIOrUc4KKAAAwt73shrJv1QA8QOm4E3g==
dependencies:
- "@sentry/core" "7.78.0"
- "@sentry/types" "7.78.0"
- "@sentry/utils" "7.78.0"
+ "@sentry/core" "7.79.0"
+ "@sentry/types" "7.79.0"
+ "@sentry/utils" "7.79.0"
"@sentry/core@5.30.0":
version "5.30.0"
@@ -1933,13 +1933,13 @@
"@sentry/utils" "5.30.0"
tslib "^1.9.3"
-"@sentry/core@7.78.0":
- version "7.78.0"
- resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.78.0.tgz#0c306f258e12637508b14e0633a4a5506628e914"
- integrity sha512-cf8U+1cNkIK14KC5ySXtzu4RW5Veto3lqkS95Rbl4ExUsrVsfansFNH63j6Bvu7UbJlBRK67uf6Ug2GBbUBUIg==
+"@sentry/core@7.79.0":
+ version "7.79.0"
+ resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.79.0.tgz#08871bd686afd58125f43421d3dcb65a3b9208b0"
+ integrity sha512-9vG7SfOcJNJNiqlqg4MuHDUCaSf2ZXpv3eZYRPbBkgPGr8X1ekrSABpOK+6kBNvbtKxfWVTWbLpAA6xU+cwnVw==
dependencies:
- "@sentry/types" "7.78.0"
- "@sentry/utils" "7.78.0"
+ "@sentry/types" "7.79.0"
+ "@sentry/utils" "7.79.0"
"@sentry/hub@5.30.0":
version "5.30.0"
@@ -1959,25 +1959,25 @@
"@sentry/types" "5.30.0"
tslib "^1.9.3"
-"@sentry/replay@7.78.0":
- version "7.78.0"
- resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.78.0.tgz#b657ae24448dc12268afe6cdc37b95e7ae04a8cc"
- integrity sha512-BYBEJg8rdya8nN5H39ZVsklvFja/TX0Z5evkihCHYOAsUN74SPqmwsFYzziQhswFPJWEp0qpKweC7iuCKCSqyw==
+"@sentry/replay@7.79.0":
+ version "7.79.0"
+ resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.79.0.tgz#53c658e5a51698bc32019be167427b8692e2a2b7"
+ integrity sha512-vF79NxWGYfoD0hnIkdgUQqedoMcRHHp5UAfZlxhpQzJf4TnbOjollp63AvOrfd38osSG2d3E5kTUU9xs/zKhBQ==
dependencies:
- "@sentry-internal/tracing" "7.78.0"
- "@sentry/core" "7.78.0"
- "@sentry/types" "7.78.0"
- "@sentry/utils" "7.78.0"
+ "@sentry-internal/tracing" "7.79.0"
+ "@sentry/core" "7.79.0"
+ "@sentry/types" "7.79.0"
+ "@sentry/utils" "7.79.0"
"@sentry/types@5.30.0":
version "5.30.0"
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402"
integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==
-"@sentry/types@7.78.0":
- version "7.78.0"
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.78.0.tgz#1ed40b43dbf7b92d4e7117d66be312a927cb48e4"
- integrity sha512-XNyu6EFTrXmKlVgKHOxGdBJ6Aw7BnMBWtptr5TPOQJ4kh+rP+4DB3I6nafcSSUbIsO+hBVgBpj0J8R3Ps86CMQ==
+"@sentry/types@7.79.0":
+ version "7.79.0"
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.79.0.tgz#b47c53a3f8b9057aac820fe99e1154949aac934d"
+ integrity sha512-3tV32+v/DF8w7kD0p3kLWtgVTVdFL39oGY02+vz//rjWg/vzeqSE95mCYKm5pUfd6cPETX/8dunCiuTBQIkTHQ==
"@sentry/utils@5.30.0":
version "5.30.0"
@@ -1987,12 +1987,12 @@
"@sentry/types" "5.30.0"
tslib "^1.9.3"
-"@sentry/utils@7.78.0":
- version "7.78.0"
- resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.78.0.tgz#a3dd459f2347e20af81bfe92b6f75bae95918fb8"
- integrity sha512-vxPZaMTthMgEgKvlkuqD9rQuQ4Q8fsWAuOuzeuwUbrVCBIeM/WpmyjUUx4ozy6axNGXSXGE4CzrEQUNv3+t9kQ==
+"@sentry/utils@7.79.0":
+ version "7.79.0"
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.79.0.tgz#c410b6c0e3032dbc9e708177555c70bdb8d1f63b"
+ integrity sha512-tUTlb6PvfZawqBmBK9CPXflqrZDXHKWoX3fve2zLK6W0FSpIMOO4TH8PBqkHBFs0ZgF/bnv/bsM4z7uEAlAtzg==
dependencies:
- "@sentry/types" "7.78.0"
+ "@sentry/types" "7.79.0"
"@sinclair/typebox@^0.24.1":
version "0.24.40"
@@ -11775,16 +11775,16 @@ send@0.17.2:
"@sentry/utils" "5.30.0"
tslib "^1.9.3"
-"sentrybrowser@npm:@sentry/browser@7.78.0":
- version "7.78.0"
- resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.78.0.tgz#02a8a142814cb914c6199cabd965e951fd0c5deb"
- integrity sha512-KVeC71y7hnqYN3HN6KZH33y0yBAE8CmiApQ08KFIF3+6Ty1V3PC1mbQAmNGttka57jNvyBXTCpN8Fw8MPK9V/A==
+"sentrybrowser@npm:@sentry/browser@7.79.0":
+ version "7.79.0"
+ resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.79.0.tgz#d05460161774642f37e4f53ee6006551aae49fed"
+ integrity sha512-gWbWEElF61uZeTFLIZz3NMyCkAzBDOpMAogEbVu2GX91SHKB7GXlE//INnS/R5wfE5j/CFaZc53mzzoIuMy1sA==
dependencies:
- "@sentry-internal/tracing" "7.78.0"
- "@sentry/core" "7.78.0"
- "@sentry/replay" "7.78.0"
- "@sentry/types" "7.78.0"
- "@sentry/utils" "7.78.0"
+ "@sentry-internal/tracing" "7.79.0"
+ "@sentry/core" "7.79.0"
+ "@sentry/replay" "7.79.0"
+ "@sentry/types" "7.79.0"
+ "@sentry/utils" "7.79.0"
serialize-javascript@^2.1.2:
version "2.1.2"