diff options
152 files changed, 829 insertions, 798 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9c7b66676a8..595a41fd8ca 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -95,6 +95,7 @@ workflow: - if: '$CI_COMMIT_BRANCH =~ /^[\d-]+-stable(-ee)?$/' variables: RUBY_VERSION: "2.7" + NOTIFY_PIPELINE_FAILURE_CHANNEL: "releases" - if: '$CI_COMMIT_BRANCH =~ /^\d+-\d+-auto-deploy-\d+$/' variables: RUBY_VERSION: "2.7" diff --git a/.rubocop_todo/cop/user_admin.yml b/.rubocop_todo/cop/user_admin.yml index 6f8cc5429c2..c4d3e13b0b5 100644 --- a/.rubocop_todo/cop/user_admin.yml +++ b/.rubocop_todo/cop/user_admin.yml @@ -19,7 +19,6 @@ Cop/UserAdmin: - 'app/helpers/visibility_level_helper.rb' - 'app/models/concerns/protected_ref_access.rb' - 'app/models/concerns/spammable.rb' - - 'app/models/issue_collection.rb' - 'app/models/merge_requests_closing_issues.rb' - 'app/models/protected_branch.rb' - 'app/models/user.rb' diff --git a/.rubocop_todo/database/multiple_databases.yml b/.rubocop_todo/database/multiple_databases.yml index 1e53f102683..c59e8a8c15e 100644 --- a/.rubocop_todo/database/multiple_databases.yml +++ b/.rubocop_todo/database/multiple_databases.yml @@ -1,6 +1,5 @@ --- Database/MultipleDatabases: Exclude: - - 'db/post_migrate/20210317104032_set_iteration_cadence_automatic_to_false.rb' - 'db/post_migrate/20210811122206_update_external_project_bots.rb' - 'db/post_migrate/20210812013042_remove_duplicate_project_authorizations.rb' diff --git a/.rubocop_todo/fips/sha1.yml b/.rubocop_todo/fips/sha1.yml index 35221d9d3ff..b07fef0ca54 100644 --- a/.rubocop_todo/fips/sha1.yml +++ b/.rubocop_todo/fips/sha1.yml @@ -88,7 +88,6 @@ Fips/SHA1: - 'spec/lib/gitlab/git/tag_spec.rb' - 'spec/migrations/20220107064845_populate_vulnerability_reads_spec.rb' - 'spec/migrations/20220524074947_finalize_backfill_null_note_discussion_ids_spec.rb' - - 'spec/migrations/delete_security_findings_without_uuid_spec.rb' - 'spec/migrations/schedule_recalculate_vulnerability_finding_signatures_for_findings_spec.rb' - 'spec/models/ci/artifact_blob_spec.rb' - 'spec/models/ci/job_artifact_spec.rb' diff --git a/.rubocop_todo/gitlab/namespaced_class.yml b/.rubocop_todo/gitlab/namespaced_class.yml index e13d8fd68b2..f394851193c 100644 --- a/.rubocop_todo/gitlab/namespaced_class.yml +++ b/.rubocop_todo/gitlab/namespaced_class.yml @@ -48,7 +48,6 @@ Gitlab/NamespacedClass: - 'app/finders/feature_flags_user_lists_finder.rb' - 'app/finders/fork_projects_finder.rb' - 'app/finders/fork_targets_finder.rb' - - 'app/finders/freeze_periods_finder.rb' - 'app/finders/git_refs_finder.rb' - 'app/finders/group_descendants_finder.rb' - 'app/finders/group_finder.rb' @@ -198,7 +197,6 @@ Gitlab/NamespacedClass: - 'app/models/issuable_severity.rb' - 'app/models/issue.rb' - 'app/models/issue_assignee.rb' - - 'app/models/issue_collection.rb' - 'app/models/issue_email_participant.rb' - 'app/models/issue_link.rb' - 'app/models/issue_user_mention.rb' diff --git a/.rubocop_todo/gitlab/strong_memoize_attr.yml b/.rubocop_todo/gitlab/strong_memoize_attr.yml index 93fc72ab922..9fe784e1be9 100644 --- a/.rubocop_todo/gitlab/strong_memoize_attr.yml +++ b/.rubocop_todo/gitlab/strong_memoize_attr.yml @@ -90,7 +90,6 @@ Gitlab/StrongMemoizeAttr: - 'app/models/commit.rb' - 'app/models/commit_collection.rb' - 'app/models/compare.rb' - - 'app/models/concerns/analytics/cycle_analytics/stage.rb' - 'app/models/concerns/avatarable.rb' - 'app/models/concerns/cascading_namespace_setting_attribute.rb' - 'app/models/concerns/ci/contextable.rb' @@ -673,7 +672,6 @@ Gitlab/StrongMemoizeAttr: - 'lib/gitlab/import_export/base/relation_object_saver.rb' - 'lib/gitlab/import_export/decompressed_archive_size_validator.rb' - 'lib/gitlab/import_export/fast_hash_serializer.rb' - - 'lib/gitlab/import_export/group/legacy_tree_restorer.rb' - 'lib/gitlab/import_export/group/tree_restorer.rb' - 'lib/gitlab/import_export/importer.rb' - 'lib/gitlab/import_export/json/legacy_reader.rb' diff --git a/.rubocop_todo/layout/argument_alignment.yml b/.rubocop_todo/layout/argument_alignment.yml index 1e862c88b3c..8531f0500f8 100644 --- a/.rubocop_todo/layout/argument_alignment.yml +++ b/.rubocop_todo/layout/argument_alignment.yml @@ -229,7 +229,6 @@ Layout/ArgumentAlignment: - 'app/models/integrations/drone_ci.rb' - 'app/models/integrations/emails_on_push.rb' - 'app/models/integrations/external_wiki.rb' - - 'app/models/integrations/flowdock.rb' - 'app/models/integrations/harbor.rb' - 'app/models/integrations/irker.rb' - 'app/models/integrations/jenkins.rb' @@ -332,15 +331,6 @@ Layout/ArgumentAlignment: - 'config/routes/snippets.rb' - 'config/routes/uploads.rb' - 'config/routes/user.rb' - - 'db/migrate/20210305002016_update_terraform_states_locked_by_user_id_foreign_key.rb' - - 'db/migrate/20210308190413_change_batched_background_migrations_batch_class_name_default.rb' - - 'db/migrate/20210324112439_add_index_mirror_data_on_retry_next_execution_where_status.rb' - - 'db/migrate/20210329191850_add_finding_signature_table.rb' - - 'db/migrate/20210413121101_add_created_at_web_hook_id_index_to_partitioned_web_hook_log.rb' - - 'db/migrate/20210413123832_add_index_on_web_hook_id_to_partitioned_web_hook_log.rb' - - 'db/migrate/20210505070612_create_packages_debian_group_distribution_keys.rb' - - 'db/migrate/20210505070812_create_packages_debian_project_distribution_keys.rb' - - 'db/migrate/20210601080039_group_protected_environments_add_index_and_constraint.rb' - 'db/migrate/20210609013512_add_unique_index_for_batched_background_migrations.rb' - 'db/migrate/20210625094554_create_error_tracking_error_events.rb' - 'db/migrate/20210720130006_create_error_tracking_client_keys.rb' @@ -397,10 +387,6 @@ Layout/ArgumentAlignment: - 'db/migrate/20221102195642_create_dependency_proxy_manifest_states.rb' - 'db/migrate/20221108185442_add_project_wiki_repository_id_to_project_wiki_repository_states.rb' - 'db/migrate/20221110150942_add_project_id_lower_name_index_remove_old_index.rb' - - 'db/post_migrate/20210330130420_drop_finding_fingerprint_table.rb' - - 'db/post_migrate/20210413130011_add_partitioned_web_hook_log_fk.rb' - - 'db/post_migrate/20210415101228_backfill_ci_build_needs_for_bigint_conversion.rb' - - 'db/post_migrate/20210422023046_backfill_ci_sources_pipelines_source_job_id_for_bigint_conversion.rb' - 'db/post_migrate/20210611080951_fix_missing_traversal_ids.rb' - 'db/post_migrate/20210622045705_finalize_events_bigint_conversion.rb' - 'db/post_migrate/20210701033622_finalize_ci_builds_needs_bigint_conversion.rb' @@ -709,7 +695,6 @@ Layout/ArgumentAlignment: - 'ee/spec/controllers/groups/security/policies_controller_spec.rb' - 'ee/spec/controllers/groups/todos_controller_spec.rb' - 'ee/spec/controllers/projects/iterations_controller_spec.rb' - - 'ee/spec/controllers/projects/legacy_pipelines_controller_spec.rb' - 'ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb' - 'ee/spec/controllers/projects/merge_requests_controller_spec.rb' - 'ee/spec/controllers/projects/protected_environments_controller_spec.rb' @@ -736,7 +721,6 @@ Layout/ArgumentAlignment: - 'ee/spec/features/merge_trains/user_adds_to_merge_train_when_pipeline_succeeds_spec.rb' - 'ee/spec/features/projects/environments/environments_spec.rb' - 'ee/spec/features/projects/merge_requests/user_edits_merge_request_spec.rb' - - 'ee/spec/features/projects/pipelines/legacy_pipeline_spec.rb' - 'ee/spec/features/projects/pipelines/pipeline_spec.rb' - 'ee/spec/features/registrations/saas/standard_flow_company_creating_project_spec.rb' - 'ee/spec/finders/security/pipeline_vulnerabilities_finder_spec.rb' @@ -773,7 +757,6 @@ Layout/ArgumentAlignment: - 'ee/spec/lib/incident_management/oncall_shift_generator_spec.rb' - 'ee/spec/lib/slack/block_kit/app_home_opened_spec.rb' - 'ee/spec/models/approval_wrapped_code_owner_rule_spec.rb' - - 'ee/spec/models/ci/minutes/limit_spec.rb' - 'ee/spec/models/ci/minutes/namespace_monthly_usage_spec.rb' - 'ee/spec/models/ci/minutes/project_monthly_usage_spec.rb' - 'ee/spec/models/ee/audit_event_spec.rb' @@ -1153,8 +1136,6 @@ Layout/ArgumentAlignment: - 'spec/features/projects/files/user_reads_pipeline_status_spec.rb' - 'spec/features/projects/issues/viewing_issues_with_external_authorization_enabled_spec.rb' - 'spec/features/projects/jobs_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/tags/developer_deletes_tag_spec.rb' diff --git a/.rubocop_todo/layout/array_alignment.yml b/.rubocop_todo/layout/array_alignment.yml index 98caefb1563..3f3e6a393da 100644 --- a/.rubocop_todo/layout/array_alignment.yml +++ b/.rubocop_todo/layout/array_alignment.yml @@ -112,7 +112,6 @@ Layout/ArrayAlignment: - 'ee/spec/lib/gitlab/search/index_curator_spec.rb' - 'ee/spec/lib/gitlab/visibility_level_spec.rb' - 'ee/spec/lib/incident_management/oncall_shift_generator_spec.rb' - - 'ee/spec/models/analytics/cycle_analytics/group_value_stream_spec.rb' - 'ee/spec/models/dora/base_metric_spec.rb' - 'ee/spec/models/dora/daily_metrics_spec.rb' - 'ee/spec/models/ee/group_spec.rb' diff --git a/.rubocop_todo/layout/first_array_element_indentation.yml b/.rubocop_todo/layout/first_array_element_indentation.yml index d108792ac08..c42d1c54a8b 100644 --- a/.rubocop_todo/layout/first_array_element_indentation.yml +++ b/.rubocop_todo/layout/first_array_element_indentation.yml @@ -35,7 +35,6 @@ Layout/FirstArrayElementIndentation: - 'ee/spec/lib/gitlab/ci/templates/Jobs/browser_performance_testing_gitlab_ci_yaml_spec.rb' - 'ee/spec/lib/gitlab/ci/templates/Jobs/dast_default_branch_gitlab_ci_yaml_spec.rb' - 'ee/spec/lib/gitlab/ci/templates/Jobs/load_performance_testing_gitlab_ci_yaml_spec.rb' - - 'ee/spec/models/analytics/cycle_analytics/group_value_stream_spec.rb' - 'ee/spec/models/ee/group_spec.rb' - 'ee/spec/models/security/orchestration_policy_configuration_spec.rb' - 'ee/spec/models/security/orchestration_policy_rule_schedule_spec.rb' diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml index 4d67bb9448c..23143e147f1 100644 --- a/.rubocop_todo/layout/line_length.yml +++ b/.rubocop_todo/layout/line_length.yml @@ -312,7 +312,6 @@ Layout/LineLength: - 'app/models/clusters/cluster.rb' - 'app/models/commit_range.rb' - 'app/models/commit_status.rb' - - 'app/models/concerns/analytics/cycle_analytics/stage.rb' - 'app/models/concerns/analytics/cycle_analytics/stage_event_model.rb' - 'app/models/concerns/avatarable.rb' - 'app/models/concerns/bulk_insert_safe.rb' @@ -1148,7 +1147,6 @@ Layout/LineLength: - 'ee/app/mailers/ee/emails/profile.rb' - 'ee/app/mailers/ee/preview/notify_preview.rb' - 'ee/app/mailers/emails/namespace_storage_usage_mailer.rb' - - 'ee/app/models/analytics/cycle_analytics/group_stage.rb' - 'ee/app/models/approval_merge_request_rule.rb' - 'ee/app/models/approval_project_rule.rb' - 'ee/app/models/approval_state.rb' @@ -2128,7 +2126,6 @@ Layout/LineLength: - 'ee/spec/migrations/update_vulnerability_occurrences_location_spec.rb' - 'ee/spec/models/allowed_email_domain_spec.rb' - 'ee/spec/models/analytics/cycle_analytics/group_level_spec.rb' - - 'ee/spec/models/analytics/cycle_analytics/group_stage_spec.rb' - 'ee/spec/models/analytics/devops_adoption/enabled_namespace_spec.rb' - 'ee/spec/models/analytics/devops_adoption/snapshot_spec.rb' - 'ee/spec/models/app_sec/fuzzing/coverage/corpus_spec.rb' diff --git a/.rubocop_todo/layout/parameter_alignment.yml b/.rubocop_todo/layout/parameter_alignment.yml index 3942132a1b2..4fafbab6024 100644 --- a/.rubocop_todo/layout/parameter_alignment.yml +++ b/.rubocop_todo/layout/parameter_alignment.yml @@ -10,8 +10,6 @@ Layout/ParameterAlignment: - 'spec/lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid_spec.rb' - 'spec/lib/gitlab/background_migration/remove_duplicate_vulnerabilities_findings_spec.rb' - 'spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb' - - 'spec/migrations/20210423160427_schedule_drop_invalid_vulnerabilities_spec.rb' - - 'spec/migrations/20210511142748_schedule_drop_invalid_vulnerabilities2_spec.rb' - 'spec/migrations/20211018152654_schedule_remove_duplicate_vulnerabilities_findings3_spec.rb' - 'spec/migrations/20211116111644_schedule_remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb' - 'spec/support/helpers/content_security_policy_helpers.rb' diff --git a/.rubocop_todo/layout/space_in_lambda_literal.yml b/.rubocop_todo/layout/space_in_lambda_literal.yml index 73b8a354a58..2fbdf69e5e3 100644 --- a/.rubocop_todo/layout/space_in_lambda_literal.yml +++ b/.rubocop_todo/layout/space_in_lambda_literal.yml @@ -24,7 +24,6 @@ Layout/SpaceInLambdaLiteral: - 'app/models/clusters/cluster.rb' - 'app/models/clusters/kubernetes_namespace.rb' - 'app/models/commit_status.rb' - - 'app/models/concerns/analytics/cycle_analytics/stage.rb' - 'app/models/concerns/analytics/cycle_analytics/stage_event_model.rb' - 'app/models/concerns/approvable.rb' - 'app/models/concerns/ci/artifactable.rb' @@ -173,7 +172,6 @@ Layout/SpaceInLambdaLiteral: - 'app/workers/process_commit_worker.rb' - 'config/initializers/deprecations.rb' - 'config/routes/project.rb' - - 'db/post_migrate/20210303121224_update_gitlab_subscriptions_start_at_post_eoa.rb' - 'ee/app/controllers/groups/analytics/coverage_reports_controller.rb' - 'ee/app/controllers/projects/on_demand_scans_controller.rb' - 'ee/app/controllers/projects/security/dast_site_profiles_controller.rb' diff --git a/.rubocop_todo/lint/missing_cop_enable_directive.yml b/.rubocop_todo/lint/missing_cop_enable_directive.yml index e0b2afe8256..d4091e27353 100644 --- a/.rubocop_todo/lint/missing_cop_enable_directive.yml +++ b/.rubocop_todo/lint/missing_cop_enable_directive.yml @@ -144,12 +144,10 @@ Lint/MissingCopEnableDirective: - 'ee/app/workers/groups/export_memberships_worker.rb' - 'ee/app/workers/update_max_seats_used_for_gitlab_com_subscriptions_worker.rb' - 'ee/lib/api/ldap_group_links.rb' - - 'ee/lib/api/scim.rb' - 'ee/lib/ee/gitlab/background_migration/backfill_project_statistics_container_repository_size.rb' - 'ee/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules.rb' - 'ee/lib/ee/gitlab/usage_data.rb' - 'ee/lib/gitlab/spdx/license.rb' - - 'ee/spec/controllers/projects/legacy_pipelines_controller_spec.rb' - 'ee/spec/helpers/groups/security_features_helper_spec.rb' - 'ee/spec/helpers/projects/security/discover_helper_spec.rb' - 'ee/spec/lib/ee/gitlab/background_migration/delete_invalid_epic_issues_spec.rb' diff --git a/.rubocop_todo/lint/redundant_cop_disable_directive.yml b/.rubocop_todo/lint/redundant_cop_disable_directive.yml index a2dd002b54f..146d7ce164f 100644 --- a/.rubocop_todo/lint/redundant_cop_disable_directive.yml +++ b/.rubocop_todo/lint/redundant_cop_disable_directive.yml @@ -73,7 +73,6 @@ Lint/RedundantCopDisableDirective: - 'config/initializers/warden.rb' - 'config/initializers/wikicloth_ruby_3_patch.rb' - 'config/routes/api.rb' - - 'db/migrate/20210303193544_add_concurrent_fields_to_bulk_imports_trackers.rb' - 'db/migrate/20210917134321_remove_temporary_index_for_project_topics_on_taggings.rb' - 'db/migrate/20211013014228_add_content_validation_endpoint_to_application_settings.rb' - 'db/migrate/20220316022505_create_namespace_details.rb' @@ -125,7 +124,6 @@ Lint/RedundantCopDisableDirective: - 'ee/lib/analytics/merge_request_metrics_calculator.rb' - 'ee/lib/api/audit_events.rb' - 'ee/lib/api/dora/metrics.rb' - - 'ee/lib/api/scim.rb' - 'ee/lib/ee/api/entities/analytics/code_review/merge_request.rb' - 'ee/lib/ee/gitlab/background_migration/backfill_epic_cache_counts.rb' - 'ee/lib/ee/gitlab/background_migration/migrate_shared_vulnerability_scanners.rb' @@ -136,7 +134,6 @@ Lint/RedundantCopDisableDirective: - 'ee/lib/gitlab/elastic/bool_expr.rb' - 'ee/lib/gitlab/spdx/license.rb' - 'ee/lib/gitlab/status_page/storage/object.rb' - - 'ee/spec/contracts/provider/pact_helpers/project/merge_request/show/suggested_reviewers_helper.rb' - 'ee/spec/elastic/migrate/20221026082700_backfill_users_spec.rb' - 'ee/spec/features/boards/user_visits_board_spec.rb' - 'ee/spec/features/groups/settings/domain_verification_spec.rb' diff --git a/.rubocop_todo/migration/background_migration_base_class.yml b/.rubocop_todo/migration/background_migration_base_class.yml index 56b6a4294d4..9f5fb15289b 100644 --- a/.rubocop_todo/migration/background_migration_base_class.yml +++ b/.rubocop_todo/migration/background_migration_base_class.yml @@ -1,7 +1,6 @@ --- Migration/BackgroundMigrationBaseClass: Exclude: - - 'lib/gitlab/background_migration/add_primary_email_to_emails_if_user_confirmed.rb' - 'lib/gitlab/background_migration/backfill_ci_queuing_tables.rb' - 'lib/gitlab/background_migration/backfill_draft_status_on_merge_requests.rb' - 'lib/gitlab/background_migration/backfill_integrations_enable_ssl_verification.rb' diff --git a/.rubocop_todo/migration/background_migration_record.yml b/.rubocop_todo/migration/background_migration_record.yml index 567926e33a2..ec2b9fb6d6a 100644 --- a/.rubocop_todo/migration/background_migration_record.yml +++ b/.rubocop_todo/migration/background_migration_record.yml @@ -12,7 +12,6 @@ Migration/BackgroundMigrationRecord: - 'ee/lib/ee/gitlab/background_migration/populate_resolved_on_default_branch_column.rb' - 'ee/lib/ee/gitlab/background_migration/populate_uuids_for_security_findings.rb' - 'ee/lib/ee/gitlab/background_migration/update_vulnerability_occurrences_location.rb' - - 'lib/gitlab/background_migration/add_primary_email_to_emails_if_user_confirmed.rb' - 'lib/gitlab/background_migration/backfill_ci_queuing_tables.rb' - 'lib/gitlab/background_migration/backfill_draft_status_on_merge_requests.rb' - 'lib/gitlab/background_migration/backfill_namespace_traversal_ids_children.rb' diff --git a/.rubocop_todo/migration/background_migrations.yml b/.rubocop_todo/migration/background_migrations.yml index 2219f37901d..fbafbb66289 100644 --- a/.rubocop_todo/migration/background_migrations.yml +++ b/.rubocop_todo/migration/background_migrations.yml @@ -1,17 +1,6 @@ --- Migration/BackgroundMigrations: Exclude: - - 'db/migrate/20210519154058_schedule_update_users_where_two_factor_auth_required_from_group.rb' - - 'db/post_migrate/20210302074524_backfill_namespace_statistics_with_wiki_size.rb' - - 'db/post_migrate/20210304133508_schedule_remove_duplicate_vulnerabilities_findings2.rb' - - 'db/post_migrate/20210415155043_move_container_registry_enabled_to_project_features3.rb' - - 'db/post_migrate/20210423160427_schedule_drop_invalid_vulnerabilities.rb' - - 'db/post_migrate/20210427212034_schedule_update_timelogs_project_id.rb' - - 'db/post_migrate/20210506065000_schedule_backfill_traversal_ids.rb' - - 'db/post_migrate/20210511095658_schedule_migrate_project_taggings_context_from_tags_to_topics.rb' - - 'db/post_migrate/20210511142748_schedule_drop_invalid_vulnerabilities2.rb' - - 'db/post_migrate/20210514063252_schedule_cleanup_orphaned_lfs_objects_projects.rb' - - 'db/post_migrate/20210518074332_schedule_disable_expiration_policies_linked_to_no_container_images.rb' - 'db/post_migrate/20210604070207_retry_backfill_traversal_ids.rb' - 'db/post_migrate/20210611080951_fix_missing_traversal_ids.rb' - 'db/post_migrate/20210701111909_backfill_issues_upvotes_count.rb' @@ -26,7 +15,6 @@ Migration/BackgroundMigrations: - 'db/post_migrate/20210901153324_slice_merge_request_diff_commit_migrations.rb' - 'db/post_migrate/20210909104800_reschedule_extract_project_topics_into_separate_table_2.rb' - 'db/post_migrate/20211004110927_schedule_fix_first_mentioned_in_commit_at_job.rb' - - 'db/post_migrate/20211004120135_schedule_add_primary_email_to_emails_if_user_confirmed.rb' - 'db/post_migrate/20211005010101_rereschedule_delete_orphaned_deployments.rb' - 'db/post_migrate/20211005194425_schedule_requirements_migration.rb' - 'db/post_migrate/20211006060436_schedule_populate_topics_total_projects_count_cache.rb' diff --git a/.rubocop_todo/naming/heredoc_delimiter_naming.yml b/.rubocop_todo/naming/heredoc_delimiter_naming.yml index d57905c8607..d10fac78cef 100644 --- a/.rubocop_todo/naming/heredoc_delimiter_naming.yml +++ b/.rubocop_todo/naming/heredoc_delimiter_naming.yml @@ -113,7 +113,6 @@ Naming/HeredocDelimiterNaming: - 'spec/models/integrations/asana_spec.rb' - 'spec/models/ssh_host_key_spec.rb' - 'spec/rubocop/cop/migration/update_column_in_batches_spec.rb' - - 'spec/services/ci/after_requeue_job_service_spec.rb' - 'spec/services/ci/create_downstream_pipeline_service_spec.rb' - 'spec/services/ci/create_pipeline_service/cache_spec.rb' - 'spec/services/ci/create_pipeline_service/evaluate_runner_tags_spec.rb' diff --git a/.rubocop_todo/rails/file_path.yml b/.rubocop_todo/rails/file_path.yml index 0a652631e0b..2b01db2e440 100644 --- a/.rubocop_todo/rails/file_path.yml +++ b/.rubocop_todo/rails/file_path.yml @@ -8,8 +8,6 @@ Rails/FilePath: - 'app/models/concerns/cross_database_modification.rb' - 'app/models/release_highlight.rb' - 'app/serializers/review_app_setup_entity.rb' - - 'app/services/clusters/aws/fetch_credentials_service.rb' - - 'app/services/clusters/aws/provision_service.rb' - 'app/services/metrics/sample_metrics_service.rb' - 'app/services/projects/readme_renderer_service.rb' - 'config/environments/development.rb' @@ -17,7 +15,6 @@ Rails/FilePath: - 'config/initializers/7_prometheus_metrics.rb' - 'config/initializers/lograge.rb' - 'config/initializers_before_autoloader/001_fast_gettext.rb' - - 'db/migrate/20210517144856_require_snapshot_namespace.rb' - 'db/post_migrate/20210630025020_migrate_push_event_payloads_event_id_back_to_integer_for_gitlab_com.rb' - 'ee/app/helpers/ee/application_helper.rb' - 'ee/app/services/security/security_orchestration_policies/project_create_service.rb' @@ -126,8 +123,6 @@ Rails/FilePath: - 'spec/requests/api/internal/mail_room_spec.rb' - 'spec/requests/api/usage_data_queries_spec.rb' - 'spec/serializers/review_app_setup_entity_spec.rb' - - 'spec/services/clusters/aws/fetch_credentials_service_spec.rb' - - 'spec/services/clusters/aws/provision_service_spec.rb' - 'spec/services/metrics/sample_metrics_service_spec.rb' - 'spec/support/helpers/doc_url_helper.rb' - 'spec/support/helpers/test_env.rb' diff --git a/.rubocop_todo/rails/inverse_of.yml b/.rubocop_todo/rails/inverse_of.yml index 832767b7bb5..5ec863fdb25 100644 --- a/.rubocop_todo/rails/inverse_of.yml +++ b/.rubocop_todo/rails/inverse_of.yml @@ -29,7 +29,6 @@ Rails/InverseOf: - 'app/models/clusters/project.rb' - 'app/models/commit_signatures/x509_commit_signature.rb' - 'app/models/commit_status.rb' - - 'app/models/concerns/analytics/cycle_analytics/stage.rb' - 'app/models/concerns/awardable.rb' - 'app/models/concerns/commit_signature.rb' - 'app/models/concerns/with_uploads.rb' @@ -71,8 +70,6 @@ Rails/InverseOf: - 'app/models/work_item.rb' - 'app/models/x509_certificate.rb' - 'ee/app/models/allowed_email_domain.rb' - - 'ee/app/models/analytics/cycle_analytics/group_stage.rb' - - 'ee/app/models/analytics/cycle_analytics/group_value_stream.rb' - 'ee/app/models/analytics/devops_adoption/enabled_namespace.rb' - 'ee/app/models/analytics/devops_adoption/snapshot.rb' - 'ee/app/models/audit_events/external_audit_event_destination.rb' diff --git a/.rubocop_todo/rails/pluck.yml b/.rubocop_todo/rails/pluck.yml index 88b700d0190..307e6f59800 100644 --- a/.rubocop_todo/rails/pluck.yml +++ b/.rubocop_todo/rails/pluck.yml @@ -49,7 +49,6 @@ Rails/Pluck: - 'ee/spec/graphql/types/vulnerability_scanner_type_spec.rb' - 'ee/spec/helpers/ee/geo_helper_spec.rb' - 'ee/spec/helpers/ee/operations_helper_spec.rb' - - 'ee/spec/lib/ee/gitlab/import_export/group/legacy_tree_saver_spec.rb' - 'ee/spec/lib/ee/gitlab/import_export/group/tree_saver_spec.rb' - 'ee/spec/lib/gitlab/custom_file_templates_spec.rb' - 'ee/spec/lib/gitlab/spdx/catalogue_spec.rb' @@ -186,7 +185,6 @@ Rails/Pluck: - 'spec/lib/gitlab/database_importers/common_metrics/importer_spec.rb' - 'spec/lib/gitlab/git/blame_spec.rb' - 'spec/lib/gitlab/git/conflict/parser_spec.rb' - - 'spec/lib/gitlab/import_export/group/legacy_tree_saver_spec.rb' - 'spec/lib/gitlab/import_export/project/sample/relation_tree_restorer_spec.rb' - 'spec/lib/gitlab/import_export/project/tree_saver_spec.rb' - 'spec/lib/gitlab/language_detection_spec.rb' @@ -285,7 +283,6 @@ Rails/Pluck: - 'spec/serializers/stage_entity_spec.rb' - 'spec/services/ci/compare_test_reports_service_spec.rb' - 'spec/services/ci/pipeline_processing/atomic_processing_service/status_collection_spec.rb' - - 'spec/services/clusters/applications/prometheus_config_service_spec.rb' - 'spec/services/issues/export_csv_service_spec.rb' - 'spec/services/metrics/dashboard/custom_metric_embed_service_spec.rb' - 'spec/services/projects/participants_service_spec.rb' diff --git a/.rubocop_todo/rails/redundant_foreign_key.yml b/.rubocop_todo/rails/redundant_foreign_key.yml index 3251429876e..3a7c4a3754e 100644 --- a/.rubocop_todo/rails/redundant_foreign_key.yml +++ b/.rubocop_todo/rails/redundant_foreign_key.yml @@ -18,7 +18,6 @@ Rails/RedundantForeignKey: - 'app/models/clusters/concerns/application_core.rb' - 'app/models/clusters/integrations/prometheus.rb' - 'app/models/commit_signatures/x509_commit_signature.rb' - - 'app/models/concerns/analytics/cycle_analytics/stage.rb' - 'app/models/concerns/commit_signature.rb' - 'app/models/concerns/integrations/base_data_fields.rb' - 'app/models/group.rb' diff --git a/.rubocop_todo/rspec/any_instance_of.yml b/.rubocop_todo/rspec/any_instance_of.yml index b107938dd17..e589d9ed9c6 100644 --- a/.rubocop_todo/rspec/any_instance_of.yml +++ b/.rubocop_todo/rspec/any_instance_of.yml @@ -361,7 +361,6 @@ RSpec/AnyInstanceOf: - 'spec/workers/build_hooks_worker_spec.rb' - 'spec/workers/ci/build_schedule_worker_spec.rb' - 'spec/workers/ci/daily_build_group_report_results_worker_spec.rb' - - 'spec/workers/cluster_provision_worker_spec.rb' - 'spec/workers/clusters/cleanup/project_namespace_worker_spec.rb' - 'spec/workers/clusters/cleanup/service_account_worker_spec.rb' - 'spec/workers/concerns/project_import_options_spec.rb' @@ -381,4 +380,3 @@ RSpec/AnyInstanceOf: - 'spec/workers/pipeline_schedule_worker_spec.rb' - 'spec/workers/project_cache_worker_spec.rb' - 'spec/workers/stage_update_worker_spec.rb' - - 'spec/workers/wait_for_cluster_creation_worker_spec.rb' diff --git a/.rubocop_todo/rspec/capybara/visibility_matcher.yml b/.rubocop_todo/rspec/capybara/visibility_matcher.yml index f9e8c982903..5f35e5d90f7 100644 --- a/.rubocop_todo/rspec/capybara/visibility_matcher.yml +++ b/.rubocop_todo/rspec/capybara/visibility_matcher.yml @@ -46,7 +46,6 @@ RSpec/Capybara/VisibilityMatcher: - 'spec/features/projects/issues/design_management/user_views_designs_with_svg_xss_spec.rb' - 'spec/features/projects/jobs_spec.rb' - 'spec/features/projects/network_graph_spec.rb' - - 'spec/features/projects/pipelines/legacy_pipeline_spec.rb' - 'spec/features/projects/pipelines/pipeline_spec.rb' - 'spec/features/projects/settings/lfs_settings_spec.rb' - 'spec/features/projects/settings/packages_settings_spec.rb' diff --git a/.rubocop_todo/rspec/context_wording.yml b/.rubocop_todo/rspec/context_wording.yml index 6a6a66973c0..c1bd63de2f1 100644 --- a/.rubocop_todo/rspec/context_wording.yml +++ b/.rubocop_todo/rspec/context_wording.yml @@ -47,7 +47,6 @@ RSpec/ContextWording: - 'ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb' - 'ee/spec/controllers/projects/integrations/zentao/issues_controller_spec.rb' - 'ee/spec/controllers/projects/issues_controller_spec.rb' - - 'ee/spec/controllers/projects/legacy_pipelines_controller_spec.rb' - 'ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb' - 'ee/spec/controllers/projects/merge_requests_controller_spec.rb' - 'ee/spec/controllers/projects/mirrors_controller_spec.rb' @@ -155,7 +154,6 @@ RSpec/ContextWording: - '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' @@ -334,8 +332,6 @@ RSpec/ContextWording: - '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/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' - 'ee/spec/lib/ee/gitlab/import_export/group/tree_restorer_spec.rb' - 'ee/spec/lib/ee/gitlab/import_export/group/tree_saver_spec.rb' - 'ee/spec/lib/ee/gitlab/import_export/project/tree_saver_spec.rb' @@ -440,7 +436,6 @@ RSpec/ContextWording: - 'ee/spec/migrations/schedule_requirements_migration_spec.rb' - 'ee/spec/models/alert_management/alert_payload_field_spec.rb' - 'ee/spec/models/allowed_email_domain_spec.rb' - - 'ee/spec/models/analytics/cycle_analytics/group_stage_spec.rb' - 'ee/spec/models/analytics/cycle_analytics/project_stage_spec.rb' - 'ee/spec/models/application_setting_spec.rb' - 'ee/spec/models/approval_merge_request_rule_spec.rb' @@ -638,7 +633,6 @@ RSpec/ContextWording: - 'ee/spec/requests/api/projects_spec.rb' - 'ee/spec/requests/api/protected_branches_spec.rb' - 'ee/spec/requests/api/releases_spec.rb' - - 'ee/spec/requests/api/scim_spec.rb' - 'ee/spec/requests/api/search_spec.rb' - 'ee/spec/requests/api/settings_spec.rb' - 'ee/spec/requests/api/status_checks_spec.rb' @@ -983,7 +977,6 @@ RSpec/ContextWording: - 'qa/qa/specs/features/browser_ui/5_package/package_registry/pypi_repository_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/13_secure/enable_scanning_from_configuration_spec.rb' @@ -1326,8 +1319,6 @@ 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' @@ -1972,8 +1963,6 @@ RSpec/ContextWording: - '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' - - 'spec/lib/gitlab/import_export/group/legacy_tree_saver_spec.rb' - 'spec/lib/gitlab/import_export/group/object_builder_spec.rb' - 'spec/lib/gitlab/import_export/group/relation_factory_spec.rb' - 'spec/lib/gitlab/import_export/group/tree_restorer_spec.rb' @@ -2340,7 +2329,6 @@ RSpec/ContextWording: - 'spec/models/internal_id_spec.rb' - 'spec/models/issue/metrics_spec.rb' - 'spec/models/issue_assignee_spec.rb' - - 'spec/models/issue_collection_spec.rb' - 'spec/models/issue_spec.rb' - 'spec/models/jira_import_state_spec.rb' - 'spec/models/key_spec.rb' @@ -2723,7 +2711,6 @@ RSpec/ContextWording: - 'spec/services/branches/validate_new_service_spec.rb' - 'spec/services/bulk_create_integration_service_spec.rb' - 'spec/services/chat_names/find_user_service_spec.rb' - - '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/compare_test_reports_service_spec.rb' @@ -2757,16 +2744,8 @@ RSpec/ContextWording: - 'spec/services/clusters/agent_tokens/track_usage_service_spec.rb' - 'spec/services/clusters/agents/delete_expired_events_service_spec.rb' - 'spec/services/clusters/agents/refresh_authorization_service_spec.rb' - - 'spec/services/clusters/applications/install_service_spec.rb' - - 'spec/services/clusters/applications/upgrade_service_spec.rb' - - 'spec/services/clusters/aws/authorize_role_service_spec.rb' - - 'spec/services/clusters/aws/fetch_credentials_service_spec.rb' - - 'spec/services/clusters/aws/finalize_creation_service_spec.rb' - - 'spec/services/clusters/aws/provision_service_spec.rb' - - 'spec/services/clusters/aws/verify_provision_status_service_spec.rb' - 'spec/services/clusters/build_kubernetes_namespace_service_spec.rb' - 'spec/services/clusters/create_service_spec.rb' - - 'spec/services/clusters/gcp/finalize_creation_service_spec.rb' - 'spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb' - 'spec/services/clusters/kubernetes/create_or_update_service_account_service_spec.rb' - 'spec/services/clusters/management/validate_management_project_permissions_service_spec.rb' diff --git a/.rubocop_todo/rspec/described_class.yml b/.rubocop_todo/rspec/described_class.yml index 729423d8abd..b60fca01288 100644 --- a/.rubocop_todo/rspec/described_class.yml +++ b/.rubocop_todo/rspec/described_class.yml @@ -145,7 +145,6 @@ RSpec/DescribedClass: - 'spec/lib/sidebars/panel_spec.rb' - 'spec/mailers/emails/service_desk_spec.rb' - 'spec/metrics_server/metrics_server_spec.rb' - - 'spec/migrations/remove_records_without_group_from_webhooks_table_spec.rb' - 'spec/models/active_session_spec.rb' - 'spec/models/alert_management/alert_spec.rb' - 'spec/models/application_record_spec.rb' diff --git a/.rubocop_todo/rspec/expect_change.yml b/.rubocop_todo/rspec/expect_change.yml index 23bb61a5d68..24db05a5004 100644 --- a/.rubocop_todo/rspec/expect_change.yml +++ b/.rubocop_todo/rspec/expect_change.yml @@ -81,7 +81,6 @@ RSpec/ExpectChange: - 'ee/spec/requests/groups/protected_environments_controller_spec.rb' - 'ee/spec/requests/groups_controller_spec.rb' - 'ee/spec/requests/registrations/project_creation_spec.rb' - - 'ee/spec/requests/registrations_controller_spec.rb' - 'ee/spec/services/app_sec/dast/scanner_profiles/create_service_spec.rb' - 'ee/spec/services/app_sec/dast/scans/run_service_spec.rb' - 'ee/spec/services/app_sec/dast/site_profiles/create_service_spec.rb' @@ -291,7 +290,6 @@ RSpec/ExpectChange: - 'spec/migrations/20221018050323_add_objective_and_keyresult_to_work_item_types_spec.rb' - 'spec/migrations/20221018193635_ensure_task_note_renaming_background_migration_finished_spec.rb' - 'spec/migrations/20221102090940_create_next_ci_partitions_record_spec.rb' - - 'spec/migrations/backfill_escalation_policies_for_oncall_schedules_spec.rb' - 'spec/migrations/cleanup_mr_attention_request_todos_spec.rb' - 'spec/migrations/cleanup_vulnerability_state_transitions_with_same_from_state_to_state_spec.rb' - 'spec/migrations/delete_migrate_shared_vulnerability_scanners_spec.rb' diff --git a/.rubocop_todo/rspec/expect_in_hook.yml b/.rubocop_todo/rspec/expect_in_hook.yml index aa0f5f005d7..4b49adf63f9 100644 --- a/.rubocop_todo/rspec/expect_in_hook.yml +++ b/.rubocop_todo/rspec/expect_in_hook.yml @@ -302,7 +302,6 @@ RSpec/ExpectInHook: - 'spec/lib/sidebars/projects/menus/external_wiki_menu_spec.rb' - 'spec/mailers/emails/service_desk_spec.rb' - 'spec/metrics_server/metrics_server_spec.rb' - - 'spec/migrations/20210406144743_backfill_total_tuple_count_for_batched_migrations_spec.rb' - 'spec/models/ability_spec.rb' - 'spec/models/application_setting_spec.rb' - 'spec/models/ci/build_spec.rb' @@ -387,9 +386,6 @@ RSpec/ExpectInHook: - 'spec/services/ci/job_artifacts/destroy_all_expired_service_spec.rb' - 'spec/services/ci/job_artifacts/destroy_batch_service_spec.rb' - 'spec/services/ci/register_job_service_spec.rb' - - 'spec/services/clusters/applications/install_service_spec.rb' - - 'spec/services/clusters/applications/upgrade_service_spec.rb' - - 'spec/services/clusters/aws/fetch_credentials_service_spec.rb' - 'spec/services/clusters/integrations/prometheus_health_check_service_spec.rb' - 'spec/services/container_expiration_policies/cleanup_service_spec.rb' - 'spec/services/dependency_proxy/find_cached_manifest_service_spec.rb' diff --git a/.rubocop_todo/rspec/factory_bot/avoid_create.yml b/.rubocop_todo/rspec/factory_bot/avoid_create.yml index 3201d5a8370..c4a64f505f1 100644 --- a/.rubocop_todo/rspec/factory_bot/avoid_create.yml +++ b/.rubocop_todo/rspec/factory_bot/avoid_create.yml @@ -224,7 +224,6 @@ RSpec/FactoryBot/AvoidCreate: - 'ee/spec/views/projects/edit.html.haml_spec.rb' - 'ee/spec/views/projects/issues/show.html.haml_spec.rb' - 'ee/spec/views/projects/on_demand_scans/index.html.haml_spec.rb' - - 'ee/spec/views/projects/pipelines/_tabs_content.html.haml_spec.rb' - 'ee/spec/views/projects/project_members/index.html.haml_spec.rb' - 'ee/spec/views/projects/security/corpus_management/show.html.haml_spec.rb' - 'ee/spec/views/projects/security/dast_profiles/show.html.haml_spec.rb' diff --git a/.rubocop_todo/rspec/hooks_before_examples.yml b/.rubocop_todo/rspec/hooks_before_examples.yml index 333687e1cc4..a6291452db8 100644 --- a/.rubocop_todo/rspec/hooks_before_examples.yml +++ b/.rubocop_todo/rspec/hooks_before_examples.yml @@ -42,5 +42,4 @@ RSpec/HooksBeforeExamples: - 'qa/qa/specs/features/ee/browser_ui/1_manage/group/prevent_forking_outside_group_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/1_manage/ldap/admin_ldap_sync_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/1_manage/user/minimal_access_user_spec.rb' - - 'qa/spec/resource/reusable_collection_spec.rb' - 'qa/spec/specs/runner_spec.rb' diff --git a/.rubocop_todo/rspec/instance_variable.yml b/.rubocop_todo/rspec/instance_variable.yml index b1b4a6c16ce..d57eb938567 100644 --- a/.rubocop_todo/rspec/instance_variable.yml +++ b/.rubocop_todo/rspec/instance_variable.yml @@ -113,7 +113,6 @@ RSpec/InstanceVariable: - 'spec/lib/gitlab/git/diff_spec.rb' - 'spec/lib/gitlab/git/repository_spec.rb' - 'spec/lib/gitlab/http_spec.rb' - - 'spec/lib/gitlab/import_export/group/legacy_tree_restorer_spec.rb' - 'spec/lib/gitlab/import_export/group/tree_restorer_spec.rb' - 'spec/lib/gitlab/import_export/project/tree_restorer_spec.rb' - 'spec/lib/gitlab/patch/prependable_spec.rb' diff --git a/.rubocop_todo/rspec/multiple_memoized_helpers.yml b/.rubocop_todo/rspec/multiple_memoized_helpers.yml index e939abd2886..708543510a2 100644 --- a/.rubocop_todo/rspec/multiple_memoized_helpers.yml +++ b/.rubocop_todo/rspec/multiple_memoized_helpers.yml @@ -17,7 +17,6 @@ RSpec/MultipleMemoizedHelpers: - 'spec/finders/user_recent_events_finder_spec.rb' - 'spec/lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid_spec.rb' - 'spec/lib/gitlab/diff/position_tracer/line_strategy_spec.rb' - - 'spec/migrations/backfill_escalation_policies_for_oncall_schedules_spec.rb' - 'spec/models/event_spec.rb' - 'spec/models/milestone_spec.rb' - 'spec/models/packages/package_file_spec.rb' diff --git a/.rubocop_todo/rspec/repeated_example_group_body.yml b/.rubocop_todo/rspec/repeated_example_group_body.yml index 93cbe77765a..a0981240d48 100644 --- a/.rubocop_todo/rspec/repeated_example_group_body.yml +++ b/.rubocop_todo/rspec/repeated_example_group_body.yml @@ -22,7 +22,6 @@ RSpec/RepeatedExampleGroupBody: - 'spec/features/issues/spam_akismet_issue_creation_spec.rb' - 'spec/features/merge_request/user_sees_closing_issues_message_spec.rb' - 'spec/features/projects/commit/cherry_pick_spec.rb' - - 'spec/features/projects/pipelines/legacy_pipeline_spec.rb' - 'spec/features/security/project/private_access_spec.rb' - 'spec/finders/packages/nuget/package_finder_spec.rb' - 'spec/helpers/gitlab_routing_helper_spec.rb' diff --git a/.rubocop_todo/rspec/repeated_example_group_description.yml b/.rubocop_todo/rspec/repeated_example_group_description.yml index 826ac2a6838..27eea044e6c 100644 --- a/.rubocop_todo/rspec/repeated_example_group_description.yml +++ b/.rubocop_todo/rspec/repeated_example_group_description.yml @@ -36,7 +36,6 @@ RSpec/RepeatedExampleGroupDescription: - 'spec/features/merge_request/user_sees_merge_widget_spec.rb' - 'spec/features/projects/jobs_spec.rb' - 'spec/features/projects/new_project_spec.rb' - - 'spec/features/projects/pipelines/legacy_pipeline_spec.rb' - 'spec/features/security/project/private_access_spec.rb' - 'spec/finders/ci/pipelines_for_merge_request_finder_spec.rb' - 'spec/frontend/fixtures/startup_css.rb' diff --git a/.rubocop_todo/rspec/verified_doubles.yml b/.rubocop_todo/rspec/verified_doubles.yml index 8fa03c775be..b880f995669 100644 --- a/.rubocop_todo/rspec/verified_doubles.yml +++ b/.rubocop_todo/rspec/verified_doubles.yml @@ -746,7 +746,6 @@ RSpec/VerifiedDoubles: - 'spec/mailers/emails/service_desk_spec.rb' - 'spec/mailers/notify_spec.rb' - 'spec/metrics_server/metrics_server_spec.rb' - - 'spec/migrations/20210406144743_backfill_total_tuple_count_for_batched_migrations_spec.rb' - 'spec/models/active_session_spec.rb' - 'spec/models/application_record_spec.rb' - 'spec/models/badge_spec.rb' @@ -890,9 +889,6 @@ RSpec/VerifiedDoubles: - 'spec/services/ci/test_failure_history_service_spec.rb' - 'spec/services/ci/update_build_queue_service_spec.rb' - 'spec/services/ci/update_build_state_service_spec.rb' - - 'spec/services/clusters/aws/finalize_creation_service_spec.rb' - - 'spec/services/clusters/aws/provision_service_spec.rb' - - 'spec/services/clusters/aws/verify_provision_status_service_spec.rb' - 'spec/services/clusters/build_kubernetes_namespace_service_spec.rb' - 'spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb' - 'spec/services/clusters/kubernetes/create_or_update_service_account_service_spec.rb' diff --git a/.rubocop_todo/security/io_methods.yml b/.rubocop_todo/security/io_methods.yml index 936bb21d5dc..445afcabb89 100644 --- a/.rubocop_todo/security/io_methods.yml +++ b/.rubocop_todo/security/io_methods.yml @@ -3,4 +3,3 @@ Security/IoMethods: Details: grace period Exclude: - - 'db/migrate/20210301200959_init_schema.rb' diff --git a/.rubocop_todo/style/accessor_grouping.yml b/.rubocop_todo/style/accessor_grouping.yml index a5586813885..2eb60c08170 100644 --- a/.rubocop_todo/style/accessor_grouping.yml +++ b/.rubocop_todo/style/accessor_grouping.yml @@ -55,7 +55,6 @@ Style/AccessorGrouping: - 'lib/gitlab/git/commit.rb' - 'lib/gitlab/graphql/connection_redaction.rb' - 'lib/gitlab/http_io.rb' - - 'lib/gitlab/import_export/group/legacy_tree_restorer.rb' - 'lib/gitlab/import_export/project/tree_restorer.rb' - 'lib/gitlab/sidekiq_daemon/monitor.rb' - 'lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb' diff --git a/.rubocop_todo/style/bare_percent_literals.yml b/.rubocop_todo/style/bare_percent_literals.yml index e98660024db..0380a2e97b8 100644 --- a/.rubocop_todo/style/bare_percent_literals.yml +++ b/.rubocop_todo/style/bare_percent_literals.yml @@ -59,8 +59,6 @@ Style/BarePercentLiterals: - 'spec/features/projects/badges/pipeline_badge_spec.rb' - 'spec/features/projects/issuable_templates_spec.rb' - 'spec/features/projects/jobs_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/uploads/user_uploads_avatar_to_group_spec.rb' diff --git a/.rubocop_todo/style/class_and_module_children.yml b/.rubocop_todo/style/class_and_module_children.yml index 870b0f721b9..38116899ccd 100644 --- a/.rubocop_todo/style/class_and_module_children.yml +++ b/.rubocop_todo/style/class_and_module_children.yml @@ -449,7 +449,6 @@ Style/ClassAndModuleChildren: - 'ee/app/helpers/projects/security/dast_profiles_helper.rb' - 'ee/app/helpers/projects/security/discover_helper.rb' - 'ee/app/helpers/projects/security/sast_configuration_helper.rb' - - 'ee/app/models/analytics/cycle_analytics/group_value_stream.rb' - 'ee/app/models/analytics/devops_adoption.rb' - 'ee/app/models/analytics/devops_adoption/enabled_namespace.rb' - 'ee/app/models/analytics/devops_adoption/snapshot.rb' diff --git a/.rubocop_todo/style/empty_method.yml b/.rubocop_todo/style/empty_method.yml index 65d9da95a40..a876b9361cb 100644 --- a/.rubocop_todo/style/empty_method.yml +++ b/.rubocop_todo/style/empty_method.yml @@ -72,11 +72,8 @@ Style/EmptyMethod: - 'app/services/issuable_base_service.rb' - 'app/services/projects/transfer_service.rb' - 'app/workers/namespaces/root_statistics_worker.rb' - - 'db/migrate/20210420012444_change_web_hook_events_default.rb' - - 'db/migrate/20210507191949_add_remove_on_issue_close_to_labels.rb' - 'db/migrate/20210729123101_confirm_security_bot.rb' - 'db/migrate/20211012134316_clean_up_migrate_merge_request_diff_commit_users.rb' - - 'db/post_migrate/20210511095658_schedule_migrate_project_taggings_context_from_tags_to_topics.rb' - 'db/post_migrate/20210730170823_schedule_security_setting_creation.rb' - 'db/post_migrate/20210823132600_remove_duplicate_dast_site_tokens.rb' - 'db/post_migrate/20210826171758_initialize_throttle_unauthenticated_api_columns.rb' diff --git a/.rubocop_todo/style/format_string.yml b/.rubocop_todo/style/format_string.yml index 827a6a66998..d18cd4d24a8 100644 --- a/.rubocop_todo/style/format_string.yml +++ b/.rubocop_todo/style/format_string.yml @@ -121,14 +121,6 @@ Style/FormatString: - 'app/serializers/build_details_entity.rb' - 'app/services/alert_management/alerts/update_service.rb' - 'app/services/boards/lists/base_create_service.rb' - - 'app/services/clusters/applications/check_progress_service.rb' - - 'app/services/clusters/applications/install_service.rb' - - 'app/services/clusters/applications/upgrade_service.rb' - - 'app/services/clusters/aws/authorize_role_service.rb' - - 'app/services/clusters/aws/finalize_creation_service.rb' - - 'app/services/clusters/aws/verify_provision_status_service.rb' - - 'app/services/clusters/gcp/finalize_creation_service.rb' - - 'app/services/clusters/gcp/verify_provision_status_service.rb' - 'app/services/concerns/update_repository_storage_methods.rb' - 'app/services/concerns/validates_classification_label.rb' - 'app/services/gravatar_service.rb' @@ -243,7 +235,6 @@ Style/FormatString: - 'ee/lib/ee/gitlab/quick_actions/epic_actions.rb' - 'ee/lib/ee/gitlab/quick_actions/issue_actions.rb' - 'ee/lib/ee/gitlab/quick_actions/issue_and_merge_request_actions.rb' - - 'ee/lib/ee/gitlab/scim/deprovision_service.rb' - 'ee/lib/gitlab/analytics/cycle_analytics/stage_events/issue_label_added.rb' - 'ee/lib/gitlab/analytics/cycle_analytics/stage_events/issue_label_removed.rb' - 'ee/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_label_added.rb' @@ -332,7 +323,6 @@ Style/FormatString: - 'spec/models/integrations/datadog_spec.rb' - 'spec/models/serverless/domain_spec.rb' - 'spec/requests/api/graphql/project/jira_projects_spec.rb' - - 'spec/services/clusters/applications/upgrade_service_spec.rb' - 'spec/services/groups/import_export/export_service_spec.rb' - 'spec/services/projects/import_export/export_service_spec.rb' - 'spec/support/helpers/javascript_fixtures_helpers.rb' diff --git a/.rubocop_todo/style/guard_clause.yml b/.rubocop_todo/style/guard_clause.yml index 59aa38fc9f5..586f146c2ba 100644 --- a/.rubocop_todo/style/guard_clause.yml +++ b/.rubocop_todo/style/guard_clause.yml @@ -89,7 +89,6 @@ Style/GuardClause: - 'app/models/clusters/cluster.rb' - 'app/models/clusters/platforms/kubernetes.rb' - 'app/models/commit_range.rb' - - 'app/models/concerns/analytics/cycle_analytics/stage.rb' - 'app/models/concerns/avatarable.rb' - 'app/models/concerns/bulk_insert_safe.rb' - 'app/models/concerns/cache_markdown_field.rb' @@ -173,7 +172,6 @@ Style/GuardClause: - 'app/services/ci/runners/register_runner_service.rb' - 'app/services/ci/update_build_queue_service.rb' - 'app/services/clusters/agent_tokens/track_usage_service.rb' - - 'app/services/clusters/aws/fetch_credentials_service.rb' - 'app/services/commits/commit_patch_service.rb' - 'app/services/commits/create_service.rb' - 'app/services/concerns/alert_management/alert_processing.rb' @@ -274,7 +272,6 @@ Style/GuardClause: - 'config/initializers/postgresql_cte.rb' - 'config/object_store_settings.rb' - 'danger/feature_flag/Dangerfile' - - 'db/migrate/20210302212623_rename_vuln_fingerprints_indexes.rb' - 'db/migrate/20210707095545_add_status_to_merge_request_cleanup_schedules.rb' - 'db/migrate/20210816095826_add_unique_index_on_dast_profile_to_dast_profile_schedules.rb' - 'db/migrate/20210816192041_add_invites_email_success_to_member.rb' @@ -647,7 +644,6 @@ Style/GuardClause: - 'qa/qa/resource/api_fabricator.rb' - 'qa/qa/resource/package.rb' - 'qa/qa/resource/registry_repository.rb' - - 'qa/qa/resource/reusable.rb' - 'qa/qa/resource/user_gpg.rb' - 'qa/qa/runtime/feature.rb' - 'qa/qa/runtime/search.rb' diff --git a/.rubocop_todo/style/if_unless_modifier.yml b/.rubocop_todo/style/if_unless_modifier.yml index 5804fda39e1..515a9ddad6a 100644 --- a/.rubocop_todo/style/if_unless_modifier.yml +++ b/.rubocop_todo/style/if_unless_modifier.yml @@ -243,9 +243,6 @@ Style/IfUnlessModifier: - 'app/services/ci/runners/reconcile_existing_runner_versions_service.rb' - 'app/services/ci/runners/register_runner_service.rb' - 'app/services/ci/update_build_state_service.rb' - - 'app/services/clusters/applications/base_service.rb' - - 'app/services/clusters/aws/fetch_credentials_service.rb' - - 'app/services/clusters/gcp/provision_service.rb' - 'app/services/clusters/update_service.rb' - 'app/services/commits/commit_patch_service.rb' - 'app/services/commits/create_service.rb' @@ -407,7 +404,6 @@ Style/IfUnlessModifier: - 'db/migrate/20210818061156_remove_project_profile_compound_index_from_dast_profile_schedules.rb' - 'db/migrate/20210909184349_add_index_package_id_id_on_package_files.rb' - 'db/migrate/20220324175325_add_key_data_to_secure_files.rb' - - 'db/post_migrate/20210505092746_create_partial_covering_index_for_pending_builds.rb' - 'db/post_migrate/20210629101712_remove_deprecated_modsecurity_columns.rb' - 'db/post_migrate/20210713042000_fix_ci_sources_pipelines_index_names.rb' - 'db/post_migrate/20211021140426_remove_geo_upload_deprecated_fields.rb' @@ -631,7 +627,6 @@ Style/IfUnlessModifier: - 'ee/lib/ee/gitlab/quick_actions/epic_actions.rb' - 'ee/lib/ee/gitlab/quick_actions/issue_actions.rb' - 'ee/lib/ee/gitlab/repository_size_checker.rb' - - 'ee/lib/ee/gitlab/scim/deprovision_service.rb' - 'ee/lib/ee/gitlab/usage_data.rb' - 'ee/lib/ee/sidebars/groups/menus/settings_menu.rb' - 'ee/lib/ee/sidebars/projects/menus/analytics_menu.rb' @@ -1018,8 +1013,6 @@ Style/IfUnlessModifier: - 'qa/qa/page/view.rb' - 'qa/qa/resource/registry_repository.rb' - 'qa/qa/resource/repository/push.rb' - - 'qa/qa/resource/reusable_collection.rb' - - 'qa/qa/resource/runner.rb' - 'qa/qa/resource/snippet.rb' - 'qa/qa/runtime/application_settings.rb' - 'qa/qa/runtime/gpg.rb' diff --git a/.rubocop_todo/style/percent_literal_delimiters.yml b/.rubocop_todo/style/percent_literal_delimiters.yml index b6020baeafd..54945e69974 100644 --- a/.rubocop_todo/style/percent_literal_delimiters.yml +++ b/.rubocop_todo/style/percent_literal_delimiters.yml @@ -176,29 +176,11 @@ Style/PercentLiteralDelimiters: - 'config/initializers_before_autoloader/000_inflections.rb' - 'config/object_store_settings.rb' - 'config/spring.rb' - - 'db/migrate/20210317210338_add_valid_runner_registrars.rb' - - 'db/migrate/20210420120734_initialize_conversion_of_ci_job_artifacts_to_bigint.rb' - - 'db/migrate/20210426094524_initialize_conversion_of_ci_builds_to_bigint.rb' - - 'db/migrate/20210427045604_initialize_conversion_of_ci_build_trace_chunks_to_bigint.rb' - - 'db/migrate/20210427084924_initialize_conversion_of_ci_builds_runner_session_to_bigint.rb' - - 'db/migrate/20210427094931_add_execution_order_index_to_batched_background_migration_jobs.rb' - - 'db/migrate/20210520133032_initialize_conversion_of_taggings_to_bigint.rb' - - 'db/migrate/20210520133440_backfill_taggings_for_bigint_conversion.rb' - - 'db/migrate/20210525085158_initialize_conversion_of_deployments_to_bigint.rb' - - 'db/migrate/20210525085325_backfill_deployments_for_bigint_conversion.rb' - - 'db/migrate/20210525100539_initialize_conversion_of_geo_job_artifact_deleted_events_to_bigint.rb' - - 'db/migrate/20210525100603_backfill_geo_job_artifact_deleted_events_for_bigint_conversion.rb' - 'db/migrate/20210608072312_initialize_conversion_of_ci_stages_to_bigint.rb' - 'db/migrate/20210608072346_backfill_ci_stages_for_bigint_conversion.rb' - 'db/migrate/20210621044000_rename_services_indexes_to_integrations.rb' - 'db/migrate/20210709085759_index_batched_migration_jobs_by_max_value.rb' - 'db/migrate/20210928155022_improve_index_for_error_tracking.rb' - - 'db/post_migrate/20210329102724_add_new_trail_plans.rb' - - 'db/post_migrate/20210420121149_backfill_conversion_of_ci_job_artifacts.rb' - - 'db/post_migrate/20210426094549_backfill_ci_builds_for_bigint_conversion.rb' - - 'db/post_migrate/20210427045711_backfill_ci_build_trace_chunks_for_bigint_conversion.rb' - - 'db/post_migrate/20210427085020_backfill_ci_builds_runner_session_for_bigint_conversion.rb' - - 'db/post_migrate/20210520012430_backfill_pk_conversion_for_self_managed.rb' - 'db/post_migrate/20210823142036_drop_temporary_trigger_for_ci_job_artifacts.rb' - 'db/post_migrate/20210826171758_initialize_throttle_unauthenticated_api_columns.rb' - 'db/post_migrate/20210906130643_drop_temporary_columns_and_triggers_for_taggings.rb' @@ -291,7 +273,6 @@ Style/PercentLiteralDelimiters: - 'ee/spec/controllers/groups/scim_oauth_controller_spec.rb' - 'ee/spec/controllers/groups/sso_controller_spec.rb' - 'ee/spec/controllers/projects/issues_controller_spec.rb' - - 'ee/spec/controllers/projects/legacy_pipelines_controller_spec.rb' - 'ee/spec/controllers/projects/pipelines_controller_spec.rb' - 'ee/spec/controllers/projects/security/configuration_controller_spec.rb' - 'ee/spec/elastic_integration/global_search_spec.rb' @@ -411,7 +392,6 @@ Style/PercentLiteralDelimiters: - 'ee/spec/requests/api/internal/base_spec.rb' - 'ee/spec/requests/api/issues_spec.rb' - 'ee/spec/requests/api/merge_requests_spec.rb' - - 'ee/spec/requests/api/scim_spec.rb' - 'ee/spec/requests/api/wikis_spec.rb' - 'ee/spec/requests/lfs_locks_api_spec.rb' - 'ee/spec/serializers/merge_request_widget_entity_spec.rb' @@ -654,8 +634,6 @@ Style/PercentLiteralDelimiters: - 'spec/features/projects/integrations/user_activates_jira_spec.rb' - 'spec/features/projects/jobs_spec.rb' - 'spec/features/projects/labels/issues_sorted_by_priority_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/tags/developer_views_tags_spec.rb' @@ -916,8 +894,6 @@ Style/PercentLiteralDelimiters: - 'spec/lib/unnested_in_filters/dsl_spec.rb' - 'spec/lib/unnested_in_filters/rewriter_spec.rb' - 'spec/metrics_server/metrics_server_spec.rb' - - 'spec/migrations/add_new_trail_plans_spec.rb' - - 'spec/migrations/change_web_hook_events_default_spec.rb' - 'spec/migrations/reset_severity_levels_to_new_default_spec.rb' - 'spec/models/alert_management/http_integration_spec.rb' - 'spec/models/appearance_spec.rb' diff --git a/.rubocop_todo/style/redundant_self.yml b/.rubocop_todo/style/redundant_self.yml index ec9aaac85dc..ae19cf458be 100644 --- a/.rubocop_todo/style/redundant_self.yml +++ b/.rubocop_todo/style/redundant_self.yml @@ -188,7 +188,6 @@ Style/RedundantSelf: - 'config/initializers/active_record_keyset_pagination.rb' - 'config/initializers/forbid_sidekiq_in_transactions.rb' - 'config/initializers/mail_encoding_patch.rb' - - 'db/post_migrate/20210329102724_add_new_trail_plans.rb' - 'db/post_migrate/20211029102822_add_open_source_plan.rb' - 'ee/app/graphql/resolvers/geo/registries_resolver.rb' - 'ee/app/models/approval_merge_request_rule.rb' @@ -412,7 +411,6 @@ Style/RedundantSelf: - 'qa/qa/resource/events/project.rb' - 'qa/qa/resource/personal_access_token.rb' - 'qa/qa/resource/protected_branch.rb' - - 'qa/qa/resource/reusable.rb' - 'qa/qa/resource/user_gpg.rb' - 'qa/qa/runtime/release.rb' - 'qa/qa/scenario/bootable.rb' diff --git a/.rubocop_todo/style/string_concatenation.yml b/.rubocop_todo/style/string_concatenation.yml index 91eb45f73cf..91376f61e4c 100644 --- a/.rubocop_todo/style/string_concatenation.yml +++ b/.rubocop_todo/style/string_concatenation.yml @@ -22,7 +22,6 @@ Style/StringConcatenation: - 'app/models/wiki.rb' - 'app/models/wiki_page.rb' - 'app/presenters/snippet_blob_presenter.rb' - - 'app/services/clusters/gcp/finalize_creation_service.rb' - 'app/services/feature_flags/update_service.rb' - 'app/services/packages/composer/version_parser_service.rb' - 'app/services/packages/debian/generate_distribution_key_service.rb' @@ -35,7 +34,6 @@ Style/StringConcatenation: - 'config/initializers/1_settings.rb' - 'config/settings.rb' - 'config/spring.rb' - - 'db/migrate/20210412111213_create_security_orchestration_policy_rule_schedule.rb' - 'ee/app/controllers/admin/elasticsearch_controller.rb' - 'ee/app/finders/ee/issuables/label_filter.rb' - 'ee/app/helpers/ee/geo_helper.rb' @@ -271,7 +269,6 @@ Style/StringConcatenation: - 'spec/requests/users_controller_spec.rb' - 'spec/routing/git_http_routing_spec.rb' - 'spec/services/ci/find_exposed_artifacts_service_spec.rb' - - 'spec/services/clusters/gcp/finalize_creation_service_spec.rb' - 'spec/services/clusters/kubernetes/create_or_update_service_account_service_spec.rb' - 'spec/services/error_tracking/list_projects_service_spec.rb' - 'spec/services/groups/update_service_spec.rb' diff --git a/.rubocop_todo/style/symbol_proc.yml b/.rubocop_todo/style/symbol_proc.yml index de4d3f90e7d..4bcd310b899 100644 --- a/.rubocop_todo/style/symbol_proc.yml +++ b/.rubocop_todo/style/symbol_proc.yml @@ -66,8 +66,6 @@ Style/SymbolProc: - 'config/initializers/doorkeeper_openid_connect.rb' - 'config/initializers/mail_encoding_patch.rb' - 'config/settings.rb' - - 'db/migrate/20210318134427_delete_security_findings_without_uuid.rb' - - 'db/migrate/20210503105845_add_project_value_stream_id_to_project_stages.rb' - 'db/post_migrate/20220119094503_populate_audit_event_streaming_verification_token.rb' - 'db/post_migrate/20220803042352_cleanup_mr_attention_request_todos.rb' - 'ee/app/helpers/ee/mirror_helper.rb' diff --git a/app/assets/javascripts/content_editor/components/toolbar_text_style_dropdown.vue b/app/assets/javascripts/content_editor/components/toolbar_text_style_dropdown.vue index 2bf32a70cd1..9c1d1faca48 100644 --- a/app/assets/javascripts/content_editor/components/toolbar_text_style_dropdown.vue +++ b/app/assets/javascripts/content_editor/components/toolbar_text_style_dropdown.vue @@ -1,13 +1,12 @@ <script> -import { GlDropdown, GlDropdownItem, GlTooltipDirective as GlTooltip } from '@gitlab/ui'; +import { GlTooltipDirective as GlTooltip, GlCollapsibleListbox } from '@gitlab/ui'; import { __ } from '~/locale'; import { TEXT_STYLE_DROPDOWN_ITEMS } from '../constants'; import EditorStateObserver from './editor_state_observer.vue'; export default { components: { - GlDropdown, - GlDropdownItem, + GlCollapsibleListbox, EditorStateObserver, }, directives: { @@ -25,15 +24,26 @@ export default { return activeItem ? activeItem.label : this.$options.i18n.placeholder; }, + listboxItems() { + return this.$options.items.map((item) => { + return { + value: item.label, + text: item.label, + }; + }); + }, }, methods: { + mapDropdownItemToCommand(dropdownItem) { + return this.$options.items.find((option) => option.label === dropdownItem); + }, updateActiveItem({ editor }) { this.activeItem = TEXT_STYLE_DROPDOWN_ITEMS.find((item) => editor.isActive(item.contentType, item.commandParams), ); }, execute(item) { - const { editorCommand, contentType, commandParams } = item; + const { editorCommand, contentType, commandParams } = this.mapDropdownItemToCommand(item); const value = commandParams?.level; if (editorCommand) { @@ -46,8 +56,8 @@ export default { this.$emit('execute', { contentType, value }); }, - isActive(item) { - return this.tiptapEditor.isActive(item.contentType, item.commandParams); + isActive(dropdownItem) { + return this.tiptapEditor.isActive(dropdownItem.contentType, dropdownItem.commandParams); }, }, items: TEXT_STYLE_DROPDOWN_ITEMS, @@ -58,25 +68,15 @@ export default { </script> <template> <editor-state-observer @transaction="updateActiveItem"> - <gl-dropdown - v-gl-tooltip="$options.i18n.placeholder" - size="small" - data-qa-selector="text_style_dropdown" + <gl-collapsible-listbox + v-gl-tooltip.hover="$options.i18n.placeholder" + :items="listboxItems" + :toggle-text="activeItemLabel" + :selected="activeItemLabel" :disabled="!activeItem" - :text="activeItemLabel" - lazy - > - <gl-dropdown-item - v-for="(item, index) in $options.items" - :key="index" - is-check-item - :is-checked="isActive(item)" - data-qa-selector="text_style_menu_item" - :data-qa-text-style="item.label" - @click="execute(item)" - > - {{ item.label }} - </gl-dropdown-item> - </gl-dropdown> + :data-qa-text-style="activeItemLabel" + data-qa-selector="text_style_dropdown" + @select="execute" + /> </editor-state-observer> </template> diff --git a/app/assets/javascripts/repository/components/fork_info.vue b/app/assets/javascripts/repository/components/fork_info.vue new file mode 100644 index 00000000000..980fa140eb5 --- /dev/null +++ b/app/assets/javascripts/repository/components/fork_info.vue @@ -0,0 +1,146 @@ +<script> +import { GlIcon, GlLink, GlSkeletonLoader } from '@gitlab/ui'; +import { s__, sprintf, n__ } from '~/locale'; +import { createAlert } from '~/flash'; +import forkDetailsQuery from '../queries/fork_details.query.graphql'; + +export const i18n = { + forkedFrom: s__('ForkedFromProjectPath|Forked from'), + inaccessibleProject: s__('ForkedFromProjectPath|Forked from an inaccessible project.'), + upToDate: s__('ForksDivergence|Up to date with the upstream repository.'), + unknown: s__('ForksDivergence|This fork has diverged from the upstream repository.'), + behind: s__('ForksDivergence|%{behind} %{commit_word} behind'), + ahead: s__('ForksDivergence|%{ahead} %{commit_word} ahead of'), + behindAndAhead: s__('ForksDivergence|%{messages} the upstream repository.'), + error: s__('ForksDivergence|Failed to fetch fork details. Try again later.'), +}; + +export default { + i18n, + components: { + GlIcon, + GlLink, + GlSkeletonLoader, + }, + apollo: { + project: { + query: forkDetailsQuery, + variables() { + return { + projectPath: this.projectPath, + ref: this.selectedRef, + }; + }, + skip() { + return !this.sourceName; + }, + error(error) { + createAlert({ + message: this.$options.i18n.error, + captureError: true, + error, + }); + }, + }, + }, + props: { + projectPath: { + type: String, + required: true, + }, + selectedRef: { + type: String, + required: true, + }, + sourceName: { + type: String, + required: false, + default: '', + }, + sourcePath: { + type: String, + required: false, + default: '', + }, + }, + data() { + return { + project: { + forkDetails: { + ahead: null, + behind: null, + }, + }, + }; + }, + computed: { + isLoading() { + return this.$apollo.queries.project.loading; + }, + ahead() { + return this.project?.forkDetails?.ahead; + }, + behind() { + return this.project?.forkDetails?.behind; + }, + behindText() { + return sprintf(this.$options.i18n.behind, { + behind: this.behind, + commit_word: n__('commit', 'commits', this.behind), + }); + }, + aheadText() { + return sprintf(this.$options.i18n.ahead, { + ahead: this.ahead, + commit_word: n__('commit', 'commits', this.ahead), + }); + }, + isUnknownDivergence() { + return (!this.ahead && this.ahead !== 0) || (!this.behind && this.behind !== 0); + }, + behindAheadMessage() { + const messages = []; + if (this.behind > 0) { + messages.push(this.behindText); + } + if (this.ahead > 0) { + messages.push(this.aheadText); + } + return messages.join(', '); + }, + hasBehindAheadMessage() { + return this.behindAheadMessage.length > 0; + }, + forkDivergenceMessage() { + if (this.isUnknownDivergence) { + return this.$options.i18n.unknown; + } + if (this.hasBehindAheadMessage) { + return sprintf(this.$options.i18n.behindAndAhead, { + messages: this.behindAheadMessage, + }); + } + return this.$options.i18n.upToDate; + }, + }, +}; +</script> + +<template> + <div class="info-well gl-sm-display-flex gl-flex-direction-column"> + <div class="well-segment gl-p-5 gl-w-full gl-display-flex"> + <gl-icon name="fork" :size="16" class="gl-display-block gl-m-4 gl-text-center" /> + <div v-if="sourceName"> + {{ $options.i18n.forkedFrom }} + <gl-link data-qa-selector="forked_from_link" :href="sourcePath">{{ sourceName }}</gl-link> + <gl-skeleton-loader v-if="isLoading" :lines="1" /> + <div v-else class="gl-text-secondary"> + {{ forkDivergenceMessage }} + </div> + </div> + <div v-else data-testid="inaccessible-project" class="gl-align-items-center gl-display-flex"> + {{ $options.i18n.inaccessibleProject }} + </div> + </div> + </div> +</template> diff --git a/app/assets/javascripts/repository/index.js b/app/assets/javascripts/repository/index.js index e9214e3acff..e5d22f50d72 100644 --- a/app/assets/javascripts/repository/index.js +++ b/app/assets/javascripts/repository/index.js @@ -11,6 +11,7 @@ import RefSelector from '~/ref/components/ref_selector.vue'; import App from './components/app.vue'; import Breadcrumbs from './components/breadcrumbs.vue'; import DirectoryDownloadLinks from './components/directory_download_links.vue'; +import ForkInfo from './components/fork_info.vue'; import LastCommit from './components/last_commit.vue'; import BlobControls from './components/blob_controls.vue'; import apolloProvider from './graphql'; @@ -63,6 +64,28 @@ export default function setupVueRepositoryList() { }, }); + const initForkInfo = () => { + const forkEl = document.getElementById('js-fork-info'); + if (!forkEl) { + return null; + } + const { sourceName, sourcePath } = forkEl.dataset; + return new Vue({ + el: forkEl, + apolloProvider, + render(h) { + return h(ForkInfo, { + props: { + projectPath, + selectedRef: ref, + sourceName, + sourcePath, + }, + }); + }, + }); + }; + const initLastCommitApp = () => new Vue({ el: document.getElementById('js-last-commit'), @@ -118,6 +141,7 @@ export default function setupVueRepositoryList() { initLastCommitApp(); initBlobControlsApp(); + initForkInfo(); initRefSwitcher(); router.afterEach(({ params: { path } }) => { diff --git a/app/assets/javascripts/repository/queries/fork_details.query.graphql b/app/assets/javascripts/repository/queries/fork_details.query.graphql new file mode 100644 index 00000000000..d1a37d00d55 --- /dev/null +++ b/app/assets/javascripts/repository/queries/fork_details.query.graphql @@ -0,0 +1,9 @@ +query getForkDetails($projectPath: ID!, $ref: String) { + project(fullPath: $projectPath) { + id + forkDetails(ref: $ref) { + ahead + behind + } + } +} diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 76dd1e4f6b6..507e05b9967 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -479,32 +479,6 @@ module ProjectsHelper format_cached_count(1000, number) end - def fork_divergence_message(counts) - messages = [] - - if counts[:behind].nil? || counts[:ahead].nil? - return s_('ForksDivergence|Fork has diverged from upstream repository') - end - - if counts[:behind] > 0 - messages << s_("ForksDivergence|%{behind} %{commit_word} behind") % { - behind: counts[:behind], commit_word: n_('commit', 'commits', counts[:behind]) - } - end - - if counts[:ahead] > 0 - messages << s_("ForksDivergence|%{ahead} %{commit_word} ahead of") % { - ahead: counts[:ahead], commit_word: n_('commit', 'commits', counts[:ahead]) - } - end - - if messages.blank? - s_('ForksDivergence|Up to date with upstream repository') - else - s_("ForksDivergence|%{messages} upstream repository") % { messages: messages.join(', ') } - end - end - private def localized_access_names diff --git a/app/helpers/url_helper.rb b/app/helpers/url_helper.rb index b4168781b4c..9083ca4e8dd 100644 --- a/app/helpers/url_helper.rb +++ b/app/helpers/url_helper.rb @@ -2,6 +2,10 @@ module UrlHelper def escaped_url(url) + return unless url + Addressable::URI.escape(url) + rescue Addressable::URI::InvalidURIError + nil end end diff --git a/app/views/projects/_files.html.haml b/app/views/projects/_files.html.haml index c278b15cc38..e4eed63f45a 100644 --- a/app/views/projects/_files.html.haml +++ b/app/views/projects/_files.html.haml @@ -4,6 +4,7 @@ - ref = local_assigns.fetch(:ref) { current_ref } - project = local_assigns.fetch(:project) { @project } - add_page_startup_api_call logs_file_project_ref_path(@project, ref, @path, format: "json", offset: 0) +- source = visible_fork_source(@project) - if readme_path = @project.repository.readme_path - add_page_startup_api_call project_blob_path(@project, tree_join(@ref, readme_path), viewer: "rich", format: "json") @@ -17,7 +18,7 @@ = render 'projects/tree/tree_header', tree: @tree, is_project_overview: is_project_overview - if project.forked? && Feature.enabled?(:fork_divergence_counts, @project.fork_source) - = render 'projects/fork_info' + #js-fork-info{ data: { source_name: source ? source.full_name : '', source_path: source ? project_path(source) : '' } } - if is_project_overview .project-buttons.gl-mb-5.js-show-on-project-root{ data: { qa_selector: 'project_buttons' } } diff --git a/app/views/projects/_fork_info.html.haml b/app/views/projects/_fork_info.html.haml deleted file mode 100644 index 7fe30214e97..00000000000 --- a/app/views/projects/_fork_info.html.haml +++ /dev/null @@ -1,14 +0,0 @@ -.info-well.gl-sm-display-flex.gl-flex-direction-column - .well-segment.gl-p-5.gl-w-full.gl-display-flex - .gl-icon.s32.gl-mt-4.gl-mr-4.gl-text-center - = sprite_icon('fork') - - source = visible_fork_source(@project) - - if source - %div - #{ s_('ForkedFromProjectPath|Forked from') } - = link_to source.full_name, project_path(source), data: { qa_selector: 'forked_from_link' } - .gl-text-secondary - = fork_divergence_message(::Projects::Forks::DivergenceCounts.new(@project, @ref).counts) - - else - .gl-py-4 - = s_('ForkedFromProjectPath|Forked from an inaccessible project') diff --git a/app/views/projects/_home_panel.html.haml b/app/views/projects/_home_panel.html.haml index dc426f2f6b7..1154640ccfb 100644 --- a/app/views/projects/_home_panel.html.haml +++ b/app/views/projects/_home_panel.html.haml @@ -60,7 +60,7 @@ #{ s_('ForkedFromProjectPath|Forked from') } = link_to source.full_name, project_path(source), data: { qa_selector: 'forked_from_link' } - else - = s_('ForkedFromProjectPath|Forked from an inaccessible project') + = s_('ForkedFromProjectPath|Forked from an inaccessible project.') = render_if_exists "projects/home_mirror" diff --git a/config/feature_flags/development/markdown_dollar_math.yml b/config/feature_flags/development/markdown_dollar_math.yml deleted file mode 100644 index 842837ea688..00000000000 --- a/config/feature_flags/development/markdown_dollar_math.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: markdown_dollar_math -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94111 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/371180 -milestone: '15.4' -type: development -group: group::project management -default_enabled: false diff --git a/db/docs/achievements.yml b/db/docs/achievements.yml index 20f9d1616b3..04d17defa06 100644 --- a/db/docs/achievements.yml +++ b/db/docs/achievements.yml @@ -1,7 +1,7 @@ --- table_name: achievements classes: -- Achievements::Achivement +- Achievements::Achievement feature_categories: - users description: Achievements which can be created by namespaces to award them to users diff --git a/db/docs/ci_job_artifacts.yml b/db/docs/ci_job_artifacts.yml index bff81fa5ae9..92c43eaf04f 100644 --- a/db/docs/ci_job_artifacts.yml +++ b/db/docs/ci_job_artifacts.yml @@ -2,7 +2,6 @@ table_name: ci_job_artifacts classes: - Ci::JobArtifact -- Gitlab::Ci::JobArtifact feature_categories: - build_artifacts description: Stores artifacts produced by a build. diff --git a/db/docs/dast_pre_scan_verifications.yml b/db/docs/dast_pre_scan_verifications.yml index 45d39335264..cc537aa87d6 100644 --- a/db/docs/dast_pre_scan_verifications.yml +++ b/db/docs/dast_pre_scan_verifications.yml @@ -1,7 +1,7 @@ --- table_name: dast_pre_scan_verifications classes: -- Dast::PreScanVerifications +- Dast::PreScanVerification feature_categories: - dynamic_application_security_testing description: Verification status for DAST Profiles diff --git a/db/docs/dependency_list_exports.yml b/db/docs/dependency_list_exports.yml index 14d222edb06..1597f17c80c 100644 --- a/db/docs/dependency_list_exports.yml +++ b/db/docs/dependency_list_exports.yml @@ -1,5 +1,7 @@ --- table_name: dependency_list_exports +classes: +- Dependencies::DependencyListExport feature_categories: - dependency_management description: Dependency list exported data diff --git a/db/docs/dingtalk_tracker_data.yml b/db/docs/dingtalk_tracker_data.yml index 6994bd805a7..cd9e8f86602 100644 --- a/db/docs/dingtalk_tracker_data.yml +++ b/db/docs/dingtalk_tracker_data.yml @@ -1,7 +1,6 @@ --- table_name: dingtalk_tracker_data -classes: -- Integrations::DingtalkTrackerData +classes: [] feature_categories: - integrations description: Data related to the Dingtalk integration (JiHu-specific, see https://jihulab.com/gitlab-cn/gitlab/-/merge_requests/417). diff --git a/db/docs/ghost_user_migrations.yml b/db/docs/ghost_user_migrations.yml index d90eca9f153..245e6735cd6 100644 --- a/db/docs/ghost_user_migrations.yml +++ b/db/docs/ghost_user_migrations.yml @@ -1,7 +1,7 @@ --- table_name: ghost_user_migrations classes: -- GhostUserMigration +- Users::GhostUserMigration feature_categories: - users description: Users records awaiting for their associated records to be migrated to ghost user diff --git a/db/docs/integrations.yml b/db/docs/integrations.yml index 52d719e19da..5bb4f448541 100644 --- a/db/docs/integrations.yml +++ b/db/docs/integrations.yml @@ -2,6 +2,7 @@ table_name: integrations classes: - Integration +- Integrations::AppleAppStore - Integrations::Asana - Integrations::Assembla - Integrations::Bamboo @@ -9,7 +10,9 @@ classes: - Integrations::BaseCi - Integrations::BaseIssueTracker - Integrations::BaseMonitoring +- Integrations::BaseSlackNotification - Integrations::BaseSlashCommands +- Integrations::BaseThirdPartyWiki - Integrations::Bugzilla - Integrations::Buildkite - Integrations::Campfire diff --git a/db/docs/merge_request_predictions.yml b/db/docs/merge_request_predictions.yml index 60680a73583..9d1ef61c66a 100644 --- a/db/docs/merge_request_predictions.yml +++ b/db/docs/merge_request_predictions.yml @@ -1,7 +1,7 @@ --- table_name: merge_request_predictions classes: -- MergeRequest::Prediction +- MergeRequest::Predictions feature_categories: - workflow_automation description: Includes machine learning model predictions diff --git a/db/docs/ml_candidate_params.yml b/db/docs/ml_candidate_params.yml index 2d0dc29795e..334ba7420e8 100644 --- a/db/docs/ml_candidate_params.yml +++ b/db/docs/ml_candidate_params.yml @@ -1,9 +1,9 @@ --- table_name: ml_candidate_params classes: - - Ml::CandidateParams +- Ml::CandidateParam feature_categories: - - mlops +- mlops description: Configuration parameters recorded for a Machine Learning model candidate introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95168 milestone: '15.4' diff --git a/db/docs/namespace_bans.yml b/db/docs/namespace_bans.yml index af68cf0b48b..dbb1c012bda 100644 --- a/db/docs/namespace_bans.yml +++ b/db/docs/namespace_bans.yml @@ -1,10 +1,10 @@ --- table_name: namespace_bans classes: - - NamespaceBan +- Namespaces::NamespaceBan feature_categories: - - instance_resiliency +- instance_resiliency description: Contains users banned from namespaces introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91271 -milestone: "15.2" +milestone: '15.2' gitlab_schema: gitlab_main diff --git a/db/docs/namespace_details.yml b/db/docs/namespace_details.yml index d256085bf00..35e57d7c686 100644 --- a/db/docs/namespace_details.yml +++ b/db/docs/namespace_details.yml @@ -1,7 +1,7 @@ --- table_name: namespace_details classes: -- NamespaceDetail +- Namespace::Detail feature_categories: - subgroups description: Used to store details for namespaces diff --git a/db/docs/packages_rpm_repository_files.yml b/db/docs/packages_rpm_repository_files.yml index 7044b58e22a..4e62774e3c8 100644 --- a/db/docs/packages_rpm_repository_files.yml +++ b/db/docs/packages_rpm_repository_files.yml @@ -1,7 +1,7 @@ --- table_name: packages_rpm_repository_files classes: -- Packages::RPM::RepositoryFile +- Packages::Rpm::RepositoryFile feature_categories: - package_registry description: Package registry file links and file metadata for RPM packages diff --git a/db/docs/project_wiki_repository_states.yml b/db/docs/project_wiki_repository_states.yml index c12e904b339..e6faeadf8a6 100644 --- a/db/docs/project_wiki_repository_states.yml +++ b/db/docs/project_wiki_repository_states.yml @@ -1,7 +1,7 @@ --- table_name: project_wiki_repository_states classes: -- ProjectWikiRepositoryState +- Geo::ProjectWikiRepositoryState feature_categories: - geo_replication description: Separate table for project wikis containing Geo verification metadata. diff --git a/db/docs/slack_api_scopes.yml b/db/docs/slack_api_scopes.yml index 467880dccf5..184c5bbebd4 100644 --- a/db/docs/slack_api_scopes.yml +++ b/db/docs/slack_api_scopes.yml @@ -1,7 +1,7 @@ --- table_name: slack_api_scopes classes: -- Integrations::KnownSlackApiScope +- Integrations::SlackWorkspace::ApiScope feature_categories: - integrations description: Data related to the Slack application integration. diff --git a/db/docs/slack_integrations_scopes.yml b/db/docs/slack_integrations_scopes.yml index b09c1b4a51e..773bf9dd57d 100644 --- a/db/docs/slack_integrations_scopes.yml +++ b/db/docs/slack_integrations_scopes.yml @@ -1,7 +1,7 @@ --- table_name: slack_integrations_scopes classes: -- Integrations::SlackIntegrationsKnownApiScope +- Integrations::SlackWorkspace::IntegrationApiScope feature_categories: - integrations description: Data related to the Slack application integration. diff --git a/db/docs/timelog_categories.yml b/db/docs/timelog_categories.yml index 8448e3dd59f..a8874837a35 100644 --- a/db/docs/timelog_categories.yml +++ b/db/docs/timelog_categories.yml @@ -1,7 +1,7 @@ --- table_name: timelog_categories classes: -- TimelogCategory +- TimeTracking::TimelogCategory feature_categories: - team_planning description: Categories that can be associated to a timelog to categorize them diff --git a/db/docs/user_namespace_callouts.yml b/db/docs/user_namespace_callouts.yml index 3f057e21aee..7ffc2e0c209 100644 --- a/db/docs/user_namespace_callouts.yml +++ b/db/docs/user_namespace_callouts.yml @@ -1,10 +1,9 @@ --- table_name: user_namespace_callouts -classes: -- Users::NamespaceCallout +classes: [] feature_categories: - navigation description: Contains records of which users have dismissed a callout, grouped by namespace. introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91092 milestone: '15.2' -gitlab_schema: gitlab_main +gitlab_schema: gitlab_main
\ No newline at end of file diff --git a/db/docs/views/postgres_partitioned_tables.yml b/db/docs/views/postgres_partitioned_tables.yml index ddec7550e80..c23b582072e 100644 --- a/db/docs/views/postgres_partitioned_tables.yml +++ b/db/docs/views/postgres_partitioned_tables.yml @@ -2,7 +2,7 @@ view_name: postgres_partitioned_tables description: TODO classes: -- Gitlab::Database::PostgresPartitionedTables +- Gitlab::Database::PostgresPartitionedTable feature_categories: - database introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45591 diff --git a/db/docs/vulnerability_remediations.yml b/db/docs/vulnerability_remediations.yml index d522a2147c0..e2de83561d1 100644 --- a/db/docs/vulnerability_remediations.yml +++ b/db/docs/vulnerability_remediations.yml @@ -1,6 +1,7 @@ --- table_name: vulnerability_remediations classes: +- Security::Ingestion::Tasks::IngestRemediations::RemediationBulkInsertProxy - Vulnerabilities::Remediation feature_categories: - vulnerability_management diff --git a/db/docs/vulnerability_state_transitions.yml b/db/docs/vulnerability_state_transitions.yml index 0f168f7a0ee..1a669b1527d 100644 --- a/db/docs/vulnerability_state_transitions.yml +++ b/db/docs/vulnerability_state_transitions.yml @@ -1,9 +1,9 @@ --- table_name: vulnerability_state_transitions classes: - - Vulnerabilities::VulnerabilityStateTransition +- Vulnerabilities::StateTransition feature_categories: - - vulnerability_management +- vulnerability_management description: Stores state transitions of a Vulnerability introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/87957 milestone: '15.1' diff --git a/db/docs/work_item_parent_links.yml b/db/docs/work_item_parent_links.yml index 3966154a17e..ca933345fc1 100644 --- a/db/docs/work_item_parent_links.yml +++ b/db/docs/work_item_parent_links.yml @@ -1,7 +1,6 @@ --- table_name: work_item_parent_links classes: -- WorkItem - WorkItems::ParentLink feature_categories: - team_planning diff --git a/db/migrate/20230105170414_rename_amount_used_column_on_ci_namespace_monthly_usages_table.rb b/db/migrate/20230105170414_rename_amount_used_column_on_ci_namespace_monthly_usages_table.rb new file mode 100644 index 00000000000..ff59b1e5987 --- /dev/null +++ b/db/migrate/20230105170414_rename_amount_used_column_on_ci_namespace_monthly_usages_table.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +class RenameAmountUsedColumnOnCiNamespaceMonthlyUsagesTable < Gitlab::Database::Migration[2.1] + enable_lock_retries! + + TRIGGER_NAME = 'sync_namespaces_amount_used_columns' + def up + rename_column :ci_namespace_monthly_usages, :amount_used, :tmp_amount_used + rename_column :ci_namespace_monthly_usages, :new_amount_used, :amount_used + rename_column :ci_namespace_monthly_usages, :tmp_amount_used, :new_amount_used + + remove_rename_triggers(:ci_namespace_monthly_usages, TRIGGER_NAME) + install_rename_triggers(:ci_namespace_monthly_usages, :amount_used, :new_amount_used, trigger_name: TRIGGER_NAME) + end + + def down + rename_column :ci_namespace_monthly_usages, :amount_used, :tmp_amount_used + rename_column :ci_namespace_monthly_usages, :new_amount_used, :amount_used + rename_column :ci_namespace_monthly_usages, :tmp_amount_used, :new_amount_used + + remove_rename_triggers(:ci_namespace_monthly_usages, TRIGGER_NAME) + install_rename_triggers(:ci_namespace_monthly_usages, :amount_used, :new_amount_used, trigger_name: TRIGGER_NAME) + end +end diff --git a/db/post_migrate/20230105172120_sync_new_amount_used_with_amount_used_on_ci_namespace_monthly_usages_table.rb b/db/post_migrate/20230105172120_sync_new_amount_used_with_amount_used_on_ci_namespace_monthly_usages_table.rb new file mode 100644 index 00000000000..4181d6a0f92 --- /dev/null +++ b/db/post_migrate/20230105172120_sync_new_amount_used_with_amount_used_on_ci_namespace_monthly_usages_table.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class SyncNewAmountUsedWithAmountUsedOnCiNamespaceMonthlyUsagesTable < Gitlab::Database::Migration[2.1] + disable_ddl_transaction! + + restrict_gitlab_migration gitlab_schema: :gitlab_ci + + def up + # This migration will only run on rollback, there is no need for the positive case + end + + def down + project_usages = define_batchable_model('ci_namespace_monthly_usages') + + project_usages.each_batch(of: 500) do |batch| + batch.where('amount_used > 0').update_all('new_amount_used = amount_used') + end + end +end diff --git a/db/post_migrate/20230105180002_remove_new_amount_used_column_on_ci_namespace_monthly_usages.rb b/db/post_migrate/20230105180002_remove_new_amount_used_column_on_ci_namespace_monthly_usages.rb new file mode 100644 index 00000000000..cebda3e353e --- /dev/null +++ b/db/post_migrate/20230105180002_remove_new_amount_used_column_on_ci_namespace_monthly_usages.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +class RemoveNewAmountUsedColumnOnCiNamespaceMonthlyUsages < Gitlab::Database::Migration[2.1] + enable_lock_retries! + + TRIGGER_NAME = 'sync_namespaces_amount_used_columns' + def up + remove_rename_triggers :ci_namespace_monthly_usages, TRIGGER_NAME + remove_column :ci_namespace_monthly_usages, :new_amount_used + end + + def down + return if column_exists?(:ci_namespace_monthly_usages, :new_amount_used) + + # rubocop:disable Migration/SchemaAdditionMethodsNoPost, Migration/AddColumnsToWideTables + add_column :ci_namespace_monthly_usages, :new_amount_used, :decimal, default: 0.0, + precision: 18, scale: 2, null: false + # rubocop:enable Migration/SchemaAdditionMethodsNoPost, Migration/AddColumnsToWideTables + + install_rename_triggers :ci_namespace_monthly_usages, :amount_used, :new_amount_used, trigger_name: TRIGGER_NAME + end +end diff --git a/db/post_migrate/20230111125148_add_user_id_and_source_id_and_source_type_and_member_role_id_index_to_members.rb b/db/post_migrate/20230111125148_add_user_id_and_source_id_and_source_type_and_member_role_id_index_to_members.rb new file mode 100644 index 00000000000..82e2ea8bf29 --- /dev/null +++ b/db/post_migrate/20230111125148_add_user_id_and_source_id_and_source_type_and_member_role_id_index_to_members.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +class AddUserIdAndSourceIdAndSourceTypeAndMemberRoleIdIndexToMembers < Gitlab::Database::Migration[2.1] + disable_ddl_transaction! + + INDEX_NAME = 'idx_members_on_user_and_source_and_source_type_and_member_role' + + def up + add_concurrent_index :members, [:user_id, :source_id, :source_type, :member_role_id], name: INDEX_NAME + end + + def down + remove_concurrent_index_by_name :members, name: INDEX_NAME + end +end diff --git a/db/post_migrate/20230111125150_drop_user_id_and_source_id_and_source_type_index_from_members.rb b/db/post_migrate/20230111125150_drop_user_id_and_source_id_and_source_type_index_from_members.rb new file mode 100644 index 00000000000..c1c56a4073c --- /dev/null +++ b/db/post_migrate/20230111125150_drop_user_id_and_source_id_and_source_type_index_from_members.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +class DropUserIdAndSourceIdAndSourceTypeIndexFromMembers < Gitlab::Database::Migration[2.1] + disable_ddl_transaction! + + INDEX_NAME = 'index_members_on_user_id_source_id_source_type' + + def up + remove_concurrent_index_by_name :members, name: INDEX_NAME + end + + def down + add_concurrent_index :members, [:user_id, :source_id, :source_type], name: INDEX_NAME + end +end diff --git a/db/schema_migrations/20230105170414 b/db/schema_migrations/20230105170414 new file mode 100644 index 00000000000..6892cba20ac --- /dev/null +++ b/db/schema_migrations/20230105170414 @@ -0,0 +1 @@ +14de51f7ba812f5a4159e18f2f537ea91e21c1f5fc6c297417409c815c2ac0be
\ No newline at end of file diff --git a/db/schema_migrations/20230105172120 b/db/schema_migrations/20230105172120 new file mode 100644 index 00000000000..d849fb97d65 --- /dev/null +++ b/db/schema_migrations/20230105172120 @@ -0,0 +1 @@ +b3c4386dd49156991f2c9efe2516f96540d0bad81965a7be56f319a4dbe13580
\ No newline at end of file diff --git a/db/schema_migrations/20230105180002 b/db/schema_migrations/20230105180002 new file mode 100644 index 00000000000..94ce14f4739 --- /dev/null +++ b/db/schema_migrations/20230105180002 @@ -0,0 +1 @@ +3dcf0ced36dc29ebb3e79bbe137e7e0ca76e74d30bebaec5971e91eb858ae145
\ No newline at end of file diff --git a/db/schema_migrations/20230111125148 b/db/schema_migrations/20230111125148 new file mode 100644 index 00000000000..d152198f42c --- /dev/null +++ b/db/schema_migrations/20230111125148 @@ -0,0 +1 @@ +3df52ce2b3bfb29884d73cb69aa317ccca8f13c06a4e5cc6622347c52b599c50
\ No newline at end of file diff --git a/db/schema_migrations/20230111125150 b/db/schema_migrations/20230111125150 new file mode 100644 index 00000000000..21009223bc2 --- /dev/null +++ b/db/schema_migrations/20230111125150 @@ -0,0 +1 @@ +414c3da79aa6ae6b6a609b7dae715c0121f62d84a76400b745c0b8eaf27433e0
\ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 14a30a5ca3a..710ea844fb3 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -225,15 +225,6 @@ RETURN NULL; END $$; -CREATE FUNCTION sync_namespaces_amount_used_columns() RETURNS trigger - LANGUAGE plpgsql - AS $$ -BEGIN - NEW."new_amount_used" := NEW."amount_used"; - RETURN NEW; -END; -$$; - CREATE FUNCTION trigger_1a857e8db6cd() RETURNS trigger LANGUAGE plpgsql AS $$ @@ -13052,11 +13043,10 @@ CREATE TABLE ci_namespace_monthly_usages ( id bigint NOT NULL, namespace_id bigint NOT NULL, date date NOT NULL, - amount_used numeric(18,2) DEFAULT 0.0 NOT NULL, notification_level smallint DEFAULT 100 NOT NULL, shared_runners_duration integer DEFAULT 0 NOT NULL, created_at timestamp with time zone, - new_amount_used numeric(18,4) DEFAULT 0.0 NOT NULL, + amount_used numeric(18,4) DEFAULT 0.0 NOT NULL, CONSTRAINT ci_namespace_monthly_usages_year_month_constraint CHECK ((date = date_trunc('month'::text, (date)::timestamp with time zone))) ); @@ -28327,6 +28317,8 @@ CREATE INDEX idx_keys_expires_at_and_before_expiry_notification_undelivered ON k CREATE INDEX idx_members_created_at_user_id_invite_token ON members USING btree (created_at) WHERE ((invite_token IS NOT NULL) AND (user_id IS NULL)); +CREATE INDEX idx_members_on_user_and_source_and_source_type_and_member_role ON members USING btree (user_id, source_id, source_type, member_role_id); + CREATE INDEX idx_merge_requests_on_id_and_merge_jid ON merge_requests USING btree (id, merge_jid) WHERE ((merge_jid IS NOT NULL) AND (state_id = 4)); CREATE INDEX idx_merge_requests_on_merged_state ON merge_requests USING btree (id) WHERE (state_id = 3); @@ -30025,8 +30017,6 @@ CREATE INDEX index_members_on_user_id_and_access_level_requested_at_is_null ON m CREATE INDEX index_members_on_user_id_created_at ON members USING btree (user_id, created_at) WHERE ((ldap = true) AND ((type)::text = 'GroupMember'::text) AND ((source_type)::text = 'Namespace'::text)); -CREATE INDEX index_members_on_user_id_source_id_source_type ON members USING btree (user_id, source_id, source_type); - CREATE INDEX index_merge_request_assignees_on_merge_request_id ON merge_request_assignees USING btree (merge_request_id); CREATE UNIQUE INDEX index_merge_request_assignees_on_merge_request_id_and_user_id ON merge_request_assignees USING btree (merge_request_id, user_id); @@ -33121,8 +33111,6 @@ CREATE TRIGGER nullify_merge_request_metrics_build_data_on_update BEFORE UPDATE CREATE TRIGGER projects_loose_fk_trigger AFTER DELETE ON projects REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records(); -CREATE TRIGGER sync_namespaces_amount_used_columns BEFORE INSERT OR UPDATE ON ci_namespace_monthly_usages FOR EACH ROW EXECUTE FUNCTION sync_namespaces_amount_used_columns(); - CREATE TRIGGER trigger_1a857e8db6cd BEFORE INSERT OR UPDATE ON vulnerability_occurrences FOR EACH ROW EXECUTE FUNCTION trigger_1a857e8db6cd(); CREATE TRIGGER trigger_delete_project_namespace_on_project_delete AFTER DELETE ON projects FOR EACH ROW WHEN ((old.project_namespace_id IS NOT NULL)) EXECUTE FUNCTION delete_associated_project_namespace(); diff --git a/doc/administration/gitaly/index.md b/doc/administration/gitaly/index.md index 32b44552b1a..b2b6962a222 100644 --- a/doc/administration/gitaly/index.md +++ b/doc/administration/gitaly/index.md @@ -570,9 +570,9 @@ To migrate to Gitaly Cluster: [repository storage recommendations](praefect.md#repository-storage-recommendations). 1. Create and configure [Gitaly Cluster](praefect.md). 1. Configure the existing Gitaly instance [to use TCP](praefect.md#use-tcp-for-existing-gitlab-instances), if not already configured that way. -1. [Move the repositories](../operations/moving_repositories.md#move-repositories). To migrate to +1. [Move the repositories](../operations/moving_repositories.md#moving-repositories). To migrate to Gitaly Cluster, existing repositories stored outside Gitaly Cluster must be moved. There is no - automatic migration but the moves can be scheduled with the GitLab API. + automatic migration, but the moves can be scheduled with the GitLab API. Even if you don't use the `default` repository storage, you must ensure it is configured. [Read more about this limitation](configure_gitaly.md#gitlab-requires-a-default-repository-storage). @@ -583,7 +583,7 @@ If the limitations and tradeoffs of Gitaly Cluster are found to be not suitable off Gitaly Cluster to a sharded Gitaly instance: 1. Create and configure a new [Gitaly server](configure_gitaly.md#run-gitaly-on-its-own-server). -1. [Move the repositories](../operations/moving_repositories.md#move-repositories) to the newly created storage. You can +1. [Move the repositories](../operations/moving_repositories.md#moving-repositories) to the newly created storage. You can move them by shard or by group, which gives you the opportunity to spread them over multiple Gitaly servers. ## Direct access to Git in GitLab diff --git a/doc/administration/job_logs.md b/doc/administration/job_logs.md index 324739696a3..c8702260ccb 100644 --- a/doc/administration/job_logs.md +++ b/doc/administration/job_logs.md @@ -39,22 +39,10 @@ To change the location where the job logs are stored: :::TabTitle Linux package (Omnibus) 1. Optional. If you have existing job logs, pause continuous integration data - processing. Jobs in progress are not affected, based on how - [data flow](#data-flow) works. - -1. Edit `/etc/gitlab/gitlab.rb`: - - ```ruby - sidekiq['queue_selector'] = true - sidekiq['queue_groups'] = [ - "feature_category!=continuous_integration" - ] - ``` - -1. Save the file and reconfigure GitLab: + processing by temporarily stopping Sidekiq: ```shell - sudo gitlab-ctl reconfigure + sudo gitlab-ctl stop sidekiq ``` 1. Set the new storage location in `/etc/gitlab/gitlab.rb`: @@ -72,15 +60,16 @@ To change the location where the job logs are stored: 1. Use `rsync` to move job logs from the current location to the new location: ```shell - sudo rsync -avzh --remove-source-files --ignore-existing --progress /var/opt/gitlab/gitlab-ci/builds/ /mnt/gitlab-ci/builds + sudo rsync -avzh --remove-source-files --ignore-existing --progress /var/opt/gitlab/gitlab-ci/builds/ /mnt/gitlab-ci/builds/ ``` Use `--ignore-existing` so you don't override new job logs with older versions of the same log. -1. Resume continuous integration data processing by editing `/etc/gitlab/gitlab.rb` and removing the `sidekiq` setting you updated earlier. -1. Save the file and reconfigure GitLab: + +1. If you opted to pause the continuous integration data processing, you can + start Sidekiq again: ```shell - sudo gitlab-ctl reconfigure + sudo gitlab-ctl start sidekiq ``` 1. Remove the old job logs storage location: @@ -91,6 +80,17 @@ To change the location where the job logs are stored: :::TabTitle Self-compiled (source) +1. Optional. If you have existing job logs, pause continuous integration data + processing by temporarily stopping Sidekiq: + + ```shell + # For systems running systemd + sudo systemctl stop gitlab-sidekiq + + # For systems running SysV init + sudo service gitlab stop + ``` + 1. Edit `/home/git/gitlab/config/gitlab.yml` to set the new storage location: ```yaml @@ -109,6 +109,31 @@ To change the location where the job logs are stored: sudo service gitlab restart ``` +1. Use `rsync` to move job logs from the current location to the new location: + + ```shell + sudo rsync -avzh --remove-source-files --ignore-existing --progress /home/git/gitlab/builds/ /mnt/gitlab-ci/builds/ + ``` + + Use `--ignore-existing` so you don't override new job logs with older versions of the same log. + +1. If you opted to pause the continuous integration data processing, you can + start Sidekiq again: + + ```shell + # For systems running systemd + sudo systemctl start gitlab-sidekiq + + # For systems running SysV init + sudo service gitlab start + ``` + +1. Remove the old job logs storage location: + + ```shell + sudo rm -rf /home/git/gitlab/builds + ``` + ::EndTabs ## Uploading logs to object storage diff --git a/doc/administration/operations/moving_repositories.md b/doc/administration/operations/moving_repositories.md index 64118082467..5066f6d99d8 100644 --- a/doc/administration/operations/moving_repositories.md +++ b/doc/administration/operations/moving_repositories.md @@ -8,7 +8,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w You can move all repositories managed by GitLab to another file system or another server. -## Moving data within a GitLab instance +## Moving data in a GitLab instance The GitLab API is the recommended way to move Git repositories: @@ -28,10 +28,10 @@ For more information, see: querying and scheduling group repository moves **(PREMIUM SELF)**. - [Migrate to Gitaly Cluster](../gitaly/index.md#migrate-to-gitaly-cluster). -### Move Repositories +### Moving Repositories GitLab repositories can be associated with projects, groups, and snippets. Each of these types -have a separate API to schedule the respective repositories to move. To move all repositories +has a separate API to schedule the respective repositories to move. To move all repositories on a GitLab instance, each of these types must be scheduled to move for each storage. WARNING: @@ -41,7 +41,7 @@ To move repositories into a [Gitaly Cluster](../gitaly/index.md#gitaly-cluster) WARNING: Repositories can be **permanently deleted** by a call to `/projects/:project_id/repository_storage_moves` that attempts to move a project already stored in a Gitaly Cluster back into that cluster. -See [this issue for more details](https://gitlab.com/gitlab-org/gitaly/-/issues/3752). This was fixed in +See [this issue for more details](https://gitlab.com/gitlab-org/gitaly/-/issues/3752). This issue was fixed in GitLab 14.3.0 and backported to [14.2.4](https://about.gitlab.com/releases/2021/09/17/gitlab-14-2-4-released/), [14.1.6](https://about.gitlab.com/releases/2021/09/27/gitlab-14-1-6-released/), @@ -59,16 +59,16 @@ To move repositories: so that the new storages receives all new projects. This stops new projects from being created on existing storages while the migration is in progress. 1. Schedule repository moves for: - - [All projects](#bulk-schedule-project-moves) or + - [All projects](#move-all-projects) or [individual projects](../../api/project_repository_storage_moves.md#schedule-a-repository-storage-move-for-a-project). - - [All snippets](#bulk-schedule-snippet-moves) or + - [All snippets](#move-all-snippets) or [individual snippets](../../api/snippet_repository_storage_moves.md#schedule-a-repository-storage-move-for-a-snippet). - - [All groups](#bulk-schedule-group-moves) or + - [All groups](#move-all-groups) or [individual groups](../../api/group_repository_storage_moves.md#schedule-a-repository-storage-move-for-a-group). **(PREMIUM SELF)** -### Bulk schedule project moves +#### Move all projects -Use the API to schedule project moves: +To move all projects by using the API: 1. [Schedule repository storage moves for all projects on a storage shard](../../api/project_repository_storage_moves.md#schedule-repository-storage-moves-for-all-projects-on-a-storage-shard) using the API. For example: @@ -103,9 +103,9 @@ Use the API to schedule project moves: 1. Repeat for each storage as required. -### Bulk schedule snippet moves +#### Move all snippets -Use the API to schedule snippet moves: +To move all snippets by using the API: 1. [Schedule repository storage moves for all snippets on a storage shard](../../api/snippet_repository_storage_moves.md#schedule-repository-storage-moves-for-all-snippets-on-a-storage-shard). For example: @@ -116,8 +116,8 @@ Use the API to schedule snippet moves: "https://gitlab.example.com/api/v4/snippet_repository_storage_moves" ``` -1. [Query the most recent repository moves](../../api/snippet_repository_storage_moves.md#retrieve-all-snippet-repository-storage-moves) -The response indicates either: +1. [Query the most recent repository moves](../../api/snippet_repository_storage_moves.md#retrieve-all-snippet-repository-storage-moves). + The response indicates either: - The moves have completed successfully. The `state` field is `finished`. - The moves are in progress. Re-query the repository move until it completes successfully. - The moves have failed. Most failures are temporary and are solved by rescheduling the move. @@ -132,12 +132,12 @@ The response indicates either: 1. Repeat for each storage as required. -### Bulk schedule group moves **(PREMIUM SELF)** +#### Move all groups **(PREMIUM SELF)** -Use the API to schedule group moves: +To move all groups by using the API: -1. [Schedule repository storage moves for all groups on a storage shard](../../api/group_repository_storage_moves.md#schedule-repository-storage-moves-for-all-groups-on-a-storage-shard) -. For example: +1. [Schedule repository storage moves for all groups on a storage shard](../../api/group_repository_storage_moves.md#schedule-repository-storage-moves-for-all-groups-on-a-storage-shard). + For example: ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \ @@ -146,8 +146,8 @@ Use the API to schedule group moves: "https://gitlab.example.com/api/v4/group_repository_storage_moves" ``` -1. [Query the most recent repository moves](../../api/group_repository_storage_moves.md#retrieve-all-group-repository-storage-moves) -. The response indicates either: +1. [Query the most recent repository moves](../../api/group_repository_storage_moves.md#retrieve-all-group-repository-storage-moves). + The response indicates either: - The moves have completed successfully. The `state` field is `finished`. - The moves are in progress. Re-query the repository move until it completes successfully. - The moves have failed. Most failures are temporary and are solved by rescheduling the move. @@ -164,7 +164,7 @@ Use the API to schedule group moves: ## Migrating to another GitLab instance -[Using the API](#moving-data-within-a-gitlab-instance) isn't an option if you are migrating to a new +[Using the API](#moving-data-in-a-gitlab-instance) isn't an option if you are migrating to a new GitLab environment, for example: - From a single-node GitLab to a scaled-out architecture. @@ -188,7 +188,7 @@ Each of the approaches we list can or does overwrite data in the target director For either Gitaly or Gitaly Cluster targets, the GitLab [backup and restore capability](../../raketasks/backup_restore.md) should be used. Git repositories are accessed, managed, and stored on GitLab servers by Gitaly as a database. Data loss -can result from directly accessing and copying Gitaly's files using tools like `rsync`. +can result from directly accessing and copying Gitaly files using tools like `rsync`. - From GitLab 13.3, backup performance can be improved by [processing multiple repositories concurrently](../../raketasks/backup_gitlab.md#back-up-git-repositories-concurrently). diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index 3edf01cf216..a5e37ba7489 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -19739,6 +19739,7 @@ Represents a requirement test report. | <a id="testreportcreatedat"></a>`createdAt` | [`Time!`](#time) | Timestamp of when the test report was created. | | <a id="testreportid"></a>`id` | [`ID!`](#id) | ID of the test report. | | <a id="testreportstate"></a>`state` | [`TestReportState!`](#testreportstate) | State of the test report. | +| <a id="testreportuseslegacyiid"></a>`usesLegacyIid` | [`Boolean`](#boolean) | Indicates whether the test report was generated with references to legacy requirement IIDs. | ### `TestReportSummary` diff --git a/doc/api/group_repository_storage_moves.md b/doc/api/group_repository_storage_moves.md index ea7764c3f39..a207775cf45 100644 --- a/doc/api/group_repository_storage_moves.md +++ b/doc/api/group_repository_storage_moves.md @@ -240,7 +240,7 @@ Example response: Schedules repository storage moves for each group repository stored on the source storage shard. This endpoint migrates all groups at once. For more information, see -[Bulk schedule group moves](../administration/operations/moving_repositories.md#bulk-schedule-group-moves). +[Move all groups](../administration/operations/moving_repositories.md#move-all-groups). ```plaintext POST /group_repository_storage_moves diff --git a/doc/api/project_repository_storage_moves.md b/doc/api/project_repository_storage_moves.md index 0f094f62af2..bed4d4c9d88 100644 --- a/doc/api/project_repository_storage_moves.md +++ b/doc/api/project_repository_storage_moves.md @@ -8,9 +8,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31285) in GitLab 13.0. -Project repositories including wiki and design repositories can be moved between storages. This can be useful when -[migrating to Gitaly Cluster](../administration/gitaly/index.md#migrate-to-gitaly-cluster), -for example. +Project repositories including wiki and design repositories can be moved between storages. This API can help you when +[migrating to Gitaly Cluster](../administration/gitaly/index.md#migrate-to-gitaly-cluster), for example. As project repository storage moves are processed, they transition through different states. Values of `state` are: @@ -250,8 +249,8 @@ Example response: > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47142) in GitLab 13.7. Schedules repository storage moves for each project repository stored on the source storage shard. -This endpoint migrates all projects at once. For more information, see -[Bulk schedule project moves](../administration/operations/moving_repositories.md#bulk-schedule-project-moves). +This endpoint migrates all projects at once. For more information, see +[Move all projects](../administration/operations/moving_repositories.md#move-all-projects). ```plaintext POST /project_repository_storage_moves diff --git a/doc/api/settings.md b/doc/api/settings.md index 671db520c23..4e684b1721e 100644 --- a/doc/api/settings.md +++ b/doc/api/settings.md @@ -252,6 +252,8 @@ Example responses: **(PREMIUM SELF)** ## List of settings that can be accessed via API calls +> Fields `housekeeping_full_repack_period`, `housekeeping_gc_period`, and `housekeeping_incremental_repack_period` [deprecated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106963) in GitLab 15.8. Use `housekeeping_optimize_repository_period` instead. + In general, all settings are optional. Certain settings though, if enabled, require other settings to be set to function properly. These requirements are listed in the descriptions of the relevant settings. @@ -377,11 +379,11 @@ listed in the descriptions of the relevant settings. | `help_text` **(PREMIUM)** | string | no | GitLab server administrator information. | | `hide_third_party_offers` | boolean | no | Do not display offers from third parties in GitLab. | | `home_page_url` | string | no | Redirect to this URL when not logged in. | -| `housekeeping_bitmaps_enabled` | boolean | no | Git pack file bitmap creation is always enabled and cannot be changed via API and UI. This API field is deprecated and always returns `true`. | -| `housekeeping_enabled` | boolean | no | (**If enabled, requires either:** `housekeeping_bitmaps_enabled`, `housekeeping_full_repack_period`, `housekeeping_gc_period`, and `housekeeping_incremental_repack_period` **or** `housekeeping_optimize_repository_period`) Enable or disable Git housekeeping. | -| `housekeeping_full_repack_period` | integer | no | **Deprecated** (use `housekeeping_optimize_repository_period` instead): Number of Git pushes after which an incremental `git repack` is run. | -| `housekeeping_gc_period` | integer | no | **Deprecated** (use `housekeeping_optimize_repository_period` instead): Number of Git pushes after which `git gc` is run. | -| `housekeeping_incremental_repack_period` | integer | no | **Deprecated** (use `housekeeping_optimize_repository_period` instead): Number of Git pushes after which an incremental `git repack` is run. | +| `housekeeping_bitmaps_enabled` | boolean | no | Deprecated. Git pack file bitmap creation is always enabled and cannot be changed via API and UI. Always returns `true`. | +| `housekeeping_enabled` | boolean | no | Enable or disable Git housekeeping. Requires additional fields to be set. For more information, see [Housekeeping fields](#housekeeping-fields). | +| `housekeeping_full_repack_period` | integer | no | Deprecated. Number of Git pushes after which an incremental `git repack` is run. Use `housekeeping_optimize_repository_period` instead. For more information, see [Housekeeping fields](#housekeeping-fields). | +| `housekeeping_gc_period` | integer | no | Deprecated. Number of Git pushes after which `git gc` is run. Use `housekeeping_optimize_repository_period` instead. For more information, see [Housekeeping fields](#housekeeping-fields). | +| `housekeeping_incremental_repack_period` | integer | no | Deprecated. Number of Git pushes after which an incremental `git repack` is run. Use `housekeeping_optimize_repository_period` instead. For more information, see [Housekeeping fields](#housekeeping-fields).| | `housekeeping_optimize_repository_period`| integer | no | Number of Git pushes after which an incremental `git repack` is run. | | `html_emails_enabled` | boolean | no | Enable HTML emails. | | `import_sources` | array of strings | no | Sources to allow project import from, possible values: `github`, `bitbucket`, `bitbucket_server`, `gitlab`, `fogbugz`, `git`, `gitlab_project`, `gitea`, `manifest`, and `phabricator`. | @@ -524,6 +526,28 @@ listed in the descriptions of the relevant settings. | `jira_connect_application_key` | String | no | Application ID of the OAuth application that should be used to authenticate with the GitLab.com for Jira Cloud app | | `jira_connect_proxy_url` | String | no | URL of the GitLab instance that should be used as a proxy for the GitLab.com for Jira Cloud app | +## Housekeeping fields + +::Tabs + +:::TabTitle 15.8 and later + +If the `housekeeping_optimize_repository_period` +field is set to an integer, housekeeping operations are performed after the number +of Git pushes you specify. + +:::TabTitle 15.7 and earlier + +The `housekeeping_enabled` field enables or disables +Git housekeeping. To function properly, this field requires `housekeeping_optimize_repository_period` +to be set, or _all_ of these values to be set: + +- `housekeeping_bitmaps_enabled` +- `housekeeping_full_repack_period` +- `housekeeping_gc_period` + +::EndTabs + ### Package Registry: Package file size limits The package file size limits are not part of the Application settings API. diff --git a/doc/api/snippet_repository_storage_moves.md b/doc/api/snippet_repository_storage_moves.md index 29061bcbfb9..90cbe19112c 100644 --- a/doc/api/snippet_repository_storage_moves.md +++ b/doc/api/snippet_repository_storage_moves.md @@ -9,7 +9,7 @@ type: reference > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49228) in GitLab 13.8. -Snippet repositories can be moved between storages. This can be useful when +Snippet repositories can be moved between storages. This API can help you when [migrating to Gitaly Cluster](../administration/gitaly/index.md#migrate-to-gitaly-cluster), for example. @@ -267,7 +267,7 @@ Example response: Schedules repository storage moves for each snippet repository stored on the source storage shard. This endpoint migrates all snippets at once. For more information, see -[Bulk schedule snippet moves](../administration/operations/moving_repositories.md#bulk-schedule-snippet-moves). +[Move all snippets](../administration/operations/moving_repositories.md#move-all-snippets). ```plaintext POST /snippet_repository_storage_moves diff --git a/doc/ci/quick_start/index.md b/doc/ci/quick_start/index.md index 8d71f4569e5..b9e0e39396c 100644 --- a/doc/ci/quick_start/index.md +++ b/doc/ci/quick_start/index.md @@ -138,11 +138,8 @@ For the complete `.gitlab-ci.yml` syntax, see [the full `.gitlab-ci.yml` keyword - Use the [pipeline editor](../pipeline_editor/index.md) to edit your `.gitlab-ci.yml` file. - Each job contains a script section and belongs to a stage: - - The [`default`](../yaml/index.md#default) keyword is for - custom defaults, for example with [`before_script`](../yaml/index.md#before_script) - and [`after_script`](../yaml/index.md#after_script). - [`stage`](../yaml/index.md#stage) describes the sequential execution of jobs. - Jobs in a single stage run in parallel as long as there are available runners. + If there are runners available, jobs in a single stage run in parallel. - Use the [`needs` keyword](../yaml/index.md#needs) to run jobs out of stage order. This creates a [Directed Acyclic Graph (DAG)](../directed_acyclic_graph/index.md). - You can set additional configuration to customize how your jobs and stages perform: @@ -152,6 +149,10 @@ For the complete `.gitlab-ci.yml` syntax, see [the full `.gitlab-ci.yml` keyword - Keep information across jobs and stages persistent in a pipeline with [`cache`](../yaml/index.md#cache) and [`artifacts`](../yaml/index.md#artifacts). These keywords are ways to store dependencies and job output, even when using ephemeral runners for each job. + - Use the [`default`](../yaml/index.md#default) keyword to specify additional + configurations that are applied to all jobs. This keyword is often used to define + [`before_script`](../yaml/index.md#before_script) and [`after_script`](../yaml/index.md#after_script) + sections that should run on every job. ## Related topics diff --git a/doc/development/ee_features.md b/doc/development/ee_features.md index 5e236c3e322..4eb5bedef1c 100644 --- a/doc/development/ee_features.md +++ b/doc/development/ee_features.md @@ -209,7 +209,10 @@ To test an EE class that doesn't exist in CE, create the spec file as you normal would in the `ee/spec` directory, but without the second `ee/` subdirectory. For example, a class `ee/app/models/vulnerability.rb` would have its tests in `ee/spec/models/vulnerability_spec.rb`. -By default, licensed features are disabled while specs are running. To effectively test your feature +By default, licensed features are disabled for specs in `specs/`. +Specs in the `ee/spec` directory have Starter license initialized by default. + +To effectively test your feature you must explicitly enable the feature using the `stub_licensed_features` helper, for example: ```ruby diff --git a/doc/user/markdown.md b/doc/user/markdown.md index 17b91eb9483..6f2dd8bb3be 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -343,6 +343,9 @@ backslash <code>\</code>. Otherwise the diff highlight does not render corre ### Math +> - LaTeX-compatible fencing [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/21757) in GitLab 15.4 [with a flag](../administration/feature_flags.md) named `markdown_dollar_math`. Disabled by default. Enabled on GitLab.com. +> - LaTeX-compatible fencing [generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/371180) in GitLab 15.8. Feature flag `markdown_dollar_math` removed. + [View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#math). Math written in LaTeX syntax is rendered with [KaTeX](https://github.com/KaTeX/KaTeX). @@ -350,8 +353,10 @@ _KaTeX only supports a [subset](https://katex.org/docs/supported.html) of LaTeX. This syntax also works for the Asciidoctor `:stem: latexmath`. For details, see the [Asciidoctor user manual](https://asciidoctor.org/docs/user-manual/#activating-stem-support). -Math written between dollar signs with backticks (``$`...`$``) is rendered -inline with the text. Math written in a [code block](#code-spans-and-blocks) with +Math written between dollar signs with backticks (``$`...`$``) or single dollar signs (`$...$`) +is rendered inline with the text. + +Math written between double dollar signs (`$$...$$`) or in a [code block](#code-spans-and-blocks) with the language declared as `math` is rendered on a separate line: ````markdown @@ -362,6 +367,14 @@ This math is on a separate line: ```math a^2+b^2=c^2 ``` + +This math is on a separate line: $$a^2+b^2=c^2$$ + +This math is on a separate line: + +$$ +a^2+b^2=c^2 +$$ ```` This math is inline: $`a^2+b^2=c^2`$. @@ -372,25 +385,6 @@ This math is on a separate line: a^2+b^2=c^2 ``` -#### LaTeX-compatible fencing - -> Introduced in GitLab 15.4 [with a flag](../administration/feature_flags.md) named `markdown_dollar_math`. Disabled by default. Enabled on GitLab.com. - -[View this topic in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#latex-compatible-fencing). - -FLAG: -On self-managed GitLab, by default this feature is not available. To make it available per group, -ask an administrator to [enable the feature flag](../administration/feature_flags.md) named `markdown_dollar_math`. -On GitLab.com, this feature is available. -The feature is not ready for production use. - -Math written between dollar signs (`$...$`) is rendered -inline with the text. Math written between double dollar signs (`$$...$$`) is rendered -on a separate line: - -````markdown -This math is inline: $a^2+b^2=c^2$. - This math is on a separate line: $$a^2+b^2=c^2$$ This math is on a separate line: @@ -398,10 +392,6 @@ This math is on a separate line: $$ a^2+b^2=c^2 $$ -```` - -<!-- Uncomment the example below when the flag is enabled on GitLab.com --> -<!-- This math is inline: $a^2+b^2=c^2$. This math is on a separate line: $$a^2+b^2=c^2$$ @@ -409,7 +399,7 @@ This math is on a separate line: $$ a^2+b^2=c^2 -$$ --> +$$ ### Task lists diff --git a/lib/api/concerns/packages/debian_distribution_endpoints.rb b/lib/api/concerns/packages/debian_distribution_endpoints.rb index 76b996f2301..6fe3f432edb 100644 --- a/lib/api/concerns/packages/debian_distribution_endpoints.rb +++ b/lib/api/concerns/packages/debian_distribution_endpoints.rb @@ -80,10 +80,10 @@ module API use :optional_distribution_params end post '/' do - authorize_create_package!(project_or_group) + authorize_create_package!(project_or_group(:read_project)) distribution_params = declared_params(include_missing: false) - result = ::Packages::Debian::CreateDistributionService.new(project_or_group, current_user, distribution_params).execute + result = ::Packages::Debian::CreateDistributionService.new(project_or_group(:read_project), current_user, distribution_params).execute created_distribution = result.payload[:distribution] if result.success? @@ -183,7 +183,7 @@ module API use :optional_distribution_params end put '/:codename' do - authorize_create_package!(project_or_group) + authorize_create_package!(project_or_group(:read_project)) distribution_params = declared_params(include_missing: false).except(:codename) result = ::Packages::Debian::UpdateDistributionService.new(distribution, distribution_params).execute @@ -214,7 +214,7 @@ module API use :optional_distribution_params end delete '/:codename' do - authorize_destroy_package!(project_or_group) + authorize_destroy_package!(project_or_group(:read_project)) accepted! if distribution.destroy diff --git a/lib/api/group_debian_distributions.rb b/lib/api/group_debian_distributions.rb index 0364e2e7b56..8b6d4b8c4b2 100644 --- a/lib/api/group_debian_distributions.rb +++ b/lib/api/group_debian_distributions.rb @@ -19,7 +19,7 @@ module API namespace ':id/-' do helpers do - def project_or_group + def project_or_group(_ = nil) user_group end end diff --git a/lib/api/project_debian_distributions.rb b/lib/api/project_debian_distributions.rb index 1e27f5c8856..856b4097b5a 100644 --- a/lib/api/project_debian_distributions.rb +++ b/lib/api/project_debian_distributions.rb @@ -14,13 +14,13 @@ module API after_validation do require_packages_enabled! - not_found! unless ::Feature.enabled?(:debian_packages, user_project) + not_found! unless ::Feature.enabled?(:debian_packages, project_or_group) end namespace ':id' do helpers do - def project_or_group - user_project + def project_or_group(action = :read_package) + user_project(action: action) end end diff --git a/lib/banzai/filter/math_filter.rb b/lib/banzai/filter/math_filter.rb index 1d854d6599b..e096f1753ed 100644 --- a/lib/banzai/filter/math_filter.rb +++ b/lib/banzai/filter/math_filter.rb @@ -61,7 +61,7 @@ module Banzai def call @nodes_count = 0 - process_dollar_pipeline if Feature.enabled?(:markdown_dollar_math, group) + process_dollar_pipeline process_dollar_backtick_inline process_math_codeblock diff --git a/lib/tasks/gitlab/db.rake b/lib/tasks/gitlab/db.rake index f0264456201..9c92aa5eb28 100644 --- a/lib/tasks/gitlab/db.rake +++ b/lib/tasks/gitlab/db.rake @@ -407,7 +407,12 @@ namespace :gitlab do Rails.application.eager_load! tables = Gitlab::Database.database_base_models.flat_map { |_, m| m.connection.tables } - classes = tables.index_with { [] } + + views = Gitlab::Database.database_base_models.flat_map { |_, m| m.connection.views } + + sources = tables + views + + classes = sources.index_with { [] } Gitlab::Database.database_base_models.each do |_, model_class| model_class @@ -421,12 +426,13 @@ namespace :gitlab do version = Gem::Version.new(File.read('VERSION')) milestone = version.release.segments[0..1].join('.') - tables.each do |table_name| - file = File.join(DB_DOCS_PATH, "#{table_name}.yml") + sources.each do |source_name| + file = dictionary_file_path(source_name, views) + key_name = "#{data_source_type(source_name, views)}_name" table_metadata = { - 'table_name' => table_name, - 'classes' => classes[table_name]&.sort&.uniq, + key_name => source_name, + 'classes' => classes[source_name]&.sort&.uniq, 'feature_categories' => [], 'description' => nil, 'introduced_by_url' => nil, @@ -438,12 +444,12 @@ namespace :gitlab do existing_metadata = YAML.safe_load(File.read(file)) - if existing_metadata['table_name'] != table_metadata['table_name'] - existing_metadata['table_name'] = table_metadata['table_name'] + if existing_metadata[key_name] != table_metadata[key_name] + existing_metadata[key_name] = table_metadata[key_name] outdated = true end - if existing_metadata['classes'].difference(table_metadata['classes']).any? + if existing_metadata['classes'].sort != table_metadata['classes'].sort existing_metadata['classes'] = table_metadata['classes'] outdated = true end @@ -455,6 +461,20 @@ namespace :gitlab do end end + private + + def data_source_type(source_name, views) + return 'view' if views.include?(source_name) + + 'table' + end + + def dictionary_file_path(source_name, views) + sub_directory = views.include?(source_name) ? 'views' : '' + + File.join(DB_DOCS_PATH, sub_directory, "#{source_name}.yml") + end + # Temporary disable this, see https://gitlab.com/gitlab-org/gitlab/-/merge_requests/85760#note_998452069 # Rake::Task['db:migrate'].enhance do # Rake::Task['gitlab:db:dictionary:generate'].invoke if Rails.env.development? diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 71fbff57787..24f33c09bcd 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -17760,7 +17760,7 @@ msgstr "" msgid "ForkedFromProjectPath|Forked from" msgstr "" -msgid "ForkedFromProjectPath|Forked from an inaccessible project" +msgid "ForkedFromProjectPath|Forked from an inaccessible project." msgstr "" msgid "Forking in progress" @@ -17775,13 +17775,16 @@ msgstr "" msgid "ForksDivergence|%{behind} %{commit_word} behind" msgstr "" -msgid "ForksDivergence|%{messages} upstream repository" +msgid "ForksDivergence|%{messages} the upstream repository." msgstr "" -msgid "ForksDivergence|Fork has diverged from upstream repository" +msgid "ForksDivergence|Failed to fetch fork details. Try again later." msgstr "" -msgid "ForksDivergence|Up to date with upstream repository" +msgid "ForksDivergence|This fork has diverged from the upstream repository." +msgstr "" + +msgid "ForksDivergence|Up to date with the upstream repository." msgstr "" msgid "Format: %{dateFormat}" diff --git a/qa/qa/page/component/content_editor.rb b/qa/qa/page/component/content_editor.rb index e9fc575ae39..a9abda42610 100644 --- a/qa/qa/page/component/content_editor.rb +++ b/qa/qa/page/component/content_editor.rb @@ -15,7 +15,6 @@ module QA base.view 'app/assets/javascripts/content_editor/components/toolbar_text_style_dropdown.vue' do element :text_style_dropdown - element :text_style_menu_item end base.view 'app/assets/javascripts/content_editor/components/toolbar_image_button.vue' do @@ -33,9 +32,7 @@ module QA # wait for text style option to become active after typing has_active_element?(:text_style_dropdown, wait: 1) click_element(:text_style_dropdown) - within_element(:text_style_dropdown) do - click_element(:text_style_menu_item, text_style: heading) - end + find_element(:text_style_dropdown).find('li', text: heading).click end end diff --git a/qa/qa/page/project/show.rb b/qa/qa/page/project/show.rb index 168bfd6aa0a..e00458bfc3b 100644 --- a/qa/qa/page/project/show.rb +++ b/qa/qa/page/project/show.rb @@ -47,7 +47,7 @@ module QA element :tree_holder, '.tree-holder' # rubocop:disable QA/ElementWithPattern end - view 'app/views/projects/_fork_info.html.haml' do + view 'app/assets/javascripts/repository/components/fork_info.vue' do element :forked_from_link end diff --git a/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb b/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb index 83691cdf143..9f6b1d38bd7 100644 --- a/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb +++ b/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb @@ -6,11 +6,7 @@ module QA include_context 'with gitlab project migration' # this spec is used as a sanity test for gitlab migration because it can run outside of orchestrated setup - context 'with import within same instance', orchestrated: false, import: false, quarantine: { - type: :test_environment, - issue: "https://gitlab.com/gitlab-org/gitlab/-/issues/383605", - only: { job: "review-qa" } - } do + context 'with import within same instance', orchestrated: false, import: false do let!(:source_project_with_readme) { true } let!(:source_gitlab_address) { Runtime::Scenario.gitlab_address } let!(:source_admin_api_client) { admin_api_client } diff --git a/spec/controllers/projects/releases/evidences_controller_spec.rb b/spec/controllers/projects/releases/evidences_controller_spec.rb index 68433969d69..879cbc543e9 100644 --- a/spec/controllers/projects/releases/evidences_controller_spec.rb +++ b/spec/controllers/projects/releases/evidences_controller_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Projects::Releases::EvidencesController do +RSpec.describe Projects::Releases::EvidencesController, :with_license do let!(:project) { create(:project, :repository, :public) } let_it_be(:private_project) { create(:project, :repository, :private) } let_it_be(:developer) { create(:user) } diff --git a/spec/features/groups/navbar_spec.rb b/spec/features/groups/navbar_spec.rb index 180ccab78bc..a52e2d95fed 100644 --- a/spec/features/groups/navbar_spec.rb +++ b/spec/features/groups/navbar_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Group navbar', feature_category: :navigation do +RSpec.describe 'Group navbar', :with_license, feature_category: :navigation do include NavbarStructureHelper include WikiHelpers diff --git a/spec/features/issues/group_label_sidebar_spec.rb b/spec/features/issues/group_label_sidebar_spec.rb index b26030fe8d0..41450ba3373 100644 --- a/spec/features/issues/group_label_sidebar_spec.rb +++ b/spec/features/issues/group_label_sidebar_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Group label on issue', feature_category: :team_planning do +RSpec.describe 'Group label on issue', :with_license, feature_category: :team_planning do it 'renders link to the project issues page', :js do group = create(:group) project = create(:project, :public, namespace: group) diff --git a/spec/features/issues/user_sees_sidebar_updates_in_realtime_spec.rb b/spec/features/issues/user_sees_sidebar_updates_in_realtime_spec.rb index b9a25f47da9..91b18454af5 100644 --- a/spec/features/issues/user_sees_sidebar_updates_in_realtime_spec.rb +++ b/spec/features/issues/user_sees_sidebar_updates_in_realtime_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Issues > Real-time sidebar', :js, feature_category: :team_planning do +RSpec.describe 'Issues > Real-time sidebar', :js, :with_license, feature_category: :team_planning do let_it_be(:project) { create(:project, :public) } let_it_be(:issue) { create(:issue, project: project) } let_it_be(:user) { create(:user) } diff --git a/spec/features/markdown/sandboxed_mermaid_spec.rb b/spec/features/markdown/sandboxed_mermaid_spec.rb index 26b397a1fd5..0282d02d809 100644 --- a/spec/features/markdown/sandboxed_mermaid_spec.rb +++ b/spec/features/markdown/sandboxed_mermaid_spec.rb @@ -23,7 +23,7 @@ RSpec.describe 'Sandboxed Mermaid rendering', :js, feature_category: :team_plann context 'in an issue' do let(:issue) { create(:issue, project: project, description: description) } - it 'includes mermaid frame correctly' do + it 'includes mermaid frame correctly', :with_license do visit project_issue_path(project, issue) wait_for_requests diff --git a/spec/features/projects/navbar_spec.rb b/spec/features/projects/navbar_spec.rb index d182ae1bb84..6090d132e3a 100644 --- a/spec/features/projects/navbar_spec.rb +++ b/spec/features/projects/navbar_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Project navbar', feature_category: :projects do +RSpec.describe 'Project navbar', :with_license, feature_category: :projects do include NavbarStructureHelper include WaitForRequests diff --git a/spec/features/projects_spec.rb b/spec/features/projects_spec.rb index ec0b3f9d81b..84702b3a6bb 100644 --- a/spec/features/projects_spec.rb +++ b/spec/features/projects_spec.rb @@ -213,7 +213,7 @@ RSpec.describe 'Project', feature_category: :projects do end end - describe 'showing information about source of a project fork' do + describe 'showing information about source of a project fork', :js do let(:user) { create(:user) } let(:base_project) { create(:project, :public, :repository) } let(:forked_project) { fork_project(base_project, user, repository: true) } @@ -224,6 +224,7 @@ RSpec.describe 'Project', feature_category: :projects do it 'shows a link to the source project when it is available', :sidekiq_might_not_need_inline do visit project_path(forked_project) + wait_for_requests expect(page).to have_content('Forked from') expect(page).to have_link(base_project.full_name) @@ -233,6 +234,7 @@ RSpec.describe 'Project', feature_category: :projects do forked_project visit project_path(base_project) + wait_for_requests expect(page).not_to have_content('In fork network of') expect(page).not_to have_content('Forked from') @@ -243,7 +245,7 @@ RSpec.describe 'Project', feature_category: :projects do Projects::DestroyService.new(base_project, base_project.first_owner).execute visit project_path(forked_project) - + wait_for_requests expect(page).to have_content('Forked from an inaccessible project') end @@ -255,7 +257,7 @@ RSpec.describe 'Project', feature_category: :projects do Projects::DestroyService.new(forked_project, user).execute visit project_path(fork_of_fork) - + wait_for_requests expect(page).to have_content("Forked from") expect(page).to have_link(base_project.full_name) end diff --git a/spec/features/protected_tags_spec.rb b/spec/features/protected_tags_spec.rb index 1aadc7ce90a..c2058a5c345 100644 --- a/spec/features/protected_tags_spec.rb +++ b/spec/features/protected_tags_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Protected Tags', :js, feature_category: :source_code_management do +RSpec.describe 'Protected Tags', :js, :with_license, feature_category: :source_code_management do include ProtectedTagHelpers let(:project) { create(:project, :repository) } diff --git a/spec/frontend/content_editor/components/toolbar_text_style_dropdown_spec.js b/spec/frontend/content_editor/components/toolbar_text_style_dropdown_spec.js index 3ebb305afbf..5a725ac1ca4 100644 --- a/spec/frontend/content_editor/components/toolbar_text_style_dropdown_spec.js +++ b/spec/frontend/content_editor/components/toolbar_text_style_dropdown_spec.js @@ -1,4 +1,4 @@ -import { GlDropdown, GlDropdownItem } from '@gitlab/ui'; +import { GlCollapsibleListbox } from '@gitlab/ui'; import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; import EditorStateObserver from '~/content_editor/components/editor_state_observer.vue'; import ToolbarTextStyleDropdown from '~/content_editor/components/toolbar_text_style_dropdown.vue'; @@ -22,8 +22,6 @@ describe('content_editor/components/toolbar_text_style_dropdown', () => { const buildWrapper = (propsData = {}) => { wrapper = shallowMountExtended(ToolbarTextStyleDropdown, { stubs: { - GlDropdown, - GlDropdownItem, EditorStateObserver, }, provide: { @@ -35,7 +33,7 @@ describe('content_editor/components/toolbar_text_style_dropdown', () => { }, }); }; - const findDropdown = () => wrapper.findComponent(GlDropdown); + const findListbox = () => wrapper.findComponent(GlCollapsibleListbox); beforeEach(() => { buildEditor(); @@ -48,9 +46,10 @@ describe('content_editor/components/toolbar_text_style_dropdown', () => { it('renders all text styles as dropdown items', () => { buildWrapper(); - TEXT_STYLE_DROPDOWN_ITEMS.forEach((textStyle) => { - expect(wrapper.findByText(textStyle.label).exists()).toBe(true); + TEXT_STYLE_DROPDOWN_ITEMS.forEach((textStyle, index) => { + expect(findListbox().props('items').at(index).text).toContain(textStyle.label); }); + expect(findListbox().props('items').length).toBe(TEXT_STYLE_DROPDOWN_ITEMS.length); }); describe('when there is an active item', () => { @@ -69,19 +68,11 @@ describe('content_editor/components/toolbar_text_style_dropdown', () => { }); it('displays the active text style label as the dropdown toggle text', () => { - expect(findDropdown().props().text).toBe(activeTextStyle.label); + expect(findListbox().props('toggleText')).toBe(activeTextStyle.label); }); it('sets dropdown as enabled', () => { - expect(findDropdown().props().disabled).toBe(false); - }); - - it('sets active item as active', () => { - const activeItem = wrapper - .findAllComponents(GlDropdownItem) - .filter((item) => item.text() === activeTextStyle.label) - .at(0); - expect(activeItem.props().isChecked).toBe(true); + expect(findListbox().props('disabled')).toBe(false); }); }); @@ -93,11 +84,11 @@ describe('content_editor/components/toolbar_text_style_dropdown', () => { }); it('sets dropdown as disabled', () => { - expect(findDropdown().props().disabled).toBe(true); + expect(findListbox().props('disabled')).toBe(true); }); it('sets dropdown toggle text to Text style', () => { - expect(findDropdown().props().text).toBe('Text style'); + expect(findListbox().props('toggleText')).toBe('Text style'); }); }); @@ -109,7 +100,7 @@ describe('content_editor/components/toolbar_text_style_dropdown', () => { const { editorCommand, commandParams } = textStyle; const commands = mockChainedCommands(tiptapEditor, [editorCommand, 'focus', 'run']); - wrapper.findAllComponents(GlDropdownItem).at(index).vm.$emit('click'); + findListbox().vm.$emit('select', TEXT_STYLE_DROPDOWN_ITEMS[index].label); expect(commands[editorCommand]).toHaveBeenCalledWith(commandParams || {}); expect(commands.focus).toHaveBeenCalled(); expect(commands.run).toHaveBeenCalled(); @@ -121,7 +112,7 @@ describe('content_editor/components/toolbar_text_style_dropdown', () => { buildWrapper(); const { contentType, commandParams } = textStyle; - wrapper.findAllComponents(GlDropdownItem).at(index).vm.$emit('click'); + findListbox().vm.$emit('select', TEXT_STYLE_DROPDOWN_ITEMS[index].label); expect(wrapper.emitted('execute')).toEqual([ [ { diff --git a/spec/frontend/fixtures/issues.rb b/spec/frontend/fixtures/issues.rb index bc5ece20032..1e6baf30a76 100644 --- a/spec/frontend/fixtures/issues.rb +++ b/spec/frontend/fixtures/issues.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Projects::IssuesController, '(JavaScript fixtures)', type: :controller do +RSpec.describe Projects::IssuesController, '(JavaScript fixtures)', :with_license, type: :controller do include JavaScriptFixturesHelpers let(:user) { create(:user, feed_token: 'feedtoken:coldfeed') } diff --git a/spec/frontend/repository/components/fork_info_spec.js b/spec/frontend/repository/components/fork_info_spec.js new file mode 100644 index 00000000000..c23d5ae5823 --- /dev/null +++ b/spec/frontend/repository/components/fork_info_spec.js @@ -0,0 +1,122 @@ +import Vue from 'vue'; +import VueApollo from 'vue-apollo'; +import { GlSkeletonLoader, GlIcon, GlLink } from '@gitlab/ui'; +import createMockApollo from 'helpers/mock_apollo_helper'; +import waitForPromises from 'helpers/wait_for_promises'; +import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; +import { createAlert } from '~/flash'; + +import ForkInfo, { i18n } from '~/repository/components/fork_info.vue'; +import forkDetailsQuery from '~/repository/queries/fork_details.query.graphql'; +import { propsForkInfo } from '../mock_data'; + +jest.mock('~/flash'); + +describe('ForkInfo component', () => { + let wrapper; + let mockResolver; + const forkInfoError = new Error('Something went wrong'); + + Vue.use(VueApollo); + + const createCommitData = ({ ahead = 3, behind = 7 }) => { + return { + data: { + project: { id: '1', forkDetails: { ahead, behind, __typename: 'ForkDetails' } }, + }, + }; + }; + + const createComponent = (props = {}, data = {}, isRequestFailed = false) => { + mockResolver = isRequestFailed + ? jest.fn().mockRejectedValue(forkInfoError) + : jest.fn().mockResolvedValue(createCommitData(data)); + + wrapper = shallowMountExtended(ForkInfo, { + apolloProvider: createMockApollo([[forkDetailsQuery, mockResolver]]), + propsData: { ...propsForkInfo, ...props }, + }); + return waitForPromises(); + }; + + const findLink = () => wrapper.findComponent(GlLink); + const findSkeleton = () => wrapper.findComponent(GlSkeletonLoader); + const findIcon = () => wrapper.findComponent(GlIcon); + const findDivergenceMessage = () => wrapper.find('.gl-text-secondary'); + const findInaccessibleMessage = () => wrapper.findByTestId('inaccessible-project'); + it('displays a skeleton while loading data', async () => { + createComponent(); + expect(findSkeleton().exists()).toBe(true); + }); + + it('does not display skeleton when data is loaded', async () => { + await createComponent(); + expect(findSkeleton().exists()).toBe(false); + }); + + it('renders fork icon', async () => { + await createComponent(); + expect(findIcon().exists()).toBe(true); + }); + + it('queries the data when sourceName is present', async () => { + await createComponent(); + expect(mockResolver).toHaveBeenCalled(); + }); + + it('does not query the data when sourceName is empty', async () => { + await createComponent({ sourceName: null }); + expect(mockResolver).not.toHaveBeenCalled(); + }); + + it('renders inaccessible message when fork source is not available', async () => { + await createComponent({ sourceName: '' }); + const message = findInaccessibleMessage(); + expect(message.exists()).toBe(true); + expect(message.text()).toBe(i18n.inaccessibleProject); + }); + + it('shows source project name with a link to a repo', async () => { + await createComponent(); + const link = findLink(); + expect(link.text()).toBe(propsForkInfo.sourceName); + expect(link.attributes('href')).toBe(propsForkInfo.sourcePath); + }); + + it('renders unknown divergence message when divergence is unknown', async () => { + await createComponent({}, { ahead: null, behind: null }); + expect(findDivergenceMessage().text()).toBe(i18n.unknown); + }); + + it('shows correct divergence message when data is present', async () => { + await createComponent(); + expect(findDivergenceMessage().text()).toMatchInterpolatedText( + '7 commits behind, 3 commits ahead of the upstream repository.', + ); + }); + + it('renders up to date message when divergence is unknown', async () => { + await createComponent({}, { ahead: 0, behind: 0 }); + expect(findDivergenceMessage().text()).toBe(i18n.upToDate); + }); + + it('renders commits ahead message', async () => { + await createComponent({}, { behind: 0 }); + expect(findDivergenceMessage().text()).toBe('3 commits ahead of the upstream repository.'); + }); + + it('renders commits behind message', async () => { + await createComponent({}, { ahead: 0 }); + + expect(findDivergenceMessage().text()).toBe('7 commits behind the upstream repository.'); + }); + + it('renders alert with error message when request fails', async () => { + await createComponent({}, {}, true); + expect(createAlert).toHaveBeenCalledWith({ + message: i18n.error, + captureError: true, + error: forkInfoError, + }); + }); +}); diff --git a/spec/frontend/repository/mock_data.js b/spec/frontend/repository/mock_data.js index 63b62c80e30..d85434a9148 100644 --- a/spec/frontend/repository/mock_data.js +++ b/spec/frontend/repository/mock_data.js @@ -117,3 +117,10 @@ export const graphQLErrors = [ extensions: { code: 'unavailable', gitaly_code: 14, service: 'git' }, }, ]; + +export const propsForkInfo = { + projectPath: 'nataliia/myGitLab', + selectedRef: 'main', + sourceName: 'gitLab', + sourcePath: 'gitlab-org/gitlab', +}; diff --git a/spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js b/spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js index 64b4b55fce5..e3df2cde1c1 100644 --- a/spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js +++ b/spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js @@ -95,11 +95,13 @@ describe('vue_shared/component/markdown/markdown_editor', () => { expect(findTextarea().element.value).toBe(value); }); - it(`emits ${EDITING_MODE_CONTENT_EDITOR} event when enableContentEditor emitted from markdown editor`, () => { + it(`emits ${EDITING_MODE_CONTENT_EDITOR} event when enableContentEditor emitted from markdown editor`, async () => { buildWrapper(); findMarkdownField().vm.$emit('enableContentEditor'); + await nextTick(); + expect(wrapper.emitted(EDITING_MODE_CONTENT_EDITOR)).toHaveLength(1); }); diff --git a/spec/helpers/projects_helper_spec.rb b/spec/helpers/projects_helper_spec.rb index 14378685be7..91dd4c46a74 100644 --- a/spec/helpers/projects_helper_spec.rb +++ b/spec/helpers/projects_helper_spec.rb @@ -1333,27 +1333,6 @@ RSpec.describe ProjectsHelper do end end - describe '#fork_divergence_message' do - using RSpec::Parameterized::TableSyntax - - where(:behind, :ahead, :message) do - 0 | 0 | 'Up to date with upstream repository' - 1 | 0 | '1 commit behind upstream repository' - 2 | 0 | '2 commits behind upstream repository' - 0 | 1 | '1 commit ahead of upstream repository' - 0 | 2 | '2 commits ahead of upstream repository' - 5 | 7 | '5 commits behind, 7 commits ahead of upstream repository' - nil | 7 | 'Fork has diverged from upstream repository' - 7 | nil | 'Fork has diverged from upstream repository' - end - - with_them do - it 'returns message based on behind/ahead values' do - expect(helper.fork_divergence_message({ behind: behind, ahead: ahead })).to eq(message) - end - end - end - describe '#localized_project_human_access' do using RSpec::Parameterized::TableSyntax diff --git a/spec/helpers/url_helper_spec.rb b/spec/helpers/url_helper_spec.rb index d84d4007d2e..7955a41b63a 100644 --- a/spec/helpers/url_helper_spec.rb +++ b/spec/helpers/url_helper_spec.rb @@ -2,19 +2,24 @@ require 'spec_helper' -RSpec.describe UrlHelper do +RSpec.describe UrlHelper, feature_category: :integrations do describe '#escaped_url' do it 'escapes url' do expect(helper.escaped_url('https://example.com?param=test value')).to eq('https://example.com?param=test%20value') end it 'escapes XSS injection' do - expect(helper.escaped_url('https://example.com/asset.js"+eval(alert(1))));</script>')) - .to eq('https://example.com/asset.js%22+eval(alert(1))));%3C/script%3E') + expect(helper.escaped_url('https://example.com?injected_here"+eval(1)+"')) + .to eq('https://example.com?injected_here%22+eval(1)+%22') end it 'returns nil if url is nil' do expect(helper.escaped_url(nil)).to be_nil end + + it 'returns nil when url is invalid' do + expect(helper.escaped_url('https://?&*^invalid-url')) + .to be_nil + end end end diff --git a/spec/lib/banzai/filter/math_filter_spec.rb b/spec/lib/banzai/filter/math_filter_spec.rb index c5d2bcd5363..1dcfae0c38c 100644 --- a/spec/lib/banzai/filter/math_filter_spec.rb +++ b/spec/lib/banzai/filter/math_filter_spec.rb @@ -186,11 +186,4 @@ RSpec.describe Banzai::Filter::MathFilter do expect(doc.search('.js-render-math').count).to eq(2) end - - it 'does not recognize new syntax when feature flag is off' do - stub_feature_flags(markdown_dollar_math: false) - doc = filter('$1+2$') - - expect(doc.to_s).to eq '$1+2$' - end end diff --git a/spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb b/spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb index 4320d5dc119..ecb3c8fe76d 100644 --- a/spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb +++ b/spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe BulkImports::Projects::Pipelines::ProjectAttributesPipeline do +RSpec.describe BulkImports::Projects::Pipelines::ProjectAttributesPipeline, :with_license do let_it_be(:project) { create(:project) } let_it_be(:bulk_import) { create(:bulk_import) } let_it_be(:entity) { create(:bulk_import_entity, :project_entity, project: project, bulk_import: bulk_import) } diff --git a/spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb b/spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb index ce888b71d5e..f18d9e64f52 100644 --- a/spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb +++ b/spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Gitlab::ImportExport::FastHashSerializer do +RSpec.describe Gitlab::ImportExport::FastHashSerializer, :with_license do # FastHashSerializer#execute generates the hash which is not easily accessible # and includes `JSONBatchRelation` items which are serialized at this point. # Wrapping the result into JSON generating/parsing is for making diff --git a/spec/lib/gitlab/import_export/project/tree_saver_spec.rb b/spec/lib/gitlab/import_export/project/tree_saver_spec.rb index 15108d28bf2..74b6e039601 100644 --- a/spec/lib/gitlab/import_export/project/tree_saver_spec.rb +++ b/spec/lib/gitlab/import_export/project/tree_saver_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Gitlab::ImportExport::Project::TreeSaver do +RSpec.describe Gitlab::ImportExport::Project::TreeSaver, :with_license do let_it_be(:export_path) { "#{Dir.tmpdir}/project_tree_saver_spec" } let_it_be(:exportable_path) { 'project' } let_it_be(:user) { create(:user) } diff --git a/spec/lib/gitlab/usage_data_metrics_spec.rb b/spec/lib/gitlab/usage_data_metrics_spec.rb index 5d58933f1fd..34f8e5b2a2f 100644 --- a/spec/lib/gitlab/usage_data_metrics_spec.rb +++ b/spec/lib/gitlab/usage_data_metrics_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Gitlab::UsageDataMetrics do +RSpec.describe Gitlab::UsageDataMetrics, :with_license do describe '.uncached_data' do subject { described_class.uncached_data } diff --git a/spec/lib/sidebars/groups/menus/settings_menu_spec.rb b/spec/lib/sidebars/groups/menus/settings_menu_spec.rb index 4e3c639672b..c5246fe93dd 100644 --- a/spec/lib/sidebars/groups/menus/settings_menu_spec.rb +++ b/spec/lib/sidebars/groups/menus/settings_menu_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Sidebars::Groups::Menus::SettingsMenu do +RSpec.describe Sidebars::Groups::Menus::SettingsMenu, :with_license do let_it_be(:owner) { create(:user) } let_it_be_with_refind(:group) do diff --git a/spec/migrations/20230105172120_sync_new_amount_used_with_amount_used_on_ci_namespace_monthly_usages_table_spec.rb b/spec/migrations/20230105172120_sync_new_amount_used_with_amount_used_on_ci_namespace_monthly_usages_table_spec.rb new file mode 100644 index 00000000000..aa82ca2661b --- /dev/null +++ b/spec/migrations/20230105172120_sync_new_amount_used_with_amount_used_on_ci_namespace_monthly_usages_table_spec.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require 'spec_helper' + +require_migration! + +RSpec.describe SyncNewAmountUsedWithAmountUsedOnCiNamespaceMonthlyUsagesTable, migration: :gitlab_ci, +feature_category: :continuous_integration do + let(:namespace_usages) { table(:ci_namespace_monthly_usages) } + let(:migration) { described_class.new } + + before do + # Disabling the trigger temporarily to allow records being created with out-of-sync + # `new_amount_used` and `amount_used`. This will simulate existing records before + # we add the trigger. + ActiveRecord::Base.connection + .execute("ALTER TABLE ci_namespace_monthly_usages DISABLE TRIGGER sync_namespaces_amount_used_columns") + + this_month = Time.now.utc.beginning_of_month + last_month = 1.month.ago.utc.beginning_of_month + last_year = 1.year.ago.utc.beginning_of_month + + namespace_usages.create!(namespace_id: 1, date: last_year) + namespace_usages.create!(namespace_id: 1, date: this_month, amount_used: 10, new_amount_used: 0) + namespace_usages.create!(namespace_id: 1, date: last_month, amount_used: 20, new_amount_used: 0) + + namespace_usages.create!(namespace_id: 2, date: last_year) + namespace_usages.create!(namespace_id: 2, date: this_month, amount_used: 30, new_amount_used: 0) + namespace_usages.create!(namespace_id: 2, date: last_month, amount_used: 40, new_amount_used: 0) + + ActiveRecord::Base.connection + .execute("ALTER TABLE ci_namespace_monthly_usages ENABLE TRIGGER sync_namespaces_amount_used_columns") + end + + describe '#up' do + it "doesnt change new_amount_used values" do + data = namespace_usages.all + data.each do |item| + expect { migration.up }.to not_change { item.new_amount_used } + end + end + end + + describe '#down' do + it 'updates `new_amount_used` with values from `amount_used`' do + expect(namespace_usages.where(new_amount_used: 0).count).to eq(6) + + migration.down + + expect(namespace_usages.where(new_amount_used: 0).count).to eq(2) + expect(namespace_usages.order(:id).pluck(:new_amount_used)) + .to contain_exactly(0, 0, 10, 20, 30, 40) + end + end +end diff --git a/spec/models/factories_spec.rb b/spec/models/factories_spec.rb index 981ca3dfa2c..b0a0d24a6dd 100644 --- a/spec/models/factories_spec.rb +++ b/spec/models/factories_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' # `:saas` is used to test `gitlab_subscription` factory. # It's not available on FOSS but also this very factory is not. -RSpec.describe 'factories', :saas do +RSpec.describe 'factories', :saas, :with_license do include Database::DatabaseHelpers # Used in `skipped` and indicates whether to skip any traits including the diff --git a/spec/models/merge_request/approval_removal_settings_spec.rb b/spec/models/merge_request/approval_removal_settings_spec.rb index 5f879207a72..7e375c7ff39 100644 --- a/spec/models/merge_request/approval_removal_settings_spec.rb +++ b/spec/models/merge_request/approval_removal_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequest::ApprovalRemovalSettings do +RSpec.describe MergeRequest::ApprovalRemovalSettings, :with_license do describe 'validations' do let(:reset_approvals_on_push) {} let(:selective_code_owner_removals) {} diff --git a/spec/requests/api/boards_spec.rb b/spec/requests/api/boards_spec.rb index 69804c2c4a4..5f2ff22d0db 100644 --- a/spec/requests/api/boards_spec.rb +++ b/spec/requests/api/boards_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe API::Boards, feature_category: :team_planning do +RSpec.describe API::Boards, :with_license, feature_category: :team_planning do let_it_be(:user) { create(:user) } let_it_be(:non_member) { create(:user) } let_it_be(:guest) { create(:user) } diff --git a/spec/requests/api/graphql/group_query_spec.rb b/spec/requests/api/graphql/group_query_spec.rb index bc288c0a98b..ce5816999a6 100644 --- a/spec/requests/api/graphql/group_query_spec.rb +++ b/spec/requests/api/graphql/group_query_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' # Based on spec/requests/api/groups_spec.rb # Should follow closely in order to ensure all situations are covered -RSpec.describe 'getting group information', feature_category: :subgroups do +RSpec.describe 'getting group information', :with_license, feature_category: :subgroups do include GraphqlHelpers include UploadHelpers diff --git a/spec/requests/api/group_boards_spec.rb b/spec/requests/api/group_boards_spec.rb index 01f0e6e2061..acc30b2c137 100644 --- a/spec/requests/api/group_boards_spec.rb +++ b/spec/requests/api/group_boards_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe API::GroupBoards, feature_category: :team_planning do +RSpec.describe API::GroupBoards, :with_license, feature_category: :team_planning do let_it_be(:user) { create(:user) } let_it_be(:non_member) { create(:user) } let_it_be(:guest) { create(:user) } diff --git a/spec/requests/api/project_debian_distributions_spec.rb b/spec/requests/api/project_debian_distributions_spec.rb index 9807f177c5d..dfe93e9fbad 100644 --- a/spec/requests/api/project_debian_distributions_spec.rb +++ b/spec/requests/api/project_debian_distributions_spec.rb @@ -5,7 +5,17 @@ RSpec.describe API::ProjectDebianDistributions, feature_category: :package_regis include HttpBasicAuthHelpers include WorkhorseHelpers - include_context 'Debian repository shared context', :project, true do + include_context 'Debian repository shared context', :project, false do + shared_examples 'accept GET request on private project with access to package registry for everyone' do + include_context 'Debian repository access', :private, :anonymous, :basic do + before do + container.project_feature.reload.update!(package_registry_access_level: ProjectFeature::PUBLIC) + end + + it_behaves_like 'Debian distributions GET request', :success + end + end + describe 'POST projects/:id/debian_distributions' do let(:method) { :post } let(:url) { "/projects/#{container.id}/debian_distributions" } @@ -18,24 +28,37 @@ RSpec.describe API::ProjectDebianDistributions, feature_category: :package_regis it_behaves_like 'Debian distributions write endpoint', 'GET', :bad_request, /^{"message":{"codename":\["has already been taken"\]}}$/ end + + context 'with access to package registry for everyone' do + include_context 'Debian repository access', :private, :anonymous, :basic do + before do + container.project_feature.reload.update!(package_registry_access_level: ProjectFeature::PUBLIC) + end + + it_behaves_like 'Debian distributions POST request', :not_found + end + end end describe 'GET projects/:id/debian_distributions' do let(:url) { "/projects/#{container.id}/debian_distributions" } it_behaves_like 'Debian distributions read endpoint', 'GET', :success, /^\[{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/ + it_behaves_like 'accept GET request on private project with access to package registry for everyone' end describe 'GET projects/:id/debian_distributions/:codename' do let(:url) { "/projects/#{container.id}/debian_distributions/#{distribution.codename}" } it_behaves_like 'Debian distributions read endpoint', 'GET', :success, /^{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/ + it_behaves_like 'accept GET request on private project with access to package registry for everyone' end describe 'GET projects/:id/debian_distributions/:codename/key.asc' do let(:url) { "/projects/#{container.id}/debian_distributions/#{distribution.codename}/key.asc" } it_behaves_like 'Debian distributions read endpoint', 'GET', :success, /^-----BEGIN PGP PUBLIC KEY BLOCK-----/ + it_behaves_like 'accept GET request on private project with access to package registry for everyone' end describe 'PUT projects/:id/debian_distributions/:codename' do diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index 4f7fad0bc69..d62f8a32453 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -2288,7 +2288,7 @@ RSpec.describe API::Projects do end end - context 'when authenticated as an admin' do + context 'when authenticated as an admin', :with_license do before do stub_container_registry_config(enabled: true, host_port: 'registry.example.org:5000') end diff --git a/spec/requests/api/snippet_repository_storage_moves_spec.rb b/spec/requests/api/snippet_repository_storage_moves_spec.rb index 6081531aee9..9afd8147eb6 100644 --- a/spec/requests/api/snippet_repository_storage_moves_spec.rb +++ b/spec/requests/api/snippet_repository_storage_moves_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe API::SnippetRepositoryStorageMoves, feature_category: :gitaly do +RSpec.describe API::SnippetRepositoryStorageMoves, :with_license, feature_category: :gitaly do it_behaves_like 'repository_storage_moves API', 'snippets' do let_it_be(:container) { create(:snippet, :repository).tap { |snippet| snippet.create_repository } } let_it_be(:storage_move) { create(:snippet_repository_storage_move, :scheduled, container: container) } diff --git a/spec/requests/groups/usage_quotas_controller_spec.rb b/spec/requests/groups/usage_quotas_controller_spec.rb index bddc95434ce..90fd08063f3 100644 --- a/spec/requests/groups/usage_quotas_controller_spec.rb +++ b/spec/requests/groups/usage_quotas_controller_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Groups::UsageQuotasController, feature_category: :subscription_cost_management do +RSpec.describe Groups::UsageQuotasController, :with_license, feature_category: :subscription_cost_management do let_it_be(:group) { create(:group) } let_it_be(:subgroup) { create(:group, parent: group) } let_it_be(:user) { create(:user) } diff --git a/spec/requests/projects_controller_spec.rb b/spec/requests/projects_controller_spec.rb index f08f3578dc0..613f528e8c2 100644 --- a/spec/requests/projects_controller_spec.rb +++ b/spec/requests/projects_controller_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ProjectsController, feature_category: :projects do +RSpec.describe ProjectsController, :with_license, feature_category: :projects do context 'token authentication' do context 'when public project' do let_it_be(:public_project) { create(:project, :public) } diff --git a/spec/services/audit_event_service_spec.rb b/spec/services/audit_event_service_spec.rb index 063d250f22b..1d079adc0be 100644 --- a/spec/services/audit_event_service_spec.rb +++ b/spec/services/audit_event_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe AuditEventService do +RSpec.describe AuditEventService, :with_license do let_it_be(:project) { create(:project) } let_it_be(:user) { create(:user, :with_sign_ins) } let_it_be(:project_member) { create(:project_member, user: user) } diff --git a/spec/services/feature_flags/create_service_spec.rb b/spec/services/feature_flags/create_service_spec.rb index 1c9bde70af3..1a32faad948 100644 --- a/spec/services/feature_flags/create_service_spec.rb +++ b/spec/services/feature_flags/create_service_spec.rb @@ -86,7 +86,7 @@ RSpec.describe FeatureFlags::CreateService do end end - it 'creates audit event' do + it 'creates audit event', :with_license do expect { subject }.to change { AuditEvent.count }.by(1) expect(AuditEvent.last.details[:custom_message]).to start_with('Created feature flag feature_flag with description "description".') expect(AuditEvent.last.details[:custom_message]).to include('Created strategy "default" with scopes "*".') diff --git a/spec/services/feature_flags/destroy_service_spec.rb b/spec/services/feature_flags/destroy_service_spec.rb index 740923db9b6..b2793dc0560 100644 --- a/spec/services/feature_flags/destroy_service_spec.rb +++ b/spec/services/feature_flags/destroy_service_spec.rb @@ -31,7 +31,7 @@ RSpec.describe FeatureFlags::DestroyService do expect { subject }.to change { Operations::FeatureFlag.count }.by(-1) end - it 'creates audit log' do + it 'creates audit log', :with_license do expect { subject }.to change { AuditEvent.count }.by(1) expect(audit_event_message).to eq("Deleted feature flag #{feature_flag.name}.") end diff --git a/spec/services/feature_flags/update_service_spec.rb b/spec/services/feature_flags/update_service_spec.rb index 8f985d34961..1c5af71a50a 100644 --- a/spec/services/feature_flags/update_service_spec.rb +++ b/spec/services/feature_flags/update_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe FeatureFlags::UpdateService do +RSpec.describe FeatureFlags::UpdateService, :with_license do let_it_be(:project) { create(:project) } let_it_be(:developer) { create(:user) } let_it_be(:reporter) { create(:user) } diff --git a/spec/services/issues/export_csv_service_spec.rb b/spec/services/issues/export_csv_service_spec.rb index 66d017464bf..d3359447fd8 100644 --- a/spec/services/issues/export_csv_service_spec.rb +++ b/spec/services/issues/export_csv_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Issues::ExportCsvService do +RSpec.describe Issues::ExportCsvService, :with_license do let_it_be(:user) { create(:user) } let_it_be(:group) { create(:group) } let_it_be(:project) { create(:project, :public, group: group) } diff --git a/spec/support/rspec_order_todo.yml b/spec/support/rspec_order_todo.yml index 13cd4d5755d..e14db02d9c2 100644 --- a/spec/support/rspec_order_todo.yml +++ b/spec/support/rspec_order_todo.yml @@ -30,11 +30,6 @@ - './ee/spec/controllers/admin/runners_controller_spec.rb' - './ee/spec/controllers/admin/users_controller_spec.rb' - './ee/spec/controllers/autocomplete_controller_spec.rb' -- './ee/spec/controllers/boards/issues_controller_spec.rb' -- './ee/spec/controllers/boards/lists_controller_spec.rb' -- './ee/spec/controllers/boards/milestones_controller_spec.rb' -- './ee/spec/controllers/boards/users_controller_spec.rb' -- './ee/spec/controllers/concerns/boards_responses_spec.rb' - './ee/spec/controllers/concerns/ee/routable_actions/sso_enforcement_redirect_spec.rb' - './ee/spec/controllers/concerns/geo_instrumentation_spec.rb' - './ee/spec/controllers/concerns/gitlab_subscriptions/seat_count_alert_spec.rb' @@ -107,7 +102,6 @@ - './ee/spec/controllers/groups/security/vulnerabilities_controller_spec.rb' - './ee/spec/controllers/groups/sso_controller_spec.rb' - './ee/spec/controllers/groups/todos_controller_spec.rb' -- './ee/spec/controllers/groups/usage_quotas_controller_spec.rb' - './ee/spec/controllers/groups/wikis_controller_spec.rb' - './ee/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb' - './ee/spec/controllers/oauth/applications_controller_spec.rb' @@ -141,7 +135,6 @@ - './ee/spec/controllers/projects/issues_controller_spec.rb' - './ee/spec/controllers/projects/iteration_cadences_controller_spec.rb' - './ee/spec/controllers/projects/iterations_controller_spec.rb' -- './ee/spec/controllers/projects/legacy_pipelines_controller_spec.rb' - './ee/spec/controllers/projects/licenses_controller_spec.rb' - './ee/spec/controllers/projects/merge_requests_controller_spec.rb' - './ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb' @@ -171,9 +164,7 @@ - './ee/spec/controllers/projects/subscriptions_controller_spec.rb' - './ee/spec/controllers/projects/vulnerability_feedback_controller_spec.rb' - './ee/spec/controllers/registrations/company_controller_spec.rb' -- './ee/spec/controllers/registrations/groups_controller_spec.rb' - './ee/spec/controllers/registrations/groups_projects_controller_spec.rb' -- './ee/spec/controllers/registrations/projects_controller_spec.rb' - './ee/spec/controllers/registrations/verification_controller_spec.rb' - './ee/spec/controllers/repositories/git_http_controller_spec.rb' - './ee/spec/controllers/security/dashboard_controller_spec.rb' @@ -209,7 +200,6 @@ - './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/factories/lfs_object_spec.rb' - './ee/spec/features/account_recovery_regular_check_spec.rb' - './ee/spec/features/admin/admin_credentials_inventory_spec.rb' - './ee/spec/features/admin/admin_dashboard_spec.rb' @@ -259,7 +249,6 @@ - './ee/spec/features/ci_shared_runner_settings_spec.rb' - './ee/spec/features/ci_shared_runner_warnings_spec.rb' - './ee/spec/features/clusters/cluster_detail_page_spec.rb' -- './ee/spec/features/contextual_sidebar_spec.rb' - './ee/spec/features/dashboards/activity_spec.rb' - './ee/spec/features/dashboards/groups_spec.rb' - './ee/spec/features/dashboards/issues_spec.rb' @@ -311,8 +300,6 @@ - './ee/spec/features/groups/hooks/user_views_hooks_spec.rb' - './ee/spec/features/groups/insights_spec.rb' - './ee/spec/features/groups/issues_spec.rb' -- './ee/spec/features/groups/iterations/iterations_list_spec.rb' -- './ee/spec/features/groups/iteration_spec.rb' - './ee/spec/features/groups/iterations/user_creates_iteration_in_cadence_spec.rb' - './ee/spec/features/groups/iterations/user_edits_iteration_cadence_spec.rb' - './ee/spec/features/groups/iterations/user_edits_iteration_spec.rb' @@ -332,7 +319,6 @@ - './ee/spec/features/groups/saml_group_links_spec.rb' - './ee/spec/features/groups/saml_providers_spec.rb' - './ee/spec/features/groups/scim_token_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/ci_cd_spec.rb' - './ee/spec/features/groups/settings/protected_environments_spec.rb' @@ -341,10 +327,8 @@ - './ee/spec/features/groups/settings/user_searches_in_settings_spec.rb' - './ee/spec/features/groups_spec.rb' - './ee/spec/features/groups/sso_spec.rb' -- './ee/spec/features/groups/usage_quotas_spec.rb' - './ee/spec/features/groups/wikis_spec.rb' - './ee/spec/features/groups/wiki/user_views_wiki_empty_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/invites_spec.rb' @@ -431,7 +415,6 @@ - './ee/spec/features/projects/issues/user_creates_issue_spec.rb' - './ee/spec/features/projects/issues/viewing_relocated_issues_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/blocked_deployment_job_page_spec.rb' - './ee/spec/features/projects/jobs_spec.rb' @@ -449,7 +432,6 @@ - './ee/spec/features/projects/new_project_from_template_spec.rb' - './ee/spec/features/projects/new_project_spec.rb' - './ee/spec/features/projects/path_locks_spec.rb' -- './ee/spec/features/projects/pipelines/legacy_pipeline_spec.rb' - './ee/spec/features/projects/pipelines/pipeline_csp_spec.rb' - './ee/spec/features/projects/pipelines/pipeline_spec.rb' - './ee/spec/features/projects/pipelines/pipelines_spec.rb' @@ -478,7 +460,6 @@ - './ee/spec/features/projects/settings/user_manages_approval_settings_spec.rb' - './ee/spec/features/projects/settings/user_manages_issues_template_spec.rb' - './ee/spec/features/projects/settings/user_manages_members_spec.rb' -- './ee/spec/features/projects/settings/user_manages_merge_pipelines_spec.rb' - './ee/spec/features/projects/settings/user_manages_merge_requests_template_spec.rb' - './ee/spec/features/projects/settings/user_manages_merge_trains_spec.rb' - './ee/spec/features/projects/show/developer_views_empty_project_instructions_spec.rb' @@ -493,9 +474,6 @@ - './ee/spec/features/read_only_spec.rb' - './ee/spec/features/registrations/combined_registration_spec.rb' - './ee/spec/features/registrations/one_trust_spec.rb' -- './ee/spec/features/registrations/saas_user_registration_spec.rb' -- './ee/spec/features/registrations/trial_during_signup_flow_spec.rb' -- './ee/spec/features/registrations/user_sees_new_onboarding_flow_spec.rb' - './ee/spec/features/registrations/welcome_spec.rb' - './ee/spec/features/search/elastic/global_search_spec.rb' - './ee/spec/features/search/elastic/group_search_spec.rb' @@ -594,7 +572,6 @@ - './ee/spec/finders/productivity_analytics_finder_spec.rb' - './ee/spec/finders/projects/integrations/jira/by_ids_finder_spec.rb' - './ee/spec/finders/projects/integrations/jira/issues_finder_spec.rb' -- './ee/spec/finders/requirements_management/requirements_finder_spec.rb' - './ee/spec/finders/scim_finder_spec.rb' - './ee/spec/finders/security/findings_finder_spec.rb' - './ee/spec/finders/security/pipeline_vulnerabilities_finder_spec.rb' @@ -640,7 +617,6 @@ - './ee/spec/graphql/ee/mutations/concerns/mutations/resolves_issuable_spec.rb' - './ee/spec/graphql/ee/resolvers/board_list_issues_resolver_spec.rb' - './ee/spec/graphql/ee/resolvers/board_lists_resolver_spec.rb' -- './ee/spec/graphql/ee/resolvers/issues_resolver_spec.rb' - './ee/spec/graphql/ee/resolvers/namespace_projects_resolver_spec.rb' - './ee/spec/graphql/ee/types/alert_management/http_integration_type_spec.rb' - './ee/spec/graphql/ee/types/board_list_type_spec.rb' @@ -717,7 +693,6 @@ - './ee/spec/graphql/mutations/requirements_management/update_requirement_spec.rb' - './ee/spec/graphql/mutations/security/ci_configuration/configure_container_scanning_spec.rb' - './ee/spec/graphql/mutations/security/ci_configuration/configure_dependency_scanning_spec.rb' -- './ee/spec/graphql/mutations/security_finding/dismiss_spec.rb' - './ee/spec/graphql/mutations/security_policy/assign_security_policy_project_spec.rb' - './ee/spec/graphql/mutations/security_policy/commit_scan_execution_policy_spec.rb' - './ee/spec/graphql/mutations/security_policy/create_security_policy_project_spec.rb' @@ -957,7 +932,6 @@ - './ee/spec/graphql/types/vulnerable_projects_by_grade_type_spec.rb' - './ee/spec/graphql/types/work_items/type_spec.rb' - './ee/spec/graphql/types/work_items/widget_interface_spec.rb' -- './ee/spec/graphql/types/work_items/widgets/verification_status_type_spec.rb' - './ee/spec/helpers/admin/emails_helper_spec.rb' - './ee/spec/helpers/admin/ip_restriction_helper_spec.rb' - './ee/spec/helpers/admin/repo_size_limit_helper_spec.rb' @@ -1131,13 +1105,6 @@ - './ee/spec/lib/ee/api/helpers/scim_pagination_spec.rb' - './ee/spec/lib/ee/api/helpers_spec.rb' - './ee/spec/lib/ee/api/helpers/variables_helpers_spec.rb' -- './ee/spec/lib/ee/audit/compliance_framework_changes_auditor_spec.rb' -- './ee/spec/lib/ee/audit/group_changes_auditor_spec.rb' -- './ee/spec/lib/ee/audit/project_changes_auditor_spec.rb' -- './ee/spec/lib/ee/audit/project_ci_cd_setting_changes_auditor_spec.rb' -- './ee/spec/lib/ee/audit/project_feature_changes_auditor_spec.rb' -- './ee/spec/lib/ee/audit/project_setting_changes_auditor_spec.rb' -- './ee/spec/lib/ee/audit/protected_branches_changes_auditor_spec.rb' - './ee/spec/lib/ee/backup/repositories_spec.rb' - './ee/spec/lib/ee/banzai/filter/sanitization_filter_spec.rb' - './ee/spec/lib/ee/bulk_imports/groups/stage_spec.rb' @@ -1169,7 +1136,6 @@ - './ee/spec/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_check_progress_spec.rb' - './ee/spec/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_in_batch_spec.rb' - './ee/spec/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_spec.rb' -- './ee/spec/lib/ee/gitlab/background_migration/migrate_job_artifact_registry_to_ssf_spec.rb' - './ee/spec/lib/ee/gitlab/background_migration/migrate_shared_vulnerability_scanners_spec.rb' - './ee/spec/lib/ee/gitlab/background_migration/populate_latest_pipeline_ids_spec.rb' - './ee/spec/lib/ee/gitlab/background_migration/populate_namespace_statistics_spec.rb' @@ -1196,7 +1162,6 @@ - './ee/spec/lib/ee/gitlab/ci/pipeline/chain/validate/external_spec.rb' - './ee/spec/lib/ee/gitlab/ci/pipeline/chain/validate/security_orchestration_policy_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/reports/security/reports_spec.rb' - './ee/spec/lib/ee/gitlab/ci/status/build/manual_spec.rb' @@ -1218,8 +1183,6 @@ - './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/after_export_strategies/custom_template_export_import_strategy_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' - './ee/spec/lib/ee/gitlab/import_export/group/tree_restorer_spec.rb' - './ee/spec/lib/ee/gitlab/import_export/group/tree_saver_spec.rb' - './ee/spec/lib/ee/gitlab/import_export/project/tree_restorer_spec.rb' @@ -1240,11 +1203,9 @@ - './ee/spec/lib/ee/gitlab/repo_path_spec.rb' - './ee/spec/lib/ee/gitlab/repository_size_checker_spec.rb' - './ee/spec/lib/ee/gitlab/scim/attribute_transform_spec.rb' -- './ee/spec/lib/ee/gitlab/scim/deprovision_service_spec.rb' - './ee/spec/lib/ee/gitlab/scim/filter_parser_spec.rb' - './ee/spec/lib/ee/gitlab/scim/params_parser_spec.rb' - './ee/spec/lib/ee/gitlab/scim/provisioning_service_spec.rb' -- './ee/spec/lib/ee/gitlab/scim/reprovision_service_spec.rb' - './ee/spec/lib/ee/gitlab/scim/value_parser_spec.rb' - './ee/spec/lib/ee/gitlab/search_results_spec.rb' - './ee/spec/lib/ee/gitlab/security/scan_configuration_spec.rb' @@ -1384,13 +1345,11 @@ - './ee/spec/lib/gitlab/ci/parsers/security/dast_spec.rb' - './ee/spec/lib/gitlab/ci/parsers/security/dependency_list_spec.rb' - './ee/spec/lib/gitlab/ci/parsers/security/dependency_scanning_spec.rb' -- './ee/spec/lib/gitlab/ci/parsers/security/formatters/dast_spec.rb' - './ee/spec/lib/gitlab/ci/parsers/security/formatters/dependency_list_spec.rb' - './ee/spec/lib/gitlab/ci/parsers/security/validators/default_branch_image_validator_spec.rb' - './ee/spec/lib/gitlab/ci/pipeline/chain/config/content_spec.rb' - './ee/spec/lib/gitlab/ci/pipeline/chain/create_cross_database_associations_spec.rb' - './ee/spec/lib/gitlab/ci/pipeline/chain/limit/activity_spec.rb' -- './ee/spec/lib/gitlab/ci/pipeline/chain/limit/job_activity_spec.rb' - './ee/spec/lib/gitlab/ci/pipeline/chain/limit/size_spec.rb' - './ee/spec/lib/gitlab/ci/reports/coverage_fuzzing/report_spec.rb' - './ee/spec/lib/gitlab/ci/reports/dependency_list/dependency_spec.rb' @@ -1532,7 +1491,6 @@ - './ee/spec/lib/gitlab/insights/reducers/base_reducer_spec.rb' - './ee/spec/lib/gitlab/insights/reducers/count_per_label_reducer_spec.rb' - './ee/spec/lib/gitlab/insights/reducers/count_per_period_reducer_spec.rb' -- './ee/spec/lib/gitlab/insights/reducers/dora_reducer_spec.rb' - './ee/spec/lib/gitlab/insights/reducers/label_count_per_period_reducer_spec.rb' - './ee/spec/lib/gitlab/insights/serializers/chartjs/bar_serializer_spec.rb' - './ee/spec/lib/gitlab/insights/serializers/chartjs/bar_time_series_serializer_spec.rb' @@ -1551,7 +1509,6 @@ - './ee/spec/lib/gitlab/middleware/ip_restrictor_spec.rb' - './ee/spec/lib/gitlab/mirror_spec.rb' - './ee/spec/lib/gitlab/object_hierarchy_spec.rb' -- './ee/spec/lib/gitlab/pagination_delegate_spec.rb' - './ee/spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb' - './ee/spec/lib/gitlab/patch/database_config_spec.rb' - './ee/spec/lib/gitlab/patch/draw_route_spec.rb' @@ -1589,7 +1546,6 @@ - './ee/spec/lib/gitlab/usage_data_counters/epic_activity_unique_counter_spec.rb' - './ee/spec/lib/gitlab/usage_data_counters/licenses_list_spec.rb' - './ee/spec/lib/gitlab/usage_data_metrics_spec.rb' -- './ee/spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb' - './ee/spec/lib/gitlab/usage/metrics/instrumentations/advanced_search/build_type_metric_spec.rb' - './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' @@ -1669,12 +1625,10 @@ - './ee/spec/migrations/add_non_null_constraint_for_escalation_rule_on_pending_alert_escalations_spec.rb' - './ee/spec/migrations/async_build_trace_expire_at_index_spec.rb' - './ee/spec/migrations/backfill_delayed_group_deletion_spec.rb' -- './ee/spec/migrations/backfill_namespace_statistics_with_wiki_size_spec.rb' - './ee/spec/migrations/drop_invalid_remediations_spec.rb' - './ee/spec/migrations/geo/fix_state_column_in_file_registry_spec.rb' - './ee/spec/migrations/geo/fix_state_column_in_lfs_object_registry_spec.rb' - './ee/spec/migrations/geo/migrate_ci_job_artifacts_to_separate_registry_spec.rb' -- './ee/spec/migrations/geo/migrate_job_artifact_registry_spec.rb' - './ee/spec/migrations/geo/migrate_lfs_objects_to_separate_registry_spec.rb' - './ee/spec/migrations/geo/set_resync_flag_for_retried_projects_spec.rb' - './ee/spec/migrations/remove_schedule_and_status_null_constraints_from_pending_escalations_alert_spec.rb' @@ -1682,14 +1636,11 @@ - './ee/spec/migrations/schedule_populate_test_reports_issue_id_spec.rb' - './ee/spec/migrations/schedule_requirements_migration_spec.rb' - './ee/spec/migrations/schedule_trace_expiry_removal_spec.rb' -- './ee/spec/migrations/update_gitlab_subscriptions_start_at_post_eoa_spec.rb' - './ee/spec/migrations/update_vulnerability_occurrences_location_spec.rb' - './ee/spec/models/alert_management/alert_payload_field_spec.rb' - './ee/spec/models/allowed_email_domain_spec.rb' - './ee/spec/models/analytics/cycle_analytics/aggregation_context_spec.rb' - './ee/spec/models/analytics/cycle_analytics/group_level_spec.rb' -- './ee/spec/models/analytics/cycle_analytics/group_stage_spec.rb' -- './ee/spec/models/analytics/cycle_analytics/group_value_stream_spec.rb' - './ee/spec/models/analytics/cycle_analytics/project_stage_spec.rb' - './ee/spec/models/analytics/cycle_analytics/runtime_limiter_spec.rb' - './ee/spec/models/analytics/devops_adoption/enabled_namespace_spec.rb' @@ -1697,7 +1648,6 @@ - './ee/spec/models/analytics/issues_analytics_spec.rb' - './ee/spec/models/analytics/language_trend/repository_language_spec.rb' - './ee/spec/models/application_setting_spec.rb' -- './ee/spec/models/approvable_spec.rb' - './ee/spec/models/approval_merge_request_rule_spec.rb' - './ee/spec/models/approval_project_rule_spec.rb' - './ee/spec/models/approvals/scan_finding_wrapped_rule_set_spec.rb' @@ -1729,7 +1679,6 @@ - './ee/spec/models/ci/daily_build_group_report_result_spec.rb' - './ee/spec/models/ci/minutes/additional_pack_spec.rb' - './ee/spec/models/ci/minutes/context_spec.rb' -- './ee/spec/models/ci/minutes/limit_spec.rb' - './ee/spec/models/ci/minutes/namespace_monthly_usage_spec.rb' - './ee/spec/models/ci/minutes/notification_spec.rb' - './ee/spec/models/ci/minutes/project_monthly_usage_spec.rb' @@ -1941,7 +1890,6 @@ - './ee/spec/models/namespace_limit_spec.rb' - './ee/spec/models/namespace_setting_spec.rb' - './ee/spec/models/namespaces/free_user_cap_spec.rb' -- './ee/spec/models/namespaces/free_user_cap/standard_spec.rb' - './ee/spec/models/namespaces/storage/root_excess_size_spec.rb' - './ee/spec/models/namespaces/storage/root_size_spec.rb' - './ee/spec/models/note_spec.rb' @@ -1962,9 +1910,7 @@ - './ee/spec/models/project_team_spec.rb' - './ee/spec/models/protected_branch/required_code_owners_section_spec.rb' - './ee/spec/models/protected_branch/unprotect_access_level_spec.rb' -- './ee/spec/models/protected_environment/deploy_access_level_spec.rb' - './ee/spec/models/protected_environments/approval_rule_spec.rb' -- './ee/spec/models/protected_environments/approval_summary_spec.rb' - './ee/spec/models/protected_environment_spec.rb' - './ee/spec/models/push_rule_spec.rb' - './ee/spec/models/release_highlight_spec.rb' @@ -2029,7 +1975,6 @@ - './ee/spec/models/vulnerability_user_mention_spec.rb' - './ee/spec/models/weight_note_spec.rb' - './ee/spec/models/work_item_spec.rb' -- './ee/spec/models/work_items/widgets/verification_status_spec.rb' - './ee/spec/policies/approval_merge_request_rule_policy_spec.rb' - './ee/spec/policies/approval_project_rule_policy_spec.rb' - './ee/spec/policies/approval_state_policy_spec.rb' @@ -2264,7 +2209,6 @@ - './ee/spec/requests/api/graphql/mutations/requirements_management/create_requirement_spec.rb' - './ee/spec/requests/api/graphql/mutations/requirements_management/export_requirements_spec.rb' - './ee/spec/requests/api/graphql/mutations/requirements_management/update_requirement_spec.rb' -- './ee/spec/requests/api/graphql/mutations/security_finding/create_issue_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' @@ -2365,7 +2309,6 @@ - './ee/spec/requests/api/resource_label_events_spec.rb' - './ee/spec/requests/api/resource_weight_events_spec.rb' - './ee/spec/requests/api/saml_group_links_spec.rb' -- './ee/spec/requests/api/scim_spec.rb' - './ee/spec/requests/api/search_spec.rb' - './ee/spec/requests/api/settings_spec.rb' - './ee/spec/requests/api/status_checks_spec.rb' @@ -2453,7 +2396,6 @@ - './ee/spec/serializers/autocomplete/group_entity_spec.rb' - './ee/spec/serializers/autocomplete/group_serializer_spec.rb' - './ee/spec/serializers/blocking_merge_request_entity_spec.rb' -- './ee/spec/serializers/board_serializer_spec.rb' - './ee/spec/serializers/clusters/deployment_entity_spec.rb' - './ee/spec/serializers/clusters/environment_entity_spec.rb' - './ee/spec/serializers/clusters/environment_serializer_spec.rb' @@ -2466,7 +2408,6 @@ - './ee/spec/serializers/dependency_list_serializer_spec.rb' - './ee/spec/serializers/ee/admin/user_entity_spec.rb' - './ee/spec/serializers/ee/blob_entity_spec.rb' -- './ee/spec/serializers/ee/board_simple_entity_spec.rb' - './ee/spec/serializers/ee/build_details_entity_spec.rb' - './ee/spec/serializers/ee/ci/job_entity_spec.rb' - './ee/spec/serializers/ee/ci/pipeline_entity_spec.rb' @@ -2593,7 +2534,6 @@ - './ee/spec/services/app_sec/fuzzing/api/ci_configuration_create_service_spec.rb' - './ee/spec/services/app_sec/fuzzing/coverage/corpuses/create_service_spec.rb' - './ee/spec/services/arkose/blocked_users_report_service_spec.rb' -- './ee/spec/services/arkose/user_verification_service_spec.rb' - './ee/spec/services/audit_events/build_service_spec.rb' - './ee/spec/services/audit_events/custom_audit_event_service_spec.rb' - './ee/spec/services/audit_event_service_spec.rb' @@ -2741,11 +2681,9 @@ - './ee/spec/services/ee/issues/after_create_service_spec.rb' - './ee/spec/services/ee/issues/build_from_vulnerability_service_spec.rb' - './ee/spec/services/ee/issues/clone_service_spec.rb' -- './ee/spec/services/ee/issues/close_service_spec.rb' - './ee/spec/services/ee/issues/create_from_vulnerability_data_service_spec.rb' - './ee/spec/services/ee/issues/create_service_spec.rb' - './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/keys/destroy_service_spec.rb' - './ee/spec/services/ee/labels/create_service_spec.rb' @@ -2803,7 +2741,6 @@ - './ee/spec/services/ee/users/build_service_spec.rb' - './ee/spec/services/ee/users/create_service_spec.rb' - './ee/spec/services/ee/users/destroy_service_spec.rb' -- './ee/spec/services/ee/users/migrate_to_ghost_user_service_spec.rb' - './ee/spec/services/ee/users/reject_service_spec.rb' - './ee/spec/services/ee/users/update_service_spec.rb' - './ee/spec/services/ee/vulnerability_feedback_module/update_service_spec.rb' @@ -2884,9 +2821,7 @@ - './ee/spec/services/geo/repository_verification_secondary_service_spec.rb' - './ee/spec/services/geo/reset_checksum_event_store_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/activate_service_spec.rb' -- './ee/spec/services/gitlab_subscriptions/apply_trial_service_spec.rb' - './ee/spec/services/gitlab_subscriptions/check_future_renewal_service_spec.rb' - './ee/spec/services/gitlab_subscriptions/create_hand_raise_lead_service_spec.rb' - './ee/spec/services/gitlab_subscriptions/create_service_spec.rb' @@ -2969,10 +2904,6 @@ - './ee/spec/services/milestones/destroy_service_spec.rb' - './ee/spec/services/milestones/promote_service_spec.rb' - './ee/spec/services/milestones/update_service_spec.rb' -- './ee/spec/services/namespaces/free_user_cap/deactivate_members_over_limit_service_spec.rb' -- './ee/spec/services/namespaces/free_user_cap/remove_group_group_links_outside_hierarchy_service_spec.rb' -- './ee/spec/services/namespaces/free_user_cap/remove_project_group_links_outside_hierarchy_service_spec.rb' -- './ee/spec/services/namespaces/free_user_cap/update_prevent_sharing_outside_hierarchy_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/path_locks/lock_service_spec.rb' @@ -3001,8 +2932,6 @@ - './ee/spec/services/projects/hashed_storage/migrate_repository_service_spec.rb' - './ee/spec/services/projects/import_export/export_service_spec.rb' - './ee/spec/services/projects/import_service_spec.rb' -- './ee/spec/services/projects/licenses/create_policy_service_spec.rb' -- './ee/spec/services/projects/licenses/update_policy_service_spec.rb' - './ee/spec/services/projects/mark_for_deletion_service_spec.rb' - './ee/spec/services/projects/open_issues_count_service_spec.rb' - './ee/spec/services/projects/operations/update_service_spec.rb' @@ -3031,7 +2960,6 @@ - './ee/spec/services/requirements_management/map_export_fields_service_spec.rb' - './ee/spec/services/requirements_management/prepare_import_csv_service_spec.rb' - './ee/spec/services/requirements_management/process_test_reports_service_spec.rb' -- './ee/spec/services/requirements_management/update_requirement_service_spec.rb' - './ee/spec/services/resource_access_tokens/create_service_spec.rb' - './ee/spec/services/resource_access_tokens/revoke_service_spec.rb' - './ee/spec/services/resource_events/change_weight_service_spec.rb' @@ -3044,7 +2972,6 @@ - './ee/spec/services/security/auto_fix_service_spec.rb' - './ee/spec/services/security/configuration/save_auto_fix_service_spec.rb' - './ee/spec/services/security/dependency_list_service_spec.rb' -- './ee/spec/services/security/findings/cleanup_service_spec.rb' - './ee/spec/services/security/ingestion/finding_map_collection_spec.rb' - './ee/spec/services/security/ingestion/finding_map_spec.rb' - './ee/spec/services/security/ingestion/ingest_report_service_spec.rb' @@ -3117,7 +3044,6 @@ - './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/users/abuse/excessive_projects_download_ban_service_spec.rb' - './ee/spec/services/users/abuse/git_abuse/namespace_throttle_service_spec.rb' - './ee/spec/services/users/abuse/namespace_bans/create_service_spec.rb' - './ee/spec/services/users/abuse/namespace_bans/destroy_service_spec.rb' @@ -3166,7 +3092,6 @@ - './ee/spec/tasks/gitlab/license_rake_spec.rb' - './ee/spec/tasks/gitlab/seed/group_seed_rake_spec.rb' - './ee/spec/tasks/gitlab/spdx_rake_spec.rb' -- './ee/spec/tasks/gitlab/uploads/migrate_rake_spec.rb' - './ee/spec/validators/json_schema_validator_spec.rb' - './ee/spec/validators/ldap_filter_validator_spec.rb' - './ee/spec/validators/password/complexity_validator_spec.rb' @@ -3199,8 +3124,6 @@ - './ee/spec/views/groups/security/discover/show.html.haml_spec.rb' - './ee/spec/views/groups/settings/_remove.html.haml_spec.rb' - './ee/spec/views/groups/settings/reporting/show.html.haml_spec.rb' -- './ee/spec/views/groups/show.html.haml_spec.rb' -- './ee/spec/views/groups/usage_quotas/index.html.haml_spec.rb' - './ee/spec/views/layouts/application.html.haml_spec.rb' - './ee/spec/views/layouts/checkout.html.haml_spec.rb' - './ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb' @@ -3217,12 +3140,9 @@ - './ee/spec/views/operations/index.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/empty.html.haml_spec.rb' - './ee/spec/views/projects/issues/show.html.haml_spec.rb' -- './ee/spec/views/projects/merge_requests/_merge_request_approvals.html.haml_spec.rb' - './ee/spec/views/projects/_merge_request_status_checks_settings.html.haml_spec.rb' - './ee/spec/views/projects/on_demand_scans/index.html.haml_spec.rb' -- './ee/spec/views/projects/pipelines/_tabs_content.html.haml_spec.rb' - './ee/spec/views/projects/project_members/index.html.haml_spec.rb' - './ee/spec/views/projects/security/corpus_management/show.html.haml_spec.rb' - './ee/spec/views/projects/security/dast_profiles/show.html.haml_spec.rb' @@ -3234,10 +3154,7 @@ - './ee/spec/views/projects/security/policies/index.html.haml_spec.rb' - './ee/spec/views/projects/security/sast_configuration/show.html.haml_spec.rb' - './ee/spec/views/projects/settings/subscriptions/_index.html.haml_spec.rb' -- './ee/spec/views/projects/show.html.haml_spec.rb' -- './ee/spec/views/registrations/groups/new.html.haml_spec.rb' - './ee/spec/views/registrations/groups_projects/new.html.haml_spec.rb' -- './ee/spec/views/registrations/projects/new.html.haml_spec.rb' - './ee/spec/views/registrations/welcome/continuous_onboarding_getting_started.html.haml_spec.rb' - './ee/spec/views/registrations/welcome/show.html.haml_spec.rb' - './ee/spec/views/search/_category.html.haml_spec.rb' @@ -3250,7 +3167,6 @@ - './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/_approver_suggestion.html.haml_spec.rb' - './ee/spec/views/shared/issuable/_epic_dropdown.html.haml_spec.rb' @@ -3269,7 +3185,6 @@ - './ee/spec/views/subscriptions/groups/edit.html.haml_spec.rb' - './ee/spec/views/subscriptions/new.html.haml_spec.rb' - './ee/spec/views/trial_registrations/new.html.haml_spec.rb' -- './ee/spec/views/trials/_skip_trial.html.haml_spec.rb' - './ee/spec/workers/active_user_count_threshold_worker_spec.rb' - './ee/spec/workers/adjourned_group_deletion_worker_spec.rb' - './ee/spec/workers/adjourned_project_deletion_worker_spec.rb' @@ -3333,7 +3248,6 @@ - './ee/spec/workers/geo/batch_event_create_worker_spec.rb' - './ee/spec/workers/geo/batch/project_registry_scheduler_worker_spec.rb' - './ee/spec/workers/geo/batch/project_registry_worker_spec.rb' -- './ee/spec/workers/geo/container_repository_sync_dispatch_worker_spec.rb' - './ee/spec/workers/geo/container_repository_sync_worker_spec.rb' - './ee/spec/workers/geo/create_repository_updated_event_worker_spec.rb' - './ee/spec/workers/geo/design_repository_shard_sync_worker_spec.rb' @@ -3388,7 +3302,6 @@ - './ee/spec/workers/merge_request_reset_approvals_worker_spec.rb' - './ee/spec/workers/merge_requests/stream_approval_audit_event_worker_spec.rb' - './ee/spec/workers/merge_requests/sync_code_owner_approval_rules_worker_spec.rb' -- './ee/spec/workers/namespaces/free_user_cap/remediation_worker_spec.rb' - './ee/spec/workers/namespaces/sync_namespace_name_worker_spec.rb' - './ee/spec/workers/new_epic_worker_spec.rb' - './ee/spec/workers/personal_access_tokens/groups/policy_worker_spec.rb' @@ -3407,8 +3320,6 @@ - './ee/spec/workers/scan_security_report_secrets_worker_spec.rb' - './ee/spec/workers/security/auto_fix_worker_spec.rb' - './ee/spec/workers/security/create_orchestration_policy_worker_spec.rb' -- './ee/spec/workers/security/findings/cleanup_worker_spec.rb' -- './ee/spec/workers/security/findings/delete_by_job_id_worker_spec.rb' - './ee/spec/workers/security/orchestration_policy_rule_schedule_namespace_worker_spec.rb' - './ee/spec/workers/security/orchestration_policy_rule_schedule_worker_spec.rb' - './ee/spec/workers/security/store_scans_worker_spec.rb' @@ -3451,7 +3362,6 @@ - './spec/config/application_spec.rb' - './spec/config/inject_enterprise_edition_module_spec.rb' - './spec/config/mail_room_spec.rb' -- './spec/config/metrics/aggregates/aggregated_metrics_spec.rb' - './spec/config/object_store_settings_spec.rb' - './spec/config/settings_spec.rb' - './spec/config/smime_signature_settings_spec.rb' @@ -3485,10 +3395,7 @@ - './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/boards/lists_controller_spec.rb' - './spec/controllers/chaos_controller_spec.rb' -- './spec/controllers/concerns/boards_responses_spec.rb' - './spec/controllers/concerns/check_rate_limit_spec.rb' - './spec/controllers/concerns/checks_collaboration_spec.rb' - './spec/controllers/concerns/confirm_email_warning_spec.rb' @@ -3666,7 +3573,6 @@ - './spec/controllers/projects/pipelines_settings_controller_spec.rb' - './spec/controllers/projects/pipelines/stages_controller_spec.rb' - './spec/controllers/projects/pipelines/tests_controller_spec.rb' -- './spec/controllers/projects/product_analytics_controller_spec.rb' - './spec/controllers/projects/project_members_controller_spec.rb' - './spec/controllers/projects/prometheus/alerts_controller_spec.rb' - './spec/controllers/projects/prometheus/metrics_controller_spec.rb' @@ -3930,7 +3836,6 @@ - './spec/features/ide/clientside_preview_csp_spec.rb' - './spec/features/ide_spec.rb' - './spec/features/ide/static_object_external_storage_csp_spec.rb' -- './spec/features/ide/user_commits_changes_spec.rb' - './spec/features/ide/user_opens_merge_request_spec.rb' - './spec/features/import/manifest_import_spec.rb' - './spec/features/invites_spec.rb' @@ -4053,7 +3958,6 @@ - './spec/features/merge_request/user_edits_reviewers_sidebar_spec.rb' - './spec/features/merge_request/user_expands_diff_spec.rb' - './spec/features/merge_request/user_interacts_with_batched_mr_diffs_spec.rb' -- './spec/features/merge_request/user_jumps_to_discussion_spec.rb' - './spec/features/merge_request/user_locks_discussion_spec.rb' - './spec/features/merge_request/user_manages_subscription_spec.rb' - './spec/features/merge_request/user_marks_merge_request_as_draft_spec.rb' @@ -4108,7 +4012,6 @@ - './spec/features/merge_request/user_views_diffs_spec.rb' - './spec/features/merge_request/user_views_merge_request_from_deleted_fork_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/milestone_spec.rb' - './spec/features/milestones/user_creates_milestone_spec.rb' - './spec/features/milestones/user_deletes_milestone_spec.rb' @@ -4169,7 +4072,6 @@ - './spec/features/projects/blobs/blob_show_spec.rb' - './spec/features/projects/blobs/edit_spec.rb' - './spec/features/projects/blobs/shortcuts_blob_spec.rb' -- './spec/features/projects/blobs/user_creates_new_blob_in_new_project_spec.rb' - './spec/features/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb' - './spec/features/projects/blobs/user_views_pipeline_editor_button_spec.rb' - './spec/features/projects/branches/download_buttons_spec.rb' @@ -4329,14 +4231,8 @@ - './spec/features/projects/pages/user_edits_lets_encrypt_settings_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/product_analytics/events_spec.rb' -- './spec/features/projects/product_analytics/graphs_spec.rb' -- './spec/features/projects/product_analytics/setup_spec.rb' -- './spec/features/projects/product_analytics/test_spec.rb' - './spec/features/projects/raw/user_interacts_with_raw_endpoint_spec.rb' - './spec/features/projects/releases/user_creates_release_spec.rb' - './spec/features/projects/releases/user_views_edit_release_spec.rb' @@ -4485,7 +4381,6 @@ - './spec/features/users/anonymous_sessions_spec.rb' - './spec/features/users/bizible_csp_spec.rb' - './spec/features/users/confirmation_spec.rb' -- './spec/features/user_sees_marketing_header_spec.rb' - './spec/features/user_sees_revert_modal_spec.rb' - './spec/features/users/email_verification_on_login_spec.rb' - './spec/features/users/google_analytics_csp_spec.rb' @@ -4565,7 +4460,6 @@ - './spec/finders/feature_flags_user_lists_finder_spec.rb' - './spec/finders/fork_projects_finder_spec.rb' - './spec/finders/fork_targets_finder_spec.rb' -- './spec/finders/freeze_periods_finder_spec.rb' - './spec/finders/group_descendants_finder_spec.rb' - './spec/finders/group_members_finder_spec.rb' - './spec/finders/group_projects_finder_spec.rb' @@ -4585,7 +4479,6 @@ - './spec/finders/members_finder_spec.rb' - './spec/finders/merge_request/metrics_finder_spec.rb' - './spec/finders/merge_requests/by_approvals_finder_spec.rb' -- './spec/finders/merge_requests_finder/params_spec.rb' - './spec/finders/merge_requests_finder_spec.rb' - './spec/finders/merge_requests/oldest_per_commit_finder_spec.rb' - './spec/finders/merge_request_target_project_finder_spec.rb' @@ -4700,7 +4593,6 @@ - './spec/frontend/fixtures/u2f.rb' - './spec/frontend/fixtures/webauthn.rb' - './spec/graphql/features/authorization_spec.rb' -- './spec/graphql/features/feature_flag_spec.rb' - './spec/graphql/gitlab_schema_spec.rb' - './spec/graphql/graphql_triggers_spec.rb' - './spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb' @@ -4798,7 +4690,6 @@ - './spec/graphql/mutations/todos/restore_spec.rb' - './spec/graphql/mutations/user_callouts/create_spec.rb' - './spec/graphql/mutations/work_items/update_task_spec.rb' -- './spec/graphql/mutations/work_items/update_widgets_spec.rb' - './spec/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver_spec.rb' - './spec/graphql/resolvers/alert_management/alert_resolver_spec.rb' - './spec/graphql/resolvers/alert_management/alert_status_counts_resolver_spec.rb' @@ -4862,7 +4753,6 @@ - './spec/graphql/resolvers/group_packages_resolver_spec.rb' - './spec/graphql/resolvers/group_resolver_spec.rb' - './spec/graphql/resolvers/groups_resolver_spec.rb' -- './spec/graphql/resolvers/issues_resolver_spec.rb' - './spec/graphql/resolvers/issue_status_counts_resolver_spec.rb' - './spec/graphql/resolvers/kas/agent_configurations_resolver_spec.rb' - './spec/graphql/resolvers/kas/agent_connections_resolver_spec.rb' @@ -5362,8 +5252,6 @@ - './spec/initializers/action_mailer_hooks_spec.rb' - './spec/initializers/active_record_locking_spec.rb' - './spec/initializers/asset_proxy_setting_spec.rb' -- './spec/initializers/attr_encrypted_no_db_connection_spec.rb' -- './spec/initializers/attr_encrypted_thread_safe_spec.rb' - './spec/initializers/carrierwave_patch_spec.rb' - './spec/initializers/cookies_serializer_spec.rb' - './spec/initializers/database_config_spec.rb' @@ -5431,7 +5319,6 @@ - './spec/lib/api/entities/nuget/search_result_spec.rb' - './spec/lib/api/entities/package_spec.rb' - './spec/lib/api/entities/personal_access_token_spec.rb' -- './spec/lib/api/entities/personal_access_token_with_details_spec.rb' - './spec/lib/api/entities/plan_limit_spec.rb' - './spec/lib/api/entities/project_import_failed_relation_spec.rb' - './spec/lib/api/entities/project_import_status_spec.rb' @@ -5464,7 +5351,6 @@ - './spec/lib/api/helpers_spec.rb' - './spec/lib/api/helpers/variables_helpers_spec.rb' - './spec/lib/api/helpers/version_spec.rb' -- './spec/lib/api/integrations/slack/events/url_verification_spec.rb' - './spec/lib/api/support/git_access_actor_spec.rb' - './spec/lib/api/validations/validators/absence_spec.rb' - './spec/lib/api/validations/validators/array_none_any_spec.rb' @@ -5814,7 +5700,6 @@ - './spec/lib/gitlab/auth/unique_ips_limiter_spec.rb' - './spec/lib/gitlab/auth/user_access_denied_reason_spec.rb' - './spec/lib/gitlab/avatar_cache_spec.rb' -- './spec/lib/gitlab/background_migration/add_primary_email_to_emails_if_user_confirmed_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' @@ -5836,7 +5721,6 @@ - './spec/lib/gitlab/background_migration/backfill_project_member_namespace_id_spec.rb' - './spec/lib/gitlab/background_migration/backfill_project_repositories_spec.rb' - './spec/lib/gitlab/background_migration/backfill_project_settings_spec.rb' -- './spec/lib/gitlab/background_migration/backfill_projects_with_coverage_spec.rb' - './spec/lib/gitlab/background_migration/backfill_snippet_repositories_spec.rb' - './spec/lib/gitlab/background_migration/backfill_topics_title_spec.rb' - './spec/lib/gitlab/background_migration/backfill_upvotes_count_on_issues_spec.rb' @@ -5845,7 +5729,6 @@ - './spec/lib/gitlab/background_migration/backfill_work_item_type_id_for_issues_spec.rb' - './spec/lib/gitlab/background_migration/base_job_spec.rb' - './spec/lib/gitlab/background_migration/batched_migration_job_spec.rb' -- './spec/lib/gitlab/background_migration/batching_strategies/backfill_issue_work_item_type_batching_strategy_spec.rb' - './spec/lib/gitlab/background_migration/batching_strategies/backfill_project_namespace_per_group_batching_strategy_spec.rb' - './spec/lib/gitlab/background_migration/batching_strategies/backfill_project_statistics_with_container_registry_size_batching_strategy_spec.rb' - './spec/lib/gitlab/background_migration/batching_strategies/base_strategy_spec.rb' @@ -5914,7 +5797,6 @@ - './spec/lib/gitlab/backtrace_cleaner_spec.rb' - './spec/lib/gitlab/bare_repository_import/importer_spec.rb' - './spec/lib/gitlab/bare_repository_import/repository_spec.rb' -- './spec/lib/gitlab/batch_pop_queueing_spec.rb' - './spec/lib/gitlab/batch_worker_context_spec.rb' - './spec/lib/gitlab/bitbucket_import/importer_spec.rb' - './spec/lib/gitlab/bitbucket_import/project_creator_spec.rb' @@ -5981,7 +5863,6 @@ - './spec/lib/gitlab/ci/badge/release/template_spec.rb' - './spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb' - './spec/lib/gitlab/ci/build/artifacts/adapters/raw_stream_spec.rb' -- './spec/lib/gitlab/ci/build/artifacts/adapters/zip_stream_spec.rb' - './spec/lib/gitlab/ci/build/artifacts/metadata/entry_spec.rb' - './spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb' - './spec/lib/gitlab/ci/build/artifacts/path_spec.rb' @@ -6155,8 +6036,6 @@ - './spec/lib/gitlab/ci/pipeline/quota/deployments_spec.rb' - './spec/lib/gitlab/ci/pipeline/seed/build/cache_spec.rb' - './spec/lib/gitlab/ci/pipeline/seed/build_spec.rb' -- './spec/lib/gitlab/ci/pipeline/seed/deployment_spec.rb' -- './spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb' - './spec/lib/gitlab/ci/pipeline/seed/pipeline_spec.rb' - './spec/lib/gitlab/ci/pipeline/seed/processable/resource_group_spec.rb' - './spec/lib/gitlab/ci/pipeline/seed/stage_spec.rb' @@ -6548,7 +6427,6 @@ - './spec/lib/gitlab/discussions_diff/file_collection_spec.rb' - './spec/lib/gitlab/discussions_diff/highlight_cache_spec.rb' - './spec/lib/gitlab/doctor/secrets_spec.rb' -- './spec/lib/gitlab/doorkeeper_secret_storing/pbkdf2_sha512_spec.rb' - './spec/lib/gitlab_edition_spec.rb' - './spec/lib/gitlab/email/attachment_uploader_spec.rb' - './spec/lib/gitlab/email/failure_handler_spec.rb' @@ -6608,10 +6486,6 @@ - './spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb' - './spec/lib/gitlab/exclusive_lease_helpers_spec.rb' - './spec/lib/gitlab/exclusive_lease_spec.rb' -- './spec/lib/gitlab/experimentation/controller_concern_spec.rb' -- './spec/lib/gitlab/experimentation/experiment_spec.rb' -- './spec/lib/gitlab/experimentation/group_types_spec.rb' -- './spec/lib/gitlab/experimentation_spec.rb' - './spec/lib/gitlab/experiment/rollout/feature_spec.rb' - './spec/lib/gitlab/external_authorization/access_spec.rb' - './spec/lib/gitlab/external_authorization/cache_spec.rb' @@ -6660,7 +6534,6 @@ - './spec/lib/gitlab/gitaly_client_spec.rb' - './spec/lib/gitlab/gitaly_client/storage_settings_spec.rb' - './spec/lib/gitlab/gitaly_client/util_spec.rb' -- './spec/lib/gitlab/gitaly_client/wiki_service_spec.rb' - './spec/lib/gitlab/git/attributes_at_ref_parser_spec.rb' - './spec/lib/gitlab/git/attributes_parser_spec.rb' - './spec/lib/gitlab/git/base_error_spec.rb' @@ -6676,7 +6549,6 @@ - './spec/lib/gitlab/git/conflict/file_spec.rb' - './spec/lib/gitlab/git/conflict/parser_spec.rb' - './spec/lib/gitlab/git/conflict/resolver_spec.rb' -- './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/diff_stats_collection_spec.rb' @@ -6769,7 +6641,6 @@ - './spec/lib/gitlab/git/user_spec.rb' - './spec/lib/gitlab/git/util_spec.rb' - './spec/lib/gitlab/git/wiki_page_version_spec.rb' -- './spec/lib/gitlab/git/wiki_spec.rb' - './spec/lib/gitlab/git/wraps_gitaly_errors_spec.rb' - './spec/lib/gitlab/global_id/deprecations_spec.rb' - './spec/lib/gitlab/global_id_spec.rb' @@ -6812,7 +6683,6 @@ - './spec/lib/gitlab/graphql/pagination/connections_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/last_items_spec.rb' - './spec/lib/gitlab/graphql/pagination/offset_active_record_relation_connection_spec.rb' - './spec/lib/gitlab/graphql/present/field_extension_spec.rb' - './spec/lib/gitlab/graphql/queries_spec.rb' @@ -6838,13 +6708,6 @@ - './spec/lib/gitlab/health_checks/middleware_spec.rb' - './spec/lib/gitlab/health_checks/probes/collection_spec.rb' - './spec/lib/gitlab/health_checks/puma_check_spec.rb' -- './spec/lib/gitlab/health_checks/redis/cache_check_spec.rb' -- './spec/lib/gitlab/health_checks/redis/queues_check_spec.rb' -- './spec/lib/gitlab/health_checks/redis/rate_limiting_check_spec.rb' -- './spec/lib/gitlab/health_checks/redis/redis_check_spec.rb' -- './spec/lib/gitlab/health_checks/redis/sessions_check_spec.rb' -- './spec/lib/gitlab/health_checks/redis/shared_state_check_spec.rb' -- './spec/lib/gitlab/health_checks/redis/trace_chunks_check_spec.rb' - './spec/lib/gitlab/health_checks/server_spec.rb' - './spec/lib/gitlab/highlight_spec.rb' - './spec/lib/gitlab/hook_data/base_builder_spec.rb' @@ -6890,8 +6753,6 @@ - './spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb' - './spec/lib/gitlab/import_export/file_importer_spec.rb' - './spec/lib/gitlab/import_export/fork_spec.rb' -- './spec/lib/gitlab/import_export/group/legacy_tree_restorer_spec.rb' -- './spec/lib/gitlab/import_export/group/legacy_tree_saver_spec.rb' - './spec/lib/gitlab/import_export/group/object_builder_spec.rb' - './spec/lib/gitlab/import_export/group/relation_factory_spec.rb' - './spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb' @@ -7069,7 +6930,6 @@ - './spec/lib/gitlab/memory/reports_daemon_spec.rb' - './spec/lib/gitlab/memory/reports/jemalloc_stats_spec.rb' - './spec/lib/gitlab/memory/watchdog_spec.rb' -- './spec/lib/gitlab/merge_requests/commit_message_generator_spec.rb' - './spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb' - './spec/lib/gitlab/merge_requests/mergeability/redis_interface_spec.rb' - './spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb' @@ -7348,7 +7208,6 @@ - './spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executing_spec.rb' - './spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb' - './spec/lib/gitlab/sidekiq_middleware/instrumentation_logger_spec.rb' -- './spec/lib/gitlab/sidekiq_middleware/memory_killer_spec.rb' - './spec/lib/gitlab/sidekiq_middleware/monitor_spec.rb' - './spec/lib/gitlab/sidekiq_middleware/query_analyzer_spec.rb' - './spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb' @@ -7508,7 +7367,6 @@ - './spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb' - './spec/lib/gitlab/usage/metrics/key_path_processor_spec.rb' - './spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb' -- './spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/constraints_spec.rb' - './spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/joins_spec.rb' - './spec/lib/gitlab/usage/metrics/name_suggestion_spec.rb' - './spec/lib/gitlab/usage/metric_spec.rb' @@ -7601,8 +7459,6 @@ - './spec/lib/security/ci_configuration/sast_iac_build_action_spec.rb' - './spec/lib/security/ci_configuration/secret_detection_build_action_spec.rb' - './spec/lib/security/report_schema_version_matcher_spec.rb' -- './spec/lib/serializers/json_spec.rb' -- './spec/lib/serializers/symbolized_json_spec.rb' - './spec/lib/serializers/unsafe_json_spec.rb' - './spec/lib/service_ping/build_payload_spec.rb' - './spec/lib/service_ping/devops_report_spec.rb' @@ -7681,15 +7537,6 @@ - './spec/mailers/notify_spec.rb' - './spec/mailers/repository_check_mailer_spec.rb' - './spec/metrics_server/metrics_server_spec.rb' -- './spec/migrations/20210406144743_backfill_total_tuple_count_for_batched_migrations_spec.rb' -- './spec/migrations/20210423160427_schedule_drop_invalid_vulnerabilities_spec.rb' -- './spec/migrations/20210430134202_copy_adoption_snapshot_namespace_spec.rb' -- './spec/migrations/20210430135954_copy_adoption_segments_namespace_spec.rb' -- './spec/migrations/20210503105845_add_project_value_stream_id_to_project_stages_spec.rb' -- './spec/migrations/20210511142748_schedule_drop_invalid_vulnerabilities2_spec.rb' -- './spec/migrations/20210514063252_schedule_cleanup_orphaned_lfs_objects_projects_spec.rb' -- './spec/migrations/20210601073400_fix_total_stage_in_vsa_spec.rb' -- './spec/migrations/20210601080039_group_protected_environments_add_index_and_constraint_spec.rb' - './spec/migrations/20210603222333_remove_builds_email_service_from_services_spec.rb' - './spec/migrations/20210610153556_delete_legacy_operations_feature_flags_spec.rb' - './spec/migrations/2021061716138_cascade_delete_freeze_periods_spec.rb' @@ -7701,7 +7548,6 @@ - './spec/migrations/20210805192450_update_trial_plans_ci_daily_pipeline_schedule_triggers_spec.rb' - './spec/migrations/20210811122206_update_external_project_bots_spec.rb' - './spec/migrations/20210812013042_remove_duplicate_project_authorizations_spec.rb' -- './spec/migrations/20210818185845_backfill_projects_with_coverage_spec.rb' - './spec/migrations/20210819145000_drop_temporary_columns_and_triggers_for_ci_builds_runner_session_spec.rb' - './spec/migrations/20210831203408_upsert_base_work_item_types_spec.rb' - './spec/migrations/20210902144144_drop_temporary_columns_and_triggers_for_ci_build_needs_spec.rb' @@ -7798,11 +7644,9 @@ - './spec/migrations/20220801155858_schedule_disable_legacy_open_source_licence_for_recent_public_projects_spec.rb' - './spec/migrations/20220802114351_reschedule_backfill_container_registry_size_into_project_statistics_spec.rb' - './spec/migrations/20220802204737_remove_deactivated_user_highest_role_stats_spec.rb' -- './spec/migrations/20220809002011_schedule_destroy_invalid_group_members_spec.rb' - './spec/migrations/active_record/schema_spec.rb' - './spec/migrations/add_default_project_approval_rules_vuln_allowed_spec.rb' - './spec/migrations/add_epics_relative_position_spec.rb' -- './spec/migrations/add_new_trail_plans_spec.rb' - './spec/migrations/add_open_source_plan_spec.rb' - './spec/migrations/add_premium_and_ultimate_plan_limits_spec.rb' - './spec/migrations/add_triggers_to_integrations_type_new_spec.rb' @@ -7811,9 +7655,7 @@ - './spec/migrations/associate_existing_dast_builds_with_variables_spec.rb' - './spec/migrations/backfill_all_project_namespaces_spec.rb' - './spec/migrations/backfill_cadence_id_for_boards_scoped_to_iteration_spec.rb' -- './spec/migrations/backfill_clusters_integration_prometheus_enabled_spec.rb' - './spec/migrations/backfill_cycle_analytics_aggregations_spec.rb' -- './spec/migrations/backfill_escalation_policies_for_oncall_schedules_spec.rb' - './spec/migrations/backfill_group_features_spec.rb' - './spec/migrations/backfill_integrations_enable_ssl_verification_spec.rb' - './spec/migrations/backfill_integrations_type_new_spec.rb' @@ -7821,26 +7663,19 @@ - './spec/migrations/backfill_member_namespace_id_for_group_members_spec.rb' - './spec/migrations/backfill_namespace_id_for_namespace_routes_spec.rb' - './spec/migrations/backfill_namespace_id_for_project_routes_spec.rb' -- './spec/migrations/backfill_nuget_temporary_packages_to_processing_status_spec.rb' - './spec/migrations/backfill_project_import_level_spec.rb' - './spec/migrations/backfill_project_namespaces_for_group_spec.rb' - './spec/migrations/backfill_stage_event_hash_spec.rb' - './spec/migrations/backfill_user_namespace_spec.rb' - './spec/migrations/bulk_insert_cluster_enabled_grants_spec.rb' - './spec/migrations/change_public_projects_cost_factor_spec.rb' -- './spec/migrations/change_web_hook_events_default_spec.rb' -- './spec/migrations/cleanup_after_add_primary_email_to_emails_if_user_confirmed_spec.rb' - './spec/migrations/cleanup_after_fixing_issue_when_admin_changed_primary_email_spec.rb' - './spec/migrations/cleanup_after_fixing_regression_with_new_users_emails_spec.rb' - './spec/migrations/cleanup_backfill_integrations_enable_ssl_verification_spec.rb' -- './spec/migrations/cleanup_move_container_registry_enabled_to_project_feature_spec.rb' - './spec/migrations/cleanup_mr_attention_request_todos_spec.rb' - './spec/migrations/cleanup_orphaned_routes_spec.rb' -- './spec/migrations/clean_up_pending_builds_table_spec.rb' - './spec/migrations/cleanup_remaining_orphan_invites_spec.rb' - './spec/migrations/confirm_security_bot_spec.rb' -- './spec/migrations/confirm_support_bot_user_spec.rb' -- './spec/migrations/delete_security_findings_without_uuid_spec.rb' - './spec/migrations/disable_expiration_policies_linked_to_no_container_images_spec.rb' - './spec/migrations/disable_job_token_scope_when_unused_spec.rb' - './spec/migrations/finalize_orphaned_routes_cleanup_spec.rb' @@ -7850,23 +7685,17 @@ - './spec/migrations/fix_and_backfill_project_namespaces_for_projects_with_duplicate_name_spec.rb' - './spec/migrations/fix_batched_migrations_old_format_job_arguments_spec.rb' - './spec/migrations/generate_customers_dot_jwt_signing_key_spec.rb' -- './spec/migrations/insert_ci_daily_pipeline_schedule_triggers_plan_limits_spec.rb' -- './spec/migrations/migrate_elastic_index_settings_spec.rb' - './spec/migrations/migrate_protected_attribute_to_pending_builds_spec.rb' -- './spec/migrations/move_container_registry_enabled_to_project_features3_spec.rb' - './spec/migrations/orphaned_invite_tokens_cleanup_spec.rb' - './spec/migrations/populate_audit_event_streaming_verification_token_spec.rb' -- './spec/migrations/populate_dismissal_information_for_vulnerabilities_spec.rb' - './spec/migrations/populate_operation_visibility_permissions_spec.rb' - './spec/migrations/queue_backfill_project_feature_package_registry_access_level_spec.rb' - './spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_features_spec.rb' - './spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_with_new_features_spec.rb' - './spec/migrations/remove_duplicate_dast_site_tokens_spec.rb' - './spec/migrations/remove_duplicate_dast_site_tokens_with_same_token_spec.rb' -- './spec/migrations/remove_hipchat_service_records_spec.rb' - './spec/migrations/remove_invalid_integrations_spec.rb' - './spec/migrations/remove_not_null_contraint_on_title_from_sprints_spec.rb' -- './spec/migrations/remove_records_without_group_from_webhooks_table_spec.rb' - './spec/migrations/remove_schedule_and_status_from_pending_alert_escalations_spec.rb' - './spec/migrations/remove_wiki_notes_spec.rb' - './spec/migrations/rename_services_to_integrations_spec.rb' @@ -7878,22 +7707,17 @@ - './spec/migrations/reset_job_token_scope_enabled_spec.rb' - './spec/migrations/reset_severity_levels_to_new_default_spec.rb' - './spec/migrations/retry_backfill_traversal_ids_spec.rb' -- './spec/migrations/schedule_add_primary_email_to_emails_if_user_confirmed_spec.rb' - './spec/migrations/schedule_backfill_draft_status_on_merge_requests_corrected_regex_spec.rb' - './spec/migrations/schedule_backfilling_the_namespace_id_for_vulnerability_reads_spec.rb' - './spec/migrations/schedule_copy_ci_builds_columns_to_security_scans2_spec.rb' -- './spec/migrations/schedule_disable_expiration_policies_linked_to_no_container_images_spec.rb' - './spec/migrations/schedule_fix_incorrect_max_seats_used2_spec.rb' - './spec/migrations/schedule_fix_incorrect_max_seats_used_spec.rb' -- './spec/migrations/schedule_migrate_shared_vulnerability_scanners_spec.rb' - './spec/migrations/schedule_populate_requirements_issue_id_spec.rb' - './spec/migrations/schedule_purging_stale_security_scans_spec.rb' - './spec/migrations/schedule_recalculate_vulnerability_finding_signatures_for_findings_spec.rb' - './spec/migrations/schedule_security_setting_creation_spec.rb' - './spec/migrations/schedule_set_correct_vulnerability_state_spec.rb' - './spec/migrations/schedule_update_timelogs_null_spent_at_spec.rb' -- './spec/migrations/schedule_update_timelogs_project_id_spec.rb' -- './spec/migrations/schedule_update_users_where_two_factor_auth_required_from_group_spec.rb' - './spec/migrations/set_default_job_token_scope_true_spec.rb' - './spec/migrations/slice_merge_request_diff_commit_migrations_spec.rb' - './spec/migrations/start_backfill_ci_queuing_tables_spec.rb' @@ -7904,7 +7728,6 @@ - './spec/migrations/update_default_scan_method_of_dast_site_profile_spec.rb' - './spec/migrations/update_integrations_trigger_type_new_on_insert_spec.rb' - './spec/migrations/update_invalid_member_states_spec.rb' -- './spec/migrations/update_invalid_web_hooks_spec.rb' - './spec/models/ability_spec.rb' - './spec/models/abuse_report_spec.rb' - './spec/models/active_session_spec.rb' @@ -7989,7 +7812,6 @@ - './spec/models/ci/daily_build_group_report_result_spec.rb' - './spec/models/ci/deleted_object_spec.rb' - './spec/models/ci/freeze_period_spec.rb' -- './spec/models/ci/freeze_period_status_spec.rb' - './spec/models/ci/group_spec.rb' - './spec/models/ci/group_variable_spec.rb' - './spec/models/ci/instance_variable_spec.rb' @@ -8061,7 +7883,6 @@ - './spec/models/compare_spec.rb' - './spec/models/concerns/access_requestable_spec.rb' - './spec/models/concerns/after_commit_queue_spec.rb' -- './spec/models/concerns/approvable_base_spec.rb' - './spec/models/concerns/as_cte_spec.rb' - './spec/models/concerns/atomic_internal_id_spec.rb' - './spec/models/concerns/avatarable_spec.rb' @@ -8075,13 +7896,11 @@ - './spec/models/concerns/bulk_insert_safe_spec.rb' - './spec/models/concerns/cacheable_attributes_spec.rb' - './spec/models/concerns/cache_markdown_field_spec.rb' -- './spec/models/concerns/cascading_namespace_setting_attribute_spec.rb' - './spec/models/concerns/case_sensitivity_spec.rb' - './spec/models/concerns/checksummable_spec.rb' - './spec/models/concerns/chronic_duration_attribute_spec.rb' - './spec/models/concerns/ci/artifactable_spec.rb' - './spec/models/concerns/ci/bulk_insertable_tags_spec.rb' -- './spec/models/concerns/ci/has_deployment_name_spec.rb' - './spec/models/concerns/ci/has_ref_spec.rb' - './spec/models/concerns/ci/has_status_spec.rb' - './spec/models/concerns/ci/has_variable_spec.rb' @@ -8218,9 +8037,6 @@ - './spec/models/error_tracking/error_spec.rb' - './spec/models/error_tracking/project_error_tracking_setting_spec.rb' - './spec/models/event_spec.rb' -- './spec/models/experiment_spec.rb' -- './spec/models/experiment_subject_spec.rb' -- './spec/models/experiment_user_spec.rb' - './spec/models/exported_protected_branch_spec.rb' - './spec/models/external_issue_spec.rb' - './spec/models/external_pull_request_spec.rb' @@ -8313,7 +8129,6 @@ - './spec/models/internal_id_spec.rb' - './spec/models/issuable_severity_spec.rb' - './spec/models/issue_assignee_spec.rb' -- './spec/models/issue_collection_spec.rb' - './spec/models/issue_email_participant_spec.rb' - './spec/models/issue/email_spec.rb' - './spec/models/issue_link_spec.rb' @@ -8385,7 +8200,6 @@ - './spec/models/notification_setting_spec.rb' - './spec/models/oauth_access_grant_spec.rb' - './spec/models/oauth_access_token_spec.rb' -- './spec/models/onboarding_progress_spec.rb' - './spec/models/operations/feature_flags_client_spec.rb' - './spec/models/operations/feature_flag_spec.rb' - './spec/models/operations/feature_flags/strategy_spec.rb' @@ -8561,7 +8375,6 @@ - './spec/models/users/group_callout_spec.rb' - './spec/models/users/in_product_marketing_email_spec.rb' - './spec/models/users/merge_request_interaction_spec.rb' -- './spec/models/users/namespace_callout_spec.rb' - './spec/models/user_spec.rb' - './spec/models/users/project_callout_spec.rb' - './spec/models/users/saved_reply_spec.rb' @@ -8607,7 +8420,6 @@ - './spec/policies/commit_policy_spec.rb' - './spec/policies/concerns/crud_policy_helpers_spec.rb' - './spec/policies/concerns/policy_actor_spec.rb' -- './spec/policies/concerns/readonly_abilities_spec.rb' - './spec/policies/container_expiration_policy_policy_spec.rb' - './spec/policies/custom_emoji_policy_spec.rb' - './spec/policies/deploy_key_policy_spec.rb' @@ -8957,7 +8769,6 @@ - './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/package_settings_spec.rb' - './spec/requests/api/graphql/namespace/projects_spec.rb' - './spec/requests/api/graphql/namespace_query_spec.rb' @@ -9053,7 +8864,6 @@ - './spec/requests/api/import_bitbucket_server_spec.rb' - './spec/requests/api/import_github_spec.rb' - './spec/requests/api/integrations/jira_connect/subscriptions_spec.rb' -- './spec/requests/api/integrations/slack/events_spec.rb' - './spec/requests/api/integrations_spec.rb' - './spec/requests/api/internal/base_spec.rb' - './spec/requests/api/internal/container_registry/migration_spec.rb' @@ -9151,9 +8961,7 @@ - './spec/requests/api/users_preferences_spec.rb' - './spec/requests/api/users_spec.rb' - './spec/requests/api/v3/github_spec.rb' -- './spec/requests/api/version_spec.rb' - './spec/requests/api/wikis_spec.rb' -- './spec/requests/boards/lists_controller_spec.rb' - './spec/requests/concerns/planning_hierarchy_spec.rb' - './spec/requests/content_security_policy_spec.rb' - './spec/requests/dashboard_controller_spec.rb' @@ -9195,8 +9003,6 @@ - './spec/requests/oauth/tokens_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/profiles/notifications_controller_spec.rb' - './spec/requests/projects/ci/promeheus_metrics/histograms_controller_spec.rb' - './spec/requests/projects/cluster_agents_controller_spec.rb' @@ -9252,7 +9058,6 @@ - './spec/requests/users_controller_spec.rb' - './spec/requests/user_sends_malformed_strings_spec.rb' - './spec/requests/users/group_callouts_spec.rb' -- './spec/requests/users/namespace_callouts_spec.rb' - './spec/requests/user_spoofs_ip_spec.rb' - './spec/requests/users/project_callouts_spec.rb' - './spec/requests/verifies_with_email_spec.rb' @@ -9282,8 +9087,6 @@ - './spec/serializers/analytics_summary_serializer_spec.rb' - './spec/serializers/base_discussion_entity_spec.rb' - './spec/serializers/blob_entity_spec.rb' -- './spec/serializers/board_serializer_spec.rb' -- './spec/serializers/board_simple_entity_spec.rb' - './spec/serializers/build_action_entity_spec.rb' - './spec/serializers/build_artifact_entity_spec.rb' - './spec/serializers/build_details_entity_spec.rb' @@ -9492,7 +9295,6 @@ - './spec/services/boards/issues/move_service_spec.rb' - './spec/services/boards/lists/create_service_spec.rb' - './spec/services/boards/lists/destroy_service_spec.rb' -- './spec/services/boards/lists/generate_service_spec.rb' - './spec/services/boards/lists/list_service_spec.rb' - './spec/services/boards/lists/move_service_spec.rb' - './spec/services/boards/lists/update_service_spec.rb' @@ -9522,7 +9324,6 @@ - './spec/services/chat_names/authorize_user_service_spec.rb' - './spec/services/chat_names/find_user_service_spec.rb' - './spec/services/ci/abort_pipelines_service_spec.rb' -- './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_cancel_service_spec.rb' @@ -9635,37 +9436,14 @@ - './spec/services/clusters/agents/refresh_authorization_service_spec.rb' - './spec/services/clusters/agent_tokens/create_service_spec.rb' - './spec/services/clusters/agent_tokens/track_usage_service_spec.rb' -- './spec/services/clusters/applications/check_ingress_ip_address_service_spec.rb' -- './spec/services/clusters/applications/check_installation_progress_service_spec.rb' -- './spec/services/clusters/applications/check_uninstall_progress_service_spec.rb' -- './spec/services/clusters/applications/check_upgrade_progress_service_spec.rb' -- './spec/services/clusters/applications/create_service_spec.rb' -- './spec/services/clusters/applications/destroy_service_spec.rb' -- './spec/services/clusters/applications/install_service_spec.rb' -- './spec/services/clusters/applications/patch_service_spec.rb' -- './spec/services/clusters/applications/prometheus_config_service_spec.rb' -- './spec/services/clusters/applications/prometheus_update_service_spec.rb' -- './spec/services/clusters/applications/uninstall_service_spec.rb' -- './spec/services/clusters/applications/update_service_spec.rb' -- './spec/services/clusters/applications/upgrade_service_spec.rb' -- './spec/services/clusters/aws/authorize_role_service_spec.rb' -- './spec/services/clusters/aws/fetch_credentials_service_spec.rb' -- './spec/services/clusters/aws/finalize_creation_service_spec.rb' -- './spec/services/clusters/aws/provision_service_spec.rb' -- './spec/services/clusters/aws/verify_provision_status_service_spec.rb' - './spec/services/clusters/build_kubernetes_namespace_service_spec.rb' - './spec/services/clusters/build_service_spec.rb' - './spec/services/clusters/cleanup/project_namespace_service_spec.rb' - './spec/services/clusters/cleanup/service_account_service_spec.rb' - './spec/services/clusters/create_service_spec.rb' - './spec/services/clusters/destroy_service_spec.rb' -- './spec/services/clusters/gcp/fetch_operation_service_spec.rb' -- './spec/services/clusters/gcp/finalize_creation_service_spec.rb' -- './spec/services/clusters/gcp/provision_service_spec.rb' -- './spec/services/clusters/gcp/verify_provision_status_service_spec.rb' - './spec/services/clusters/integrations/create_service_spec.rb' - './spec/services/clusters/integrations/prometheus_health_check_service_spec.rb' -- './spec/services/clusters/kubernetes/configure_istio_ingress_service_spec.rb' - './spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb' - './spec/services/clusters/kubernetes/create_or_update_service_account_service_spec.rb' - './spec/services/clusters/kubernetes/fetch_kubernetes_token_service_spec.rb' @@ -10232,14 +10010,12 @@ - './spec/services/users/destroy_service_spec.rb' - './spec/services/users/dismiss_callout_service_spec.rb' - './spec/services/users/dismiss_group_callout_service_spec.rb' -- './spec/services/users/dismiss_namespace_callout_service_spec.rb' - './spec/services/users/dismiss_project_callout_service_spec.rb' - './spec/services/users/email_verification/generate_token_service_spec.rb' - './spec/services/users/email_verification/validate_token_service_spec.rb' - './spec/services/users/in_product_marketing_email_records_spec.rb' - './spec/services/users/keys_count_service_spec.rb' - './spec/services/users/last_push_event_service_spec.rb' -- './spec/services/users/migrate_to_ghost_user_service_spec.rb' - './spec/services/users/refresh_authorized_projects_service_spec.rb' - './spec/services/users/registrations_build_service_spec.rb' - './spec/services/users/reject_service_spec.rb' @@ -10290,7 +10066,6 @@ - './spec/sidekiq_cluster/sidekiq_cluster_spec.rb' - './spec/sidekiq/cron/job_gem_dependency_spec.rb' - './spec/spam/concerns/has_spam_action_response_fields_spec.rb' -- './spec/support_specs/database/multiple_databases_spec.rb' - './spec/support_specs/database/prevent_cross_joins_spec.rb' - './spec/support_specs/graphql/arguments_spec.rb' - './spec/support_specs/graphql/field_selection_spec.rb' @@ -10410,7 +10185,6 @@ - './spec/validators/addressable_url_validator_spec.rb' - './spec/validators/any_field_validator_spec.rb' - './spec/validators/array_members_validator_spec.rb' -- './spec/validators/branch_filter_validator_spec.rb' - './spec/validators/color_validator_spec.rb' - './spec/validators/cron_freeze_period_timezone_validator_spec.rb' - './spec/validators/cron_validator_spec.rb' @@ -10504,7 +10278,6 @@ - './spec/views/profiles/notifications/show.html.haml_spec.rb' - './spec/views/profiles/preferences/show.html.haml_spec.rb' - './spec/views/profiles/show.html.haml_spec.rb' -- './spec/views/projects/artifacts/_artifact.html.haml_spec.rb' - './spec/views/projects/blob/_viewer.html.haml_spec.rb' - './spec/views/projects/branches/index.html.haml_spec.rb' - './spec/views/projects/commit/branches.html.haml_spec.rb' @@ -10549,7 +10322,6 @@ - './spec/views/registrations/welcome/show.html.haml_spec.rb' - './spec/views/search/_results.html.haml_spec.rb' - './spec/views/search/show.html.haml_spec.rb' -- './spec/views/shared/deploy_tokens/_form.html.haml_spec.rb' - './spec/views/shared/groups/_dropdown.html.haml_spec.rb' - './spec/views/shared/issuable/_sidebar.html.haml_spec.rb' - './spec/views/shared/_label_row.html.haml_spec.rb' @@ -10564,7 +10336,6 @@ - './spec/views/shared/projects/_project.html.haml_spec.rb' - './spec/views/shared/runners/_runner_details.html.haml_spec.rb' - './spec/views/shared/snippets/_snippet.html.haml_spec.rb' -- './spec/views/shared/ssh_keys/_key_details.html.haml_spec.rb' - './spec/views/shared/wikis/_sidebar.html.haml_spec.rb' - './spec/workers/admin_email_worker_spec.rb' - './spec/workers/analytics/usage_trends/counter_job_worker_spec.rb' @@ -10629,18 +10400,12 @@ - './spec/workers/ci/track_failed_build_worker_spec.rb' - './spec/workers/ci/update_locked_unknown_artifacts_worker_spec.rb' - './spec/workers/cleanup_container_repository_worker_spec.rb' -- './spec/workers/cluster_configure_istio_worker_spec.rb' -- './spec/workers/cluster_provision_worker_spec.rb' - './spec/workers/clusters/agents/delete_expired_events_worker_spec.rb' - './spec/workers/clusters/applications/activate_integration_worker_spec.rb' - './spec/workers/clusters/applications/deactivate_integration_worker_spec.rb' -- './spec/workers/clusters/applications/wait_for_uninstall_app_worker_spec.rb' - './spec/workers/clusters/cleanup/project_namespace_worker_spec.rb' - './spec/workers/clusters/cleanup/service_account_worker_spec.rb' - './spec/workers/clusters/integrations/check_prometheus_health_worker_spec.rb' -- './spec/workers/cluster_update_app_worker_spec.rb' -- './spec/workers/cluster_wait_for_app_update_worker_spec.rb' -- './spec/workers/cluster_wait_for_ingress_ip_address_worker_spec.rb' - './spec/workers/concerns/application_worker_spec.rb' - './spec/workers/concerns/cluster_agent_queue_spec.rb' - './spec/workers/concerns/cluster_queue_spec.rb' @@ -10793,10 +10558,6 @@ - './spec/workers/metrics/dashboard/sync_dashboards_worker_spec.rb' - './spec/workers/migrate_external_diffs_worker_spec.rb' - './spec/workers/namespaces/in_product_marketing_emails_worker_spec.rb' -- './spec/workers/namespaces/onboarding_issue_created_worker_spec.rb' -- './spec/workers/namespaces/onboarding_pipeline_created_worker_spec.rb' -- './spec/workers/namespaces/onboarding_progress_worker_spec.rb' -- './spec/workers/namespaces/onboarding_user_added_worker_spec.rb' - './spec/workers/namespaces/process_sync_events_worker_spec.rb' - './spec/workers/namespaces/prune_aggregation_schedules_worker_spec.rb' - './spec/workers/namespaces/root_statistics_worker_spec.rb' @@ -10912,7 +10673,6 @@ - './spec/workers/users/create_statistics_worker_spec.rb' - './spec/workers/users/deactivate_dormant_users_worker_spec.rb' - './spec/workers/user_status_cleanup/batch_worker_spec.rb' -- './spec/workers/wait_for_cluster_creation_worker_spec.rb' - './spec/workers/web_hooks/log_destroy_worker_spec.rb' - './spec/workers/web_hook_worker_spec.rb' - './spec/workers/wikis/git_garbage_collect_worker_spec.rb' diff --git a/spec/support_specs/license_metadata_tags_spec.rb b/spec/support_specs/license_metadata_tags_spec.rb new file mode 100644 index 00000000000..f89a32574c7 --- /dev/null +++ b/spec/support_specs/license_metadata_tags_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require 'spec_helper' + +# These specs only make sense if ee/spec/spec_helper is loaded +# In FOSS_ONLY=1 mode, nothing should happen +RSpec.describe 'license metadata tags', feature_category: :sm_provisioning, if: Gitlab.ee? do + it 'applies the without_license metadata tag by default' do |example| + expect(example.metadata[:without_license]).to eq(true) + end + + it 'does not apply the with_license metadata tag by default' do |example| + expect(example.metadata[:with_license]).to be_nil + end + + it 'does not have a current license' do + expect(License.current).to be_nil + end + + context 'with with_license tag', :with_license do + it 'has a current license' do + expect(License.current).to be_present + end + end + + context 'with without_license tag', :without_license do + it 'does not have a current license' do + expect(License.current).to be_nil + end + end +end diff --git a/spec/tooling/lib/tooling/view_to_js_mappings_spec.rb b/spec/tooling/lib/tooling/view_to_js_mappings_spec.rb index e4c5737df54..b09df2a9200 100644 --- a/spec/tooling/lib/tooling/view_to_js_mappings_spec.rb +++ b/spec/tooling/lib/tooling/view_to_js_mappings_spec.rb @@ -143,6 +143,11 @@ RSpec.describe Tooling::ViewToJsMappings, feature_category: :tooling do describe '#view_files' do subject { described_class.new(view_base_folder: view_base_folder).view_files(changed_files) } + before do + File.write("#{js_base_folder}/index.js", "index.js") + File.write("#{view_base_folder}/index.html", "index.html") + end + context 'when no files were changed' do let(:changed_files) { [] } @@ -166,6 +171,14 @@ RSpec.describe Tooling::ViewToJsMappings, feature_category: :tooling do expect(subject).to match_array(["#{view_base_folder}/index.html"]) end end + + context 'when view files are deleted' do + let(:changed_files) { ["#{js_base_folder}/index.js", "#{view_base_folder}/deleted.html"] } + + it 'returns an empty array' do + expect(subject).to match_array([]) + end + end end describe '#folders_for_available_editions' do diff --git a/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb b/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb index 080a53cc1a2..4de2c011b93 100644 --- a/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb +++ b/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb @@ -827,7 +827,7 @@ RSpec.describe 'layouts/nav/sidebar/_project' do end end - context 'gitlab.com' do + context 'gitlab.com', :with_license do before do allow(Gitlab).to receive(:com?).and_return(true) end diff --git a/spec/views/projects/_files.html.haml_spec.rb b/spec/views/projects/_files.html.haml_spec.rb deleted file mode 100644 index b6a8b4735b0..00000000000 --- a/spec/views/projects/_files.html.haml_spec.rb +++ /dev/null @@ -1,73 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe 'projects/_files' do - include ProjectForksHelper - - let_it_be(:user) { create(:user) } - let_it_be(:source_project) { create(:project, :repository, :public) } - - context 'when the project is a fork' do - let_it_be(:project) { fork_project(source_project, user, { repository: true }) } - - before do - assign(:project, project) - assign(:ref, project.default_branch) - assign(:path, '/') - assign(:id, project.commit.id) - - allow(view).to receive(:current_user).and_return(user) - end - - context 'when user can read fork source' do - before do - allow(view).to receive(:can?).with(user, :read_project, source_project).and_return(true) - end - - it 'shows the forked-from project' do - render - - expect(rendered).to have_content("Forked from #{source_project.full_name}") - expect(rendered).to have_content("Up to date with upstream repository") - end - - context 'when fork_divergence_counts is disabled' do - before do - stub_feature_flags(fork_divergence_counts: false) - end - - it 'does not show fork info' do - render - - expect(rendered).not_to have_content("Forked from #{source_project.full_name}") - expect(rendered).not_to have_content("Up to date with upstream repository") - end - end - end - - context 'when user cannot read fork source' do - before do - allow(view).to receive(:can?).with(user, :read_project, source_project).and_return(false) - end - - it 'does not show the forked-from project' do - render - - expect(rendered).to have_content("Forked from an inaccessible project") - end - - context 'when fork_divergence_counts is disabled' do - before do - stub_feature_flags(fork_divergence_counts: false) - end - - it 'does not show fork info' do - render - - expect(rendered).not_to have_content("Forked from an inaccessible project") - end - end - end - end -end diff --git a/tooling/lib/tooling/view_to_js_mappings.rb b/tooling/lib/tooling/view_to_js_mappings.rb index 48568db382b..76704a04469 100644 --- a/tooling/lib/tooling/view_to_js_mappings.rb +++ b/tooling/lib/tooling/view_to_js_mappings.rb @@ -39,7 +39,10 @@ module Tooling # Keep the files that are in the @view_base_folders folder def view_files(changed_files) - changed_files.select { |filename| filename.start_with?(*@view_base_folders) } + changed_files.select do |filename| + filename.start_with?(*@view_base_folders) && + File.exist?(filename) + end end def folders_for_available_editions(base_folder) |