From 0ebbf19f2d2b87e1f2aca1c59efde1aa6a766cf6 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 8 Jun 2021 15:10:00 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- .rubocop_todo.yml | 5 - GITALY_SERVER_VERSION | 2 +- .../behaviors/markdown/render_mermaid.js | 31 +++- .../javascripts/boards/components/board_form.vue | 30 +++- .../javascripts/emoji/awards_app/store/actions.js | 11 +- .../components/sidebar/labels_select/base.vue | 191 --------------------- .../sidebar/labels_select/dropdown_button.vue | 86 ---------- .../labels_select/dropdown_create_label.vue | 92 ---------- .../sidebar/labels_select/dropdown_footer.vue | 37 ---- .../sidebar/labels_select/dropdown_header.vue | 22 --- .../labels_select/dropdown_search_input.vue | 28 --- .../sidebar/labels_select/dropdown_title.vue | 31 ---- .../sidebar/labels_select/dropdown_value.vue | 65 ------- .../labels_select/dropdown_value_collapsed.vue | 55 ------ .../sidebar/labels_select_vue/dropdown_title.vue | 2 +- .../labels_select_vue/dropdown_value_collapsed.vue | 55 ++++++ .../labels_select_vue/labels_select_root.vue | 9 +- .../labels_select_widget/labels_select_root.vue | 2 +- .../resolvers/board_list_issues_resolver.rb | 4 +- app/graphql/resolvers/board_lists_resolver.rb | 4 +- .../resolvers/concerns/board_issue_filterable.rb | 35 ---- .../resolvers/concerns/board_item_filterable.rb | 35 ++++ app/models/ci/stage.rb | 3 + app/models/concerns/issue_available_features.rb | 4 +- app/serializers/fork_namespace_entity.rb | 6 +- .../recalculate_for_user_range_service.rb | 20 --- app/views/profiles/two_factor_auths/show.html.haml | 4 +- .../projects/merge_requests/invalid.html.haml | 36 ++-- .../user_refresh_over_user_range_worker.rb | 22 +-- ...sistency_for_user_refresh_over_range_worker.yml | 8 - .../development/honor_escaped_markdown.yml | 8 - ...ic_project_authorization_update_via_replica.yml | 8 - .../remove_release_notes_from_tags_api.yml | 8 + .../20210204124916_reply_by_email_enabled.yml | 14 +- ...of_geo_job_artifact_deleted_events_to_bigint.rb | 16 ++ ...rtifact_deleted_events_for_bigint_conversion.rb | 16 ++ ...initialize_conversion_of_ci_stages_to_bigint.rb | 16 ++ ...346_backfill_ci_stages_for_bigint_conversion.rb | 16 ++ ...ation_policies_linked_to_no_container_images.rb | 29 ++++ ...2715_backfill_draft_status_on_merge_requests.rb | 30 ++++ db/schema_migrations/20210518074332 | 1 + db/schema_migrations/20210525100539 | 1 + db/schema_migrations/20210525100603 | 1 + db/schema_migrations/20210526222715 | 1 + db/schema_migrations/20210608072312 | 1 + db/schema_migrations/20210608072346 | 1 + db/structure.sql | 26 ++- doc/administration/file_hooks.md | 2 +- doc/administration/troubleshooting/debug.md | 2 +- .../troubleshooting/gitlab_rails_cheat_sheet.md | 4 +- .../navigating_gitlab_via_rails_console.md | 2 +- doc/api/graphql/reference/index.md | 1 + doc/development/background_migrations.md | 14 +- doc/development/elasticsearch.md | 17 +- doc/development/migration_style_guide.md | 3 + doc/development/profiling.md | 2 +- doc/development/single_table_inheritance.md | 39 +++++ .../testing_guide/testing_rake_tasks.md | 8 +- doc/development/usage_ping/dictionary.md | 4 +- doc/update/index.md | 10 ++ file_hooks/examples/save_to_file.rb | 2 +- lib/api/tags.rb | 10 ++ lib/banzai/filter/markdown_pre_escape_filter.rb | 2 - ...ation_policies_linked_to_no_container_images.rb | 41 +++++ lib/gitlab/profiler.rb | 2 +- lib/gitlab/sidekiq_cluster/cli.rb | 2 +- lib/gitlab/sidekiq_middleware/server_metrics.rb | 13 ++ lib/gitlab/task_helpers.rb | 8 +- lib/gitlab/utils/measuring.rb | 4 +- lib/tasks/gitlab/artifacts/migrate.rake | 4 +- lib/tasks/gitlab/cleanup.rake | 2 +- lib/tasks/gitlab/db.rake | 2 +- lib/tasks/gitlab/docs/redirect.rake | 4 +- lib/tasks/gitlab/doctor/secrets.rake | 2 +- lib/tasks/gitlab/ldap.rake | 2 +- lib/tasks/gitlab/lfs/migrate.rake | 4 +- lib/tasks/gitlab/packages/composer.rake | 2 +- lib/tasks/gitlab/packages/events.rake | 4 +- lib/tasks/gitlab/packages/migrate.rake | 2 +- lib/tasks/gitlab/pages.rake | 6 +- lib/tasks/gitlab/terraform/migrate.rake | 2 +- lib/tasks/gitlab/uploads/migrate.rake | 4 +- lib/tasks/gitlab/uploads/sanitize.rake | 2 +- lib/tasks/gitlab/x509/update.rake | 2 +- lib/tasks/import.rake | 4 +- lib/tasks/tokens.rake | 2 +- locale/gitlab.pot | 3 - package.json | 2 +- qa/qa/page/component/issuable/sidebar.rb | 2 +- qa/qa/page/component/issue_board/show.rb | 4 +- qa/qa/tools/delete_projects.rb | 8 +- qa/qa/tools/delete_subgroups.rb | 8 +- qa/qa/tools/delete_test_ssh_keys.rb | 8 +- qa/qa/tools/generate_perf_testdata.rb | 28 +-- qa/qa/tools/revoke_all_personal_access_tokens.rb | 4 +- scripts/trigger-build | 2 +- spec/controllers/projects/forks_controller_spec.rb | 6 +- spec/features/markdown/mermaid_spec.rb | 30 ++++ .../emoji/awards_app/store/actions_spec.js | 187 +++++++++++--------- .../components/sidebar/labels_select/base_spec.js | 127 -------------- .../sidebar/labels_select/dropdown_button_spec.js | 90 ---------- .../labels_select/dropdown_create_label_spec.js | 103 ----------- .../sidebar/labels_select/dropdown_footer_spec.js | 75 -------- .../sidebar/labels_select/dropdown_header_spec.js | 39 ----- .../labels_select/dropdown_search_input_spec.js | 39 ----- .../sidebar/labels_select/dropdown_title_spec.js | 41 ----- .../labels_select/dropdown_value_collapsed_spec.js | 95 ---------- .../sidebar/labels_select/dropdown_value_spec.js | 84 --------- .../components/sidebar/labels_select/mock_data.js | 57 ------ .../dropdown_value_collapsed_spec.js | 95 ++++++++++ .../labels_select_vue/labels_select_root_spec.js | 2 +- .../sidebar/labels_select_vue/mock_data.js | 17 ++ spec/generator_helper.rb | 15 -- .../pipeline/plain_markdown_pipeline_spec.rb | 14 -- .../snowplow_event_definition_generator_spec.rb | 4 +- .../redis_hll_generator_spec.rb | 4 +- .../usage_metric_definition_generator_spec.rb | 4 +- ..._policies_linked_to_no_container_images_spec.rb | 142 +++++++++++++++ spec/lib/gitlab/file_hook_spec.rb | 2 +- .../import_export/project/export_task_spec.rb | 2 +- .../import_export/project/import_task_spec.rb | 2 +- spec/lib/gitlab/profiler_spec.rb | 8 +- .../sidekiq_middleware/server_metrics_spec.rb | 105 +++++++++++ spec/lib/gitlab/utils/measuring_spec.rb | 2 +- .../app/hashed_storage_all_projects_check_spec.rb | 7 +- .../app/hashed_storage_enabled_check_spec.rb | 7 +- .../system_check/orphans/namespace_check_spec.rb | 4 +- .../system_check/orphans/repository_check_spec.rb | 4 +- spec/lib/system_check/simple_executor_spec.rb | 5 +- spec/lib/system_check_spec.rb | 5 +- ...backfill_draft_status_on_merge_requests_spec.rb | 44 +++++ ..._policies_linked_to_no_container_images_spec.rb | 47 +++++ spec/rake_helper.rb | 6 - spec/requests/api/tags_spec.rb | 39 ++++- spec/serializers/fork_namespace_entity_spec.rb | 22 ++- .../recalculate_for_user_range_service_spec.rb | 21 --- spec/spec_helper.rb | 9 + spec/support/helpers/gitaly_setup.rb | 4 +- spec/support/helpers/rake_helpers.rb | 5 - spec/tasks/admin_mode_spec.rb | 2 +- spec/tasks/cache/clear/redis_spec.rb | 2 +- spec/tasks/config_lint_spec.rb | 4 +- spec/tasks/gettext_rake_spec.rb | 4 +- spec/tasks/gitlab/artifacts/check_rake_spec.rb | 2 +- spec/tasks/gitlab/artifacts/migrate_rake_spec.rb | 2 +- spec/tasks/gitlab/check_rake_spec.rb | 2 +- spec/tasks/gitlab/cleanup_rake_spec.rb | 2 +- spec/tasks/gitlab/container_registry_rake_spec.rb | 2 +- spec/tasks/gitlab/db_rake_spec.rb | 2 +- spec/tasks/gitlab/external_diffs_rake_spec.rb | 2 +- .../gitlab/generate_sample_prometheus_data_spec.rb | 2 +- spec/tasks/gitlab/git_rake_spec.rb | 2 +- spec/tasks/gitlab/gitaly_rake_spec.rb | 2 +- spec/tasks/gitlab/info_rake_spec.rb | 2 +- spec/tasks/gitlab/ldap_rake_spec.rb | 6 +- spec/tasks/gitlab/lfs/check_rake_spec.rb | 2 +- spec/tasks/gitlab/lfs/migrate_rake_spec.rb | 2 +- spec/tasks/gitlab/packages/composer_rake_spec.rb | 2 +- spec/tasks/gitlab/packages/events_rake_spec.rb | 2 +- spec/tasks/gitlab/packages/migrate_rake_spec.rb | 2 +- spec/tasks/gitlab/pages_rake_spec.rb | 2 +- spec/tasks/gitlab/password_rake_spec.rb | 2 +- spec/tasks/gitlab/praefect_rake_spec.rb | 2 +- spec/tasks/gitlab/seed/group_seed_rake_spec.rb | 2 +- spec/tasks/gitlab/shell_rake_spec.rb | 2 +- spec/tasks/gitlab/sidekiq_rake_spec.rb | 2 +- spec/tasks/gitlab/snippets_rake_spec.rb | 2 +- spec/tasks/gitlab/storage_rake_spec.rb | 2 +- spec/tasks/gitlab/terraform/migrate_rake_spec.rb | 4 +- spec/tasks/gitlab/update_templates_rake_spec.rb | 2 +- spec/tasks/gitlab/uploads/check_rake_spec.rb | 2 +- spec/tasks/gitlab/uploads/migrate_rake_spec.rb | 2 +- spec/tasks/gitlab/usage_data_rake_spec.rb | 2 +- spec/tasks/gitlab/user_management_rake_spec.rb | 2 +- spec/tasks/gitlab/web_hook_rake_spec.rb | 2 +- spec/tasks/gitlab/workhorse_rake_spec.rb | 2 +- spec/tasks/gitlab/x509/update_rake_spec.rb | 2 +- spec/tasks/migrate/schema_check_rake_spec.rb | 2 +- spec/tasks/tokens_spec.rb | 2 +- .../user_refresh_over_user_range_worker_spec.rb | 63 ++----- workhorse/gitaly_integration_test.go | 2 +- workhorse/gitaly_test.go | 2 +- workhorse/go.mod | 7 +- workhorse/go.sum | 74 +++++++- workhorse/internal/api/api.go | 2 +- workhorse/internal/git/archive.go | 2 +- workhorse/internal/git/archive_test.go | 2 +- workhorse/internal/git/blob.go | 2 +- workhorse/internal/git/diff.go | 2 +- workhorse/internal/git/format-patch.go | 2 +- workhorse/internal/git/snapshot.go | 2 +- workhorse/internal/git/upload-pack_test.go | 2 +- workhorse/internal/gitaly/blob.go | 4 +- workhorse/internal/gitaly/diff.go | 4 +- workhorse/internal/gitaly/gitaly.go | 6 +- workhorse/internal/gitaly/namespace.go | 2 +- workhorse/internal/gitaly/repository.go | 4 +- workhorse/internal/gitaly/smarthttp.go | 4 +- workhorse/internal/gitaly/unmarshal_test.go | 2 +- workhorse/internal/testhelper/gitaly.go | 2 +- workhorse/main_test.go | 2 +- yarn.lock | 8 +- 202 files changed, 1402 insertions(+), 1949 deletions(-) delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/base.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_button.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_create_label.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_footer.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_header.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_search_input.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_title.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_value.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_value_collapsed.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_vue/dropdown_value_collapsed.vue delete mode 100644 app/graphql/resolvers/concerns/board_issue_filterable.rb create mode 100644 app/graphql/resolvers/concerns/board_item_filterable.rb delete mode 100644 app/services/authorized_project_update/recalculate_for_user_range_service.rb delete mode 100644 config/feature_flags/development/delayed_consistency_for_user_refresh_over_range_worker.yml delete mode 100644 config/feature_flags/development/honor_escaped_markdown.yml delete mode 100644 config/feature_flags/development/periodic_project_authorization_update_via_replica.yml create mode 100644 config/feature_flags/development/remove_release_notes_from_tags_api.yml create mode 100644 db/migrate/20210525100539_initialize_conversion_of_geo_job_artifact_deleted_events_to_bigint.rb create mode 100644 db/migrate/20210525100603_backfill_geo_job_artifact_deleted_events_for_bigint_conversion.rb create mode 100644 db/migrate/20210608072312_initialize_conversion_of_ci_stages_to_bigint.rb create mode 100644 db/migrate/20210608072346_backfill_ci_stages_for_bigint_conversion.rb create mode 100644 db/post_migrate/20210518074332_schedule_disable_expiration_policies_linked_to_no_container_images.rb create mode 100644 db/post_migrate/20210526222715_backfill_draft_status_on_merge_requests.rb create mode 100644 db/schema_migrations/20210518074332 create mode 100644 db/schema_migrations/20210525100539 create mode 100644 db/schema_migrations/20210525100603 create mode 100644 db/schema_migrations/20210526222715 create mode 100644 db/schema_migrations/20210608072312 create mode 100644 db/schema_migrations/20210608072346 create mode 100644 lib/gitlab/background_migration/disable_expiration_policies_linked_to_no_container_images.rb delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/base_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_button_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_create_label_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_footer_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_header_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_search_input_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_title_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_value_collapsed_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_value_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/mock_data.js create mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select_vue/dropdown_value_collapsed_spec.js delete mode 100644 spec/generator_helper.rb create mode 100644 spec/lib/gitlab/background_migration/disable_expiration_policies_linked_to_no_container_images_spec.rb create mode 100644 spec/migrations/backfill_draft_status_on_merge_requests_spec.rb create mode 100644 spec/migrations/schedule_disable_expiration_policies_linked_to_no_container_images_spec.rb delete mode 100644 spec/services/authorized_project_update/recalculate_for_user_range_service_spec.rb diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 39b1518558d..ad1f7afa451 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -742,11 +742,6 @@ Style/ExplicitBlockArgument: Style/FormatString: Enabled: false -# Offense count: 67 -# Cop supports --auto-correct. -Style/GlobalStdStream: - Enabled: false - # Offense count: 897 # Configuration parameters: MinBodyLength. Style/GuardClause: diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index 22bf5bb98ec..2b2f7babe8b 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -8fd337f0f718f257ae72a66c464143a395af4c05 +df2eb006d241b399b8b6b877afab97713bb5c36a diff --git a/app/assets/javascripts/behaviors/markdown/render_mermaid.js b/app/assets/javascripts/behaviors/markdown/render_mermaid.js index f9b474f9ec9..5fecadf2794 100644 --- a/app/assets/javascripts/behaviors/markdown/render_mermaid.js +++ b/app/assets/javascripts/behaviors/markdown/render_mermaid.js @@ -30,6 +30,24 @@ let renderedMermaidBlocks = 0; let mermaidModule = {}; +// Whitelist pages where we won't impose any restrictions +// on mermaid rendering +const WHITELISTED_PAGES = [ + // Group wiki + 'groups:wikis:show', + 'groups:wikis:edit', + 'groups:wikis:create', + + // Project wiki + 'projects:wikis:show', + 'projects:wikis:edit', + 'projects:wikis:create', + + // Project files + 'projects:show', + 'projects:blob:show', +]; + export function initMermaid(mermaid) { let theme = 'neutral'; @@ -120,8 +138,10 @@ function renderMermaidEl(el) { function renderMermaids($els) { if (!$els.length) return; + const pageName = document.querySelector('body').dataset.page; + // A diagram may have been truncated in search results which will cause errors, so abort the render. - if (document.querySelector('body').dataset.page === 'search:show') return; + if (pageName === 'search:show') return; importMermaidModule() .then(() => { @@ -140,10 +160,11 @@ function renderMermaids($els) { * up the entire thread and causing a DoS. */ if ( - (source && source.length > MAX_CHAR_LIMIT) || - renderedChars > MAX_CHAR_LIMIT || - renderedMermaidBlocks >= MAX_MERMAID_BLOCK_LIMIT || - shouldLazyLoadMermaidBlock(source) + !WHITELISTED_PAGES.includes(pageName) && + ((source && source.length > MAX_CHAR_LIMIT) || + renderedChars > MAX_CHAR_LIMIT || + renderedMermaidBlocks >= MAX_MERMAID_BLOCK_LIMIT || + shouldLazyLoadMermaidBlock(source)) ) { const html = `