From 339b91536372cb04b4528725aae408145628ca69 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 5 Dec 2023 21:13:48 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/ci/qa-common/main.gitlab-ci.yml | 2 +- .rubocop_todo/layout/line_length.yml | 1 - .rubocop_todo/metrics/abc_size.yml | 1 - .../metrics/cyclomatic_complexity.yml | 1 - .../metrics/perceived_complexity.yml | 1 - .rubocop_todo/rspec/context_wording.yml | 1 - .../rspec/factory_bot/avoid_create.yml | 1 - .rubocop_todo/rspec/feature_category.yml | 2 - .rubocop_todo/rspec/named_subject.yml | 1 - .rubocop_todo/rspec/return_from_stub.yml | 1 - .rubocop_todo/style/arguments_forwarding.yml | 1 - .rubocop_todo/style/guard_clause.yml | 2 - .rubocop_todo/style/if_unless_modifier.yml | 1 - .../style/inline_disable_annotation.yml | 1 - GITALY_SERVER_VERSION | 2 +- .../components/pages/ci_resources_page.vue | 28 +- .../update_current_page.mutation.graphql | 7 + .../client/get_current_page.query.graphql | 5 + .../ci/catalog/graphql/settings.js | 46 +- .../ci/catalog/graphql/typedefs.graphql | 11 + app/assets/javascripts/ci/catalog/index.js | 3 +- .../ci/job_details/components/log/line.vue | 2 +- .../components/log/line_header.vue | 4 +- .../components/log/line_number.vue | 2 +- .../ci/job_details/components/log/log.vue | 2 +- .../graphql_shared/possible_types.json | 1 + .../components/work_item_detail.vue | 9 +- .../stylesheets/page_bundles/build.scss | 15 +- app/finders/milestones_finder.rb | 2 +- .../resolvers/work_items/types_resolver.rb | 6 + .../work_items/widget_definition_interface.rb | 5 +- .../widget_definitions/hierarchy_type.rb | 26 + app/helpers/dashboard_helper.rb | 20 - app/helpers/explore_helper.rb | 12 - app/helpers/nav/top_nav_helper.rb | 340 ------------ app/models/project.rb | 9 +- app/models/work_items/type.rb | 21 + .../update_repository_storage_service.rb | 7 +- .../x509/_certificate_details.html.haml | 33 +- .../replicate_object_pool_on_move.yml | 8 - .../16-7-list-repos-rake-task.yml | 12 + doc/administration/admin_area.md | 1 - doc/administration/auth/atlassian.md | 1 - doc/administration/auth/cognito.md | 1 - doc/administration/auth/crowd.md | 1 - doc/administration/auth/index.md | 1 - doc/administration/auth/jwt.md | 1 - .../auth/ldap/google_secure_ldap.md | 1 - doc/administration/auth/ldap/index.md | 1 - .../auth/ldap/ldap-troubleshooting.md | 1 - doc/administration/auth/oidc.md | 1 - doc/administration/auth/smartcard.md | 1 - doc/administration/broadcast_messages.md | 1 - doc/administration/cicd.md | 1 - doc/administration/configure.md | 1 - doc/administration/consul.md | 1 - doc/administration/credentials_inventory.md | 1 - doc/administration/diff_limits.md | 1 - doc/administration/email_from_gitlab.md | 1 - doc/administration/encrypted_configuration.md | 1 - doc/administration/environment_variables.md | 1 - .../external_pipeline_validation.md | 1 - doc/administration/file_hooks.md | 1 - .../disaster_recovery/bring_primary_back.md | 1 - .../geo/disaster_recovery/planned_failover.md | 1 - .../runbooks/planned_failover_multi_node.md | 1 - .../runbooks/planned_failover_single_node.md | 1 - doc/administration/geo/glossary.md | 1 - .../geo/replication/configuration.md | 1 - .../geo/replication/container_registry.md | 1 - .../geo/replication/datatypes.md | 1 - .../geo/replication/disable_geo.md | 1 - .../geo/replication/location_aware_git_url.md | 1 - .../geo/replication/multiple_servers.md | 1 - .../geo/replication/object_storage.md | 1 - .../geo/replication/remove_geo_site.md | 1 - .../geo/replication/security_review.md | 1 - .../geo/replication/single_sign_on.md | 1 - doc/administration/geo/replication/tuning.md | 1 - .../replication/upgrading_the_geo_sites.md | 1 - .../geo/secondary_proxy/index.md | 1 - .../location_aware_external_url.md | 1 - doc/administration/geo/setup/database.md | 1 - doc/administration/geo/setup/index.md | 1 - doc/administration/instance_limits.md | 1 - .../integration/diagrams_net.md | 1 - doc/administration/integration/mailgun.md | 1 - doc/administration/integration/plantuml.md | 1 - .../invalidate_markdown_cache.md | 1 - doc/administration/issue_closing_pattern.md | 1 - doc/administration/job_logs.md | 1 - doc/administration/labels.md | 1 - doc/administration/libravatar.md | 1 - .../merge_requests_approvals.md | 1 - doc/administration/moderate_users.md | 1 - doc/administration/nfs.md | 1 - doc/administration/postgresql/pgbouncer.md | 1 - .../postgresql/replication_and_failover.md | 27 +- doc/administration/redis/index.md | 1 - .../redis/replication_and_failover.md | 1 - .../replication_and_failover_external.md | 1 - doc/administration/redis/standalone.md | 1 - doc/administration/redis/troubleshooting.md | 1 - .../reference_architectures/index.md | 1 - doc/administration/review_abuse_reports.md | 1 - doc/administration/review_spam_logs.md | 1 - .../settings/account_and_limit_settings.md | 1 - .../settings/continuous_integration.md | 1 - .../settings/deprecated_api_rate_limits.md | 1 - doc/administration/settings/email.md | 1 - .../settings/files_api_rate_limits.md | 1 - .../settings/git_lfs_rate_limits.md | 1 - doc/administration/settings/help_page.md | 1 - .../settings/import_and_export_settings.md | 1 - .../incident_management_rate_limits.md | 1 - doc/administration/settings/index.md | 1 - .../settings/instance_template_repository.md | 1 - doc/administration/settings/localization.md | 1 - .../settings/package_registry_rate_limits.md | 1 - .../settings/protected_paths.md | 1 - .../settings/push_event_activities_limit.md | 1 - .../settings/rate_limit_on_issues_creation.md | 1 - .../settings/rate_limit_on_notes_creation.md | 1 - .../rate_limit_on_pipelines_creation.md | 1 - .../settings/rate_limit_on_projects_api.md | 1 - .../settings/rate_limit_on_users_api.md | 1 - doc/administration/settings/rate_limits.md | 1 - .../rate_limits_on_git_ssh_operations.md | 1 - .../settings/rate_limits_on_raw_endpoints.md | 1 - doc/administration/settings/scim_setup.md | 1 - .../settings/security_and_compliance.md | 1 - .../settings/sidekiq_job_limits.md | 1 - .../settings/sign_up_restrictions.md | 1 - doc/administration/settings/terms.md | 1 - .../settings/terraform_limits.md | 1 - .../settings/third_party_offers.md | 1 - .../settings/user_and_ip_rate_limits.md | 1 - .../visibility_and_access_controls.md | 1 - doc/administration/snippets/index.md | 1 - .../static_objects_external_storage.md | 1 - doc/administration/system_hooks.md | 1 - .../troubleshooting/diagnostics_tools.md | 1 - .../troubleshooting/linux_cheat_sheet.md | 1 - .../troubleshooting/test_environments.md | 1 - doc/administration/wikis/index.md | 1 - doc/api/branches.md | 1 - doc/api/deployments.md | 1 - doc/api/discussions.md | 1 - doc/api/dora/metrics.md | 1 - doc/api/environments.md | 1 - doc/api/freeze_periods.md | 1 - doc/api/graphql/reference/index.md | 12 + doc/api/group_milestones.md | 5 +- doc/api/group_protected_environments.md | 1 - doc/api/group_repository_storage_moves.md | 1 - doc/api/group_wikis.md | 1 - doc/api/keys.md | 1 - doc/api/merge_request_context_commits.md | 1 - doc/api/metrics_dashboard_annotations.md | 1 - doc/api/metrics_user_starred_dashboards.md | 1 - doc/api/milestones.md | 5 +- doc/api/oauth2.md | 1 - doc/api/project_aliases.md | 1 - doc/api/project_level_variables.md | 1 - doc/api/project_statistics.md | 1 - doc/api/project_vulnerabilities.md | 1 - doc/api/protected_environments.md | 1 - doc/api/remote_mirrors.md | 1 - doc/api/repositories.md | 1 - doc/api/repository_files.md | 1 - doc/api/scim.md | 1 - doc/api/secure_files.md | 1 - doc/api/snippet_repository_storage_moves.md | 1 - doc/api/status_checks.md | 1 - doc/api/suggestions.md | 1 - doc/api/templates/dockerfiles.md | 1 - doc/api/templates/gitignores.md | 1 - doc/api/templates/gitlab_ci_ymls.md | 1 - doc/api/templates/licenses.md | 1 - doc/api/usage_data.md | 1 - .../blueprints/new_diffs/index.md | 38 +- doc/ci/chatops/index.md | 1 - .../bitbucket_integration.md | 1 - .../github_integration.md | 1 - doc/ci/ci_cd_for_external_repos/index.md | 1 - doc/ci/cloud_deployment/index.md | 1 - doc/ci/debugging.md | 1 - doc/ci/directed_acyclic_graph/index.md | 1 - doc/ci/docker/authenticate_registry.md | 1 - doc/ci/docker/buildah_rootless_tutorial.md | 1 - doc/ci/docker/docker_layer_caching.md | 1 - doc/ci/docker/index.md | 1 - doc/ci/docker/using_docker_build.md | 1 - doc/ci/docker/using_docker_images.md | 1 - doc/ci/docker/using_kaniko.md | 1 - .../configure_kubernetes_deployments.md | 1 - doc/ci/environments/environments_dashboard.md | 1 - .../environments/external_deployment_tools.md | 1 - doc/ci/environments/incremental_rollouts.md | 1 - doc/ci/environments/index.md | 1 - doc/ci/environments/kubernetes_dashboard.md | 1 - .../index.md | 1 - .../deployment/composer-npm-deploy.md | 1 - doc/ci/examples/deployment/index.md | 1 - doc/ci/examples/index.md | 1 - doc/ci/examples/php.md | 1 - doc/ci/git_submodules.md | 1 - doc/ci/index.md | 1 - doc/ci/interactive_web_terminal/index.md | 1 - doc/ci/migration/bamboo.md | 1 - doc/ci/migration/circleci.md | 1 - doc/ci/migration/examples/jenkins-maven.md | 1 - doc/ci/migration/github_actions.md | 1 - doc/ci/migration/jenkins.md | 1 - doc/ci/migration/plan_a_migration.md | 1 - doc/ci/mobile_devops.md | 1 - doc/ci/pipeline_editor/index.md | 1 - doc/ci/pipelines/cicd_minutes.md | 1 - doc/ci/pipelines/index.md | 1 - doc/ci/pipelines/pipeline_architectures.md | 1 - doc/ci/pipelines/pipeline_efficiency.md | 1 - doc/ci/pipelines/pipeline_security.md | 1 - doc/ci/pipelines/schedules.md | 1 - doc/ci/pipelines/settings.md | 1 - doc/ci/quick_start/index.md | 1 - doc/ci/runners/index.md | 1 - doc/ci/runners/runners_scope.md | 1 - doc/ci/secrets/azure_key_vault.md | 1 - doc/ci/secrets/convert-to-id-tokens.md | 1 - doc/ci/secrets/id_token_authentication.md | 1 - doc/ci/secrets/index.md | 1 - doc/ci/secure_files/index.md | 1 - doc/ci/services/gitlab.md | 1 - doc/ci/services/index.md | 1 - doc/ci/services/mysql.md | 1 - doc/ci/services/postgres.md | 1 - doc/ci/services/redis.md | 1 - doc/ci/ssh_keys/index.md | 1 - doc/ci/test_cases/index.md | 1 - doc/ci/triggers/index.md | 1 - doc/ci/variables/index.md | 1 - doc/ci/variables/predefined_variables.md | 1 - .../variables/where_variables_can_be_used.md | 1 - doc/ci/yaml/includes.md | 1 - doc/ci/yaml/index.md | 1 - doc/ci/yaml/yaml_optimization.md | 1 - doc/development/backend/ruby_style_guide.md | 1 - doc/development/cicd/index.md | 1 - doc/development/cicd/schema.md | 1 - doc/development/cicd/templates.md | 1 - doc/development/contributing/design.md | 1 - doc/development/contributing/index.md | 1 - .../contributing/issue_workflow.md | 1 - .../contributing/merge_request_workflow.md | 1 - doc/development/contributing/style_guides.md | 1 - doc/development/contributing/verify/index.md | 1 - .../database/batched_background_migrations.md | 1 - .../documentation/graphql_styleguide.md | 1 - doc/development/documentation/metadata.md | 5 - doc/development/fe_guide/dark_mode.md | 1 - doc/development/fe_guide/design_tokens.md | 1 - doc/development/fe_guide/graphql.md | 1 - doc/development/fe_guide/style/typescript.md | 1 - doc/development/feature_flags/controls.md | 1 - doc/development/feature_flags/index.md | 1 - doc/development/index.md | 1 - doc/development/internal_api/index.md | 1 - .../internal_api/internal_api_allowed.md | 1 - doc/development/internal_users.md | 1 - .../merge_request_concepts/index.md | 1 - doc/development/organization/index.md | 1 - doc/development/pages/dnsmasq.md | 1 - doc/development/pages/index.md | 1 - doc/development/rails_endpoints/index.md | 1 - doc/development/rubocop_development_guide.md | 12 +- .../sec/generate_test_vulnerabilities.md | 1 - doc/development/sec/index.md | 1 - .../sec/security_report_ingestion_overview.md | 1 - doc/development/secure_coding_guidelines.md | 1 - .../testing_guide/best_practices.md | 1 - .../testing_guide/testing_migrations_guide.md | 1 - doc/development/windows.md | 1 - doc/drawers/advanced_search_syntax.md | 1 - doc/drawers/exact_code_search_syntax.md | 1 - doc/gitlab-basics/add-file.md | 1 - doc/gitlab-basics/start-using-git.md | 1 - doc/install/azure/index.md | 1 - doc/install/cloud_providers.md | 1 - doc/install/index.md | 1 - doc/install/install_methods.md | 1 - .../advanced_search/elasticsearch.md | 1 - .../elasticsearch_troubleshooting.md | 1 - doc/integration/gitpod.md | 1 - doc/integration/saml.md | 1 - doc/integration/sourcegraph.md | 1 - doc/policy/maintenance.md | 1 - doc/raketasks/list_repos.md | 2 +- doc/security/crime_vulnerability.md | 1 - doc/security/hardening.md | 1 - .../hardening_application_recommendations.md | 1 - .../hardening_cicd_recommendations.md | 1 - ...hardening_configuration_recommendations.md | 1 - doc/security/hardening_general_concepts.md | 1 - ...dening_operating_system_recommendations.md | 1 - doc/security/index.md | 1 - doc/security/information_exclusivity.md | 1 - doc/security/password_length_limits.md | 1 - doc/security/password_storage.md | 1 - ...s_for_integrated_authentication_methods.md | 1 - doc/security/rate_limits.md | 1 - doc/security/reset_user_password.md | 1 - .../responding_to_security_incidents.md | 1 - doc/security/ssh_keys_restrictions.md | 1 - doc/security/token_overview.md | 1 - doc/security/two_factor_authentication.md | 1 - doc/security/unlock_user.md | 1 - doc/security/user_email_confirmation.md | 1 - doc/security/user_file_uploads.md | 1 - doc/security/webhooks.md | 1 - doc/subscriptions/gitlab_com/index.md | 1 - doc/subscriptions/index.md | 1 - doc/subscriptions/self_managed/index.md | 1 - .../upgrading_auto_deploy_dependencies.md | 1 - doc/topics/git/git_rebase.md | 1 - doc/topics/git/index.md | 1 - doc/topics/git/lfs/index.md | 1 - .../index.md | 1 - doc/topics/git/partial_clone.md | 1 - doc/topics/git/troubleshooting_git.md | 1 - doc/topics/git/useful_git_commands.md | 1 - doc/update/deprecations.md | 17 + doc/user/ai_features.md | 1 - doc/user/analytics/issue_analytics.md | 1 - .../api_fuzzing/create_har_files.md | 1 - .../application_security/api_fuzzing/index.md | 1 - .../api_security/api_discovery/index.md | 1 - .../api_security/index.md | 1 - .../breach_and_attack_simulation/index.md | 1 - .../container_scanning/index.md | 1 - .../application_security/cve_id_request.md | 1 - .../dast/authentication.md | 1 - .../dast/browser_based.md | 1 - .../dast/browser_based_troubleshooting.md | 1 - .../dast/dast_troubleshooting.md | 1 - doc/user/application_security/dast/index.md | 1 - .../application_security/dast/proxy-based.md | 1 - .../dast/run_dast_offline.md | 1 - .../application_security/dast_api/index.md | 1 - .../dependency_list/index.md | 1 - .../offline_deployments/index.md | 1 - .../security_dashboard/index.md | 1 - .../application_security/terminology/index.md | 1 - .../vulnerabilities/severities.md | 1 - .../vulnerability_report/index.md | 1 - .../vulnerability_report/pipeline.md | 1 - .../compliance/compliance_center/index.md | 17 +- doc/user/compliance/index.md | 1 - .../compliance/license_approval_policies.md | 1 - doc/user/compliance/license_list.md | 1 - .../index.md | 1 - doc/user/discussions/index.md | 1 - doc/user/enterprise_user/index.md | 1 - doc/user/gitlab_duo_chat.md | 1 - doc/user/group/clusters/index.md | 1 - .../group/contribution_analytics/index.md | 1 - doc/user/group/epics/manage_epics.md | 1 - doc/user/group/issues_analytics/index.md | 1 - doc/user/group/iterations/index.md | 1 - doc/user/group/planning_hierarchy/index.md | 1 - .../group/saml_sso/example_saml_config.md | 1 - doc/user/group/saml_sso/group_sync.md | 1 - doc/user/group/saml_sso/troubleshooting.md | 1 - .../group/settings/group_access_tokens.md | 1 - .../group/value_stream_analytics/index.md | 1 - doc/user/profile/account/create_accounts.md | 1 - doc/user/profile/account/delete_account.md | 1 - doc/user/profile/active_sessions.md | 1 - doc/user/profile/comment_templates.md | 1 - doc/user/profile/contributions_calendar.md | 1 - doc/user/profile/index.md | 1 - doc/user/profile/personal_access_tokens.md | 1 - doc/user/profile/preferences.md | 1 - doc/user/profile/service_accounts.md | 1 - doc/user/project/autocomplete_characters.md | 1 - doc/user/project/changelogs.md | 1 - doc/user/project/code_intelligence.md | 1 - doc/user/project/deploy_boards.md | 1 - doc/user/project/git_attributes.md | 1 - doc/user/project/highlighting.md | 1 - .../project/merge_requests/approvals/index.md | 1 - .../authorization_for_merge_requests.md | 1 - doc/user/project/merge_requests/changes.md | 1 - .../merge_requests/cherry_pick_changes.md | 1 - .../merge_requests/commit_templates.md | 1 - doc/user/project/merge_requests/commits.md | 1 - doc/user/project/merge_requests/conflicts.md | 1 - .../project/merge_requests/dependencies.md | 1 - doc/user/project/merge_requests/drafts.md | 1 - doc/user/project/merge_requests/index.md | 1 - .../merge_when_pipeline_succeeds.md | 1 - .../project/merge_requests/methods/index.md | 1 - .../merge_requests/reviews/data_usage.md | 1 - .../project/merge_requests/reviews/index.md | 1 - .../merge_requests/reviews/suggestions.md | 1 - .../project/merge_requests/status_checks.md | 1 - doc/user/project/merge_requests/widgets.md | 1 - .../milestones/burndown_and_burnup_charts.md | 1 - doc/user/project/milestones/index.md | 1 - .../dns_concepts.md | 1 - .../lets_encrypt_integration.md | 1 - .../ssl_tls_concepts.md | 1 - .../getting_started/pages_ci_cd_template.md | 1 - .../pages_forked_sample_project.md | 1 - doc/user/project/quick_actions.md | 1 - .../project/repository/branches/default.md | 1 - .../repository/code_suggestions/index.md | 1 - .../repository/code_suggestions/saas.md | 1 - .../code_suggestions/self_managed.md | 1 - .../code_suggestions/troubleshooting.md | 1 - doc/user/project/repository/csv.md | 1 - doc/user/project/repository/geojson.md | 1 - doc/user/project/repository/git_blame.md | 1 - doc/user/project/repository/git_history.md | 1 - .../repository/jupyter_notebooks/index.md | 1 - doc/user/project/requirements/index.md | 1 - doc/user/project/settings/migrate_projects.md | 1 - .../project/settings/project_access_tokens.md | 1 - .../settings/project_features_permissions.md | 1 - doc/user/project/time_tracking.md | 1 - doc/user/public_access.md | 1 - doc/user/rich_text_editor.md | 1 - doc/user/search/advanced_search.md | 1 - doc/user/search/command_palette.md | 1 - doc/user/search/exact_code_search.md | 1 - doc/user/shortcuts.md | 1 - doc/user/snippets.md | 1 - doc/user/storage_management_automation.md | 1 - doc/user/usage_quotas.md | 1 - lib/api/milestone_responses.rb | 14 +- lib/gitlab/nav/top_nav_menu_builder.rb | 47 -- lib/gitlab/nav/top_nav_menu_header.rb | 14 - lib/gitlab/nav/top_nav_view_model_builder.rb | 53 -- lib/tasks/gitlab/list_repos.rake | 2 +- locale/gitlab.pot | 27 - qa/qa/page/main/menu.rb | 7 - .../projects/jobs/permissions_spec.rb | 5 +- spec/finders/milestones_finder_spec.rb | 4 +- .../pages/ci_resources_page_spec.js | 7 +- .../ci/job_details/components/log/log_spec.js | 24 +- .../widget_definition_interface_spec.rb | 6 + spec/helpers/dashboard_helper_spec.rb | 14 - spec/helpers/explore_helper_spec.rb | 8 - spec/helpers/nav/top_nav_helper_spec.rb | 487 ------------------ spec/lib/gitlab/import_export/all_models.yml | 2 + .../gitlab/nav/top_nav_menu_header_spec.rb | 16 - spec/models/project_spec.rb | 37 -- spec/models/work_items/type_spec.rb | 81 +++ spec/requests/api/group_milestones_spec.rb | 26 +- spec/requests/api/project_milestones_spec.rb | 28 +- .../requests/projects/tags_controller_spec.rb | 19 + .../update_repository_storage_service_spec.rb | 23 - spec/support/rspec_order_todo.yml | 1 - .../work_item_types_shared_context.rb | 22 +- 463 files changed, 499 insertions(+), 1657 deletions(-) create mode 100644 app/assets/javascripts/ci/catalog/graphql/mutations/client/update_current_page.mutation.graphql create mode 100644 app/assets/javascripts/ci/catalog/graphql/queries/client/get_current_page.query.graphql create mode 100644 app/assets/javascripts/ci/catalog/graphql/typedefs.graphql create mode 100644 app/graphql/types/work_items/widget_definitions/hierarchy_type.rb delete mode 100644 app/helpers/nav/top_nav_helper.rb delete mode 100644 config/feature_flags/development/replicate_object_pool_on_move.yml create mode 100644 data/deprecations/16-7-list-repos-rake-task.yml delete mode 100644 lib/gitlab/nav/top_nav_menu_builder.rb delete mode 100644 lib/gitlab/nav/top_nav_menu_header.rb delete mode 100644 lib/gitlab/nav/top_nav_view_model_builder.rb delete mode 100644 spec/helpers/nav/top_nav_helper_spec.rb delete mode 100644 spec/lib/gitlab/nav/top_nav_menu_header_spec.rb diff --git a/.gitlab/ci/qa-common/main.gitlab-ci.yml b/.gitlab/ci/qa-common/main.gitlab-ci.yml index 5d9438cc5e6..27a807005b1 100644 --- a/.gitlab/ci/qa-common/main.gitlab-ci.yml +++ b/.gitlab/ci/qa-common/main.gitlab-ci.yml @@ -14,7 +14,7 @@ include: gitlab_auth_token_variable_name: "PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE" allure_job_name: "${QA_RUN_TYPE}" - project: gitlab-org/quality/pipeline-common - ref: 7.12.1 + ref: 7.13.3 file: - /ci/base.gitlab-ci.yml - /ci/knapsack-report.yml diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml index 19712d9d551..e0e2ac0dc32 100644 --- a/.rubocop_todo/layout/line_length.yml +++ b/.rubocop_todo/layout/line_length.yml @@ -230,7 +230,6 @@ Layout/LineLength: - 'app/helpers/merge_requests_helper.rb' - 'app/helpers/mirror_helper.rb' - 'app/helpers/nav/new_dropdown_helper.rb' - - 'app/helpers/nav/top_nav_helper.rb' - 'app/helpers/nav_helper.rb' - 'app/helpers/notify_helper.rb' - 'app/helpers/operations_helper.rb' diff --git a/.rubocop_todo/metrics/abc_size.yml b/.rubocop_todo/metrics/abc_size.yml index babf39d6630..85097a9e69e 100644 --- a/.rubocop_todo/metrics/abc_size.yml +++ b/.rubocop_todo/metrics/abc_size.yml @@ -2,7 +2,6 @@ Metrics/AbcSize: Exclude: - 'app/helpers/issuables_helper.rb' - - 'app/helpers/nav/top_nav_helper.rb' - 'app/models/instance_configuration.rb' - 'app/services/projects/create_service.rb' - 'lib/gitlab/analytics/cycle_analytics/request_params.rb' diff --git a/.rubocop_todo/metrics/cyclomatic_complexity.yml b/.rubocop_todo/metrics/cyclomatic_complexity.yml index 2519705f21a..e52e93e55f6 100644 --- a/.rubocop_todo/metrics/cyclomatic_complexity.yml +++ b/.rubocop_todo/metrics/cyclomatic_complexity.yml @@ -4,7 +4,6 @@ Metrics/CyclomaticComplexity: - 'app/controllers/admin/application_settings_controller.rb' - 'app/finders/deployments_finder.rb' - 'app/helpers/button_helper.rb' - - 'app/helpers/nav/top_nav_helper.rb' - 'app/models/concerns/issuable.rb' - 'app/services/projects/create_service.rb' - 'ee/app/controllers/ee/groups_controller.rb' diff --git a/.rubocop_todo/metrics/perceived_complexity.yml b/.rubocop_todo/metrics/perceived_complexity.yml index 6e541bee880..3f09e7f9270 100644 --- a/.rubocop_todo/metrics/perceived_complexity.yml +++ b/.rubocop_todo/metrics/perceived_complexity.yml @@ -4,7 +4,6 @@ Metrics/PerceivedComplexity: - 'app/controllers/admin/application_settings_controller.rb' - 'app/finders/deployments_finder.rb' - 'app/helpers/button_helper.rb' - - 'app/helpers/nav/top_nav_helper.rb' - 'app/services/projects/create_service.rb' - 'ee/app/controllers/ee/groups_controller.rb' - 'lib/banzai/filter/references/abstract_reference_filter.rb' diff --git a/.rubocop_todo/rspec/context_wording.yml b/.rubocop_todo/rspec/context_wording.yml index ba1bdb3f194..d3ebe8427fd 100644 --- a/.rubocop_todo/rspec/context_wording.yml +++ b/.rubocop_todo/rspec/context_wording.yml @@ -1418,7 +1418,6 @@ RSpec/ContextWording: - 'spec/helpers/listbox_helper_spec.rb' - 'spec/helpers/markup_helper_spec.rb' - 'spec/helpers/members_helper_spec.rb' - - 'spec/helpers/nav/top_nav_helper_spec.rb' - 'spec/helpers/nav_helper_spec.rb' - 'spec/helpers/notes_helper_spec.rb' - 'spec/helpers/operations_helper_spec.rb' diff --git a/.rubocop_todo/rspec/factory_bot/avoid_create.yml b/.rubocop_todo/rspec/factory_bot/avoid_create.yml index 88d2255f681..ca85767e0f1 100644 --- a/.rubocop_todo/rspec/factory_bot/avoid_create.yml +++ b/.rubocop_todo/rspec/factory_bot/avoid_create.yml @@ -291,7 +291,6 @@ RSpec/FactoryBot/AvoidCreate: - 'spec/helpers/members_helper_spec.rb' - 'spec/helpers/merge_requests_helper_spec.rb' - 'spec/helpers/namespaces_helper_spec.rb' - - 'spec/helpers/nav/top_nav_helper_spec.rb' - 'spec/helpers/nav_helper_spec.rb' - 'spec/helpers/notes_helper_spec.rb' - 'spec/helpers/notifications_helper_spec.rb' diff --git a/.rubocop_todo/rspec/feature_category.yml b/.rubocop_todo/rspec/feature_category.yml index 12377071205..37d27964038 100644 --- a/.rubocop_todo/rspec/feature_category.yml +++ b/.rubocop_todo/rspec/feature_category.yml @@ -2434,7 +2434,6 @@ RSpec/FeatureCategory: - 'spec/helpers/markup_helper_spec.rb' - 'spec/helpers/members_helper_spec.rb' - 'spec/helpers/milestones_helper_spec.rb' - - 'spec/helpers/nav/top_nav_helper_spec.rb' - 'spec/helpers/notifications_helper_spec.rb' - 'spec/helpers/notify_helper_spec.rb' - 'spec/helpers/numbers_helper_spec.rb' @@ -3799,7 +3798,6 @@ RSpec/FeatureCategory: - 'spec/lib/gitlab/multi_collection_paginator_spec.rb' - 'spec/lib/gitlab/multi_destination_logger_spec.rb' - 'spec/lib/gitlab/namespaced_session_store_spec.rb' - - 'spec/lib/gitlab/nav/top_nav_menu_header_spec.rb' - 'spec/lib/gitlab/no_cache_headers_spec.rb' - 'spec/lib/gitlab/noteable_metadata_spec.rb' - 'spec/lib/gitlab/object_hierarchy_spec.rb' diff --git a/.rubocop_todo/rspec/named_subject.yml b/.rubocop_todo/rspec/named_subject.yml index 93404a43df2..dd4928d9c8a 100644 --- a/.rubocop_todo/rspec/named_subject.yml +++ b/.rubocop_todo/rspec/named_subject.yml @@ -1617,7 +1617,6 @@ RSpec/NamedSubject: - 'spec/helpers/markup_helper_spec.rb' - 'spec/helpers/merge_requests_helper_spec.rb' - 'spec/helpers/namespaces_helper_spec.rb' - - 'spec/helpers/nav/top_nav_helper_spec.rb' - 'spec/helpers/nav_helper_spec.rb' - 'spec/helpers/operations_helper_spec.rb' - 'spec/helpers/page_layout_helper_spec.rb' diff --git a/.rubocop_todo/rspec/return_from_stub.yml b/.rubocop_todo/rspec/return_from_stub.yml index ed5b6fa5486..034d4fe4b09 100644 --- a/.rubocop_todo/rspec/return_from_stub.yml +++ b/.rubocop_todo/rspec/return_from_stub.yml @@ -99,7 +99,6 @@ RSpec/ReturnFromStub: - 'spec/helpers/explore_helper_spec.rb' - 'spec/helpers/groups_helper_spec.rb' - 'spec/helpers/issues_helper_spec.rb' - - 'spec/helpers/nav/top_nav_helper_spec.rb' - 'spec/helpers/nav_helper_spec.rb' - 'spec/helpers/operations_helper_spec.rb' - 'spec/helpers/projects_helper_spec.rb' diff --git a/.rubocop_todo/style/arguments_forwarding.yml b/.rubocop_todo/style/arguments_forwarding.yml index f51e582b5a0..f578b75e5f0 100644 --- a/.rubocop_todo/style/arguments_forwarding.yml +++ b/.rubocop_todo/style/arguments_forwarding.yml @@ -110,7 +110,6 @@ Style/ArgumentsForwarding: - 'lib/gitlab/legacy_github_import/client.rb' - 'lib/gitlab/memory/watchdog/configuration.rb' - 'lib/gitlab/metrics/prometheus.rb' - - 'lib/gitlab/nav/top_nav_view_model_builder.rb' - 'lib/gitlab/quick_actions/dsl.rb' - 'lib/gitlab/rack_attack.rb' - 'lib/gitlab/redis/multi_store.rb' diff --git a/.rubocop_todo/style/guard_clause.yml b/.rubocop_todo/style/guard_clause.yml index 04dc90edb95..05f3afd6232 100644 --- a/.rubocop_todo/style/guard_clause.yml +++ b/.rubocop_todo/style/guard_clause.yml @@ -61,7 +61,6 @@ Style/GuardClause: - 'app/helpers/admin/user_actions_helper.rb' - 'app/helpers/events_helper.rb' - 'app/helpers/issues_helper.rb' - - 'app/helpers/nav/top_nav_helper.rb' - 'app/helpers/notes_helper.rb' - 'app/helpers/preferences_helper.rb' - 'app/helpers/profiles_helper.rb' @@ -275,7 +274,6 @@ Style/GuardClause: - 'ee/app/helpers/ee/application_helper.rb' - 'ee/app/helpers/ee/auth_helper.rb' - 'ee/app/helpers/ee/nav/new_dropdown_helper.rb' - - 'ee/app/helpers/ee/nav/top_nav_helper.rb' - 'ee/app/helpers/ee/projects/pipeline_helper.rb' - 'ee/app/helpers/ee/projects_helper.rb' - 'ee/app/models/allowed_email_domain.rb' diff --git a/.rubocop_todo/style/if_unless_modifier.yml b/.rubocop_todo/style/if_unless_modifier.yml index 6c52c2d9f8e..5c4f93e0d55 100644 --- a/.rubocop_todo/style/if_unless_modifier.yml +++ b/.rubocop_todo/style/if_unless_modifier.yml @@ -88,7 +88,6 @@ Style/IfUnlessModifier: - 'app/helpers/lazy_image_tag_helper.rb' - 'app/helpers/markup_helper.rb' - 'app/helpers/merge_requests_helper.rb' - - 'app/helpers/nav/top_nav_helper.rb' - 'app/helpers/nav_helper.rb' - 'app/helpers/page_layout_helper.rb' - 'app/helpers/preferences_helper.rb' diff --git a/.rubocop_todo/style/inline_disable_annotation.yml b/.rubocop_todo/style/inline_disable_annotation.yml index a353755aa7b..55a3320cedd 100644 --- a/.rubocop_todo/style/inline_disable_annotation.yml +++ b/.rubocop_todo/style/inline_disable_annotation.yml @@ -351,7 +351,6 @@ Style/InlineDisableAnnotation: - 'app/helpers/issuables_helper.rb' - 'app/helpers/lazy_image_tag_helper.rb' - 'app/helpers/namespaces_helper.rb' - - 'app/helpers/nav/top_nav_helper.rb' - 'app/helpers/page_layout_helper.rb' - 'app/helpers/routing/projects_helper.rb' - 'app/helpers/routing/pseudonymization_helper.rb' diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index 29ada2ea395..9807f6e9cbf 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -c0b07ba36fc8fc40830f061cb55a5c951a166e1c +61813ee439cc7a3e0858b4955f4511315eaab650 diff --git a/app/assets/javascripts/ci/catalog/components/pages/ci_resources_page.vue b/app/assets/javascripts/ci/catalog/components/pages/ci_resources_page.vue index f2e98d50c43..e1c86f38d7e 100644 --- a/app/assets/javascripts/ci/catalog/components/pages/ci_resources_page.vue +++ b/app/assets/javascripts/ci/catalog/components/pages/ci_resources_page.vue @@ -8,6 +8,8 @@ import CatalogListSkeletonLoader from '../list/catalog_list_skeleton_loader.vue' import CatalogHeader from '../list/catalog_header.vue'; import EmptyState from '../list/empty_state.vue'; import getCatalogResources from '../../graphql/queries/get_ci_catalog_resources.query.graphql'; +import getCurrentPage from '../../graphql/queries/client/get_current_page.query.graphql'; +import updateCurrentPageMutation from '../../graphql/mutations/client/update_current_page.mutation.graphql'; export default { components: { @@ -46,6 +48,12 @@ export default { createAlert({ message: e.message || this.$options.i18n.fetchError, variant: 'danger' }); }, }, + currentPage: { + query: getCurrentPage, + update(data) { + return data?.page?.current || 1; + }, + }, }, computed: { hasResources() { @@ -72,7 +80,7 @@ export default { }, }); - this.currentPage -= 1; + this.decrementPage(); } catch (e) { // Ensure that the current query is properly stoped if an error occurs. this.$apollo.queries.catalogResources.stop(); @@ -87,7 +95,7 @@ export default { }, }); - this.currentPage += 1; + this.incrementPage(); } catch (e) { // Ensure that the current query is properly stoped if an error occurs. this.$apollo.queries.catalogResources.stop(); @@ -95,6 +103,20 @@ export default { createAlert({ message: e?.message || this.$options.i18n.fetchError, variant: 'danger' }); } }, + updatePageCount(pageNumber) { + this.$apollo.mutate({ + mutation: updateCurrentPageMutation, + variables: { + pageNumber, + }, + }); + }, + decrementPage() { + this.updatePageCount(this.currentPage - 1); + }, + incrementPage() { + this.updatePageCount(this.currentPage + 1); + }, onUpdateSearchTerm(searchTerm) { this.searchTerm = !searchTerm.length ? null : searchTerm; this.resetPageCount(); @@ -109,7 +131,7 @@ export default { }); }, resetPageCount() { - this.currentPage = 1; + this.updatePageCount(1); }, }, i18n: { diff --git a/app/assets/javascripts/ci/catalog/graphql/mutations/client/update_current_page.mutation.graphql b/app/assets/javascripts/ci/catalog/graphql/mutations/client/update_current_page.mutation.graphql new file mode 100644 index 00000000000..7ffd8f6ea61 --- /dev/null +++ b/app/assets/javascripts/ci/catalog/graphql/mutations/client/update_current_page.mutation.graphql @@ -0,0 +1,7 @@ +mutation updateCurrentPage($pageNumber: Int!) { + updateCurrentPage(pageNumber: $pageNumber) @client { + page { + current + } + } +} diff --git a/app/assets/javascripts/ci/catalog/graphql/queries/client/get_current_page.query.graphql b/app/assets/javascripts/ci/catalog/graphql/queries/client/get_current_page.query.graphql new file mode 100644 index 00000000000..b49895a64aa --- /dev/null +++ b/app/assets/javascripts/ci/catalog/graphql/queries/client/get_current_page.query.graphql @@ -0,0 +1,5 @@ +query getCurrentPage { + page @client { + current + } +} diff --git a/app/assets/javascripts/ci/catalog/graphql/settings.js b/app/assets/javascripts/ci/catalog/graphql/settings.js index 5e71fee818e..c3c6dcca261 100644 --- a/app/assets/javascripts/ci/catalog/graphql/settings.js +++ b/app/assets/javascripts/ci/catalog/graphql/settings.js @@ -1,33 +1,45 @@ import { componentsMockData } from '../constants'; +import getCurrentPage from './queries/client/get_current_page.query.graphql'; export const ciCatalogResourcesItemsCount = 20; export const CI_CATALOG_RESOURCE_TYPE = 'Ci::Catalog::Resource'; export const cacheConfig = { - cacheConfig: { - typePolicies: { - Query: { - fields: { - ciCatalogResource(_, { args, toReference }) { - return toReference({ - __typename: 'CiCatalogResource', - // Webpath is the fullpath with a leading slash - webPath: `/${args.fullPath}`, - }); - }, - ciCatalogResources: { - keyArgs: false, - }, + typePolicies: { + Query: { + fields: { + ciCatalogResource(_, { args, toReference }) { + return toReference({ + __typename: 'CiCatalogResource', + // Webpath is the fullpath with a leading slash + webPath: `/${args.fullPath}`, + }); + }, + ciCatalogResources: { + keyArgs: false, }, }, - CiCatalogResource: { - keyFields: ['webPath'], - }, + }, + CiCatalogResource: { + keyFields: ['webPath'], }, }, }; export const resolvers = { + Mutation: { + updateCurrentPage: (_, { pageNumber }, { cache }) => { + cache.writeQuery({ + query: getCurrentPage, + data: { + page: { + __typename: 'CatalogPage', + current: pageNumber, + }, + }, + }); + }, + }, CiCatalogResource: { components() { return componentsMockData; diff --git a/app/assets/javascripts/ci/catalog/graphql/typedefs.graphql b/app/assets/javascripts/ci/catalog/graphql/typedefs.graphql new file mode 100644 index 00000000000..8604fae0655 --- /dev/null +++ b/app/assets/javascripts/ci/catalog/graphql/typedefs.graphql @@ -0,0 +1,11 @@ +type CatalogPage { + current: Int +} + +extend type Query { + page: CatalogPage +} + +extend type Mutation { + updateCurrentPage(pageNumber: Int!): CatalogPage +} diff --git a/app/assets/javascripts/ci/catalog/index.js b/app/assets/javascripts/ci/catalog/index.js index 5815245506c..34866bfb821 100644 --- a/app/assets/javascripts/ci/catalog/index.js +++ b/app/assets/javascripts/ci/catalog/index.js @@ -2,6 +2,7 @@ import Vue from 'vue'; import VueApollo from 'vue-apollo'; import createDefaultClient from '~/lib/graphql'; import { cacheConfig, resolvers } from '~/ci/catalog/graphql/settings'; +import typeDefs from '~/ci/catalog/graphql/typedefs.graphql'; import GlobalCatalog from './global_catalog.vue'; import CiResourcesPage from './components/pages/ci_resources_page.vue'; @@ -19,7 +20,7 @@ export const initCatalog = (selector = '#js-ci-cd-catalog') => { Vue.use(VueApollo); const apolloProvider = new VueApollo({ - defaultClient: createDefaultClient(resolvers, cacheConfig), + defaultClient: createDefaultClient(resolvers, { cacheConfig, typeDefs }), }); return new Vue({ diff --git a/app/assets/javascripts/ci/job_details/components/log/line.vue b/app/assets/javascripts/ci/job_details/components/log/line.vue index 416f75372f9..6ff2bb766c7 100644 --- a/app/assets/javascripts/ci/job_details/components/log/line.vue +++ b/app/assets/javascripts/ci/job_details/components/log/line.vue @@ -68,7 +68,7 @@ export default { { class: [ 'js-log-line', - 'log-line', + 'job-log-line', { 'gl-bg-gray-700': isHighlighted || applyHashHighlight }, ], }, diff --git a/app/assets/javascripts/ci/job_details/components/log/line_header.vue b/app/assets/javascripts/ci/job_details/components/log/line_header.vue index 4e009afe8c9..4716f1e5162 100644 --- a/app/assets/javascripts/ci/job_details/components/log/line_header.vue +++ b/app/assets/javascripts/ci/job_details/components/log/line_header.vue @@ -68,7 +68,7 @@ export default {