From cab300ea41093ebe3d4a48cca9fc345be8397ab4 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 21 Mar 2025 21:09:58 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .../issue_templates/Feature Flag Roll Out.md | 4 +- ...e_end_string_concatenation_indentation.yml | 2 +- .../rspec/example_without_description.yml | 2 +- .../rspec/no_expectation_example.yml | 2 +- .../components/access_token_table_app.vue | 15 +- .../components/achievements_form.vue | 2 +- .../components/devops_score.vue | 2 +- .../credentials_filter_sort_app.vue | 2 +- .../components/environment_actions.vue | 2 +- .../ide/components/commit_sidebar/form.vue | 2 +- .../ide/components/file_templates/bar.vue | 4 +- .../javascripts/profile/edit/constants.js | 2 +- .../super_sidebar/components/create_menu.vue | 2 +- .../components/mr_more_dropdown.vue | 4 +- .../work_items/components/item_title.vue | 2 +- ...item_create_branch_merge_request_modal.vue | 4 +- app/helpers/ci/jobs_helper.rb | 2 +- app/helpers/nav/new_dropdown_helper.rb | 2 +- app/views/clusters/clusters/_banner.html.haml | 2 +- .../devise/confirmations/almost_there.haml | 2 +- .../registrations/_signup_box_form.html.haml | 2 +- app/views/ide/oauth_redirect.html.haml | 2 +- app/views/projects/deployments/_actions.haml | 2 +- .../user_settings/profiles/show.html.haml | 2 +- config/gitlab_loose_foreign_keys.yml | 4 + ...e_projects_project_states_project_id_fk.rb | 21 + db/schema_migrations/20250320180620 | 1 + db/structure.sql | 3 - doc/administration/auth/_index.md | 2 +- .../backup_restore/backup_gitlab.md | 2 +- .../backup_restore/restore_gitlab.md | 2 +- .../troubleshooting_backup_gitlab.md | 4 +- doc/administration/cicd/_index.md | 2 +- doc/administration/dedicated/architecture.md | 2 +- .../dedicated/configure_instance/_index.md | 14 +- .../dedicated/create_instance.md | 16 +- doc/administration/dedicated/maintenance.md | 2 +- doc/administration/dedicated/monitor.md | 2 +- .../dedicated/tenant_overview.md | 4 +- doc/administration/geo/replication/faq.md | 4 +- .../replication/upgrading_the_geo_sites.md | 2 +- doc/administration/geo/setup/database.md | 2 +- doc/administration/get_started.md | 2 +- .../gitaly/gitaly_geo_capabilities.md | 2 +- .../gitlab_duo_self_hosted/_index.md | 16 +- .../supported_llm_serving_platforms.md | 2 +- .../gitlab_duo_self_hosted/troubleshooting.md | 4 +- doc/administration/instance_limits.md | 16 +- doc/administration/logs/_index.md | 2 +- doc/administration/logs/log_parsing.md | 4 +- doc/administration/monitoring/health_check.md | 2 +- doc/administration/operations/_index.md | 12 +- .../operations/moving_repositories.md | 6 +- doc/administration/operations/puma.md | 4 +- .../packages/container_registry.md | 160 +++---- .../container_registry_metadata_database.md | 2 +- .../postgresql/replication_and_failover.md | 10 +- ...eplication_and_failover_troubleshooting.md | 10 +- doc/administration/raketasks/cleanup.md | 2 +- .../settings/account_and_limit_settings.md | 4 + .../settings/continuous_integration.md | 4 +- .../settings/deprecated_api_rate_limits.md | 2 +- .../settings/git_http_rate_limits.md | 4 +- .../settings/git_lfs_rate_limits.md | 4 +- .../settings/import_and_export_settings.md | 2 +- .../settings/package_registry_rate_limits.md | 2 +- .../settings/usage_statistics.md | 8 +- doc/api/graphql/_index.md | 2 +- doc/api/graphql/reference/_index.md | 10 + doc/api/groups.md | 2 +- doc/api/project_access_tokens.md | 6 +- doc/api/projects.md | 2 +- doc/api/rest/_index.md | 2 +- doc/ci/testing/unit_test_reports.md | 2 +- doc/ci/yaml/_index.md | 2 +- doc/ci/yaml/artifacts_reports.md | 4 +- .../ai_features/ai_development_license.md | 19 +- .../ai_features/code_suggestions.md | 4 +- doc/development/ai_features/duo_chat.md | 4 +- doc/development/ai_features/embeddings.md | 2 +- .../ai_features/model_migration.md | 2 +- doc/development/api_styleguide.md | 2 +- doc/development/application_limits.md | 4 +- doc/development/code_review.md | 3 +- doc/development/data_retention_policies.md | 2 +- .../documentation/authoring_environment.md | 6 +- .../documentation/experiment_beta.md | 2 +- .../documentation/feature_flags.md | 2 +- .../documentation/restful_api_styleguide.md | 4 +- .../styleguide/availability_details.md | 2 +- .../documentation/styleguide/word_list.md | 4 +- doc/development/internal_analytics/_index.md | 2 +- .../metrics/metrics_instrumentation.md | 2 +- doc/development/migration_style_guide.md | 2 +- .../packages/new_format_development.md | 2 +- doc/development/performance.md | 2 +- doc/development/permissions/custom_roles.md | 2 +- doc/development/ruby_upgrade.md | 2 +- .../sidekiq/compatibility_across_updates.md | 2 +- .../testing_guide/frontend_testing.md | 2 +- .../testing_guide/testing_levels.md | 2 +- doc/development/webhooks.md | 6 +- doc/install/docker/_index.md | 2 +- doc/install/docker/configuration.md | 2 +- doc/legal/licensing_policy.md | 2 +- .../incident_management/integrations.md | 4 +- doc/security/rate_limits.md | 2 +- doc/security/tokens/token_troubleshooting.md | 2 +- .../cloud/aws/gitlab_aws_integration.md | 4 +- doc/solutions/languages/rust/_index.md | 2 +- doc/subscriptions/customers_portal.md | 2 +- doc/subscriptions/gitlab_dedicated/_index.md | 2 +- doc/subscriptions/self_managed/_index.md | 2 +- doc/subscriptions/subscription-add-ons.md | 4 +- doc/topics/autodevops/stages.md | 2 +- .../upgrading_auto_deploy_dependencies.md | 2 +- doc/topics/git/file_management.md | 2 +- .../automate_runner_creation/_index.md | 2 +- .../_index.md | 2 +- .../browser_based_4_to_5_migration_guide.md | 2 +- ..._based_to_browser_based_migration_guide.md | 2 +- .../secret_detection/client/_index.md | 3 +- .../secret_detection/pipeline/_index.md | 9 +- .../secret_push_protection/_index.md | 10 +- .../vulnerability_archival/_index.md | 71 +++ .../vulnerability_report/_index.md | 13 +- doc/user/clusters/agent/user_access.md | 2 +- doc/user/free_user_limit.md | 2 +- doc/user/gitlab_com/_index.md | 414 +++++++++--------- doc/user/gitlab_duo/gateway.md | 2 +- doc/user/gitlab_duo_chat/examples.md | 2 +- doc/user/group/access_and_permissions.md | 2 +- .../epics/img/related_epic_block_v14_9.png | Bin 11800 -> 0 bytes .../epics/img/related_epics_add_v14_9.png | Bin 9862 -> 0 bytes .../epics/img/related_epics_remove_v14_9.png | Bin 5034 -> 0 bytes doc/user/group/epics/linked_epics.md | 6 - .../import/direct_transfer_migrations.md | 2 +- .../group/reporting/git_abuse_rate_limit.md | 2 +- doc/user/group/saml_sso/_index.md | 2 +- .../group/settings/group_access_tokens.md | 6 +- .../clusters/migrate_to_gitlab_agent.md | 2 +- .../authenticate_with_container_registry.md | 2 +- .../delete_container_registry_images.md | 2 +- .../protected_container_tags.md | 2 +- .../reduce_container_registry_storage.md | 8 +- .../terraform_module_registry/_index.md | 2 +- doc/user/profile/notifications.md | 2 +- doc/user/profile/service_accounts.md | 2 +- doc/user/profile/user_passwords.md | 2 +- doc/user/project/import/_index.md | 4 +- .../import/troubleshooting_github_import.md | 2 +- doc/user/project/issues/csv_import.md | 2 +- doc/user/project/issues/design_management.md | 4 +- .../_index.md | 2 +- .../lets_encrypt_integration.md | 2 +- doc/user/project/time_tracking.md | 2 +- doc/user/project/working_with_projects.md | 2 +- doc/user/work_items/_index.md | 1 + doc/user/work_items/linked_items.md | 159 +++++++ locale/gitlab.pot | 57 ++- .../user_inherited_access_spec.rb | 2 +- .../users_spec.rb | 2 +- .../cells/cell_uniqueness_spec.rb | 2 +- .../cells/demo2_spec.rb | 2 +- .../cells/demo3_spec.rb | 2 +- .../cells/login_across_multiple_cells_spec.rb | 2 +- .../cells/multiple_cells_gdk_spec.rb | 2 +- .../cells/project_exists_spec.rb | 2 +- .../create_group_with_mattermost_team_spec.rb | 0 .../group/group_member_access_request_spec.rb | 2 +- .../group/transfer_group_spec.rb | 2 +- .../group/transfer_project_spec.rb | 2 +- .../organization/create_organization_spec.rb | 6 +- .../project/add_project_member_spec.rb | 2 +- .../project/create_project_badge_spec.rb | 2 +- .../project/create_project_spec.rb | 2 +- .../project/dashboard_images_spec.rb | 2 +- .../project/invite_group_to_project_spec.rb | 2 +- .../project/project_owner_permissions_spec.rb | 2 +- .../project/view_project_activity_spec.rb | 2 +- .../user/follow_user_activity_spec.rb | 2 +- .../parent_group_access_termination_spec.rb | 2 +- .../user/user_inherited_access_spec.rb | 2 +- .../projects/environments/environment_spec.rb | 2 +- ...eate_license_file_in_empty_project_spec.rb | 2 +- .../user_sees_collaboration_links_spec.rb | 2 +- .../components/access_token_table_app_spec.js | 26 +- .../components/devops_score_spec.js | 2 +- .../environments/environment_actions_spec.js | 4 +- spec/frontend/file_pickers_spec.js | 2 +- .../components/commit_sidebar/form_spec.js | 2 +- .../components/create_menu_spec.js | 4 +- .../super_sidebar/components/user_bar_spec.js | 4 +- .../work_items/components/item_title_spec.js | 2 +- spec/helpers/ci/jobs_helper_spec.rb | 2 +- spec/helpers/nav/new_dropdown_helper_spec.rb | 4 +- ...hase_oauth_login_counter_increment_spec.rb | 3 +- .../database/no_cross_db_foreign_keys_spec.rb | 1 - 198 files changed, 908 insertions(+), 619 deletions(-) create mode 100644 db/post_migrate/20250320180620_remove_projects_project_states_project_id_fk.rb create mode 100644 db/schema_migrations/20250320180620 create mode 100644 doc/user/application_security/vulnerability_archival/_index.md delete mode 100644 doc/user/group/epics/img/related_epic_block_v14_9.png delete mode 100644 doc/user/group/epics/img/related_epics_add_v14_9.png delete mode 100644 doc/user/group/epics/img/related_epics_remove_v14_9.png create mode 100644 doc/user/work_items/linked_items.md rename qa/qa/specs/features/api/{9_data_stores => 9_tenant_scale}/user_inherited_access_spec.rb (99%) rename qa/qa/specs/features/api/{9_data_stores => 9_tenant_scale}/users_spec.rb (97%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/cells/cell_uniqueness_spec.rb (91%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/cells/demo2_spec.rb (97%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/cells/demo3_spec.rb (98%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/cells/login_across_multiple_cells_spec.rb (91%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/cells/multiple_cells_gdk_spec.rb (83%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/cells/project_exists_spec.rb (91%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/group/create_group_with_mattermost_team_spec.rb (100%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/group/group_member_access_request_spec.rb (96%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/group/transfer_group_spec.rb (97%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/group/transfer_project_spec.rb (97%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/organization/create_organization_spec.rb (81%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/project/add_project_member_spec.rb (89%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/project/create_project_badge_spec.rb (97%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/project/create_project_spec.rb (94%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/project/dashboard_images_spec.rb (94%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/project/invite_group_to_project_spec.rb (98%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/project/project_owner_permissions_spec.rb (98%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/project/view_project_activity_spec.rb (96%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/user/follow_user_activity_spec.rb (98%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/user/parent_group_access_termination_spec.rb (97%) rename qa/qa/specs/features/browser_ui/{9_data_stores => 9_tenant_scale}/user/user_inherited_access_spec.rb (98%) diff --git a/.gitlab/issue_templates/Feature Flag Roll Out.md b/.gitlab/issue_templates/Feature Flag Roll Out.md index 171f55a5101..7aeecc94cec 100644 --- a/.gitlab/issue_templates/Feature Flag Roll Out.md +++ b/.gitlab/issue_templates/Feature Flag Roll Out.md @@ -101,7 +101,7 @@ To do so, follow these steps: If the merge request was deployed before [the monthly release was tagged](https://about.gitlab.com/handbook/engineering/releases/#self-managed-releases-1), the feature can be officially announced in a release blog post: `/chatops run release check ` - [ ] After the default-enabling MR has been deployed, clean up the feature flag from all environments by running these chatops command in the `#production` channel: `/chatops run feature delete --dev --pre --staging --staging-ref --production` -- [ ] Close [the feature issue][] to indicate the feature will be released in the current milestone. +- [ ] Close [the feature issue]() to indicate the feature will be released in the current milestone. - [ ] Set the next milestone to this rollout issue for scheduling [the flag removal](#release-the-feature). - [ ] (Optional) You can [create a separate issue](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Feature%20Flag%20Cleanup) for scheduling the steps below to [Release the feature](#release-the-feature). - [ ] Set the title to "[Feature flag] Cleanup ``". @@ -128,7 +128,7 @@ or use the checklist below in this same issue. - [ ] Ensure that the cleanup MR has been included in the release package. If the merge request was deployed before [the monthly release was tagged](https://about.gitlab.com/handbook/engineering/releases/#self-managed-releases-1), the feature can be officially announced in a release blog post: `/chatops run release check ` -- [ ] Close [the feature issue][] to indicate the feature will be released in the current milestone. +- [ ] Close [the feature issue]() to indicate the feature will be released in the current milestone. - [ ] Once the cleanup MR has been deployed to production, clean up the feature flag from all environments by running these chatops command in `#production` channel: `/chatops run feature delete --dev --pre --staging --staging-ref --production` - [ ] Close this rollout issue. diff --git a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml index e543c5fff18..baceb196313 100644 --- a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml +++ b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml @@ -392,7 +392,7 @@ Layout/LineEndStringConcatenationIndentation: - 'qa/qa/service/docker_run/product_analytics/dotnet_sdk_app.rb' - 'qa/qa/specs/features/ee/api/10_govern/compliance_pipeline_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/10_govern/export_vulnerability_report_spec.rb' - - 'qa/qa/specs/features/ee/browser_ui/9_data_stores/elasticsearch/elasticsearch_reindexing_spec.rb' + - 'qa/qa/specs/features/ee/browser_ui/9_tenant_scale/elasticsearch/elasticsearch_reindexing_spec.rb' - 'qa/qa/support/system_logs/kibana.rb' - 'qa/qa/tools/revoke_user_personal_access_tokens.rb' - 'qa/qa/tools/test_resources_handler.rb' diff --git a/.rubocop_todo/rspec/example_without_description.yml b/.rubocop_todo/rspec/example_without_description.yml index 770c6ccceee..e931808fc78 100644 --- a/.rubocop_todo/rspec/example_without_description.yml +++ b/.rubocop_todo/rspec/example_without_description.yml @@ -218,7 +218,7 @@ RSpec/ExampleWithoutDescription: - 'ee/spec/workers/group_destroy_worker_spec.rb' - 'ee/spec/workers/security/scan_execution_policies/create_pipeline_worker_spec.rb' - 'ee/spec/workers/security/scan_execution_policies/rule_schedule_worker_spec.rb' - - 'qa/qa/specs/features/browser_ui/9_data_stores/project/dashboard_images_spec.rb' + - 'qa/qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb' - 'qa/spec/specs/helpers/feature_flag_spec.rb' - 'spec/bin/audit_event_type_spec.rb' - 'spec/bin/feature_flag_spec.rb' diff --git a/.rubocop_todo/rspec/no_expectation_example.yml b/.rubocop_todo/rspec/no_expectation_example.yml index ce96a4fd7ad..aba6b37def4 100644 --- a/.rubocop_todo/rspec/no_expectation_example.yml +++ b/.rubocop_todo/rspec/no_expectation_example.yml @@ -47,7 +47,7 @@ RSpec/NoExpectationExample: - 'qa/qa/specs/features/browser_ui/4_verify/ci_variable/ui_variable_inheritable_when_forward_pipeline_variables_true_spec.rb' - 'qa/qa/specs/features/browser_ui/4_verify/ci_variable/ui_variable_non_inheritable_when_forward_pipeline_variables_false_spec.rb' - 'qa/qa/specs/features/ee/api/2_plan/epics_to_work_items_sync_spec.rb' - - 'qa/qa/specs/features/ee/api/9_data_stores/elasticsearch/elasticsearch_api_spec.rb' + - 'qa/qa/specs/features/ee/api/9_tenant_scale/elasticsearch/elasticsearch_api_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/10_govern/change_vulnerability_status_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb' diff --git a/app/assets/javascripts/access_tokens/components/access_token_table_app.vue b/app/assets/javascripts/access_tokens/components/access_token_table_app.vue index e72c0909059..bb45a9c4721 100644 --- a/app/assets/javascripts/access_tokens/components/access_token_table_app.vue +++ b/app/assets/javascripts/access_tokens/components/access_token_table_app.vue @@ -46,7 +46,8 @@ export default { i18n: { button: { revoke: s__('AccessTokens|Revoke'), - revokeAriaLabel: (name) => sprintf(s__('AccessTokens|Revoke %{name}'), { name }).trim(), + revokeAriaLabel: (name) => + sprintf(s__('AccessTokens|Revoke %{name}'), { name }, false).trim(), rotate: s__('AccessTokens|Rotate'), }, emptyDateField: __('Never'), @@ -216,10 +217,14 @@ export default { } }, modalMessage(tokenName, action) { - return sprintf(this.$options.i18n.modal.message[action], { - accessTokenType: this.accessTokenType, - tokenName, - }); + return sprintf( + this.$options.i18n.modal.message[action], + { + accessTokenType: this.accessTokenType, + tokenName, + }, + false, + ); }, sortingChanged(aRow, bRow, key) { if (['createdAt', 'lastUsedAt', 'expiresAt'].includes(key)) { diff --git a/app/assets/javascripts/achievements/components/achievements_form.vue b/app/assets/javascripts/achievements/components/achievements_form.vue index 3a99b48e7e0..42717b19136 100644 --- a/app/assets/javascripts/achievements/components/achievements_form.vue +++ b/app/assets/javascripts/achievements/components/achievements_form.vue @@ -240,7 +240,7 @@ export default {
- {{ __('Choose File...') }} + {{ __('Choose File…') }}