From 0ebbf19f2d2b87e1f2aca1c59efde1aa6a766cf6 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 8 Jun 2021 15:10:00 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .rubocop_todo.yml | 5 - GITALY_SERVER_VERSION | 2 +- .../behaviors/markdown/render_mermaid.js | 31 ++- .../boards/components/board_form.vue | 30 ++- .../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_vue/dropdown_title.vue | 2 +- .../dropdown_value_collapsed.vue | 0 .../labels_select_vue/labels_select_root.vue | 9 +- .../labels_select_root.vue | 2 +- .../resolvers/board_list_issues_resolver.rb | 4 +- app/graphql/resolvers/board_lists_resolver.rb | 4 +- ...filterable.rb => board_item_filterable.rb} | 6 +- app/models/ci/stage.rb | 3 + .../concerns/issue_available_features.rb | 4 +- app/serializers/fork_namespace_entity.rb | 6 +- .../recalculate_for_user_range_service.rb | 20 -- .../profiles/two_factor_auths/show.html.haml | 4 +- .../projects/merge_requests/invalid.html.haml | 36 ++-- .../user_refresh_over_user_range_worker.rb | 22 +- ...ncy_for_user_refresh_over_range_worker.yml | 8 - ...oject_authorization_update_via_replica.yml | 8 - ...=> remove_release_notes_from_tags_api.yml} | 10 +- .../20210204124916_reply_by_email_enabled.yml | 14 +- ...o_job_artifact_deleted_events_to_bigint.rb | 16 ++ ...ct_deleted_events_for_bigint_conversion.rb | 16 ++ ...alize_conversion_of_ci_stages_to_bigint.rb | 16 ++ ...ackfill_ci_stages_for_bigint_conversion.rb | 16 ++ ..._policies_linked_to_no_container_images.rb | 29 +++ ...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 +- .../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 + .../filter/markdown_pre_escape_filter.rb | 2 - ..._policies_linked_to_no_container_images.rb | 41 ++++ lib/gitlab/profiler.rb | 2 +- lib/gitlab/sidekiq_cluster/cli.rb | 2 +- .../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 +-- .../revoke_all_personal_access_tokens.rb | 4 +- scripts/trigger-build | 2 +- .../projects/forks_controller_spec.rb | 6 +- spec/features/markdown/mermaid_spec.rb | 30 +++ .../emoji/awards_app/store/actions_spec.js | 189 +++++++++-------- .../sidebar/labels_select/base_spec.js | 127 ------------ .../labels_select/dropdown_button_spec.js | 90 --------- .../dropdown_create_label_spec.js | 103 ---------- .../labels_select/dropdown_footer_spec.js | 75 ------- .../labels_select/dropdown_header_spec.js | 39 ---- .../dropdown_search_input_spec.js | 39 ---- .../labels_select/dropdown_title_spec.js | 41 ---- .../labels_select/dropdown_value_spec.js | 84 -------- .../sidebar/labels_select/mock_data.js | 57 ------ .../dropdown_value_collapsed_spec.js | 4 +- .../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 -- ...nowplow_event_definition_generator_spec.rb | 4 +- .../redis_hll_generator_spec.rb | 4 +- .../usage_metric_definition_generator_spec.rb | 4 +- ...cies_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 +- .../hashed_storage_all_projects_check_spec.rb | 7 +- .../app/hashed_storage_enabled_check_spec.rb | 7 +- .../orphans/namespace_check_spec.rb | 4 +- .../orphans/repository_check_spec.rb | 4 +- spec/lib/system_check/simple_executor_spec.rb | 5 +- spec/lib/system_check_spec.rb | 5 +- ...ill_draft_status_on_merge_requests_spec.rb | 44 ++++ ...cies_linked_to_no_container_images_spec.rb | 47 +++++ spec/rake_helper.rb | 6 - spec/requests/api/tags_spec.rb | 39 +++- .../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 +- .../tasks/gitlab/artifacts/check_rake_spec.rb | 2 +- .../gitlab/artifacts/migrate_rake_spec.rb | 2 +- spec/tasks/gitlab/check_rake_spec.rb | 2 +- spec/tasks/gitlab/cleanup_rake_spec.rb | 2 +- .../gitlab/container_registry_rake_spec.rb | 2 +- spec/tasks/gitlab/db_rake_spec.rb | 2 +- spec/tasks/gitlab/external_diffs_rake_spec.rb | 2 +- .../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 +- .../gitlab/packages/composer_rake_spec.rb | 2 +- .../tasks/gitlab/packages/events_rake_spec.rb | 2 +- .../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 +- .../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 +- .../gitlab/terraform/migrate_rake_spec.rb | 4 +- .../gitlab/update_templates_rake_spec.rb | 2 +- spec/tasks/gitlab/uploads/check_rake_spec.rb | 2 +- .../tasks/gitlab/uploads/migrate_rake_spec.rb | 2 +- spec/tasks/gitlab/usage_data_rake_spec.rb | 2 +- .../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 +- ...ser_refresh_over_user_range_worker_spec.rb | 75 ++----- 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 +- 198 files changed, 1226 insertions(+), 1773 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 rename app/assets/javascripts/vue_shared/components/sidebar/{labels_select => labels_select_vue}/dropdown_value_collapsed.vue (100%) rename app/graphql/resolvers/concerns/{board_issue_filterable.rb => board_item_filterable.rb} (83%) 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/periodic_project_authorization_update_via_replica.yml rename config/feature_flags/development/{honor_escaped_markdown.yml => remove_release_notes_from_tags_api.yml} (62%) 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_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/mock_data.js rename spec/frontend/vue_shared/components/sidebar/{labels_select => labels_select_vue}/dropdown_value_collapsed_spec.js (95%) 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 = `