diff --git a/.eslint_todo/vue-no-unused-properties.mjs b/.eslint_todo/vue-no-unused-properties.mjs index 1d1e8ddd48e..81f0b2cbcf8 100644 --- a/.eslint_todo/vue-no-unused-properties.mjs +++ b/.eslint_todo/vue-no-unused-properties.mjs @@ -408,25 +408,6 @@ export default { 'ee/app/assets/javascripts/roadmap/components/roadmap_filters.vue', 'ee/app/assets/javascripts/roadmap/components/roadmap_shell.vue', 'ee/app/assets/javascripts/roadmap/components/roadmap_timeline_section.vue', - 'ee/app/assets/javascripts/security_configuration/components/configuration_page_layout.vue', - 'ee/app/assets/javascripts/security_configuration/components/configuration_snippet_modal.vue', - 'ee/app/assets/javascripts/security_configuration/components/container_scanning_for_registry_feature_card.vue', - 'ee/app/assets/javascripts/security_configuration/corpus_management/components/corpus_upload_button.vue', - 'ee/app/assets/javascripts/security_configuration/dast_pre_scan_verification/components/pre_scan_verification_alert.vue', - 'ee/app/assets/javascripts/security_configuration/dast_profiles/components/base_dast_profile_form.vue', - 'ee/app/assets/javascripts/security_configuration/dast_profiles/components/dast_profiles_list.vue', - 'ee/app/assets/javascripts/security_configuration/dast_profiles/components/dast_site_profiles_list.vue', - 'ee/app/assets/javascripts/security_configuration/dast_profiles/components/dast_variables_form_group.vue', - 'ee/app/assets/javascripts/security_configuration/dast_profiles/components/dast_variables_modal.vue', - 'ee/app/assets/javascripts/security_configuration/dast_profiles/dast_profile_selector/site_profile_summary.vue', - 'ee/app/assets/javascripts/security_configuration/dast_profiles/dast_profiles_configurator/dast_profiles_configurator.vue', - 'ee/app/assets/javascripts/security_configuration/dast_profiles/dast_scanner_profiles/components/dast_scanner_profile_form.vue', - 'ee/app/assets/javascripts/security_configuration/dast_profiles/dast_site_profiles/components/dast_site_profile_form.vue', - 'ee/app/assets/javascripts/security_configuration/dast_site_validation/components/dast_site_validation_modal.vue', - 'ee/app/assets/javascripts/security_configuration/dast_site_validation/components/dast_site_validation_revoke_modal.vue', - 'ee/app/assets/javascripts/security_configuration/sast/components/app.vue', - 'ee/app/assets/javascripts/security_configuration/secret_detection/components/exclusion_delete_modal.vue', - 'ee/app/assets/javascripts/security_configuration/secret_detection/components/exclusion_form_drawer.vue', 'ee/app/assets/javascripts/security_dashboard/components/agent/agent_vulnerability_report.vue', 'ee/app/assets/javascripts/security_dashboard/components/pipeline/pipeline_vulnerability_report.vue', 'ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_finding_modal.vue', diff --git a/.rubocop_todo/gitlab/feature_flag_without_actor.yml b/.rubocop_todo/gitlab/feature_flag_without_actor.yml index e7e93414ec3..6b34ecab425 100644 --- a/.rubocop_todo/gitlab/feature_flag_without_actor.yml +++ b/.rubocop_todo/gitlab/feature_flag_without_actor.yml @@ -109,8 +109,6 @@ Gitlab/FeatureFlagWithoutActor: - 'ee/lib/gitlab/llm/tanuki_bot.rb' - 'ee/lib/gitlab/search/zoekt/client.rb' - 'ee/lib/gitlab/usage_data_counters/epic_activity_unique_counter.rb' - - 'ee/lib/gitlab_subscriptions/billable_users_utils.rb' - - 'ee/lib/gitlab_subscriptions/member_management/promotion_management_utils.rb' - 'ee/lib/search/zoekt/circuit_breaker.rb' - 'ee/spec/lib/gitlab/product_analytics/developments/setup_spec.rb' - 'ee/spec/models/gitlab_subscriptions/features_spec.rb' diff --git a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml index cc68aacf900..3cb9680a461 100644 --- a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml +++ b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml @@ -589,7 +589,6 @@ Layout/LineEndStringConcatenationIndentation: - 'spec/support/helpers/stub_gitlab_calls.rb' - 'spec/support/matchers/have_gitlab_http_status.rb' - 'spec/support/permissions_check.rb' - - 'spec/support/rspec_run_time.rb' - 'spec/support/shared_examples/features/inviting_members_shared_examples.rb' - 'spec/support/shared_examples/features/project_upload_files_shared_examples.rb' - 'spec/support/shared_examples/features/value_streams_dashboard_shared_examples.rb' diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml index bde2d040eb4..29bef23974f 100644 --- a/.rubocop_todo/layout/line_length.yml +++ b/.rubocop_todo/layout/line_length.yml @@ -668,7 +668,6 @@ Layout/LineLength: - 'ee/app/services/ee/groups/import_export/import_service.rb' - 'ee/app/services/ee/groups/update_service.rb' - 'ee/app/services/ee/ip_restrictions/update_service.rb' - - 'ee/app/services/ee/issuable/common_system_notes_service.rb' - 'ee/app/services/ee/issues/base_service.rb' - 'ee/app/services/ee/issues/clone_service.rb' - 'ee/app/services/ee/merge_requests/merge_base_service.rb' @@ -803,7 +802,6 @@ Layout/LineLength: - 'ee/lib/ee/api/entities/application_setting.rb' - 'ee/lib/ee/api/entities/dependency.rb' - 'ee/lib/ee/api/entities/epic.rb' - - 'ee/lib/ee/api/entities/group.rb' - 'ee/lib/ee/api/entities/member.rb' - 'ee/lib/ee/api/entities/namespace.rb' - 'ee/lib/ee/api/entities/project.rb' diff --git a/.rubocop_todo/lint/safe_navigation_consistency.yml b/.rubocop_todo/lint/safe_navigation_consistency.yml deleted file mode 100644 index 8eb302a2894..00000000000 --- a/.rubocop_todo/lint/safe_navigation_consistency.yml +++ /dev/null @@ -1 +0,0 @@ -# Empty after resolving Lint/SafeNavigationConsistency diff --git a/.rubocop_todo/lint/unused_method_argument.yml b/.rubocop_todo/lint/unused_method_argument.yml index 433485094a3..6bd9efc80db 100644 --- a/.rubocop_todo/lint/unused_method_argument.yml +++ b/.rubocop_todo/lint/unused_method_argument.yml @@ -171,7 +171,6 @@ Lint/UnusedMethodArgument: - 'app/workers/gitlab/jira_import/import_issue_worker.rb' - 'app/workers/issues/rebalancing_worker.rb' - 'app/workers/personal_access_tokens/expired_notification_worker.rb' - - 'app/workers/projects/inactive_projects_deletion_cron_worker.rb' - 'app/workers/projects/refresh_build_artifacts_size_statistics_worker.rb' - 'config/initializers/00_active_record_disable_joins.rb' - 'config/initializers/active_record_table_definition.rb' diff --git a/.rubocop_todo/rails/date.yml b/.rubocop_todo/rails/date.yml index 0f34f37d845..82c1d0457eb 100644 --- a/.rubocop_todo/rails/date.yml +++ b/.rubocop_todo/rails/date.yml @@ -91,7 +91,6 @@ Rails/Date: - 'ee/spec/requests/gitlab_subscriptions/api/internal/users_spec.rb' - 'ee/spec/requests/groups/settings/access_tokens_controller_spec.rb' - 'ee/spec/requests/projects/settings/access_tokens_controller_spec.rb' - - 'ee/spec/serializers/ee/group_child_entity_spec.rb' - 'ee/spec/services/app_sec/dast/profile_schedules/audit/update_service_spec.rb' - 'ee/spec/services/audit_event_service_spec.rb' - 'ee/spec/services/ci/minutes/additional_packs/create_service_spec.rb' diff --git a/.rubocop_todo/rake/require.yml b/.rubocop_todo/rake/require.yml index 9b4b0b9cc3b..24bb67e63fd 100644 --- a/.rubocop_todo/rake/require.yml +++ b/.rubocop_todo/rake/require.yml @@ -6,7 +6,6 @@ Rake/Require: - 'lib/tasks/contracts/pipeline_schedules.rake' - 'lib/tasks/contracts/pipelines.rake' - 'lib/tasks/gitlab/artifacts/migrate.rake' - - 'lib/tasks/gitlab/backup.rake' - 'lib/tasks/gitlab/docs/redirect.rake' - 'lib/tasks/gitlab/graphql.rake' - 'lib/tasks/gitlab/lfs/migrate.rake' diff --git a/.rubocop_todo/rake/top_level_method_definition.yml b/.rubocop_todo/rake/top_level_method_definition.yml index 966563a410e..5f044e637e0 100644 --- a/.rubocop_todo/rake/top_level_method_definition.yml +++ b/.rubocop_todo/rake/top_level_method_definition.yml @@ -17,7 +17,6 @@ Rake/TopLevelMethodDefinition: - 'lib/tasks/gettext.rake' - 'lib/tasks/gitlab/assets.rake' - 'lib/tasks/gitlab/background_migrations.rake' - - 'lib/tasks/gitlab/backup.rake' - 'lib/tasks/gitlab/cleanup.rake' - 'lib/tasks/gitlab/click_house/migration.rake' - 'lib/tasks/gitlab/container_registry.rake' diff --git a/.rubocop_todo/rspec/be_eq.yml b/.rubocop_todo/rspec/be_eq.yml index cc2c2565b9b..04713d08053 100644 --- a/.rubocop_todo/rspec/be_eq.yml +++ b/.rubocop_todo/rspec/be_eq.yml @@ -376,7 +376,6 @@ RSpec/BeEq: - 'ee/spec/requests/users/identity_verification_controller_spec.rb' - 'ee/spec/requests/users/registrations_identity_verification_controller_spec.rb' - 'ee/spec/serializers/ee/admin/abuse_report_details_entity_spec.rb' - - 'ee/spec/serializers/ee/group_child_entity_spec.rb' - 'ee/spec/serializers/ee/note_entity_spec.rb' - 'ee/spec/serializers/environment_entity_spec.rb' - 'ee/spec/serializers/epic_note_entity_spec.rb' @@ -497,7 +496,6 @@ RSpec/BeEq: - 'ee/spec/support_specs/stub_saas_features_spec.rb' - 'ee/spec/workers/app_sec/container_scanning/scan_image_worker_spec.rb' - 'ee/spec/workers/click_house/rebuild_materialized_view_cron_worker_spec.rb' - - 'ee/spec/workers/ee/projects/inactive_projects_deletion_cron_worker_spec.rb' - 'ee/spec/workers/ee/repository_check/batch_worker_spec.rb' - 'ee/spec/workers/ee/repository_check/single_repository_worker_spec.rb' - 'ee/spec/workers/elastic_remove_expired_namespace_subscriptions_from_index_cron_worker_spec.rb' diff --git a/.rubocop_todo/rspec/feature_category.yml b/.rubocop_todo/rspec/feature_category.yml index e3f889aa0e0..52b5a7d8a03 100644 --- a/.rubocop_todo/rspec/feature_category.yml +++ b/.rubocop_todo/rspec/feature_category.yml @@ -1706,7 +1706,6 @@ RSpec/FeatureCategory: - 'spec/helpers/gitlab_routing_helper_spec.rb' - 'spec/helpers/gitlab_script_tag_helper_spec.rb' - 'spec/helpers/graph_helper_spec.rb' - - 'spec/helpers/hooks_helper_spec.rb' - 'spec/helpers/icons_helper_spec.rb' - 'spec/helpers/instance_configuration_helper_spec.rb' - 'spec/helpers/invite_members_helper_spec.rb' @@ -2140,7 +2139,6 @@ RSpec/FeatureCategory: - 'spec/lib/gitlab/ci/status/bridge/waiting_for_resource_spec.rb' - 'spec/lib/gitlab/ci/status/build/action_spec.rb' - 'spec/lib/gitlab/ci/status/build/cancelable_spec.rb' - - 'spec/lib/gitlab/ci/status/build/common_spec.rb' - 'spec/lib/gitlab/ci/status/build/created_spec.rb' - 'spec/lib/gitlab/ci/status/build/erased_spec.rb' - 'spec/lib/gitlab/ci/status/build/factory_spec.rb' diff --git a/.rubocop_todo/style/hash_each_methods.yml b/.rubocop_todo/style/hash_each_methods.yml index 19a42ba794f..11f431b6d1d 100644 --- a/.rubocop_todo/style/hash_each_methods.yml +++ b/.rubocop_todo/style/hash_each_methods.yml @@ -113,7 +113,6 @@ Style/HashEachMethods: - 'spec/models/user_spec.rb' - 'spec/presenters/ci/pipeline_presenter_spec.rb' - 'spec/presenters/commit_status_presenter_spec.rb' - - 'spec/requests/api/project_templates_spec.rb' - 'spec/services/system_notes/incident_service_spec.rb' - 'spec/support/helpers/database/multiple_databases_helpers.rb' - 'spec/support/helpers/reactive_caching_helpers.rb' diff --git a/.rubocop_todo/style/inline_disable_annotation.yml b/.rubocop_todo/style/inline_disable_annotation.yml index 8c92c980842..4a34212fa8c 100644 --- a/.rubocop_todo/style/inline_disable_annotation.yml +++ b/.rubocop_todo/style/inline_disable_annotation.yml @@ -1453,7 +1453,6 @@ Style/InlineDisableAnnotation: - 'ee/lib/ee/gitlab/object_hierarchy.rb' - 'ee/lib/ee/gitlab/quick_actions/users_extractor.rb' - 'ee/lib/ee/gitlab/usage_data.rb' - - 'ee/lib/ee/users/internal.rb' - 'ee/lib/elastic/instance_proxy_util.rb' - 'ee/lib/elastic/latest/git_class_proxy.rb' - 'ee/lib/elastic/latest/note_class_proxy.rb' @@ -2034,7 +2033,6 @@ Style/InlineDisableAnnotation: - 'lib/tasks/tokens.rake' - 'lib/unnested_in_filters/dsl.rb' - 'lib/uploaded_file.rb' - - 'lib/users/internal.rb' - 'locale/unfound_translations.rb' - 'metrics_server/dependencies.rb' - 'metrics_server/metrics_server.rb' diff --git a/.rubocop_todo/style/mutable_constant.yml b/.rubocop_todo/style/mutable_constant.yml index fe608f65462..2e7bd7da588 100644 --- a/.rubocop_todo/style/mutable_constant.yml +++ b/.rubocop_todo/style/mutable_constant.yml @@ -30,7 +30,6 @@ Style/MutableConstant: - 'lib/gitlab/seeder.rb' - 'lib/gitlab/sidekiq_signals.rb' - 'lib/gitlab/web_hooks/recursion_detection/uuid.rb' - - 'lib/tasks/gitlab/backup.rake' - 'scripts/perf/gc/collect_gc_stats.rb' - 'spec/support/helpers/jira_integration_helpers.rb' - 'tooling/danger/stable_branch.rb' diff --git a/app/assets/javascripts/graphql_shared/fragments/base_project.fragment.graphql b/app/assets/javascripts/graphql_shared/fragments/base_project.fragment.graphql deleted file mode 100644 index f559b5d20da..00000000000 --- a/app/assets/javascripts/graphql_shared/fragments/base_project.fragment.graphql +++ /dev/null @@ -1,46 +0,0 @@ -#import "~/graphql_shared/fragments/ci_icon.fragment.graphql" - -fragment BaseProject on Project { - id - fullPath - archived - nameWithNamespace - webUrl - topics - forksCount - avatarUrl - starCount - visibility - openMergeRequestsCount - openIssuesCount - descriptionHtml - createdAt - updatedAt - lastActivityAt - group { - id - } - mergeRequestsAccessLevel { - stringValue - } - issuesAccessLevel { - stringValue - } - forkingAccessLevel { - stringValue - } - userPermissions { - removeProject - viewEditPage - } - maxAccessLevel { - integerValue - } - isCatalogResource - exploreCatalogPath - pipeline { - detailedStatus { - ...CiIcon - } - } -} diff --git a/app/assets/javascripts/graphql_shared/fragments/project.fragment.graphql b/app/assets/javascripts/graphql_shared/fragments/project.fragment.graphql index e607313de61..5236da3ecc3 100644 --- a/app/assets/javascripts/graphql_shared/fragments/project.fragment.graphql +++ b/app/assets/javascripts/graphql_shared/fragments/project.fragment.graphql @@ -1,5 +1,50 @@ -#import "./base_project.fragment.graphql" +#import "~/graphql_shared/fragments/ci_icon.fragment.graphql" fragment Project on Project { - ...BaseProject + id + fullPath + archived + nameWithNamespace + webUrl + topics + forksCount + avatarUrl + starCount + visibility + openMergeRequestsCount + openIssuesCount + descriptionHtml + createdAt + updatedAt + lastActivityAt + group { + id + } + mergeRequestsAccessLevel { + stringValue + } + issuesAccessLevel { + stringValue + } + forkingAccessLevel { + stringValue + } + userPermissions { + removeProject + viewEditPage + } + maxAccessLevel { + integerValue + } + isCatalogResource + exploreCatalogPath + pipeline { + id + detailedStatus { + ...CiIcon + } + } + markedForDeletionOn + isAdjournedDeletionEnabled + permanentDeletionDate } diff --git a/app/assets/javascripts/organizations/shared/graphql/queries/projects.query.graphql b/app/assets/javascripts/organizations/shared/graphql/queries/projects.query.graphql index 09160c4a4a2..e00e9a45d59 100644 --- a/app/assets/javascripts/organizations/shared/graphql/queries/projects.query.graphql +++ b/app/assets/javascripts/organizations/shared/graphql/queries/projects.query.graphql @@ -1,5 +1,5 @@ #import "~/graphql_shared/fragments/page_info.fragment.graphql" -#import "ee_else_ce/graphql_shared/fragments/project.fragment.graphql" +#import "~/graphql_shared/fragments/project.fragment.graphql" query getOrganizationProjects( $id: OrganizationsOrganizationID! diff --git a/app/assets/javascripts/projects/your_work/graphql/queries/projects.query.graphql b/app/assets/javascripts/projects/your_work/graphql/queries/projects.query.graphql index 815c834fa04..045ad2cf35e 100644 --- a/app/assets/javascripts/projects/your_work/graphql/queries/projects.query.graphql +++ b/app/assets/javascripts/projects/your_work/graphql/queries/projects.query.graphql @@ -1,5 +1,5 @@ #import "~/graphql_shared/fragments/page_info.fragment.graphql" -#import "ee_else_ce/graphql_shared/fragments/project.fragment.graphql" +#import "~/graphql_shared/fragments/project.fragment.graphql" query getYourWorkProjects( $archived: ProjectArchived = EXCLUDE diff --git a/app/assets/javascripts/projects/your_work/graphql/queries/user_projects.query.graphql b/app/assets/javascripts/projects/your_work/graphql/queries/user_projects.query.graphql index 0af14e1aaa1..8e4e7e16108 100644 --- a/app/assets/javascripts/projects/your_work/graphql/queries/user_projects.query.graphql +++ b/app/assets/javascripts/projects/your_work/graphql/queries/user_projects.query.graphql @@ -1,5 +1,5 @@ #import "~/graphql_shared/fragments/page_info.fragment.graphql" -#import "ee_else_ce/graphql_shared/fragments/project.fragment.graphql" +#import "~/graphql_shared/fragments/project.fragment.graphql" query getYourWorkUserProjects( $contributed: Boolean = false diff --git a/app/assets/javascripts/vue_shared/components/projects_list/project_list_item_description.stories.js b/app/assets/javascripts/vue_shared/components/projects_list/project_list_item_description.stories.js index b58bdffce47..35a75910528 100644 --- a/app/assets/javascripts/vue_shared/components/projects_list/project_list_item_description.stories.js +++ b/app/assets/javascripts/vue_shared/components/projects_list/project_list_item_description.stories.js @@ -1,4 +1,4 @@ -import ProjectListItemDescription from './project_list_item_description.vue'; +import ProjectListItemDescription from '~/vue_shared/components/projects_list/project_list_item_description.vue'; export default { component: ProjectListItemDescription, @@ -28,3 +28,13 @@ Default.args = { The app integrates with smart home devices and local transportation data to provide real-time suggestions for energy savings and greener commutes.
`, }, }; + +export const PendingDeletionProject = Template.bind({}); +PendingDeletionProject.args = { + ...Default.args, + project: { + ...Default.args.project, + markedForDeletionOn: '2024-12-01', + permanentDeletionDate: '2024-12-07', + }, +}; diff --git a/app/assets/javascripts/vue_shared/components/projects_list/project_list_item_description.vue b/app/assets/javascripts/vue_shared/components/projects_list/project_list_item_description.vue index 1d8759ac78e..ea0304fe124 100644 --- a/app/assets/javascripts/vue_shared/components/projects_list/project_list_item_description.vue +++ b/app/assets/javascripts/vue_shared/components/projects_list/project_list_item_description.vue @@ -1,11 +1,20 @@ -