From f4794b8f4caf22b944c0698ad66c98f7da3cd5f0 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 3 Jun 2024 18:27:34 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/ci/rules.gitlab-ci.yml | 4 +- .../cop/experiments_test_coverage.yml | 1 - .../gitlab/avoid_gitlab_instance_checks.yml | 1 - .rubocop_todo/gitlab/bounded_contexts.yml | 1 + ...e_end_string_concatenation_indentation.yml | 1 - .../style/inline_disable_annotation.yml | 1 - .../components/links_to_spam_input.vue | 2 +- .../components/achievements_form.vue | 2 +- .../components/report_actions.vue | 2 +- .../components/reported_content.vue | 2 +- .../abuse_report/components/user_detail.vue | 2 +- .../components/abuse_report_row.vue | 2 +- .../components/database_listbox.vue | 4 +- .../components/alerts_form.vue | 2 +- .../components/alerts_settings_form.vue | 6 +- .../components/path_navigation.vue | 4 +- .../components/stage_table.vue | 2 +- .../shared/components/metric_popover.vue | 2 +- .../components/preview_dropdown.vue | 2 +- .../components/board_add_new_column.vue | 4 +- .../boards/components/board_card_inner.vue | 6 +- .../boards/components/board_cut_line.vue | 2 +- .../boards/components/board_form.vue | 2 +- .../boards/components/board_list_header.vue | 4 +- .../boards/components/board_new_item.vue | 2 +- .../boards/components/issue_time_estimate.vue | 2 +- .../boards/components/project_select.vue | 2 +- .../components/activity_history_item.vue | 4 +- .../components/clusters_view_all.vue | 7 +- .../code_navigation/components/popover.vue | 2 +- .../commit/components/signature_badge.vue | 2 +- .../components/wrappers/code_block.vue | 2 +- .../javascripts/crm/components/crm_form.vue | 2 +- .../deploy_keys/components/key.vue | 10 +-- .../deploy_keys/components/keys_panel.vue | 2 +- .../deployments/components/aside_item.vue | 2 +- .../components/deployment_deploy_block.vue | 2 +- .../components/design_notes/design_note.vue | 2 +- .../components/design_overlay.vue | 2 +- .../components/list/item.vue | 2 +- .../components/toolbar/index.vue | 2 +- .../upload/design_version_dropdown.vue | 2 +- .../design_management/pages/index.vue | 2 +- .../diffs/components/diff_file_row.vue | 2 +- .../javascripts/diffs/components/diff_row.vue | 4 +- .../shared/findings_drawer_item.vue | 2 +- .../components/canary_ingress.vue | 2 +- .../components/canary_update_modal.vue | 4 +- .../components/deploy_freeze_alert.vue | 4 +- .../components/environment_folder.vue | 2 +- .../components/new_environment_item.vue | 4 +- .../components/kubernetes/kubernetes_tabs.vue | 2 +- .../folder/environments_folder_app.vue | 2 +- .../folder/environments_folder_view.vue | 2 +- .../components/error_details_info.vue | 6 +- .../configure_feature_flags_modal.vue | 4 +- .../feature_flags/components/form.vue | 4 +- .../security_patch_upgrade_alert_modal.vue | 6 +- .../groups/components/group_item.vue | 2 +- .../ide/components/activity_bar.vue | 2 +- .../shared/commit_message_field.vue | 4 +- .../components/provider_repo_table_row.vue | 2 +- .../components/exclusions_list_item.vue | 2 +- .../components/invite_modal_base.vue | 2 +- .../empty_state_without_any_issues.vue | 2 +- .../list/components/issues_list_app.vue | 39 +++------- app/assets/javascripts/issues/list/index.js | 2 + .../issues/new/components/type_popover.vue | 4 +- .../components/incidents/highlight_bar.vue | 6 +- .../incidents/timeline_events_item.vue | 2 +- .../issues/show/components/pinned_links.vue | 2 +- .../issues/show/components/sticky_header.vue | 2 +- .../components/group_item_name.vue | 2 +- .../components/workload_details.vue | 2 +- .../components/workload_details_item.vue | 2 +- .../components/workload_layout.vue | 2 +- .../components/avatars/user_avatar.vue | 4 +- .../members/components/table/max_role.vue | 2 +- .../reviewers/reviewers_container.vue | 4 +- .../components/sticky_header.vue | 4 +- .../experiments/show/ml_experiments_show.vue | 2 +- .../components/candidate_detail_row.vue | 2 +- .../components/model_create.vue | 6 +- .../components/model_version_detail.vue | 2 +- .../notebook/cells/output/dataframe_util.js | 2 +- .../notes/components/note_header.vue | 4 +- .../notifications_dropdown_item.vue | 2 +- .../components/association_count_card.vue | 7 +- .../components/list_page/image_list_row.vue | 2 +- .../components/manifest_row.vue | 2 +- .../components/details/artifacts_list_row.vue | 6 +- .../components/list/harbor_list_row.vue | 2 +- .../components/details/version_row.vue | 2 +- .../components/list/package_list_row.vue | 2 +- .../shared/components/package_tags.vue | 2 +- .../shared/components/registry_list.vue | 2 +- .../permissions/components/settings_panel.vue | 4 +- .../components/detailed_metric.vue | 6 +- .../components/snippets/snippet_row.vue | 2 +- .../profile/components/user_achievements.vue | 2 +- .../extensions_marketplace_warning.vue | 4 +- .../new_project_push_tip_popover.vue | 2 +- .../charts/components/pipeline_charts.vue | 2 +- .../settings/components/access_dropdown.vue | 2 +- .../components/related_issuable_input.vue | 2 +- .../components/related_issues_list.vue | 5 +- .../releases/components/tag_search.vue | 2 +- .../search/sidebar/components/app.vue | 2 +- .../components/archived_filter/index.vue | 2 +- .../sidebar/components/label_filter/index.vue | 2 +- .../components/language_filter/index.vue | 2 +- .../sidebar/components/radio_filter.vue | 2 +- .../components/searchable_dropdown.vue | 2 +- .../search/sidebar/constants/index.js | 2 +- .../components/assignees/assignee_title.vue | 2 +- .../assignees/user_name_with_status.vue | 2 +- .../components/crm_contacts/crm_contacts.vue | 2 +- .../components/date/sidebar_inherit_date.vue | 4 +- .../labels_select_vue/dropdown_title.vue | 2 +- .../components/participants/participants.vue | 2 +- .../components/reviewers/reviewer_title.vue | 2 +- .../components/sidebar_editable_item.vue | 2 +- .../time_tracking/spent_only_pane.vue | 2 +- .../components/time_tracking/time_tracker.vue | 2 +- .../snippets/components/snippet_header.vue | 2 +- .../components/snippet_visibility_edit.vue | 2 +- .../super_sidebar/components/help_center.vue | 2 +- .../components/organization_switcher.vue | 2 +- .../components/super_sidebar.vue | 2 +- .../components/user_menu_profile_item.vue | 2 +- .../components/timelog_source_cell.vue | 2 +- .../time_tracking/components/timelogs_app.vue | 2 +- .../components/sectioned_percentage_bar.vue | 2 +- .../storage_usage_overview_card.vue | 4 +- .../components/project_storage_app.vue | 4 +- .../components/project_storage_detail.vue | 2 +- .../user_lists/components/edit_user_list.vue | 2 +- .../user_lists/components/new_user_list.vue | 2 +- .../components/user_lists_table.vue | 2 +- app/assets/javascripts/users_select/index.js | 4 +- .../components/added_commit_message.vue | 8 +- .../components/approvals/approvals.vue | 2 +- .../approvals/approvals_summary.vue | 4 +- .../components/bold_text.vue | 2 +- .../components/deployment/deployment_list.vue | 2 +- .../components/mr_widget_pipeline.vue | 2 +- .../states/mr_widget_auto_merge_failed.vue | 2 +- .../states/mr_widget_failed_to_merge.vue | 10 +-- .../states/mr_widget_missing_branch.vue | 2 +- .../components/states/new_ready_to_merge.vue | 2 +- .../components/states/nothing_to_merge.vue | 2 +- .../components/widget/utils.js | 10 +-- .../components/alert_summary_row.vue | 2 +- .../components/diff_stats_dropdown.vue | 6 +- .../components/entity_select/group_select.vue | 2 +- .../list_selector/deploy_key_item.vue | 2 +- .../components/list_selector/group_item.vue | 2 +- .../components/list_selector/project_item.vue | 2 +- .../components/list_selector/user_item.vue | 2 +- .../markdown/comment_templates_modal.vue | 2 +- .../markdown/suggestion_diff_header.vue | 2 +- .../number_to_human_size.stories.js | 2 +- .../pagination_bar/pagination_bar.vue | 2 +- .../project_selector/project_selector.vue | 2 +- .../projects_list/projects_list_item.vue | 4 +- .../components/registry/list_item.vue | 2 +- .../components/registry/metadata_item.vue | 4 +- .../instructions/runner_aws_instructions.vue | 4 +- .../avatar_upload_dropzone.vue | 2 +- .../components/usage_quotas/usage_banner.vue | 2 +- .../components/user_popover/user_popover.vue | 4 +- .../components/user_select/user_select.vue | 4 +- .../vue_shared/components/web_ide_link.vue | 2 +- .../show/components/issuable_header.vue | 6 +- .../show/components/issuable_title.vue | 2 +- .../design_management_widget.vue | 2 +- .../design_version_dropdown.vue | 2 +- .../work_items/components/item_title.vue | 2 +- .../shared/work_item_link_child_contents.vue | 2 +- .../components/work_item_created_updated.vue | 2 +- .../components/work_item_drawer.vue | 49 ++++++++++++ .../components/work_item_due_date.vue | 2 +- .../work_item_add_relationship_form.vue | 2 +- .../work_item_relationship_list.vue | 2 +- .../work_items/components/work_item_title.vue | 2 +- app/assets/javascripts/work_items/utils.js | 8 ++ .../work_items_hierarchy/components/app.vue | 4 +- app/assets/stylesheets/page_bundles/wiki.scss | 21 +++++- app/graphql/resolvers/groups_resolver.rb | 2 + app/helpers/issues_helper.rb | 6 +- app/helpers/users/callouts_helper.rb | 5 -- app/models/ci/job_token/scope.rb | 8 +- app/models/project.rb | 7 ++ app/models/users/callout.rb | 2 +- app/policies/project_policy.rb | 9 +++ app/views/admin/dashboard/index.html.haml | 2 +- app/views/projects/edit.html.haml | 7 -- .../shared/wikis/_pages_wiki_page.html.haml | 5 +- .../shared/wikis/_wiki_directory.html.haml | 6 +- .../ci/create_downstream_pipeline_worker.rb | 2 + app/workers/create_pipeline_worker.rb | 2 + app/workers/delete_user_worker.rb | 2 + app/workers/group_destroy_worker.rb | 2 + app/workers/group_import_worker.rb | 2 + .../notification_service_worker.rb | 2 + .../merge_requests/create_pipeline_worker.rb | 2 + app/workers/merge_worker.rb | 2 + app/workers/new_merge_request_worker.rb | 2 + app/workers/project_destroy_worker.rb | 2 + app/workers/repository_import_worker.rb | 2 + app/workers/update_merge_requests_worker.rb | 2 + config/tailwind.config.js | 12 --- ...token_allowed_to_project_ci_cd_settings.rb | 10 +++ db/schema_migrations/20240506164707 | 1 + db/structure.sql | 3 +- doc/api/graphql/reference/index.md | 6 +- doc/development/secure_coding_guidelines.md | 8 ++ doc/security/identity_verification.md | 55 +++++++++++++- doc/user/analytics/value_streams_dashboard.md | 2 +- doc/user/gitlab_duo_chat_examples.md | 2 +- .../packages/composer_repository/index.md | 6 +- .../delete_container_registry_images.md | 2 +- .../reduce_container_registry_storage.md | 7 +- doc/user/packages/debian_repository/index.md | 8 +- doc/user/packages/generic_packages/index.md | 16 ++-- doc/user/packages/helm_repository/index.md | 4 +- .../dependency_proxy/index.md | 4 +- .../supported_package_managers.md | 26 +++---- .../img/issue_boards_multiple_v17_1.png | Bin 12860 -> 12437 bytes keeps/quarantine_flaky_tests.rb | 23 +++++- lib/gitlab/auth.rb | 1 + lib/gitlab/git_access.rb | 10 ++- .../query_limiting/sidekiq_middleware.rb | 26 +++++++ lib/gitlab/query_limiting/transaction.rb | 4 +- locale/gitlab.pot | 9 --- rubocop/cop/experiments_test_coverage.rb | 10 +-- scripts/frontend/lib/tailwind_migration.mjs | 15 ++-- spec/features/issuables/issuable_list_spec.rb | 2 +- .../__snapshots__/alerts_form_spec.js.snap | 2 +- .../list/__snapshots__/item_spec.js.snap | 4 +- .../toolbar/__snapshots__/index_spec.js.snap | 2 +- .../diffs/components/diff_file_row_spec.js | 2 +- .../findings_drawer_spec.js.snap | 32 ++++---- .../environments/environment_folder_spec.js | 4 +- .../environments/new_environment_item_spec.js | 4 +- .../shared/commit_message_field_spec.js | 4 +- .../list/components/issues_list_app_spec.js | 47 +++++------- .../__snapshots__/type_popover_spec.js.snap | 4 +- .../group_item_name_spec.js.snap | 2 +- .../components/model_create_spec.js | 6 ++ .../notebook/cells/output/dataframe_spec.js | 2 +- .../cells/output/dataframe_util_spec.js | 6 +- .../package_list_row_spec.js.snap | 2 +- .../package_list_row_spec.js.snap | 2 +- .../snippet_visibility_edit_spec.js.snap | 6 +- .../new_ready_to_merge_spec.js.snap | 4 +- .../components/widget/utils_spec.js | 12 +-- .../components/work_item_drawer_spec.js | 57 ++++++++++++++ .../work_item_relationship_list_spec.js.snap | 2 +- spec/frontend/work_items/utils_spec.js | 12 ++- spec/lib/gitlab/git_access_spec.rb | 65 ++++++++++++++++ .../query_limiting/sidekiq_middleware_spec.rb | 48 ++++++++++++ .../gitlab/query_limiting/transaction_spec.rb | 12 +++ spec/models/ci/job_token/scope_spec.rb | 16 ++++ spec/models/project_spec.rb | 7 ++ spec/policies/project_policy_spec.rb | 63 ++++++++++++++++ spec/requests/api/project_attributes.yml | 1 + spec/requests/git_http_spec.rb | 8 +- .../cop/experiments_test_coverage_spec.rb | 54 ++++++++++---- spec/spec_helper.rb | 3 +- spec/support/rspec_order_todo.yml | 1 - spec/support/sidekiq_middleware.rb | 13 ---- .../shared/_signup_box.html.haml_spec.rb | 47 ------------ .../shared/_signup_box_form.html.haml_spec.rb | 70 ++++++++++++++++++ .../generate_distribution_worker_spec.rb | 2 +- 275 files changed, 1039 insertions(+), 569 deletions(-) create mode 100644 app/assets/javascripts/work_items/components/work_item_drawer.vue create mode 100644 db/migrate/20240506164707_add_push_repository_for_job_token_allowed_to_project_ci_cd_settings.rb create mode 100644 db/schema_migrations/20240506164707 create mode 100644 lib/gitlab/query_limiting/sidekiq_middleware.rb create mode 100644 spec/frontend/work_items/components/work_item_drawer_spec.js create mode 100644 spec/lib/gitlab/query_limiting/sidekiq_middleware_spec.rb create mode 100644 spec/views/devise/shared/_signup_box_form.html.haml_spec.rb diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 935911e9273..9195f6a810b 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -113,7 +113,7 @@ .if-merge-request-labels-run-praefect-with-db: &if-merge-request-labels-run-praefect-with-db if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-praefect-with-db/' -.if-merge-request-labels-run-run-without-gitaly-transactions: &if-merge-request-labels-run-run-without-gitaly-transactions +.if-merge-request-labels-run-without-gitaly-transactions: &if-merge-request-labels-run-without-gitaly-transactions if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /run-without-gitaly-transactions/' .if-security-merge-request: &if-security-merge-request @@ -2010,7 +2010,7 @@ .rails:rules:gitaly-without-transactions: rules: - <<: *if-schedule-maintenance - - <<: *if-merge-request-labels-run-run-without-gitaly-transactions + - <<: *if-merge-request-labels-run-without-gitaly-transactions .rails:rules:ee-and-foss-migration: rules: diff --git a/.rubocop_todo/cop/experiments_test_coverage.yml b/.rubocop_todo/cop/experiments_test_coverage.yml index 9d3594f1d48..f733851a80e 100644 --- a/.rubocop_todo/cop/experiments_test_coverage.yml +++ b/.rubocop_todo/cop/experiments_test_coverage.yml @@ -3,4 +3,3 @@ Cop/ExperimentsTestCoverage: Exclude: - 'app/controllers/groups/boards_controller.rb' - 'app/controllers/projects/boards_controller.rb' - - 'app/views/devise/shared/_signup_box_form.html.haml' diff --git a/.rubocop_todo/gitlab/avoid_gitlab_instance_checks.yml b/.rubocop_todo/gitlab/avoid_gitlab_instance_checks.yml index 68504739c18..c6952a27624 100644 --- a/.rubocop_todo/gitlab/avoid_gitlab_instance_checks.yml +++ b/.rubocop_todo/gitlab/avoid_gitlab_instance_checks.yml @@ -117,7 +117,6 @@ Gitlab/AvoidGitlabInstanceChecks: - 'ee/lib/gitlab/manual_quarterly_co_term_banner.rb' - 'ee/lib/gitlab/sitemaps/generator.rb' - 'ee/lib/sidebars/user_settings/menus/profile_billing_menu.rb' - - 'ee/lib/tasks/gitlab/elastic.rake' - 'ee/spec/factories/gitlab_subscriptions.rb' - 'lib/container_registry/client.rb' - 'lib/container_registry/gitlab_api_client.rb' diff --git a/.rubocop_todo/gitlab/bounded_contexts.yml b/.rubocop_todo/gitlab/bounded_contexts.yml index 4faa2028c2e..de259709f91 100644 --- a/.rubocop_todo/gitlab/bounded_contexts.yml +++ b/.rubocop_todo/gitlab/bounded_contexts.yml @@ -2348,6 +2348,7 @@ Gitlab/BoundedContexts: - 'ee/app/graphql/ee/resolvers/project_pipeline_resolver.rb' - 'ee/app/graphql/ee/resolvers/project_pipelines_resolver.rb' - 'ee/app/graphql/ee/resolvers/projects_resolver.rb' + - 'ee/app/graphql/ee/resolvers/groups_resolver.rb' - 'ee/app/graphql/ee/resolvers/validate_codeowner_file_resolver.rb' - 'ee/app/graphql/ee/resolvers/work_items_resolver.rb' - 'ee/app/graphql/ee/types/access_level_enum.rb' diff --git a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml index 77ba3ac5887..974f712b4e3 100644 --- a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml +++ b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml @@ -291,7 +291,6 @@ Layout/LineEndStringConcatenationIndentation: - 'ee/lib/system_check/geo/clocks_synchronization_check.rb' - 'ee/lib/system_check/geo/ssh_port_check.rb' - 'ee/lib/tasks/gitlab/custom_roles/check_docs_task.rb' - - 'ee/lib/tasks/gitlab/elastic.rake' - 'ee/lib/tasks/gitlab/geo.rake' - 'ee/spec/components/namespaces/block_seat_overages/alert_component_spec.rb' - 'ee/spec/components/namespaces/combined_storage_users/non_owner_alert_component_spec.rb' diff --git a/.rubocop_todo/style/inline_disable_annotation.yml b/.rubocop_todo/style/inline_disable_annotation.yml index 3d5c0ae69eb..83e92294fbe 100644 --- a/.rubocop_todo/style/inline_disable_annotation.yml +++ b/.rubocop_todo/style/inline_disable_annotation.yml @@ -1856,7 +1856,6 @@ Style/InlineDisableAnnotation: - 'ee/lib/quality/seeders/vulnerabilities.rb' - 'ee/lib/system_check/geo/authorized_keys_check.rb' - 'ee/lib/tasks/geo.rake' - - 'ee/lib/tasks/gitlab/elastic.rake' - 'ee/locale/unfound_translations.rb' - 'ee/spec/controllers/concerns/gitlab_subscriptions/seat_count_alert_spec.rb' - 'ee/spec/controllers/concerns/routable_actions_spec.rb' diff --git a/app/assets/javascripts/abuse_reports/components/links_to_spam_input.vue b/app/assets/javascripts/abuse_reports/components/links_to_spam_input.vue index 02fe131553c..f0c0c5800c7 100644 --- a/app/assets/javascripts/abuse_reports/components/links_to_spam_input.vue +++ b/app/assets/javascripts/abuse_reports/components/links_to_spam_input.vue @@ -43,7 +43,7 @@ export default {
{{ $options.i18n.label }}
-
+
{{ $options.i18n.description }}
diff --git a/app/assets/javascripts/achievements/components/achievements_form.vue b/app/assets/javascripts/achievements/components/achievements_form.vue index 57099ad038a..49c162e9ce0 100644 --- a/app/assets/javascripts/achievements/components/achievements_form.vue +++ b/app/assets/javascripts/achievements/components/achievements_form.vue @@ -216,7 +216,7 @@ export default { @close="close(false)" > diff --git a/app/assets/javascripts/admin/abuse_report/components/report_actions.vue b/app/assets/javascripts/admin/abuse_report/components/report_actions.vue index 3e9cc36b8b2..7463bbb559e 100644 --- a/app/assets/javascripts/admin/abuse_report/components/report_actions.vue +++ b/app/assets/javascripts/admin/abuse_report/components/report_actions.vue @@ -147,7 +147,7 @@ export default { @close="toggleActionsDrawer" >