From 8d43de1d2fe26692d5267de363c0638309663755 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 27 Jan 2025 18:36:28 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .rubocop_todo/rails/output_safety.yml | 1 - .rubocop_todo/rspec/be_empty.yml | 1 - .rubocop_todo/rspec/be_eq.yml | 2 - .rubocop_todo/rspec/context_wording.yml | 1 - .../rspec/factory_bot/avoid_create.yml | 2 - .rubocop_todo/rspec/feature_category.yml | 2 - .rubocop_todo/rspec/verified_doubles.yml | 1 - .../wikis/components/wiki_more_dropdown.vue | 1 + .../todos/components/todos_filter_bar.vue | 8 +- .../groups_list/groups_list_item.vue | 2 +- .../projects_list/projects_list_item.vue | 3 +- .../components/resource_lists/list_item.vue | 7 +- .../concerns/projects/look_ahead_preloads.rb | 29 +++ .../user_contributed_projects_resolver.rb | 8 +- app/graphql/resolvers/projects_resolver.rb | 16 +- .../user_starred_projects_resolver.rb | 8 +- app/helpers/todos_helper.rb | 170 -------------- app/models/ci/build.rb | 49 +---- app/models/ci/build_tag.rb | 7 + app/models/ci/pipeline.rb | 4 +- app/models/ci/runner.rb | 43 +--- app/models/ci/runner_tagging.rb | 6 + app/models/ci/tag.rb | 9 +- app/models/concerns/ci/taggable.rb | 50 +---- app/models/concerns/taggable_queries.rb | 14 +- app/models/work_item.rb | 2 +- app/services/audit_event_service.rb | 3 +- app/services/audit_events/build_service.rb | 5 +- app/validators/rsa_key_validator.rb | 10 +- .../groups/settings/_permissions.html.haml | 2 +- .../cloud_connector_keys.yml | 12 + .../{wip => beta}/your_work_projects_vue.yml | 2 +- ..._sql_functions_for_primary_key_lookups.yml | 2 +- ...ill_merge_request_reviewers_project_id.yml | 2 +- ...ine_variables_from_ci_trigger_requests.yml | 8 + .../backfill_security_policies.yml | 2 +- .../skip_company_onboarding_step.yml | 2 +- ..._connector_keys_to_application_settings.rb | 9 + ...0250123100054_seed_cloud_connector_keys.rb | 33 +++ ...707_finalize_backfill_security_policies.rb | 24 ++ ...fill_merge_request_reviewers_project_id.rb | 21 ++ ...line_variables_from_ci_trigger_requests.rb | 24 ++ ...7_finalize_skip_company_onboarding_step.rb | 21 ++ db/schema_migrations/20241210081707 | 1 + db/schema_migrations/20250108232951 | 1 + db/schema_migrations/20250113064942 | 1 + db/schema_migrations/20250122193107 | 1 + db/schema_migrations/20250123100033 | 1 + db/schema_migrations/20250123100054 | 1 + db/structure.sql | 1 + doc/api/graphql/reference/index.md | 20 ++ .../cells/application_settings_analysis.md | 9 +- .../deprecation_guidelines/index.md | 35 ++- doc/development/secure_coding_guidelines.md | 196 ++++++++++++++++- .../dashboards/index.md | 4 +- .../secret_push_protection/index.md | 2 + doc/user/group/moderate_users.md | 2 + .../infrastructure/iac/terraform_state.md | 2 +- doc/user/profile/service_accounts.md | 2 +- lib/gitlab/audit/auditor.rb | 10 +- lib/gitlab/audit/scope_validation.rb | 22 ++ ...line_variables_from_ci_trigger_requests.rb | 71 ++++++ lib/gitlab/ci/tags/bulk_insert.rb | 16 +- .../issue_and_merge_request_actions.rb | 31 ++- locale/gitlab.pot | 32 ++- qa/qa/page/dashboard/projects.rb | 15 ++ .../project/invite_group_to_project_spec.rb | 1 + .../project/project_owner_permissions_spec.rb | 2 + spec/features/dashboard/projects_spec.rb | 2 +- .../groups_list/groups_list_item_spec.js | 2 +- .../projects_list/projects_list_item_spec.js | 8 +- .../resource_lists/list_item_spec.js | 10 + spec/helpers/todos_helper_spec.rb | 208 ------------------ spec/lib/gitlab/audit/auditor_spec.rb | 11 - ...variables_from_ci_trigger_requests_spec.rb | 119 ++++++++++ spec/lib/gitlab/ci/tags/bulk_insert_spec.rb | 102 +-------- ...variables_from_ci_trigger_requests_spec.rb | 26 +++ ...23100054_seed_cloud_connector_keys_spec.rb | 21 ++ spec/models/ci/build_spec.rb | 20 +- spec/models/ci/processable_spec.rb | 2 +- spec/models/ci/runner_spec.rb | 40 +--- spec/models/ci/runner_tagging_spec.rb | 4 +- spec/models/ci/tag_spec.rb | 11 +- spec/models/concerns/ci/taggable_spec.rb | 95 +++++--- spec/models/work_item_spec.rb | 2 +- .../user/contributed_projects_query_spec.rb | 26 +++ .../user/starred_projects_query_spec.rb | 26 +++ spec/services/audit_event_service_spec.rb | 38 +++- .../audit_events/build_service_spec.rb | 47 +++- ...date_project_runners_owner_service_spec.rb | 2 +- .../quick_actions/interpret_service_spec.rb | 30 ++- spec/support/rspec_order_todo.yml | 2 - spec/validators/rsa_key_validator_spec.rb | 25 ++- 93 files changed, 1123 insertions(+), 863 deletions(-) create mode 100644 app/graphql/resolvers/concerns/projects/look_ahead_preloads.rb delete mode 100644 app/helpers/todos_helper.rb create mode 100644 config/application_setting_columns/cloud_connector_keys.yml rename config/feature_flags/{wip => beta}/your_work_projects_vue.yml (96%) create mode 100644 db/docs/batched_background_migrations/backfill_p_ci_pipeline_variables_from_ci_trigger_requests.yml create mode 100644 db/migrate/20250123100033_add_cloud_connector_keys_to_application_settings.rb create mode 100644 db/migrate/20250123100054_seed_cloud_connector_keys.rb create mode 100644 db/post_migrate/20241210081707_finalize_backfill_security_policies.rb create mode 100644 db/post_migrate/20250108232951_finalize_backfill_merge_request_reviewers_project_id.rb create mode 100644 db/post_migrate/20250113064942_queue_backfill_p_ci_pipeline_variables_from_ci_trigger_requests.rb create mode 100644 db/post_migrate/20250122193107_finalize_skip_company_onboarding_step.rb create mode 100644 db/schema_migrations/20241210081707 create mode 100644 db/schema_migrations/20250108232951 create mode 100644 db/schema_migrations/20250113064942 create mode 100644 db/schema_migrations/20250122193107 create mode 100644 db/schema_migrations/20250123100033 create mode 100644 db/schema_migrations/20250123100054 create mode 100644 lib/gitlab/audit/scope_validation.rb create mode 100644 lib/gitlab/background_migration/backfill_p_ci_pipeline_variables_from_ci_trigger_requests.rb delete mode 100644 spec/helpers/todos_helper_spec.rb create mode 100644 spec/lib/gitlab/background_migration/backfill_p_ci_pipeline_variables_from_ci_trigger_requests_spec.rb create mode 100644 spec/migrations/20250113064942_queue_backfill_p_ci_pipeline_variables_from_ci_trigger_requests_spec.rb create mode 100644 spec/migrations/20250123100054_seed_cloud_connector_keys_spec.rb diff --git a/.rubocop_todo/rails/output_safety.yml b/.rubocop_todo/rails/output_safety.yml index cbcf1591b36..95a9de4e332 100644 --- a/.rubocop_todo/rails/output_safety.yml +++ b/.rubocop_todo/rails/output_safety.yml @@ -31,7 +31,6 @@ Rails/OutputSafety: - 'app/helpers/sidebars_helper.rb' - 'app/helpers/tags_helper.rb' - 'app/helpers/timeboxes_helper.rb' - - 'app/helpers/todos_helper.rb' - 'app/helpers/version_check_helper.rb' - 'app/helpers/visibility_level_helper.rb' - 'app/mailers/notify.rb' diff --git a/.rubocop_todo/rspec/be_empty.yml b/.rubocop_todo/rspec/be_empty.yml index 68e4116f28e..a836b97d9b7 100644 --- a/.rubocop_todo/rspec/be_empty.yml +++ b/.rubocop_todo/rspec/be_empty.yml @@ -14,7 +14,6 @@ RSpec/BeEmpty: - 'spec/helpers/dashboard_helper_spec.rb' - 'spec/helpers/nav/new_dropdown_helper_spec.rb' - 'spec/helpers/preferences_helper_spec.rb' - - 'spec/helpers/todos_helper_spec.rb' - 'spec/helpers/users_helper_spec.rb' - 'spec/lib/click_house/iterator_spec.rb' - 'spec/lib/gitlab/checks/changes_access_spec.rb' diff --git a/.rubocop_todo/rspec/be_eq.yml b/.rubocop_todo/rspec/be_eq.yml index edf2c2546b4..70630feb284 100644 --- a/.rubocop_todo/rspec/be_eq.yml +++ b/.rubocop_todo/rspec/be_eq.yml @@ -66,7 +66,6 @@ RSpec/BeEq: - 'ee/spec/helpers/ee/namespace_user_cap_reached_alert_helper_spec.rb' - 'ee/spec/helpers/ee/protected_branches_helper_spec.rb' - 'ee/spec/helpers/ee/security_orchestration_helper_spec.rb' - - 'ee/spec/helpers/ee/todos_helper_spec.rb' - 'ee/spec/helpers/ee/users/callouts_helper_spec.rb' - 'ee/spec/helpers/gitlab_subscriptions/upcoming_reconciliation_helper_spec.rb' - 'ee/spec/helpers/kerberos_helper_spec.rb' @@ -657,7 +656,6 @@ RSpec/BeEq: - 'spec/helpers/recaptcha_helper_spec.rb' - 'spec/helpers/stat_anchors_helper_spec.rb' - 'spec/helpers/time_zone_helper_spec.rb' - - 'spec/helpers/todos_helper_spec.rb' - 'spec/helpers/users/group_callouts_helper_spec.rb' - 'spec/helpers/users_helper_spec.rb' - 'spec/helpers/web_hooks/web_hooks_helper_spec.rb' diff --git a/.rubocop_todo/rspec/context_wording.yml b/.rubocop_todo/rspec/context_wording.yml index 597f2a64dfd..9d7eb7d89f5 100644 --- a/.rubocop_todo/rspec/context_wording.yml +++ b/.rubocop_todo/rspec/context_wording.yml @@ -1331,7 +1331,6 @@ RSpec/ContextWording: - 'spec/helpers/routing/pseudonymization_helper_spec.rb' - 'spec/helpers/submodule_helper_spec.rb' - 'spec/helpers/timeboxes_helper_spec.rb' - - 'spec/helpers/todos_helper_spec.rb' - 'spec/helpers/tree_helper_spec.rb' - 'spec/helpers/users_helper_spec.rb' - 'spec/helpers/web_hooks/web_hooks_helper_spec.rb' diff --git a/.rubocop_todo/rspec/factory_bot/avoid_create.yml b/.rubocop_todo/rspec/factory_bot/avoid_create.yml index a16979a2e9a..a8cea6738dc 100644 --- a/.rubocop_todo/rspec/factory_bot/avoid_create.yml +++ b/.rubocop_todo/rspec/factory_bot/avoid_create.yml @@ -43,7 +43,6 @@ RSpec/FactoryBot/AvoidCreate: - 'ee/spec/helpers/ee/releases_helper_spec.rb' - 'ee/spec/helpers/ee/security_orchestration_helper_spec.rb' - 'ee/spec/helpers/ee/subscribable_banner_helper_spec.rb' - - 'ee/spec/helpers/ee/todos_helper_spec.rb' - 'ee/spec/helpers/ee/users/callouts_helper_spec.rb' - 'ee/spec/helpers/ee/wiki_helper_spec.rb' - 'ee/spec/helpers/epics_helper_spec.rb' @@ -300,7 +299,6 @@ RSpec/FactoryBot/AvoidCreate: - 'spec/helpers/storage_helper_spec.rb' - 'spec/helpers/submodule_helper_spec.rb' - 'spec/helpers/timeboxes_helper_spec.rb' - - 'spec/helpers/todos_helper_spec.rb' - 'spec/helpers/tree_helper_spec.rb' - 'spec/helpers/users/callouts_helper_spec.rb' - 'spec/helpers/users/group_callouts_helper_spec.rb' diff --git a/.rubocop_todo/rspec/feature_category.yml b/.rubocop_todo/rspec/feature_category.yml index 7d460430d69..44d324ff6b7 100644 --- a/.rubocop_todo/rspec/feature_category.yml +++ b/.rubocop_todo/rspec/feature_category.yml @@ -380,7 +380,6 @@ RSpec/FeatureCategory: - 'ee/spec/helpers/ee/sorting_helper_spec.rb' - 'ee/spec/helpers/ee/subscribable_banner_helper_spec.rb' - 'ee/spec/helpers/ee/system_note_helper_spec.rb' - - 'ee/spec/helpers/ee/todos_helper_spec.rb' - 'ee/spec/helpers/ee/users/callouts_helper_spec.rb' - 'ee/spec/helpers/epics_helper_spec.rb' - 'ee/spec/helpers/gitlab_subscriptions/upcoming_reconciliation_helper_spec.rb' @@ -1822,7 +1821,6 @@ RSpec/FeatureCategory: - 'spec/helpers/tab_helper_spec.rb' - 'spec/helpers/time_helper_spec.rb' - 'spec/helpers/time_zone_helper_spec.rb' - - 'spec/helpers/todos_helper_spec.rb' - 'spec/helpers/tracking_helper_spec.rb' - 'spec/helpers/users/group_callouts_helper_spec.rb' - 'spec/helpers/version_check_helper_spec.rb' diff --git a/.rubocop_todo/rspec/verified_doubles.yml b/.rubocop_todo/rspec/verified_doubles.yml index 33e1404a449..ca559f25436 100644 --- a/.rubocop_todo/rspec/verified_doubles.yml +++ b/.rubocop_todo/rspec/verified_doubles.yml @@ -268,7 +268,6 @@ RSpec/VerifiedDoubles: - 'spec/helpers/routing/pseudonymization_helper_spec.rb' - 'spec/helpers/sorting_helper_spec.rb' - 'spec/helpers/submodule_helper_spec.rb' - - 'spec/helpers/todos_helper_spec.rb' - 'spec/helpers/version_check_helper_spec.rb' - 'spec/initializers/doorkeeper_spec.rb' - 'spec/initializers/global_id_spec.rb' diff --git a/app/assets/javascripts/pages/shared/wikis/components/wiki_more_dropdown.vue b/app/assets/javascripts/pages/shared/wikis/components/wiki_more_dropdown.vue index d8ef8efb2a4..222e05a1aef 100644 --- a/app/assets/javascripts/pages/shared/wikis/components/wiki_more_dropdown.vue +++ b/app/assets/javascripts/pages/shared/wikis/components/wiki_more_dropdown.vue @@ -103,6 +103,7 @@ export default { value); -/** - * The IDs must match the ones defined in the `todo_actions_options` method in - * `app/helpers/todos_helper.rb`. - */ export const TARGET_TYPES = [ { // eslint-disable-next-line @gitlab/require-i18n-strings @@ -71,7 +67,7 @@ export const TARGET_TYPES = [ title: s__('Todos|Issue'), }, { - id: 'WorkItem', // Note: This ID has no equivalent in `app/helpers/todos_helper.rb`. + id: 'WorkItem', value: TODO_TARGET_TYPE_WORK_ITEM, title: s__('Todos|Work item'), }, @@ -92,7 +88,7 @@ export const TARGET_TYPES = [ }, { // eslint-disable-next-line @gitlab/require-i18n-strings - id: 'Epic', // Note: This ID has no equivalent in `app/helpers/todos_helper.rb`. + id: 'Epic', value: TODO_TARGET_TYPE_EPIC, title: s__('Todos|Epic'), }, diff --git a/app/assets/javascripts/vue_shared/components/groups_list/groups_list_item.vue b/app/assets/javascripts/vue_shared/components/groups_list/groups_list_item.vue index f91078d64e5..4b6c0239bfa 100644 --- a/app/assets/javascripts/vue_shared/components/groups_list/groups_list_item.vue +++ b/app/assets/javascripts/vue_shared/components/groups_list/groups_list_item.vue @@ -134,7 +134,7 @@ export default { :name="visibilityIcon" variant="subtle" /> - {{ + {{ accessLevelLabel }} diff --git a/app/assets/javascripts/vue_shared/components/projects_list/projects_list_item.vue b/app/assets/javascripts/vue_shared/components/projects_list/projects_list_item.vue index 2e39daeb23a..e63e694dc66 100644 --- a/app/assets/javascripts/vue_shared/components/projects_list/projects_list_item.vue +++ b/app/assets/javascripts/vue_shared/components/projects_list/projects_list_item.vue @@ -227,6 +227,7 @@ export default { icon-name="project" :timestamp-type="timestampType" :data-testid="dataTestid" + content-testid="project-content" > diff --git a/app/assets/javascripts/vue_shared/components/resource_lists/list_item.vue b/app/assets/javascripts/vue_shared/components/resource_lists/list_item.vue index c6411acafae..457c3eff9fc 100644 --- a/app/assets/javascripts/vue_shared/components/resource_lists/list_item.vue +++ b/app/assets/javascripts/vue_shared/components/resource_lists/list_item.vue @@ -65,6 +65,11 @@ export default { return TIMESTAMP_TYPES.includes(value); }, }, + contentTestid: { + type: String, + required: false, + default: null, + }, }, computed: { statsPadding() { @@ -89,7 +94,7 @@ export default {