From 8b0ef132360c3657f05376a4725e7b03c151b46e Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 3 Jun 2020 18:08:28 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- CHANGELOG-EE.md | 4 + CHANGELOG.md | 7 + .../alert_management/components/alert_details.vue | 6 +- .../components/design_note_pin.vue | 2 +- .../components/design_notes/design_discussion.vue | 146 +++++++++++-- .../components/design_notes/design_note.vue | 40 ++-- .../components/design_notes/design_reply_form.vue | 3 +- .../design_notes/toggle_replies_widget.vue | 70 +++++++ .../components/design_overlay.vue | 38 ++-- .../components/design_presentation.vue | 10 +- .../components/design_sidebar.vue | 170 +++++++++++++++ .../graphql/fragments/design.fragment.graphql | 2 + .../graphql/fragments/designNote.fragment.graphql | 1 + .../discussion_resolved_status.fragment.graphql | 9 + .../toggle_resolve_discussion.mutation.graphql | 17 ++ .../design_management/pages/design/index.vue | 94 ++++----- .../design_management/utils/cache_update.js | 4 + .../utils/design_management_utils.js | 3 +- .../registry/explorer/components/cli_commands.vue | 2 +- .../explorer/components/image_list_row.vue | 2 +- .../explorer/components/project_empty_state.vue | 7 +- .../explorer/components/registry_header.vue | 2 +- .../javascripts/registry/explorer/constants.js | 131 ------------ .../registry/explorer/constants/details.js | 49 +++++ .../explorer/constants/expiration_policies.js | 11 + .../registry/explorer/constants/index.js | 4 + .../registry/explorer/constants/list.js | 48 +++++ .../registry/explorer/constants/quick_start.js | 9 + .../registry/explorer/pages/details.vue | 2 +- .../javascripts/registry/explorer/pages/list.vue | 2 +- app/assets/javascripts/registry/explorer/router.js | 4 +- .../registry/explorer/stores/actions.js | 2 +- .../registry/explorer/stores/mutations.js | 2 +- .../components/design_management/design.scss | 43 +++- app/helpers/issues_helper.rb | 39 ---- app/policies/project_policy.rb | 1 + ...ow-comment-pins-on-designs-to-be-resolvable.yml | 5 + changelogs/unreleased/220058.yml | 5 + config/webpack.config.js | 2 +- doc/.vale/gitlab/Acronyms.yml | 1 + doc/.vale/gitlab/Profanity.yml | 30 --- .../reference_architectures/10k_users.md | 7 +- .../reference_architectures/1k_users.md | 5 +- .../reference_architectures/25k_users.md | 7 +- .../reference_architectures/2k_users.md | 5 +- .../reference_architectures/3k_users.md | 7 +- .../reference_architectures/50k_users.md | 7 +- .../reference_architectures/5k_users.md | 7 +- .../reference_architectures/index.md | 5 +- doc/api/releases/index.md | 15 +- doc/api/releases/links.md | 28 ++- doc/development/README.md | 2 +- doc/development/documentation/styleguide.md | 32 ++- doc/development/emails.md | 15 ++ doc/development/sidekiq_style_guide.md | 80 ++++++-- doc/user/incident_management/index.md | 77 +++---- doc/user/project/issues/design_management.md | 16 ++ .../resolve_design-discussion_checkbox_v13_1.png | Bin 0 -> 56634 bytes .../img/resolve_design-discussion_icon_v13_1.png | Bin 0 -> 36747 bytes doc/user/project/service_desk.md | 3 +- .../filter/external_issue_reference_filter.rb | 17 +- lib/banzai/filter/issue_reference_filter.rb | 12 +- lib/banzai/filter/reference_filter.rb | 6 + locale/gitlab.pot | 30 ++- qa/qa/resource/project_milestone.rb | 7 +- .../dev_ops_score_controller_spec.rb | 2 +- spec/controllers/invites_controller_spec.rb | 2 +- .../ldap/omniauth_callbacks_controller_spec.rb | 2 +- spec/controllers/metrics_controller_spec.rb | 2 +- .../notification_settings_controller_spec.rb | 2 +- .../oauth/applications_controller_spec.rb | 2 +- .../oauth/authorizations_controller_spec.rb | 2 +- .../authorized_applications_controller_spec.rb | 2 +- .../omniauth_callbacks_controller_spec.rb | 2 +- spec/controllers/passwords_controller_spec.rb | 2 +- .../profiles/accounts_controller_spec.rb | 2 +- .../profiles/avatars_controller_spec.rb | 2 +- .../controllers/profiles/emails_controller_spec.rb | 2 +- spec/controllers/profiles/keys_controller_spec.rb | 2 +- .../profiles/notifications_controller_spec.rb | 2 +- .../personal_access_tokens_controller_spec.rb | 2 +- .../profiles/preferences_controller_spec.rb | 2 +- .../profiles/two_factor_auths_controller_spec.rb | 2 +- spec/controllers/profiles_controller_spec.rb | 2 +- .../projects/alert_management_controller_spec.rb | 2 +- .../alerting/notifications_controller_spec.rb | 2 +- .../projects/artifacts_controller_spec.rb | 2 +- .../autocomplete_sources_controller_spec.rb | 2 +- .../projects/avatars_controller_spec.rb | 2 +- .../controllers/projects/badges_controller_spec.rb | 2 +- spec/controllers/projects/blame_controller_spec.rb | 2 +- spec/controllers/projects/blob_controller_spec.rb | 2 +- .../controllers/projects/boards_controller_spec.rb | 2 +- .../projects/branches_controller_spec.rb | 2 +- ...y_build_group_report_results_controller_spec.rb | 2 +- .../projects/ci/lints_controller_spec.rb | 2 +- .../clusters/applications_controller_spec.rb | 2 +- .../projects/clusters_controller_spec.rb | 2 +- .../controllers/projects/commit_controller_spec.rb | 2 +- .../projects/commits_controller_spec.rb | 2 +- .../projects/compare_controller_spec.rb | 2 +- .../cycle_analytics/events_controller_spec.rb | 2 +- .../projects/cycle_analytics_controller_spec.rb | 2 +- .../projects/deploy_keys_controller_spec.rb | 2 +- .../projects/deployments_controller_spec.rb | 2 +- .../designs/raw_images_controller_spec.rb | 2 +- .../designs/resized_image_controller_spec.rb | 2 +- .../projects/discussions_controller_spec.rb | 2 +- .../environments/prometheus_api_controller_spec.rb | 2 +- .../environments/sample_metrics_controller_spec.rb | 2 +- .../projects/environments_controller_spec.rb | 2 +- .../error_tracking/projects_controller_spec.rb | 2 +- .../error_tracking/stack_traces_controller_spec.rb | 2 +- .../projects/error_tracking_controller_spec.rb | 2 +- .../projects/find_file_controller_spec.rb | 2 +- spec/controllers/projects/forks_controller_spec.rb | 2 +- .../projects/grafana_api_controller_spec.rb | 2 +- .../controllers/projects/graphs_controller_spec.rb | 2 +- .../projects/group_links_controller_spec.rb | 2 +- spec/controllers/projects/hooks_controller_spec.rb | 2 +- .../projects/import/jira_controller_spec.rb | 2 +- .../projects/imports_controller_spec.rb | 2 +- .../controllers/projects/issues_controller_spec.rb | 2 +- spec/controllers/projects/jobs_controller_spec.rb | 2 +- .../controllers/projects/labels_controller_spec.rb | 2 +- spec/controllers/projects/logs_controller_spec.rb | 2 +- .../projects/mattermosts_controller_spec.rb | 2 +- .../merge_requests/conflicts_controller_spec.rb | 2 +- .../merge_requests/content_controller_spec.rb | 2 +- .../merge_requests/creations_controller_spec.rb | 2 +- .../merge_requests/diffs_controller_spec.rb | 2 +- .../merge_requests/drafts_controller_spec.rb | 2 +- .../projects/merge_requests_controller_spec.rb | 2 +- .../projects/milestones_controller_spec.rb | 2 +- .../projects/mirrors_controller_spec.rb | 2 +- spec/controllers/projects/notes_controller_spec.rb | 2 +- spec/controllers/projects/pages_controller_spec.rb | 2 +- .../projects/pages_domains_controller_spec.rb | 2 +- .../dashboards_controller_spec.rb | 2 +- .../projects/pipeline_schedules_controller_spec.rb | 2 +- .../projects/pipelines_controller_spec.rb | 2 +- .../projects/pipelines_settings_controller_spec.rb | 2 +- .../projects/project_members_controller_spec.rb | 2 +- .../projects/prometheus/alerts_controller_spec.rb | 2 +- .../projects/prometheus/metrics_controller_spec.rb | 2 +- .../projects/protected_branches_controller_spec.rb | 2 +- .../projects/protected_tags_controller_spec.rb | 2 +- spec/controllers/projects/raw_controller_spec.rb | 2 +- spec/controllers/projects/refs_controller_spec.rb | 2 +- .../registry/repositories_controller_spec.rb | 2 +- .../projects/registry/tags_controller_spec.rb | 2 +- .../projects/releases/evidences_controller_spec.rb | 2 +- .../projects/releases_controller_spec.rb | 2 +- .../projects/repositories_controller_spec.rb | 2 +- .../projects/runners_controller_spec.rb | 2 +- .../serverless/functions_controller_spec.rb | 2 +- .../projects/service_hook_logs_controller_spec.rb | 2 +- .../projects/services_controller_spec.rb | 2 +- .../settings/access_tokens_controller_spec.rb | 2 +- .../projects/settings/ci_cd_controller_spec.rb | 2 +- .../settings/integrations_controller_spec.rb | 2 +- .../settings/operations_controller_spec.rb | 2 +- .../settings/repository_controller_spec.rb | 2 +- .../projects/snippets_controller_spec.rb | 2 +- .../controllers/projects/stages_controller_spec.rb | 2 +- .../projects/starrers_controller_spec.rb | 2 +- .../projects/static_site_editor_controller_spec.rb | 2 +- .../projects/tags/releases_controller_spec.rb | 2 +- spec/controllers/projects/tags_controller_spec.rb | 2 +- .../projects/templates_controller_spec.rb | 2 +- spec/controllers/projects/todos_controller_spec.rb | 2 +- spec/controllers/projects/tree_controller_spec.rb | 2 +- .../projects/uploads_controller_spec.rb | 2 +- .../projects/usage_ping_controller_spec.rb | 2 +- .../projects/variables_controller_spec.rb | 2 +- .../projects/web_ide_terminals_controller_spec.rb | 2 +- spec/controllers/projects/wikis_controller_spec.rb | 2 +- spec/controllers/projects_controller_spec.rb | 2 +- spec/controllers/registrations_controller_spec.rb | 2 +- .../repositories/git_http_controller_spec.rb | 2 +- spec/controllers/root_controller_spec.rb | 2 +- spec/controllers/search_controller_spec.rb | 2 +- .../sent_notifications_controller_spec.rb | 2 +- spec/controllers/sessions_controller_spec.rb | 2 +- spec/controllers/snippets/notes_controller_spec.rb | 2 +- spec/controllers/snippets_controller_spec.rb | 2 +- spec/controllers/uploads_controller_spec.rb | 8 +- spec/controllers/user_callouts_controller_spec.rb | 2 +- spec/controllers/users/terms_controller_spec.rb | 2 +- spec/controllers/users_controller_spec.rb | 2 +- spec/db/development/import_common_metrics_spec.rb | 2 +- spec/db/production/import_common_metrics_spec.rb | 2 +- spec/db/production/settings_spec.rb | 2 +- spec/db/schema_spec.rb | 2 +- spec/dependencies/omniauth_saml_spec.rb | 2 +- spec/factories_spec.rb | 2 +- spec/features/abuse_report_spec.rb | 2 +- spec/features/action_cable_logging_spec.rb | 2 +- spec/features/admin/admin_abuse_reports_spec.rb | 2 +- spec/features/admin/admin_appearance_spec.rb | 2 +- .../admin/admin_broadcast_messages_spec.rb | 2 +- spec/features/admin/admin_browse_spam_logs_spec.rb | 2 +- spec/features/admin/admin_builds_spec.rb | 2 +- .../admin_disables_git_access_protocol_spec.rb | 2 +- .../admin/admin_disables_two_factor_spec.rb | 2 +- spec/features/admin/admin_groups_spec.rb | 2 +- spec/features/admin/admin_health_check_spec.rb | 2 +- spec/features/admin/admin_hook_logs_spec.rb | 2 +- spec/features/admin/admin_hooks_spec.rb | 2 +- spec/features/admin/admin_mode/login_spec.rb | 2 +- spec/features/admin/admin_mode/logout_spec.rb | 2 +- spec/features/admin/admin_mode/workers_spec.rb | 2 +- spec/features/admin/admin_mode_spec.rb | 2 +- spec/features/admin/admin_projects_spec.rb | 2 +- .../features/admin/admin_requests_profiles_spec.rb | 2 +- spec/features/projects/pipeline_schedules_spec.rb | 2 +- spec/features/projects/pipelines/pipeline_spec.rb | 2 +- spec/features/projects/pipelines/pipelines_spec.rb | 2 +- .../raw/user_interacts_with_raw_endpoint_spec.rb | 2 +- .../releases/user_views_edit_release_spec.rb | 2 +- .../projects/releases/user_views_release_spec.rb | 2 +- .../projects/releases/user_views_releases_spec.rb | 2 +- spec/features/projects/remote_mirror_spec.rb | 2 +- .../features/projects/serverless/functions_spec.rb | 2 +- .../projects/services/disable_triggers_spec.rb | 2 +- .../services/prometheus_external_alerts_spec.rb | 2 +- .../services/user_activates_alerts_spec.rb | 2 +- .../projects/services/user_activates_asana_spec.rb | 2 +- .../services/user_activates_assembla_spec.rb | 2 +- .../user_activates_atlassian_bamboo_ci_spec.rb | 2 +- .../services/user_activates_emails_on_push_spec.rb | 2 +- .../services/user_activates_flowdock_spec.rb | 2 +- .../services/user_activates_hipchat_spec.rb | 2 +- .../projects/services/user_activates_irker_spec.rb | 2 +- .../services/user_activates_issue_tracker_spec.rb | 2 +- .../user_activates_jetbrains_teamcity_ci_spec.rb | 2 +- .../projects/services/user_activates_jira_spec.rb | 2 +- ...user_activates_mattermost_slash_command_spec.rb | 2 +- .../services/user_activates_packagist_spec.rb | 2 +- .../services/user_activates_pivotaltracker_spec.rb | 2 +- .../services/user_activates_prometheus_spec.rb | 2 +- .../services/user_activates_pushover_spec.rb | 2 +- .../user_activates_slack_notifications_spec.rb | 2 +- .../user_activates_slack_slash_command_spec.rb | 2 +- .../projects/services/user_views_services_spec.rb | 2 +- .../projects/settings/access_tokens_spec.rb | 2 +- ...external_authorization_service_settings_spec.rb | 2 +- .../settings/forked_project_settings_spec.rb | 2 +- .../projects/settings/lfs_settings_spec.rb | 2 +- .../projects/settings/operations_settings_spec.rb | 2 +- .../projects/settings/pipelines_settings_spec.rb | 2 +- .../projects/settings/project_badges_spec.rb | 2 +- .../projects/settings/project_settings_spec.rb | 2 +- .../projects/settings/registry_settings_spec.rb | 2 +- .../projects/settings/repository_settings_spec.rb | 2 +- .../settings/user_archives_project_spec.rb | 2 +- .../projects/settings/user_changes_avatar_spec.rb | 2 +- .../settings/user_changes_default_branch_spec.rb | 2 +- .../user_interacts_with_deploy_keys_spec.rb | 2 +- .../user_manages_merge_requests_settings_spec.rb | 2 +- .../settings/user_manages_project_members_spec.rb | 2 +- .../settings/user_renames_a_project_spec.rb | 2 +- .../user_sees_revoke_deploy_token_modal_spec.rb | 2 +- .../projects/settings/user_tags_project_spec.rb | 2 +- .../settings/user_transfers_a_project_spec.rb | 2 +- .../projects/settings/visibility_settings_spec.rb | 2 +- .../projects/settings/webhooks_settings_spec.rb | 2 +- ...eloper_views_empty_project_instructions_spec.rb | 2 +- .../projects/show/download_buttons_spec.rb | 2 +- spec/features/projects/show/no_password_spec.rb | 2 +- spec/features/projects/show/redirects_spec.rb | 2 +- spec/features/projects/show/rss_spec.rb | 2 +- .../user_interacts_with_auto_devops_banner_spec.rb | 2 +- .../show/user_interacts_with_stars_spec.rb | 2 +- .../show/user_manages_notifications_spec.rb | 2 +- .../show/user_sees_collaboration_links_spec.rb | 2 +- .../user_sees_deletion_failure_message_spec.rb | 2 +- .../show/user_sees_git_instructions_spec.rb | 2 +- .../show/user_sees_last_commit_ci_status_spec.rb | 2 +- .../projects/show/user_sees_readme_spec.rb | 2 +- .../show/user_sees_setup_shortcut_buttons_spec.rb | 2 +- .../projects/show/user_uploads_files_spec.rb | 2 +- .../projects/snippets/create_snippet_spec.rb | 4 +- spec/features/projects/snippets/show_spec.rb | 2 +- .../snippets/user_comments_on_snippet_spec.rb | 2 +- .../projects/snippets/user_deletes_snippet_spec.rb | 2 +- .../projects/snippets/user_updates_snippet_spec.rb | 2 +- .../projects/snippets/user_views_snippets_spec.rb | 2 +- spec/features/projects/sourcegraph_csp_spec.rb | 2 +- spec/features/projects/sub_group_issuables_spec.rb | 2 +- .../projects/tags/download_buttons_spec.rb | 2 +- .../features/projects/tags/user_edits_tags_spec.rb | 2 +- .../features/projects/tags/user_views_tags_spec.rb | 2 +- .../projects/tree/create_directory_spec.rb | 2 +- spec/features/projects/tree/create_file_spec.rb | 2 +- spec/features/projects/tree/rss_spec.rb | 2 +- spec/features/projects/tree/tree_show_spec.rb | 2 +- spec/features/projects/tree/upload_file_spec.rb | 2 +- .../user_changes_project_visibility_spec.rb | 2 +- .../features/projects/user_creates_project_spec.rb | 2 +- spec/features/projects/user_sees_sidebar_spec.rb | 2 +- .../projects/user_sees_user_popover_spec.rb | 2 +- spec/features/projects/user_uses_shortcuts_spec.rb | 2 +- .../projects/user_views_empty_project_spec.rb | 2 +- spec/features/projects/view_on_env_spec.rb | 2 +- .../projects/wiki/markdown_preview_spec.rb | 2 +- spec/features/projects/wiki/shortcuts_spec.rb | 2 +- .../projects/wiki/user_creates_wiki_page_spec.rb | 2 +- .../projects/wiki/user_deletes_wiki_page_spec.rb | 2 +- .../wiki/user_git_access_wiki_page_spec.rb | 2 +- .../projects/wiki/user_updates_wiki_page_spec.rb | 2 +- .../projects/wiki/user_views_wiki_empty_spec.rb | 2 +- .../wiki/user_views_wiki_in_project_page_spec.rb | 2 +- .../projects/wiki/user_views_wiki_page_spec.rb | 2 +- .../projects/wiki/user_views_wiki_pages_spec.rb | 2 +- ...users_views_asciidoc_page_with_includes_spec.rb | 2 +- spec/features/projects_spec.rb | 2 +- spec/features/protected_branches_spec.rb | 2 +- spec/features/protected_tags_spec.rb | 2 +- spec/features/read_only_spec.rb | 2 +- spec/features/reportable_note/commit_spec.rb | 2 +- spec/features/reportable_note/issue_spec.rb | 2 +- .../features/reportable_note/merge_request_spec.rb | 2 +- spec/features/reportable_note/snippets_spec.rb | 2 +- spec/features/runners_spec.rb | 2 +- .../features/search/user_searches_for_code_spec.rb | 2 +- .../search/user_searches_for_comments_spec.rb | 2 +- .../search/user_searches_for_commits_spec.rb | 2 +- .../search/user_searches_for_issues_spec.rb | 2 +- .../user_searches_for_merge_requests_spec.rb | 2 +- .../search/user_searches_for_milestones_spec.rb | 2 +- .../search/user_searches_for_projects_spec.rb | 2 +- .../search/user_searches_for_users_spec.rb | 2 +- .../search/user_searches_for_wiki_pages_spec.rb | 2 +- .../search/user_uses_header_search_field_spec.rb | 2 +- .../search/user_uses_search_filters_spec.rb | 2 +- spec/features/security/admin_access_spec.rb | 2 +- spec/features/security/dashboard_access_spec.rb | 2 +- .../security/group/internal_access_spec.rb | 2 +- .../features/security/group/private_access_spec.rb | 2 +- spec/features/security/group/public_access_spec.rb | 2 +- spec/features/security/profile_access_spec.rb | 2 +- .../security/project/internal_access_spec.rb | 2 +- .../security/project/private_access_spec.rb | 2 +- .../security/project/public_access_spec.rb | 2 +- .../project/snippet/internal_access_spec.rb | 2 +- .../project/snippet/private_access_spec.rb | 2 +- .../security/project/snippet/public_access_spec.rb | 2 +- spec/features/sentry_js_spec.rb | 6 +- spec/features/signed_commits_spec.rb | 2 +- spec/features/snippets/embedded_snippet_spec.rb | 2 +- spec/features/snippets/explore_spec.rb | 2 +- spec/features/snippets/internal_snippet_spec.rb | 2 +- .../snippets/notes_on_personal_snippets_spec.rb | 2 +- spec/features/snippets/private_snippets_spec.rb | 2 +- spec/features/snippets/public_snippets_spec.rb | 2 +- spec/features/snippets/search_snippets_spec.rb | 2 +- spec/features/snippets/show_spec.rb | 2 +- spec/features/snippets/spam_snippets_spec.rb | 4 +- .../features/snippets/user_creates_snippet_spec.rb | 4 +- .../features/snippets/user_deletes_snippet_spec.rb | 2 +- spec/features/snippets/user_edits_snippet_spec.rb | 2 +- spec/features/snippets/user_snippets_spec.rb | 2 +- spec/features/snippets_spec.rb | 2 +- spec/features/static_site_editor_spec.rb | 2 +- .../components/design_note_pin_spec.js | 2 +- .../__snapshots__/design_note_spec.js.snap | 8 +- .../design_notes/design_discussion_spec.js | 215 ++++++++++++++++--- .../design_notes/toggle_replies_widget_spec.js | 98 +++++++++ .../components/design_overlay_spec.js | 57 ++++-- .../components/design_presentation_spec.js | 9 +- .../components/design_sidebar_spec.js | 228 +++++++++++++++++++++ .../frontend/design_management/mock_data/design.js | 20 ++ spec/frontend/design_management/mock_data/notes.js | 14 ++ .../pages/design/__snapshots__/index_spec.js.snap | 114 +++++++---- .../design_management/pages/design/index_spec.js | 78 +------ .../utils/design_management_utils_spec.js | 8 +- spec/helpers/issues_helper_spec.rb | 53 ----- .../filter/external_issue_reference_filter_spec.rb | 28 ++- .../banzai/filter/issue_reference_filter_spec.rb | 34 +-- spec/policies/project_policy_spec.rb | 61 ++++-- spec/requests/api/markdown_spec.rb | 15 +- 382 files changed, 2075 insertions(+), 1002 deletions(-) create mode 100644 app/assets/javascripts/design_management/components/design_notes/toggle_replies_widget.vue create mode 100644 app/assets/javascripts/design_management/components/design_sidebar.vue create mode 100644 app/assets/javascripts/design_management/graphql/fragments/discussion_resolved_status.fragment.graphql create mode 100644 app/assets/javascripts/design_management/graphql/mutations/toggle_resolve_discussion.mutation.graphql delete mode 100644 app/assets/javascripts/registry/explorer/constants.js create mode 100644 app/assets/javascripts/registry/explorer/constants/details.js create mode 100644 app/assets/javascripts/registry/explorer/constants/expiration_policies.js create mode 100644 app/assets/javascripts/registry/explorer/constants/index.js create mode 100644 app/assets/javascripts/registry/explorer/constants/list.js create mode 100644 app/assets/javascripts/registry/explorer/constants/quick_start.js create mode 100644 changelogs/unreleased/13049-design-view-allow-comment-pins-on-designs-to-be-resolvable.yml create mode 100644 changelogs/unreleased/220058.yml delete mode 100644 doc/.vale/gitlab/Profanity.yml create mode 100644 doc/user/project/issues/img/resolve_design-discussion_checkbox_v13_1.png create mode 100644 doc/user/project/issues/img/resolve_design-discussion_icon_v13_1.png create mode 100644 spec/frontend/design_management/components/design_notes/toggle_replies_widget_spec.js create mode 100644 spec/frontend/design_management/components/design_sidebar_spec.js diff --git a/CHANGELOG-EE.md b/CHANGELOG-EE.md index 33d9e2bd312..380c9fb1743 100644 --- a/CHANGELOG-EE.md +++ b/CHANGELOG-EE.md @@ -1,5 +1,9 @@ Please view this file on the master branch, on stable branches it's out of date. +## 13.0.4 (2020-06-03) + +- No changes. + ## 13.0.3 (2020-05-29) - No changes. diff --git a/CHANGELOG.md b/CHANGELOG.md index f10b2518b5f..a35497a0582 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ documentation](doc/development/changelog.md) for instructions on adding your own entry. +## 13.0.4 (2020-06-03) + +### Security (1 change) + +- Prevent fetching repository code with unauthorized ci token. + + ## 13.0.3 (2020-05-29) ### Fixed (8 changes, 1 of them is from the community) diff --git a/app/assets/javascripts/alert_management/components/alert_details.vue b/app/assets/javascripts/alert_management/components/alert_details.vue index 5165a2271a3..99194007551 100644 --- a/app/assets/javascripts/alert_management/components/alert_details.vue +++ b/app/assets/javascripts/alert_management/components/alert_details.vue @@ -177,7 +177,11 @@ export default { {{ createIssueError }}
-
+
diff --git a/app/assets/javascripts/design_management/components/design_note_pin.vue b/app/assets/javascripts/design_management/components/design_note_pin.vue index 7827f2ce204..0811397fbad 100644 --- a/app/assets/javascripts/design_management/components/design_note_pin.vue +++ b/app/assets/javascripts/design_management/components/design_note_pin.vue @@ -13,7 +13,7 @@ export default { required: true, }, label: { - type: String, + type: Number, required: false, default: null, }, diff --git a/app/assets/javascripts/design_management/components/design_notes/design_discussion.vue b/app/assets/javascripts/design_management/components/design_notes/design_discussion.vue index 486211e5986..49cf7265c0d 100644 --- a/app/assets/javascripts/design_management/components/design_notes/design_discussion.vue +++ b/app/assets/javascripts/design_management/components/design_notes/design_discussion.vue @@ -1,14 +1,19 @@ + + diff --git a/app/assets/javascripts/design_management/components/design_overlay.vue b/app/assets/javascripts/design_management/components/design_overlay.vue index beb51647821..46f5754d8d9 100644 --- a/app/assets/javascripts/design_management/components/design_overlay.vue +++ b/app/assets/javascripts/design_management/components/design_overlay.vue @@ -33,6 +33,10 @@ export default { required: false, default: false, }, + resolvedDiscussionsExpanded: { + type: Boolean, + required: true, + }, }, apollo: { activeDiscussion: { @@ -236,6 +240,9 @@ export default { isNoteInactive(note) { return this.activeDiscussion.id && this.activeDiscussion.id !== note.id; }, + designPinClass(note) { + return { inactive: this.isNoteInactive(note), resolved: note.resolved }; + }, }, }; @@ -254,20 +261,23 @@ export default { data-qa-selector="design_image_button" @mouseup="onAddCommentMouseup" > - + + discussion.notes[0]); + return this.discussions.map(discussion => ({ + ...discussion.notes[0], + index: discussion.index, + })); }, currentCommentForm() { return (this.isAnnotating && this.currentAnnotationPosition) || null; @@ -305,6 +312,7 @@ export default { :notes="discussionStartingNotes" :current-comment-form="currentCommentForm" :disable-commenting="isDraggingDesign" + :resolved-discussions-expanded="resolvedDiscussionsExpanded" @openCommentForm="openCommentForm" @closeCommentForm="closeCommentForm" @moveNote="moveNote" diff --git a/app/assets/javascripts/design_management/components/design_sidebar.vue b/app/assets/javascripts/design_management/components/design_sidebar.vue new file mode 100644 index 00000000000..1be016ae41e --- /dev/null +++ b/app/assets/javascripts/design_management/components/design_sidebar.vue @@ -0,0 +1,170 @@ + + + diff --git a/app/assets/javascripts/design_management/graphql/fragments/design.fragment.graphql b/app/assets/javascripts/design_management/graphql/fragments/design.fragment.graphql index ca5b5a52c71..c1439c56ff5 100644 --- a/app/assets/javascripts/design_management/graphql/fragments/design.fragment.graphql +++ b/app/assets/javascripts/design_management/graphql/fragments/design.fragment.graphql @@ -1,6 +1,7 @@ #import "./designNote.fragment.graphql" #import "./designList.fragment.graphql" #import "./diffRefs.fragment.graphql" +#import "./discussion_resolved_status.fragment.graphql" fragment DesignItem on Design { ...DesignListItem @@ -12,6 +13,7 @@ fragment DesignItem on Design { nodes { id replyId + ...ResolvedStatus notes { nodes { ...DesignNote diff --git a/app/assets/javascripts/design_management/graphql/fragments/designNote.fragment.graphql b/app/assets/javascripts/design_management/graphql/fragments/designNote.fragment.graphql index 2ad84f9cb17..cb7cfd89abf 100644 --- a/app/assets/javascripts/design_management/graphql/fragments/designNote.fragment.graphql +++ b/app/assets/javascripts/design_management/graphql/fragments/designNote.fragment.graphql @@ -10,6 +10,7 @@ fragment DesignNote on Note { body bodyHtml createdAt + resolved position { diffRefs { ...DesignDiffRefs diff --git a/app/assets/javascripts/design_management/graphql/fragments/discussion_resolved_status.fragment.graphql b/app/assets/javascripts/design_management/graphql/fragments/discussion_resolved_status.fragment.graphql new file mode 100644 index 00000000000..7483b508721 --- /dev/null +++ b/app/assets/javascripts/design_management/graphql/fragments/discussion_resolved_status.fragment.graphql @@ -0,0 +1,9 @@ +fragment ResolvedStatus on Discussion { + resolvable + resolved + resolvedAt + resolvedBy { + name + webUrl + } +} diff --git a/app/assets/javascripts/design_management/graphql/mutations/toggle_resolve_discussion.mutation.graphql b/app/assets/javascripts/design_management/graphql/mutations/toggle_resolve_discussion.mutation.graphql new file mode 100644 index 00000000000..d5f54ec9b58 --- /dev/null +++ b/app/assets/javascripts/design_management/graphql/mutations/toggle_resolve_discussion.mutation.graphql @@ -0,0 +1,17 @@ +#import "../fragments/designNote.fragment.graphql" +#import "../fragments/discussion_resolved_status.fragment.graphql" + +mutation toggleResolveDiscussion($id: ID!, $resolve: Boolean!) { + discussionToggleResolve(input: { id: $id, resolve: $resolve }) { + discussion { + id + ...ResolvedStatus + notes { + nodes { + ...DesignNote + } + } + } + errors + } +} diff --git a/app/assets/javascripts/design_management/pages/design/index.vue b/app/assets/javascripts/design_management/pages/design/index.vue index f4014e3cc55..fe121b6530a 100644 --- a/app/assets/javascripts/design_management/pages/design/index.vue +++ b/app/assets/javascripts/design_management/pages/design/index.vue @@ -1,17 +1,16 @@