From 34ee0b51d6b76bf987ce5e1cbe6a4f6cccc73910 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 14 Jul 2023 21:13:45 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/CODEOWNERS | 96 +- .rubocop_todo/performance/regexp_match.yml | 23 - .../javascripts/observability/client.js | 44 +- .../components/observability_container.vue | 8 +- .../components/skeleton/index.vue | 51 +- .../javascripts/observability/constants.js | 1 + .../observability/mock_traces.json | 2862 ++++++++++++++++- .../groups_and_projects/components/app.vue | 62 + .../graphql/queries/projects.query.graphql | 24 + .../groups_and_projects/graphql/resolvers.js | 14 + .../groups_and_projects/index.js | 24 + .../groups_and_projects/index.js | 3 + .../components/pipeline_details_header.vue | 4 +- .../profile/components/user_achievements.vue | 2 +- .../components/tracing_empty_state.vue | 46 + .../tracing/components/tracing_list.vue | 81 +- .../tracing/components/tracing_table_list.vue | 89 + .../projects_list/projects_list.vue | 12 +- .../projects_list/projects_list_item.vue | 147 +- app/controllers/concerns/internal_redirect.rb | 2 +- .../import/bitbucket_server_controller.rb | 4 +- app/finders/ci/pipelines_finder.rb | 2 +- app/helpers/application_helper.rb | 4 +- app/helpers/colors_helper.rb | 2 +- app/helpers/emails_helper.rb | 2 +- app/models/commit_range.rb | 2 +- app/models/commit_status.rb | 2 +- app/models/concerns/ignorable_columns.rb | 2 +- app/models/external_issue.rb | 2 +- app/models/hooks/web_hook_log.rb | 2 +- app/models/ml/model.rb | 1 + app/models/ml/model_version.rb | 38 + app/models/projects/topic.rb | 2 +- app/models/repository.rb | 2 +- app/models/user.rb | 2 +- app/models/user_preference.rb | 1 - app/services/bulk_imports/create_service.rb | 4 +- .../cleanup/project_namespace_service.rb | 2 +- .../cleanup/service_account_service.rb | 2 +- app/services/draft_notes/publish_service.rb | 7 + .../projects/update_remote_mirror_service.rb | 2 +- app/uploaders/file_uploader.rb | 2 +- app/validators/abstract_path_validator.rb | 2 +- app/validators/cluster_name_validator.rb | 2 +- app/validators/devise_email_validator.rb | 2 +- app/validators/line_code_validator.rb | 2 +- .../groups_and_projects.html.haml | 2 + app/views/projects/edit.html.haml | 4 +- db/docs/ml_model_versions.yml | 10 + ...20230707090835_create_ml_model_versions.rb | 25 + ...dd_fk_on_ml_model_versions_to_ml_models.rb | 15 + ...add_fk_on_ml_model_versions_to_packages.rb | 15 + db/schema_migrations/20230707090835 | 1 + db/schema_migrations/20230707094002 | 1 + db/schema_migrations/20230707094003 | 1 + db/structure.sql | 42 + .../geo/replication/location_aware_git_url.md | 2 +- doc/administration/get_started.md | 2 +- .../settings/deprecated_api_rate_limits.md | 54 + .../settings/external_authorization.md | 144 + doc/administration/settings/help_page.md | 2 +- .../settings/img/bulk_push_event_v12_4.png | Bin 0 -> 9386 bytes ...sification_label_on_project_page_v14_8.png | Bin 0 -> 17728 bytes ...ion_shared_runner_details_input_v14_10.png | Bin 0 -> 10770 bytes ...tegration_shared_runner_details_v14_10.png | Bin 0 -> 9849 bytes .../custom_git_clone_url_for_https_v12_4.png | Bin 0 -> 11171 bytes .../settings/img/domain_denylist_v14_1.png | Bin 0 -> 31473 bytes ...otification_for_unknown_sign_ins_v13_2.png | Bin 0 -> 12539 bytes .../img/file_template_user_dropdown.png | Bin 0 -> 8067 bytes .../settings/img/mirror_settings_v15_7.png | Bin 0 -> 10322 bytes .../settings/img/protected_paths.png | Bin 0 -> 56448 bytes .../img/push_event_activities_limit_v12_4.png | Bin 0 -> 15739 bytes .../rate_limit_on_issues_creation_v14_2.png | Bin 0 -> 10102 bytes .../img/rate_limits_on_raw_endpoints.png | Bin 0 -> 20962 bytes .../settings/img/restricted_url.png | Bin 0 -> 18191 bytes .../settings/img/sign_up_terms.png | Bin 0 -> 18174 bytes .../img/suggest_pipeline_banner_v14_5.png | Bin 0 -> 11137 bytes .../settings/img/two_factor_grace_period.png | Bin 0 -> 17591 bytes .../settings/img/update-available.png | Bin 0 -> 26769 bytes doc/administration/settings/index.md | 4 +- .../settings/instance_template_repository.md | 2 +- .../settings/protected_paths.md | 2 +- .../settings/push_event_activities_limit.md | 4 +- .../settings/rate_limit_on_issues_creation.md | 2 +- .../settings/rate_limits_on_raw_endpoints.md | 2 +- .../settings/sign_in_restrictions.md | 4 +- .../settings/sign_up_restrictions.md | 2 +- doc/administration/settings/terms.md | 2 +- .../visibility_and_access_controls.md | 363 +++ doc/api/groups.md | 2 +- doc/api/projects.md | 2 +- doc/api/settings.md | 2 +- doc/ci/ci_cd_for_external_repos/index.md | 2 +- doc/development/api_graphql_styleguide.md | 6 + .../settings/deprecated_api_rate_limits.md | 57 +- .../settings/external_authorization.md | 147 +- .../visibility_and_access_controls.md | 366 +-- doc/user/gitlab_com/index.md | 2 +- doc/user/group/access_and_permissions.md | 6 +- doc/user/group/import/index.md | 4 +- doc/user/group/index.md | 6 +- doc/user/permissions.md | 2 +- doc/user/profile/index.md | 2 +- doc/user/project/import/bitbucket.md | 2 +- doc/user/project/import/bitbucket_server.md | 2 +- doc/user/project/import/fogbugz.md | 2 +- doc/user/project/import/gitea.md | 2 +- doc/user/project/import/github.md | 6 +- doc/user/project/import/manifest.md | 2 +- doc/user/project/import/repo_by_url.md | 2 +- .../project/repository/code_suggestions.md | 19 +- doc/user/project/repository/mirror/index.md | 2 +- doc/user/project/repository/mirror/pull.md | 9 +- doc/user/project/settings/import_export.md | 2 +- doc/user/public_access.md | 4 +- locale/gitlab.pot | 27 + spec/factories/ml/model_versions.rb | 16 + spec/frontend/observability/client_spec.js | 66 + spec/frontend/observability/skeleton_spec.js | 7 +- .../components/app_spec.js | 99 + .../components/mock_data.js | 98 + .../components/tracing_empty_state_spec.js | 44 + .../tracing/components/tracing_list_spec.js | 131 + .../components/tracing_table_list_spec.js | 63 + .../projects_list/projects_list_item_spec.js | 18 +- .../projects_list/projects_list_spec.js | 1 + spec/helpers/application_helper_spec.rb | 54 + spec/models/ml/model_spec.rb | 1 + spec/models/ml/model_version_spec.rb | 90 + 129 files changed, 4874 insertions(+), 900 deletions(-) create mode 100644 app/assets/javascripts/organizations/groups_and_projects/components/app.vue create mode 100644 app/assets/javascripts/organizations/groups_and_projects/graphql/queries/projects.query.graphql create mode 100644 app/assets/javascripts/organizations/groups_and_projects/graphql/resolvers.js create mode 100644 app/assets/javascripts/organizations/groups_and_projects/index.js create mode 100644 app/assets/javascripts/pages/organizations/organizations/groups_and_projects/index.js create mode 100644 app/assets/javascripts/tracing/components/tracing_empty_state.vue create mode 100644 app/assets/javascripts/tracing/components/tracing_table_list.vue create mode 100644 app/models/ml/model_version.rb create mode 100644 db/docs/ml_model_versions.yml create mode 100644 db/migrate/20230707090835_create_ml_model_versions.rb create mode 100644 db/migrate/20230707094002_add_fk_on_ml_model_versions_to_ml_models.rb create mode 100644 db/migrate/20230707094003_add_fk_on_ml_model_versions_to_packages.rb create mode 100644 db/schema_migrations/20230707090835 create mode 100644 db/schema_migrations/20230707094002 create mode 100644 db/schema_migrations/20230707094003 create mode 100644 doc/administration/settings/deprecated_api_rate_limits.md create mode 100644 doc/administration/settings/external_authorization.md create mode 100644 doc/administration/settings/img/bulk_push_event_v12_4.png create mode 100644 doc/administration/settings/img/classification_label_on_project_page_v14_8.png create mode 100644 doc/administration/settings/img/continuous_integration_shared_runner_details_input_v14_10.png create mode 100644 doc/administration/settings/img/continuous_integration_shared_runner_details_v14_10.png create mode 100644 doc/administration/settings/img/custom_git_clone_url_for_https_v12_4.png create mode 100644 doc/administration/settings/img/domain_denylist_v14_1.png create mode 100644 doc/administration/settings/img/email_notification_for_unknown_sign_ins_v13_2.png create mode 100644 doc/administration/settings/img/file_template_user_dropdown.png create mode 100644 doc/administration/settings/img/mirror_settings_v15_7.png create mode 100644 doc/administration/settings/img/protected_paths.png create mode 100644 doc/administration/settings/img/push_event_activities_limit_v12_4.png create mode 100644 doc/administration/settings/img/rate_limit_on_issues_creation_v14_2.png create mode 100644 doc/administration/settings/img/rate_limits_on_raw_endpoints.png create mode 100644 doc/administration/settings/img/restricted_url.png create mode 100644 doc/administration/settings/img/sign_up_terms.png create mode 100644 doc/administration/settings/img/suggest_pipeline_banner_v14_5.png create mode 100644 doc/administration/settings/img/two_factor_grace_period.png create mode 100644 doc/administration/settings/img/update-available.png create mode 100644 doc/administration/settings/visibility_and_access_controls.md create mode 100644 spec/factories/ml/model_versions.rb create mode 100644 spec/frontend/observability/client_spec.js create mode 100644 spec/frontend/organizations/groups_and_projects/components/app_spec.js create mode 100644 spec/frontend/organizations/groups_and_projects/components/mock_data.js create mode 100644 spec/frontend/tracing/components/tracing_empty_state_spec.js create mode 100644 spec/frontend/tracing/components/tracing_list_spec.js create mode 100644 spec/frontend/tracing/components/tracing_table_list_spec.js create mode 100644 spec/models/ml/model_version_spec.rb diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index 58e481dea77..743141f1f9b 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -396,24 +396,31 @@ lib/gitlab/checks/** ^[Documentation Pages] # This block is managed by the rake script at lib/tasks/gitlab/tw/codeowners.rake, manual updates will be overwritten! # Begin rake-managed-docs-block +/doc/administration/analytics/ @lciutacu /doc/administration/application_settings_cache.md @jglassman1 -/doc/administration/audit_event_streaming.md @eread +/doc/administration/audit_event_streaming/ @eread /doc/administration/audit_events.md @eread /doc/administration/audit_reports.md @eread /doc/administration/auditor_users.md @jglassman1 /doc/administration/auth/ @jglassman1 +/doc/administration/backup_restore/ @axil /doc/administration/cicd.md @marcel.amirault /doc/administration/clusters/ @phillipwells /doc/administration/compliance.md @eread /doc/administration/configure.md @axil /doc/administration/consul.md @axil +/doc/administration/credentials_inventory.md @jglassman1 +/doc/administration/custom_project_templates.md @aqualls @msedlakjakubowski +/doc/administration/diff_limits.md @aqualls @msedlakjakubowski /doc/administration/docs_self_host.md @axil /doc/administration/encrypted_configuration.md @axil /doc/administration/environment_variables.md @axil /doc/administration/external_pipeline_validation.md @marcel.amirault +/doc/administration/external_users.md @jglassman1 /doc/administration/feature_flags.md @axil /doc/administration/file_hooks.md @eread @ashrafkhamis /doc/administration/geo/ @axil +/doc/administration/geo_sites.md @axil /doc/administration/get_started.md @kpaizee /doc/administration/git_protocol.md @aqualls @msedlakjakubowski /doc/administration/gitaly/ @eread @@ -431,14 +438,20 @@ lib/gitlab/checks/** /doc/administration/issue_closing_pattern.md @aqualls /doc/administration/job_artifacts.md @marcel.amirault /doc/administration/job_logs.md @fneill +/doc/administration/labels.md @msedlakjakubowski /doc/administration/lfs/ @aqualls @msedlakjakubowski /doc/administration/libravatar.md @axil +/doc/administration/license.md @fneill +/doc/administration/license_file.md @fneill /doc/administration/load_balancer.md @axil /doc/administration/logs/ @axil /doc/administration/logs/index.md @msedlakjakubowski /doc/administration/maintenance_mode/ @axil /doc/administration/merge_request_diffs.md @aqualls @msedlakjakubowski +/doc/administration/merge_requests_approvals.md @aqualls @msedlakjakubowski +/doc/administration/moderate_users.md @jglassman1 /doc/administration/monitoring/github_imports.md @eread @ashrafkhamis +/doc/administration/monitoring/health_check.md @msedlakjakubowski /doc/administration/monitoring/index.md @msedlakjakubowski /doc/administration/monitoring/ip_allowlist.md @jglassman1 /doc/administration/monitoring/performance/gitlab_configuration.md @msedlakjakubowski @@ -471,11 +484,36 @@ lib/gitlab/checks/** /doc/administration/reference_architectures/ @axil /doc/administration/reply_by_email.md @msedlakjakubowski /doc/administration/reply_by_email_postfix_setup.md @axil +/doc/administration/reporting/ @phillipwells +/doc/administration/reporting/spamcheck.md @axil /doc/administration/repository_checks.md @eread /doc/administration/repository_storage_paths.md @eread /doc/administration/repository_storage_types.md @eread /doc/administration/restart_gitlab.md @axil +/doc/administration/review_abuse_reports.md @phillipwells /doc/administration/server_hooks.md @eread +/doc/administration/settings/account_and_limit_settings.md @aqualls @msedlakjakubowski +/doc/administration/settings/deprecated_api_rate_limits.md @aqualls @msedlakjakubowski +/doc/administration/settings/git_lfs_rate_limits.md @aqualls @msedlakjakubowski +/doc/administration/settings/gitaly_timeouts.md @eread +/doc/administration/settings/import_export_rate_limits.md @eread @ashrafkhamis +/doc/administration/settings/incident_management_rate_limits.md @msedlakjakubowski +/doc/administration/settings/index.md @aqualls @msedlakjakubowski +/doc/administration/settings/instance_template_repository.md @aqualls @msedlakjakubowski +/doc/administration/settings/package_registry_rate_limits.md @phillipwells +/doc/administration/settings/project_integration_management.md @eread @ashrafkhamis +/doc/administration/settings/push_event_activities_limit.md @aqualls @msedlakjakubowski +/doc/administration/settings/rate_limit_on_issues_creation.md @msedlakjakubowski +/doc/administration/settings/rate_limit_on_notes_creation.md @msedlakjakubowski +/doc/administration/settings/rate_limit_on_pipelines_creation.md @marcel.amirault +/doc/administration/settings/rate_limit_on_projects_api.md @lciutacu +/doc/administration/settings/rate_limit_on_users_api.md @jglassman1 +/doc/administration/settings/rate_limits_on_git_ssh_operations.md @aqualls @msedlakjakubowski +/doc/administration/settings/scim_setup.md @jglassman1 +/doc/administration/settings/security_and_compliance.md @rdickenson +/doc/administration/settings/terraform_limits.md @phillipwells +/doc/administration/settings/third_party_offers.md @lciutacu +/doc/administration/settings/visibility_and_access_controls.md @aqualls @msedlakjakubowski /doc/administration/sidekiq/ @axil /doc/administration/sidekiq/sidekiq_memory_killer.md @jglassman1 /doc/administration/silent_mode/ @axil @@ -505,6 +543,7 @@ lib/gitlab/checks/** /doc/api/commits.md @aqualls @msedlakjakubowski /doc/api/container_registry.md @marcel.amirault /doc/api/custom_attributes.md @msedlakjakubowski +/doc/api/database_migrations.md @aqualls /doc/api/dependencies.md @rdickenson /doc/api/dependency_proxy.md @marcel.amirault /doc/api/deploy_keys.md @phillipwells @@ -594,7 +633,7 @@ lib/gitlab/checks/** /doc/api/project_aliases.md @aqualls @msedlakjakubowski /doc/api/project_badges.md @aqualls @msedlakjakubowski /doc/api/project_clusters.md @phillipwells -/doc/api/project_import_export.md @aqualls @msedlakjakubowski +/doc/api/project_import_export.md @eread @ashrafkhamis /doc/api/project_job_token_scopes.md @marcel.amirault /doc/api/project_level_variables.md @marcel.amirault /doc/api/project_relations_export.md @eread @ashrafkhamis @@ -689,12 +728,10 @@ lib/gitlab/checks/** /doc/development/distribution/ @axil /doc/development/documentation/ @sselhorn /doc/development/export_csv.md @eread @ashrafkhamis +/doc/development/fe_guide/ @sselhorn /doc/development/fe_guide/customizable_dashboards.md @lciutacu -/doc/development/fe_guide/dark_mode.md @sselhorn -/doc/development/fe_guide/graphql.md @sselhorn /doc/development/fe_guide/merge_request_widget_extensions.md @aqualls /doc/development/fe_guide/source_editor.md @aqualls @msedlakjakubowski -/doc/development/fe_guide/view_component.md @sselhorn /doc/development/feature_categorization/ @sselhorn /doc/development/feature_development.md @sselhorn /doc/development/feature_flags/ @sselhorn @@ -715,6 +752,7 @@ lib/gitlab/checks/** /doc/development/integrations/ @eread @ashrafkhamis /doc/development/integrations/secure.md @rdickenson /doc/development/integrations/secure_partner_integration.md @rdickenson +/doc/development/internal_analytics/ @lciutacu /doc/development/internal_api/ @aqualls @msedlakjakubowski /doc/development/internal_users.md @sselhorn /doc/development/issuable-like-models.md @msedlakjakubowski @@ -734,6 +772,7 @@ lib/gitlab/checks/** /doc/development/packages/cleanup_policies.md @marcel.amirault /doc/development/packages/dependency_proxy.md @marcel.amirault /doc/development/permissions.md @jglassman1 +/doc/development/permissions/ @jglassman1 /doc/development/policies.md @jglassman1 /doc/development/project_templates.md @aqualls @msedlakjakubowski /doc/development/prometheus_metrics.md @msedlakjakubowski @@ -743,8 +782,6 @@ lib/gitlab/checks/** /doc/development/search/ @ashrafkhamis /doc/development/sec/ @rdickenson /doc/development/secure_coding_guidelines.md @sselhorn -/doc/development/service_ping/ @lciutacu -/doc/development/snowplow/ @lciutacu /doc/development/spam_protection_and_captcha/ @phillipwells /doc/development/sql.md @aqualls /doc/development/testing_guide/ @sselhorn @@ -773,8 +810,6 @@ lib/gitlab/checks/** /doc/integration/mattermost/ @axil /doc/integration/partner_marketplace.md @fneill /doc/integration/recaptcha.md @phillipwells -/doc/integration/security_partners/ @rdickenson -/doc/integration/slash_commands.md @eread @ashrafkhamis /doc/integration/sourcegraph.md @aqualls @msedlakjakubowski /doc/integration/trello_power_up.md @eread @ashrafkhamis /doc/integration/vault.md @phillipwells @@ -783,8 +818,6 @@ lib/gitlab/checks/** /doc/operations/index.md @msedlakjakubowski /doc/policy/ @axil /doc/raketasks/ @axil -/doc/raketasks/generate_sample_prometheus_data.md @msedlakjakubowski -/doc/raketasks/migrate_snippets.md @ashrafkhamis /doc/raketasks/spdx.md @rdickenson /doc/raketasks/x509_signatures.md @aqualls @msedlakjakubowski /doc/security/ @jglassman1 @@ -802,53 +835,21 @@ lib/gitlab/checks/** /doc/tutorials/boards_for_teams/ @msedlakjakubowski /doc/tutorials/compliance_pipeline/ @eread /doc/tutorials/configure_gitlab_runner_to_use_gke/ @fneill +/doc/tutorials/container_scanning/ @rdickenson /doc/tutorials/convert_personal_namespace_to_group/ @lciutacu +/doc/tutorials/dependency_scanning.md @rdickenson /doc/tutorials/fuzz_testing/ @rdickenson /doc/tutorials/move_personal_project_to_group/ @lciutacu +/doc/tutorials/protected_workflow/ @aqualls /doc/tutorials/scan_result_policy/ @rdickenson /doc/update/ @axil /doc/update/background_migrations.md @aqualls -/doc/user/admin_area/analytics/ @lciutacu -/doc/user/admin_area/credentials_inventory.md @jglassman1 -/doc/user/admin_area/custom_project_templates.md @aqualls @msedlakjakubowski -/doc/user/admin_area/diff_limits.md @aqualls @msedlakjakubowski -/doc/user/admin_area/external_users.md @jglassman1 -/doc/user/admin_area/geo_sites.md @axil -/doc/user/admin_area/labels.md @msedlakjakubowski -/doc/user/admin_area/license.md @fneill -/doc/user/admin_area/license_file.md @fneill -/doc/user/admin_area/merge_requests_approvals.md @aqualls @msedlakjakubowski -/doc/user/admin_area/moderate_users.md @jglassman1 -/doc/user/admin_area/monitoring/ @msedlakjakubowski -/doc/user/admin_area/reporting/git_abuse_rate_limit.md @phillipwells -/doc/user/admin_area/reporting/spamcheck.md @axil -/doc/user/admin_area/review_abuse_reports.md @phillipwells -/doc/user/admin_area/settings/account_and_limit_settings.md @aqualls @msedlakjakubowski /doc/user/admin_area/settings/continuous_integration.md @marcel.amirault -/doc/user/admin_area/settings/deprecated_api_rate_limits.md @aqualls @msedlakjakubowski /doc/user/admin_area/settings/email.md @msedlakjakubowski /doc/user/admin_area/settings/external_authorization.md @jglassman1 /doc/user/admin_area/settings/files_api_rate_limits.md @aqualls @msedlakjakubowski -/doc/user/admin_area/settings/git_lfs_rate_limits.md @aqualls @msedlakjakubowski -/doc/user/admin_area/settings/gitaly_timeouts.md @eread -/doc/user/admin_area/settings/import_export_rate_limits.md @eread @ashrafkhamis -/doc/user/admin_area/settings/incident_management_rate_limits.md @msedlakjakubowski -/doc/user/admin_area/settings/index.md @aqualls @msedlakjakubowski -/doc/user/admin_area/settings/instance_template_repository.md @aqualls @msedlakjakubowski -/doc/user/admin_area/settings/package_registry_rate_limits.md @phillipwells -/doc/user/admin_area/settings/project_integration_management.md @eread @ashrafkhamis -/doc/user/admin_area/settings/push_event_activities_limit.md @aqualls @msedlakjakubowski -/doc/user/admin_area/settings/rate_limit_on_issues_creation.md @msedlakjakubowski -/doc/user/admin_area/settings/rate_limit_on_notes_creation.md @msedlakjakubowski -/doc/user/admin_area/settings/rate_limit_on_pipelines_creation.md @marcel.amirault -/doc/user/admin_area/settings/rate_limit_on_projects_api.md @lciutacu -/doc/user/admin_area/settings/rate_limit_on_users_api.md @jglassman1 -/doc/user/admin_area/settings/scim_setup.md @jglassman1 -/doc/user/admin_area/settings/security_and_compliance.md @rdickenson -/doc/user/admin_area/settings/terraform_limits.md @phillipwells -/doc/user/admin_area/settings/third_party_offers.md @lciutacu +/doc/user/admin_area/settings/slack_app.md @eread @ashrafkhamis /doc/user/admin_area/settings/usage_statistics.md @lciutacu -/doc/user/admin_area/settings/visibility_and_access_controls.md @aqualls @msedlakjakubowski /doc/user/analytics/ @lciutacu /doc/user/analytics/ci_cd_analytics.md @phillipwells /doc/user/application_security/ @rdickenson @@ -957,6 +958,7 @@ lib/gitlab/checks/** /doc/user/report_abuse.md @phillipwells /doc/user/reserved_names.md @lciutacu /doc/user/search/ @ashrafkhamis +/doc/user/search/command_palette.md @sselhorn /doc/user/shortcuts.md @ashrafkhamis /doc/user/snippets.md @aqualls @msedlakjakubowski /doc/user/ssh.md @jglassman1 diff --git a/.rubocop_todo/performance/regexp_match.yml b/.rubocop_todo/performance/regexp_match.yml index 888552f876c..2c80a74c538 100644 --- a/.rubocop_todo/performance/regexp_match.yml +++ b/.rubocop_todo/performance/regexp_match.yml @@ -3,29 +3,6 @@ Performance/RegexpMatch: Details: grace period Exclude: - - 'app/controllers/concerns/internal_redirect.rb' - - 'app/controllers/import/bitbucket_server_controller.rb' - - 'app/finders/ci/pipelines_finder.rb' - - 'app/helpers/application_helper.rb' - - 'app/helpers/colors_helper.rb' - - 'app/helpers/emails_helper.rb' - - 'app/models/commit_range.rb' - - 'app/models/commit_status.rb' - - 'app/models/concerns/ignorable_columns.rb' - - 'app/models/external_issue.rb' - - 'app/models/hooks/web_hook_log.rb' - - 'app/models/projects/topic.rb' - - 'app/models/repository.rb' - - 'app/models/user.rb' - - 'app/services/bulk_imports/create_service.rb' - - 'app/services/clusters/cleanup/project_namespace_service.rb' - - 'app/services/clusters/cleanup/service_account_service.rb' - - 'app/services/projects/update_remote_mirror_service.rb' - - 'app/uploaders/file_uploader.rb' - - 'app/validators/abstract_path_validator.rb' - - 'app/validators/cluster_name_validator.rb' - - 'app/validators/devise_email_validator.rb' - - 'app/validators/line_code_validator.rb' - 'config/initializers/wikicloth_redos_patch.rb' - 'ee/app/controllers/concerns/audit_events/enforces_valid_date_params.rb' - 'ee/lib/ee/banzai/filter/references/vulnerability_reference_filter.rb' diff --git a/app/assets/javascripts/observability/client.js b/app/assets/javascripts/observability/client.js index 6e39d2b450b..251c165e7dd 100644 --- a/app/assets/javascripts/observability/client.js +++ b/app/assets/javascripts/observability/client.js @@ -1,34 +1,36 @@ -// import axios from '~/lib/utils/axios_utils'; -import * as mockData from './mock_traces.json'; - -function enableTraces(provisioningUrl) { - console.log(`Enabling tracing - ${provisioningUrl}`); // eslint-disable-line no-console +import axios from '~/lib/utils/axios_utils'; +function enableTraces() { + // TODO remove mocks https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/2271 return new Promise((resolve) => { setTimeout(() => { resolve(); - }, 500); - }); -} - -function isTracingEnabled(provisioningUrl) { - console.log(`Checking status - ${provisioningUrl}`); // eslint-disable-line no-console - - return new Promise((resolve) => { - setTimeout(() => { - resolve(false); }, 1000); }); } -function fetchTraces(tracingUrl) { - console.log(`Fetching traces from ${tracingUrl}`); // eslint-disable-line no-console - - // axios.get(`${this.endpoint}/v1/jaeger/22/api/services`, { credentials: 'include' }); +function isTracingEnabled() { + // TODO remove mocks https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/2271 return new Promise((resolve) => { setTimeout(() => { - resolve(mockData.data); - }, 2000); + // Currently relying on manual provisioning, hence assuming tracing is enabled + resolve(true); + }, 1000); + }); +} + +async function fetchTraces(tracingUrl) { + const { data } = await axios.get(tracingUrl, { withCredentials: true }); + if (!Array.isArray(data.traces)) { + throw new Error('traces are missing/invalid in the response.'); // eslint-disable-line @gitlab/require-i18n-strings + } + return data.traces.map((t) => { + // aggregating duration on the client for now, but expecting to be coming from the backend + const duration = t.spans.reduce((acc, cur) => acc + cur.duration_nano, 0); + return { + ...t, + duration: duration / 1000, + }; }); } diff --git a/app/assets/javascripts/observability/components/observability_container.vue b/app/assets/javascripts/observability/components/observability_container.vue index 7fb352cc171..4306f531ab5 100644 --- a/app/assets/javascripts/observability/components/observability_container.vue +++ b/app/assets/javascripts/observability/components/observability_container.vue @@ -1,8 +1,10 @@ + + diff --git a/app/assets/javascripts/organizations/groups_and_projects/graphql/queries/projects.query.graphql b/app/assets/javascripts/organizations/groups_and_projects/graphql/queries/projects.query.graphql new file mode 100644 index 00000000000..b4cb8c607d4 --- /dev/null +++ b/app/assets/javascripts/organizations/groups_and_projects/graphql/queries/projects.query.graphql @@ -0,0 +1,24 @@ +query getOrganizationProjects { + organization @client { + id + projects { + nodes { + id + nameWithNamespace + webUrl + topics + forksCount + avatarUrl + starCount + visibility + openIssuesCount + descriptionHtml + issuesAccessLevel + forkingAccessLevel + accessLevel { + integerValue + } + } + } + } +} diff --git a/app/assets/javascripts/organizations/groups_and_projects/graphql/resolvers.js b/app/assets/javascripts/organizations/groups_and_projects/graphql/resolvers.js new file mode 100644 index 00000000000..794410c2a78 --- /dev/null +++ b/app/assets/javascripts/organizations/groups_and_projects/graphql/resolvers.js @@ -0,0 +1,14 @@ +import { organizationProjects } from 'jest/organizations/groups_and_projects/components/mock_data'; + +export default { + Query: { + organization: async () => { + // Simulate API loading + await new Promise((resolve) => { + setTimeout(resolve, 1000); + }); + + return organizationProjects; + }, + }, +}; diff --git a/app/assets/javascripts/organizations/groups_and_projects/index.js b/app/assets/javascripts/organizations/groups_and_projects/index.js new file mode 100644 index 00000000000..d0790bcc040 --- /dev/null +++ b/app/assets/javascripts/organizations/groups_and_projects/index.js @@ -0,0 +1,24 @@ +import Vue from 'vue'; +import VueApollo from 'vue-apollo'; +import createDefaultClient from '~/lib/graphql'; +import resolvers from './graphql/resolvers'; +import App from './components/app.vue'; + +export const initOrganizationsGroupsAndProjects = () => { + const el = document.getElementById('js-organizations-groups-and-projects'); + + if (!el) return false; + + const apolloProvider = new VueApollo({ + defaultClient: createDefaultClient(resolvers), + }); + + return new Vue({ + el, + name: 'OrganizationsGroupsAndProjects', + apolloProvider, + render(createElement) { + return createElement(App); + }, + }); +}; diff --git a/app/assets/javascripts/pages/organizations/organizations/groups_and_projects/index.js b/app/assets/javascripts/pages/organizations/organizations/groups_and_projects/index.js new file mode 100644 index 00000000000..50afa5a75ae --- /dev/null +++ b/app/assets/javascripts/pages/organizations/organizations/groups_and_projects/index.js @@ -0,0 +1,3 @@ +import { initOrganizationsGroupsAndProjects } from '~/organizations/groups_and_projects'; + +initOrganizationsGroupsAndProjects(); diff --git a/app/assets/javascripts/pipelines/components/pipeline_details_header.vue b/app/assets/javascripts/pipelines/components/pipeline_details_header.vue index 50be63ec90c..c53321f82bd 100644 --- a/app/assets/javascripts/pipelines/components/pipeline_details_header.vue +++ b/app/assets/javascripts/pipelines/components/pipeline_details_header.vue @@ -404,7 +404,7 @@ export default {
@@ -571,7 +571,7 @@ export default {
-
+

{{ diff --git a/app/assets/javascripts/tracing/components/tracing_empty_state.vue b/app/assets/javascripts/tracing/components/tracing_empty_state.vue new file mode 100644 index 00000000000..4cb3bd6d9f0 --- /dev/null +++ b/app/assets/javascripts/tracing/components/tracing_empty_state.vue @@ -0,0 +1,46 @@ + + + diff --git a/app/assets/javascripts/tracing/components/tracing_list.vue b/app/assets/javascripts/tracing/components/tracing_list.vue index 38acda8a1b4..294e520d7ac 100644 --- a/app/assets/javascripts/tracing/components/tracing_list.vue +++ b/app/assets/javascripts/tracing/components/tracing_list.vue @@ -1,14 +1,93 @@ diff --git a/app/assets/javascripts/tracing/components/tracing_table_list.vue b/app/assets/javascripts/tracing/components/tracing_table_list.vue new file mode 100644 index 00000000000..7e8c296a7d4 --- /dev/null +++ b/app/assets/javascripts/tracing/components/tracing_table_list.vue @@ -0,0 +1,89 @@ + + + diff --git a/app/assets/javascripts/vue_shared/components/projects_list/projects_list.vue b/app/assets/javascripts/vue_shared/components/projects_list/projects_list.vue index 11aa7b91745..cb8220a0407 100644 --- a/app/assets/javascripts/vue_shared/components/projects_list/projects_list.vue +++ b/app/assets/javascripts/vue_shared/components/projects_list/projects_list.vue @@ -30,12 +30,22 @@ export default { type: Array, required: true, }, + showProjectIcon: { + type: Boolean, + required: false, + default: false, + }, }, }; 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 a6535e4a514..d919f76e684 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 @@ -34,6 +34,7 @@ export default { moreTopics: __('More topics'), updated: __('Updated'), }, + avatarSize: { default: 32, md: 48 }, safeHtmlConfig: { ADD_TAGS: ['gl-emoji'], }, @@ -78,6 +79,11 @@ export default { type: Object, required: true, }, + showProjectIcon: { + type: Boolean, + required: false, + default: false, + }, }, data() { return { @@ -153,72 +159,87 @@ export default {