From 7a8b152ddffdbe3767a65e9921ea3c76f2b95490 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 1 Nov 2024 15:24:07 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab-ci.yml | 1 + .gitlab/ci/database.gitlab-ci.yml | 30 ++++ .gitlab/ci/rails.gitlab-ci.yml | 56 +++++++ .gitlab/ci/rails/shared.gitlab-ci.yml | 8 + .gitlab/ci/rules.gitlab-ci.yml | 27 ++++ .rubocop_todo/gitlab/bounded_contexts.yml | 1 - .rubocop_todo/search/namespaced_class.yml | 1 - .../style/class_and_module_children.yml | 1 - .rubocop_todo/style/combinable_loops.yml | 10 -- app/graphql/types/ml/model_version_type.rb | 2 +- app/presenters/ml/model_version_presenter.rb | 2 +- config/database.yml.decomposed-sec-postgresql | 152 ++++++++++++++++++ config/events/failed_attempt.yml | 18 +++ db/docs/elastic_reindexing_tasks.yml | 2 +- ...backfill_finding_id_in_vulnerabilities3.rb | 4 +- ...has_remediations_of_vulnerability_reads.rb | 4 +- ...drop_vulnerabilities_without_finding_id.rb | 4 +- ...204800_drop_invalid_vulnerabilities_gdk.rb | 2 +- ...lnerability_feedback_pipeline_id_bigint.rb | 4 +- ...pted_scanner_ids_of_vulnerability_reads.rb | 4 +- ...nd_traversal_ids_to_vulnerability_reads.rb | 4 +- doc/api/graphql/reference/index.md | 2 +- .../documentation/styleguide/index.md | 2 +- eslint.config.mjs | 5 +- lib/gitlab/database/query_analyzers/base.rb | 13 ++ locale/gitlab.pot | 18 +++ package.json | 2 +- scripts/utils.sh | 9 +- .../user_suggests_changes_on_diff_spec.rb | 2 + spec/features/nav/pinned_nav_items_spec.rb | 29 ++-- .../projects/user_sees_sidebar_spec.rb | 8 +- .../packages/group_packages_finder_spec.rb | 8 +- .../types/ml/model_version_type_spec.rb | 8 + ...ifier_names_of_vulnerability_reads_spec.rb | 3 +- .../ml/model_version_presenter_spec.rb | 9 ++ spec/requests/api/members_spec.rb | 2 + yarn.lock | 39 +---- 37 files changed, 397 insertions(+), 99 deletions(-) delete mode 100644 .rubocop_todo/style/combinable_loops.yml create mode 100644 config/database.yml.decomposed-sec-postgresql create mode 100644 config/events/failed_attempt.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f923fa7c88d..cc52aec04ed 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -228,6 +228,7 @@ variables: RETRY_FAILED_TESTS_IN_NEW_PROCESS: "true" # Run with decomposed databases by default DECOMPOSED_DB: "true" + SEC_DECOMPOSED_DB: "false" DOCS_REVIEW_APPS_DOMAIN: "docs.gitlab-review.app" DOCS_GITLAB_REPO_SUFFIX: "ee" diff --git a/.gitlab/ci/database.gitlab-ci.yml b/.gitlab/ci/database.gitlab-ci.yml index 632f0975111..f2c9093c967 100644 --- a/.gitlab/ci/database.gitlab-ci.yml +++ b/.gitlab/ci/database.gitlab-ci.yml @@ -31,6 +31,36 @@ db:backup_and_restore single-db-ci-connection: - .single-db-ci-connection - .rails:rules:db-backup +db:rollback single-db-sec-connection: + extends: + - db:rollback + - .single-db-sec-connection + - .rails:rules:single-db-sec-connection + +db:migrate:reset single-db-sec-connection: + extends: + - db:migrate:reset + - .single-db-sec-connection + - .rails:rules:single-db-sec-connection + +db:check-schema-single-db-sec-connection: + extends: + - db:check-schema + - .single-db-sec-connection + - .rails:rules:single-db-sec-connection + +db:post_deployment_migrations_validator-single-db-sec-connection: + extends: + - db:post_deployment_migrations_validator + - .single-db-sec-connection + - .rails:rules:db:check-migrations-single-db-sec-connection + +db:backup_and_restore single-db-sec-connection: + extends: + - db:backup_and_restore + - .single-db-sec-connection + - .rails:rules:db-backup + db:rollback: extends: - .db-job-base diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml index 24ced682434..94982b8acfe 100644 --- a/.gitlab/ci/rails.gitlab-ci.yml +++ b/.gitlab/ci/rails.gitlab-ci.yml @@ -195,6 +195,13 @@ rspec unit pg14 single-db-ci-connection: - .rspec-unit-parallel - .rails:rules:single-db-ci-connection +rspec unit pg14 single-db-sec-connection: + extends: + - rspec unit pg14 + - .single-db-sec-connection-rspec + - .rspec-unit-parallel + - .rails:rules:single-db-sec-connection + rspec unit pg14 praefect: extends: - rspec unit pg14 @@ -229,6 +236,13 @@ rspec integration pg14 single-db-ci-connection: - .rspec-integration-parallel - .rails:rules:single-db-ci-connection +rspec integration pg14 single-db-sec-connection: + extends: + - rspec integration pg14 + - .single-db-sec-connection-rspec + - .rspec-integration-parallel + - .rails:rules:single-db-sec-connection + rspec integration pg14 praefect: extends: - rspec integration pg14 @@ -265,6 +279,15 @@ rspec system pg14 single-db-ci-connection: - .rspec-system-parallel - .rails:rules:single-db-ci-connection + - .rails:rules:single-db + +rspec system pg14 single-db-sec-connection: + extends: + - rspec system pg14 + - .single-db-sec-connection-rspec + - .rspec-system-parallel + - .rails:rules:single-db-sec-connection + rspec system pg14 praefect: extends: - rspec system pg14 @@ -818,6 +841,18 @@ rspec-ee background_migration pg14 single-db-ci-connection: - .single-db-ci-connection-rspec - .rails:rules:single-db-ci-connection-ee +rspec-ee migration pg14 single-db-sec-connection: + extends: + - rspec-ee migration pg14 + - .single-db-sec-connection-rspec + - .rails:rules:single-db-sec-connection-ee + +rspec-ee background_migration pg14 single-db-sec-connection: + extends: + - rspec-ee background_migration pg14 + - .single-db-sec-connection-rspec + - .rails:rules:single-db-sec-connection-ee + rspec-ee migration pg14 praefect: extends: - rspec migration pg14 @@ -864,6 +899,13 @@ rspec-ee unit pg14 single-db-ci-connection: - .rspec-ee-unit-parallel - .rails:rules:single-db-ci-connection-ee +rspec-ee unit pg14 single-db-sec-connection: + extends: + - rspec-ee unit pg14 + - .single-db-sec-connection-rspec + - .rspec-ee-unit-parallel + - .rails:rules:single-db-sec-connection-ee + rspec-ee integration pg14: extends: - .rspec-ee-base-pg14 @@ -896,6 +938,13 @@ rspec-ee integration pg14 single-db-ci-connection: - .rspec-ee-integration-parallel - .rails:rules:single-db-ci-connection-ee +rspec-ee integration pg14 single-db-sec-connection: + extends: + - rspec-ee integration pg14 + - .single-db-sec-connection-rspec + - .rspec-ee-integration-parallel + - .rails:rules:single-db-sec-connection-ee + .custom-models-variables: variables: AIGW_CUSTOM_MODELS__ENABLED: true @@ -943,6 +992,13 @@ rspec-ee system pg14 single-db-ci-connection: - .rspec-ee-system-parallel - .rails:rules:single-db-ci-connection-ee +rspec-ee system pg14 single-db-sec-connection: + extends: + - rspec-ee system pg14 + - .single-db-sec-connection-rspec + - .rspec-ee-system-parallel + - .rails:rules:single-db-sec-connection-ee + # EE: default refs (MRs, default branch, schedules) jobs # ################################################## diff --git a/.gitlab/ci/rails/shared.gitlab-ci.yml b/.gitlab/ci/rails/shared.gitlab-ci.yml index a17f52f008d..c8bf625f7f5 100644 --- a/.gitlab/ci/rails/shared.gitlab-ci.yml +++ b/.gitlab/ci/rails/shared.gitlab-ci.yml @@ -42,12 +42,20 @@ include: variables: CI_CONNECTION_DB: "true" +.single-db-sec-connection: + extends: .single-db + variables: + SEC_CONNECTION_DB: "true" + .single-db-rspec: extends: .single-db .single-db-ci-connection-rspec: extends: .single-db-ci-connection +.single-db-sec-connection-rspec: + extends: .single-db-sec-connection + .praefect-with-db: variables: GITALY_PRAEFECT_WITH_DB: '1' diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 5f82127d802..61032c33764 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -111,6 +111,9 @@ .if-merge-request-labels-run-single-db: &if-merge-request-labels-run-single-db if: '($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_EVENT_TYPE != "merge_train") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-single-db/' +.if-merge-request-labels-sec-decomposition: &if-merge-request-labels-sec-decomposition + if: '($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_EVENT_TYPE != "merge_train") && $CI_MERGE_REQUEST_LABELS =~ /sec-decomposition/' + .if-merge-request-labels-run-review-app: &if-merge-request-labels-run-review-app if: '($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_EVENT_TYPE != "merge_train") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-review-app/' @@ -1963,6 +1966,30 @@ - <<: *if-merge-request changes: *decomposed-db-models-patterns +.rails:rules:single-db-sec-connection: + rules: + - <<: *if-default-branch-schedule-nightly + - <<: *if-merge-request-labels-run-single-db + - <<: *if-merge-request-labels-sec-decomposition + - <<: *if-merge-request-labels-pipeline-expedite + when: never + - if: '$ENABLE_RSPEC_SINGLE_DB_SEC_CONNECTION == "true"' + - <<: *if-merge-request-not-approved + when: never + +.rails:rules:single-db-sec-connection-ee: + rules: + - <<: *if-not-ee + when: never + - !reference [".rails:rules:single-db-sec-connection", "rules"] + +.rails:rules:db:check-migrations-single-db-sec-connection: + rules: + - <<: *if-merge-request-labels-run-single-db + - <<: *if-merge-request-labels-sec-decomposition + - <<: *if-merge-request-labels-pipeline-expedite + when: never + .rails:rules:db:migrate:multi-version-upgrade: rules: - if: '$DISABLE_DB_MULTI_VERSION_UPGRADE =~ /true|yes|1/i' diff --git a/.rubocop_todo/gitlab/bounded_contexts.yml b/.rubocop_todo/gitlab/bounded_contexts.yml index 587cfea1683..2f9c5639e25 100644 --- a/.rubocop_todo/gitlab/bounded_contexts.yml +++ b/.rubocop_todo/gitlab/bounded_contexts.yml @@ -2907,7 +2907,6 @@ Gitlab/BoundedContexts: - 'ee/app/models/elastic/index_setting.rb' - 'ee/app/models/elastic/migration_record.rb' - 'ee/app/models/elastic/reindexing_slice.rb' - - 'ee/app/models/elastic/reindexing_task.rb' - 'ee/app/models/elasticsearch_indexed_namespace.rb' - 'ee/app/models/elasticsearch_indexed_project.rb' - 'ee/app/models/embedding/application_record.rb' diff --git a/.rubocop_todo/search/namespaced_class.yml b/.rubocop_todo/search/namespaced_class.yml index 118f7842990..6816e90a09d 100644 --- a/.rubocop_todo/search/namespaced_class.yml +++ b/.rubocop_todo/search/namespaced_class.yml @@ -31,7 +31,6 @@ Search/NamespacedClass: - 'ee/app/models/elastic/index_setting.rb' - 'ee/app/models/elastic/migration_record.rb' - 'ee/app/models/elastic/reindexing_slice.rb' - - 'ee/app/models/elastic/reindexing_task.rb' - 'ee/app/models/elasticsearch_indexed_namespace.rb' - 'ee/app/models/elasticsearch_indexed_project.rb' - 'ee/app/presenters/ee/search_service_presenter.rb' diff --git a/.rubocop_todo/style/class_and_module_children.yml b/.rubocop_todo/style/class_and_module_children.yml index 542cbbc3bb2..33a5cd6ac14 100644 --- a/.rubocop_todo/style/class_and_module_children.yml +++ b/.rubocop_todo/style/class_and_module_children.yml @@ -421,7 +421,6 @@ Style/ClassAndModuleChildren: - 'ee/app/models/dast/profile_schedule.rb' - 'ee/app/models/ee/ci/job_artifact.rb' - 'ee/app/models/elastic/reindexing_slice.rb' - - 'ee/app/models/elastic/reindexing_task.rb' - 'ee/app/models/epic/metrics.rb' - 'ee/app/models/epic/related_epic_link.rb' - 'ee/app/models/geo/base_registry.rb' diff --git a/.rubocop_todo/style/combinable_loops.yml b/.rubocop_todo/style/combinable_loops.yml deleted file mode 100644 index 3f4430f18ba..00000000000 --- a/.rubocop_todo/style/combinable_loops.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Cop supports --autocorrect. -Style/CombinableLoops: - Exclude: - - 'ee/db/fixtures/development/30_customizable_cycle_analytics.rb' - - 'ee/lib/gitlab/audit/events/preloader.rb' - - 'ee/spec/finders/snippets_finder_spec.rb' - - 'spec/features/merge_request/user_suggests_changes_on_diff_spec.rb' - - 'spec/finders/packages/group_packages_finder_spec.rb' - - 'spec/requests/api/members_spec.rb' diff --git a/app/graphql/types/ml/model_version_type.rb b/app/graphql/types/ml/model_version_type.rb index 86529fa27d3..37ca4fabd87 100644 --- a/app/graphql/types/ml/model_version_type.rb +++ b/app/graphql/types/ml/model_version_type.rb @@ -16,7 +16,7 @@ module Types field :created_at, Types::TimeType, null: false, description: 'Date of creation.' - field :author, ::Types::UserType, null: false, description: 'User that created the model version.' + field :author, ::Types::UserType, null: true, description: 'User that created the model version.' field :description, ::GraphQL::Types::String, null: true, diff --git a/app/presenters/ml/model_version_presenter.rb b/app/presenters/ml/model_version_presenter.rb index 05402151b43..db2c46be54f 100644 --- a/app/presenters/ml/model_version_presenter.rb +++ b/app/presenters/ml/model_version_presenter.rb @@ -11,7 +11,7 @@ module Ml end def author - model_version.package.creator + model_version.package&.creator end def path diff --git a/config/database.yml.decomposed-sec-postgresql b/config/database.yml.decomposed-sec-postgresql new file mode 100644 index 00000000000..19660027023 --- /dev/null +++ b/config/database.yml.decomposed-sec-postgresql @@ -0,0 +1,152 @@ +# +# PRODUCTION +# +production: + main: + adapter: postgresql + encoding: unicode + database: gitlabhq_production + username: git + password: "secure password" + host: localhost + # load_balancing: + # hosts: + # - host1.example.com + # - host2.example.com + # discover: + # nameserver: 1.2.3.4 + # port: 8600 + # record: secondary.postgresql.service.consul + # interval: 300 + ci: + adapter: postgresql + encoding: unicode + database: gitlabhq_production_ci + username: git + password: "secure password" + host: localhost + # load_balancing: + # hosts: + # - host1.example.com + # - host2.example.com + # discover: + # nameserver: 1.2.3.4 + # port: 8600 + # record: secondary-ci.postgresql.service.consul + # interval: 300 + sec: + adapter: postgresql + encoding: unicode + database: gitlabhq_production_sec + username: git + password: "secure password" + host: localhost + # load_balancing: + # hosts: + # - host1.example.com + # - host2.example.com + # discover: + # nameserver: 1.2.3.4 + # port: 8600 + # record: secondary-sec.postgresql.service.consul + # interval: 300 + geo: + adapter: postgresql + encoding: unicode + database: gitlabhq_geo_production + username: git + password: "secure password" + host: localhost + +# +# Development specific +# +development: + main: + adapter: postgresql + encoding: unicode + database: gitlabhq_development + username: postgres + password: "secure password" + host: localhost + variables: + statement_timeout: 15s + ci: + adapter: postgresql + encoding: unicode + database: gitlabhq_development_ci + username: postgres + password: "secure password" + host: localhost + variables: + statement_timeout: 15s + sec: + adapter: postgresql + encoding: unicode + database: gitlabhq_development_sec + username: postgres + password: "secure password" + host: localhost + variables: + statement_timeout: 15s + geo: + adapter: postgresql + encoding: unicode + database: gitlabhq_geo_development + username: postgres + password: "secure password" + host: localhost + +# Warning: The database defined as "test" will be erased and +# re-generated from your development database when you run "rake". +# Do not set this db to the same as development or production. +test: &test + main: + adapter: postgresql + encoding: unicode + database: gitlabhq_test + username: postgres + password: + host: localhost + prepared_statements: false + reaping_frequency: nil + variables: + statement_timeout: 15s + ci: + adapter: postgresql + encoding: unicode + database: gitlabhq_test_ci + username: postgres + password: + host: localhost + prepared_statements: false + reaping_frequency: nil + variables: + statement_timeout: 15s + sec: + adapter: postgresql + encoding: unicode + database: gitlabhq_test_sec + username: postgres + password: + host: localhost + prepared_statements: false + reaping_frequency: nil + variables: + statement_timeout: 15s + geo: + adapter: postgresql + encoding: unicode + database: gitlabhq_geo_test + username: postgres + password: + host: localhost + reaping_frequency: nil + embedding: + adapter: postgresql + encoding: unicode + database: gitlabhq_embedding_test + username: postgres + password: + host: localhost + reaping_frequency: nil diff --git a/config/events/failed_attempt.yml b/config/events/failed_attempt.yml new file mode 100644 index 00000000000..8c23affb973 --- /dev/null +++ b/config/events/failed_attempt.yml @@ -0,0 +1,18 @@ +--- +description: Tracks Credit card validation errors as part of Identity Verification +action: failed_attempt +identifiers: +- user +product_group: anti-abuse +milestone: '15.9' +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/169117 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate +additional_properties: + property: + description: Error message diff --git a/db/docs/elastic_reindexing_tasks.yml b/db/docs/elastic_reindexing_tasks.yml index b9568481b7c..d29ad441ed4 100644 --- a/db/docs/elastic_reindexing_tasks.yml +++ b/db/docs/elastic_reindexing_tasks.yml @@ -1,7 +1,7 @@ --- table_name: elastic_reindexing_tasks classes: -- Elastic::ReindexingTask +- Search::Elastic::ReindexingTask feature_categories: - global_search description: TODO diff --git a/db/post_migrate/20231129105945_requeue_backfill_finding_id_in_vulnerabilities3.rb b/db/post_migrate/20231129105945_requeue_backfill_finding_id_in_vulnerabilities3.rb index da0e25de934..5eaf380f31e 100644 --- a/db/post_migrate/20231129105945_requeue_backfill_finding_id_in_vulnerabilities3.rb +++ b/db/post_migrate/20231129105945_requeue_backfill_finding_id_in_vulnerabilities3.rb @@ -11,7 +11,7 @@ class RequeueBackfillFindingIdInVulnerabilities3 < Gitlab::Database::Migration[2 restrict_gitlab_migration gitlab_schema: :gitlab_main def up - Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::Base.suppress_schema_issues_for_decomposed_tables do delete_batched_background_migration( MIGRATION, :vulnerabilities, @@ -31,7 +31,7 @@ class RequeueBackfillFindingIdInVulnerabilities3 < Gitlab::Database::Migration[2 end def down - Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::Base.suppress_schema_issues_for_decomposed_tables do delete_batched_background_migration(MIGRATION, :vulnerabilities, :id, []) end end diff --git a/db/post_migrate/20231201204712_requeue2_backfill_has_remediations_of_vulnerability_reads.rb b/db/post_migrate/20231201204712_requeue2_backfill_has_remediations_of_vulnerability_reads.rb index 1af8cc834ca..0614086b5f4 100644 --- a/db/post_migrate/20231201204712_requeue2_backfill_has_remediations_of_vulnerability_reads.rb +++ b/db/post_migrate/20231201204712_requeue2_backfill_has_remediations_of_vulnerability_reads.rb @@ -12,7 +12,7 @@ class Requeue2BackfillHasRemediationsOfVulnerabilityReads < Gitlab::Database::Mi disable_ddl_transaction! def up - Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::Base.suppress_schema_issues_for_decomposed_tables do # remove the original migration delete_batched_background_migration(MIGRATION, :vulnerability_reads, :vulnerability_id, []) @@ -28,7 +28,7 @@ class Requeue2BackfillHasRemediationsOfVulnerabilityReads < Gitlab::Database::Mi end def down - Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::Base.suppress_schema_issues_for_decomposed_tables do delete_batched_background_migration(MIGRATION, :vulnerability_reads, :vulnerability_id, []) end end diff --git a/db/post_migrate/20231221223259_queue_drop_vulnerabilities_without_finding_id.rb b/db/post_migrate/20231221223259_queue_drop_vulnerabilities_without_finding_id.rb index 2a91f3bf47e..958a12bb6bb 100644 --- a/db/post_migrate/20231221223259_queue_drop_vulnerabilities_without_finding_id.rb +++ b/db/post_migrate/20231221223259_queue_drop_vulnerabilities_without_finding_id.rb @@ -11,7 +11,7 @@ class QueueDropVulnerabilitiesWithoutFindingId < Gitlab::Database::Migration[2.2 restrict_gitlab_migration gitlab_schema: :gitlab_main def up - Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::Base.suppress_schema_issues_for_decomposed_tables do queue_batched_background_migration( MIGRATION, :vulnerabilities, @@ -24,7 +24,7 @@ class QueueDropVulnerabilitiesWithoutFindingId < Gitlab::Database::Migration[2.2 end def down - Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::Base.suppress_schema_issues_for_decomposed_tables do delete_batched_background_migration(MIGRATION, :vulnerabilities, :id, []) end end diff --git a/db/post_migrate/20240214204800_drop_invalid_vulnerabilities_gdk.rb b/db/post_migrate/20240214204800_drop_invalid_vulnerabilities_gdk.rb index 29e552a5684..229610e94f2 100644 --- a/db/post_migrate/20240214204800_drop_invalid_vulnerabilities_gdk.rb +++ b/db/post_migrate/20240214204800_drop_invalid_vulnerabilities_gdk.rb @@ -10,7 +10,7 @@ class DropInvalidVulnerabilitiesGdk < Gitlab::Database::Migration[2.2] end def up - Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::Base.suppress_schema_issues_for_decomposed_tables do Vulnerability.where(finding_id: nil).delete_all if Gitlab.dev_or_test_env? end end diff --git a/db/post_migrate/20240404084304_backfill_vulnerability_feedback_pipeline_id_bigint.rb b/db/post_migrate/20240404084304_backfill_vulnerability_feedback_pipeline_id_bigint.rb index 4c606920725..44e8aa82786 100644 --- a/db/post_migrate/20240404084304_backfill_vulnerability_feedback_pipeline_id_bigint.rb +++ b/db/post_migrate/20240404084304_backfill_vulnerability_feedback_pipeline_id_bigint.rb @@ -8,13 +8,13 @@ class BackfillVulnerabilityFeedbackPipelineIdBigint < Gitlab::Database::Migratio COLUMN = :pipeline_id def up - Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::Base.suppress_schema_issues_for_decomposed_tables do backfill_conversion_of_integer_to_bigint(TABLE, COLUMN) end end def down - Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::Base.suppress_schema_issues_for_decomposed_tables do revert_backfill_conversion_of_integer_to_bigint(TABLE, COLUMN) end end diff --git a/db/post_migrate/20240409023046_queue_fix_corrupted_scanner_ids_of_vulnerability_reads.rb b/db/post_migrate/20240409023046_queue_fix_corrupted_scanner_ids_of_vulnerability_reads.rb index 78887f3cb36..a7809140b0b 100644 --- a/db/post_migrate/20240409023046_queue_fix_corrupted_scanner_ids_of_vulnerability_reads.rb +++ b/db/post_migrate/20240409023046_queue_fix_corrupted_scanner_ids_of_vulnerability_reads.rb @@ -12,7 +12,7 @@ class QueueFixCorruptedScannerIdsOfVulnerabilityReads < Gitlab::Database::Migrat restrict_gitlab_migration gitlab_schema: :gitlab_main def up - Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::Base.suppress_schema_issues_for_decomposed_tables do queue_batched_background_migration( MIGRATION, :vulnerability_reads, @@ -25,7 +25,7 @@ class QueueFixCorruptedScannerIdsOfVulnerabilityReads < Gitlab::Database::Migrat end def down - Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::Base.suppress_schema_issues_for_decomposed_tables do delete_batched_background_migration(MIGRATION, :vulnerability_reads, :id, []) end end diff --git a/db/post_migrate/20240409140739_requeue_backfill_archived_and_traversal_ids_to_vulnerability_reads.rb b/db/post_migrate/20240409140739_requeue_backfill_archived_and_traversal_ids_to_vulnerability_reads.rb index cd80fb8e59d..acb7604d185 100644 --- a/db/post_migrate/20240409140739_requeue_backfill_archived_and_traversal_ids_to_vulnerability_reads.rb +++ b/db/post_migrate/20240409140739_requeue_backfill_archived_and_traversal_ids_to_vulnerability_reads.rb @@ -11,7 +11,7 @@ class RequeueBackfillArchivedAndTraversalIdsToVulnerabilityReads < Gitlab::Datab SUB_BATCH_SIZE = 100 def up - Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::Base.suppress_schema_issues_for_decomposed_tables do # Clear previous background migration execution from QueueBackfillArchivedAndTraversalIdsToVulnerabilityReads delete_batched_background_migration(MIGRATION, :vulnerability_reads, :id, []) @@ -27,7 +27,7 @@ class RequeueBackfillArchivedAndTraversalIdsToVulnerabilityReads < Gitlab::Datab end def down - Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::Base.suppress_schema_issues_for_decomposed_tables do delete_batched_background_migration(MIGRATION, :vulnerability_reads, :id, []) end end diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index e6aa13f23ca..3947b8fbebc 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -28808,7 +28808,7 @@ Version of a machine learning model. | ---- | ---- | ----------- | | `_links` | [`MLModelVersionLinks!`](#mlmodelversionlinks) | Map of links to perform actions on the model version. | | `artifactsCount` | [`Int`](#int) | Number of files in the package. | -| `author` | [`UserCore!`](#usercore) | User that created the model version. | +| `author` | [`UserCore`](#usercore) | User that created the model version. | | `candidate` | [`MlCandidate!`](#mlcandidate) | Metrics, params and metadata for the model version. | | `createdAt` | [`Time!`](#time) | Date of creation. | | `description` | [`String`](#string) | Description of the version. | diff --git a/doc/development/documentation/styleguide/index.md b/doc/development/documentation/styleguide/index.md index 5ba2d5f920b..17485f2debc 100644 --- a/doc/development/documentation/styleguide/index.md +++ b/doc/development/documentation/styleguide/index.md @@ -815,7 +815,7 @@ Links help the docs adhere to the However, you should avoid putting too many links on any page. Too many links can hinder readability. - Do not duplicate links on the same page. For example, on **Page A**, do not link to **Page B** multiple times. -- Do not use links in headings. Subheadings are rendered as links, and subheadings that contain links cause errors. +- Do not use links in headings. Headings that contain links cause errors. - Avoid multiple links in a single paragraph. - Avoid multiple links in a single task. - On any one page, try not to use more than 15 links to other pages. diff --git a/eslint.config.mjs b/eslint.config.mjs index f05f86f4b2c..6c1759ee332 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -27,8 +27,10 @@ const extendConfigs = [ // Allowing JiHu to add rules on their side since the update from // eslintrc.yml to eslint.config.mjs is not allowing subdirectory // rewrite. +let jhConfigs = []; if (existsSync(path.resolve(dirname, 'jh'))) { - extendConfigs.push('./jh/eslint.config.js'); + // eslint-disable-next-line import/no-unresolved, import/extensions + jhConfigs = (await import('jh/eslint.config.js')).default; } const jestConfig = { @@ -690,4 +692,5 @@ export default [ '@gitlab/require-i18n-strings': 'off', }, }, + ...jhConfigs, ]; diff --git a/lib/gitlab/database/query_analyzers/base.rb b/lib/gitlab/database/query_analyzers/base.rb index 9a52a4f6e23..b1234b26354 100644 --- a/lib/gitlab/database/query_analyzers/base.rb +++ b/lib/gitlab/database/query_analyzers/base.rb @@ -33,6 +33,19 @@ module Gitlab attr_writer :suppress_in_rspec end + # During database decomposition, db migrations using tables that will be decomposed + # will begin to contravene their configuration for intended gitlab_schema and database connection. + # As these migrations already exist, ideally they should be finalized and removed prior to decomposition. + # In this situations, it's necessary to suppress warnings related to their incorrect connection and schema + # to progress our CI pipelines. + def self.suppress_schema_issues_for_decomposed_tables + Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.with_suppressed do + Gitlab::Database::QueryAnalyzers::GitlabSchemasValidateConnection.with_suppressed do + yield + end + end + end + def self.with_suppressed(value = true, &blk) previous = self.suppressed? self.suppress = value diff --git a/locale/gitlab.pot b/locale/gitlab.pot index ffd449a9f6e..e2a8b44b37e 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -35353,6 +35353,24 @@ msgstr "" msgid "MrList|Review requested from %{name}" msgstr "" +msgid "MrReports|All reports" +msgstr "" + +msgid "MrReports|Blockers" +msgstr "" + +msgid "MrReports|Code quality" +msgstr "" + +msgid "MrReports|License Compliance" +msgstr "" + +msgid "MrReports|Reports" +msgstr "" + +msgid "MrReports|Security" +msgstr "" + msgid "MrSurvey|By continuing, you acknowledge that responses will be used to improve GitLab and in accordance with the %{linkStart}GitLab Privacy Policy%{linkEnd}." msgstr "" diff --git a/package.json b/package.json index ba2c9395b92..5615863b1d0 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "@gitlab/fonts": "^1.3.0", "@gitlab/query-language": "^0.0.5-a-20241017", "@gitlab/svgs": "3.120.0", - "@gitlab/ui": "101.4.0", + "@gitlab/ui": "101.6.1", "@gitlab/web-ide": "^0.0.1-dev-20240909013227", "@mattiasbuelens/web-streams-adapter": "^0.1.0", "@rails/actioncable": "7.0.8-4", diff --git a/scripts/utils.sh b/scripts/utils.sh index d011177552d..fae5844e2b7 100644 --- a/scripts/utils.sh +++ b/scripts/utils.sh @@ -142,8 +142,13 @@ function assets_compile_script() { function setup_database_yml() { if [ "$DECOMPOSED_DB" == "true" ]; then - echo "Using decomposed database config (config/database.yml.decomposed-postgresql)" - cp config/database.yml.decomposed-postgresql config/database.yml + if [ "$SEC_DECOMPOSED_DB" == "true" ]; then + echo "Using SEC decomposed database config (config/database.yml.decomposed-sec-postgresql)" + cp config/database.yml.decomposed-sec-postgresql config/database.yml + else + echo "Using decomposed database config (config/database.yml.decomposed-postgresql)" + cp config/database.yml.decomposed-postgresql config/database.yml + fi else echo "Using two connections, single database config (config/database.yml.postgresql)" cp config/database.yml.postgresql config/database.yml diff --git a/spec/features/merge_request/user_suggests_changes_on_diff_spec.rb b/spec/features/merge_request/user_suggests_changes_on_diff_spec.rb index 6152d9f8259..24ef8fbc8d7 100644 --- a/spec/features/merge_request/user_suggests_changes_on_diff_spec.rb +++ b/spec/features/merge_request/user_suggests_changes_on_diff_spec.rb @@ -135,6 +135,7 @@ RSpec.describe 'User comments on a diff', :js, feature_category: :code_review_wo end it 'can add and remove suggestions from a batch' do + # rubocop:disable Style/CombinableLoops -- "Add suggestion to batch" only exists with more than one suggestion files.each_with_index do |file, index| page.within("[id='#{file[:hash]}']") do find('.js-diff-more-actions').click @@ -166,6 +167,7 @@ RSpec.describe 'User comments on a diff', :js, feature_category: :code_review_wo expect(page).to have_content("Apply #{index + 1} suggestions") end end + # rubocop:enable Style/CombinableLoops end page.within("[id='#{files[0][:hash]}']") do diff --git a/spec/features/nav/pinned_nav_items_spec.rb b/spec/features/nav/pinned_nav_items_spec.rb index 74dfe572149..24f32e06ecf 100644 --- a/spec/features/nav/pinned_nav_items_spec.rb +++ b/spec/features/nav/pinned_nav_items_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' RSpec.describe 'Navigation menu item pinning', :js, feature_category: :navigation do let_it_be(:user) { create(:user) } - let_it_be(:project) { create(:project) } + let_it_be(:project) { create(:project, developers: user) } before do sign_in(user) @@ -15,13 +15,11 @@ RSpec.describe 'Navigation menu item pinning', :js, feature_category: :navigatio visit explore_projects_path end - it 'does not show the Pinned section' do + it 'does not show the Pinned section nor buttons to pin items' do within '#super-sidebar' do expect(page).not_to have_content 'Pinned' end - end - it 'does not show the buttons to pin items' do within '#super-sidebar' do expect(page).not_to have_css 'button svg[data-testid="thumbtack-icon"]' end @@ -30,7 +28,6 @@ RSpec.describe 'Navigation menu item pinning', :js, feature_category: :navigatio describe 'pinnable navigation menu' do before do - project.add_member(user, :owner) visit project_path(project) end @@ -115,13 +112,13 @@ RSpec.describe 'Navigation menu item pinning', :js, feature_category: :navigatio it 'can be reordered' do within_testid 'pinned-nav-items' do - pinned_items = page.find_all('a').map(&:text) + pinned_items = page.find_all('a', wait: false).map(&:text) item2 = page.find('a', text: 'Terraform states') item3 = page.find('a', text: 'Terraform modules') expect(pinned_items[1..2]).to eq [item2.text, item3.text] drag_item(item3, to: item2) - pinned_items = page.find_all('a').map(&:text) + pinned_items = page.find_all('a', wait: false).map(&:text) expect(pinned_items[1..2]).to eq [item3.text, item2.text] end end @@ -129,13 +126,10 @@ RSpec.describe 'Navigation menu item pinning', :js, feature_category: :navigatio end describe 'reordering pins with hidden pins from non-available features' do - let_it_be(:project_with_repo) { create(:project, :repository) } - let_it_be(:project_without_repo) { create(:project, :repository_disabled) } + let_it_be(:project_with_repo) { create(:project, :repository, developers: user) } + let_it_be(:project_without_repo) { create(:project, :repository_disabled, developers: user) } before do - project_with_repo.add_member(user, :owner) - project_without_repo.add_member(user, :owner) - visit project_path(project_with_repo) within '#super-sidebar' do click_on 'Code' @@ -157,7 +151,7 @@ RSpec.describe 'Navigation menu item pinning', :js, feature_category: :navigatio it 'keeps pins of non-available features' do within_testid 'pinned-nav-items' do - pinned_items = page.find_all('a') + pinned_items = page.find_all('a', wait: false) .map(&:text) .map { |text| text.split("\n").first } # to drop the counter badge text from "Issues\n0" expect(pinned_items).to eq ["Issues", "Merge requests", "Commits", "Members", "Activity"] @@ -178,13 +172,11 @@ RSpec.describe 'Navigation menu item pinning', :js, feature_category: :navigatio end end - it 'shows the Pinned section as expanded' do + it 'shows the Pinned section as expanded and the original section as collapsed' do within_testid 'pinned-nav-items' do expect(page).to have_link 'Issues' end - end - it 'shows the original section as collapsed' do within '#menu-section-button-plan' do expect(page).not_to have_link 'Issues' end @@ -201,13 +193,10 @@ RSpec.describe 'Navigation menu item pinning', :js, feature_category: :navigatio end end - it 'shows the Pinned section as collapsed' do + it 'shows the Pinned section as collapsed and the original section as expanded' do within '#menu-section-button-plan' do expect(page).not_to have_link 'Issues' end - end - - it 'shows the original section as expanded' do within '#super-sidebar #plan' do expect(page).to have_link 'Issues' end diff --git a/spec/features/projects/user_sees_sidebar_spec.rb b/spec/features/projects/user_sees_sidebar_spec.rb index 88c16ab4c9f..faf62187a18 100644 --- a/spec/features/projects/user_sees_sidebar_spec.rb +++ b/spec/features/projects/user_sees_sidebar_spec.rb @@ -15,22 +15,18 @@ RSpec.describe 'Projects > User sees sidebar', :js, feature_category: :groups_an end shared_examples 'has an expanded nav sidebar' do - it 'has an expanded nav sidebar on load' do + it 'has an expanded nav sidebar on load that can be collapsed' do expect(page).to have_selector('[data-testid="super-sidebar-collapse-button"]', visible: :visible) - end - it 'can collapse the nav sidebar' do find_by_testid('super-sidebar-collapse-button').click expect(page).to have_selector('[data-testid="super-sidebar-collapse-button"]', visible: :hidden) end end shared_examples 'has a collapsed nav sidebar' do - it 'has a collapsed nav sidebar on load' do + it 'has a collapsed nav sidebar on load that can be expanded' do expect(page).to have_selector('[data-testid="super-sidebar-collapse-button"]', visible: :hidden) - end - it 'can expand the nav sidebar' do page.find('.js-super-sidebar-toggle-expand').click expect(page).to have_selector('[data-testid="super-sidebar-collapse-button"]', visible: :visible) end diff --git a/spec/finders/packages/group_packages_finder_spec.rb b/spec/finders/packages/group_packages_finder_spec.rb index c83ccd9f107..143fef91e5d 100644 --- a/spec/finders/packages/group_packages_finder_spec.rb +++ b/spec/finders/packages/group_packages_finder_spec.rb @@ -252,12 +252,10 @@ RSpec.describe Packages::GroupPackagesFinder, feature_category: :package_registr end context 'group has package of all types' do - package_types.each do |pt| # rubocop:disable RSpec/UselessDynamicDefinition -- `pt` used in `let` - let_it_be("package_#{pt}") { create("#{pt}_package", project: project) } - end + package_types.each do |type| # rubocop:disable RSpec/UselessDynamicDefinition -- `type` used in `let` + let_it_be("package_#{type}") { create("#{type}_package", project: project) } - package_types.each do |package_type| - it_behaves_like 'with package type', package_type + it_behaves_like 'with package type', type end end diff --git a/spec/graphql/types/ml/model_version_type_spec.rb b/spec/graphql/types/ml/model_version_type_spec.rb index de7064fda75..bc8d30c5ea7 100644 --- a/spec/graphql/types/ml/model_version_type_spec.rb +++ b/spec/graphql/types/ml/model_version_type_spec.rb @@ -149,4 +149,12 @@ RSpec.describe GitlabSchema.types['MlModelVersion'], feature_category: :mlops do } }) end + + it 'allows an author to be null' do + model_version.package.update!(creator: nil) + + version_data = data.dig('data', 'mlModel', 'latestVersion') + + expect(version_data['author']).to be_nil + end end diff --git a/spec/migrations/20241007115637_queue_backfill_identifier_names_of_vulnerability_reads_spec.rb b/spec/migrations/20241007115637_queue_backfill_identifier_names_of_vulnerability_reads_spec.rb index 3a57400c104..cc37e86c8e9 100644 --- a/spec/migrations/20241007115637_queue_backfill_identifier_names_of_vulnerability_reads_spec.rb +++ b/spec/migrations/20241007115637_queue_backfill_identifier_names_of_vulnerability_reads_spec.rb @@ -19,7 +19,8 @@ RSpec.describe QueueBackfillIdentifierNamesOfVulnerabilityReads, column_name: :id, interval: described_class::DELAY_INTERVAL, batch_size: described_class::BATCH_SIZE, - sub_batch_size: described_class::SUB_BATCH_SIZE + sub_batch_size: described_class::SUB_BATCH_SIZE, + gitlab_schema: :gitlab_sec ) } end diff --git a/spec/presenters/ml/model_version_presenter_spec.rb b/spec/presenters/ml/model_version_presenter_spec.rb index 619dde1f95c..9487acf8cc9 100644 --- a/spec/presenters/ml/model_version_presenter_spec.rb +++ b/spec/presenters/ml/model_version_presenter_spec.rb @@ -6,6 +6,7 @@ RSpec.describe Ml::ModelVersionPresenter, feature_category: :mlops do let_it_be(:project) { build_stubbed(:project) } let_it_be(:model) { build_stubbed(:ml_models, name: 'a_model', project: project) } let_it_be(:model_version) { build_stubbed(:ml_model_versions, :with_package, model: model, version: '1.1.1') } + let_it_be(:model_version_without_package) { build_stubbed(:ml_model_versions, model: model, version: '1.1.1') } let_it_be(:presenter) { model_version.present } describe '.display_name' do @@ -38,6 +39,14 @@ RSpec.describe Ml::ModelVersionPresenter, feature_category: :mlops do it { is_expected.to eq(model_version.package.creator) } end + describe 'when author is not present' do + let_it_be(:presenter) { model_version_without_package.present } + + subject { presenter.author } + + it { is_expected.to be_nil } + end + describe '#artifacts_count' do subject { presenter.artifacts_count } diff --git a/spec/requests/api/members_spec.rb b/spec/requests/api/members_spec.rb index b8025db5114..48d8bd904e4 100644 --- a/spec/requests/api/members_spec.rb +++ b/spec/requests/api/members_spec.rb @@ -1045,6 +1045,7 @@ RSpec.describe API::Members, feature_category: :groups_and_projects do end end + # rubocop:disable Style/CombinableLoops -- new projects and groups must not be created for specs to pass [false, true].each do |all| it_behaves_like 'GET /:source_type/:id/members/(all)', 'project', all do let(:source) { project } @@ -1064,6 +1065,7 @@ RSpec.describe API::Members, feature_category: :groups_and_projects do let(:source) { all ? create(:group, parent: group) : group } end end + # rubocop:enable Style/CombinableLoops describe 'POST /projects/:id/members' do context 'adding owner to project' do diff --git a/yarn.lock b/yarn.lock index da4ecf2789c..64925f0efcc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1401,10 +1401,10 @@ resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-3.120.0.tgz#0f26908d4ded2e3f63b6e5028afbe8b59b7fe6dc" integrity sha512-lsMKCgg0o3FLbNzvNPahkDtKGOH4U99bHff2aGlyqYFIpPvGFes/DfGr0IXVtWdfavZyoT42zE0/rquG64bANw== -"@gitlab/ui@101.4.0": - version "101.4.0" - resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-101.4.0.tgz#12b8fdda044b878f689d469ccc5d211d08fd9386" - integrity sha512-VPCFRvJpwaVtT+bMj+3JjpqrCQcGDz+StsMadIs//Nof+ldeRryYWPYauSnkWjLeMAWbbKmRRoxbDozQNjjlXw== +"@gitlab/ui@101.6.1": + version "101.6.1" + resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-101.6.1.tgz#cf5046f3460fa3d181d6cff5bbb4bb036b95a489" + integrity sha512-2FkvNWdt4a/KrRkMoFGMiKDVHkk6xRUx7ZFJJb3NTvZpLsn/kpbRAd+7vddwcywDpUkxSiD3TJJecwfVqrGDGQ== dependencies: "@floating-ui/dom" "1.4.3" echarts "^5.3.2" @@ -13776,16 +13776,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -13838,7 +13829,7 @@ string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -13852,13 +13843,6 @@ strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -15583,7 +15567,7 @@ worker-loader@^3.0.8: loader-utils "^2.0.0" schema-utils "^3.0.0" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -15601,15 +15585,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"