diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-21 15:10:03 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-21 15:10:03 +0300 |
commit | f44215bf40c974c5b20c06c4260eb48c8a6cc7c2 (patch) | |
tree | 3e1145dc1a52fad5cc2f0ef14a1107a15c00b07a | |
parent | 265a7ceccadf01cf1c2983c54abf86de19f6c2ad (diff) |
Add latest changes from gitlab-org/gitlab@master
55 files changed, 603 insertions, 634 deletions
diff --git a/.rubocop.yml b/.rubocop.yml index 4c7abe0dc89..e2cbda196c3 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -596,6 +596,18 @@ RSpec/HaveGitlabHttpStatus: - 'spec/**/*' - 'ee/spec/**/*' +RSpec/ContextWording: + Prefixes: + - when + - with + - without + - for + - and + - on + - in + - as + - if + Style/MultilineWhenThen: Enabled: false diff --git a/.rubocop_todo/rspec/context_wording.yml b/.rubocop_todo/rspec/context_wording.yml index 724aa420d89..797f03573d5 100644 --- a/.rubocop_todo/rspec/context_wording.yml +++ b/.rubocop_todo/rspec/context_wording.yml @@ -1,9 +1,7 @@ --- RSpec/ContextWording: - # Offense count: 18360 - # Temporarily disabled due to too many offenses - Enabled: false Exclude: + - 'ee/spec/components/namespaces/free_user_cap/personal_usage_quota_limitations_alert_component_spec.rb' - 'ee/spec/controllers/admin/application_settings_controller_spec.rb' - 'ee/spec/controllers/admin/audit_logs_controller_spec.rb' - 'ee/spec/controllers/admin/dev_ops_report_controller_spec.rb' @@ -15,10 +13,8 @@ RSpec/ContextWording: - 'ee/spec/controllers/autocomplete_controller_spec.rb' - 'ee/spec/controllers/boards/lists_controller_spec.rb' - 'ee/spec/controllers/dashboard_controller_spec.rb' - - 'ee/spec/controllers/ee/dashboard/projects_controller_spec.rb' - 'ee/spec/controllers/ee/groups/variables_controller_spec.rb' - 'ee/spec/controllers/ee/groups_controller_spec.rb' - - 'ee/spec/controllers/ee/profiles/preferences_controller_spec.rb' - 'ee/spec/controllers/ee/projects/jobs_controller_spec.rb' - 'ee/spec/controllers/ee/projects/merge_requests/content_controller_spec.rb' - 'ee/spec/controllers/ee/registrations_controller_spec.rb' @@ -27,7 +23,6 @@ RSpec/ContextWording: - 'ee/spec/controllers/ee/sent_notifications_controller_spec.rb' - 'ee/spec/controllers/ee/sessions_controller_spec.rb' - 'ee/spec/controllers/groups/analytics/cycle_analytics_controller_spec.rb' - - 'ee/spec/controllers/groups/analytics/productivity_analytics_controller_spec.rb' - 'ee/spec/controllers/groups/audit_events_controller_spec.rb' - 'ee/spec/controllers/groups/billings_controller_spec.rb' - 'ee/spec/controllers/groups/boards_controller_spec.rb' @@ -42,10 +37,7 @@ RSpec/ContextWording: - 'ee/spec/controllers/groups/push_rules_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/compliance_dashboards_controller_spec.rb' - - 'ee/spec/controllers/groups/security/dashboard_controller_spec.rb' - 'ee/spec/controllers/groups/security/merge_commit_reports_controller_spec.rb' - - 'ee/spec/controllers/groups/security/vulnerabilities_controller_spec.rb' - 'ee/spec/controllers/groups/sso_controller_spec.rb' - 'ee/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb' - 'ee/spec/controllers/oauth/applications_controller_spec.rb' @@ -56,7 +48,6 @@ RSpec/ContextWording: - 'ee/spec/controllers/projects/approvers_controller_spec.rb' - 'ee/spec/controllers/projects/audit_events_controller_spec.rb' - 'ee/spec/controllers/projects/boards_controller_spec.rb' - - 'ee/spec/controllers/projects/branches_controller_spec.rb' - 'ee/spec/controllers/projects/environments_controller_spec.rb' - 'ee/spec/controllers/projects/imports_controller_spec.rb' - 'ee/spec/controllers/projects/incident_management/escalation_policies_controller_spec.rb' @@ -81,12 +72,15 @@ RSpec/ContextWording: - 'ee/spec/controllers/registrations/welcome_controller_spec.rb' - 'ee/spec/controllers/repositories/git_http_controller_spec.rb' - 'ee/spec/controllers/security/dashboard_controller_spec.rb' - - 'ee/spec/controllers/security/projects_controller_spec.rb' - 'ee/spec/controllers/security/vulnerabilities_controller_spec.rb' - 'ee/spec/controllers/subscriptions_controller_spec.rb' - 'ee/spec/controllers/trial_registrations_controller_spec.rb' - 'ee/spec/controllers/trials_controller_spec.rb' - 'ee/spec/controllers/users_controller_spec.rb' + - 'ee/spec/elastic/migrate/20220119120500_populate_commit_permissions_in_main_index_spec.rb' + - 'ee/spec/elastic/migrate/20220512150000_pause_indexing_for_unsupported_es_versions_spec.rb' + - 'ee/spec/elastic/migrate/20220613120500_migrate_commits_to_separate_index_spec.rb' + - 'ee/spec/elastic/migrate/20220713103500_delete_commits_from_original_index_spec.rb' - 'ee/spec/elastic/migrate/migration_shared_examples.rb' - 'ee/spec/elastic_integration/global_search_spec.rb' - 'ee/spec/features/admin/admin_audit_logs_spec.rb' @@ -96,9 +90,7 @@ RSpec/ContextWording: - 'ee/spec/features/admin/admin_settings_spec.rb' - 'ee/spec/features/admin/geo/admin_geo_nodes_spec.rb' - 'ee/spec/features/admin/geo/admin_geo_sidebar_spec.rb' - - 'ee/spec/features/admin/groups/admin_subscription_alerts_spec.rb' - 'ee/spec/features/admin/licenses/admin_adds_license_spec.rb' - - 'ee/spec/features/admin/licenses/show_user_count_threshold_spec.rb' - 'ee/spec/features/analytics/code_analytics_spec.rb' - 'ee/spec/features/billings/billing_plans_spec.rb' - 'ee/spec/features/boards/boards_licensed_features_spec.rb' @@ -109,9 +101,8 @@ RSpec/ContextWording: - 'ee/spec/features/boards/swimlanes/epics_swimlanes_drag_drop_spec.rb' - 'ee/spec/features/boards/swimlanes/epics_swimlanes_filtering_spec.rb' - 'ee/spec/features/boards/swimlanes/epics_swimlanes_sidebar_labels_spec.rb' - - 'ee/spec/features/boards/swimlanes/epics_swimlanes_sidebar_spec.rb' - 'ee/spec/features/boards/swimlanes/epics_swimlanes_spec.rb' - - 'ee/spec/features/boards/user_visits_board_spec.rb' + - 'ee/spec/features/dashboards/todos_spec.rb' - 'ee/spec/features/discussion_comments/epic_quick_actions_spec.rb' - 'ee/spec/features/epic_boards/epic_boards_sidebar_spec.rb' - 'ee/spec/features/epic_boards/epic_boards_spec.rb' @@ -120,11 +111,11 @@ RSpec/ContextWording: - 'ee/spec/features/epics/epic_issues_spec.rb' - 'ee/spec/features/epics/epics_list_spec.rb' - 'ee/spec/features/epics/gfm_autocomplete_spec.rb' - - 'ee/spec/features/epics/issue_promotion_spec.rb' - 'ee/spec/features/epics/referencing_epics_spec.rb' - 'ee/spec/features/epics/update_epic_spec.rb' - 'ee/spec/features/epics/user_uses_quick_actions_spec.rb' - 'ee/spec/features/geo_node_spec.rb' + - 'ee/spec/features/gitlab_subscriptions/seat_count_alert_spec.rb' - 'ee/spec/features/google_analytics_datalayer_spec.rb' - 'ee/spec/features/groups/active_tabs_spec.rb' - 'ee/spec/features/groups/analytics/cycle_analytics/charts_spec.rb' @@ -137,8 +128,6 @@ RSpec/ContextWording: - 'ee/spec/features/groups/groups_security_credentials_spec.rb' - 'ee/spec/features/groups/issues_spec.rb' - 'ee/spec/features/groups/iteration_spec.rb' - - 'ee/spec/features/groups/iterations/iterations_list_spec.rb' - - 'ee/spec/features/groups/iterations/user_edits_iteration_cadence_spec.rb' - 'ee/spec/features/groups/iterations/user_edits_iteration_spec.rb' - 'ee/spec/features/groups/ldap_group_links_spec.rb' - 'ee/spec/features/groups/members/manage_groups_spec.rb' @@ -148,11 +137,10 @@ RSpec/ContextWording: - 'ee/spec/features/groups/saml_providers_spec.rb' - 'ee/spec/features/groups/seat_usage/seat_usage_spec.rb' - 'ee/spec/features/groups/security/compliance_dashboards_spec.rb' - - 'ee/spec/features/groups/settings/user_searches_in_settings_spec.rb' - 'ee/spec/features/groups/sso_spec.rb' - 'ee/spec/features/groups/usage_quotas_spec.rb' - - 'ee/spec/features/groups/wiki/user_views_wiki_empty_spec.rb' - 'ee/spec/features/groups_spec.rb' + - 'ee/spec/features/ide/user_commits_changes_spec.rb' - 'ee/spec/features/ide/user_opens_ide_spec.rb' - 'ee/spec/features/integrations/jira/jira_issues_list_spec.rb' - 'ee/spec/features/issues/epic_in_issue_sidebar_spec.rb' @@ -180,20 +168,19 @@ RSpec/ContextWording: - 'ee/spec/features/merge_requests/user_filters_by_approvers_spec.rb' - 'ee/spec/features/oncall_schedules/user_creates_schedule_spec.rb' - 'ee/spec/features/profiles/account_spec.rb' + - 'ee/spec/features/profiles/usage_quotas_spec.rb' - 'ee/spec/features/projects/active_tabs_spec.rb' - 'ee/spec/features/projects/audit_events_spec.rb' - 'ee/spec/features/projects/custom_projects_template_spec.rb' - - 'ee/spec/features/projects/issues/user_creates_issue_spec.rb' - - 'ee/spec/features/projects/iterations/iteration_cadences_list_spec.rb' - - 'ee/spec/features/projects/iterations/iterations_list_spec.rb' - 'ee/spec/features/projects/iterations/user_views_iteration_spec.rb' - 'ee/spec/features/projects/jobs_spec.rb' - 'ee/spec/features/projects/kerberos_clone_instructions_spec.rb' - - 'ee/spec/features/projects/members/invite_group_and_members_spec.rb' + - 'ee/spec/features/projects/members/manage_groups_spec.rb' - 'ee/spec/features/projects/members/member_leaves_project_spec.rb' - 'ee/spec/features/projects/milestones/milestone_spec.rb' - 'ee/spec/features/projects/new_project_from_template_spec.rb' - 'ee/spec/features/projects/new_project_spec.rb' + - 'ee/spec/features/projects/pipelines/legacy_pipeline_spec.rb' - 'ee/spec/features/projects/pipelines/pipeline_spec.rb' - 'ee/spec/features/projects/push_rules_spec.rb' - 'ee/spec/features/projects/quality/test_case_create_spec.rb' @@ -206,25 +193,18 @@ RSpec/ContextWording: - 'ee/spec/features/projects/settings/merge_requests_settings_spec.rb' - 'ee/spec/features/projects/settings/protected_environments_spec.rb' - 'ee/spec/features/projects/settings/push_rules_settings_spec.rb' - - 'ee/spec/features/projects/settings/user_manages_members_spec.rb' - - 'ee/spec/features/projects/show_project_spec.rb' - 'ee/spec/features/promotion_spec.rb' - 'ee/spec/features/protected_branches_spec.rb' - 'ee/spec/features/registrations/saas_user_registration_spec.rb' - 'ee/spec/features/registrations/welcome_spec.rb' - 'ee/spec/features/search/elastic/global_search_spec.rb' - - 'ee/spec/features/search/elastic/snippet_search_spec.rb' - - 'ee/spec/features/security/project/snippet/internal_access_spec.rb' - - 'ee/spec/features/security/project/snippet/public_access_spec.rb' - 'ee/spec/features/signup_spec.rb' - - 'ee/spec/features/subscriptions/expiring_subscription_message_spec.rb' - 'ee/spec/features/trial_registrations/company_information_spec.rb' - 'ee/spec/features/trials/select_namespace_spec.rb' - 'ee/spec/features/users/login_spec.rb' - 'ee/spec/features/users/signup_spec.rb' + - 'ee/spec/finders/approval_rules/group_finder_spec.rb' - 'ee/spec/finders/audit_event_finder_spec.rb' - - 'ee/spec/finders/autocomplete/vulnerabilities_autocomplete_finder_spec.rb' - - 'ee/spec/finders/billed_users_finder_spec.rb' - 'ee/spec/finders/clusters/environments_finder_spec.rb' - 'ee/spec/finders/compliance_management/merge_requests/compliance_violations_finder_spec.rb' - 'ee/spec/finders/custom_project_templates_finder_spec.rb' @@ -234,6 +214,7 @@ RSpec/ContextWording: - 'ee/spec/finders/dast_site_validations_finder_spec.rb' - 'ee/spec/finders/ee/alert_management/http_integrations_finder_spec.rb' - 'ee/spec/finders/ee/clusters/agent_authorizations_finder_spec.rb' + - 'ee/spec/finders/ee/clusters/agents_finder_spec.rb' - 'ee/spec/finders/ee/group_members_finder_spec.rb' - 'ee/spec/finders/ee/namespaces/projects_finder_spec.rb' - 'ee/spec/finders/ee/projects_finder_spec.rb' @@ -260,7 +241,6 @@ RSpec/ContextWording: - 'ee/spec/finders/security/vulnerability_reads_finder_spec.rb' - 'ee/spec/finders/snippets_finder_spec.rb' - 'ee/spec/finders/software_license_policies_finder_spec.rb' - - 'ee/spec/finders/status_page/incidents_finder_spec.rb' - 'ee/spec/finders/template_finder_spec.rb' - 'ee/spec/frontend/fixtures/dast_profiles.rb' - 'ee/spec/frontend/fixtures/on_demand_dast_scans.rb' @@ -269,6 +249,8 @@ RSpec/ContextWording: - 'ee/spec/graphql/ee/resolvers/board_list_issues_resolver_spec.rb' - 'ee/spec/graphql/ee/resolvers/namespace_projects_resolver_spec.rb' - 'ee/spec/graphql/ee/types/projects/service_type_enum_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/create_spec.rb' - 'ee/spec/graphql/mutations/boards/epic_boards/destroy_spec.rb' - 'ee/spec/graphql/mutations/boards/epic_boards/epic_move_list_spec.rb' @@ -294,12 +276,11 @@ RSpec/ContextWording: - '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/create_external_issue_link_spec.rb' - 'ee/spec/graphql/resolvers/admin/cloud_licenses/subscription_future_entries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/analytics/devops_adoption/enabled_namespaces_resolver_spec.rb' - 'ee/spec/graphql/resolvers/boards/board_list_epics_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/dora_metrics_resolver_spec.rb' - 'ee/spec/graphql/resolvers/epics_resolver_spec.rb' - 'ee/spec/graphql/resolvers/incident_management/oncall_schedule_resolver_spec.rb' - 'ee/spec/graphql/resolvers/instance_security_dashboard/projects_resolver_spec.rb' @@ -308,7 +289,7 @@ RSpec/ContextWording: - 'ee/spec/graphql/resolvers/path_locks_resolver_spec.rb' - 'ee/spec/graphql/resolvers/requirements_management/requirements_resolver_spec.rb' - 'ee/spec/graphql/resolvers/security_report_summary_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/vulnerabilities_resolver_spec.rb' + - 'ee/spec/graphql/types/audit_events/exterrnal_audit_event_destination_type_spec.rb' - 'ee/spec/graphql/types/global_id_type_spec.rb' - 'ee/spec/graphql/types/incident_management/escalation_rule_input_type_spec.rb' - 'ee/spec/graphql/types/issue_type_spec.rb' @@ -320,42 +301,32 @@ RSpec/ContextWording: - 'ee/spec/helpers/application_helper_spec.rb' - 'ee/spec/helpers/boards_helper_spec.rb' - 'ee/spec/helpers/compliance_management/compliance_framework/group_settings_helper_spec.rb' - - 'ee/spec/helpers/ee/application_settings_helper_spec.rb' - 'ee/spec/helpers/ee/auth_helper_spec.rb' - - 'ee/spec/helpers/ee/dashboard_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/integrations_helper_spec.rb' - 'ee/spec/helpers/ee/issuables_helper_spec.rb' - 'ee/spec/helpers/ee/issues_helper_spec.rb' - - 'ee/spec/helpers/ee/learn_gitlab_helper_spec.rb' - 'ee/spec/helpers/ee/lock_helper_spec.rb' - - 'ee/spec/helpers/ee/namespaces_helper_spec.rb' - 'ee/spec/helpers/ee/operations_helper_spec.rb' - 'ee/spec/helpers/ee/personal_access_tokens_helper_spec.rb' - 'ee/spec/helpers/ee/projects/security/api_fuzzing_configuration_helper_spec.rb' - - 'ee/spec/helpers/ee/security_orchestration_helper_spec.rb' - - 'ee/spec/helpers/ee/system_note_helper_spec.rb' - - 'ee/spec/helpers/ee/version_check_helper_spec.rb' - 'ee/spec/helpers/ee/welcome_helper_spec.rb' - 'ee/spec/helpers/groups/security_features_helper_spec.rb' - 'ee/spec/helpers/license_helper_spec.rb' - 'ee/spec/helpers/license_monitoring_helper_spec.rb' - - 'ee/spec/helpers/notes_helper_spec.rb' - 'ee/spec/helpers/paid_feature_callout_helper_spec.rb' - 'ee/spec/helpers/projects/security/discover_helper_spec.rb' - 'ee/spec/helpers/projects_helper_spec.rb' - 'ee/spec/helpers/roadmaps_helper_spec.rb' + - 'ee/spec/helpers/security_helper_spec.rb' - 'ee/spec/helpers/subscriptions_helper_spec.rb' - 'ee/spec/helpers/timeboxes_helper_spec.rb' - 'ee/spec/helpers/vulnerabilities_helper_spec.rb' - 'ee/spec/initializers/1_settings_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/refresh_comments_data_spec.rb' - 'ee/spec/lib/audit/details_spec.rb' - 'ee/spec/lib/audit/group_push_rules_changes_auditor_spec.rb' - 'ee/spec/lib/banzai/filter/references/epic_reference_filter_spec.rb' @@ -370,10 +341,10 @@ RSpec/ContextWording: - 'ee/spec/lib/ee/api/entities/user_with_admin_spec.rb' - 'ee/spec/lib/ee/api/helpers/variables_helpers_spec.rb' - 'ee/spec/lib/ee/api/helpers_spec.rb' + - 'ee/spec/lib/ee/backup/repositories_spec.rb' - 'ee/spec/lib/ee/gitlab/alert_management/payload/generic_spec.rb' - 'ee/spec/lib/ee/gitlab/application_context_spec.rb' - 'ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb' - - 'ee/spec/lib/ee/gitlab/auth/ldap/sync/groups_spec.rb' - 'ee/spec/lib/ee/gitlab/background_migration/backfill_iteration_cadence_id_for_boards_spec.rb' - 'ee/spec/lib/ee/gitlab/background_migration/drop_invalid_remediations_spec.rb' - 'ee/spec/lib/ee/gitlab/background_migration/fix_incorrect_max_seats_used_spec.rb' @@ -382,9 +353,7 @@ RSpec/ContextWording: - 'ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb' - 'ee/spec/lib/ee/gitlab/ci/config/entry/needs_spec.rb' - 'ee/spec/lib/ee/gitlab/ci/matching/runner_matcher_spec.rb' - - 'ee/spec/lib/ee/gitlab/ci/parsers/security/validators/schema_validator_spec.rb' - 'ee/spec/lib/ee/gitlab/ci/pipeline/quota/activity_spec.rb' - - 'ee/spec/lib/ee/gitlab/ci/pipeline/quota/job_activity_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/cleanup/orphan_job_artifact_files_batch_spec.rb' @@ -395,7 +364,6 @@ RSpec/ContextWording: - 'ee/spec/lib/ee/gitlab/gon_helper_spec.rb' - 'ee/spec/lib/ee/gitlab/group_search_results_spec.rb' - 'ee/spec/lib/ee/gitlab/hook_data/group_member_builder_spec.rb' - - 'ee/spec/lib/ee/gitlab/hook_data/issue_builder_spec.rb' - 'ee/spec/lib/ee/gitlab/hook_data/user_builder_spec.rb' - 'ee/spec/lib/ee/gitlab/import_export/group/legacy_tree_restorer_spec.rb' - 'ee/spec/lib/ee/gitlab/import_export/group/legacy_tree_saver_spec.rb' @@ -403,22 +371,17 @@ RSpec/ContextWording: - 'ee/spec/lib/ee/gitlab/import_export/group/tree_saver_spec.rb' - 'ee/spec/lib/ee/gitlab/import_export/project/tree_saver_spec.rb' - 'ee/spec/lib/ee/gitlab/ip_restriction/enforcer_spec.rb' + - 'ee/spec/lib/ee/gitlab/issuable/clone/copy_resource_events_service_spec.rb' - 'ee/spec/lib/ee/gitlab/issuable_metadata_spec.rb' - - 'ee/spec/lib/ee/gitlab/metrics/samplers/database_sampler_spec.rb' - - 'ee/spec/lib/ee/gitlab/omniauth_initializer_spec.rb' - - 'ee/spec/lib/ee/gitlab/prometheus/metric_group_spec.rb' - 'ee/spec/lib/ee/gitlab/repo_path_spec.rb' - 'ee/spec/lib/ee/gitlab/scim/provisioning_service_spec.rb' - 'ee/spec/lib/ee/gitlab/usage/service_ping/payload_keys_processor_spec.rb' - - 'ee/spec/lib/ee/gitlab/usage/service_ping_report_spec.rb' - - 'ee/spec/lib/ee/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb' - 'ee/spec/lib/ee/gitlab/usage_data_spec.rb' + - 'ee/spec/lib/ee/service_ping/build_payload_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/data_collector_spec.rb' - 'ee/spec/lib/gitlab/analytics/cycle_analytics/request_params_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/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' @@ -433,7 +396,6 @@ RSpec/ContextWording: - 'ee/spec/lib/gitlab/auth/smartcard/ldap_certificate_spec.rb' - 'ee/spec/lib/gitlab/auth/smartcard/san_extension_spec.rb' - 'ee/spec/lib/gitlab/background_migration/remove_all_trace_expiration_dates_spec.rb' - - 'ee/spec/lib/gitlab/cache_spec.rb' - 'ee/spec/lib/gitlab/checks/diff_check_spec.rb' - 'ee/spec/lib/gitlab/ci/minutes/cost_factor_spec.rb' - 'ee/spec/lib/gitlab/ci/minutes/runners_availability_spec.rb' @@ -454,6 +416,7 @@ RSpec/ContextWording: - 'ee/spec/lib/gitlab/ci/templates/dependency_scanning_gitlab_ci_yaml_spec.rb' - 'ee/spec/lib/gitlab/ci/templates/license_scanning_gitlab_ci_yaml_spec.rb' - 'ee/spec/lib/gitlab/ci/templates/sast_gitlab_ci_yaml_spec.rb' + - 'ee/spec/lib/gitlab/ci/templates/sast_iac_gitlab_ci_yaml_spec.rb' - 'ee/spec/lib/gitlab/ci/templates/sast_iac_latest_gitlab_ci_yaml_spec.rb' - 'ee/spec/lib/gitlab/ci/templates/sast_latest_gitlab_ci_yaml_spec.rb' - 'ee/spec/lib/gitlab/ci/templates/secret_detection_gitlab_ci_yaml_spec.rb' @@ -493,24 +456,14 @@ RSpec/ContextWording: - 'ee/spec/lib/gitlab/gl_repository/identifier_spec.rb' - 'ee/spec/lib/gitlab/gl_repository/repo_type_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/issues/lazy_links_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/group/relation_factory_spec.rb' - 'ee/spec/lib/gitlab/import_export/project/object_builder_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/legacy_github_import/project_creator_spec.rb' - 'ee/spec/lib/gitlab/pagination_delegate_spec.rb' - - 'ee/spec/lib/gitlab/patch/database_config_spec.rb' - - 'ee/spec/lib/gitlab/reference_extractor_spec.rb' - 'ee/spec/lib/gitlab/search/aggregation_parser_spec.rb' - - 'ee/spec/lib/gitlab/sitemaps/generator_spec.rb' - 'ee/spec/lib/gitlab/sitemaps/url_extractor_spec.rb' - 'ee/spec/lib/gitlab/slash_commands/presenters/issue_show_spec.rb' - 'ee/spec/lib/gitlab/status_page/filter/image_filter_spec.rb' @@ -522,11 +475,9 @@ RSpec/ContextWording: - 'ee/spec/lib/gitlab/usage/metrics/instrumentations/advanced_search/distribution_metric_spec.rb' - 'ee/spec/lib/gitlab/usage/metrics/instrumentations/advanced_search/lucene_version_metric_spec.rb' - 'ee/spec/lib/gitlab/usage/metrics/instrumentations/advanced_search/version_metric_spec.rb' - - 'ee/spec/lib/gitlab/usage/metrics/instrumentations/approval_project_rules_with_user_metric_spec.rb' - 'ee/spec/lib/gitlab/usage_data_counters/epic_activity_unique_counter_spec.rb' - 'ee/spec/lib/incident_management/oncall_shift_generator_spec.rb' - 'ee/spec/lib/omni_auth/strategies/group_saml_spec.rb' - - 'ee/spec/lib/system_check/app/search_check_spec.rb' - 'ee/spec/lib/system_check/geo/authorized_keys_check_spec.rb' - 'ee/spec/lib/system_check/geo/http_connection_check_spec.rb' - 'ee/spec/lib/system_check/rake_task/geo_task_spec.rb' @@ -542,6 +493,7 @@ RSpec/ContextWording: - '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/audit_events/external_audit_event_destination_spec.rb' - 'ee/spec/models/board_spec.rb' - 'ee/spec/models/boards/epic_board_position_spec.rb' - 'ee/spec/models/broadcast_message_spec.rb' @@ -551,12 +503,10 @@ RSpec/ContextWording: - 'ee/spec/models/ci/pipeline_spec.rb' - 'ee/spec/models/ci/sources/project_spec.rb' - 'ee/spec/models/ci/subscriptions/project_spec.rb' - - 'ee/spec/models/compliance_management/framework_spec.rb' - 'ee/spec/models/concerns/approval_rule_like_spec.rb' - 'ee/spec/models/concerns/approver_migrate_hook_spec.rb' - 'ee/spec/models/concerns/deprecated_approvals_before_merge_spec.rb' - 'ee/spec/models/concerns/ee/issuable_spec.rb' - - 'ee/spec/models/concerns/ee/milestoneable_spec.rb' - 'ee/spec/models/concerns/ee/participable_spec.rb' - 'ee/spec/models/concerns/elastic/issue_spec.rb' - 'ee/spec/models/concerns/elastic/note_spec.rb' @@ -571,22 +521,18 @@ RSpec/ContextWording: - 'ee/spec/models/dast_site_profile_spec.rb' - 'ee/spec/models/dast_site_validation_spec.rb' - 'ee/spec/models/deployment_spec.rb' - - 'ee/spec/models/dora/change_failure_rate_metric_spec.rb' - - 'ee/spec/models/dora/time_to_restore_service_metric_spec.rb' - 'ee/spec/models/ee/audit_event_spec.rb' - 'ee/spec/models/ee/award_emoji_spec.rb' - - 'ee/spec/models/ee/ci/build_dependencies_spec.rb' - 'ee/spec/models/ee/ci/job_artifact_spec.rb' - - 'ee/spec/models/ee/ci/runner_spec.rb' + - 'ee/spec/models/ee/event_collection_spec.rb' - 'ee/spec/models/ee/event_spec.rb' + - 'ee/spec/models/ee/group_group_link_spec.rb' - 'ee/spec/models/ee/group_spec.rb' - 'ee/spec/models/ee/incident_management/project_incident_management_setting_spec.rb' - - 'ee/spec/models/ee/integrations/jira_spec.rb' - 'ee/spec/models/ee/iteration_spec.rb' - 'ee/spec/models/ee/iterations/cadence_spec.rb' - - 'ee/spec/models/ee/key_spec.rb' - - 'ee/spec/models/ee/merge_request_diff_spec.rb' - 'ee/spec/models/ee/namespace/root_storage_size_spec.rb' + - 'ee/spec/models/ee/namespace/storage/notification_spec.rb' - 'ee/spec/models/ee/namespace_ci_cd_setting_spec.rb' - 'ee/spec/models/ee/namespace_limit_spec.rb' - 'ee/spec/models/ee/namespace_spec.rb' @@ -594,15 +540,11 @@ RSpec/ContextWording: - 'ee/spec/models/ee/personal_access_token_spec.rb' - 'ee/spec/models/ee/project_group_link_spec.rb' - 'ee/spec/models/ee/protected_branch_spec.rb' - - 'ee/spec/models/ee/protected_ref_spec.rb' - - 'ee/spec/models/ee/service_desk_setting_spec.rb' - 'ee/spec/models/ee/user_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/container_repository_registry_spec.rb' - 'ee/spec/models/geo/design_registry_spec.rb' - - 'ee/spec/models/geo/job_artifact_registry_spec.rb' - 'ee/spec/models/geo/project_registry_spec.rb' - 'ee/spec/models/geo/secondary_usage_data_spec.rb' - 'ee/spec/models/geo_node_spec.rb' @@ -614,10 +556,8 @@ RSpec/ContextWording: - 'ee/spec/models/group_wiki_spec.rb' - 'ee/spec/models/incident_management/escalation_rule_spec.rb' - 'ee/spec/models/incident_management/oncall_rotation_spec.rb' - - 'ee/spec/models/incident_management/oncall_shift_spec.rb' - 'ee/spec/models/incident_management/pending_escalations/alert_spec.rb' - 'ee/spec/models/incident_management/pending_escalations/issue_spec.rb' - - 'ee/spec/models/integrations/github/remote_project_spec.rb' - 'ee/spec/models/integrations/github_spec.rb' - 'ee/spec/models/ip_restriction_spec.rb' - 'ee/spec/models/issuable_metric_image_spec.rb' @@ -633,7 +573,6 @@ RSpec/ContextWording: - 'ee/spec/models/note_spec.rb' - 'ee/spec/models/packages/package_file_spec.rb' - 'ee/spec/models/path_lock_spec.rb' - - 'ee/spec/models/productivity_analytics_spec.rb' - 'ee/spec/models/project_import_data_spec.rb' - 'ee/spec/models/project_import_state_spec.rb' - 'ee/spec/models/project_member_spec.rb' @@ -643,15 +582,12 @@ RSpec/ContextWording: - 'ee/spec/models/protected_environments/approval_summary_spec.rb' - 'ee/spec/models/push_rule_spec.rb' - 'ee/spec/models/release_highlight_spec.rb' - - 'ee/spec/models/remote_mirror_spec.rb' - 'ee/spec/models/repository_spec.rb' - - 'ee/spec/models/requirements_management/requirement_spec.rb' - 'ee/spec/models/requirements_management/test_report_spec.rb' - 'ee/spec/models/saml_group_link_spec.rb' - 'ee/spec/models/saml_provider_spec.rb' - 'ee/spec/models/status_page/project_setting_spec.rb' - 'ee/spec/models/uploads/local_spec.rb' - - 'ee/spec/models/vulnerabilities/export_spec.rb' - 'ee/spec/models/vulnerabilities/feedback_spec.rb' - 'ee/spec/models/vulnerabilities/finding_pipeline_spec.rb' - 'ee/spec/models/vulnerabilities/finding_spec.rb' @@ -669,7 +605,6 @@ RSpec/ContextWording: - 'ee/spec/policies/incident_management/oncall_shift_policy_spec.rb' - 'ee/spec/policies/issuable_policy_spec.rb' - 'ee/spec/policies/merge_request_policy_spec.rb' - - 'ee/spec/policies/note_policy_spec.rb' - 'ee/spec/policies/project_policy_spec.rb' - 'ee/spec/policies/project_snippet_policy_spec.rb' - 'ee/spec/policies/protected_branch_policy_spec.rb' @@ -682,6 +617,7 @@ RSpec/ContextWording: - 'ee/spec/presenters/group_clusterable_presenter_spec.rb' - 'ee/spec/presenters/merge_request_approver_presenter_spec.rb' - 'ee/spec/presenters/subscription_presenter_spec.rb' + - 'ee/spec/replicators/geo/pipeline_replicator_spec.rb' - 'ee/spec/requests/admin/credentials_controller_spec.rb' - 'ee/spec/requests/admin/geo/replicables_controller_spec.rb' - 'ee/spec/requests/api/analytics/group_activity_analytics_spec.rb' @@ -691,13 +627,12 @@ RSpec/ContextWording: - 'ee/spec/requests/api/ci/jobs_spec.rb' - 'ee/spec/requests/api/ci/pipelines_spec.rb' - 'ee/spec/requests/api/ci/runner_spec.rb' - - 'ee/spec/requests/api/ci/triggers_spec.rb' - 'ee/spec/requests/api/commits_spec.rb' - 'ee/spec/requests/api/deployments_spec.rb' + - 'ee/spec/requests/api/dora/metrics_spec.rb' - 'ee/spec/requests/api/epic_issues_spec.rb' - 'ee/spec/requests/api/epic_links_spec.rb' - 'ee/spec/requests/api/epics_spec.rb' - - 'ee/spec/requests/api/experiments_spec.rb' - 'ee/spec/requests/api/geo_nodes_spec.rb' - 'ee/spec/requests/api/geo_spec.rb' - 'ee/spec/requests/api/graphql/boards/epic_boards_query_spec.rb' @@ -720,15 +655,14 @@ RSpec/ContextWording: - '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/epics/create_spec.rb' + - 'ee/spec/requests/api/graphql/mutations/epics/update_spec.rb' - 'ee/spec/requests/api/graphql/mutations/incident_management/escalation_policy/create_spec.rb' + - 'ee/spec/requests/api/graphql/mutations/incident_management/issuable_resource_link/create_spec.rb' - 'ee/spec/requests/api/graphql/mutations/incident_management/oncall_rotation/create_spec.rb' - 'ee/spec/requests/api/graphql/mutations/incident_management/oncall_rotation/update_spec.rb' - 'ee/spec/requests/api/graphql/mutations/issues/update_spec.rb' - 'ee/spec/requests/api/graphql/mutations/security_policy/assign_security_policy_project_spec.rb' - 'ee/spec/requests/api/graphql/mutations/security_policy/commit_scan_execution_policy_spec.rb' - - 'ee/spec/requests/api/graphql/mutations/security_policy/create_security_policy_project_spec.rb' - - 'ee/spec/requests/api/graphql/mutations/security_policy/unassign_security_policy_project_spec.rb' - - 'ee/spec/requests/api/graphql/mutations/vulnerabilities/create_external_issue_link_spec.rb' - 'ee/spec/requests/api/graphql/project/code_coverage_summary_spec.rb' - 'ee/spec/requests/api/graphql/project/incident_management/escalation_policies_spec.rb' - 'ee/spec/requests/api/graphql/project/incident_management/oncall_participants_spec.rb' @@ -739,7 +673,6 @@ RSpec/ContextWording: - 'ee/spec/requests/api/graphql/projects/compliance_frameworks_spec.rb' - 'ee/spec/requests/api/graphql/vulnerabilities/sort_spec.rb' - 'ee/spec/requests/api/group_clusters_spec.rb' - - 'ee/spec/requests/api/group_hooks_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' @@ -753,7 +686,6 @@ RSpec/ContextWording: - 'ee/spec/requests/api/members_spec.rb' - 'ee/spec/requests/api/merge_request_approval_rules_spec.rb' - 'ee/spec/requests/api/merge_request_approval_settings_spec.rb' - - 'ee/spec/requests/api/merge_request_approvals_spec.rb' - 'ee/spec/requests/api/merge_requests_spec.rb' - 'ee/spec/requests/api/namespaces_spec.rb' - 'ee/spec/requests/api/project_aliases_spec.rb' @@ -773,19 +705,13 @@ RSpec/ContextWording: - 'ee/spec/requests/api/status_checks_spec.rb' - 'ee/spec/requests/api/users_spec.rb' - 'ee/spec/requests/api/v3/github_spec.rb' - - 'ee/spec/requests/api/visual_review_discussions_spec.rb' - - 'ee/spec/requests/api/vulnerabilities_spec.rb' - - 'ee/spec/requests/api/vulnerability_exports_spec.rb' - 'ee/spec/requests/api/vulnerability_findings_spec.rb' - 'ee/spec/requests/git_http_geo_spec.rb' - - 'ee/spec/requests/groups/group_members_controller_spec.rb' - 'ee/spec/requests/groups/roadmap_controller_spec.rb' - 'ee/spec/requests/groups/security/credentials_controller_spec.rb' - - 'ee/spec/requests/groups/usage_quotas_spec.rb' + - 'ee/spec/requests/groups/settings/reporting_controller_spec.rb' - 'ee/spec/requests/groups_controller_spec.rb' - 'ee/spec/requests/jwt_controller_spec.rb' - - 'ee/spec/requests/lfs_http_spec.rb' - - 'ee/spec/requests/projects/analytics/code_reviews_controller_spec.rb' - 'ee/spec/requests/projects/on_demand_scans_controller_spec.rb' - 'ee/spec/requests/projects/requirements_management/requirements_controller_spec.rb' - 'ee/spec/requests/projects/security/corpus_management_controller_spec.rb' @@ -796,7 +722,6 @@ RSpec/ContextWording: - 'ee/spec/requests/projects/security/scanned_resources_controller_spec.rb' - 'ee/spec/requests/rack_attack_spec.rb' - 'ee/spec/requests/repositories/git_http_controller_spec.rb' - - 'ee/spec/requests/search_controller_spec.rb' - 'ee/spec/requests/smartcard_controller_spec.rb' - 'ee/spec/routing/user_routing_spec.rb' - 'ee/spec/serializers/analytics/cycle_analytics/value_stream_errors_serializer_spec.rb' @@ -804,9 +729,7 @@ RSpec/ContextWording: - 'ee/spec/serializers/board_serializer_spec.rb' - 'ee/spec/serializers/clusters/environment_entity_spec.rb' - 'ee/spec/serializers/dashboard_operations_project_entity_spec.rb' - - 'ee/spec/serializers/ee/blob_entity_spec.rb' - 'ee/spec/serializers/ee/group_child_entity_spec.rb' - - 'ee/spec/serializers/ee/issue_sidebar_basic_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/user_serializer_spec.rb' @@ -819,10 +742,8 @@ RSpec/ContextWording: - 'ee/spec/serializers/project_mirror_entity_spec.rb' - 'ee/spec/serializers/vulnerabilities/finding_entity_spec.rb' - 'ee/spec/services/alert_management/process_prometheus_alert_service_spec.rb' - - 'ee/spec/services/analytics/cycle_analytics/consistency_check_service_spec.rb' - 'ee/spec/services/analytics/cycle_analytics/stages/delete_service_spec.rb' - 'ee/spec/services/analytics/cycle_analytics/value_streams/update_service_spec.rb' - - 'ee/spec/services/analytics/devops_adoption/enabled_namespaces/create_service_spec.rb' - 'ee/spec/services/app_sec/dast/builds/associate_service_spec.rb' - 'ee/spec/services/app_sec/dast/profiles/create_associations_service_spec.rb' - 'ee/spec/services/application_settings/update_service_spec.rb' @@ -834,28 +755,22 @@ RSpec/ContextWording: - 'ee/spec/services/audit_event_service_spec.rb' - 'ee/spec/services/audit_events/export_csv_service_spec.rb' - 'ee/spec/services/audit_events/register_runner_audit_event_service_spec.rb' - - 'ee/spec/services/audit_events/runners_token_audit_event_service_spec.rb' - - 'ee/spec/services/audit_events/unregister_runner_audit_event_service_spec.rb' - - 'ee/spec/services/award_emojis/add_service_spec.rb' - 'ee/spec/services/boards/create_service_spec.rb' - 'ee/spec/services/boards/epic_boards/create_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/boards/lists/update_service_spec.rb' - 'ee/spec/services/ci/copy_cross_database_associations_service_spec.rb' - 'ee/spec/services/ci/create_pipeline_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/process_build_service_spec.rb' + - 'ee/spec/services/ci/pipeline_trigger_service_spec.rb' - 'ee/spec/services/ci/register_job_service_spec.rb' - 'ee/spec/services/ci/retry_job_service_spec.rb' + - 'ee/spec/services/ci/runners/stale_group_runners_prune_service_spec.rb' - 'ee/spec/services/ci/runners/unregister_runner_service_spec.rb' - 'ee/spec/services/ci/sync_reports_to_approval_rules_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/update_service_spec.rb' - - 'ee/spec/services/compliance_management/merge_requests/create_compliance_violations_service_spec.rb' - - 'ee/spec/services/dashboard/projects/list_service_spec.rb' - 'ee/spec/services/deployments/approval_service_spec.rb' - 'ee/spec/services/dora/aggregate_metrics_service_spec.rb' - 'ee/spec/services/ee/alert_management/alerts/update_service_spec.rb' @@ -878,9 +793,10 @@ RSpec/ContextWording: - 'ee/spec/services/ee/issues/move_service_spec.rb' - 'ee/spec/services/ee/issues/reopen_service_spec.rb' - 'ee/spec/services/ee/issues/update_service_spec.rb' - - 'ee/spec/services/ee/labels/create_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/destroy_service_spec.rb' + - 'ee/spec/services/ee/members/import_project_team_service_spec.rb' - 'ee/spec/services/ee/members/invite_service_spec.rb' - 'ee/spec/services/ee/merge_requests/base_service_spec.rb' - 'ee/spec/services/ee/merge_requests/create_service_spec.rb' @@ -888,16 +804,13 @@ RSpec/ContextWording: - 'ee/spec/services/ee/merge_requests/refresh_service_spec.rb' - 'ee/spec/services/ee/merge_requests/update_assignees_service_spec.rb' - 'ee/spec/services/ee/merge_requests/update_service_spec.rb' - - 'ee/spec/services/ee/namespace_settings/update_service_spec.rb' - 'ee/spec/services/ee/notes/create_service_spec.rb' - 'ee/spec/services/ee/notes/post_process_service_spec.rb' - 'ee/spec/services/ee/notes/quick_actions_service_spec.rb' - - 'ee/spec/services/ee/notes/update_service_spec.rb' - 'ee/spec/services/ee/notification_service_spec.rb' - 'ee/spec/services/ee/personal_access_tokens/revoke_service_spec.rb' - 'ee/spec/services/ee/preview_markdown_service_spec.rb' - 'ee/spec/services/ee/protected_branches/create_service_spec.rb' - - 'ee/spec/services/ee/quick_actions/target_service_spec.rb' - 'ee/spec/services/ee/resource_events/merge_into_notes_service_spec.rb' - 'ee/spec/services/ee/users/build_service_spec.rb' - 'ee/spec/services/ee/users/create_service_spec.rb' @@ -936,13 +849,13 @@ RSpec/ContextWording: - 'ee/spec/services/geo/repository_created_event_store_spec.rb' - 'ee/spec/services/geo/repository_sync_service_spec.rb' - 'ee/spec/services/geo/repository_verification_reset_spec.rb' - - 'ee/spec/services/geo/repository_verification_secondary_service_spec.rb' - 'ee/spec/services/geo/wiki_sync_service_spec.rb' + - 'ee/spec/services/gitlab_subscriptions/activate_awaiting_users_service_spec.rb' - 'ee/spec/services/gitlab_subscriptions/apply_trial_service_spec.rb' - 'ee/spec/services/gitlab_subscriptions/create_hand_raise_lead_service_spec.rb' - 'ee/spec/services/gitlab_subscriptions/create_service_spec.rb' - 'ee/spec/services/gitlab_subscriptions/extend_reactivate_trial_service_spec.rb' - - 'ee/spec/services/group_saml/group_managed_accounts/clean_up_members_service_spec.rb' + - 'ee/spec/services/gitlab_subscriptions/preview_billable_user_change_service_spec.rb' - 'ee/spec/services/group_saml/group_managed_accounts/transfer_membership_service_spec.rb' - 'ee/spec/services/groups/create_service_spec.rb' - 'ee/spec/services/groups/destroy_service_spec.rb' @@ -975,10 +888,10 @@ RSpec/ContextWording: - 'ee/spec/services/merge_requests/approval_service_spec.rb' - 'ee/spec/services/merge_requests/build_service_spec.rb' - 'ee/spec/services/merge_requests/merge_service_spec.rb' + - 'ee/spec/services/merge_requests/reload_merge_head_diff_service_spec.rb' - 'ee/spec/services/merge_requests/update_blocks_service_spec.rb' - 'ee/spec/services/milestones/update_service_spec.rb' - 'ee/spec/services/namespaces/in_product_marketing_emails_service_spec.rb' - - 'ee/spec/services/namespaces/storage/email_notification_service_spec.rb' - 'ee/spec/services/personal_access_tokens/revoke_invalid_tokens_spec.rb' - 'ee/spec/services/personal_access_tokens/rotation_verifier_service_spec.rb' - 'ee/spec/services/projects/alerting/notify_service_spec.rb' @@ -988,6 +901,7 @@ RSpec/ContextWording: - '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/group_links/update_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/mark_for_deletion_service_spec.rb' @@ -1011,13 +925,12 @@ RSpec/ContextWording: - 'ee/spec/services/search/snippet_service_spec.rb' - 'ee/spec/services/search_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/ingestion/tasks/update_vulnerability_uuids_spec.rb' - 'ee/spec/services/security/merge_reports_service_spec.rb' - - 'ee/spec/services/security/orchestration/assign_service_spec.rb' - - 'ee/spec/services/security/orchestration/unassign_service_spec.rb' - 'ee/spec/services/security/report_summary_service_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/create_pipeline_service_spec.rb' - 'ee/spec/services/security/security_orchestration_policies/policy_commit_service_spec.rb' - 'ee/spec/services/security/security_orchestration_policies/process_policy_service_spec.rb' - 'ee/spec/services/security/store_grouped_scans_service_spec.rb' @@ -1027,16 +940,12 @@ RSpec/ContextWording: - 'ee/spec/services/software_license_policies/update_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/timebox_report_service_spec.rb' - 'ee/spec/services/todo_service_spec.rb' - 'ee/spec/services/upcoming_reconciliations/update_service_spec.rb' - 'ee/spec/services/user_permissions/export_service_spec.rb' - - 'ee/spec/services/vulnerabilities/create_service_spec.rb' - - 'ee/spec/services/vulnerabilities/historical_statistics/deletion_service_spec.rb' - 'ee/spec/services/vulnerability_exports/export_service_spec.rb' - - 'ee/spec/services/vulnerability_external_issue_links/create_service_spec.rb' - 'ee/spec/support/features/manual_quarterly_co_term_banner_examples.rb' - 'ee/spec/support/protected_tags/access_control_shared_examples.rb' - 'ee/spec/support/shared_contexts/audit_event_not_licensed_shared_context.rb' @@ -1046,25 +955,23 @@ RSpec/ContextWording: - 'ee/spec/support/shared_contexts/gitlab_team_member_shared_context.rb' - 'ee/spec/support/shared_contexts/graphql/resolvers/security_orchestration/resolves_orchestration_policy_shared_contexts.rb' - 'ee/spec/support/shared_contexts/lib/gitlab/insights/reducers/reducers_shared_contexts.rb' + - 'ee/spec/support/shared_contexts/lib/gitlab/insights/serializers/serializers_shared_context.rb' - 'ee/spec/support/shared_contexts/push_rules_checks_shared_context.rb' - 'ee/spec/support/shared_contexts/requests/api/members_shared_contexts.rb' - 'ee/spec/support/shared_contexts/status_page/status_page_enabled_context.rb' - 'ee/spec/support/shared_contexts/status_page/status_page_list_objects.rb' - 'ee/spec/support/shared_examples/controllers/analytics/cycle_analytics/shared_stage_shared_examples.rb' - - 'ee/spec/support/shared_examples/controllers/analytics/issues_analytics/shared_issues_analytics_examples.rb' - 'ee/spec/support/shared_examples/controllers/boards_actions_shared_examples.rb' - 'ee/spec/support/shared_examples/controllers/cluster_metrics_shared_examples.rb' - 'ee/spec/support/shared_examples/controllers/concerns/description_diff_actions_shared_examples.rb' - 'ee/spec/support/shared_examples/controllers/registrations/groups_controller_shared_examples.rb' - 'ee/spec/support/shared_examples/controllers/registrations/projects_controller_shared_examples.rb' - - 'ee/spec/support/shared_examples/controllers/security/application_controller_shared_examples.rb' - - 'ee/spec/support/shared_examples/features/credentials_inventory_shared_examples.rb' - 'ee/spec/support/shared_examples/features/insights_shared_examples.rb' + - 'ee/spec/support/shared_examples/features/password_complexity_shared_examples.rb' - 'ee/spec/support/shared_examples/features/protected_branches_access_control_shared_examples.rb' - 'ee/spec/support/shared_examples/features/sidebar_shared_examples.rb' - 'ee/spec/support/shared_examples/features/ultimate_trial_callout_shared_examples.rb' - 'ee/spec/support/shared_examples/graphql/mutations/epics/permission_check_shared_examples.rb' - - 'ee/spec/support/shared_examples/graphql/mutations/update_health_status_shared_examples.rb' - 'ee/spec/support/shared_examples/lib/gitlab/git_access_shared_examples.rb' - 'ee/spec/support/shared_examples/lib/gitlab/middleware/allowlisted_admin_geo_requests_shared_examples.rb' - 'ee/spec/support/shared_examples/lib/gitlab/middleware/maintenance_mode_gitlab_ee_instance_shared_examples.rb' @@ -1076,16 +983,13 @@ RSpec/ContextWording: - 'ee/spec/support/shared_examples/models/concerns/replicator_shared_examples.rb' - 'ee/spec/support/shared_examples/models/concerns/repository_replicator_strategy_shared_examples.rb' - 'ee/spec/support/shared_examples/models/concerns/verifiable_replicator_shared_examples.rb' - - 'ee/spec/support/shared_examples/models/geo_batcher_shared_examples.rb' - 'ee/spec/support/shared_examples/models/geo_framework_registry_shared_examples.rb' - 'ee/spec/support/shared_examples/models/geo_verifiable_registry_shared_examples.rb' - 'ee/spec/support/shared_examples/models/member_shared_examples.rb' - 'ee/spec/support/shared_examples/models/mentionable_shared_examples.rb' - 'ee/spec/support/shared_examples/models/protected_environments/authorizable_examples.rb' - 'ee/spec/support/shared_examples/quick_actions/issue/status_page_quick_actions_shared_examples.rb' - - 'ee/spec/support/shared_examples/requests/api/project_approval_rules_api_shared_examples.rb' - 'ee/spec/support/shared_examples/requests/credentials_inventory_shared_examples.rb' - - 'ee/spec/support/shared_examples/requests/security/security_dashboard_json_endpoint_shared_examples.rb' - 'ee/spec/support/shared_examples/services/alert_management/alert_processing/alert_firing_shared_examples.rb' - 'ee/spec/support/shared_examples/services/alert_management/alert_processing/alert_recovery_shared_examples.rb' - 'ee/spec/support/shared_examples/services/base_sync_service_shared_examples.rb' @@ -1095,49 +999,41 @@ RSpec/ContextWording: - 'ee/spec/support/shared_examples/services/search_notes_shared_examples.rb' - 'ee/spec/support/shared_examples/services/search_service_shared_examples.rb' - 'ee/spec/support/shared_examples/services/update_issuable_health_status_shared_examples.rb' - - 'ee/spec/support/shared_examples/views/registration_features_prompt_settings_link_shared_examples.rb' - 'ee/spec/tasks/gitlab/elastic_rake_spec.rb' - 'ee/spec/tasks/gitlab/license_rake_spec.rb' - - 'ee/spec/tasks/gitlab/uploads/migrate_rake_spec.rb' - 'ee/spec/views/admin/application_settings/_elasticsearch_form.html.haml_spec.rb' - 'ee/spec/views/admin/users/show.html.haml_spec.rb' - 'ee/spec/views/compliance_management/compliance_framework/_project_settings.html.haml_spec.rb' - 'ee/spec/views/groups/edit.html.haml_spec.rb' - 'ee/spec/views/groups/security/discover/show.html.haml_spec.rb' - 'ee/spec/views/layouts/header/_new_dropdown.haml_spec.rb' + - 'ee/spec/views/layouts/header/_read_only_banner.html.haml_spec.rb' - 'ee/spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb' - 'ee/spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb' - 'ee/spec/views/layouts/nav/sidebar/_push_rules_link.html.haml_spec.rb' - 'ee/spec/views/profiles/preferences/show.html.haml_spec.rb' - 'ee/spec/views/projects/edit.html.haml_spec.rb' - - 'ee/spec/views/projects/issues/show.html.haml_spec.rb' - 'ee/spec/views/projects/security/discover/show.html.haml_spec.rb' - 'ee/spec/views/registrations/groups/new.html.haml_spec.rb' - - 'ee/spec/views/registrations/projects/new.html.haml_spec.rb' - 'ee/spec/views/registrations/welcome/show.html.haml_spec.rb' - 'ee/spec/views/search/_category.html.haml_spec.rb' - 'ee/spec/views/shared/_clone_panel.html.haml_spec.rb' - 'ee/spec/views/shared/_kerberos_clone_button.html.haml_spec.rb' - 'ee/spec/views/shared/_mirror_update_button.html.haml_spec.rb' - - 'ee/spec/views/shared/credentials_inventory/_expiry_date.html.haml_spec.rb' - 'ee/spec/views/shared/credentials_inventory/gpg_keys/_gpg_key.html.haml_spec.rb' - 'ee/spec/views/shared/credentials_inventory/personal_access_tokens/_personal_access_token.html.haml_spec.rb' - 'ee/spec/views/shared/credentials_inventory/project_access_tokens/_project_access_token.html.haml_spec.rb' - 'ee/spec/views/shared/credentials_inventory/ssh_keys/_ssh_key.html.haml_spec.rb' - 'ee/spec/views/shared/issuable/_sidebar.html.haml_spec.rb' - - 'ee/spec/views/shared/labels/_create_label_help_text.html.haml_spec.rb' - - 'ee/spec/views/shared/promotions/_promotion_link_project.html.haml_spec.rb' - 'ee/spec/views/subscriptions/groups/edit.html.haml_spec.rb' - 'ee/spec/workers/active_user_count_threshold_worker_spec.rb' - 'ee/spec/workers/adjourned_projects_deletion_cron_worker_spec.rb' - 'ee/spec/workers/admin_emails_worker_spec.rb' - - 'ee/spec/workers/analytics/code_review_metrics_worker_spec.rb' - 'ee/spec/workers/audit_events/audit_event_streaming_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/ci/upstream_projects_subscriptions_cleanup_worker_spec.rb' - - 'ee/spec/workers/compliance_management/merge_requests/compliance_violations_worker_spec.rb' - 'ee/spec/workers/ee/repository_check/batch_worker_spec.rb' - 'ee/spec/workers/ee/repository_check/single_repository_worker_spec.rb' - 'ee/spec/workers/elastic/migration_worker_spec.rb' @@ -1151,10 +1047,9 @@ RSpec/ContextWording: - 'ee/spec/workers/geo/repository_verification/primary/shard_worker_spec.rb' - 'ee/spec/workers/geo/repository_verification/secondary/shard_worker_spec.rb' - 'ee/spec/workers/geo/verification_timeout_worker_spec.rb' + - 'ee/spec/workers/group_saml_group_sync_worker_spec.rb' - 'ee/spec/workers/incident_management/apply_incident_sla_exceeded_label_worker_spec.rb' - 'ee/spec/workers/incident_management/oncall_rotations/persist_shifts_job_spec.rb' - - 'ee/spec/workers/iterations/cadences/schedule_create_iterations_worker_spec.rb' - - 'ee/spec/workers/iterations_update_status_worker_spec.rb' - 'ee/spec/workers/merge_request_reset_approvals_worker_spec.rb' - 'ee/spec/workers/new_epic_worker_spec.rb' - 'ee/spec/workers/personal_access_tokens/groups/policy_worker_spec.rb' @@ -1163,12 +1058,8 @@ RSpec/ContextWording: - 'ee/spec/workers/project_import_schedule_worker_spec.rb' - 'ee/spec/workers/requirements_management/process_requirements_reports_worker_spec.rb' - 'ee/spec/workers/security/track_secure_scans_worker_spec.rb' - - 'ee/spec/workers/store_security_reports_worker_spec.rb' - - 'ee/spec/workers/sync_seat_link_request_worker_spec.rb' - 'ee/spec/workers/sync_seat_link_worker_spec.rb' - - 'ee/spec/workers/update_all_mirrors_worker_spec.rb' - 'ee/spec/workers/update_max_seats_used_for_gitlab_com_subscriptions_worker_spec.rb' - - 'qa/qa/specs/features/api/1_manage/project_access_token_spec.rb' - 'qa/qa/specs/features/api/1_manage/user_access_termination_spec.rb' - 'qa/qa/specs/features/api/3_create/gitaly/automatic_failover_and_recovery_spec.rb' - 'qa/qa/specs/features/api/3_create/gitaly/backend_node_recovery_spec.rb' @@ -1179,7 +1070,6 @@ RSpec/ContextWording: - 'qa/qa/specs/features/api/3_create/gitaly/praefect_replication_queue_spec.rb' - 'qa/qa/specs/features/api/3_create/gitaly/praefect_repo_sync_spec.rb' - 'qa/qa/specs/features/browser_ui/1_manage/login/2fa_ssh_recovery_spec.rb' - - 'qa/qa/specs/features/browser_ui/1_manage/project/create_project_spec.rb' - 'qa/qa/specs/features/browser_ui/1_manage/project/invite_group_to_project_spec.rb' - 'qa/qa/specs/features/browser_ui/1_manage/user/user_access_termination_spec.rb' - 'qa/qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb' @@ -1191,7 +1081,9 @@ RSpec/ContextWording: - 'qa/qa/specs/features/browser_ui/3_create/repository/file/create_file_via_web_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/repository/file/delete_file_via_web_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/repository/file/edit_file_via_web_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/repository/license_detecton_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/repository/ssh_key_support_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/web_ide/server_hooks_custom_error_message_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/wiki/content_editor_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/wiki/project_based_content_creation_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/wiki/project_based_content_manipulation_spec.rb' @@ -1200,11 +1092,13 @@ RSpec/ContextWording: - 'qa/qa/specs/features/browser_ui/3_create/wiki/project_based_page_deletion_spec.rb' - 'qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb' - 'qa/qa/specs/features/browser_ui/4_verify/pipeline/mr_event_rule_pipeline_spec.rb' + - 'qa/qa/specs/features/browser_ui/4_verify/testing/endpoint_coverage_spec.rb' - 'qa/qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb' - 'qa/qa/specs/features/browser_ui/5_package/package_registry/pypi_repository_spec.rb' - 'qa/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/11_fulfillment/license/cloud_activation_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/11_fulfillment/license/license_spec.rb' + - 'qa/qa/specs/features/ee/browser_ui/11_fulfillment/purchase/free_tier_group_namespace_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/11_fulfillment/purchase/purchase_ci_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/11_fulfillment/purchase/purchase_storage_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/12_geo/http_push_spec.rb' @@ -1225,8 +1119,6 @@ RSpec/ContextWording: - 'qa/qa/specs/features/ee/browser_ui/1_manage/project/project_templates_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb' - - 'qa/qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_root_group_spec.rb' - - 'qa/qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/3_create/wiki/create_group_wiki_page_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/4_verify/new_discussion_not_dropping_merge_trains_mr_spec.rb' @@ -1235,7 +1127,6 @@ RSpec/ContextWording: - 'qa/spec/service/docker_run/gitlab_runner_spec.rb' - 'qa/spec/service/docker_run/k3s_spec.rb' - 'qa/spec/specs/helpers/context_selector_spec.rb' - - 'qa/spec/specs/helpers/feature_flag_spec.rb' - 'qa/spec/specs/helpers/quarantine_spec.rb' - 'qa/spec/specs/runner_spec.rb' - 'qa/spec/support/loglinking_spec.rb' @@ -1245,29 +1136,26 @@ RSpec/ContextWording: - 'spec/commands/sidekiq_cluster/cli_spec.rb' - 'spec/components/diffs/overflow_warning_component_spec.rb' - 'spec/components/pajamas/alert_component_spec.rb' + - 'spec/components/pajamas/banner_component_spec.rb' + - 'spec/components/pajamas/button_component_spec.rb' + - 'spec/components/pajamas/card_component_spec.rb' + - 'spec/components/pajamas/spinner_component_spec.rb' - 'spec/config/object_store_settings_spec.rb' - 'spec/controllers/admin/application_settings_controller_spec.rb' - - 'spec/controllers/admin/clusters_controller_spec.rb' - - 'spec/controllers/admin/dev_ops_report_controller_spec.rb' - - 'spec/controllers/admin/impersonations_controller_spec.rb' - 'spec/controllers/admin/instance_review_controller_spec.rb' - 'spec/controllers/admin/integrations_controller_spec.rb' - 'spec/controllers/admin/runner_projects_controller_spec.rb' - 'spec/controllers/admin/sessions_controller_spec.rb' - - 'spec/controllers/admin/topics_controller_spec.rb' - 'spec/controllers/admin/users_controller_spec.rb' - 'spec/controllers/application_controller_spec.rb' - 'spec/controllers/autocomplete_controller_spec.rb' - - 'spec/controllers/boards/issues_controller_spec.rb' - 'spec/controllers/concerns/controller_with_cross_project_access_check_spec.rb' - 'spec/controllers/concerns/enforces_admin_authentication_spec.rb' - - 'spec/controllers/concerns/graceful_timeout_handling_spec.rb' - 'spec/controllers/concerns/group_tree_spec.rb' - 'spec/controllers/concerns/import_url_params_spec.rb' - 'spec/controllers/concerns/issuable_collections_spec.rb' - 'spec/controllers/concerns/metrics_dashboard_spec.rb' - 'spec/controllers/concerns/renders_commits_spec.rb' - - 'spec/controllers/concerns/send_file_upload_spec.rb' - 'spec/controllers/confirmations_controller_spec.rb' - 'spec/controllers/dashboard/milestones_controller_spec.rb' - 'spec/controllers/dashboard/projects_controller_spec.rb' @@ -1308,8 +1196,8 @@ RSpec/ContextWording: - 'spec/controllers/passwords_controller_spec.rb' - 'spec/controllers/profiles/emails_controller_spec.rb' - 'spec/controllers/profiles/notifications_controller_spec.rb' + - 'spec/controllers/profiles/personal_access_tokens_controller_spec.rb' - 'spec/controllers/profiles/preferences_controller_spec.rb' - - 'spec/controllers/profiles/two_factor_auths_controller_spec.rb' - 'spec/controllers/projects/alerting/notifications_controller_spec.rb' - 'spec/controllers/projects/artifacts_controller_spec.rb' - 'spec/controllers/projects/badges_controller_spec.rb' @@ -1328,11 +1216,9 @@ RSpec/ContextWording: - 'spec/controllers/projects/discussions_controller_spec.rb' - 'spec/controllers/projects/environments_controller_spec.rb' - 'spec/controllers/projects/feature_flags_clients_controller_spec.rb' - - 'spec/controllers/projects/feature_flags_controller_spec.rb' - 'spec/controllers/projects/find_file_controller_spec.rb' - 'spec/controllers/projects/forks_controller_spec.rb' - 'spec/controllers/projects/import/jira_controller_spec.rb' - - 'spec/controllers/projects/incidents_controller_spec.rb' - 'spec/controllers/projects/issues_controller_spec.rb' - 'spec/controllers/projects/jobs_controller_spec.rb' - 'spec/controllers/projects/labels_controller_spec.rb' @@ -1358,7 +1244,6 @@ RSpec/ContextWording: - 'spec/controllers/projects/prometheus/metrics_controller_spec.rb' - 'spec/controllers/projects/raw_controller_spec.rb' - 'spec/controllers/projects/releases_controller_spec.rb' - - 'spec/controllers/projects/repositories_controller_spec.rb' - 'spec/controllers/projects/settings/ci_cd_controller_spec.rb' - 'spec/controllers/projects/settings/operations_controller_spec.rb' - 'spec/controllers/projects/settings/repository_controller_spec.rb' @@ -1372,39 +1257,33 @@ RSpec/ContextWording: - 'spec/controllers/projects_controller_spec.rb' - 'spec/controllers/registrations/welcome_controller_spec.rb' - 'spec/controllers/registrations_controller_spec.rb' - - 'spec/controllers/repositories/git_http_controller_spec.rb' - 'spec/controllers/root_controller_spec.rb' - 'spec/controllers/search_controller_spec.rb' - - 'spec/controllers/sent_notifications_controller_spec.rb' - 'spec/controllers/sessions_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/terms_controller_spec.rb' - - 'spec/db/docs_spec.rb' - 'spec/db/production/settings_spec.rb' - 'spec/db/schema_spec.rb' - 'spec/docs_screenshots/container_registry_docs.rb' - 'spec/docs_screenshots/wiki_docs.rb' - 'spec/experiments/application_experiment_spec.rb' - 'spec/experiments/ios_specific_templates_experiment_spec.rb' - - 'spec/features/admin/admin_abuse_reports_spec.rb' - 'spec/features/admin/admin_appearance_spec.rb' - 'spec/features/admin/admin_disables_git_access_protocol_spec.rb' + - 'spec/features/admin/admin_hook_logs_spec.rb' - 'spec/features/admin/admin_hooks_spec.rb' - 'spec/features/admin/admin_jobs_spec.rb' - 'spec/features/admin/admin_mode/login_spec.rb' - 'spec/features/admin/admin_mode/logout_spec.rb' - - 'spec/features/admin/admin_mode/workers_spec.rb' - 'spec/features/admin/admin_mode_spec.rb' - - 'spec/features/admin/admin_search_settings_spec.rb' - 'spec/features/admin/admin_settings_spec.rb' - 'spec/features/admin/dashboard_spec.rb' - 'spec/features/admin/users/user_spec.rb' - 'spec/features/admin/users/users_spec.rb' - 'spec/features/atom/dashboard_issues_spec.rb' - 'spec/features/atom/dashboard_spec.rb' - - 'spec/features/atom/issues_spec.rb' - 'spec/features/atom/merge_requests_spec.rb' - 'spec/features/atom/users_spec.rb' - 'spec/features/boards/boards_spec.rb' @@ -1417,10 +1296,8 @@ RSpec/ContextWording: - 'spec/features/boards/sidebar_labels_spec.rb' - 'spec/features/boards/user_visits_board_spec.rb' - 'spec/features/calendar_spec.rb' - - 'spec/features/clusters/cluster_detail_page_spec.rb' - 'spec/features/clusters/cluster_health_dashboard_spec.rb' - 'spec/features/commits_spec.rb' - - 'spec/features/cycle_analytics_spec.rb' - 'spec/features/dashboard/activity_spec.rb' - 'spec/features/dashboard/datetime_on_tooltips_spec.rb' - 'spec/features/dashboard/groups_list_spec.rb' @@ -1436,7 +1313,6 @@ RSpec/ContextWording: - 'spec/features/dashboard/user_filters_projects_spec.rb' - 'spec/features/expand_collapse_diffs_spec.rb' - 'spec/features/file_uploads/multipart_invalid_uploads_spec.rb' - - 'spec/features/frequently_visited_projects_and_groups_spec.rb' - 'spec/features/groups/board_sidebar_spec.rb' - 'spec/features/groups/board_spec.rb' - 'spec/features/groups/clusters/user_spec.rb' @@ -1450,11 +1326,8 @@ RSpec/ContextWording: - 'spec/features/groups/merge_requests_spec.rb' - 'spec/features/groups/milestone_spec.rb' - 'spec/features/groups/packages_spec.rb' - - 'spec/features/groups/settings/ci_cd_spec.rb' - 'spec/features/groups/settings/group_badges_spec.rb' - - 'spec/features/groups/settings/packages_and_registries_spec.rb' - 'spec/features/groups/settings/repository_spec.rb' - - 'spec/features/groups/settings/user_searches_in_settings_spec.rb' - 'spec/features/groups/share_lock_spec.rb' - 'spec/features/groups/show_spec.rb' - 'spec/features/groups/user_sees_package_sidebar_spec.rb' @@ -1504,14 +1377,15 @@ RSpec/ContextWording: - 'spec/features/markdown/metrics_spec.rb' - 'spec/features/merge_request/batch_comments_spec.rb' - 'spec/features/merge_request/close_reopen_report_toggle_spec.rb' + - 'spec/features/merge_request/merge_request_discussion_lock_spec.rb' - 'spec/features/merge_request/user_accepts_merge_request_spec.rb' - 'spec/features/merge_request/user_assigns_themselves_spec.rb' - - 'spec/features/merge_request/user_comments_on_diff_spec.rb' - 'spec/features/merge_request/user_creates_image_diff_notes_spec.rb' - 'spec/features/merge_request/user_creates_merge_request_spec.rb' - 'spec/features/merge_request/user_creates_mr_spec.rb' - 'spec/features/merge_request/user_edits_mr_spec.rb' - 'spec/features/merge_request/user_interacts_with_batched_mr_diffs_spec.rb' + - 'spec/features/merge_request/user_manages_subscription_spec.rb' - 'spec/features/merge_request/user_merges_merge_request_spec.rb' - 'spec/features/merge_request/user_merges_only_if_pipeline_succeeds_spec.rb' - 'spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb' @@ -1522,15 +1396,11 @@ RSpec/ContextWording: - 'spec/features/merge_request/user_sees_avatar_on_diff_notes_spec.rb' - 'spec/features/merge_request/user_sees_cherry_pick_modal_spec.rb' - 'spec/features/merge_request/user_sees_closing_issues_message_spec.rb' - - 'spec/features/merge_request/user_sees_deployment_widget_spec.rb' - - 'spec/features/merge_request/user_sees_diff_spec.rb' - 'spec/features/merge_request/user_sees_discussions_spec.rb' - 'spec/features/merge_request/user_sees_merge_widget_spec.rb' - - 'spec/features/merge_request/user_sees_mini_pipeline_graph_spec.rb' - 'spec/features/merge_request/user_suggests_changes_on_diff_spec.rb' - 'spec/features/merge_request/user_uses_quick_actions_spec.rb' - 'spec/features/merge_request/user_views_open_merge_request_spec.rb' - - 'spec/features/merge_request/user_views_user_status_on_merge_request_spec.rb' - 'spec/features/merge_requests/filters_generic_behavior_spec.rb' - 'spec/features/merge_requests/user_exports_as_csv_spec.rb' - 'spec/features/merge_requests/user_filters_by_approvals_spec.rb' @@ -1539,7 +1409,6 @@ RSpec/ContextWording: - 'spec/features/merge_requests/user_filters_by_target_branch_spec.rb' - 'spec/features/merge_requests/user_lists_merge_requests_spec.rb' - 'spec/features/merge_requests/user_mass_updates_spec.rb' - - 'spec/features/merge_requests/user_sees_empty_state_spec.rb' - 'spec/features/milestones/user_views_milestone_spec.rb' - 'spec/features/monitor_sidebar_link_spec.rb' - 'spec/features/nav/top_nav_responsive_spec.rb' @@ -1550,7 +1419,6 @@ RSpec/ContextWording: - 'spec/features/profiles/keys_spec.rb' - 'spec/features/profiles/password_spec.rb' - 'spec/features/profiles/user_edit_profile_spec.rb' - - 'spec/features/profiles/user_search_settings_spec.rb' - 'spec/features/projects/active_tabs_spec.rb' - 'spec/features/projects/activity/user_sees_design_activity_spec.rb' - 'spec/features/projects/artifacts/file_spec.rb' @@ -1565,6 +1433,7 @@ RSpec/ContextWording: - 'spec/features/projects/commits/multi_view_diff_spec.rb' - 'spec/features/projects/commits/user_browses_commits_spec.rb' - 'spec/features/projects/compare_spec.rb' + - 'spec/features/projects/deploy_keys_spec.rb' - 'spec/features/projects/diffs/diff_show_spec.rb' - 'spec/features/projects/environments/environment_spec.rb' - 'spec/features/projects/environments/environments_spec.rb' @@ -1575,6 +1444,7 @@ RSpec/ContextWording: - 'spec/features/projects/files/user_creates_directory_spec.rb' - 'spec/features/projects/fork_spec.rb' - 'spec/features/projects/graph_spec.rb' + - 'spec/features/projects/hook_logs/user_reads_log_spec.rb' - 'spec/features/projects/import_export/export_file_spec.rb' - 'spec/features/projects/infrastructure_registry_spec.rb' - 'spec/features/projects/integrations/disable_triggers_spec.rb' @@ -1582,15 +1452,12 @@ RSpec/ContextWording: - 'spec/features/projects/issuable_templates_spec.rb' - 'spec/features/projects/issues/design_management/user_links_to_designs_in_issue_spec.rb' - 'spec/features/projects/issues/design_management/user_views_designs_spec.rb' - - 'spec/features/projects/issues/email_participants_spec.rb' + - 'spec/features/projects/jobs/user_browses_job_spec.rb' - 'spec/features/projects/jobs/user_browses_jobs_spec.rb' - 'spec/features/projects/jobs_spec.rb' - 'spec/features/projects/labels/search_labels_spec.rb' - - 'spec/features/projects/labels/update_prioritization_spec.rb' - - 'spec/features/projects/labels/user_creates_labels_spec.rb' - 'spec/features/projects/members/group_members_spec.rb' - 'spec/features/projects/members/groups_with_access_list_spec.rb' - - 'spec/features/projects/members/manage_groups_spec.rb' - 'spec/features/projects/members/manage_members_spec.rb' - 'spec/features/projects/members/tabs_spec.rb' - 'spec/features/projects/members/user_requests_access_spec.rb' @@ -1601,21 +1468,20 @@ RSpec/ContextWording: - 'spec/features/projects/packages_spec.rb' - 'spec/features/projects/pages/user_edits_settings_spec.rb' - 'spec/features/projects/pipeline_schedules_spec.rb' + - 'spec/features/projects/pipelines/legacy_pipeline_spec.rb' + - 'spec/features/projects/pipelines/legacy_pipelines_spec.rb' - 'spec/features/projects/pipelines/pipeline_spec.rb' - 'spec/features/projects/pipelines/pipelines_spec.rb' - 'spec/features/projects/releases/user_views_releases_spec.rb' + - 'spec/features/projects/settings/branch_rules_settings_spec.rb' - 'spec/features/projects/settings/lfs_settings_spec.rb' - 'spec/features/projects/settings/packages_settings_spec.rb' - - 'spec/features/projects/settings/pipelines_settings_spec.rb' - 'spec/features/projects/settings/project_badges_spec.rb' - 'spec/features/projects/settings/project_settings_spec.rb' - - 'spec/features/projects/settings/registry_settings_spec.rb' - 'spec/features/projects/settings/repository_settings_spec.rb' + - 'spec/features/projects/settings/secure_files_spec.rb' - 'spec/features/projects/settings/service_desk_setting_spec.rb' - 'spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb' - - 'spec/features/projects/settings/user_renames_a_project_spec.rb' - - 'spec/features/projects/settings/user_searches_in_settings_spec.rb' - - 'spec/features/projects/settings/user_transfers_a_project_spec.rb' - 'spec/features/projects/settings/visibility_settings_spec.rb' - 'spec/features/projects/settings/webhooks_settings_spec.rb' - 'spec/features/projects/show/user_manages_notifications_spec.rb' @@ -1628,26 +1494,21 @@ RSpec/ContextWording: - 'spec/features/projects/tags/user_edits_tags_spec.rb' - 'spec/features/projects/tags/user_views_tags_spec.rb' - 'spec/features/projects/tree/tree_show_spec.rb' - - 'spec/features/projects/user_creates_project_spec.rb' - 'spec/features/projects/user_sees_sidebar_spec.rb' - 'spec/features/projects/user_sorts_projects_spec.rb' - 'spec/features/projects/user_uses_shortcuts_spec.rb' - - 'spec/features/projects/view_on_env_spec.rb' - - 'spec/features/projects/wiki/user_views_wiki_empty_spec.rb' - 'spec/features/projects_spec.rb' - 'spec/features/protected_branches_spec.rb' - 'spec/features/reportable_note/commit_spec.rb' - 'spec/features/reportable_note/merge_request_spec.rb' - 'spec/features/runners_spec.rb' - 'spec/features/search/user_searches_for_code_spec.rb' - - 'spec/features/search/user_uses_header_search_field_spec.rb' - - 'spec/features/security/project/snippet/internal_access_spec.rb' - - 'spec/features/security/project/snippet/public_access_spec.rb' - 'spec/features/signed_commits_spec.rb' - 'spec/features/snippets/explore_spec.rb' - 'spec/features/tags/developer_creates_tag_spec.rb' - 'spec/features/tags/developer_deletes_tag_spec.rb' - 'spec/features/tags/developer_updates_tag_spec.rb' + - 'spec/features/tags/maintainer_deletes_protected_tag_spec.rb' - 'spec/features/uploads/user_uploads_file_to_note_spec.rb' - 'spec/features/user_can_display_performance_bar_spec.rb' - 'spec/features/user_opens_link_to_comment_spec.rb' @@ -1664,14 +1525,12 @@ RSpec/ContextWording: - 'spec/finders/applications_finder_spec.rb' - 'spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb' - 'spec/finders/autocomplete/move_to_project_finder_spec.rb' - - 'spec/finders/autocomplete/routes_finder_spec.rb' - 'spec/finders/autocomplete/users_finder_spec.rb' - 'spec/finders/branches_finder_spec.rb' - 'spec/finders/ci/commit_statuses_finder_spec.rb' - 'spec/finders/ci/jobs_finder_spec.rb' - 'spec/finders/ci/pipelines_finder_spec.rb' - 'spec/finders/ci/runners_finder_spec.rb' - - 'spec/finders/ci/variables_finder_spec.rb' - 'spec/finders/cluster_ancestors_finder_spec.rb' - 'spec/finders/clusters/agent_authorizations_finder_spec.rb' - 'spec/finders/clusters/agents_finder_spec.rb' @@ -1679,7 +1538,6 @@ RSpec/ContextWording: - 'spec/finders/contributed_projects_finder_spec.rb' - 'spec/finders/deploy_tokens/tokens_finder_spec.rb' - 'spec/finders/deployments_finder_spec.rb' - - 'spec/finders/design_management/designs_finder_spec.rb' - 'spec/finders/environments/environment_names_finder_spec.rb' - 'spec/finders/environments/environments_by_deployments_finder_spec.rb' - 'spec/finders/environments/environments_finder_spec.rb' @@ -1690,7 +1548,6 @@ RSpec/ContextWording: - 'spec/finders/groups/projects_requiring_authorizations_refresh/on_direct_membership_finder_spec.rb' - 'spec/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder_spec.rb' - 'spec/finders/groups_finder_spec.rb' - - 'spec/finders/issues_finder_spec.rb' - 'spec/finders/joined_groups_finder_spec.rb' - 'spec/finders/keys_finder_spec.rb' - 'spec/finders/labels_finder_spec.rb' @@ -1703,8 +1560,6 @@ RSpec/ContextWording: - 'spec/finders/metrics/users_starred_dashboards_finder_spec.rb' - 'spec/finders/milestones_finder_spec.rb' - 'spec/finders/notes_finder_spec.rb' - - 'spec/finders/packages/conan/package_finder_spec.rb' - - 'spec/finders/packages/go/version_finder_spec.rb' - 'spec/finders/packages/group_packages_finder_spec.rb' - 'spec/finders/packages/helm/packages_finder_spec.rb' - 'spec/finders/packages/maven/package_finder_spec.rb' @@ -1738,7 +1593,6 @@ RSpec/ContextWording: - 'spec/frontend/fixtures/u2f.rb' - 'spec/frontend/fixtures/webauthn.rb' - 'spec/graphql/features/feature_flag_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' @@ -1755,7 +1609,6 @@ RSpec/ContextWording: - 'spec/graphql/mutations/design_management/delete_spec.rb' - 'spec/graphql/mutations/design_management/move_spec.rb' - 'spec/graphql/mutations/groups/update_spec.rb' - - 'spec/graphql/mutations/issues/set_severity_spec.rb' - 'spec/graphql/mutations/merge_requests/update_spec.rb' - 'spec/graphql/mutations/release_asset_links/update_spec.rb' - 'spec/graphql/mutations/releases/delete_spec.rb' @@ -1780,7 +1633,6 @@ RSpec/ContextWording: - 'spec/graphql/resolvers/design_management/design_resolver_spec.rb' - 'spec/graphql/resolvers/design_management/designs_resolver_spec.rb' - 'spec/graphql/resolvers/design_management/version/design_at_version_resolver_spec.rb' - - 'spec/graphql/resolvers/design_management/version/designs_at_version_resolver_spec.rb' - 'spec/graphql/resolvers/design_management/version_in_collection_resolver_spec.rb' - 'spec/graphql/resolvers/design_management/version_resolver_spec.rb' - 'spec/graphql/resolvers/design_management/versions_resolver_spec.rb' @@ -1793,7 +1645,6 @@ RSpec/ContextWording: - 'spec/graphql/resolvers/kas/agent_configurations_resolver_spec.rb' - 'spec/graphql/resolvers/kas/agent_connections_resolver_spec.rb' - 'spec/graphql/resolvers/last_commit_resolver_spec.rb' - - 'spec/graphql/resolvers/metrics/dashboard_resolver_spec.rb' - 'spec/graphql/resolvers/metrics/dashboards/annotation_resolver_spec.rb' - 'spec/graphql/resolvers/namespace_projects_resolver_spec.rb' - 'spec/graphql/resolvers/project_merge_requests_resolver_spec.rb' @@ -1809,9 +1660,7 @@ RSpec/ContextWording: - 'spec/graphql/subscriptions/issuable_updated_spec.rb' - 'spec/graphql/types/base_field_spec.rb' - 'spec/graphql/types/global_id_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/range_input_type_spec.rb' - 'spec/graphql/types/release_links_type_spec.rb' - 'spec/graphql/types/user_type_spec.rb' @@ -1826,13 +1675,12 @@ RSpec/ContextWording: - 'spec/helpers/award_emoji_helper_spec.rb' - 'spec/helpers/blob_helper_spec.rb' - 'spec/helpers/boards_helper_spec.rb' - - 'spec/helpers/ci/runners_helper_spec.rb' + - 'spec/helpers/ci/secure_files_helper_spec.rb' - 'spec/helpers/clusters_helper_spec.rb' - 'spec/helpers/colors_helper_spec.rb' - 'spec/helpers/commits_helper_spec.rb' - 'spec/helpers/diff_helper_spec.rb' - 'spec/helpers/emails_helper_spec.rb' - - 'spec/helpers/environment_helper_spec.rb' - 'spec/helpers/environments_helper_spec.rb' - 'spec/helpers/events_helper_spec.rb' - 'spec/helpers/git_helper_spec.rb' @@ -1842,7 +1690,6 @@ RSpec/ContextWording: - 'spec/helpers/ide_helper_spec.rb' - 'spec/helpers/integrations_helper_spec.rb' - 'spec/helpers/invite_members_helper_spec.rb' - - 'spec/helpers/issues_helper_spec.rb' - 'spec/helpers/jira_connect_helper_spec.rb' - 'spec/helpers/labels_helper_spec.rb' - 'spec/helpers/listbox_helper_spec.rb' @@ -1853,34 +1700,33 @@ RSpec/ContextWording: - 'spec/helpers/notes_helper_spec.rb' - 'spec/helpers/operations_helper_spec.rb' - 'spec/helpers/projects/cluster_agents_helper_spec.rb' + - 'spec/helpers/projects/project_members_helper_spec.rb' - 'spec/helpers/projects_helper_spec.rb' - 'spec/helpers/releases_helper_spec.rb' - 'spec/helpers/routing/pseudonymization_helper_spec.rb' - 'spec/helpers/search_helper_spec.rb' - - 'spec/helpers/snippets_helper_spec.rb' - 'spec/helpers/sorting_helper_spec.rb' - 'spec/helpers/storage_helper_spec.rb' - 'spec/helpers/submodule_helper_spec.rb' - 'spec/helpers/timeboxes_helper_spec.rb' - - 'spec/helpers/timeboxes_routing_helper_spec.rb' - 'spec/helpers/todos_helper_spec.rb' - 'spec/helpers/tree_helper_spec.rb' + - 'spec/helpers/users/callouts_helper_spec.rb' - 'spec/helpers/users/group_callouts_helper_spec.rb' - 'spec/helpers/users_helper_spec.rb' - 'spec/helpers/visibility_level_helper_spec.rb' + - 'spec/helpers/web_hooks/web_hooks_helper_spec.rb' - 'spec/helpers/whats_new_helper_spec.rb' - 'spec/helpers/wiki_helper_spec.rb' - 'spec/initializers/00_rails_disable_joins_spec.rb' - - 'spec/initializers/0_log_deprecations_spec.rb' + - 'spec/initializers/1_acts_as_taggable_spec.rb' - 'spec/initializers/carrierwave_patch_spec.rb' - - 'spec/initializers/lograge_spec.rb' + - 'spec/initializers/enumerator_next_patch_spec.rb' - 'spec/initializers/mail_encoding_patch_spec.rb' - - 'spec/initializers/net_http_patch_spec.rb' - 'spec/initializers/rack_multipart_patch_spec.rb' - 'spec/initializers/secret_token_spec.rb' - 'spec/initializers/settings_spec.rb' - 'spec/initializers/validate_database_config_spec.rb' - - 'spec/initializers/validate_puma_spec.rb' - 'spec/lib/api/entities/application_setting_spec.rb' - 'spec/lib/api/entities/basic_project_details_spec.rb' - 'spec/lib/api/entities/clusters/agent_authorization_spec.rb' @@ -1911,14 +1757,12 @@ RSpec/ContextWording: - '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_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/banzai/color_parser_spec.rb' - 'spec/lib/banzai/filter/absolute_link_filter_spec.rb' - 'spec/lib/banzai/filter/asset_proxy_filter_spec.rb' - - 'spec/lib/banzai/filter/audio_link_filter_spec.rb' - 'spec/lib/banzai/filter/autolink_filter_spec.rb' - 'spec/lib/banzai/filter/broadcast_message_placeholders_filter_spec.rb' - 'spec/lib/banzai/filter/broadcast_message_sanitization_filter_spec.rb' @@ -1927,7 +1771,6 @@ RSpec/ContextWording: - 'spec/lib/banzai/filter/front_matter_filter_spec.rb' - 'spec/lib/banzai/filter/gollum_tags_filter_spec.rb' - 'spec/lib/banzai/filter/inline_metrics_redactor_filter_spec.rb' - - 'spec/lib/banzai/filter/issuable_reference_expansion_filter_spec.rb' - 'spec/lib/banzai/filter/markdown_filter_spec.rb' - 'spec/lib/banzai/filter/reference_redactor_filter_spec.rb' - 'spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb' @@ -1949,12 +1792,10 @@ RSpec/ContextWording: - 'spec/lib/banzai/filter/table_of_contents_filter_spec.rb' - 'spec/lib/banzai/filter/table_of_contents_tag_filter_spec.rb' - 'spec/lib/banzai/filter/upload_link_filter_spec.rb' - - 'spec/lib/banzai/filter/video_link_filter_spec.rb' - 'spec/lib/banzai/filter/wiki_link_filter_spec.rb' - 'spec/lib/banzai/pipeline/broadcast_message_pipeline_spec.rb' - 'spec/lib/banzai/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_range_parser_spec.rb' - 'spec/lib/banzai/reference_parser/design_parser_spec.rb' - 'spec/lib/banzai/reference_parser/feature_flag_parser_spec.rb' @@ -1984,7 +1825,6 @@ RSpec/ContextWording: - '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/blob_spec.rb' - 'spec/lib/container_registry/gitlab_api_client_spec.rb' - 'spec/lib/container_registry/migration_spec.rb' - 'spec/lib/container_registry/registry_spec.rb' @@ -1999,11 +1839,7 @@ RSpec/ContextWording: - 'spec/lib/feature/definition_spec.rb' - 'spec/lib/feature_spec.rb' - 'spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb' - - 'spec/lib/generators/gitlab/usage_metric_generator_spec.rb' - - 'spec/lib/gitlab/alert_management/alert_status_counts_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/analytics/cycle_analytics/average_spec.rb' - 'spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb' - 'spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb' @@ -2011,19 +1847,13 @@ RSpec/ContextWording: - 'spec/lib/gitlab/asciidoc_spec.rb' - 'spec/lib/gitlab/asset_proxy_spec.rb' - 'spec/lib/gitlab/auth/atlassian/identity_linker_spec.rb' - - 'spec/lib/gitlab/auth/atlassian/user_spec.rb' - 'spec/lib/gitlab/auth/auth_finders_spec.rb' - 'spec/lib/gitlab/auth/current_user_mode_spec.rb' - - 'spec/lib/gitlab/auth/key_status_checker_spec.rb' - - 'spec/lib/gitlab/auth/ldap/access_spec.rb' - 'spec/lib/gitlab/auth/ldap/adapter_spec.rb' - - 'spec/lib/gitlab/auth/ldap/auth_hash_spec.rb' - 'spec/lib/gitlab/auth/ldap/dn_spec.rb' - - 'spec/lib/gitlab/auth/ldap/person_spec.rb' - 'spec/lib/gitlab/auth/ldap/user_spec.rb' - 'spec/lib/gitlab/auth/o_auth/auth_hash_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/o_auth/user_spec.rb' - 'spec/lib/gitlab/auth/otp/strategies/forti_authenticator/manual_otp_spec.rb' - 'spec/lib/gitlab/auth/otp/strategies/forti_authenticator/push_otp_spec.rb' @@ -2038,16 +1868,12 @@ RSpec/ContextWording: - 'spec/lib/gitlab/authorized_keys_spec.rb' - 'spec/lib/gitlab/avatar_cache_spec.rb' - 'spec/lib/gitlab/background_migration/backfill_ci_queuing_tables_spec.rb' - - 'spec/lib/gitlab/background_migration/backfill_draft_status_on_merge_requests_spec.rb' - - 'spec/lib/gitlab/background_migration/backfill_draft_status_on_merge_requests_with_corrected_regex_spec.rb' - - 'spec/lib/gitlab/background_migration/backfill_project_repositories_spec.rb' + - 'spec/lib/gitlab/background_migration/backfill_imported_issue_search_data_spec.rb' - 'spec/lib/gitlab/background_migration/batching_strategies/primary_key_batching_strategy_spec.rb' - 'spec/lib/gitlab/background_migration/cleanup_draft_data_from_faulty_regex_spec.rb' - 'spec/lib/gitlab/background_migration/copy_column_using_background_migration_job_spec.rb' - 'spec/lib/gitlab/background_migration/disable_expiration_policies_linked_to_no_container_images_spec.rb' - 'spec/lib/gitlab/background_migration/project_namespaces/backfill_project_namespaces_spec.rb' - - 'spec/lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid_spec.rb' - - 'spec/lib/gitlab/background_migration/remove_all_trace_expiration_dates_spec.rb' - 'spec/lib/gitlab/bare_repository_import/importer_spec.rb' - 'spec/lib/gitlab/bare_repository_import/repository_spec.rb' - 'spec/lib/gitlab/bitbucket_import/importer_spec.rb' @@ -2056,7 +1882,6 @@ RSpec/ContextWording: - 'spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb' - 'spec/lib/gitlab/cache/helpers_spec.rb' - 'spec/lib/gitlab/chat/responder_spec.rb' - - 'spec/lib/gitlab/chat_name_token_spec.rb' - 'spec/lib/gitlab/checks/branch_check_spec.rb' - 'spec/lib/gitlab/checks/lfs_integrity_spec.rb' - 'spec/lib/gitlab/checks/matching_merge_request_spec.rb' @@ -2066,7 +1891,6 @@ RSpec/ContextWording: - 'spec/lib/gitlab/ci/ansi2html_spec.rb' - 'spec/lib/gitlab/ci/ansi2json/style_spec.rb' - 'spec/lib/gitlab/ci/ansi2json_spec.rb' - - 'spec/lib/gitlab/ci/badge/coverage/report_spec.rb' - 'spec/lib/gitlab/ci/badge/pipeline/status_spec.rb' - 'spec/lib/gitlab/ci/badge/release/template_spec.rb' - 'spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb' @@ -2074,13 +1898,13 @@ RSpec/ContextWording: - 'spec/lib/gitlab/ci/build/prerequisite/factory_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/rule/clause/changes_spec.rb' - 'spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb' - 'spec/lib/gitlab/ci/build/rules_spec.rb' - 'spec/lib/gitlab/ci/charts_spec.rb' - 'spec/lib/gitlab/ci/config/entry/default_spec.rb' - 'spec/lib/gitlab/ci/config/entry/environment_spec.rb' - 'spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb' - - 'spec/lib/gitlab/ci/config/entry/include_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/job_spec.rb' @@ -2089,8 +1913,6 @@ RSpec/ContextWording: - 'spec/lib/gitlab/ci/config/entry/port_spec.rb' - 'spec/lib/gitlab/ci/config/entry/ports_spec.rb' - 'spec/lib/gitlab/ci/config/entry/processable_spec.rb' - - 'spec/lib/gitlab/ci/config/entry/release_spec.rb' - - 'spec/lib/gitlab/ci/config/entry/reports_spec.rb' - 'spec/lib/gitlab/ci/config/entry/retry_spec.rb' - 'spec/lib/gitlab/ci/config/entry/rules/rule_spec.rb' - 'spec/lib/gitlab/ci/config/entry/trigger/forward_spec.rb' @@ -2100,9 +1922,7 @@ RSpec/ContextWording: - 'spec/lib/gitlab/ci/jwt_spec.rb' - 'spec/lib/gitlab/ci/lint_spec.rb' - 'spec/lib/gitlab/ci/matching/runner_matcher_spec.rb' - - 'spec/lib/gitlab/ci/parsers/coverage/sax_document_spec.rb' - 'spec/lib/gitlab/ci/parsers/security/common_spec.rb' - - 'spec/lib/gitlab/ci/parsers/security/validators/schema_validator_spec.rb' - 'spec/lib/gitlab/ci/parsers/test/junit_spec.rb' - 'spec/lib/gitlab/ci/pipeline/chain/command_spec.rb' - 'spec/lib/gitlab/ci/pipeline/chain/create_spec.rb' @@ -2113,23 +1933,23 @@ RSpec/ContextWording: - 'spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb' - 'spec/lib/gitlab/ci/pipeline/quota/deployments_spec.rb' - 'spec/lib/gitlab/ci/pipeline/seed/build_spec.rb' - - 'spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb' - 'spec/lib/gitlab/ci/pipeline_object_hierarchy_spec.rb' - 'spec/lib/gitlab/ci/reports/reports_comparer_spec.rb' - 'spec/lib/gitlab/ci/reports/security/aggregated_report_spec.rb' - 'spec/lib/gitlab/ci/reports/security/vulnerability_reports_comparer_spec.rb' - 'spec/lib/gitlab/ci/reports/test_suite_comparer_spec.rb' - 'spec/lib/gitlab/ci/runner_instructions_spec.rb' + - 'spec/lib/gitlab/ci/runner_upgrade_check_spec.rb' - 'spec/lib/gitlab/ci/status/bridge/factory_spec.rb' - 'spec/lib/gitlab/ci/status/build/failed_spec.rb' - 'spec/lib/gitlab/ci/status/composite_spec.rb' - 'spec/lib/gitlab/ci/status/factory_spec.rb' - - 'spec/lib/gitlab/ci/status/stage/play_manual_spec.rb' - 'spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb' - 'spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb' - 'spec/lib/gitlab/ci/templates/Jobs/code_quality_gitlab_ci_yaml_spec.rb' - 'spec/lib/gitlab/ci/templates/Jobs/deploy_gitlab_ci_yaml_spec.rb' - 'spec/lib/gitlab/ci/templates/Jobs/sast_iac_gitlab_ci_yaml_spec.rb' + - 'spec/lib/gitlab/ci/templates/Jobs/sast_iac_latest_gitlab_ci_yaml_spec.rb' - 'spec/lib/gitlab/ci/templates/Jobs/test_gitlab_ci_yaml_spec.rb' - 'spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb' - 'spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb' @@ -2159,21 +1979,21 @@ RSpec/ContextWording: - 'spec/lib/gitlab/console_spec.rb' - 'spec/lib/gitlab/consul/internal_spec.rb' - 'spec/lib/gitlab/content_security_policy/config_loader_spec.rb' - - 'spec/lib/gitlab/current_settings_spec.rb' - 'spec/lib/gitlab/cycle_analytics/permissions_spec.rb' - 'spec/lib/gitlab/daemon_spec.rb' - 'spec/lib/gitlab/data_builder/build_spec.rb' - 'spec/lib/gitlab/data_builder/issuable_spec.rb' - 'spec/lib/gitlab/data_builder/pipeline_spec.rb' - 'spec/lib/gitlab/database/background_migration/batch_optimizer_spec.rb' + - 'spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb' - 'spec/lib/gitlab/database/background_migration/batched_migration_spec.rb' + - 'spec/lib/gitlab/database/background_migration/health_status_spec.rb' - 'spec/lib/gitlab/database/batch_count_spec.rb' - 'spec/lib/gitlab/database/bulk_update_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/load_balancing/connection_proxy_spec.rb' - - 'spec/lib/gitlab/database/load_balancing/host_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/setup_spec.rb' @@ -2200,6 +2020,7 @@ RSpec/ContextWording: - 'spec/lib/gitlab/database/postgres_hll/batch_distinct_counter_spec.rb' - 'spec/lib/gitlab/database/query_analyzer_spec.rb' - 'spec/lib/gitlab/database/query_analyzers/gitlab_schemas_metrics_spec.rb' + - 'spec/lib/gitlab/database/query_analyzers/gitlab_schemas_validate_connection_spec.rb' - 'spec/lib/gitlab/database/query_analyzers/prevent_cross_database_modification_spec.rb' - 'spec/lib/gitlab/database/query_analyzers/restrict_allowed_schemas_spec.rb' - 'spec/lib/gitlab/database/reflection_spec.rb' @@ -2223,6 +2044,7 @@ RSpec/ContextWording: - 'spec/lib/gitlab/diff/lines_unfolder_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/rendered/notebook/diff_file_spec.rb' - 'spec/lib/gitlab/diff/suggestions_parser_spec.rb' - 'spec/lib/gitlab/email/failure_handler_spec.rb' @@ -2234,18 +2056,17 @@ RSpec/ContextWording: - 'spec/lib/gitlab/email/handler_spec.rb' - 'spec/lib/gitlab/email/message/in_product_marketing/admin_verify_spec.rb' - 'spec/lib/gitlab/email/message/in_product_marketing/base_spec.rb' - - 'spec/lib/gitlab/email/message/in_product_marketing/experience_spec.rb' - 'spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb' - 'spec/lib/gitlab/email/message/in_product_marketing/team_short_spec.rb' - 'spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb' - 'spec/lib/gitlab/email/message/in_product_marketing/trial_short_spec.rb' - 'spec/lib/gitlab/email/message/in_product_marketing/trial_spec.rb' - 'spec/lib/gitlab/email/message/repository_push_spec.rb' + - 'spec/lib/gitlab/email/reply_parser_spec.rb' - 'spec/lib/gitlab/encoding_helper_spec.rb' - 'spec/lib/gitlab/error_tracking/context_payload_generator_spec.rb' - 'spec/lib/gitlab/error_tracking/processor/sidekiq_processor_spec.rb' - 'spec/lib/gitlab/error_tracking_spec.rb' - - 'spec/lib/gitlab/exceptions_app_spec.rb' - 'spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb' - 'spec/lib/gitlab/experimentation/controller_concern_spec.rb' - 'spec/lib/gitlab/experimentation_spec.rb' @@ -2266,7 +2087,6 @@ RSpec/ContextWording: - 'spec/lib/gitlab/git/cross_repo_comparer_spec.rb' - 'spec/lib/gitlab/git/diff_collection_spec.rb' - 'spec/lib/gitlab/git/diff_spec.rb' - - 'spec/lib/gitlab/git/keep_around_spec.rb' - 'spec/lib/gitlab/git/merge_base_spec.rb' - 'spec/lib/gitlab/git/raw_diff_change_spec.rb' - 'spec/lib/gitlab/git/repository_spec.rb' @@ -2284,6 +2104,7 @@ RSpec/ContextWording: - 'spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb' - 'spec/lib/gitlab/github_import/importer/releases_importer_spec.rb' - 'spec/lib/gitlab/github_import/representation/diff_note_spec.rb' + - 'spec/lib/gitlab/github_import/representation/issue_event_spec.rb' - 'spec/lib/gitlab/github_import/representation/issue_spec.rb' - 'spec/lib/gitlab/github_import/representation/note_spec.rb' - 'spec/lib/gitlab/github_import/representation/pull_request_spec.rb' @@ -2297,17 +2118,16 @@ RSpec/ContextWording: - 'spec/lib/gitlab/graphql/markdown_field_spec.rb' - 'spec/lib/gitlab/graphql/pagination/externally_paginated_array_connection_spec.rb' - 'spec/lib/gitlab/graphql/pagination/keyset/connection_spec.rb' - - 'spec/lib/gitlab/graphql/pagination/keyset/order_info_spec.rb' - 'spec/lib/gitlab/graphql/queries_spec.rb' - 'spec/lib/gitlab/graphql_logger_spec.rb' + - 'spec/lib/gitlab/harbor/client_spec.rb' + - 'spec/lib/gitlab/harbor/query_spec.rb' - 'spec/lib/gitlab/health_checks/gitaly_check_spec.rb' - 'spec/lib/gitlab/health_checks/middleware_spec.rb' - - 'spec/lib/gitlab/health_checks/puma_check_spec.rb' - 'spec/lib/gitlab/health_checks/simple_check_shared.rb' - 'spec/lib/gitlab/highlight_spec.rb' - 'spec/lib/gitlab/hook_data/group_builder_spec.rb' - 'spec/lib/gitlab/hook_data/group_member_builder_spec.rb' - - 'spec/lib/gitlab/hook_data/issue_builder_spec.rb' - 'spec/lib/gitlab/hook_data/key_builder_spec.rb' - 'spec/lib/gitlab/hook_data/project_builder_spec.rb' - 'spec/lib/gitlab/hook_data/project_member_builder_spec.rb' @@ -2315,10 +2135,10 @@ RSpec/ContextWording: - 'spec/lib/gitlab/hook_data/user_builder_spec.rb' - 'spec/lib/gitlab/hotlinking_detector_spec.rb' - 'spec/lib/gitlab/http_spec.rb' - - 'spec/lib/gitlab/i18n/po_linter_spec.rb' - 'spec/lib/gitlab/import/merge_request_creator_spec.rb' - 'spec/lib/gitlab/import_export/attributes_finder_spec.rb' - 'spec/lib/gitlab/import_export/command_line_util_spec.rb' + - 'spec/lib/gitlab/import_export/decompressed_archive_size_validator_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/legacy_tree_restorer_spec.rb' @@ -2345,9 +2165,10 @@ RSpec/ContextWording: - 'spec/lib/gitlab/incoming_email_spec.rb' - 'spec/lib/gitlab/instrumentation/redis_base_spec.rb' - 'spec/lib/gitlab/instrumentation/redis_cluster_validator_spec.rb' + - 'spec/lib/gitlab/instrumentation_helper_spec.rb' - 'spec/lib/gitlab/internal_post_receive/response_spec.rb' + - 'spec/lib/gitlab/issuable/clone/attributes_rewriter_spec.rb' - 'spec/lib/gitlab/issuable_metadata_spec.rb' - - 'spec/lib/gitlab/issuable_sorter_spec.rb' - 'spec/lib/gitlab/issuables_count_for_state_spec.rb' - 'spec/lib/gitlab/issues/rebalancing/state_spec.rb' - 'spec/lib/gitlab/jira/dvcs_spec.rb' @@ -2361,26 +2182,24 @@ RSpec/ContextWording: - 'spec/lib/gitlab/kubernetes/helm/v2/certificate_spec.rb' - 'spec/lib/gitlab/kubernetes/helm/v2/init_command_spec.rb' - 'spec/lib/gitlab/kubernetes/kube_client_spec.rb' - - 'spec/lib/gitlab/kubernetes/rollout_status_spec.rb' - 'spec/lib/gitlab/legacy_github_import/client_spec.rb' - 'spec/lib/gitlab/lfs/client_spec.rb' - 'spec/lib/gitlab/lfs_token_spec.rb' - - 'spec/lib/gitlab/logger_spec.rb' - 'spec/lib/gitlab/lograge/custom_options_spec.rb' - 'spec/lib/gitlab/mail_room/authenticator_spec.rb' - 'spec/lib/gitlab/mail_room/mail_room_spec.rb' + - 'spec/lib/gitlab/mailgun/webhook_processors/failure_logger_spec.rb' - 'spec/lib/gitlab/manifest_import/manifest_spec.rb' - 'spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb' + - 'spec/lib/gitlab/memory/reports_daemon_spec.rb' + - 'spec/lib/gitlab/memory/watchdog_spec.rb' - 'spec/lib/gitlab/merge_requests/commit_message_generator_spec.rb' - 'spec/lib/gitlab/metrics/boot_time_tracker_spec.rb' - 'spec/lib/gitlab/metrics/dashboard/cache_spec.rb' - - 'spec/lib/gitlab/metrics/dashboard/finder_spec.rb' - 'spec/lib/gitlab/metrics/dashboard/importer_spec.rb' - 'spec/lib/gitlab/metrics/dashboard/importers/prometheus_metrics_spec.rb' - - 'spec/lib/gitlab/metrics/dashboard/processor_spec.rb' - 'spec/lib/gitlab/metrics/dashboard/stages/url_validator_spec.rb' - 'spec/lib/gitlab/metrics/dashboard/transformers/yml/v1/prometheus_metrics_spec.rb' - - 'spec/lib/gitlab/metrics/dashboard/url_spec.rb' - 'spec/lib/gitlab/metrics/dashboard/validator/errors_spec.rb' - 'spec/lib/gitlab/metrics/dashboard/validator/post_schema_validator_spec.rb' - 'spec/lib/gitlab/metrics/dashboard/validator_spec.rb' @@ -2388,7 +2207,6 @@ RSpec/ContextWording: - 'spec/lib/gitlab/metrics/method_call_spec.rb' - 'spec/lib/gitlab/metrics/methods_spec.rb' - 'spec/lib/gitlab/metrics/requests_rack_middleware_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/active_record_spec.rb' - 'spec/lib/gitlab/metrics/subscribers/rack_attack_spec.rb' @@ -2396,9 +2214,7 @@ RSpec/ContextWording: - 'spec/lib/gitlab/middleware/basic_health_check_spec.rb' - 'spec/lib/gitlab/middleware/compressed_json_spec.rb' - 'spec/lib/gitlab/middleware/go_spec.rb' - - 'spec/lib/gitlab/middleware/handle_malformed_strings_spec.rb' - 'spec/lib/gitlab/middleware/multipart_spec.rb' - - 'spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb' - 'spec/lib/gitlab/middleware/request_context_spec.rb' - 'spec/lib/gitlab/middleware/same_site_cookies_spec.rb' - 'spec/lib/gitlab/namespaced_session_store_spec.rb' @@ -2410,22 +2226,18 @@ RSpec/ContextWording: - 'spec/lib/gitlab/pagination/keyset/in_operator_optimization/query_builder_spec.rb' - 'spec/lib/gitlab/pagination/keyset/order_spec.rb' - 'spec/lib/gitlab/pagination/keyset/pager_spec.rb' - - 'spec/lib/gitlab/pagination/keyset/paginator_spec.rb' - 'spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb' - 'spec/lib/gitlab/pagination/offset_header_builder_spec.rb' - - 'spec/lib/gitlab/pagination/offset_pagination_spec.rb' - 'spec/lib/gitlab/patch/prependable_spec.rb' - 'spec/lib/gitlab/path_regex_spec.rb' - 'spec/lib/gitlab/performance_bar_spec.rb' - 'spec/lib/gitlab/phabricator_import/issues/importer_spec.rb' - - 'spec/lib/gitlab/phabricator_import/user_finder_spec.rb' - 'spec/lib/gitlab/popen_spec.rb' - 'spec/lib/gitlab/process_supervisor_spec.rb' - 'spec/lib/gitlab/profiler_spec.rb' - 'spec/lib/gitlab/project_authorizations_spec.rb' - 'spec/lib/gitlab/project_search_results_spec.rb' - 'spec/lib/gitlab/prometheus/adapter_spec.rb' - - 'spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb' - 'spec/lib/gitlab/prometheus/queries/knative_invocation_query_spec.rb' - 'spec/lib/gitlab/prometheus/queries/matched_metric_query_spec.rb' - 'spec/lib/gitlab/prometheus/queries/validate_query_spec.rb' @@ -2438,7 +2250,8 @@ RSpec/ContextWording: - '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/hll_spec.rb' + - 'spec/lib/gitlab/redis/duplicate_jobs_spec.rb' + - 'spec/lib/gitlab/regex_requires_app_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' @@ -2452,12 +2265,12 @@ RSpec/ContextWording: - 'spec/lib/gitlab/runtime_spec.rb' - 'spec/lib/gitlab/sanitizers/exif_spec.rb' - 'spec/lib/gitlab/sanitizers/svg_spec.rb' - - 'spec/lib/gitlab/search/params_spec.rb' - 'spec/lib/gitlab/search/sort_options_spec.rb' - 'spec/lib/gitlab/search_context/controller_concern_spec.rb' - 'spec/lib/gitlab/search_results_spec.rb' + - 'spec/lib/gitlab/service_desk_email_spec.rb' - 'spec/lib/gitlab/sidekiq_config/worker_router_spec.rb' - - 'spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb' + - 'spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb' - 'spec/lib/gitlab/sidekiq_logging/json_formatter_spec.rb' - 'spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb' - 'spec/lib/gitlab/sidekiq_middleware/admin_mode/server_spec.rb' @@ -2467,12 +2280,12 @@ RSpec/ContextWording: - 'spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb' - 'spec/lib/gitlab/sidekiq_middleware/size_limiter/compressor_spec.rb' - 'spec/lib/gitlab/sidekiq_middleware/size_limiter/validator_spec.rb' + - 'spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb' - 'spec/lib/gitlab/sidekiq_middleware/worker_context/server_spec.rb' - 'spec/lib/gitlab/sidekiq_middleware_spec.rb' - 'spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb' - 'spec/lib/gitlab/sidekiq_signals_spec.rb' - 'spec/lib/gitlab/slash_commands/command_spec.rb' - - 'spec/lib/gitlab/slash_commands/deploy_spec.rb' - 'spec/lib/gitlab/slash_commands/issue_close_spec.rb' - 'spec/lib/gitlab/slash_commands/issue_new_spec.rb' - 'spec/lib/gitlab/slash_commands/issue_search_spec.rb' @@ -2480,9 +2293,7 @@ RSpec/ContextWording: - 'spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb' - 'spec/lib/gitlab/slash_commands/presenters/issue_show_spec.rb' - 'spec/lib/gitlab/slash_commands/run_spec.rb' - - 'spec/lib/gitlab/sourcegraph_spec.rb' - 'spec/lib/gitlab/spamcheck/client_spec.rb' - - 'spec/lib/gitlab/sql/pattern_spec.rb' - 'spec/lib/gitlab/ssh_public_key_spec.rb' - 'spec/lib/gitlab/submodule_links_spec.rb' - 'spec/lib/gitlab/subscription_portal_spec.rb' @@ -2493,30 +2304,26 @@ RSpec/ContextWording: - 'spec/lib/gitlab/tracking/incident_management_spec.rb' - 'spec/lib/gitlab/tracking/snowplow_schema_validation_spec.rb' - 'spec/lib/gitlab/tracking/standard_context_spec.rb' + - 'spec/lib/gitlab/tracking_spec.rb' - 'spec/lib/gitlab/tree_summary_spec.rb' - 'spec/lib/gitlab/untrusted_regexp/ruby_syntax_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/url_sanitizer_spec.rb' - 'spec/lib/gitlab/usage/metric_definition_spec.rb' - 'spec/lib/gitlab/usage/metric_spec.rb' - 'spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb' - 'spec/lib/gitlab/usage/metrics/aggregates/sources/postgres_hll_spec.rb' - - 'spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_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/metrics/instrumentations/snowplow_configured_to_gitlab_collector_metric_spec.rb' - - 'spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb' - 'spec/lib/gitlab/usage/metrics/name_suggestion_spec.rb' - 'spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb' - 'spec/lib/gitlab/usage/service_ping/payload_keys_processor_spec.rb' - 'spec/lib/gitlab/usage/service_ping_report_spec.rb' - 'spec/lib/gitlab/usage_data/topology_spec.rb' - 'spec/lib/gitlab/usage_data_counters/ci_template_unique_counter_spec.rb' - - 'spec/lib/gitlab/usage_data_counters/editor_unique_counter_spec.rb' - 'spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb' - - 'spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb' + - 'spec/lib/gitlab/usage_data_counters/ipynb_diff_activity_counter_spec.rb' - 'spec/lib/gitlab/usage_data_counters/kubernetes_agent_counter_spec.rb' - 'spec/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter_spec.rb' - 'spec/lib/gitlab/usage_data_counters/search_counter_spec.rb' @@ -2527,8 +2334,6 @@ RSpec/ContextWording: - 'spec/lib/gitlab/utils/strong_memoize_spec.rb' - 'spec/lib/gitlab/utils/usage_data_spec.rb' - 'spec/lib/gitlab/utils_spec.rb' - - 'spec/lib/gitlab/uuid_spec.rb' - - 'spec/lib/gitlab/version_info_spec.rb' - 'spec/lib/gitlab/view/presenter/base_spec.rb' - 'spec/lib/gitlab/visibility_level_checker_spec.rb' - 'spec/lib/gitlab/visibility_level_spec.rb' @@ -2545,14 +2350,11 @@ RSpec/ContextWording: - 'spec/lib/json_web_token/token_spec.rb' - 'spec/lib/kramdown/parser/atlassian_document_format_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/object_storage/direct_upload_spec.rb' - 'spec/lib/omni_auth/strategies/jwt_spec.rb' - 'spec/lib/peek/views/bullet_detailed_spec.rb' - 'spec/lib/product_analytics/event_params_spec.rb' - - 'spec/lib/prometheus/pid_provider_spec.rb' - 'spec/lib/safe_zip/entry_spec.rb' - 'spec/lib/security/ci_configuration/container_scanning_build_action_spec.rb' - 'spec/lib/security/ci_configuration/sast_build_action_spec.rb' @@ -2571,19 +2373,17 @@ RSpec/ContextWording: - 'spec/lib/system_check/orphans/repository_check_spec.rb' - 'spec/lib/uploaded_file_spec.rb' - 'spec/lib/version_check_spec.rb' + - 'spec/mailers/devise_mailer_spec.rb' - 'spec/mailers/emails/profile_spec.rb' - 'spec/mailers/emails/projects_spec.rb' - 'spec/mailers/emails/releases_spec.rb' - 'spec/mailers/emails/service_desk_spec.rb' - 'spec/mailers/notify_spec.rb' - - 'spec/metrics_server/metrics_server_spec.rb' - 'spec/migrations/20210812013042_remove_duplicate_project_authorizations_spec.rb' - - 'spec/migrations/20220426185933_backfill_deployments_finished_at_spec.rb' - - 'spec/migrations/backfill_cadence_id_for_boards_scoped_to_iteration_spec.rb' + - 'spec/migrations/20220520040416_schedule_set_legacy_open_source_license_available_for_non_public_projects_spec.rb' + - 'spec/migrations/20220627090231_schedule_disable_legacy_open_source_license_for_inactive_public_projects_spec.rb' - 'spec/migrations/finalize_traversal_ids_background_migrations_spec.rb' - - 'spec/migrations/fix_and_backfill_project_namespaces_for_projects_with_duplicate_name_spec.rb' - 'spec/migrations/rename_services_to_integrations_spec.rb' - - 'spec/migrations/schedule_security_setting_creation_spec.rb' - 'spec/models/ability_spec.rb' - 'spec/models/active_session_spec.rb' - 'spec/models/alert_management/alert_spec.rb' @@ -2594,17 +2394,16 @@ RSpec/ContextWording: - 'spec/models/application_setting_spec.rb' - 'spec/models/approval_spec.rb' - 'spec/models/audit_event_spec.rb' + - 'spec/models/authentication_event_spec.rb' - 'spec/models/award_emoji_spec.rb' - 'spec/models/aws/role_spec.rb' - 'spec/models/badge_spec.rb' - 'spec/models/badges/project_badge_spec.rb' - 'spec/models/blob_spec.rb' - 'spec/models/blob_viewer/package_json_spec.rb' - - 'spec/models/board_spec.rb' - 'spec/models/bulk_imports/entity_spec.rb' - 'spec/models/ci/artifact_blob_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' @@ -2620,7 +2419,6 @@ RSpec/ContextWording: - 'spec/models/ci/processable_spec.rb' - 'spec/models/ci/project_mirror_spec.rb' - 'spec/models/ci/ref_spec.rb' - - 'spec/models/ci/resource_spec.rb' - 'spec/models/ci/runner_project_spec.rb' - 'spec/models/ci/runner_spec.rb' - 'spec/models/ci/running_build_spec.rb' @@ -2643,7 +2441,6 @@ RSpec/ContextWording: - 'spec/models/clusters/kubernetes_namespace_spec.rb' - 'spec/models/clusters/platforms/kubernetes_spec.rb' - 'spec/models/clusters/providers/aws_spec.rb' - - 'spec/models/commit_signatures/x509_commit_signature_spec.rb' - 'spec/models/commit_spec.rb' - 'spec/models/commit_status_spec.rb' - 'spec/models/compare_spec.rb' @@ -2651,18 +2448,15 @@ RSpec/ContextWording: - 'spec/models/concerns/awardable_spec.rb' - 'spec/models/concerns/bulk_insert_safe_spec.rb' - 'spec/models/concerns/bulk_insertable_associations_spec.rb' - - 'spec/models/concerns/cache_markdown_field_spec.rb' - 'spec/models/concerns/cacheable_attributes_spec.rb' - - 'spec/models/concerns/cascading_namespace_setting_attribute_spec.rb' - 'spec/models/concerns/ci/artifactable_spec.rb' - 'spec/models/concerns/ci/has_ref_spec.rb' - 'spec/models/concerns/ci/has_status_spec.rb' - - 'spec/models/concerns/cron_schedulable_spec.rb' - 'spec/models/concerns/cross_database_modification_spec.rb' - 'spec/models/concerns/deployment_platform_spec.rb' - - 'spec/models/concerns/group_descendant_spec.rb' - 'spec/models/concerns/ignorable_columns_spec.rb' - 'spec/models/concerns/issuable_spec.rb' + - 'spec/models/concerns/loose_index_scan_spec.rb' - 'spec/models/concerns/mentionable_spec.rb' - 'spec/models/concerns/milestoneable_spec.rb' - 'spec/models/concerns/noteable_spec.rb' @@ -2671,20 +2465,16 @@ RSpec/ContextWording: - 'spec/models/concerns/protected_ref_access_spec.rb' - 'spec/models/concerns/reactive_caching_spec.rb' - 'spec/models/concerns/resolvable_note_spec.rb' - - 'spec/models/concerns/routable_spec.rb' - - 'spec/models/concerns/schedulable_spec.rb' - 'spec/models/concerns/sensitive_serializable_hash_spec.rb' - - 'spec/models/concerns/spammable_spec.rb' - 'spec/models/concerns/token_authenticatable_spec.rb' - 'spec/models/concerns/triggerable_hooks_spec.rb' - 'spec/models/concerns/usage_statistics_spec.rb' - 'spec/models/container_expiration_policy_spec.rb' - 'spec/models/container_repository_spec.rb' - - 'spec/models/customer_relations/issue_contact_spec.rb' - 'spec/models/dependency_proxy/manifest_spec.rb' - 'spec/models/dependency_proxy/registry_spec.rb' - - 'spec/models/deploy_key_spec.rb' - 'spec/models/deploy_token_spec.rb' + - 'spec/models/deployment_cluster_spec.rb' - 'spec/models/deployment_metrics_spec.rb' - 'spec/models/deployment_spec.rb' - 'spec/models/design_management/action_spec.rb' @@ -2697,20 +2487,17 @@ RSpec/ContextWording: - 'spec/models/diff_note_spec.rb' - 'spec/models/environment_spec.rb' - 'spec/models/environment_status_spec.rb' - - 'spec/models/error_tracking/error_event_spec.rb' - 'spec/models/error_tracking/error_spec.rb' - 'spec/models/event_collection_spec.rb' - 'spec/models/event_spec.rb' - 'spec/models/experiment_spec.rb' - - 'spec/models/external_issue_spec.rb' - 'spec/models/external_pull_request_spec.rb' - - 'spec/models/fork_network_spec.rb' - 'spec/models/gpg_key_spec.rb' - 'spec/models/grafana_integration_spec.rb' - - 'spec/models/group_deploy_token_spec.rb' - 'spec/models/group_label_spec.rb' - 'spec/models/group_spec.rb' - 'spec/models/hooks/active_hook_filter_spec.rb' + - 'spec/models/hooks/project_hook_spec.rb' - 'spec/models/hooks/system_hook_spec.rb' - 'spec/models/identity_spec.rb' - 'spec/models/import_export_upload_spec.rb' @@ -2791,45 +2578,36 @@ RSpec/ContextWording: - 'spec/models/project_metrics_setting_spec.rb' - 'spec/models/project_spec.rb' - 'spec/models/project_team_spec.rb' - - 'spec/models/projects/repository_storage_move_spec.rb' - 'spec/models/prometheus_alert_event_spec.rb' - - 'spec/models/protectable_dropdown_spec.rb' - 'spec/models/protected_branch_spec.rb' - 'spec/models/raw_usage_data_spec.rb' - 'spec/models/release_highlight_spec.rb' - 'spec/models/release_spec.rb' - - 'spec/models/releases/link_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/route_spec.rb' - - 'spec/models/sent_notification_spec.rb' - 'spec/models/sentry_issue_spec.rb' - 'spec/models/snippet_input_action_spec.rb' - 'spec/models/snippet_repository_spec.rb' - 'spec/models/snippet_spec.rb' - 'spec/models/spam_log_spec.rb' - 'spec/models/ssh_host_key_spec.rb' - - 'spec/models/suggestion_spec.rb' - 'spec/models/terraform/state_spec.rb' - 'spec/models/terraform/state_version_spec.rb' - - 'spec/models/todo_spec.rb' - 'spec/models/upload_spec.rb' - 'spec/models/uploads/fog_spec.rb' - 'spec/models/uploads/local_spec.rb' - - 'spec/models/user_interacted_project_spec.rb' - 'spec/models/user_preference_spec.rb' - 'spec/models/user_spec.rb' - 'spec/models/users/in_product_marketing_email_spec.rb' - 'spec/models/wiki_page/meta_spec.rb' - 'spec/models/wiki_page/slug_spec.rb' - 'spec/models/wiki_page_spec.rb' + - 'spec/models/work_item_spec.rb' - 'spec/models/x509_certificate_spec.rb' - - 'spec/models/zoom_meeting_spec.rb' - - 'spec/policies/application_setting/term_policy_spec.rb' - 'spec/policies/application_setting_policy_spec.rb' - - 'spec/policies/base_policy_spec.rb' - 'spec/policies/board_policy_spec.rb' - 'spec/policies/ci/build_policy_spec.rb' - 'spec/policies/clusters/agents/activity_event_policy_spec.rb' @@ -2837,18 +2615,14 @@ RSpec/ContextWording: - 'spec/policies/custom_emoji_policy_spec.rb' - 'spec/policies/deploy_key_policy_spec.rb' - 'spec/policies/deploy_keys_project_policy_spec.rb' - - 'spec/policies/design_management/design_policy_spec.rb' - 'spec/policies/global_policy_spec.rb' - 'spec/policies/group_member_policy_spec.rb' - 'spec/policies/group_policy_spec.rb' - - 'spec/policies/instance_metadata_policy_spec.rb' - 'spec/policies/issuable_policy_spec.rb' - 'spec/policies/issue_policy_spec.rb' - - 'spec/policies/merge_request_policy_spec.rb' - 'spec/policies/metrics/dashboard/annotation_policy_spec.rb' - 'spec/policies/namespaces/project_namespace_policy_spec.rb' - 'spec/policies/namespaces/user_namespace_policy_spec.rb' - - 'spec/policies/note_policy_spec.rb' - 'spec/policies/personal_access_token_policy_spec.rb' - 'spec/policies/personal_snippet_policy_spec.rb' - 'spec/policies/project_policy_spec.rb' @@ -2863,12 +2637,9 @@ RSpec/ContextWording: - 'spec/presenters/clusters/cluster_presenter_spec.rb' - 'spec/presenters/commit_status_presenter_spec.rb' - 'spec/presenters/gitlab/blame_presenter_spec.rb' - - 'spec/presenters/group_member_presenter_spec.rb' - 'spec/presenters/merge_request_presenter_spec.rb' - 'spec/presenters/packages/conan/package_presenter_spec.rb' - 'spec/presenters/packages/npm/package_presenter_spec.rb' - - 'spec/presenters/packages/nuget/service_index_presenter_spec.rb' - - 'spec/presenters/project_member_presenter_spec.rb' - 'spec/presenters/project_presenter_spec.rb' - 'spec/presenters/projects/import_export/project_export_presenter_spec.rb' - 'spec/presenters/projects/security/configuration_presenter_spec.rb' @@ -2891,7 +2662,6 @@ RSpec/ContextWording: - 'spec/requests/api/award_emoji_spec.rb' - 'spec/requests/api/badges_spec.rb' - 'spec/requests/api/branches_spec.rb' - - 'spec/requests/api/broadcast_messages_spec.rb' - 'spec/requests/api/bulk_imports_spec.rb' - 'spec/requests/api/ci/job_artifacts_spec.rb' - 'spec/requests/api/ci/jobs_spec.rb' @@ -2919,10 +2689,8 @@ RSpec/ContextWording: - 'spec/requests/api/environments_spec.rb' - 'spec/requests/api/error_tracking/collector_spec.rb' - 'spec/requests/api/error_tracking/project_settings_spec.rb' - - 'spec/requests/api/events_spec.rb' - 'spec/requests/api/files_spec.rb' - 'spec/requests/api/generic_packages_spec.rb' - - 'spec/requests/api/go_proxy_spec.rb' - 'spec/requests/api/graphql/ci/runner_spec.rb' - 'spec/requests/api/graphql/ci/runners_spec.rb' - 'spec/requests/api/graphql/container_repository/container_repository_details_spec.rb' @@ -2933,6 +2701,7 @@ RSpec/ContextWording: - 'spec/requests/api/graphql/group/group_members_spec.rb' - 'spec/requests/api/graphql/group/issues_spec.rb' - 'spec/requests/api/graphql/group/milestones_spec.rb' + - 'spec/requests/api/graphql/issue/issue_spec.rb' - 'spec/requests/api/graphql/metadata_query_spec.rb' - 'spec/requests/api/graphql/metrics/dashboard/annotations_spec.rb' - 'spec/requests/api/graphql/metrics/dashboard_query_spec.rb' @@ -2942,7 +2711,6 @@ RSpec/ContextWording: - 'spec/requests/api/graphql/mutations/branches/create_spec.rb' - 'spec/requests/api/graphql/mutations/ci/runners_registration_token/reset_spec.rb' - 'spec/requests/api/graphql/mutations/commits/create_spec.rb' - - 'spec/requests/api/graphql/mutations/container_expiration_policy/update_spec.rb' - 'spec/requests/api/graphql/mutations/custom_emoji/destroy_spec.rb' - 'spec/requests/api/graphql/mutations/design_management/delete_spec.rb' - 'spec/requests/api/graphql/mutations/design_management/move_spec.rb' @@ -2951,9 +2719,7 @@ RSpec/ContextWording: - 'spec/requests/api/graphql/mutations/issues/update_spec.rb' - 'spec/requests/api/graphql/mutations/merge_requests/create_spec.rb' - 'spec/requests/api/graphql/mutations/merge_requests/request_attention_spec.rb' - - 'spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb' - 'spec/requests/api/graphql/mutations/notes/create/diff_note_spec.rb' - - 'spec/requests/api/graphql/mutations/notes/create/note_spec.rb' - 'spec/requests/api/graphql/mutations/releases/create_spec.rb' - 'spec/requests/api/graphql/mutations/releases/delete_spec.rb' - 'spec/requests/api/graphql/mutations/releases/update_spec.rb' @@ -2963,10 +2729,11 @@ RSpec/ContextWording: - 'spec/requests/api/graphql/mutations/work_items/create_spec.rb' - 'spec/requests/api/graphql/mutations/work_items/delete_task_spec.rb' - 'spec/requests/api/graphql/mutations/work_items/update_spec.rb' + - 'spec/requests/api/graphql/mutations/work_items/update_task_spec.rb' + - 'spec/requests/api/graphql/mutations/work_items/update_widgets_spec.rb' - 'spec/requests/api/graphql/namespace_query_spec.rb' - 'spec/requests/api/graphql/packages/maven_spec.rb' - 'spec/requests/api/graphql/packages/package_spec.rb' - - 'spec/requests/api/graphql/project/alert_management/alert/notes_spec.rb' - 'spec/requests/api/graphql/project/alert_management/alerts_spec.rb' - 'spec/requests/api/graphql/project/cluster_agents_spec.rb' - 'spec/requests/api/graphql/project/container_repositories_spec.rb' @@ -2981,7 +2748,6 @@ RSpec/ContextWording: - 'spec/requests/api/graphql/project/pipeline_spec.rb' - 'spec/requests/api/graphql/project/project_members_spec.rb' - 'spec/requests/api/graphql/project/release_spec.rb' - - 'spec/requests/api/graphql/project/repository_spec.rb' - 'spec/requests/api/graphql/project/terraform/state_spec.rb' - 'spec/requests/api/graphql/project/terraform/states_spec.rb' - 'spec/requests/api/graphql/project_query_spec.rb' @@ -2990,7 +2756,6 @@ RSpec/ContextWording: - 'spec/requests/api/graphql/user_query_spec.rb' - 'spec/requests/api/graphql/users_spec.rb' - 'spec/requests/api/graphql_spec.rb' - - 'spec/requests/api/group_avatar_spec.rb' - 'spec/requests/api/group_clusters_spec.rb' - 'spec/requests/api/group_labels_spec.rb' - 'spec/requests/api/group_packages_spec.rb' @@ -2998,6 +2763,7 @@ RSpec/ContextWording: - 'spec/requests/api/groups_spec.rb' - 'spec/requests/api/helm_packages_spec.rb' - 'spec/requests/api/helpers_spec.rb' + - 'spec/requests/api/integrations/jira_connect/subscriptions_spec.rb' - 'spec/requests/api/integrations_spec.rb' - 'spec/requests/api/internal/base_spec.rb' - 'spec/requests/api/internal/container_registry/migration_spec.rb' @@ -3005,6 +2771,7 @@ RSpec/ContextWording: - 'spec/requests/api/internal/lfs_spec.rb' - 'spec/requests/api/internal/mail_room_spec.rb' - 'spec/requests/api/internal/pages_spec.rb' + - 'spec/requests/api/internal/workhorse_spec.rb' - 'spec/requests/api/invitations_spec.rb' - 'spec/requests/api/issue_links_spec.rb' - 'spec/requests/api/issues/get_group_issues_spec.rb' @@ -3013,11 +2780,9 @@ RSpec/ContextWording: - 'spec/requests/api/issues/post_projects_issues_spec.rb' - 'spec/requests/api/issues/put_projects_issues_spec.rb' - 'spec/requests/api/keys_spec.rb' - - 'spec/requests/api/labels_spec.rb' - 'spec/requests/api/lint_spec.rb' - 'spec/requests/api/maven_packages_spec.rb' - 'spec/requests/api/members_spec.rb' - - 'spec/requests/api/merge_request_approvals_spec.rb' - 'spec/requests/api/merge_request_diffs_spec.rb' - 'spec/requests/api/merge_requests_spec.rb' - 'spec/requests/api/metrics/user_starred_dashboards_spec.rb' @@ -3034,8 +2799,6 @@ RSpec/ContextWording: - 'spec/requests/api/project_container_repositories_spec.rb' - 'spec/requests/api/project_events_spec.rb' - 'spec/requests/api/project_export_spec.rb' - - 'spec/requests/api/project_hooks_spec.rb' - - 'spec/requests/api/project_import_spec.rb' - 'spec/requests/api/project_packages_spec.rb' - 'spec/requests/api/project_snippets_spec.rb' - 'spec/requests/api/projects_spec.rb' @@ -3046,6 +2809,7 @@ RSpec/ContextWording: - 'spec/requests/api/rubygem_packages_spec.rb' - 'spec/requests/api/search_spec.rb' - 'spec/requests/api/settings_spec.rb' + - 'spec/requests/api/snippets_spec.rb' - 'spec/requests/api/tags_spec.rb' - 'spec/requests/api/task_completion_status_spec.rb' - 'spec/requests/api/templates_spec.rb' @@ -3053,7 +2817,6 @@ RSpec/ContextWording: - 'spec/requests/api/terraform/state_spec.rb' - 'spec/requests/api/terraform/state_version_spec.rb' - 'spec/requests/api/todos_spec.rb' - - 'spec/requests/api/topics_spec.rb' - 'spec/requests/api/usage_data_spec.rb' - 'spec/requests/api/user_counts_spec.rb' - 'spec/requests/api/users_preferences_spec.rb' @@ -3073,24 +2836,26 @@ RSpec/ContextWording: - 'spec/requests/health_controller_spec.rb' - 'spec/requests/ide_controller_spec.rb' - 'spec/requests/jira_connect/installations_controller_spec.rb' + - 'spec/requests/jira_connect/oauth_application_ids_controller_spec.rb' - 'spec/requests/jira_routing_spec.rb' - 'spec/requests/jwt_controller_spec.rb' - 'spec/requests/lfs_http_spec.rb' + - 'spec/requests/mailgun/webhooks_controller_spec.rb' - 'spec/requests/oauth_tokens_spec.rb' - 'spec/requests/openid_connect_spec.rb' - 'spec/requests/product_analytics/collector_app_attack_spec.rb' - 'spec/requests/product_analytics/collector_app_spec.rb' - 'spec/requests/projects/clusters/integrations_controller_spec.rb' - 'spec/requests/projects/commits_controller_spec.rb' + - 'spec/requests/projects/google_cloud/configuration_controller_spec.rb' + - 'spec/requests/projects/google_cloud/databases_controller_spec.rb' - 'spec/requests/projects/google_cloud/deployments_controller_spec.rb' - 'spec/requests/projects/google_cloud/gcp_regions_controller_spec.rb' - 'spec/requests/projects/google_cloud/service_accounts_controller_spec.rb' - - 'spec/requests/projects/google_cloud_controller_spec.rb' - 'spec/requests/projects/issues/discussions_spec.rb' - 'spec/requests/projects/issues_controller_spec.rb' - 'spec/requests/projects/merge_requests_controller_spec.rb' - 'spec/requests/projects/merge_requests_discussions_spec.rb' - - 'spec/requests/projects/merge_requests_spec.rb' - 'spec/requests/projects/metrics/dashboards/builder_spec.rb' - 'spec/requests/projects/releases_controller_spec.rb' - 'spec/requests/projects/settings/access_tokens_controller_spec.rb' @@ -3098,13 +2863,11 @@ RSpec/ContextWording: - 'spec/requests/projects/usage_quotas_spec.rb' - 'spec/requests/projects_controller_spec.rb' - 'spec/requests/rack_attack_global_spec.rb' - - 'spec/requests/search_controller_spec.rb' - 'spec/requests/sessions_spec.rb' - 'spec/requests/users_controller_spec.rb' - 'spec/routing/git_http_routing_spec.rb' - 'spec/routing/group_routing_spec.rb' - 'spec/routing/project_routing_spec.rb' - - 'spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb' - 'spec/rubocop/cop/gitlab/change_timezone_spec.rb' - 'spec/rubocop/cop/gitlab/const_get_inherit_false_spec.rb' - 'spec/rubocop/cop/gitlab/duplicate_spec_location_spec.rb' @@ -3127,45 +2890,31 @@ RSpec/ContextWording: - 'spec/rubocop/cop/migration/update_column_in_batches_spec.rb' - 'spec/rubocop/cop/migration/versioned_migration_class_spec.rb' - 'spec/rubocop/cop/performance/ar_exists_and_present_blank_spec.rb' - - 'spec/rubocop/cop/performance/readlines_each_spec.rb' - 'spec/rubocop/cop/qa/ambiguous_page_object_name_spec.rb' - 'spec/rubocop/cop/qa/element_with_pattern_spec.rb' - 'spec/rubocop/cop/qa/selector_usage_spec.rb' - 'spec/rubocop/cop/rspec/factory_bot/inline_association_spec.rb' - 'spec/scripts/pipeline_test_report_builder_spec.rb' - 'spec/serializers/analytics_build_entity_spec.rb' - - 'spec/serializers/blob_entity_spec.rb' - 'spec/serializers/board_serializer_spec.rb' - - 'spec/serializers/ci/job_serializer_spec.rb' - 'spec/serializers/ci/pipeline_entity_spec.rb' - 'spec/serializers/cluster_application_entity_spec.rb' - - 'spec/serializers/cluster_entity_spec.rb' - - 'spec/serializers/context_commits_diff_entity_spec.rb' + - 'spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb' - 'spec/serializers/diff_file_base_entity_spec.rb' - 'spec/serializers/diff_file_entity_spec.rb' - - 'spec/serializers/diff_file_metadata_entity_spec.rb' - 'spec/serializers/diffs_entity_spec.rb' - - 'spec/serializers/diffs_metadata_entity_spec.rb' - 'spec/serializers/environment_entity_spec.rb' - 'spec/serializers/environment_serializer_spec.rb' - 'spec/serializers/group_child_entity_spec.rb' - - 'spec/serializers/group_child_serializer_spec.rb' - 'spec/serializers/group_link/group_group_link_entity_spec.rb' - - 'spec/serializers/integrations/project_entity_spec.rb' - 'spec/serializers/issue_serializer_spec.rb' - - 'spec/serializers/issue_sidebar_basic_entity_spec.rb' - 'spec/serializers/member_entity_spec.rb' - 'spec/serializers/member_serializer_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_serializer_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/paginated_diff_entity_spec.rb' - 'spec/serializers/pipeline_details_entity_spec.rb' - - 'spec/serializers/stage_entity_spec.rb' - 'spec/serializers/user_serializer_spec.rb' - 'spec/services/access_token_validation_service_spec.rb' - 'spec/services/alert_management/alerts/update_service_spec.rb' @@ -3178,7 +2927,6 @@ RSpec/ContextWording: - 'spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb' - 'spec/services/boards/issues/list_service_spec.rb' - 'spec/services/boards/issues/move_service_spec.rb' - - 'spec/services/boards/lists/update_service_spec.rb' - 'spec/services/branches/delete_merged_service_spec.rb' - 'spec/services/branches/validate_new_service_spec.rb' - 'spec/services/bulk_create_integration_service_spec.rb' @@ -3186,7 +2934,6 @@ RSpec/ContextWording: - 'spec/services/ci/after_requeue_job_service_spec.rb' - 'spec/services/ci/append_build_trace_service_spec.rb' - 'spec/services/ci/archive_trace_service_spec.rb' - - 'spec/services/ci/build_report_result_service_spec.rb' - 'spec/services/ci/compare_test_reports_service_spec.rb' - 'spec/services/ci/create_downstream_pipeline_service_spec.rb' - 'spec/services/ci/create_pipeline_service/cache_spec.rb' @@ -3209,14 +2956,11 @@ RSpec/ContextWording: - 'spec/services/ci/job_artifacts/update_unknown_locked_status_service_spec.rb' - 'spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb' - 'spec/services/ci/pipelines/add_job_service_spec.rb' - - 'spec/services/ci/play_build_service_spec.rb' - 'spec/services/ci/prepare_build_service_spec.rb' - - 'spec/services/ci/process_sync_events_service_spec.rb' - 'spec/services/ci/prometheus_metrics/observe_histograms_service_spec.rb' - 'spec/services/ci/register_job_service_spec.rb' - 'spec/services/ci/retry_job_service_spec.rb' - - 'spec/services/ci/stuck_builds/drop_pending_service_spec.rb' - - 'spec/services/ci/stuck_builds/drop_scheduled_service_spec.rb' + - 'spec/services/ci/runners/reconcile_existing_runner_versions_service_spec.rb' - 'spec/services/ci/update_build_queue_service_spec.rb' - 'spec/services/ci/update_pending_build_service_spec.rb' - 'spec/services/clusters/agent_tokens/track_usage_service_spec.rb' @@ -3253,18 +2997,16 @@ RSpec/ContextWording: - 'spec/services/dependency_proxy/find_cached_manifest_service_spec.rb' - 'spec/services/dependency_proxy/head_manifest_service_spec.rb' - 'spec/services/dependency_proxy/request_token_service_spec.rb' - - 'spec/services/deployments/older_deployments_drop_service_spec.rb' - 'spec/services/deployments/update_environment_service_spec.rb' - 'spec/services/design_management/delete_designs_service_spec.rb' - 'spec/services/design_management/generate_image_versions_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/capture_diff_note_positions_service_spec.rb' - - 'spec/services/discussions/resolve_service_spec.rb' - 'spec/services/draft_notes/create_service_spec.rb' - 'spec/services/draft_notes/destroy_service_spec.rb' - 'spec/services/draft_notes/publish_service_spec.rb' - 'spec/services/environments/schedule_to_delete_review_apps_service_spec.rb' + - 'spec/services/environments/stop_service_spec.rb' - 'spec/services/error_tracking/collect_error_service_spec.rb' - 'spec/services/error_tracking/list_issues_service_spec.rb' - 'spec/services/error_tracking/list_projects_service_spec.rb' @@ -3295,12 +3037,13 @@ RSpec/ContextWording: - 'spec/services/ide/schemas_config_service_spec.rb' - 'spec/services/ide/terminal_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/file_acquisition_strategies/remote_file_s3_spec.rb' - 'spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb' - 'spec/services/incident_management/incidents/create_service_spec.rb' - 'spec/services/incident_management/issuable_escalation_statuses/create_service_spec.rb' - - 'spec/services/integrations/propagate_service_spec.rb' + - 'spec/services/incident_management/timeline_events/destroy_service_spec.rb' - 'spec/services/integrations/test/project_service_spec.rb' - 'spec/services/issuable/common_system_notes_service_spec.rb' - 'spec/services/issue_links/list_service_spec.rb' @@ -3317,17 +3060,17 @@ RSpec/ContextWording: - 'spec/services/issues/set_crm_contacts_service_spec.rb' - 'spec/services/issues/update_service_spec.rb' - 'spec/services/issues/zoom_link_service_spec.rb' - - 'spec/services/jira_connect_installations/destroy_service_spec.rb' - 'spec/services/jira_connect_subscriptions/create_service_spec.rb' - 'spec/services/keys/create_service_spec.rb' - 'spec/services/keys/expiry_notification_service_spec.rb' - - 'spec/services/labels/create_service_spec.rb' - - 'spec/services/lfs/file_transformer_spec.rb' - 'spec/services/lfs/locks_finder_service_spec.rb' - 'spec/services/lfs/push_service_spec.rb' - 'spec/services/lfs/unlock_file_service_spec.rb' - 'spec/services/members/approve_access_request_service_spec.rb' - 'spec/services/members/destroy_service_spec.rb' + - 'spec/services/members/groups/creator_service_spec.rb' + - 'spec/services/members/projects/creator_service_spec.rb' + - 'spec/services/members/update_service_spec.rb' - 'spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb' - 'spec/services/merge_requests/after_create_service_spec.rb' - 'spec/services/merge_requests/approval_service_spec.rb' @@ -3351,7 +3094,6 @@ RSpec/ContextWording: - 'spec/services/merge_requests/refresh_service_spec.rb' - 'spec/services/merge_requests/reload_diffs_service_spec.rb' - 'spec/services/merge_requests/reopen_service_spec.rb' - - 'spec/services/merge_requests/retarget_chain_service_spec.rb' - 'spec/services/merge_requests/squash_service_spec.rb' - 'spec/services/merge_requests/toggle_attention_requested_service_spec.rb' - 'spec/services/merge_requests/update_assignees_service_spec.rb' @@ -3379,7 +3121,6 @@ RSpec/ContextWording: - 'spec/services/milestones/promote_service_spec.rb' - 'spec/services/milestones/update_service_spec.rb' - 'spec/services/namespace_settings/update_service_spec.rb' - - 'spec/services/namespaces/in_product_marketing_emails_service_spec.rb' - 'spec/services/note_summary_spec.rb' - 'spec/services/notes/build_service_spec.rb' - 'spec/services/notes/copy_service_spec.rb' @@ -3388,8 +3129,8 @@ RSpec/ContextWording: - 'spec/services/notes/quick_actions_service_spec.rb' - 'spec/services/notes/update_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/cleanup/execute_policy_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/create_package_service_spec.rb' @@ -3404,7 +3145,6 @@ RSpec/ContextWording: - 'spec/services/packages/helm/process_file_service_spec.rb' - 'spec/services/packages/maven/create_package_service_spec.rb' - 'spec/services/packages/maven/find_or_create_package_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/maven/metadata/sync_service_spec.rb' - 'spec/services/packages/npm/create_package_service_spec.rb' @@ -3450,7 +3190,6 @@ RSpec/ContextWording: - 'spec/services/projects/record_target_platforms_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_remote_mirror_service_spec.rb' - 'spec/services/projects/update_repository_storage_service_spec.rb' - 'spec/services/projects/update_service_spec.rb' @@ -3458,7 +3197,6 @@ RSpec/ContextWording: - 'spec/services/prometheus/proxy_variable_substitution_service_spec.rb' - 'spec/services/protected_tags/create_service_spec.rb' - 'spec/services/quick_actions/interpret_service_spec.rb' - - 'spec/services/quick_actions/target_service_spec.rb' - 'spec/services/releases/create_service_spec.rb' - 'spec/services/releases/update_service_spec.rb' - 'spec/services/repositories/destroy_service_spec.rb' @@ -3486,12 +3224,13 @@ RSpec/ContextWording: - 'spec/services/system_notes/merge_requests_service_spec.rb' - 'spec/services/tasks_to_be_done/base_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/test_hooks/project_service_spec.rb' - 'spec/services/test_hooks/system_service_spec.rb' - 'spec/services/todo_service_spec.rb' - 'spec/services/todos/destroy/entity_leave_service_spec.rb' - 'spec/services/two_factor/destroy_service_spec.rb' - - 'spec/services/upload_service_spec.rb' - 'spec/services/user_preferences/update_service_spec.rb' - 'spec/services/users/activity_service_spec.rb' - 'spec/services/users/approve_service_spec.rb' @@ -3514,10 +3253,9 @@ RSpec/ContextWording: - 'spec/services/wiki_pages/event_create_service_spec.rb' - 'spec/services/wikis/create_attachment_service_spec.rb' - 'spec/services/work_items/create_service_spec.rb' - - 'spec/services/x509_certificate_revoke_service_spec.rb' + - 'spec/services/work_items/parent_links/create_service_spec.rb' - 'spec/support/banzai/reference_filter_shared_examples.rb' - 'spec/support/prometheus/additional_metrics_shared_examples.rb' - - 'spec/support/redis/redis_new_instance_shared_examples.rb' - 'spec/support/redis/redis_shared_examples.rb' - 'spec/support/services/clusters/create_service_shared.rb' - 'spec/support/services/deploy_token_shared_examples.rb' @@ -3546,6 +3284,7 @@ RSpec/ContextWording: - 'spec/support/shared_contexts/finders/merge_requests_finder_shared_contexts.rb' - 'spec/support/shared_contexts/finders/packages/npm/package_finder_shared_context.rb' - 'spec/support/shared_contexts/finders/users_finder_shared_contexts.rb' + - 'spec/support/shared_contexts/finders/work_items_finder_shared_contexts.rb' - 'spec/support/shared_contexts/fixtures/analytics_shared_context.rb' - 'spec/support/shared_contexts/graphql/requests/packages_shared_context.rb' - 'spec/support/shared_contexts/graphql/resolvers/runners_resolver_shared_context.rb' @@ -3569,6 +3308,7 @@ RSpec/ContextWording: - 'spec/support/shared_contexts/policies/group_policy_shared_context.rb' - 'spec/support/shared_contexts/policies/project_policy_shared_context.rb' - 'spec/support/shared_contexts/policies/project_policy_table_shared_context.rb' + - 'spec/support/shared_contexts/project_features_shared_context.rb' - 'spec/support/shared_contexts/prometheus/alert_shared_context.rb' - 'spec/support/shared_contexts/rack_attack_shared_context.rb' - 'spec/support/shared_contexts/read_ci_configuration_shared_context.rb' @@ -3592,18 +3332,14 @@ RSpec/ContextWording: - 'spec/support/shared_contexts/unique_ip_check_shared_context.rb' - 'spec/support/shared_contexts/upload_type_check_shared_context.rb' - 'spec/support/shared_contexts/url_shared_context.rb' - - 'spec/support/shared_examples/banzai/filters/inline_embeds_shared_examples.rb' - 'spec/support/shared_examples/banzai/filters/inline_metrics_redactor_shared_examples.rb' - 'spec/support/shared_examples/boards/multiple_issue_boards_shared_examples.rb' - 'spec/support/shared_examples/controllers/clusters_controller_shared_examples.rb' - 'spec/support/shared_examples/controllers/githubish_import_controller_shared_examples.rb' - 'spec/support/shared_examples/controllers/hotlink_interceptor_shared_examples.rb' - 'spec/support/shared_examples/controllers/issuables_list_metadata_shared_examples.rb' - - 'spec/support/shared_examples/controllers/milestone_tabs_shared_examples.rb' - - 'spec/support/shared_examples/controllers/repository_lfs_file_load_shared_examples.rb' - 'spec/support/shared_examples/controllers/snippet_blob_shared_examples.rb' - 'spec/support/shared_examples/controllers/uploads_actions_shared_examples.rb' - - 'spec/support/shared_examples/controllers/variables_shared_examples.rb' - 'spec/support/shared_examples/controllers/wiki_actions_shared_examples.rb' - 'spec/support/shared_examples/csp.rb' - 'spec/support/shared_examples/features/access_tokens_shared_examples.rb' @@ -3622,6 +3358,7 @@ RSpec/ContextWording: - 'spec/support/shared_examples/features/wiki/user_views_wiki_page_shared_examples.rb' - 'spec/support/shared_examples/features/wiki/user_views_wiki_pages_shared_examples.rb' - 'spec/support/shared_examples/finders/assignees_filter_shared_examples.rb' + - 'spec/support/shared_examples/finders/issues_finder_shared_examples.rb' - 'spec/support/shared_examples/finders/packages/debian/distributions_finder_shared_examples.rb' - 'spec/support/shared_examples/finders/packages_shared_examples.rb' - 'spec/support/shared_examples/finders/snippet_visibility_shared_examples.rb' @@ -3632,14 +3369,13 @@ RSpec/ContextWording: - 'spec/support/shared_examples/graphql/notes_on_noteables_shared_examples.rb' - 'spec/support/shared_examples/graphql/resolvers/packages_resolvers_shared_examples.rb' - 'spec/support/shared_examples/graphql/resolves_issuable_shared_examples.rb' - - 'spec/support/shared_examples/graphql/spam_protection_shared_examples.rb' + - 'spec/support/shared_examples/graphql/sorted_paginated_query_shared_examples.rb' - 'spec/support/shared_examples/helm_commands_shared_examples.rb' - 'spec/support/shared_examples/helpers/issuable_description_templates_shared_examples.rb' - 'spec/support/shared_examples/lib/api/internal_base_shared_examples.rb' - 'spec/support/shared_examples/lib/cache_helpers_shared_examples.rb' - 'spec/support/shared_examples/lib/gitlab/ci/ci_trace_shared_examples.rb' - - 'spec/support/shared_examples/lib/gitlab/config/inheritable_shared_examples.rb' - - 'spec/support/shared_examples/lib/gitlab/import_export/relation_factory_shared_examples.rb' + - 'spec/support/shared_examples/lib/gitlab/database/reestablished_connection_stack_shared_examples.rb' - 'spec/support/shared_examples/lib/gitlab/middleware/multipart_shared_examples.rb' - 'spec/support/shared_examples/lib/gitlab/middleware/read_only_gitlab_instance_shared_examples.rb' - 'spec/support/shared_examples/lib/gitlab/search_confidential_filter_shared_examples.rb' @@ -3663,6 +3399,7 @@ RSpec/ContextWording: - 'spec/support/shared_examples/models/cycle_analytics_stage_shared_examples.rb' - 'spec/support/shared_examples/models/diff_positionable_note_shared_examples.rb' - 'spec/support/shared_examples/models/integrations/base_slash_commands_shared_examples.rb' + - 'spec/support/shared_examples/models/members_notifications_shared_example.rb' - 'spec/support/shared_examples/models/mentionable_shared_examples.rb' - 'spec/support/shared_examples/models/packages/debian/component_file_shared_example.rb' - 'spec/support/shared_examples/models/project_latest_successful_build_for_shared_examples.rb' @@ -3680,7 +3417,6 @@ RSpec/ContextWording: - 'spec/support/shared_examples/requests/api/composer_packages_shared_examples.rb' - 'spec/support/shared_examples/requests/api/conan_packages_shared_examples.rb' - 'spec/support/shared_examples/requests/api/container_repositories_shared_examples.rb' - - 'spec/support/shared_examples/requests/api/debian_common_shared_examples.rb' - 'spec/support/shared_examples/requests/api/debian_packages_shared_examples.rb' - 'spec/support/shared_examples/requests/api/discussions_shared_examples.rb' - 'spec/support/shared_examples/requests/api/graphql/mutations/boards/update_list_shared_examples.rb' @@ -3688,6 +3424,7 @@ RSpec/ContextWording: - 'spec/support/shared_examples/requests/api/graphql/packages/group_and_project_packages_list_shared_examples.rb' - 'spec/support/shared_examples/requests/api/graphql/read_only_instance_shared_examples.rb' - 'spec/support/shared_examples/requests/api/helm_packages_shared_examples.rb' + - 'spec/support/shared_examples/requests/api/hooks_shared_examples.rb' - 'spec/support/shared_examples/requests/api/issues_shared_examples.rb' - 'spec/support/shared_examples/requests/api/multiple_and_scoped_issue_boards_shared_examples.rb' - 'spec/support/shared_examples/requests/api/notes_shared_examples.rb' @@ -3696,17 +3433,12 @@ RSpec/ContextWording: - 'spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb' - 'spec/support/shared_examples/requests/api/packages_shared_examples.rb' - 'spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb' - - 'spec/support/shared_examples/requests/api/read_user_shared_examples.rb' - 'spec/support/shared_examples/requests/api/repositories_shared_context.rb' - 'spec/support/shared_examples/requests/api/repository_storage_moves_shared_examples.rb' - - 'spec/support/shared_examples/requests/api/rubygems_packages_shared_examples.rb' - - 'spec/support/shared_examples/requests/api/status_shared_examples.rb' - - 'spec/support/shared_examples/requests/api/terraform/modules/v1/packages_shared_examples.rb' - 'spec/support/shared_examples/requests/clusters/certificate_based_clusters_feature_flag_shared_examples.rb' - 'spec/support/shared_examples/requests/lfs_http_shared_examples.rb' - 'spec/support/shared_examples/requests/releases_shared_examples.rb' - 'spec/support/shared_examples/routing/git_http_routing_shared_examples.rb' - - 'spec/support/shared_examples/sends_git_audit_streaming_event_shared_examples.rb' - 'spec/support/shared_examples/serializers/diff_file_entity_shared_examples.rb' - 'spec/support/shared_examples/serializers/note_entity_shared_examples.rb' - 'spec/support/shared_examples/services/alert_management/alert_processing/alert_firing_shared_examples.rb' @@ -3726,42 +3458,37 @@ RSpec/ContextWording: - 'spec/support/shared_examples/services/repositories/housekeeping_shared_examples.rb' - 'spec/support/shared_examples/services/schedule_bulk_repository_shard_moves_shared_examples.rb' - 'spec/support/shared_examples/services/security/ci_configuration/create_service_shared_examples.rb' - - 'spec/support/shared_examples/services/updating_mentions_shared_examples.rb' - 'spec/support/shared_examples/services/wiki_pages/create_service_shared_examples.rb' - 'spec/support/shared_examples/services/wiki_pages/update_service_shared_examples.rb' - 'spec/support/shared_examples/services/wikis/create_attachment_service_shared_examples.rb' - - 'spec/support/shared_examples/snippet_blob_shared_examples.rb' - 'spec/support/shared_examples/uploaders/object_storage_shared_examples.rb' - 'spec/support/shared_examples/validators/url_validator_shared_examples.rb' - 'spec/support/shared_examples/views/pipeline_status_changes_email.rb' + - 'spec/support/shared_examples/workers/batched_background_migration_worker_shared_examples.rb' - 'spec/support/shared_examples/workers/concerns/git_garbage_collect_methods_shared_examples.rb' - 'spec/support/shared_examples/workers/project_export_shared_examples.rb' - 'spec/support_specs/database/multiple_databases_spec.rb' - 'spec/support_specs/helpers/migrations_helpers_spec.rb' - 'spec/support_specs/helpers/stub_feature_flags_spec.rb' + - 'spec/support_specs/helpers/stub_method_calls_spec.rb' - 'spec/tasks/cache/clear/redis_spec.rb' - 'spec/tasks/dev_rake_spec.rb' - 'spec/tasks/gettext_rake_spec.rb' - - 'spec/tasks/gitlab/artifacts/migrate_rake_spec.rb' - 'spec/tasks/gitlab/backup_rake_spec.rb' - 'spec/tasks/gitlab/cleanup_rake_spec.rb' + - 'spec/tasks/gitlab/db/lock_writes_rake_spec.rb' - 'spec/tasks/gitlab/db/validate_config_rake_spec.rb' - 'spec/tasks/gitlab/db_rake_spec.rb' - 'spec/tasks/gitlab/dependency_proxy/migrate_rake_spec.rb' - 'spec/tasks/gitlab/gitaly_rake_spec.rb' - 'spec/tasks/gitlab/lfs/migrate_rake_spec.rb' - 'spec/tasks/gitlab/packages/migrate_rake_spec.rb' - - 'spec/tasks/gitlab/pages_rake_spec.rb' - 'spec/tasks/gitlab/storage_rake_spec.rb' - 'spec/tasks/gitlab/task_helpers_spec.rb' - 'spec/tasks/gitlab/terraform/migrate_rake_spec.rb' - - 'spec/tasks/gitlab/uploads/migrate_rake_spec.rb' - - 'spec/tasks/gitlab/user_management_rake_spec.rb' - 'spec/tasks/gitlab/workhorse_rake_spec.rb' - - 'spec/tooling/danger/feature_flag_spec.rb' - 'spec/tooling/danger/project_helper_spec.rb' - 'spec/tooling/lib/tooling/parallel_rspec_runner_spec.rb' - - 'spec/tooling/rspec_flaky/listener_spec.rb' - 'spec/uploaders/attachment_uploader_spec.rb' - 'spec/uploaders/avatar_uploader_spec.rb' - 'spec/uploaders/content_type_whitelist_spec.rb' @@ -3782,7 +3509,6 @@ RSpec/ContextWording: - 'spec/uploaders/packages/package_file_uploader_spec.rb' - 'spec/uploaders/personal_file_uploader_spec.rb' - 'spec/uploaders/terraform/state_uploader_spec.rb' - - 'spec/uploaders/workers/object_storage/background_move_worker_spec.rb' - 'spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb' - 'spec/validators/addressable_url_validator_spec.rb' - 'spec/validators/array_members_validator_spec.rb' @@ -3817,15 +3543,13 @@ RSpec/ContextWording: - 'spec/views/projects/hooks/edit.html.haml_spec.rb' - 'spec/views/projects/hooks/index.html.haml_spec.rb' - 'spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb' + - 'spec/views/projects/settings/integrations/edit.html.haml_spec.rb' - 'spec/views/projects/settings/operations/show.html.haml_spec.rb' - 'spec/views/projects/tags/index.html.haml_spec.rb' - - 'spec/views/projects/tree/show.html.haml_spec.rb' - 'spec/views/search/_results.html.haml_spec.rb' - 'spec/views/search/show.html.haml_spec.rb' - - 'spec/views/shared/access_tokens/_table.html.haml_spec.rb' - 'spec/views/shared/issuable/_sidebar.html.haml_spec.rb' - 'spec/views/shared/milestones/_issuable.html.haml_spec.rb' - - 'spec/views/shared/projects/_list.html.haml_spec.rb' - 'spec/views/shared/snippets/_snippet.html.haml_spec.rb' - 'spec/views/shared/wikis/_sidebar.html.haml_spec.rb' - 'spec/workers/admin_email_worker_spec.rb' @@ -3834,12 +3558,12 @@ RSpec/ContextWording: - 'spec/workers/authorized_project_update/project_recalculate_per_user_worker_spec.rb' - 'spec/workers/authorized_project_update/project_recalculate_worker_spec.rb' - 'spec/workers/authorized_project_update/user_refresh_over_user_range_worker_spec.rb' - - 'spec/workers/bulk_imports/entity_worker_spec.rb' - 'spec/workers/ci/build_prepare_worker_spec.rb' - 'spec/workers/cleanup_container_repository_worker_spec.rb' - 'spec/workers/cluster_update_app_worker_spec.rb' - 'spec/workers/clusters/agents/delete_expired_events_worker_spec.rb' - 'spec/workers/concerns/application_worker_spec.rb' + - 'spec/workers/concerns/waitable_worker_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' @@ -3852,6 +3576,7 @@ RSpec/ContextWording: - 'spec/workers/deployments/update_environment_worker_spec.rb' - 'spec/workers/design_management/new_version_worker_spec.rb' - 'spec/workers/every_sidekiq_worker_spec.rb' + - 'spec/workers/gitlab_service_ping_worker_spec.rb' - 'spec/workers/group_import_worker_spec.rb' - 'spec/workers/incident_management/process_alert_worker_v2_spec.rb' - 'spec/workers/integrations/create_external_cross_reference_worker_spec.rb' @@ -3868,11 +3593,11 @@ RSpec/ContextWording: - 'spec/workers/project_export_worker_spec.rb' - 'spec/workers/projects/git_garbage_collect_worker_spec.rb' - 'spec/workers/projects/post_creation_worker_spec.rb' - - 'spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb' - 'spec/workers/purge_dependency_proxy_cache_worker_spec.rb' - 'spec/workers/remove_expired_group_links_worker_spec.rb' - 'spec/workers/remove_expired_members_worker_spec.rb' - 'spec/workers/remove_unaccepted_member_invites_worker_spec.rb' - 'spec/workers/repository_fork_worker_spec.rb' - 'spec/workers/stuck_merge_jobs_worker_spec.rb' + - 'spec/workers/terraform/states/destroy_worker_spec.rb' - 'spec/workers/x509_issuer_crl_check_worker_spec.rb' diff --git a/app/assets/javascripts/repository/constants.js b/app/assets/javascripts/repository/constants.js index 0e80f306638..77d3a517d28 100644 --- a/app/assets/javascripts/repository/constants.js +++ b/app/assets/javascripts/repository/constants.js @@ -94,7 +94,6 @@ export const LFS_STORAGE = 'lfs'; */ export const LEGACY_FILE_TYPES = [ 'gemfile', - 'gemspec', 'composer_json', 'podfile', 'podspec', diff --git a/app/assets/javascripts/vue_shared/components/source_viewer/constants.js b/app/assets/javascripts/vue_shared/components/source_viewer/constants.js index 3ac35abcf3a..cc930d67fa4 100644 --- a/app/assets/javascripts/vue_shared/components/source_viewer/constants.js +++ b/app/assets/javascripts/vue_shared/components/source_viewer/constants.js @@ -147,3 +147,4 @@ export const HLJS_COMMENT_SELECTOR = 'hljs-comment'; export const HLJS_ON_AFTER_HIGHLIGHT = 'after:highlight'; export const NPM_URL = 'https://npmjs.com/package'; +export const GEM_URL = 'https://rubygems.org/gems'; diff --git a/app/assets/javascripts/vue_shared/components/source_viewer/plugins/link_dependencies.js b/app/assets/javascripts/vue_shared/components/source_viewer/plugins/link_dependencies.js index 5b7650c56ae..d957990fe7f 100644 --- a/app/assets/javascripts/vue_shared/components/source_viewer/plugins/link_dependencies.js +++ b/app/assets/javascripts/vue_shared/components/source_viewer/plugins/link_dependencies.js @@ -1,7 +1,9 @@ import packageJsonLinker from './utils/package_json_linker'; +import gemspecLinker from './utils/gemspec_linker'; const DEPENDENCY_LINKERS = { package_json: packageJsonLinker, + gemspec: gemspecLinker, }; /** diff --git a/app/assets/javascripts/vue_shared/components/source_viewer/plugins/utils/dependency_linker_util.js b/app/assets/javascripts/vue_shared/components/source_viewer/plugins/utils/dependency_linker_util.js index 56ad55ef553..0faf63db8a6 100644 --- a/app/assets/javascripts/vue_shared/components/source_viewer/plugins/utils/dependency_linker_util.js +++ b/app/assets/javascripts/vue_shared/components/source_viewer/plugins/utils/dependency_linker_util.js @@ -12,4 +12,5 @@ export const createLink = (href, innerText) => { return link.outerHTML; }; -export const generateHLJSOpenTag = (type) => `<span class="hljs-${escape(type)}">"`; +export const generateHLJSOpenTag = (type, delimiter = '"') => + `<span class="hljs-${escape(type)}">${delimiter}`; diff --git a/app/assets/javascripts/vue_shared/components/source_viewer/plugins/utils/gemspec_linker.js b/app/assets/javascripts/vue_shared/components/source_viewer/plugins/utils/gemspec_linker.js new file mode 100644 index 00000000000..35de8fd13d6 --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/source_viewer/plugins/utils/gemspec_linker.js @@ -0,0 +1,39 @@ +import { joinPaths } from '~/lib/utils/url_utility'; +import { GEM_URL } from '../../constants'; +import { createLink, generateHLJSOpenTag } from './dependency_linker_util'; + +const methodRegex = '.*add_dependency.*|.*add_runtime_dependency.*|.*add_development_dependency.*'; +const openTagRegex = generateHLJSOpenTag('string', '(&.*;)'); +const closeTagRegex = '&.*</span>'; + +const DEPENDENCY_REGEX = new RegExp( + /* + * Detects gemspec dependencies inside of content that is highlighted by Highlight.js + * Example: s.add_dependency(<span class="hljs-string">'rugged'</span>, <span class="hljs-string">'~> 0.24.0'</span>) + * + * Group 1 (method) : s.add_dependency( + * Group 2 (delimiter) : ' + * Group 3 (packageName): rugged + * Group 4 (closeTag) : '</span> + * Group 5 (rest) : , <span class="hljs-string">'~> 0.24.0'</span>) + */ + `(${methodRegex})${openTagRegex}(.*)(${closeTagRegex})(.*${closeTagRegex})`, + 'gm', +); + +const handleReplace = (method, delimiter, packageName, closeTag, rest) => { + // eslint-disable-next-line @gitlab/require-i18n-strings + const openTag = generateHLJSOpenTag('string linked', delimiter); + const href = joinPaths(GEM_URL, packageName); + const packageLink = createLink(href, packageName); + + return `${method}${openTag}${packageLink}${closeTag}${rest}`; +}; + +export default (result) => { + return result.value.replace( + DEPENDENCY_REGEX, + (_, method, delimiter, packageName, closeTag, rest) => + handleReplace(method, delimiter, packageName, closeTag, rest), + ); +}; diff --git a/app/assets/javascripts/work_items/graphql/create_work_item.mutation.graphql b/app/assets/javascripts/work_items/graphql/create_work_item.mutation.graphql index 7f9aaf43068..0a406187a09 100644 --- a/app/assets/javascripts/work_items/graphql/create_work_item.mutation.graphql +++ b/app/assets/javascripts/work_items/graphql/create_work_item.mutation.graphql @@ -1,4 +1,4 @@ -#import "./work_item.fragment.graphql" +#import "ee_else_ce/work_items/graphql/work_item.fragment.graphql" mutation createWorkItem($input: WorkItemCreateInput!) { workItemCreate(input: $input) { diff --git a/app/assets/javascripts/work_items/graphql/create_work_item_from_task.mutation.graphql b/app/assets/javascripts/work_items/graphql/create_work_item_from_task.mutation.graphql index ccfe62cc585..1f98cd4fa2b 100644 --- a/app/assets/javascripts/work_items/graphql/create_work_item_from_task.mutation.graphql +++ b/app/assets/javascripts/work_items/graphql/create_work_item_from_task.mutation.graphql @@ -1,4 +1,4 @@ -#import "./work_item.fragment.graphql" +#import "ee_else_ce/work_items/graphql/work_item.fragment.graphql" mutation workItemCreateFromTask($input: WorkItemCreateFromTaskInput!) { workItemCreateFromTask(input: $input) { diff --git a/app/assets/javascripts/work_items/graphql/local_update_work_item.mutation.graphql b/app/assets/javascripts/work_items/graphql/local_update_work_item.mutation.graphql index 43c92cf89ec..790b8e60b6a 100644 --- a/app/assets/javascripts/work_items/graphql/local_update_work_item.mutation.graphql +++ b/app/assets/javascripts/work_items/graphql/local_update_work_item.mutation.graphql @@ -1,4 +1,4 @@ -#import "./work_item.fragment.graphql" +#import "ee_else_ce/work_items/graphql/work_item.fragment.graphql" mutation localUpdateWorkItem($input: LocalUpdateWorkItemInput) { localUpdateWorkItem(input: $input) @client { diff --git a/app/assets/javascripts/work_items/graphql/update_work_item.mutation.graphql b/app/assets/javascripts/work_items/graphql/update_work_item.mutation.graphql index 25eb8099251..0a887fcfc00 100644 --- a/app/assets/javascripts/work_items/graphql/update_work_item.mutation.graphql +++ b/app/assets/javascripts/work_items/graphql/update_work_item.mutation.graphql @@ -1,4 +1,4 @@ -#import "./work_item.fragment.graphql" +#import "ee_else_ce/work_items/graphql/work_item.fragment.graphql" mutation workItemUpdate($input: WorkItemUpdateInput!) { workItemUpdate(input: $input) { diff --git a/app/assets/javascripts/work_items/graphql/update_work_item_task.mutation.graphql b/app/assets/javascripts/work_items/graphql/update_work_item_task.mutation.graphql index ad861a60d15..fad5a9fa5bc 100644 --- a/app/assets/javascripts/work_items/graphql/update_work_item_task.mutation.graphql +++ b/app/assets/javascripts/work_items/graphql/update_work_item_task.mutation.graphql @@ -1,4 +1,4 @@ -#import "./work_item.fragment.graphql" +#import "ee_else_ce/work_items/graphql/work_item.fragment.graphql" mutation workItemUpdateTask($input: WorkItemUpdateTaskInput!) { workItemUpdate: workItemUpdateTask(input: $input) { diff --git a/app/assets/javascripts/work_items/graphql/update_work_item_widgets.mutation.graphql b/app/assets/javascripts/work_items/graphql/update_work_item_widgets.mutation.graphql index 148b340b439..6a94c96b347 100644 --- a/app/assets/javascripts/work_items/graphql/update_work_item_widgets.mutation.graphql +++ b/app/assets/javascripts/work_items/graphql/update_work_item_widgets.mutation.graphql @@ -1,4 +1,4 @@ -#import "./work_item.fragment.graphql" +#import "ee_else_ce/work_items/graphql/work_item.fragment.graphql" mutation workItemUpdateWidgets($input: WorkItemUpdateWidgetsInput!) { workItemUpdateWidgets(input: $input) { diff --git a/app/assets/javascripts/work_items/graphql/work_item.fragment.graphql b/app/assets/javascripts/work_items/graphql/work_item.fragment.graphql index abed1cb134e..7d08cbaca48 100644 --- a/app/assets/javascripts/work_items/graphql/work_item.fragment.graphql +++ b/app/assets/javascripts/work_items/graphql/work_item.fragment.graphql @@ -28,10 +28,6 @@ fragment WorkItem on WorkItem { } } } - ... on WorkItemWidgetWeight { - type - weight - } ... on WorkItemWidgetHierarchy { type parent { @@ -40,10 +36,8 @@ fragment WorkItem on WorkItem { title } children { - edges { - node { - id - } + nodes { + id } } } diff --git a/app/assets/javascripts/work_items/graphql/work_item.query.graphql b/app/assets/javascripts/work_items/graphql/work_item.query.graphql index 276061af193..a9f7b714551 100644 --- a/app/assets/javascripts/work_items/graphql/work_item.query.graphql +++ b/app/assets/javascripts/work_items/graphql/work_item.query.graphql @@ -1,5 +1,5 @@ #import "~/graphql_shared/fragments/label.fragment.graphql" -#import "./work_item.fragment.graphql" +#import "ee_else_ce/work_items/graphql/work_item.fragment.graphql" query workItem($id: WorkItemID!) { workItem(id: $id) { diff --git a/app/controllers/import/bulk_imports_controller.rb b/app/controllers/import/bulk_imports_controller.rb index 2d607fb7ff7..893c0b6ac54 100644 --- a/app/controllers/import/bulk_imports_controller.rb +++ b/app/controllers/import/bulk_imports_controller.rb @@ -47,7 +47,14 @@ class Import::BulkImportsController < ApplicationController end def create - responses = create_params.map { |entry| ::BulkImports::CreateService.new(current_user, entry, credentials).execute } + responses = create_params.map do |entry| + if entry[:destination_name] + entry[:destination_slug] ||= entry[:destination_name] + entry.delete(:destination_name) + end + + ::BulkImports::CreateService.new(current_user, entry, credentials).execute + end render json: responses.map { |response| { success: response.success?, id: response.payload[:id], message: response.message } } end @@ -100,6 +107,7 @@ class Import::BulkImportsController < ApplicationController source_type source_full_path destination_name + destination_slug destination_namespace ] end diff --git a/app/graphql/types/ci/pipeline_type.rb b/app/graphql/types/ci/pipeline_type.rb index 60418fec6c5..1a41ec13766 100644 --- a/app/graphql/types/ci/pipeline_type.rb +++ b/app/graphql/types/ci/pipeline_type.rb @@ -200,7 +200,7 @@ module Types if id pipeline.statuses.id_in(id.model_id) else - pipeline.statuses.by_name(name) + pipeline.latest_statuses.by_name(name) end.take # rubocop: disable CodeReuse/ActiveRecord end diff --git a/app/models/bulk_imports/entity.rb b/app/models/bulk_imports/entity.rb index cad2fafe640..69777f3a0bf 100644 --- a/app/models/bulk_imports/entity.rb +++ b/app/models/bulk_imports/entity.rb @@ -55,6 +55,8 @@ class BulkImports::Entity < ApplicationRecord scope :by_bulk_import_id, ->(bulk_import_id) { where(bulk_import_id: bulk_import_id)} scope :order_by_created_at, -> (direction) { order(created_at: direction) } + alias_attribute :destination_slug, :destination_name + state_machine :status, initial: :created do state :created, value: 0 state :started, value: 1 diff --git a/app/models/environment.rb b/app/models/environment.rb index 68540ce0f5c..f7becf1f700 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -56,8 +56,10 @@ class Environment < ApplicationRecord validates :external_url, length: { maximum: 255 }, - allow_nil: true, - addressable_url: true + allow_nil: true + + validates :external_url, addressable_url: true, allow_nil: true, unless: :soft_validation_on_external_url_enabled? + validate :safe_external_url, if: :soft_validation_on_external_url_enabled? delegate :manual_actions, :other_manual_actions, to: :last_deployment, allow_nil: true delegate :auto_rollback_enabled?, to: :project @@ -493,6 +495,26 @@ class Environment < ApplicationRecord private + def soft_validation_on_external_url_enabled? + ::Feature.enabled?(:soft_validation_on_external_url, project) + end + + # We deliberately avoid using AddressableUrlValidator to allow users to update their environments even if they have + # misconfigured `environment:url` keyword. The external URL is presented as a clickable link on UI and not consumed + # in GitLab internally, thus we sanitize the URL before the persistence to make sure the rendered link is XSS safe. + # See https://gitlab.com/gitlab-org/gitlab/-/issues/337417 + def safe_external_url + return unless self.external_url.present? + + new_external_url = Addressable::URI.parse(self.external_url) + + if Gitlab::Utils::SanitizeNodeLink::UNSAFE_PROTOCOLS.include?(new_external_url.normalized_scheme) + errors.add(:external_url, "#{new_external_url.normalized_scheme} scheme is not allowed") + end + rescue Addressable::URI::InvalidURIError + errors.add(:external_url, 'URI is invalid') + end + def rollout_status_available? has_terminals? end diff --git a/app/models/members/group_member.rb b/app/models/members/group_member.rb index 87af6a9a7f7..2b35f7da7b4 100644 --- a/app/models/members/group_member.rb +++ b/app/models/members/group_member.rb @@ -7,7 +7,6 @@ class GroupMember < Member SOURCE_TYPE = 'Namespace' SOURCE_TYPE_FORMAT = /\ANamespace\z/.freeze - THRESHOLD_FOR_REFRESHING_AUTHORIZATIONS_VIA_PROJECTS = 1000 belongs_to :group, foreign_key: 'source_id' alias_attribute :namespace_id, :source_id @@ -67,28 +66,8 @@ class GroupMember < Member # its projects are also destroyed, so the removal of project_authorizations # will happen behind the scenes via DB foreign keys anyway. return if destroyed_by_association.present? - return unless user_id - return super if Feature.disabled?(:refresh_authorizations_via_affected_projects_on_group_membership, group) - # rubocop:disable CodeReuse/ServiceClass - projects_to_refresh = Groups::ProjectsRequiringAuthorizationsRefresh::OnDirectMembershipFinder.new(group).execute - threshold_exceeded = (projects_to_refresh.size > THRESHOLD_FOR_REFRESHING_AUTHORIZATIONS_VIA_PROJECTS) - - # We want to try the new approach only if the number of affected projects are greater than the set threshold. - return super unless threshold_exceeded - - AuthorizedProjectUpdate::ProjectAccessChangedService - .new(projects_to_refresh) - .execute(blocking: false) - - # Until we compare the inconsistency rates of the new approach - # the old approach, we still run AuthorizedProjectsWorker - # but with some delay and lower urgency as a safety net. - UserProjectAccessChangedService - .new(user_id) - .execute(blocking: false, priority: UserProjectAccessChangedService::LOW_PRIORITY) - - # rubocop:enable CodeReuse/ServiceClass + super end def send_invite diff --git a/app/services/boards/destroy_service.rb b/app/services/boards/destroy_service.rb index 0b1cd61b119..ceda005044e 100644 --- a/app/services/boards/destroy_service.rb +++ b/app/services/boards/destroy_service.rb @@ -3,10 +3,6 @@ module Boards class DestroyService < Boards::BaseService def execute(board) - if boards.size == 1 - return ServiceResponse.error(message: "The board could not be deleted, because the parent doesn't have any other boards.") - end - board.destroy! ServiceResponse.success diff --git a/app/services/bulk_imports/create_service.rb b/app/services/bulk_imports/create_service.rb index cbf2b34b33c..31e1a822e78 100644 --- a/app/services/bulk_imports/create_service.rb +++ b/app/services/bulk_imports/create_service.rb @@ -64,7 +64,7 @@ module BulkImports bulk_import: bulk_import, source_type: entity[:source_type], source_full_path: entity[:source_full_path], - destination_name: entity[:destination_name], + destination_slug: entity[:destination_slug], destination_namespace: entity[:destination_namespace] ) end diff --git a/config/feature_flags/development/refresh_authorizations_via_affected_projects_on_group_membership.yml b/config/feature_flags/development/soft_validation_on_external_url.yml index 77b6b5a8a40..3df63a7bb96 100644 --- a/config/feature_flags/development/refresh_authorizations_via_affected_projects_on_group_membership.yml +++ b/config/feature_flags/development/soft_validation_on_external_url.yml @@ -1,8 +1,8 @@ --- -name: refresh_authorizations_via_affected_projects_on_group_membership -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/87071 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/362204 -milestone: '15.0' +name: soft_validation_on_external_url +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91970 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/367206 +milestone: '15.2' type: development -group: group::workspace +group: group::release default_enabled: false diff --git a/doc/administration/incoming_email.md b/doc/administration/incoming_email.md index 95301ec026a..9351a101ee4 100644 --- a/doc/administration/incoming_email.md +++ b/doc/administration/incoming_email.md @@ -75,11 +75,12 @@ Email is processed correctly when a configured email address is present in one o (sorted in the order they are checked): - `To` -- `References` - `Delivered-To` - `Envelope-To` or `X-Envelope-To` - `Received` +The `References` header is also accepted, however it is used specifically to relate email responses to existing discussion threads. It is not used for creating issues by email. + In GitLab 14.6 and later, [Service Desk](../user/project/service_desk.md) also checks accepted headers. diff --git a/doc/api/bulk_imports.md b/doc/api/bulk_imports.md index 8c5c4574206..913dc6ce4f1 100644 --- a/doc/api/bulk_imports.md +++ b/doc/api/bulk_imports.md @@ -27,7 +27,8 @@ POST /bulk_imports | `entities` | Array | yes | List of entities to import. | | `entities[source_type]` | String | yes | Source entity type (only `group_entity` is supported). | | `entities[source_full_path]` | String | yes | Source full path of the entity to import. | -| `entities[destination_name]` | String | yes | Destination slug for the entity. | +| `entities[destination_name]` | String | yes | Deprecated: Use :destination_slug instead. Destination slug for the entity. | +| `entities[destination_slug]` | String | yes | Destination slug for the entity. | | `entities[destination_namespace]` | String | no | Destination namespace for the entity. | ```shell @@ -41,7 +42,7 @@ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitla { "source_full_path": "source/full/path", "source_type": "group_entity", - "destination_name": "destination_slug", + "destination_slug": "destination_slug", "destination_namespace": "destination/namespace/path" } ] @@ -126,7 +127,7 @@ curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab "bulk_import_id": 1, "status": "finished", "source_full_path": "source_group", - "destination_name": "destination_slug", + "destination_slug": "destination_slug", "destination_namespace": "destination_path", "parent_id": null, "namespace_id": 1, @@ -140,7 +141,7 @@ curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab "bulk_import_id": 2, "status": "failed", "source_full_path": "another_group", - "destination_name": "another_slug", + "destination_slug": "another_slug", "destination_namespace": "another_namespace", "parent_id": null, "namespace_id": null, diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index fbf6bc116f4..8451834da84 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -12662,9 +12662,11 @@ Represents the Geo sync and verification state of a group wiki repository. | <a id="groupwikirepositoryregistryid"></a>`id` | [`ID!`](#id) | ID of the GroupWikiRepositoryRegistry. | | <a id="groupwikirepositoryregistrylastsyncfailure"></a>`lastSyncFailure` | [`String`](#string) | Error message during sync of the GroupWikiRepositoryRegistry. | | <a id="groupwikirepositoryregistrylastsyncedat"></a>`lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the GroupWikiRepositoryRegistry. | -| <a id="groupwikirepositoryregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the GroupWikiRepositoryRegistry should be resynced. | +| <a id="groupwikirepositoryregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the GroupWikiRepositoryRegistry is resynced. | | <a id="groupwikirepositoryregistryretrycount"></a>`retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the GroupWikiRepositoryRegistry. | | <a id="groupwikirepositoryregistrystate"></a>`state` | [`RegistryState`](#registrystate) | Sync state of the GroupWikiRepositoryRegistry. | +| <a id="groupwikirepositoryregistryverificationretryat"></a>`verificationRetryAt` | [`Time`](#time) | Timestamp after which the GroupWikiRepositoryRegistry is reverified. | +| <a id="groupwikirepositoryregistryverifiedat"></a>`verifiedAt` | [`Time`](#time) | Timestamp of the most recent successful verification of the GroupWikiRepositoryRegistry. | ### `HelmFileMetadata` @@ -13111,9 +13113,11 @@ Represents the Geo replication and verification state of a job_artifact. | <a id="jobartifactregistryid"></a>`id` | [`ID!`](#id) | ID of the JobArtifactRegistry. | | <a id="jobartifactregistrylastsyncfailure"></a>`lastSyncFailure` | [`String`](#string) | Error message during sync of the JobArtifactRegistry. | | <a id="jobartifactregistrylastsyncedat"></a>`lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the JobArtifactRegistry. | -| <a id="jobartifactregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the JobArtifactRegistry should be resynced. | +| <a id="jobartifactregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the JobArtifactRegistry is resynced. | | <a id="jobartifactregistryretrycount"></a>`retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the JobArtifactRegistry. | | <a id="jobartifactregistrystate"></a>`state` | [`RegistryState`](#registrystate) | Sync state of the JobArtifactRegistry. | +| <a id="jobartifactregistryverificationretryat"></a>`verificationRetryAt` | [`Time`](#time) | Timestamp after which the JobArtifactRegistry is reverified. | +| <a id="jobartifactregistryverifiedat"></a>`verifiedAt` | [`Time`](#time) | Timestamp of the most recent successful verification of the JobArtifactRegistry. | ### `JobPermissions` @@ -13163,9 +13167,11 @@ Represents the Geo sync and verification state of an LFS object. | <a id="lfsobjectregistrylastsyncfailure"></a>`lastSyncFailure` | [`String`](#string) | Error message during sync of the LfsObjectRegistry. | | <a id="lfsobjectregistrylastsyncedat"></a>`lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the LfsObjectRegistry. | | <a id="lfsobjectregistrylfsobjectid"></a>`lfsObjectId` | [`ID!`](#id) | ID of the LFS object. | -| <a id="lfsobjectregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the LfsObjectRegistry should be resynced. | +| <a id="lfsobjectregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the LfsObjectRegistry is resynced. | | <a id="lfsobjectregistryretrycount"></a>`retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the LfsObjectRegistry. | | <a id="lfsobjectregistrystate"></a>`state` | [`RegistryState`](#registrystate) | Sync state of the LfsObjectRegistry. | +| <a id="lfsobjectregistryverificationretryat"></a>`verificationRetryAt` | [`Time`](#time) | Timestamp after which the LfsObjectRegistry is reverified. | +| <a id="lfsobjectregistryverifiedat"></a>`verifiedAt` | [`Time`](#time) | Timestamp of the most recent successful verification of the LfsObjectRegistry. | ### `LicenseHistoryEntry` @@ -13847,9 +13853,11 @@ Represents the Geo sync and verification state of a Merge Request diff. | <a id="mergerequestdiffregistrylastsyncfailure"></a>`lastSyncFailure` | [`String`](#string) | Error message during sync of the MergeRequestDiffRegistry. | | <a id="mergerequestdiffregistrylastsyncedat"></a>`lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the MergeRequestDiffRegistry. | | <a id="mergerequestdiffregistrymergerequestdiffid"></a>`mergeRequestDiffId` | [`ID!`](#id) | ID of the Merge Request diff. | -| <a id="mergerequestdiffregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the MergeRequestDiffRegistry should be resynced. | +| <a id="mergerequestdiffregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the MergeRequestDiffRegistry is resynced. | | <a id="mergerequestdiffregistryretrycount"></a>`retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the MergeRequestDiffRegistry. | | <a id="mergerequestdiffregistrystate"></a>`state` | [`RegistryState`](#registrystate) | Sync state of the MergeRequestDiffRegistry. | +| <a id="mergerequestdiffregistryverificationretryat"></a>`verificationRetryAt` | [`Time`](#time) | Timestamp after which the MergeRequestDiffRegistry is reverified. | +| <a id="mergerequestdiffregistryverifiedat"></a>`verifiedAt` | [`Time`](#time) | Timestamp of the most recent successful verification of the MergeRequestDiffRegistry. | ### `MergeRequestParticipant` @@ -14794,9 +14802,11 @@ Represents the Geo sync and verification state of a package file. | <a id="packagefileregistrylastsyncfailure"></a>`lastSyncFailure` | [`String`](#string) | Error message during sync of the PackageFileRegistry. | | <a id="packagefileregistrylastsyncedat"></a>`lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the PackageFileRegistry. | | <a id="packagefileregistrypackagefileid"></a>`packageFileId` | [`ID!`](#id) | ID of the PackageFile. | -| <a id="packagefileregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the PackageFileRegistry should be resynced. | +| <a id="packagefileregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the PackageFileRegistry is resynced. | | <a id="packagefileregistryretrycount"></a>`retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the PackageFileRegistry. | | <a id="packagefileregistrystate"></a>`state` | [`RegistryState`](#registrystate) | Sync state of the PackageFileRegistry. | +| <a id="packagefileregistryverificationretryat"></a>`verificationRetryAt` | [`Time`](#time) | Timestamp after which the PackageFileRegistry is reverified. | +| <a id="packagefileregistryverifiedat"></a>`verifiedAt` | [`Time`](#time) | Timestamp of the most recent successful verification of the PackageFileRegistry. | ### `PackageHelmDependencyType` @@ -14916,9 +14926,11 @@ Represents the Geo replication and verification state of a pages_deployment. | <a id="pagesdeploymentregistrylastsyncfailure"></a>`lastSyncFailure` | [`String`](#string) | Error message during sync of the PagesDeploymentRegistry. | | <a id="pagesdeploymentregistrylastsyncedat"></a>`lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the PagesDeploymentRegistry. | | <a id="pagesdeploymentregistrypagesdeploymentid"></a>`pagesDeploymentId` | [`ID!`](#id) | ID of the Pages Deployment. | -| <a id="pagesdeploymentregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the PagesDeploymentRegistry should be resynced. | +| <a id="pagesdeploymentregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the PagesDeploymentRegistry is resynced. | | <a id="pagesdeploymentregistryretrycount"></a>`retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the PagesDeploymentRegistry. | | <a id="pagesdeploymentregistrystate"></a>`state` | [`RegistryState`](#registrystate) | Sync state of the PagesDeploymentRegistry. | +| <a id="pagesdeploymentregistryverificationretryat"></a>`verificationRetryAt` | [`Time`](#time) | Timestamp after which the PagesDeploymentRegistry is reverified. | +| <a id="pagesdeploymentregistryverifiedat"></a>`verifiedAt` | [`Time`](#time) | Timestamp of the most recent successful verification of the PagesDeploymentRegistry. | ### `PathLock` @@ -15085,9 +15097,11 @@ Represents the Geo sync and verification state of a pipeline artifact. | <a id="pipelineartifactregistrylastsyncfailure"></a>`lastSyncFailure` | [`String`](#string) | Error message during sync of the PipelineArtifactRegistry. | | <a id="pipelineartifactregistrylastsyncedat"></a>`lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the PipelineArtifactRegistry. | | <a id="pipelineartifactregistrypipelineartifactid"></a>`pipelineArtifactId` | [`ID!`](#id) | ID of the pipeline artifact. | -| <a id="pipelineartifactregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the PipelineArtifactRegistry should be resynced. | +| <a id="pipelineartifactregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the PipelineArtifactRegistry is resynced. | | <a id="pipelineartifactregistryretrycount"></a>`retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the PipelineArtifactRegistry. | | <a id="pipelineartifactregistrystate"></a>`state` | [`RegistryState`](#registrystate) | Sync state of the PipelineArtifactRegistry. | +| <a id="pipelineartifactregistryverificationretryat"></a>`verificationRetryAt` | [`Time`](#time) | Timestamp after which the PipelineArtifactRegistry is reverified. | +| <a id="pipelineartifactregistryverifiedat"></a>`verifiedAt` | [`Time`](#time) | Timestamp of the most recent successful verification of the PipelineArtifactRegistry. | ### `PipelineCounts` @@ -17252,10 +17266,12 @@ Represents the Geo sync and verification state of a snippet repository. | <a id="snippetrepositoryregistryid"></a>`id` | [`ID!`](#id) | ID of the SnippetRepositoryRegistry. | | <a id="snippetrepositoryregistrylastsyncfailure"></a>`lastSyncFailure` | [`String`](#string) | Error message during sync of the SnippetRepositoryRegistry. | | <a id="snippetrepositoryregistrylastsyncedat"></a>`lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the SnippetRepositoryRegistry. | -| <a id="snippetrepositoryregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the SnippetRepositoryRegistry should be resynced. | +| <a id="snippetrepositoryregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the SnippetRepositoryRegistry is resynced. | | <a id="snippetrepositoryregistryretrycount"></a>`retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the SnippetRepositoryRegistry. | | <a id="snippetrepositoryregistrysnippetrepositoryid"></a>`snippetRepositoryId` | [`ID!`](#id) | ID of the Snippet Repository. | | <a id="snippetrepositoryregistrystate"></a>`state` | [`RegistryState`](#registrystate) | Sync state of the SnippetRepositoryRegistry. | +| <a id="snippetrepositoryregistryverificationretryat"></a>`verificationRetryAt` | [`Time`](#time) | Timestamp after which the SnippetRepositoryRegistry is reverified. | +| <a id="snippetrepositoryregistryverifiedat"></a>`verifiedAt` | [`Time`](#time) | Timestamp of the most recent successful verification of the SnippetRepositoryRegistry. | ### `StatusAction` @@ -17354,10 +17370,12 @@ Represents the Geo sync and verification state of a terraform state version. | <a id="terraformstateversionregistryid"></a>`id` | [`ID!`](#id) | ID of the TerraformStateVersionRegistry. | | <a id="terraformstateversionregistrylastsyncfailure"></a>`lastSyncFailure` | [`String`](#string) | Error message during sync of the TerraformStateVersionRegistry. | | <a id="terraformstateversionregistrylastsyncedat"></a>`lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the TerraformStateVersionRegistry. | -| <a id="terraformstateversionregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the TerraformStateVersionRegistry should be resynced. | +| <a id="terraformstateversionregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the TerraformStateVersionRegistry is resynced. | | <a id="terraformstateversionregistryretrycount"></a>`retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the TerraformStateVersionRegistry. | | <a id="terraformstateversionregistrystate"></a>`state` | [`RegistryState`](#registrystate) | Sync state of the TerraformStateVersionRegistry. | | <a id="terraformstateversionregistryterraformstateversionid"></a>`terraformStateVersionId` | [`ID!`](#id) | ID of the terraform state version. | +| <a id="terraformstateversionregistryverificationretryat"></a>`verificationRetryAt` | [`Time`](#time) | Timestamp after which the TerraformStateVersionRegistry is reverified. | +| <a id="terraformstateversionregistryverifiedat"></a>`verifiedAt` | [`Time`](#time) | Timestamp of the most recent successful verification of the TerraformStateVersionRegistry. | ### `TestCase` @@ -17618,9 +17636,11 @@ Represents the Geo replication and verification state of an upload. | <a id="uploadregistryid"></a>`id` | [`ID!`](#id) | ID of the UploadRegistry. | | <a id="uploadregistrylastsyncfailure"></a>`lastSyncFailure` | [`String`](#string) | Error message during sync of the UploadRegistry. | | <a id="uploadregistrylastsyncedat"></a>`lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the UploadRegistry. | -| <a id="uploadregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the UploadRegistry should be resynced. | +| <a id="uploadregistryretryat"></a>`retryAt` | [`Time`](#time) | Timestamp after which the UploadRegistry is resynced. | | <a id="uploadregistryretrycount"></a>`retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the UploadRegistry. | | <a id="uploadregistrystate"></a>`state` | [`RegistryState`](#registrystate) | Sync state of the UploadRegistry. | +| <a id="uploadregistryverificationretryat"></a>`verificationRetryAt` | [`Time`](#time) | Timestamp after which the UploadRegistry is reverified. | +| <a id="uploadregistryverifiedat"></a>`verifiedAt` | [`Time`](#time) | Timestamp of the most recent successful verification of the UploadRegistry. | ### `UsageTrendsMeasurement` diff --git a/doc/ci/environments/index.md b/doc/ci/environments/index.md index 6ffa68e4873..6d8f655724d 100644 --- a/doc/ci/environments/index.md +++ b/doc/ci/environments/index.md @@ -374,6 +374,8 @@ To retry or rollback a deployment: ### Environment URL +> [Fixed](https://gitlab.com/gitlab-org/gitlab/-/issues/337417) to persist arbitrary URLs in GitLab 15.2 [with a flag](../../administration/feature_flags.md) named `soft_validation_on_external_url`. Disabled by default. + The [environment URL](../yaml/index.md#environmenturl) is displayed in a few places in GitLab: diff --git a/lib/api/bulk_imports.rb b/lib/api/bulk_imports.rb index b1cb84c97cb..bbc720150b9 100644 --- a/lib/api/bulk_imports.rb +++ b/lib/api/bulk_imports.rb @@ -47,11 +47,23 @@ module API requires :source_type, type: String, desc: 'Source entity type (only `group_entity` is supported)', values: %w[group_entity] requires :source_full_path, type: String, desc: 'Source full path of the entity to import' - requires :destination_name, type: String, desc: 'Destination slug for the entity' requires :destination_namespace, type: String, desc: 'Destination namespace for the entity' + optional :destination_slug, type: String, desc: 'Destination slug for the entity' + optional :destination_name, type: String, + desc: 'Deprecated: Use :destination_slug instead. Destination slug for the entity' + + mutually_exclusive :destination_slug, :destination_name + at_least_one_of :destination_slug, :destination_name end end post do + params[:entities].each do |entity| + if entity[:destination_name] + entity[:destination_slug] ||= entity[:destination_name] + entity.delete(:destination_name) + end + end + response = ::BulkImports::CreateService.new( current_user, params[:entities], diff --git a/lib/api/entities/bulk_imports/entity.rb b/lib/api/entities/bulk_imports/entity.rb index e8c31256b17..142bfaf2149 100644 --- a/lib/api/entities/bulk_imports/entity.rb +++ b/lib/api/entities/bulk_imports/entity.rb @@ -8,7 +8,8 @@ module API expose :bulk_import_id expose :status_name, as: :status expose :source_full_path - expose :destination_name + expose :destination_name # deprecated + expose :destination_slug expose :destination_namespace expose :parent_id expose :namespace_id diff --git a/lib/bulk_imports/groups/transformers/group_attributes_transformer.rb b/lib/bulk_imports/groups/transformers/group_attributes_transformer.rb index 3067e0997c2..d9efcdb1ba5 100644 --- a/lib/bulk_imports/groups/transformers/group_attributes_transformer.rb +++ b/lib/bulk_imports/groups/transformers/group_attributes_transformer.rb @@ -38,7 +38,7 @@ module BulkImports end def transform_path(import_entity, data) - data['path'] = import_entity.destination_name.parameterize + data['path'] = import_entity.destination_slug.parameterize data end diff --git a/lib/bulk_imports/projects/transformers/project_attributes_transformer.rb b/lib/bulk_imports/projects/transformers/project_attributes_transformer.rb index 38730a7723b..205c3185f72 100644 --- a/lib/bulk_imports/projects/transformers/project_attributes_transformer.rb +++ b/lib/bulk_imports/projects/transformers/project_attributes_transformer.rb @@ -11,8 +11,8 @@ module BulkImports entity = context.entity visibility = data.delete('visibility') - project[:name] = entity.destination_name - project[:path] = entity.destination_name.parameterize + project[:name] = entity.destination_slug + project[:path] = entity.destination_slug.parameterize project[:created_at] = data['created_at'] project[:import_type] = PROJECT_IMPORT_TYPE project[:visibility_level] = Gitlab::VisibilityLevel.string_options[visibility] if visibility.present? diff --git a/spec/controllers/admin/users_controller_spec.rb b/spec/controllers/admin/users_controller_spec.rb index c46a12680a2..e9f0f0c2879 100644 --- a/spec/controllers/admin/users_controller_spec.rb +++ b/spec/controllers/admin/users_controller_spec.rb @@ -612,8 +612,8 @@ RSpec.describe Admin::UsersController do end context 'when the new password does not match the password confirmation' do - let(:password) { 'some_password' } - let(:password_confirmation) { 'not_same_as_password' } + let(:password) { User.random_password } + let(:password_confirmation) { User.random_password } it 'shows the edit page again' do update_password(user, password, password_confirmation) diff --git a/spec/controllers/import/bulk_imports_controller_spec.rb b/spec/controllers/import/bulk_imports_controller_spec.rb index 7177c8c10a6..3be12717664 100644 --- a/spec/controllers/import/bulk_imports_controller_spec.rb +++ b/spec/controllers/import/bulk_imports_controller_spec.rb @@ -245,11 +245,11 @@ RSpec.describe Import::BulkImportsController do let(:bulk_import_params) do [{ "source_type" => "group_entity", "source_full_path" => "full_path", - "destination_name" => "destination_name", + "destination_slug" => "destination_name", "destination_namespace" => "root" }, { "source_type" => "group_entity2", "source_full_path" => "full_path2", - "destination_name" => "destination_name2", + "destination_slug" => "destination_name2", "destination_namespace" => "root" }] end @@ -258,7 +258,7 @@ RSpec.describe Import::BulkImportsController do session[:bulk_import_gitlab_url] = instance_url end - it 'executes BulkImpors::CreateService' do + it 'executes BulkImports::CreateService' do error_response = ServiceResponse.error(message: 'Record invalid', http_status: :unprocessable_entity) expect_next_instance_of( @@ -276,6 +276,38 @@ RSpec.describe Import::BulkImportsController do expect(json_response).to eq([{ "success" => true, "id" => bulk_import.id, "message" => nil }, { "success" => false, "id" => nil, "message" => "Record invalid" }]) end + + context 'when entity destination_name is specified' do + let(:bulk_import_params) do + [ + { + "source_type" => "group_entity", + "source_full_path" => "full_path", + "destination_name" => "destination_name", + "destination_namespace" => "root" + } + ] + end + + it 'replaces destination_name with destination_slug and executes BulkImports::CreateService' do + entity = { + "source_type" => "group_entity", + "source_full_path" => "full_path", + "destination_slug" => "destination_name", + "destination_namespace" => "root" + } + + expect_next_instance_of( + ::BulkImports::CreateService, user, entity, { url: instance_url, access_token: pat }) do |service| + allow(service).to receive(:execute).and_return(ServiceResponse.success(payload: bulk_import)) + end + + post :create, params: { bulk_import: bulk_import_params } + + expect(response).to have_gitlab_http_status(:ok) + expect(json_response).to match_array([{ "success" => true, "id" => bulk_import.id, "message" => nil }]) + end + end end end diff --git a/spec/controllers/profiles_controller_spec.rb b/spec/controllers/profiles_controller_spec.rb index 6e7cc058fbc..89185a8f856 100644 --- a/spec/controllers/profiles_controller_spec.rb +++ b/spec/controllers/profiles_controller_spec.rb @@ -3,16 +3,16 @@ require('spec_helper') RSpec.describe ProfilesController, :request_store do - let(:password) { 'longsecret987!' } + let(:password) { User.random_password } let(:user) { create(:user, password: password) } describe 'POST update' do it 'does not update password' do sign_in(user) - + new_password = User.random_password expect do post :update, - params: { user: { password: 'hello12345', password_confirmation: 'hello12345' } } + params: { user: { password: new_password, password_confirmation: new_password } } end.not_to change { user.reload.encrypted_password } expect(response).to have_gitlab_http_status(:found) diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb index f4cad5790a3..1a6edab795d 100644 --- a/spec/controllers/projects/environments_controller_spec.rb +++ b/spec/controllers/projects/environments_controller_spec.rb @@ -233,7 +233,7 @@ RSpec.describe Projects::EnvironmentsController do end context "when environment params are invalid" do - let(:params) { environment_params.merge(environment: { name: '/foo/', external_url: '/git.gitlab.com' }) } + let(:params) { environment_params.merge(environment: { external_url: 'javascript:alert("hello")' }) } it 'returns bad request' do subject diff --git a/spec/controllers/registrations_controller_spec.rb b/spec/controllers/registrations_controller_spec.rb index c5a97812d1f..70d4559edc1 100644 --- a/spec/controllers/registrations_controller_spec.rb +++ b/spec/controllers/registrations_controller_spec.rb @@ -25,7 +25,7 @@ RSpec.describe RegistrationsController do end let_it_be(:base_user_params) do - { first_name: 'first', last_name: 'last', username: 'new_username', email: 'new@user.com', password: 'Any_password' } + { first_name: 'first', last_name: 'last', username: 'new_username', email: 'new@user.com', password: User.random_password } end let_it_be(:user_params) { { user: base_user_params } } @@ -222,7 +222,7 @@ RSpec.describe RegistrationsController do context 'when the registration fails' do let_it_be(:member) { create(:project_member, :invited) } let_it_be(:missing_user_params) do - { username: '', email: member.invite_email, password: 'Any_password' } + { username: '', email: member.invite_email, password: User.random_password } end let_it_be(:user_params) { { user: missing_user_params } } @@ -535,7 +535,7 @@ RSpec.describe RegistrationsController do end it 'succeeds if password is confirmed' do - post :destroy, params: { password: '12345678' } + post :destroy, params: { password: user.password } expect_success end @@ -576,7 +576,7 @@ RSpec.describe RegistrationsController do end it 'fails' do - delete :destroy, params: { password: '12345678' } + delete :destroy, params: { password: user.password } expect_failure(s_('Profiles|You must transfer ownership or delete groups you are an owner of before you can delete your account')) end diff --git a/spec/features/merge_request/user_posts_diff_notes_spec.rb b/spec/features/merge_request/user_posts_diff_notes_spec.rb index d461170c990..1eebb6c2e28 100644 --- a/spec/features/merge_request/user_posts_diff_notes_spec.rb +++ b/spec/features/merge_request/user_posts_diff_notes_spec.rb @@ -19,7 +19,6 @@ RSpec.describe 'Merge request > User posts diff notes', :js do project.add_developer(user) sign_in(user) - stub_const('Gitlab::QueryLimiting::Transaction::THRESHOLD', 104) end context 'when hovering over a parallel view diff file' do diff --git a/spec/features/users/login_spec.rb b/spec/features/users/login_spec.rb index 3ba3650b608..08d0a8d556a 100644 --- a/spec/features/users/login_spec.rb +++ b/spec/features/users/login_spec.rb @@ -477,14 +477,14 @@ RSpec.describe 'Login', :clean_gitlab_redis_sessions do end context 'with invalid username and password' do - let(:user) { create(:user, password: 'not-the-default') } + let(:user) { create(:user) } it 'blocks invalid login' do expect(authentication_metrics) .to increment(:user_unauthenticated_counter) .and increment(:user_password_invalid_counter) - gitlab_sign_in(user) + gitlab_sign_in(user, password: 'incorrect-password') expect_single_session_with_short_ttl expect(page).to have_content('Invalid login or password.') diff --git a/spec/frontend/vue_shared/components/source_viewer/plugins/link_dependencies_spec.js b/spec/frontend/vue_shared/components/source_viewer/plugins/link_dependencies_spec.js index 3036ce43888..375b1307616 100644 --- a/spec/frontend/vue_shared/components/source_viewer/plugins/link_dependencies_spec.js +++ b/spec/frontend/vue_shared/components/source_viewer/plugins/link_dependencies_spec.js @@ -1,8 +1,10 @@ import packageJsonLinker from '~/vue_shared/components/source_viewer/plugins/utils/package_json_linker'; +import gemspecLinker from '~/vue_shared/components/source_viewer/plugins/utils/gemspec_linker'; import linkDependencies from '~/vue_shared/components/source_viewer/plugins/link_dependencies'; -import { PACKAGE_JSON_FILE_TYPE, PACKAGE_JSON_CONTENT } from './mock_data'; +import { PACKAGE_JSON_FILE_TYPE, PACKAGE_JSON_CONTENT, GEMSPEC_FILE_TYPE } from './mock_data'; jest.mock('~/vue_shared/components/source_viewer/plugins/utils/package_json_linker'); +jest.mock('~/vue_shared/components/source_viewer/plugins/utils/gemspec_linker'); describe('Highlight.js plugin for linking dependencies', () => { const hljsResultMock = { value: 'test' }; @@ -11,4 +13,9 @@ describe('Highlight.js plugin for linking dependencies', () => { linkDependencies(hljsResultMock, PACKAGE_JSON_FILE_TYPE, PACKAGE_JSON_CONTENT); expect(packageJsonLinker).toHaveBeenCalled(); }); + + it('calls gemspecLinker for gemspec file types', () => { + linkDependencies(hljsResultMock, GEMSPEC_FILE_TYPE); + expect(gemspecLinker).toHaveBeenCalled(); + }); }); diff --git a/spec/frontend/vue_shared/components/source_viewer/plugins/mock_data.js b/spec/frontend/vue_shared/components/source_viewer/plugins/mock_data.js index 75659770e2c..aa874c9c081 100644 --- a/spec/frontend/vue_shared/components/source_viewer/plugins/mock_data.js +++ b/spec/frontend/vue_shared/components/source_viewer/plugins/mock_data.js @@ -1,2 +1,4 @@ export const PACKAGE_JSON_FILE_TYPE = 'package_json'; export const PACKAGE_JSON_CONTENT = '{ "dependencies": { "@babel/core": "^7.18.5" } }'; + +export const GEMSPEC_FILE_TYPE = 'gemspec'; diff --git a/spec/frontend/vue_shared/components/source_viewer/plugins/utils/gemspec_linker_spec.js b/spec/frontend/vue_shared/components/source_viewer/plugins/utils/gemspec_linker_spec.js new file mode 100644 index 00000000000..3f74bfa117f --- /dev/null +++ b/spec/frontend/vue_shared/components/source_viewer/plugins/utils/gemspec_linker_spec.js @@ -0,0 +1,14 @@ +import gemspecLinker from '~/vue_shared/components/source_viewer/plugins/utils/gemspec_linker'; + +describe('Highlight.js plugin for linking gemspec dependencies', () => { + it('mutates the input value by wrapping dependency names in anchors', () => { + const inputValue = + 's.add_dependency(<span class="hljs-string">'rugged'</span>, <span class="hljs-string">'~> 0.24.0'</span>)'; + const outputValue = + 's.add_dependency(<span class="hljs-string linked">'<a href="https://rubygems.org/gems/rugged" rel="nofollow noreferrer noopener">rugged</a>'</span>, <span class="hljs-string">'~> 0.24.0'</span>)'; + const hljsResultMock = { value: inputValue }; + + const output = gemspecLinker(hljsResultMock); + expect(output).toBe(outputValue); + }); +}); diff --git a/spec/frontend/work_items/mock_data.js b/spec/frontend/work_items/mock_data.js index df666b95ad1..a76407931d4 100644 --- a/spec/frontend/work_items/mock_data.js +++ b/spec/frontend/work_items/mock_data.js @@ -59,11 +59,9 @@ export const workItemQueryResponse = { title: 'Parent title', }, children: { - edges: [ + nodes: [ { - node: { - id: 'gid://gitlab/WorkItem/444', - }, + id: 'gid://gitlab/WorkItem/444', }, ], }, @@ -96,9 +94,9 @@ export const updateWorkItemMutationResponse = { widgets: [ { children: { - edges: [ + nodes: [ { - node: 'gid://gitlab/WorkItem/444', + id: 'gid://gitlab/WorkItem/444', }, ], }, @@ -161,11 +159,9 @@ export const workItemResponseFactory = ({ __typename: 'WorkItemWidgetHierarchy', type: 'HIERARCHY', children: { - edges: [ + nodes: [ { - node: { - id: 'gid://gitlab/WorkItem/444', - }, + id: 'gid://gitlab/WorkItem/444', }, ], }, diff --git a/spec/lib/api/entities/bulk_imports/entity_spec.rb b/spec/lib/api/entities/bulk_imports/entity_spec.rb index f91ae1fc5a1..4de85862ab9 100644 --- a/spec/lib/api/entities/bulk_imports/entity_spec.rb +++ b/spec/lib/api/entities/bulk_imports/entity_spec.rb @@ -14,6 +14,7 @@ RSpec.describe API::Entities::BulkImports::Entity do :status, :source_full_path, :destination_name, + :destination_slug, :destination_namespace, :parent_id, :namespace_id, diff --git a/spec/lib/bulk_imports/groups/transformers/group_attributes_transformer_spec.rb b/spec/lib/bulk_imports/groups/transformers/group_attributes_transformer_spec.rb index d775cf6b026..896af865c56 100644 --- a/spec/lib/bulk_imports/groups/transformers/group_attributes_transformer_spec.rb +++ b/spec/lib/bulk_imports/groups/transformers/group_attributes_transformer_spec.rb @@ -13,7 +13,7 @@ RSpec.describe BulkImports::Groups::Transformers::GroupAttributesTransformer do :bulk_import_entity, bulk_import: bulk_import, source_full_path: 'source/full/path', - destination_name: 'destination-name-path', + destination_slug: 'destination-slug-path', destination_namespace: parent.full_path ) end @@ -41,14 +41,14 @@ RSpec.describe BulkImports::Groups::Transformers::GroupAttributesTransformer do 'name' => 'Name', 'description' => 'Description', 'parent_id' => parent.id, - 'path' => 'destination-name-path' + 'path' => 'destination-slug-path' }) end - it 'transforms path from destination_name' do + it 'transforms path from destination_slug' do transformed_data = subject.transform(context, data) - expect(transformed_data['path']).to eq(entity.destination_name) + expect(transformed_data['path']).to eq(entity.destination_slug) end it 'removes full path' do diff --git a/spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb b/spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb index a1d77b9732d..c1c4d0bf0db 100644 --- a/spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb +++ b/spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb @@ -15,7 +15,7 @@ RSpec.describe BulkImports::Projects::Transformers::ProjectAttributesTransformer source_type: :project_entity, bulk_import: bulk_import, source_full_path: 'source/full/path', - destination_name: 'Destination Project Name', + destination_slug: 'Destination Project Name', destination_namespace: destination_group.full_path ) end @@ -32,12 +32,12 @@ RSpec.describe BulkImports::Projects::Transformers::ProjectAttributesTransformer subject(:transformed_data) { described_class.new.transform(context, data) } - it 'transforms name to destination name' do - expect(transformed_data[:name]).to eq(entity.destination_name) + it 'transforms name to destination slug' do + expect(transformed_data[:name]).to eq(entity.destination_slug) end it 'adds path as parameterized name' do - expect(transformed_data[:path]).to eq(entity.destination_name.parameterize) + expect(transformed_data[:path]).to eq(entity.destination_slug.parameterize) end it 'transforms visibility level' do @@ -65,7 +65,7 @@ RSpec.describe BulkImports::Projects::Transformers::ProjectAttributesTransformer source_type: :project_entity, bulk_import: bulk_import, source_full_path: 'source/full/path', - destination_name: 'Destination Project Name', + destination_slug: 'Destination Project Name', destination_namespace: '' ) diff --git a/spec/models/environment_spec.rb b/spec/models/environment_spec.rb index e3207636bdc..fa03c6920c6 100644 --- a/spec/models/environment_spec.rb +++ b/spec/models/environment_spec.rb @@ -42,6 +42,92 @@ RSpec.describe Environment, :use_clean_rails_memory_store_caching do end end + describe 'validate and sanitize external url' do + let_it_be_with_refind(:environment) { create(:environment) } + + where(:source_external_url, :expected_error_message) do + nil | nil + 'http://example.com' | nil + 'example.com' | nil + 'www.example.io' | nil + 'http://$URL' | nil + 'http://$(URL)' | nil + 'custom://example.com' | nil + '1.1.1.1' | nil + '$BASE_URL/${CI_COMMIT_REF_NAME}' | nil + '$ENVIRONMENT_URL' | nil + 'https://$SUB.$MAIN' | nil + 'https://$SUB-$REGION.$MAIN' | nil + 'https://example.com?param={()}' | nil + 'http://XSS?x=<script>alert(1)</script>' | nil + 'https://user:${VARIABLE}@example.io' | nil + 'https://example.com/test?param={data}' | nil + 'http://${URL}' | 'URI is invalid' + 'https://${URL}.example/test' | 'URI is invalid' + 'http://test${CI_MERGE_REQUEST_IID}.example.com' | 'URI is invalid' + 'javascript:alert("hello")' | 'javascript scheme is not allowed' + end + with_them do + it 'sets an external URL or an error' do + environment.external_url = source_external_url + + environment.valid? + + if expected_error_message + expect(environment.errors[:external_url].first).to eq(expected_error_message) + else + expect(environment.errors[:external_url]).to be_empty, + "There were unexpected errors: #{environment.errors.full_messages}" + expect(environment.external_url).to eq(source_external_url) + end + end + end + + context 'when soft_validation_on_external_url feature flag is disabled' do + before do + stub_feature_flags(soft_validation_on_external_url: false) + end + + where(:source_external_url, :expected_error_message) do + nil | nil + 'http://example.com' | nil + 'example.com' | 'is blocked: Only allowed schemes are http, https' + 'www.example.io' | 'is blocked: Only allowed schemes are http, https' + 'http://$URL' | 'is blocked: Hostname or IP address invalid' + 'http://$(URL)' | 'is blocked: Hostname or IP address invalid' + 'custom://example.com' | 'is blocked: Only allowed schemes are http, https' + '1.1.1.1' | 'is blocked: Only allowed schemes are http, https' + '$BASE_URL/${CI_COMMIT_REF_NAME}' | 'is blocked: Only allowed schemes are http, https' + '$ENVIRONMENT_URL' | 'is blocked: Only allowed schemes are http, https' + 'https://$SUB.$MAIN' | 'is blocked: Hostname or IP address invalid' + 'https://$SUB-$REGION.$MAIN' | 'is blocked: Hostname or IP address invalid' + 'https://example.com?param={()}' | nil + 'http://XSS?x=<script>alert(1)</script>' | nil + 'https://user:${VARIABLE}@example.io' | nil + 'https://example.com/test?param={data}' | nil + 'http://${URL}' | 'is blocked: URI is invalid' + 'https://${URL}.example/test' | 'is blocked: URI is invalid' + 'http://test${CI_MERGE_REQUEST_IID}.example.com' | 'is blocked: URI is invalid' + 'javascript:alert("hello")' | 'is blocked: Only allowed schemes are http, https' + end + with_them do + it 'sets an external URL or an error' do + environment.external_url = source_external_url + + environment.valid? + + if expected_error_message + expect(environment.errors[:external_url].first).to eq(expected_error_message) + else + expect(environment.errors[:external_url]).to be_empty, + "There were unexpected errors: #{environment.errors.full_messages}" + expect(environment.external_url).to eq(source_external_url) + end + end + end + end + end + describe '.before_save' do it 'ensures environment tier when a new object is created' do environment = build(:environment, name: 'gprd', tier: nil) diff --git a/spec/models/members/group_member_spec.rb b/spec/models/members/group_member_spec.rb index 94032146f51..c076346c619 100644 --- a/spec/models/members/group_member_spec.rb +++ b/spec/models/members/group_member_spec.rb @@ -165,13 +165,6 @@ RSpec.describe GroupMember do let_it_be(:project_b) { create(:project, group: group) } let_it_be(:project_c) { create(:project, group: group) } let_it_be(:user) { create(:user) } - let_it_be(:affected_project_ids) { Project.id_in([project_a, project_b, project_c]).ids } - - before do - stub_const( - "#{described_class.name}::THRESHOLD_FOR_REFRESHING_AUTHORIZATIONS_VIA_PROJECTS", - affected_project_ids.size - 1) - end shared_examples_for 'calls UserProjectAccessChangedService to recalculate authorizations' do it 'calls UserProjectAccessChangedService to recalculate authorizations' do @@ -183,41 +176,6 @@ RSpec.describe GroupMember do end end - shared_examples_for 'tries to update permissions via refreshing authorizations for the affected projects' do - context 'when the number of affected projects exceeds the set threshold' do - it 'updates permissions via refreshing authorizations for the affected projects asynchronously' do - expect_next_instance_of( - AuthorizedProjectUpdate::ProjectAccessChangedService, affected_project_ids - ) do |service| - expect(service).to receive(:execute).with(blocking: false) - end - - action - end - - it 'calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay as a safety net' do - expect(AuthorizedProjectUpdate::UserRefreshFromReplicaWorker).to( - receive(:bulk_perform_in) - .with(1.hour, - [[user.id]], - batch_delay: 30.seconds, batch_size: 100) - ) - - action - end - end - - context 'when the number of affected projects does not exceed the set threshold' do - before do - stub_const( - "#{described_class.name}::THRESHOLD_FOR_REFRESHING_AUTHORIZATIONS_VIA_PROJECTS", - affected_project_ids.size + 1) - end - - it_behaves_like 'calls UserProjectAccessChangedService to recalculate authorizations' - end - end - context 'on create' do let(:action) { group.add_member(user, Gitlab::Access::GUEST) } let(:blocking) { true } @@ -228,15 +186,7 @@ RSpec.describe GroupMember do .and change { user.can?(:guest_access, project_c) }.from(false).to(true) end - it_behaves_like 'tries to update permissions via refreshing authorizations for the affected projects' - - context 'when the feature flag `refresh_authorizations_via_affected_projects_on_group_membership` is disabled' do - before do - stub_feature_flags(refresh_authorizations_via_affected_projects_on_group_membership: false) - end - - it_behaves_like 'calls UserProjectAccessChangedService to recalculate authorizations' - end + it_behaves_like 'calls UserProjectAccessChangedService to recalculate authorizations' end context 'on update' do @@ -253,15 +203,7 @@ RSpec.describe GroupMember do .and change { user.can?(:developer_access, project_c) }.from(false).to(true) end - it_behaves_like 'tries to update permissions via refreshing authorizations for the affected projects' - - context 'when the feature flag `refresh_authorizations_via_affected_projects_on_group_membership` is disabled' do - before do - stub_feature_flags(refresh_authorizations_via_affected_projects_on_group_membership: false) - end - - it_behaves_like 'calls UserProjectAccessChangedService to recalculate authorizations' - end + it_behaves_like 'calls UserProjectAccessChangedService to recalculate authorizations' end context 'on destroy' do @@ -278,15 +220,7 @@ RSpec.describe GroupMember do .and change { user.can?(:guest_access, project_c) }.from(true).to(false) end - it_behaves_like 'tries to update permissions via refreshing authorizations for the affected projects' - - context 'when the feature flag `refresh_authorizations_via_affected_projects_on_group_membership` is disabled' do - before do - stub_feature_flags(refresh_authorizations_via_affected_projects_on_group_membership: false) - end - - it_behaves_like 'calls UserProjectAccessChangedService to recalculate authorizations' - end + it_behaves_like 'calls UserProjectAccessChangedService to recalculate authorizations' end end end diff --git a/spec/requests/api/boards_spec.rb b/spec/requests/api/boards_spec.rb index ca6492396cd..feb11f2ffef 100644 --- a/spec/requests/api/boards_spec.rb +++ b/spec/requests/api/boards_spec.rb @@ -57,9 +57,11 @@ RSpec.describe API::Boards do let(:url) { "/projects/#{board_parent.id}/boards/#{board.id}" } it 'delete the issue board' do - delete api(url, user) + expect do + delete api(url, user) - expect(response).to have_gitlab_http_status(:no_content) + expect(response).to have_gitlab_http_status(:no_content) + end.to change {board_parent.boards.count}.by(-1) end end diff --git a/spec/requests/api/bulk_imports_spec.rb b/spec/requests/api/bulk_imports_spec.rb index 9f9907f4f00..6a3d13567bd 100644 --- a/spec/requests/api/bulk_imports_spec.rb +++ b/spec/requests/api/bulk_imports_spec.rb @@ -53,23 +53,80 @@ RSpec.describe API::BulkImports do end end - it 'starts a new migration' do - post api('/bulk_imports', user), params: { - configuration: { - url: 'http://gitlab.example', - access_token: 'access_token' - }, - entities: [ - source_type: 'group_entity', - source_full_path: 'full_path', - destination_name: 'destination_slug', - destination_namespace: 'destination_namespace' - ] - } - - expect(response).to have_gitlab_http_status(:created) - - expect(json_response['status']).to eq('created') + shared_examples 'starting a new migration' do + it 'starts a new migration' do + post api('/bulk_imports', user), params: { + configuration: { + url: 'http://gitlab.example', + access_token: 'access_token' + }, + entities: [ + { + source_type: 'group_entity', + source_full_path: 'full_path', + destination_namespace: 'destination_namespace' + }.merge(destination_param) + ] + } + + expect(response).to have_gitlab_http_status(:created) + + expect(json_response['status']).to eq('created') + end + end + + include_examples 'starting a new migration' do + let(:destination_param) { { destination_slug: 'destination_slug' } } + end + + include_examples 'starting a new migration' do + let(:destination_param) { { destination_name: 'destination_name' } } + end + + context 'when both destination_name & destination_slug are provided' do + it 'returns a mutually exclusive error' do + post api('/bulk_imports', user), params: { + configuration: { + url: 'http://gitlab.example', + access_token: 'access_token' + }, + entities: [ + { + source_type: 'group_entity', + source_full_path: 'full_path', + destination_name: 'destination_name', + destination_slug: 'destination_slug', + destination_namespace: 'destination_namespace' + } + ] + } + + expect(response).to have_gitlab_http_status(:bad_request) + + expect(json_response['error']).to eq('entities[0][destination_slug], entities[0][destination_name] are mutually exclusive') + end + end + + context 'when neither destination_name nor destination_slug is provided' do + it 'returns at_least_one_of error' do + post api('/bulk_imports', user), params: { + configuration: { + url: 'http://gitlab.example', + access_token: 'access_token' + }, + entities: [ + { + source_type: 'group_entity', + source_full_path: 'full_path', + destination_namespace: 'destination_namespace' + } + ] + } + + expect(response).to have_gitlab_http_status(:bad_request) + + expect(json_response['error']).to eq('entities[0][destination_slug], entities[0][destination_name] are missing, at least one parameter must be provided') + end end context 'when provided url is blocked' do @@ -82,7 +139,7 @@ RSpec.describe API::BulkImports do entities: [ source_type: 'group_entity', source_full_path: 'full_path', - destination_name: 'destination_slug', + destination_slug: 'destination_slug', destination_namespace: 'destination_namespace' ] } diff --git a/spec/requests/api/graphql/ci/pipelines_spec.rb b/spec/requests/api/graphql/ci/pipelines_spec.rb index a968e5508cb..f471a152603 100644 --- a/spec/requests/api/graphql/ci/pipelines_spec.rb +++ b/spec/requests/api/graphql/ci/pipelines_spec.rb @@ -166,6 +166,35 @@ RSpec.describe 'Query.project(fullPath).pipelines' do end end + describe '.job' do + let(:first_n) { var('Int') } + let(:query_path) do + [ + [:project, { full_path: project.full_path }], + [:pipelines], + [:nodes], + [:job, { name: 'Job 1' }] + ] + end + + let(:query) do + wrap_fields(query_graphql_path(query_path, :status)) + end + + before_all do + pipeline = create(:ci_pipeline, project: project) + create(:ci_build, pipeline: pipeline, name: 'Job 1', status: :failed, retried: true) + create(:ci_build, pipeline: pipeline, name: 'Job 1', status: :success) + end + + it 'fetches the latest job with the given name' do + post_graphql(query, current_user: user) + expect(graphql_data_at(*query_path.map(&:first))).to contain_exactly a_hash_including( + 'status' => 'SUCCESS' + ) + end + end + describe '.jobs' do let(:first_n) { var('Int') } let(:query_path) do diff --git a/spec/requests/api/graphql/mutations/boards/destroy_spec.rb b/spec/requests/api/graphql/mutations/boards/destroy_spec.rb index 23e099e94b6..7620da3e7e0 100644 --- a/spec/requests/api/graphql/mutations/boards/destroy_spec.rb +++ b/spec/requests/api/graphql/mutations/boards/destroy_spec.rb @@ -65,15 +65,8 @@ RSpec.describe Mutations::Boards::Destroy do other_board.destroy! end - it 'does not destroy the board' do - expect { subject }.not_to change { Board.count }.from(1) - end - - it 'returns an error and not nil board' do - subject - - expect(mutation_response['errors']).not_to be_empty - expect(mutation_response['board']).not_to be_nil + it 'does destroy the board' do + expect { subject }.to change { Board.count }.by(-1) end end end diff --git a/spec/services/bulk_imports/create_service_spec.rb b/spec/services/bulk_imports/create_service_spec.rb index 67ec6fee1ae..4b655dd5d6d 100644 --- a/spec/services/bulk_imports/create_service_spec.rb +++ b/spec/services/bulk_imports/create_service_spec.rb @@ -10,19 +10,19 @@ RSpec.describe BulkImports::CreateService do { source_type: 'group_entity', source_full_path: 'full/path/to/group1', - destination_name: 'destination group 1', + destination_slug: 'destination group 1', destination_namespace: 'full/path/to/destination1' }, { source_type: 'group_entity', source_full_path: 'full/path/to/group2', - destination_name: 'destination group 2', + destination_slug: 'destination group 2', destination_namespace: 'full/path/to/destination2' }, { source_type: 'project_entity', source_full_path: 'full/path/to/project1', - destination_name: 'destination project 1', + destination_slug: 'destination project 1', destination_namespace: 'full/path/to/destination1' } ] diff --git a/spec/services/deployments/update_environment_service_spec.rb b/spec/services/deployments/update_environment_service_spec.rb index 8ab53a37a33..d3e5920baaf 100644 --- a/spec/services/deployments/update_environment_service_spec.rb +++ b/spec/services/deployments/update_environment_service_spec.rb @@ -112,7 +112,7 @@ RSpec.describe Deployments::UpdateEnvironmentService do end context 'when external URL is invalid' do - let(:external_url) { 'google.com' } + let(:external_url) { 'javascript:alert("hello")' } it 'fails to update the tier due to validation error' do expect { subject.execute }.not_to change { environment.tier } @@ -123,7 +123,7 @@ RSpec.describe Deployments::UpdateEnvironmentService do .with(an_instance_of(described_class::EnvironmentUpdateFailure), project_id: project.id, environment_id: environment.id, - reason: %q{External url is blocked: Only allowed schemes are http, https}) + reason: %q{External url javascript scheme is not allowed}) .once subject.execute diff --git a/spec/support/helpers/login_helpers.rb b/spec/support/helpers/login_helpers.rb index c93ef8b0ead..f83f5c7bfde 100644 --- a/spec/support/helpers/login_helpers.rb +++ b/spec/support/helpers/login_helpers.rb @@ -91,12 +91,12 @@ module LoginHelpers # user - User instance to login with # remember - Whether or not to check "Remember me" (default: false) # two_factor_auth - If two-factor authentication is enabled (default: false) - # password - password to attempt to login with + # password - password to attempt to login with (default: user.password) def gitlab_sign_in_with(user, remember: false, two_factor_auth: false, password: nil) visit new_user_session_path fill_in "user_login", with: user.email - fill_in "user_password", with: (password || "12345678") + fill_in "user_password", with: (password || user.password) check 'user_remember_me' if remember find('[data-testid="sign-in-button"]:enabled').click diff --git a/spec/support/shared_examples/boards/destroy_service_shared_examples.rb b/spec/support/shared_examples/boards/destroy_service_shared_examples.rb index 33bae3da44b..b1cb58a736f 100644 --- a/spec/support/shared_examples/boards/destroy_service_shared_examples.rb +++ b/spec/support/shared_examples/boards/destroy_service_shared_examples.rb @@ -20,10 +20,10 @@ RSpec.shared_examples 'board destroy service' do end context 'when there is only one board' do - it 'does not remove board' do + it 'does remove board' do expect do - expect(service.execute(board)).to be_error - end.not_to change(boards, :count) + service.execute(board) + end.to change(boards, :count).by(-1) end end end |