From 7f0fd430c2fa560ecc25e04c2fe3f3060e275d42 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 29 May 2024 15:12:58 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .rubocop_todo/gitlab/bounded_contexts.yml | 1 + .rubocop_todo/layout/argument_alignment.yml | 26 --- .../multiline_operation_indentation.yml | 14 -- .../lint/ambiguous_operator_precedence.yml | 12 -- GITLAB_KAS_VERSION | 2 +- Gemfile | 11 +- Gemfile.checksum | 6 +- Gemfile.lock | 14 +- .../{new_group_form.vue => new_edit_form.vue} | 60 +++++- app/assets/javascripts/groups/constants.js | 1 + .../components/import_stats.vue | 13 +- .../components/import_status.vue | 10 +- .../components/import_history_link.vue | 2 +- .../components/import_status.vue | 39 +--- .../import_groups/components/import_table.vue | 18 -- .../javascripts/integrations/edit/index.js | 6 +- .../components/table/member_activity.vue | 38 +++- .../organizations/activity/components/app.vue | 89 ++++++-- .../organizations/activity/filters.js | 16 ++ .../organizations/activity/index.js | 8 +- .../groups/edit/components/app.vue | 27 ++- .../organizations/groups/edit/index.js | 20 +- .../groups/new/components/app.vue | 7 +- .../organizations/groups/new/index.js | 2 - .../components/bulk_imports_history_app.vue | 39 +++- .../bulk_imports/history/utils/index.js | 4 + .../mutations/remove_blobs.mutation.graphql | 5 + .../mount_repository_maintenance.js | 8 + .../repository/maintenance/remove_blobs.vue | 112 ++++++++-- .../components/work_item_detail.vue | 14 +- .../organizations/organization_helper.rb | 71 +++++-- app/helpers/visibility_level_helper.rb | 31 +++ app/models/members/members/member_approval.rb | 1 + app/models/namespace_setting.rb | 2 + app/models/project.rb | 3 + app/policies/project_policy.rb | 6 +- .../deploy_keys/deploy_key_entity.rb | 2 +- .../ci/create_downstream_pipeline_service.rb | 2 +- app/services/git/branch_hooks_service.rb | 2 +- app/services/groups/transfer_service.rb | 2 +- app/services/issues/update_service.rb | 4 +- app/services/labels/promote_service.rb | 2 +- app/services/labels/transfer_service.rb | 2 +- .../members/approve_access_request_service.rb | 2 +- .../members_approval_request_metadata.json | 24 +++ .../application_settings/general.html.haml | 3 +- app/views/import/bulk_imports/failures.haml | 2 +- .../import/bulk_imports/history.html.haml | 11 +- app/views/organizations/groups/edit.html.haml | 2 +- .../maintenance/_remove_blobs.html.haml | 4 +- .../projects/maintenance/_show.html.haml | 4 +- app/views/shared/_visibility_radios.html.haml | 39 ++-- .../product_analytics_dashboards.yml | 8 - config/sidekiq_queues.yml | 2 + .../analytics_usage_trends_measurements.yml | 3 +- ..._boards_epic_user_preferences_group_id.yml | 9 + db/docs/boards_epic_user_preferences.yml | 1 + ...nversational_development_index_metrics.yml | 3 +- ...e_quantity_for_gitlabcom_duo_pro_trials.rb | 36 ++++ ...ogram_participant_to_namespace_settings.rb | 9 + ...141301_add_metadata_to_member_approvals.rb | 10 + ...roup_id_to_boards_epic_user_preferences.rb | 9 + ...oards_epic_user_preferences_on_group_id.rb | 16 ++ ...oards_epic_user_preferences_group_id_fk.rb | 16 ++ ..._epic_user_preferences_group_id_trigger.rb | 25 +++ ...l_boards_epic_user_preferences_group_id.rb | 40 ++++ ...change_projects_organization_id_default.rb | 15 ++ db/schema_migrations/20240510125400 | 1 + db/schema_migrations/20240515181541 | 1 + db/schema_migrations/20240519141301 | 1 + db/schema_migrations/20240521094913 | 1 + db/schema_migrations/20240521094914 | 1 + db/schema_migrations/20240521094915 | 1 + db/schema_migrations/20240521094916 | 1 + db/schema_migrations/20240521094917 | 1 + db/schema_migrations/20240528115140 | 1 + db/structure.sql | 32 ++- .../backup_restore/backup_cli.md | 25 ++- .../backup_restore/backup_gitlab.md | 2 +- .../reference_architectures/2k_users.md | 2 +- .../configure_duo_features.md | 54 +++++ .../self_hosted_models/index.md | 61 ++++++ .../install_infrastructure.md | 152 ++++++++++++++ .../settings/import_and_export_settings.md | 8 +- doc/api/bulk_imports.md | 6 +- doc/api/code_suggestions.md | 28 ++- doc/api/graphql/reference/index.md | 66 +++++- doc/api/product_analytics.md | 6 +- doc/api/rest/index.md | 2 +- .../blueprints/pipeline_mini_graph/index.md | 40 ++++ doc/ci/migration/teamcity.md | 2 +- doc/development/contributing/design.md | 2 +- doc/development/internal_analytics/index.md | 2 +- .../quick_start.md | 2 +- doc/install/aws/index.md | 2 +- doc/install/installation.md | 10 +- doc/integration/mattermost/index.md | 2 +- .../custom_git_clone_url_for_https_v12_4.png | Bin 11171 -> 0 bytes .../settings/img/mirror_settings_v15_7.png | Bin 10322 -> 0 bytes .../dependency_scanning/index.md | 2 +- .../gitlab_advisory_database/index.md | 4 - .../secret_detection/pre_receive/index.md | 29 ++- doc/user/compliance/audit_event_types.md | 6 + doc/user/group/epics/manage_epics.md | 26 ++- doc/user/group/import/index.md | 26 +-- doc/user/markdown.md | 17 +- .../delete_container_registry_images.md | 32 ++- doc/user/packages/workflows/build_packages.md | 2 +- doc/user/product_analytics/index.md | 4 +- .../img/issue_boards_multiple_v13_6.png | Bin 9348 -> 0 bytes .../repository/mirror/bidirectional.md | 2 - gems/gitlab-housekeeper/README.md | 20 ++ .../lib/gitlab/housekeeper/runner.rb | 2 + gems/gitlab-http/Gemfile.lock | 6 + gems/gitlab-http/gitlab-http.gemspec | 3 + .../gitlab-http/lib/gitlab/http_v2/patches.rb | 2 +- .../gitlab-http/lib/net_http/connect_patch.rb | 167 +++++++++++++++ .../lib/net_http/protocol_patch.rb | 39 ---- .../http_v2/net_http_connect_patch_spec.rb | 102 +++++++++ .../gitlab/http_v2/net_http_patch_spec.rb | 92 -------- lib/api/ci/triggers.rb | 10 +- lib/api/commit_statuses.rb | 16 +- lib/api/commits.rb | 174 ++++++++-------- .../packages/debian_distribution_endpoints.rb | 16 +- lib/api/concerns/packages/npm_endpoints.rb | 4 +- lib/api/container_repositories.rb | 10 +- lib/api/dependency_proxy.rb | 2 +- lib/api/deploy_keys.rb | 2 +- lib/api/deploy_tokens.rb | 16 +- lib/api/deployments.rb | 6 +- lib/api/entities/application.rb | 4 +- lib/api/entities/application_statistics.rb | 20 +- lib/api/entities/branch.rb | 56 ++--- lib/api/generic_packages.rb | 2 +- lib/api/merge_requests.rb | 68 +++--- lib/api/metrics/dashboard/annotations.rb | 14 +- lib/api/metrics/user_starred_dashboards.rb | 4 +- lib/api/milestone_responses.rb | 4 +- lib/api/notes.rb | 6 +- lib/api/nuget_project_packages.rb | 18 +- lib/api/pages.rb | 2 +- lib/api/pages_domains.rb | 4 +- lib/api/pagination_params.rb | 2 +- lib/api/personal_access_tokens.rb | 18 +- lib/api/project_container_repositories.rb | 2 +- lib/api/project_export.rb | 6 +- lib/api/project_import.rb | 4 +- .../references/user_reference_filter.rb | 6 +- lib/banzai/filter_array.rb | 2 +- lib/extracts_ref.rb | 2 +- ...l_boards_epic_user_preferences_group_id.rb | 12 ++ lib/gitlab/chaos.rb | 2 +- .../ci/config/normalizer/number_strategy.rb | 2 +- lib/gitlab/console.rb | 2 +- .../background_migration/batch_metrics.rb | 2 +- .../background_migration/batched_migration.rb | 4 +- .../background_migration_helpers.rb | 12 +- .../table_management_helpers.rb | 6 +- lib/gitlab/database/postgres_hll/buckets.rb | 2 +- .../import_export/merge_request_parser.rb | 9 + lib/gitlab/internal_events.rb | 7 +- lib/gitlab/middleware/path_traversal_check.rb | 2 +- lib/unnested_in_filters/rewriter.rb | 8 +- locale/gitlab.pot | 72 +++++-- package.json | 2 +- scripts/setup/generate-as-if-foss-env.rb | 122 +++++------ .../import_export/migration_history_spec.rb | 2 +- .../general_visibility_levels_spec.rb | 196 ++++++++++++++++++ spec/features/projects/new_project_spec.rb | 12 +- ...oup_form_spec.js => new_edit_form_spec.js} | 59 +++++- .../components/import_history_link_spec.js | 2 +- .../components/import_status_spec.js | 17 +- .../member_activity_spec.js.snap | 80 +++++-- .../activity/components/app_spec.js | 84 +++++++- .../organizations/activity/filters_spec.js | 24 +++ .../organizations/activity/mock_data.js | 44 ++++ .../groups/edit/components/app_spec.js | 39 ++++ .../groups/new/components/app_spec.js | 8 +- .../bulk_imports_history_app_spec.js | 16 +- .../repository/maintenance/mock_data.js | 21 ++ .../maintenance/remove_blobs_spec.js | 102 +++++++-- .../components/work_item_detail_spec.js | 25 ++- .../organizations/organization_helper_spec.rb | 76 ++++++- spec/helpers/visibility_level_helper_spec.rb | 167 +++++++++++++++ ...rds_epic_user_preferences_group_id_spec.rb | 15 ++ .../merge_request_parser_spec.rb | 32 ++- spec/lib/gitlab/internal_events_spec.rb | 28 ++- spec/lib/unnested_in_filters/rewriter_spec.rb | 2 +- ...rds_epic_user_preferences_group_id_spec.rb | 33 +++ ...ntity_for_gitlabcom_duo_pro_trials_spec.rb | 103 +++++++++ .../members/members/member_approval_spec.rb | 86 ++++++++ spec/models/namespace_setting_spec.rb | 11 + spec/requests/api/generic_packages_spec.rb | 29 +++ .../setup/generate_as_if_foss_env_spec.rb | 2 +- yarn.lock | 8 +- 195 files changed, 3274 insertions(+), 960 deletions(-) delete mode 100644 .rubocop_todo/layout/multiline_operation_indentation.yml rename app/assets/javascripts/groups/components/{new_group_form.vue => new_edit_form.vue} (78%) create mode 100644 app/assets/javascripts/organizations/activity/filters.js create mode 100644 app/assets/javascripts/projects/settings/repository/maintenance/graphql/mutations/remove_blobs.mutation.graphql create mode 100644 app/validators/json_schemas/members_approval_request_metadata.json delete mode 100644 config/feature_flags/development/product_analytics_dashboards.yml create mode 100644 db/docs/batched_background_migrations/backfill_boards_epic_user_preferences_group_id.yml create mode 100644 db/migrate/20240510125400_increase_quantity_for_gitlabcom_duo_pro_trials.rb create mode 100644 db/migrate/20240515181541_add_early_access_program_participant_to_namespace_settings.rb create mode 100644 db/migrate/20240519141301_add_metadata_to_member_approvals.rb create mode 100644 db/migrate/20240521094913_add_group_id_to_boards_epic_user_preferences.rb create mode 100644 db/post_migrate/20240521094914_index_boards_epic_user_preferences_on_group_id.rb create mode 100644 db/post_migrate/20240521094915_add_boards_epic_user_preferences_group_id_fk.rb create mode 100644 db/post_migrate/20240521094916_add_boards_epic_user_preferences_group_id_trigger.rb create mode 100644 db/post_migrate/20240521094917_queue_backfill_boards_epic_user_preferences_group_id.rb create mode 100644 db/post_migrate/20240528115140_change_projects_organization_id_default.rb create mode 100644 db/schema_migrations/20240510125400 create mode 100644 db/schema_migrations/20240515181541 create mode 100644 db/schema_migrations/20240519141301 create mode 100644 db/schema_migrations/20240521094913 create mode 100644 db/schema_migrations/20240521094914 create mode 100644 db/schema_migrations/20240521094915 create mode 100644 db/schema_migrations/20240521094916 create mode 100644 db/schema_migrations/20240521094917 create mode 100644 db/schema_migrations/20240528115140 create mode 100644 doc/administration/self_hosted_models/configure_duo_features.md create mode 100644 doc/administration/self_hosted_models/index.md create mode 100644 doc/administration/self_hosted_models/install_infrastructure.md create mode 100644 doc/architecture/blueprints/pipeline_mini_graph/index.md delete mode 100644 doc/user/admin_area/settings/img/custom_git_clone_url_for_https_v12_4.png delete mode 100644 doc/user/admin_area/settings/img/mirror_settings_v15_7.png delete mode 100644 doc/user/project/img/issue_boards_multiple_v13_6.png create mode 100644 gems/gitlab-http/lib/net_http/connect_patch.rb delete mode 100644 gems/gitlab-http/lib/net_http/protocol_patch.rb create mode 100644 gems/gitlab-http/spec/gitlab/http_v2/net_http_connect_patch_spec.rb delete mode 100644 gems/gitlab-http/spec/gitlab/http_v2/net_http_patch_spec.rb create mode 100644 lib/gitlab/background_migration/backfill_boards_epic_user_preferences_group_id.rb create mode 100644 spec/features/groups/settings/general_visibility_levels_spec.rb rename spec/frontend/groups/components/{new_group_form_spec.js => new_edit_form_spec.js} (77%) create mode 100644 spec/frontend/organizations/activity/filters_spec.js create mode 100644 spec/frontend/organizations/activity/mock_data.js create mode 100644 spec/frontend/projects/settings/repository/maintenance/mock_data.js create mode 100644 spec/lib/gitlab/background_migration/backfill_boards_epic_user_preferences_group_id_spec.rb create mode 100644 spec/migrations/20240521094917_queue_backfill_boards_epic_user_preferences_group_id_spec.rb create mode 100644 spec/migrations/increase_quantity_for_gitlabcom_duo_pro_trials_spec.rb diff --git a/.rubocop_todo/gitlab/bounded_contexts.yml b/.rubocop_todo/gitlab/bounded_contexts.yml index 9a6a6eb6720..4fcc1090686 100644 --- a/.rubocop_todo/gitlab/bounded_contexts.yml +++ b/.rubocop_todo/gitlab/bounded_contexts.yml @@ -2568,6 +2568,7 @@ Gitlab/BoundedContexts: - 'ee/app/graphql/resolvers/vulnerabilities_grade_resolver.rb' - 'ee/app/graphql/resolvers/vulnerabilities_resolver.rb' - 'ee/app/graphql/resolvers/vulnerability_severities_count_resolver.rb' + - 'ee/app/graphql/resolvers/vulnerability_filterable.rb' - 'ee/app/graphql/subscriptions/ai_completion_response.rb' - 'ee/app/graphql/types/access_levels/group_type.rb' - 'ee/app/graphql/types/admin/cloud_licenses/current_license_type.rb' diff --git a/.rubocop_todo/layout/argument_alignment.yml b/.rubocop_todo/layout/argument_alignment.yml index 09f403fccd4..9ac594b90ff 100644 --- a/.rubocop_todo/layout/argument_alignment.yml +++ b/.rubocop_todo/layout/argument_alignment.yml @@ -193,19 +193,6 @@ Layout/ArgumentAlignment: - 'lib/api/ci/resource_groups.rb' - 'lib/api/ci/runner.rb' - 'lib/api/ci/runners.rb' - - 'lib/api/ci/triggers.rb' - - 'lib/api/commit_statuses.rb' - - 'lib/api/commits.rb' - - 'lib/api/concerns/packages/debian_distribution_endpoints.rb' - - 'lib/api/concerns/packages/npm_endpoints.rb' - - 'lib/api/container_repositories.rb' - - 'lib/api/dependency_proxy.rb' - - 'lib/api/deploy_keys.rb' - - 'lib/api/deploy_tokens.rb' - - 'lib/api/deployments.rb' - - 'lib/api/entities/application.rb' - - 'lib/api/entities/application_statistics.rb' - - 'lib/api/entities/branch.rb' - 'lib/api/entities/npm_package.rb' - 'lib/api/entities/nuget/dependency_group.rb' - 'lib/api/entities/nuget/package_metadata.rb' @@ -219,19 +206,6 @@ Layout/ArgumentAlignment: - 'lib/api/entities/pull_mirror.rb' - 'lib/api/entities/release.rb' - 'lib/api/entities/resource_access_token.rb' - - 'lib/api/merge_requests.rb' - - 'lib/api/metrics/dashboard/annotations.rb' - - 'lib/api/metrics/user_starred_dashboards.rb' - - 'lib/api/milestone_responses.rb' - - 'lib/api/notes.rb' - - 'lib/api/nuget_project_packages.rb' - - 'lib/api/pages.rb' - - 'lib/api/pages_domains.rb' - - 'lib/api/pagination_params.rb' - - 'lib/api/personal_access_tokens.rb' - - 'lib/api/project_container_repositories.rb' - - 'lib/api/project_export.rb' - - 'lib/api/project_import.rb' - 'lib/api/tags.rb' - 'lib/api/terraform/state.rb' - 'lib/api/topics.rb' diff --git a/.rubocop_todo/layout/multiline_operation_indentation.yml b/.rubocop_todo/layout/multiline_operation_indentation.yml deleted file mode 100644 index 5eba8cb412a..00000000000 --- a/.rubocop_todo/layout/multiline_operation_indentation.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -# Cop supports --autocorrect. -Layout/MultilineOperationIndentation: - Exclude: - - 'app/policies/project_policy.rb' - - 'app/serializers/deploy_keys/deploy_key_entity.rb' - - 'app/services/ci/create_downstream_pipeline_service.rb' - - 'app/services/git/branch_hooks_service.rb' - - 'app/services/groups/transfer_service.rb' - - 'app/services/issues/update_service.rb' - - 'app/services/labels/promote_service.rb' - - 'app/services/labels/transfer_service.rb' - - 'app/services/members/approve_access_request_service.rb' - - 'app/services/webauthn/authenticate_service.rb' diff --git a/.rubocop_todo/lint/ambiguous_operator_precedence.yml b/.rubocop_todo/lint/ambiguous_operator_precedence.yml index cd513753b67..9bfe179acc1 100644 --- a/.rubocop_todo/lint/ambiguous_operator_precedence.yml +++ b/.rubocop_todo/lint/ambiguous_operator_precedence.yml @@ -21,18 +21,6 @@ Lint/AmbiguousOperatorPrecedence: - 'ee/app/services/geo/registry_consistency_service.rb' - 'ee/app/services/vulnerabilities/create_service.rb' - 'ee/lib/gitlab/expiring_subscription_message.rb' - - 'lib/banzai/filter/references/user_reference_filter.rb' - - 'lib/banzai/filter_array.rb' - - 'lib/extracts_ref.rb' - - 'lib/gitlab/chaos.rb' - - 'lib/gitlab/ci/config/normalizer/number_strategy.rb' - - 'lib/gitlab/console.rb' - - 'lib/gitlab/database/background_migration/batch_metrics.rb' - - 'lib/gitlab/database/background_migration/batched_migration.rb' - - 'lib/gitlab/database/migrations/background_migration_helpers.rb' - - 'lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb' - - 'lib/gitlab/database/postgres_hll/buckets.rb' - - 'lib/gitlab/database/query_analyzers/prevent_cross_database_modification.rb' - 'spec/lib/gitlab/conan_token_spec.rb' - 'spec/lib/gitlab/database/background_migration/batched_job_spec.rb' - 'spec/lib/gitlab/database/batch_count_spec.rb' diff --git a/GITLAB_KAS_VERSION b/GITLAB_KAS_VERSION index be23731459f..3c74580b4b5 100644 --- a/GITLAB_KAS_VERSION +++ b/GITLAB_KAS_VERSION @@ -1 +1 @@ -v17.1.0-rc6 +v17.1.0-rc7 diff --git a/Gemfile b/Gemfile index 8d1679886cc..8708f4a228a 100644 --- a/Gemfile +++ b/Gemfile @@ -140,7 +140,7 @@ gem 'rack-cors', '~> 2.0.1', require: 'rack/cors' # rubocop:todo Gemfile/Missing gem 'graphql', '~> 2.3.3', feature_category: :api gem 'graphql-docs', '~> 4.0.0', group: [:development, :test], feature_category: :api gem 'graphiql-rails', '~> 1.8.0', feature_category: :api -gem 'apollo_upload_server', '~> 2.1.5', feature_category: :api +gem 'apollo_upload_server', '~> 2.1.6', feature_category: :api gem 'graphlient', '~> 0.6.0', feature_category: :importers # Used by BulkImport feature (group::import) # Generate Fake data @@ -536,7 +536,7 @@ group :test do gem 'capybara', '~> 3.40' # rubocop:todo Gemfile/MissingFeatureCategory gem 'capybara-screenshot', '~> 1.0.26' # rubocop:todo Gemfile/MissingFeatureCategory - gem 'selenium-webdriver', '~> 4.20', '>= 4.20.1' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'selenium-webdriver', '~> 4.21', '>= 4.21.1' # rubocop:todo Gemfile/MissingFeatureCategory gem 'graphlyte', '~> 1.0.0' # rubocop:todo Gemfile/MissingFeatureCategory @@ -682,9 +682,10 @@ gem 'telesignenterprise', '~> 2.2' # rubocop:todo Gemfile/MissingFeatureCategory # BufferedIO patch # Updating this version will require updating scripts/allowed_warnings.txt gem 'net-protocol', '~> 0.1.3' # rubocop:todo Gemfile/MissingFeatureCategory -# Lock this until we make DNS rebinding work with the updated net-http: -# https://gitlab.com/gitlab-org/gitlab/-/issues/413528 -gem 'net-http', '= 0.1.1' # rubocop:todo Gemfile/MissingFeatureCategory + +# This is locked to 0.4.1 because we patch Net::HTTP#connect in +# gems/gitlab-http/lib/net_http/connect_patch.rb. +gem 'net-http', '= 0.4.1', feature_category: :shared gem 'duo_api', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory diff --git a/Gemfile.checksum b/Gemfile.checksum index 34788a9115c..bdffbf04811 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -21,7 +21,7 @@ {"name":"aliyun-sdk","version":"0.8.0","platform":"ruby","checksum":"65915d3f9b528082253d1f9ad0e4d13d6b552933fe49251c68c6915cd4d75b9d"}, {"name":"amatch","version":"0.4.1","platform":"ruby","checksum":"d3ff15226a2e627c72802e94579db829e5e10c96cf89d329494caec5889145f7"}, {"name":"android_key_attestation","version":"0.3.0","platform":"ruby","checksum":"467eb01a99d2bb48ef9cf24cc13712669d7056cba5a52d009554ff037560570b"}, -{"name":"apollo_upload_server","version":"2.1.5","platform":"ruby","checksum":"0f66bea96bdf7ce8b7278712ebafc8a26b82864ea6541213b58d9b3f673413a5"}, +{"name":"apollo_upload_server","version":"2.1.6","platform":"ruby","checksum":"dcec4072258e6518b0b82e03b485efbddde946813543c14184fc81952d6bcdb2"}, {"name":"app_store_connect","version":"0.29.0","platform":"ruby","checksum":"01d7a923825a4221892099acb5a72f86f6ee7d8aa95815d3c459ba6816ea430f"}, {"name":"arr-pm","version":"0.0.12","platform":"ruby","checksum":"fdff482f75239239201f4d667d93424412639aad0b3b0ad4d827e7c637e0ad39"}, {"name":"asciidoctor","version":"2.0.18","platform":"ruby","checksum":"bbd1e1d16deed8db94bf9624b9f4474fac32d9ca7225d377f076c08d9adde387"}, @@ -395,7 +395,7 @@ {"name":"nap","version":"1.1.0","platform":"ruby","checksum":"949691660f9d041d75be611bb2a8d2fd559c467537deac241f4097d9b5eea576"}, {"name":"neighbor","version":"0.3.2","platform":"ruby","checksum":"b795bbcc24b1b9ae82d9f7e97a3461b0b3607d24a85a7acbed776bd498e7eba8"}, {"name":"nenv","version":"0.3.0","platform":"ruby","checksum":"d9de6d8fb7072228463bf61843159419c969edb34b3cef51832b516ae7972765"}, -{"name":"net-http","version":"0.1.1","platform":"ruby","checksum":"75a4e109b6f9af32fad0e98a6180c47aceb415927ca3bd70c8fc3e7dbbabbe86"}, +{"name":"net-http","version":"0.4.1","platform":"ruby","checksum":"a96efc5ea18bcb9715e24dda4159d10f67ff0345c8a980d04630028055b2c282"}, {"name":"net-http-persistent","version":"4.0.1","platform":"ruby","checksum":"2752f4cce05fd1c45e0537c6f3a98fa5a4899efd5f88e63c104ed5f05cbddef9"}, {"name":"net-imap","version":"0.3.4","platform":"ruby","checksum":"a82a59e2a429433dc54cae5a8b2979ffe49da8c66085740811bfa337dc3729b5"}, {"name":"net-ldap","version":"0.17.1","platform":"ruby","checksum":"52571b55f9157120833ac1667f2969ce0139251811d0a9b64657c1c135069cf9"}, @@ -617,7 +617,7 @@ {"name":"sawyer","version":"0.9.2","platform":"ruby","checksum":"fa3a72d62a4525517b18857ddb78926aab3424de0129be6772a8e2ba240e7aca"}, {"name":"sd_notify","version":"0.1.1","platform":"ruby","checksum":"cbc7ac6caa7cedd26b30a72b5eeb6f36050dc0752df263452ea24fb5a4ad3131"}, {"name":"seed-fu","version":"2.3.7","platform":"ruby","checksum":"f19673443e9af799b730e3d4eca6a89b39e5a36825015dffd00d02ea3365cf74"}, -{"name":"selenium-webdriver","version":"4.20.1","platform":"ruby","checksum":"560ca00d45bed16d661089da674290ce81564949888daa1f8659fe77fd39a2ac"}, +{"name":"selenium-webdriver","version":"4.21.1","platform":"ruby","checksum":"c30b64014532fc5156c60797985f839f36adbe60ff4653e7112b008dc1c83263"}, {"name":"semver_dialects","version":"2.0.2","platform":"ruby","checksum":"60059c9f416f931b5212d862fad2879d6b9affb8e0b9afb0d91b793639c116fe"}, {"name":"sentry-rails","version":"5.17.3","platform":"ruby","checksum":"017771c42d739c0ad2213a581ca9d005cf543227bc13662cd1ca9909f2429459"}, {"name":"sentry-ruby","version":"5.17.3","platform":"ruby","checksum":"61791a4b0bb0f95cd87aceeaa1efa6d4ab34d64236c9d5df820478adfe2fbbfc"}, diff --git a/Gemfile.lock b/Gemfile.lock index 1f9f0838cf0..6ba258f78aa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -48,6 +48,7 @@ PATH concurrent-ruby (~> 1.2) httparty (~> 0.21.0) ipaddress (~> 0.8.3) + net-http (= 0.4.1) railties (~> 7) PATH @@ -278,7 +279,7 @@ GEM mize tins (~> 1.0) android_key_attestation (0.3.0) - apollo_upload_server (2.1.5) + apollo_upload_server (2.1.6) actionpack (>= 6.1.6) graphql (>= 1.8) app_store_connect (0.29.0) @@ -1115,8 +1116,7 @@ GEM neighbor (0.3.2) activerecord (>= 6.1) nenv (0.3.0) - net-http (0.1.1) - net-protocol + net-http (0.4.1) uri net-http-persistent (4.0.1) connection_pool (~> 2.2) @@ -1643,7 +1643,7 @@ GEM seed-fu (2.3.7) activerecord (>= 3.1) activesupport (>= 3.1) - selenium-webdriver (4.20.1) + selenium-webdriver (4.21.1) base64 (~> 0.2) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) @@ -1912,7 +1912,7 @@ DEPENDENCIES acts-as-taggable-on (~> 10.0) addressable (~> 2.8) akismet (~> 3.0) - apollo_upload_server (~> 2.1.5) + apollo_upload_server (~> 2.1.6) app_store_connect arr-pm (~> 0.0.12) asciidoctor (~> 2.0.18) @@ -2095,7 +2095,7 @@ DEPENDENCIES minitest (~> 5.11.0) multi_json (~> 1.14.1) neighbor (~> 0.3.2) - net-http (= 0.1.1) + net-http (= 0.4.1) net-ldap (~> 0.17.1) net-ntp net-protocol (~> 0.1.3) @@ -2203,7 +2203,7 @@ DEPENDENCIES sanitize (~> 6.0.2) sd_notify (~> 0.1.0) seed-fu (~> 2.3.7) - selenium-webdriver (~> 4.20, >= 4.20.1) + selenium-webdriver (~> 4.21, >= 4.21.1) semver_dialects (~> 2.0, >= 2.0.2) sentry-rails (~> 5.17.3) sentry-ruby (~> 5.17.3) diff --git a/app/assets/javascripts/groups/components/new_group_form.vue b/app/assets/javascripts/groups/components/new_edit_form.vue similarity index 78% rename from app/assets/javascripts/groups/components/new_group_form.vue rename to app/assets/javascripts/groups/components/new_edit_form.vue index e0954ac9bcc..b21dada1fda 100644 --- a/app/assets/javascripts/groups/components/new_group_form.vue +++ b/app/assets/javascripts/groups/components/new_edit_form.vue @@ -1,5 +1,5 @@ @@ -129,9 +125,9 @@ export default { - {{ - $options.i18n.detailsLink - }} + {{ s__('Import|Show errors') }} > diff --git a/app/assets/javascripts/import_entities/import_groups/components/import_history_link.vue b/app/assets/javascripts/import_entities/import_groups/components/import_history_link.vue index e68cda0cfb5..81c4fa55797 100644 --- a/app/assets/javascripts/import_entities/import_groups/components/import_history_link.vue +++ b/app/assets/javascripts/import_entities/import_groups/components/import_history_link.vue @@ -26,5 +26,5 @@ export default { }; diff --git a/app/assets/javascripts/import_entities/import_groups/components/import_status.vue b/app/assets/javascripts/import_entities/import_groups/components/import_status.vue index e401d5ad90d..c04a98b3770 100644 --- a/app/assets/javascripts/import_entities/import_groups/components/import_status.vue +++ b/app/assets/javascripts/import_entities/import_groups/components/import_status.vue @@ -8,28 +8,17 @@ export default { GlLink, }, - inject: { - detailsPath: { - default: undefined, - }, - }, - props: { - id: { - type: Number, - required: false, - default: null, - }, - entityId: { - type: Number, - required: false, - default: null, - }, hasFailures: { type: Boolean, required: false, default: false, }, + failuresHref: { + type: String, + required: false, + default: '', + }, status: { type: String, required: true, @@ -48,20 +37,6 @@ export default { return STATUS_ICON_MAP[this.status]; }, - - showDetails() { - return Boolean(this.detailsPathWithId) && this.hasFailures; - }, - - detailsPathWithId() { - if (!this.id || !this.entityId || !this.detailsPath) { - return null; - } - - return this.detailsPath - .replace(':id', encodeURIComponent(this.id)) - .replace(':entity_id', encodeURIComponent(this.entityId)); - }, }, }; @@ -72,8 +47,8 @@ export default { {{ mappedStatus.text }} -
- {{ s__('Import|See failures') }} +
+ {{ s__('Import|Show errors') }} >
diff --git a/app/assets/javascripts/import_entities/import_groups/components/import_table.vue b/app/assets/javascripts/import_entities/import_groups/components/import_table.vue index 46fc6153b38..f60f242e56d 100644 --- a/app/assets/javascripts/import_entities/import_groups/components/import_table.vue +++ b/app/assets/javascripts/import_entities/import_groups/components/import_table.vue @@ -637,7 +637,6 @@ export default { gitlabLogo: window.gon.gitlab_logo, PAGE_SIZES, permissionsHelpPath: helpPagePath('user/permissions', { anchor: 'group-members-permissions' }), - betaFeatureHelpPath: helpPagePath('policy/experiment-beta-support', { anchor: 'beta-features' }), popoverOptions: { title: __('What is listed here?') }, i18n, LOCAL_STORAGE_KEY: 'gl-bulk-imports-status-page-size-v1', @@ -803,23 +802,6 @@ export default { data-testid="import-projects-warning" /> - - - - - - - +import { GlTooltipDirective, GlIcon } from '@gitlab/ui'; import UserDate from '~/vue_shared/components/user_date.vue'; export default { - components: { UserDate }, + components: { UserDate, GlIcon }, + directives: { + GlTooltip: GlTooltipDirective, + }, props: { member: { type: Object, @@ -21,17 +25,35 @@ export default { diff --git a/app/assets/javascripts/organizations/groups/edit/index.js b/app/assets/javascripts/organizations/groups/edit/index.js index a31c1227c47..f3ec0caf83c 100644 --- a/app/assets/javascripts/organizations/groups/edit/index.js +++ b/app/assets/javascripts/organizations/groups/edit/index.js @@ -11,13 +11,31 @@ export const initOrganizationsGroupsEdit = () => { const { dataset: { appData }, } = el; - const { group } = convertObjectPropsToCamelCase(JSON.parse(appData), { deep: true }); + const { + group, + basePath, + groupsAndProjectsOrganizationPath, + groupsOrganizationPath, + availableVisibilityLevels, + restrictedVisibilityLevels, + defaultVisibilityLevel, + pathMaxlength, + pathPattern, + } = convertObjectPropsToCamelCase(JSON.parse(appData), { deep: true }); return new Vue({ el, name: 'OrganizationGroupsEditRoot', provide: { group, + basePath, + groupsAndProjectsOrganizationPath, + groupsOrganizationPath, + availableVisibilityLevels, + restrictedVisibilityLevels, + defaultVisibilityLevel, + pathMaxlength, + pathPattern, }, render(createElement) { return createElement(App); diff --git a/app/assets/javascripts/organizations/groups/new/components/app.vue b/app/assets/javascripts/organizations/groups/new/components/app.vue index 0e04d12e517..bbcab1b8e2a 100644 --- a/app/assets/javascripts/organizations/groups/new/components/app.vue +++ b/app/assets/javascripts/organizations/groups/new/components/app.vue @@ -3,7 +3,7 @@ import { GlSprintf, GlLink } from '@gitlab/ui'; import { s__, __, sprintf } from '~/locale'; import { helpPagePath } from '~/helpers/help_page_helper'; import axios from '~/lib/utils/axios_utils'; -import NewGroupForm from '~/groups/components/new_group_form.vue'; +import NewEditForm from '~/groups/components/new_edit_form.vue'; import { FORM_FIELD_NAME, FORM_FIELD_PATH, FORM_FIELD_VISIBILITY_LEVEL } from '~/groups/constants'; import { VISIBILITY_LEVELS_INTEGER_TO_STRING } from '~/visibility_level/constants'; import { createAlert } from '~/alert'; @@ -29,13 +29,12 @@ export default { components: { GlLink, GlSprintf, - NewGroupForm, + NewEditForm, }, inject: [ 'basePath', 'groupsAndProjectsOrganizationPath', 'groupsOrganizationPath', - 'mattermostEnabled', 'availableVisibilityLevels', 'restrictedVisibilityLevels', 'defaultVisibilityLevel', @@ -106,7 +105,7 @@ export default {

- { basePath, groupsAndProjectsOrganizationPath, groupsOrganizationPath, - mattermostEnabled, availableVisibilityLevels, restrictedVisibilityLevels, defaultVisibilityLevel, @@ -37,7 +36,6 @@ export const initOrganizationsGroupsNew = () => { basePath, groupsAndProjectsOrganizationPath, groupsOrganizationPath, - mattermostEnabled, availableVisibilityLevels, restrictedVisibilityLevels, defaultVisibilityLevel, diff --git a/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue b/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue index ae2e5f56b5d..5bc06f5094e 100644 --- a/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue +++ b/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue @@ -24,7 +24,7 @@ import PaginationBar from '~/vue_shared/components/pagination_bar/pagination_bar import TimeAgo from '~/vue_shared/components/time_ago_tooltip.vue'; import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue'; -import { isImporting } from '../utils'; +import { isFailed, isImporting } from '../utils'; import { DEFAULT_ERROR } from '../utils/error_messages'; const DEFAULT_PER_PAGE = 20; @@ -59,7 +59,14 @@ export default { GlTooltip, }, - inject: ['realtimeChangesPath'], + inject: { + detailsPath: { + default: undefined, + }, + realtimeChangesPath: { + default: undefined, + }, + }, props: { id: { @@ -211,6 +218,28 @@ export default { return !isEmpty(item.stats); }, + showFailuresLinkInStatus(item) { + if (isFailed(item.status)) { + return true; + } + // Import has failures but no stats + if (item.has_failures && !this.hasStats(item)) { + return true; + } + + return false; + }, + + failuresLinkHref(item) { + if (!item.has_failures) { + return ''; + } + + return this.detailsPath + .replace(':id', encodeURIComponent(item.bulk_import_id)) + .replace(':entity_id', encodeURIComponent(item.id)); + }, + getEntityTooltip(item) { switch (item.entity_type) { case WORKSPACE_PROJECT: @@ -238,7 +267,7 @@ export default {

- {{ s__('BulkImport|Direct transfer history') }} + {{ s__('BulkImport|Migration history') }}

@@ -272,13 +301,13 @@ export default {