From 36a59d088eca61b834191dacea009677a96c052f Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 19 May 2022 07:33:21 +0000 Subject: Add latest changes from gitlab-org/gitlab@15-0-stable-ee --- app/assets/images/apple-touch-icon.png | Bin 0 -> 7455 bytes app/assets/images/ext_snippet_icons/logo.svg | 13 +- app/assets/images/favicon-blue.png | Bin 1522 -> 390 bytes app/assets/images/favicon-yellow.png | Bin 1481 -> 373 bytes app/assets/images/favicon.png | Bin 1611 -> 591 bytes app/assets/images/file_icons.svg | 2 +- app/assets/images/gitlab_logo.png | Bin 3616 -> 1528 bytes app/assets/images/logo.svg | 34 +- .../gitlab-logo-full-horizontal.gif | Bin 3654 -> 0 bytes .../mailers/ci_pipeline_notif_v1/gitlab-logo.gif | Bin 3040 -> 0 bytes app/assets/images/mailers/gitlab_footer_logo.gif | Bin 3654 -> 0 bytes app/assets/images/mailers/gitlab_header_logo.gif | Bin 3040 -> 0 bytes app/assets/images/mailers/gitlab_header_logo.png | Bin 7096 -> 0 bytes app/assets/images/mailers/gitlab_logo.png | Bin 0 -> 1528 bytes .../images/mailers/gitlab_logo_black_text.png | Bin 0 -> 1961 bytes app/assets/images/mailers/gitlab_tanuki_2x.png | Bin 2545 -> 0 bytes .../in_product_marketing/gitlab-logo-gray-rgb.png | Bin 42439 -> 0 bytes app/assets/images/msapplication-tile.png | Bin 4328 -> 0 bytes app/assets/images/touch-icon-ipad-retina.png | Bin 5662 -> 0 bytes app/assets/images/touch-icon-ipad.png | Bin 2465 -> 0 bytes app/assets/images/touch-icon-iphone-retina.png | Bin 3460 -> 0 bytes app/assets/images/touch-icon-iphone.png | Bin 1949 -> 0 bytes app/assets/images/twitter_card.jpg | Bin 0 -> 133437 bytes .../components/projects_token_selector.vue | 2 +- .../components/database_listbox.vue | 51 ++ .../admin/background_migrations/index.js | 38 ++ .../admin/statistics_panel/components/app.vue | 2 +- .../components/alert_management_table.vue | 18 +- .../components/alerts_settings_wrapper.vue | 2 +- .../create_http_integration.mutation.graphql | 2 - .../destroy_http_integration.mutation.graphql | 4 +- .../mutations/reset_http_token.mutation.graphql | 4 +- .../reset_prometheus_token.mutation.graphql | 2 +- .../update_http_integration.mutation.graphql | 8 +- .../update_prometheus_integration.mutation.graphql | 6 +- .../queries/get_http_integration.query.graphql | 2 +- .../shared/components/projects_dropdown_filter.vue | 33 +- .../shared/components/value_stream_metrics.vue | 72 ++- .../javascripts/analytics/shared/constants.js | 36 ++ .../usage_trends/components/users_chart.vue | 6 +- app/assets/javascripts/api.js | 25 + app/assets/javascripts/api/integrations_api.js | 21 + app/assets/javascripts/api/tags_api.js | 12 + app/assets/javascripts/api/user_api.js | 18 + .../javascripts/behaviors/copy_to_clipboard.js | 2 +- .../behaviors/markdown/render_sandboxed_mermaid.js | 15 +- .../behaviors/shortcuts/shortcuts_issuable.js | 2 +- .../javascripts/blob/components/blob_content.vue | 2 +- .../javascripts/blob/components/blob_header.vue | 2 +- .../javascripts/blob/file_template_selector.js | 43 +- app/assets/javascripts/blob/openapi/index.js | 1 + .../blob/pipeline_tour_success_modal.vue | 2 +- app/assets/javascripts/blob/sketch/index.js | 2 +- app/assets/javascripts/blob_edit/edit_blob.js | 29 +- .../components/board_add_new_column_form.vue | 26 +- .../boards/components/board_card_inner.vue | 21 +- .../boards/components/board_content.vue | 5 +- .../boards/components/board_filtered_search.vue | 15 +- .../javascripts/boards/components/board_form.vue | 1 + .../javascripts/boards/components/board_list.vue | 2 +- .../boards/components/board_list_header.vue | 27 +- .../boards/components/board_settings_sidebar.vue | 8 +- .../boards/components/board_top_bar.vue | 4 +- .../boards/components/config_toggle.vue | 4 +- .../boards/components/project_select.vue | 7 +- .../components/sidebar/board_sidebar_title.vue | 2 +- .../graphql/board_list_create.mutation.graphql | 2 - .../graphql/board_list_destroy.mutation.graphql | 2 +- .../graphql/board_list_update.mutation.graphql | 4 +- .../boards/graphql/board_lists.query.graphql | 6 +- .../graphql/board_lists_deferred.query.graphql | 2 +- .../boards/graphql/group_board.query.graphql | 2 +- .../graphql/issue_move_list.mutation.graphql | 2 +- .../boards/graphql/lists_issues.query.graphql | 4 +- .../boards/graphql/project_board.query.graphql | 2 +- app/assets/javascripts/boards/index.js | 1 - app/assets/javascripts/boards/stores/actions.js | 5 +- app/assets/javascripts/boards/stores/getters.js | 14 + .../branches/components/delete_branch_modal.vue | 37 +- app/assets/javascripts/captcha/captcha_modal.vue | 4 +- .../components/secure_files_list.vue | 202 +++++++- app/assets/javascripts/ci_secure_files/index.js | 5 + .../components/ci_variable_modal.vue | 23 +- .../components/ci_variable_table.vue | 5 +- .../javascripts/ci_variable_list/constants.js | 2 + app/assets/javascripts/ci_variable_list/index.js | 2 + app/assets/javascripts/clone_panel.js | 7 +- .../agents/components/activity_events_list.vue | 16 +- .../agents/components/revoke_token_button.vue | 201 ++++++++ .../clusters/agents/components/show.vue | 2 +- .../clusters/agents/components/token_table.vue | 11 + .../javascripts/clusters/agents/constants.js | 2 + .../clusters/agents/graphql/cache_update.js | 22 + .../mutations/revoke_token.mutation.graphql | 5 + .../clusters/components/new_cluster.vue | 8 +- .../components/remove_cluster_confirmation.vue | 2 +- .../clusters/forms/components/integration_form.vue | 2 +- .../clusters/gke_cluster_namespace/index.js | 37 ++ app/assets/javascripts/clusters/new_cluster.js | 8 +- .../clusters/stores/new_cluster/index.js | 12 - .../clusters/stores/new_cluster/state.js | 3 - .../clusters_list/components/agent_table.vue | 17 +- .../clusters_list/components/agents.vue | 2 +- .../clusters_list/components/clusters.vue | 4 +- .../clusters_list/components/clusters_actions.vue | 79 +-- .../clusters_list/components/clusters_view_all.vue | 2 +- app/assets/javascripts/clusters_list/constants.js | 4 +- app/assets/javascripts/clusters_list/index.js | 4 +- .../commit/pipelines/pipelines_table.vue | 1 - .../components/project_form_group.vue | 6 +- .../components/bubble_menus/code_block.vue | 160 +++++++ .../components/bubble_menus/formatting.vue | 108 +++++ .../components/bubble_menus/link.vue | 189 ++++++++ .../components/bubble_menus/media.vue | 288 +++++++++++ .../components/code_block_bubble_menu.vue | 146 ------ .../content_editor/components/content_editor.vue | 10 +- .../content_editor/components/divider.vue | 3 - .../components/formatting_bubble_menu.vue | 84 ---- .../components/loading_indicator.vue | 2 +- .../content_editor/components/toolbar_button.vue | 9 +- .../content_editor/components/top_toolbar.vue | 7 +- .../components/wrappers/code_block.vue | 44 ++ .../components/wrappers/frontmatter.vue | 32 -- .../content_editor/components/wrappers/media.vue | 51 -- .../components/wrappers/table_cell_base.vue | 4 +- app/assets/javascripts/content_editor/constants.js | 60 --- .../constants/code_block_languages.js | 210 ++++++++ .../javascripts/content_editor/constants/index.js | 60 +++ .../content_editor/extensions/blockquote.js | 2 +- .../extensions/code_block_highlight.js | 17 +- .../content_editor/extensions/diagram.js | 3 + .../content_editor/extensions/frontmatter.js | 15 +- .../javascripts/content_editor/extensions/image.js | 5 - .../content_editor/extensions/paste_markdown.js | 11 +- .../content_editor/extensions/playable.js | 6 - .../content_editor/extensions/sourcemap.js | 48 ++ .../content_editor/services/asset_resolver.js | 13 + .../services/code_block_language_loader.js | 246 +--------- .../content_editor/services/content_editor.js | 46 +- .../services/create_content_editor.js | 24 +- .../services/gl_api_markdown_deserializer.js | 33 ++ .../services/hast_to_prosemirror_converter.js | 475 ++++++++++++++++++ .../services/highlight_js_language_loader.js | 248 ++++++++++ .../services/markdown_deserializer.js | 33 -- .../content_editor/services/markdown_serializer.js | 115 +++-- .../content_editor/services/markdown_sourcemap.js | 2 +- .../services/remark_markdown_deserializer.js | 87 ++++ .../services/serialization_helpers.js | 131 +++++ .../content_editor/services/upload_helpers.js | 4 + .../javascripts/content_editor/services/utils.js | 2 +- .../components/cluster_form_dropdown.vue | 246 ---------- .../eks_cluster/components/create_eks_cluster.vue | 58 --- .../components/eks_cluster_configuration_form.vue | 530 --------------------- .../components/service_credentials_form.vue | 182 ------- .../create_cluster/eks_cluster/constants.js | 9 - .../create_cluster/eks_cluster/index.js | 55 --- .../eks_cluster/services/aws_services_facade.js | 79 --- .../create_cluster/eks_cluster/store/actions.js | 148 ------ .../create_cluster/eks_cluster/store/getters.js | 2 - .../create_cluster/eks_cluster/store/index.js | 49 -- .../eks_cluster/store/mutation_types.js | 19 - .../create_cluster/eks_cluster/store/mutations.js | 66 --- .../create_cluster/eks_cluster/store/state.js | 34 -- .../gke_cluster/components/gke_dropdown_mixin.js | 70 --- .../components/gke_machine_type_dropdown.vue | 112 ----- .../components/gke_network_dropdown.vue | 53 --- .../components/gke_project_id_dropdown.vue | 194 -------- .../gke_cluster/components/gke_submit_button.vue | 18 - .../components/gke_subnetwork_dropdown.vue | 44 -- .../gke_cluster/components/gke_zone_dropdown.vue | 101 ---- .../create_cluster/gke_cluster/constants.js | 11 - .../create_cluster/gke_cluster/gapi_loader.js | 24 - .../create_cluster/gke_cluster/index.js | 95 ---- .../create_cluster/gke_cluster/store/actions.js | 99 ---- .../create_cluster/gke_cluster/store/getters.js | 5 - .../create_cluster/gke_cluster/store/index.js | 18 - .../gke_cluster/store/mutation_types.js | 8 - .../create_cluster/gke_cluster/store/mutations.js | 28 -- .../create_cluster/gke_cluster/store/state.js | 13 - .../create_cluster/gke_cluster_namespace/index.js | 37 -- .../create_cluster/init_create_cluster.js | 35 -- .../store/cluster_dropdown/actions.js | 14 - .../store/cluster_dropdown/getters.js | 0 .../create_cluster/store/cluster_dropdown/index.js | 13 - .../store/cluster_dropdown/mutation_types.js | 3 - .../store/cluster_dropdown/mutations.js | 16 - .../create_cluster/store/cluster_dropdown/state.js | 5 - app/assets/javascripts/crm/components/form.vue | 39 +- .../contacts/components/contact_form_wrapper.vue | 58 ++- .../crm/contacts/components/contacts_root.vue | 2 +- .../components/organizations_root.vue | 2 +- .../cycle_analytics/components/base.vue | 21 +- .../cycle_analytics/components/stage_table.vue | 2 - .../components/value_stream_filters.vue | 57 +-- .../components/deploy_freeze_modal.vue | 4 +- .../toggle_resolve_discussion.mutation.graphql | 2 +- .../mutations/upload_design.mutation.graphql | 1 - .../graphql/queries/get_design.query.graphql | 1 - .../design_management/pages/design/index.vue | 4 +- app/assets/javascripts/diffs/components/app.vue | 13 +- .../diffs/components/compare_dropdown_layout.vue | 7 +- .../diffs/components/compare_versions.vue | 2 +- .../javascripts/diffs/components/diff_content.vue | 2 +- .../diffs/components/diff_expansion_cell.vue | 158 ++++-- .../javascripts/diffs/components/diff_file.vue | 106 ++--- .../diffs/components/diff_file_header.vue | 4 +- .../diffs/components/diff_line_note_form.vue | 7 +- .../javascripts/diffs/components/diff_row.vue | 8 +- .../javascripts/diffs/components/diff_row_utils.js | 7 +- .../javascripts/diffs/components/diff_view.vue | 85 ++-- .../diffs/components/hidden_files_warning.vue | 2 +- .../diffs/components/image_diff_overlay.vue | 4 +- app/assets/javascripts/diffs/constants.js | 3 + app/assets/javascripts/diffs/store/mutations.js | 2 + app/assets/javascripts/diffs/store/utils.js | 10 +- app/assets/javascripts/diffs/utils/diff_file.js | 27 +- app/assets/javascripts/diffs/utils/queue_events.js | 26 +- .../editor/components/source_editor_toolbar.vue | 6 +- .../components/source_editor_toolbar_button.vue | 74 +-- .../components/source_editor_toolbar_graphql.js | 53 +++ app/assets/javascripts/editor/constants.js | 5 +- .../extensions/source_editor_extension_base.js | 4 +- .../source_editor_markdown_livepreview_ext.js | 108 +++-- .../editor/extensions/source_editor_toolbar_ext.js | 98 ++++ .../editor/graphql/add_items.mutation.graphql | 3 + .../editor/graphql/get_item.query.graphql | 9 - .../editor/graphql/remove_items.mutation.graphql | 3 + .../javascripts/editor/graphql/typedefs.graphql | 23 + .../editor/graphql/update_item.mutation.graphql | 2 +- app/assets/javascripts/editor/schema/ci.json | 21 +- .../components/enable_review_app_modal.vue | 13 +- .../environments/components/environment_folder.vue | 8 +- .../environments/components/environments_table.vue | 2 +- .../folder/environments_folder_view.vue | 4 +- .../components/error_tracking_list.vue | 2 +- .../error_tracking/queries/details.query.graphql | 2 +- .../error_tracking_settings/components/app.vue | 2 +- .../filtered_search/available_dropdown_mappings.js | 27 -- .../javascripts/filtered_search/constants.js | 2 - .../filtered_search_dropdown_manager.js | 2 - .../filtered_search/filtered_search_manager.js | 4 +- .../group_runners_filtered_search_token_keys.js | 27 -- .../javascripts/filtered_search/null_dropdown.js | 9 - app/assets/javascripts/flash.js | 86 ++-- app/assets/javascripts/frequent_items/constants.js | 2 +- app/assets/javascripts/frequent_items/utils.js | 5 +- app/assets/javascripts/gfm_auto_complete.js | 2 +- .../fragments/issuable_timelogs.fragment.graphql | 1 + .../fragments/user_availability.fragment.graphql | 1 - .../mutations/todo_mark_done.mutation.graphql | 2 +- .../javascripts/graphql_shared/possible_types.json | 4 + app/assets/javascripts/group.js | 37 +- .../components/shared_runners_form.vue | 128 +++-- app/assets/javascripts/group_settings/constants.js | 3 - .../group_settings/mount_shared_runners.js | 20 +- .../javascripts/header_search/components/app.vue | 4 +- app/assets/javascripts/header_search/index.js | 16 +- .../ide/components/commit_sidebar/form.vue | 4 +- .../javascripts/ide/components/ide_status_bar.vue | 2 +- .../import_entities/components/import_status.vue | 5 + .../javascripts/import_entities/constants.js | 1 + .../import_groups/components/import_table.vue | 23 +- .../components/import_target_cell.vue | 1 + .../import_entities/import_groups/constants.js | 2 + .../import_entities/import_groups/index.js | 2 + .../import_entities/import_groups/utils.js | 2 +- .../components/import_projects_table.vue | 16 +- .../incidents/components/incidents_list.vue | 9 +- .../fragments/incident_fields.fragment.graphql | 1 - app/assets/javascripts/integrations/constants.js | 10 + .../edit/components/integration_form.vue | 26 +- .../edit/components/jira_issues_fields.vue | 104 ++-- app/assets/javascripts/integrations/edit/index.js | 2 + .../components/import_a_project_modal.vue | 2 +- .../components/invite_members_modal.vue | 26 +- .../components/invite_modal_base.vue | 171 ++++--- .../components/members_token_select.vue | 4 +- .../components/user_limit_notification.vue | 75 +-- app/assets/javascripts/invite_members/constants.js | 32 +- .../invite_members/init_invite_members_modal.js | 9 +- .../components/issuable_header_warnings.vue | 27 +- .../issuable/components/related_issuable_item.vue | 2 +- .../javascripts/issuable/components/status_box.vue | 91 ++-- app/assets/javascripts/issuable/issuable_form.js | 3 +- .../issues/create_merge_request_dropdown.js | 9 +- app/assets/javascripts/issues/issue.js | 4 +- .../issues/list/components/issues_list_app.vue | 109 +++-- app/assets/javascripts/issues/list/constants.js | 29 +- app/assets/javascripts/issues/list/index.js | 18 +- .../issues/list/queries/get_issues.query.graphql | 7 + .../list/queries/get_issues_counts.query.graphql | 14 + .../get_issues_counts_without_crm.query.graphql | 136 ++++++ .../queries/get_issues_without_crm.query.graphql | 94 ++++ .../issues/list/queries/issue.fragment.graphql | 4 +- app/assets/javascripts/issues/list/utils.js | 25 +- .../javascripts/issues/show/components/app.vue | 90 ++-- .../issues/show/components/description.vue | 156 +++++- app/assets/javascripts/issues/show/index.js | 2 + app/assets/javascripts/issues/show/utils.js | 99 ++++ .../javascripts/jira_connect/subscriptions/api.js | 10 + .../add_namespace_modal/groups_list_item.vue | 52 +- .../jira_connect/subscriptions/components/app.vue | 48 +- .../components/sign_in_oauth_button.vue | 21 +- .../components/subscriptions_list.vue | 10 +- .../jira_connect/subscriptions/constants.js | 17 + .../jira_connect/subscriptions/index.js | 7 +- .../jira_connect/subscriptions/pages/sign_in.vue | 65 --- .../pages/sign_in/sign_in_gitlab_com.vue | 68 +++ .../sign_in/sign_in_gitlab_multiversion/index.vue | 72 +++ .../version_select_form.vue | 88 ++++ .../subscriptions/pages/sign_in/sign_in_page.vue | 35 ++ .../subscriptions/pages/subscriptions.vue | 43 -- .../subscriptions/pages/subscriptions_page.vue | 54 +++ .../jira_connect/subscriptions/store/actions.js | 73 +++ .../jira_connect/subscriptions/store/index.js | 11 +- .../subscriptions/store/mutation_types.js | 12 + .../jira_connect/subscriptions/store/mutations.js | 40 +- .../jira_connect/subscriptions/store/state.js | 20 +- .../jira_import/components/jira_import_form.vue | 5 +- app/assets/javascripts/jobs/components/job_app.vue | 4 +- app/assets/javascripts/jobs/components/sidebar.vue | 1 + .../components/sidebar_job_details_container.vue | 27 +- .../javascripts/jobs/components/stuck_block.vue | 4 +- .../jobs/components/table/cells/actions_cell.vue | 13 +- .../table/graphql/fragments/job.fragment.graphql | 4 + .../jobs/components/table/jobs_table_tabs.vue | 4 +- app/assets/javascripts/jobs/store/getters.js | 12 +- app/assets/javascripts/lib/dompurify.js | 1 + app/assets/javascripts/lib/gfm/index.js | 4 +- app/assets/javascripts/lib/utils/common_utils.js | 58 ++- .../utils/confirm_via_gl_modal/confirm_modal.vue | 20 +- .../confirm_via_gl_modal/confirm_via_gl_modal.js | 4 + app/assets/javascripts/lib/utils/cookies.js | 8 + .../lib/utils/datetime/timeago_utility.js | 2 +- app/assets/javascripts/lib/utils/dom_utils.js | 14 + app/assets/javascripts/lib/utils/http_status.js | 1 + app/assets/javascripts/lib/utils/text_markdown.js | 17 +- app/assets/javascripts/lib/utils/text_utility.js | 4 + app/assets/javascripts/lib/utils/url_utility.js | 13 + app/assets/javascripts/lib/utils/users_cache.js | 11 + app/assets/javascripts/main.js | 10 +- .../members/components/table/members_table.vue | 2 - app/assets/javascripts/merge_request.js | 31 +- app/assets/javascripts/merge_request_tabs.js | 47 +- .../milestones/components/milestone_combobox.vue | 2 +- .../monitoring/components/dashboard.vue | 4 +- .../monitoring/components/dashboard_panel.vue | 5 + app/assets/javascripts/mr_notes/index.js | 8 +- .../javascripts/notes/components/comment_form.vue | 22 +- .../notes/components/comment_type_dropdown.vue | 48 +- .../notes/components/diff_discussion_header.vue | 5 +- .../notes/components/discussion_counter.vue | 113 +++-- .../javascripts/notes/components/note_body.vue | 5 + .../javascripts/notes/components/note_form.vue | 9 +- .../javascripts/notes/components/note_header.vue | 25 +- .../notes/components/noteable_discussion.vue | 20 +- .../javascripts/notes/components/noteable_note.vue | 20 +- app/assets/javascripts/notes/i18n.js | 14 +- app/assets/javascripts/notes/stores/actions.js | 17 +- app/assets/javascripts/notes/stores/getters.js | 33 +- .../components/details_page/delete_modal.vue | 8 +- .../explorer/components/details_page/tags_list.vue | 4 +- .../components/list_page/cleanup_status.vue | 64 ++- .../explorer/components/list_page/image_list.vue | 6 + .../components/list_page/image_list_row.vue | 17 +- .../components/list_page/registry_header.vue | 10 +- .../explorer/constants/details.js | 2 +- .../explorer/constants/expiration_policies.js | 4 +- .../container_registry/explorer/constants/list.js | 3 - .../get_container_repository_details.query.graphql | 2 +- ...get_container_repository_metadata.query.graphql | 2 +- .../get_container_repository_tags.query.graphql | 2 +- .../container_registry/explorer/pages/list.vue | 6 +- .../container_registry/explorer/utils.js | 8 + .../dependency_proxy/app.vue | 90 ++-- .../dependency_proxy/components/manifest_row.vue | 24 +- .../dependency_proxy/constants.js | 1 + .../get_dependency_proxy_details.query.graphql | 1 + .../dependency_proxy/index.js | 4 +- .../details/components/app.vue | 5 +- .../list/components/infrastructure_search.vue | 2 +- .../components/details/package_title.vue | 4 +- .../components/list/package_list_row.vue | 82 ++-- .../components/list/package_title.vue | 8 +- .../components/list/packages_list.vue | 40 +- .../fragments/package_data.fragment.graphql | 1 + .../queries/get_package_details.query.graphql | 2 +- .../settings/group/bundle.js | 1 - .../group/components/dependency_proxy_settings.vue | 15 - .../group/components/group_settings_app.vue | 3 +- .../settings/group/constants.js | 5 +- .../general/components/signup_form.vue | 76 +-- .../pages/admin/background_migrations/index.js | 3 + .../javascripts/pages/admin/clusters/index.js | 3 - .../javascripts/pages/groups/clusters/index.js | 2 - .../pages/groups/new/components/app.vue | 4 +- .../pages/groups/settings/ci_cd/show/index.js | 15 - .../components/bulk_imports_history_app.vue | 16 +- .../javascripts/pages/projects/clusters/index.js | 3 - .../pages/projects/clusters/show/index.js | 2 +- .../components/learn_gitlab_section_link.vue | 41 +- .../pages/projects/learn_gitlab/constants/index.js | 3 + .../merge_requests/init_merge_request_show.js | 28 +- app/assets/javascripts/pages/projects/project.js | 20 +- .../javascripts/pages/projects/serverless/index.js | 3 - .../pages/projects/services/edit/index.js | 3 - .../javascripts/pages/projects/show/index.js | 55 ++- .../javascripts/pages/projects/wikis/edit/index.js | 3 - .../javascripts/pages/projects/wikis/index.js | 3 + .../javascripts/pages/projects/wikis/show/index.js | 2 - .../javascripts/pages/registrations/new/index.js | 5 + app/assets/javascripts/persistent_user_callouts.js | 1 + .../components/commit/commit_form.vue | 26 +- .../components/commit/commit_section.vue | 13 +- .../components/editor/ci_config_merged_preview.vue | 4 +- .../file_nav/pipeline_editor_file_nav.vue | 48 ++ .../components/file_tree/container.vue | 78 +++ .../components/file_tree/file_item.vue | 45 ++ .../header/pipeline_editor_mini_graph.vue | 22 +- .../components/pipeline_editor_tabs.vue | 2 +- .../components/popovers/file_tree_popover.vue | 59 +++ .../components/popovers/walkthrough_popover.vue | 83 ++++ .../components/walkthrough_popover.vue | 83 ---- .../javascripts/pipeline_editor/constants.js | 4 + .../graphql/queries/ci_config.query.graphql | 6 + app/assets/javascripts/pipeline_editor/index.js | 4 +- .../pipeline_editor/pipeline_editor_app.vue | 3 +- .../pipeline_editor/pipeline_editor_home.vue | 67 ++- .../pipeline_new/components/pipeline_new_form.vue | 2 +- app/assets/javascripts/pipeline_new/index.js | 2 +- .../javascripts/pipelines/components/dag/dag.vue | 2 +- .../pipelines/components/graph/constants.js | 4 + .../pipelines/components/graph/graph_component.vue | 1 + .../components/graph/graph_component_wrapper.vue | 60 +-- .../pipelines/components/graph/job_item.vue | 22 +- .../pipelines/components/graph/linked_pipeline.vue | 151 +++++- .../components/graph/linked_pipelines_column.vue | 10 +- .../pipelines/components/header_component.vue | 17 +- .../pipelines/components/jobs/failed_jobs_app.vue | 73 +++ .../components/jobs/failed_jobs_table.vue | 111 +++++ .../javascripts/pipelines/components/jobs/utils.js | 33 ++ .../pipelines/components/pipeline_tabs.vue | 40 +- .../components/pipelines_list/empty_state.vue | 24 +- .../pipelines_list/empty_state/ci_templates.vue | 37 +- .../pipelines_list/empty_state/ios_templates.vue | 220 +++++++++ .../empty_state/pipelines_ci_templates.vue | 14 +- .../pipelines_list/pipeline_mini_graph.vue | 2 +- .../components/pipelines_list/pipeline_stage.vue | 29 +- .../components/pipelines_list/pipelines.vue | 10 +- .../components/pipelines_list/pipelines_table.vue | 5 +- .../components/test_reports/test_suite_table.vue | 16 +- app/assets/javascripts/pipelines/constants.js | 47 ++ .../mutations/retry_failed_job.mutation.graphql | 12 + .../javascripts/pipelines/graphql/provider.js | 9 + .../graphql/queries/get_failed_jobs.query.graphql | 41 ++ .../pipelines/pipeline_details_bundle.js | 14 +- .../javascripts/pipelines/pipeline_details_dag.js | 2 +- .../pipelines/pipeline_details_failed_jobs.js | 36 ++ .../pipelines/pipeline_details_header.js | 2 +- .../pipelines/pipeline_details_notification.js | 2 +- app/assets/javascripts/pipelines/pipeline_tabs.js | 27 +- .../javascripts/pipelines/pipelines_index.js | 8 +- .../pipelines/stores/test_reports/actions.js | 6 +- .../pipelines/stores/test_reports/constants.js | 1 + .../pipelines/stores/test_reports/getters.js | 4 + .../stores/test_reports/mutation_types.js | 1 + .../pipelines/stores/test_reports/mutations.js | 14 + .../pipelines/stores/test_reports/state.js | 1 + app/assets/javascripts/pipelines/utils.js | 19 +- .../javascripts/project_select_combo_button.js | 3 +- .../components/commit_box_pipeline_mini_graph.vue | 14 +- app/assets/javascripts/projects/project_new.js | 5 +- .../projects/settings/init_access_dropdown.js | 2 +- .../topics/components/topics_token_selector.vue | 2 +- .../queries/project_topics_search.query.graphql | 1 + .../components/service_desk_setting.vue | 24 +- .../prometheus_alerts/components/reset_key.vue | 149 ------ app/assets/javascripts/prometheus_alerts/index.js | 28 -- .../components/add_issuable_form.vue | 5 +- .../components/related_issues_root.vue | 3 +- .../releases/components/app_edit_new.vue | 38 +- .../releases/components/tag_field_new.vue | 15 +- .../releases/stores/modules/edit_new/actions.js | 22 + .../releases/stores/modules/edit_new/getters.js | 22 +- .../stores/modules/edit_new/mutation_types.js | 6 + .../releases/stores/modules/edit_new/mutations.js | 18 + .../releases/stores/modules/edit_new/state.js | 6 + .../reports/codequality_report/store/getters.js | 14 +- .../repository/components/blob_content_viewer.vue | 19 +- .../repository/components/breadcrumbs.vue | 5 +- .../repository/components/last_commit.vue | 29 +- app/assets/javascripts/repository/constants.js | 21 + app/assets/javascripts/repository/index.js | 8 + app/assets/javascripts/rest_api.js | 1 + app/assets/javascripts/right_sidebar.js | 27 +- .../admin_runner_edit/admin_runner_edit_app.vue | 21 +- .../javascripts/runner/admin_runner_edit/index.js | 3 +- .../admin_runner_show/admin_runner_show_app.vue | 20 +- .../javascripts/runner/admin_runner_show/index.js | 6 +- .../runner/admin_runners/admin_runners_app.vue | 104 ++-- .../javascripts/runner/admin_runners/index.js | 3 + .../registration/registration_dropdown.vue | 2 +- .../registration_token_reset_dropdown_item.vue | 8 +- .../runner/components/runner_delete_button.vue | 2 + .../runner/components/runner_details.vue | 3 + .../javascripts/runner/components/runner_jobs.vue | 2 +- .../runner/components/runner_pagination.vue | 4 +- .../runner/components/runner_projects.vue | 2 +- .../runner/components/runner_update_form.vue | 210 ++++---- .../runner/graphql/details/runner.query.graphql | 9 - .../details/runner_details.fragment.graphql | 5 - .../details/runner_details_shared.fragment.graphql | 35 -- .../graphql/details/runner_jobs.query.graphql | 36 -- .../graphql/details/runner_projects.query.graphql | 26 - .../graphql/details/runner_update.mutation.graphql | 15 - .../graphql/edit/runner_fields.fragment.graphql | 5 + .../edit/runner_fields_shared.fragment.graphql | 15 + .../runner/graphql/edit/runner_form.query.graphql | 7 + .../graphql/edit/runner_update.mutation.graphql | 13 + .../runner/graphql/show/runner.query.graphql | 41 ++ .../runner/graphql/show/runner_jobs.query.graphql | 36 ++ .../graphql/show/runner_projects.query.graphql | 26 + .../runner/group_runners/group_runners_app.vue | 111 ++--- .../runner/local_storage_alert/constants.js | 1 + .../save_alert_to_local_storage.js | 8 + .../show_alert_from_local_storage.js | 18 + .../javascripts/runner/runner_search_utils.js | 6 - app/assets/javascripts/runner/utils.js | 3 +- .../security_configuration/components/app.vue | 30 +- .../security_configuration/components/constants.js | 8 +- .../components/feature_card.vue | 6 +- .../components/section_layout.vue | 23 - .../graphql/current_license.query.graphql | 6 + .../security_training_vulnerability.query.graphql | 1 + .../javascripts/security_configuration/index.js | 1 + .../javascripts/serverless/components/area.vue | 145 ------ .../serverless/components/empty_state.vue | 39 -- .../serverless/components/environment_row.vue | 65 --- .../serverless/components/function_details.vue | 94 ---- .../serverless/components/function_row.vue | 77 --- .../serverless/components/functions.vue | 139 ------ .../serverless/components/missing_prometheus.vue | 57 --- .../javascripts/serverless/components/pod_box.vue | 36 -- .../javascripts/serverless/components/url.vue | 28 -- app/assets/javascripts/serverless/constants.js | 10 - app/assets/javascripts/serverless/event_hub.js | 3 - .../javascripts/serverless/serverless_bundle.js | 67 --- app/assets/javascripts/serverless/store/actions.js | 131 ----- app/assets/javascripts/serverless/store/getters.js | 7 - app/assets/javascripts/serverless/store/index.js | 18 - .../javascripts/serverless/store/mutation_types.js | 11 - .../javascripts/serverless/store/mutations.js | 49 -- app/assets/javascripts/serverless/store/state.js | 22 - app/assets/javascripts/serverless/utils.js | 20 - .../components/assignees/assignee_avatar_link.vue | 7 +- .../components/assignees/assignee_title.vue | 5 +- .../assignees/collapsed_assignee_list.vue | 6 +- .../components/assignees/sidebar_participant.vue | 20 +- .../assignees/uncollapsed_assignee_list.vue | 32 +- .../components/attention_requested_toggle.vue | 33 +- .../sidebar_confidentiality_content.vue | 31 +- .../confidential/sidebar_confidentiality_form.vue | 6 +- .../components/crm_contacts/crm_contacts.vue | 16 +- .../components/date/sidebar_formatted_date.vue | 2 +- .../sidebar/components/lock/issuable_lock_form.vue | 55 ++- .../components/participants/participants.vue | 5 +- .../reviewers/collapsed_reviewer_list.vue | 6 +- .../components/reviewers/reviewer_avatar_link.vue | 9 +- .../components/reviewers/reviewer_title.vue | 2 +- .../reviewers/uncollapsed_reviewer_list.vue | 7 +- .../sidebar/components/sidebar_dropdown_widget.vue | 15 +- .../sidebar/components/sidebar_editable_item.vue | 2 +- .../subscriptions/sidebar_subscriptions_widget.vue | 18 + .../sidebar/components/time_tracking/report.vue | 4 +- .../components/time_tracking/time_tracker.vue | 6 +- .../components/todo_toggle/sidebar_todo_widget.vue | 8 + app/assets/javascripts/sidebar/mount_sidebar.js | 10 +- .../remove_attention_request.mutation.graphql | 7 + .../queries/request_attention.mutation.graphql | 5 + .../queries/reviewer_rereview.mutation.graphql | 2 +- .../toggle_attention_requested.mutation.graphql | 7 - ...update_merge_request_milestone.mutation.graphql | 2 +- .../sidebar/services/sidebar_service.js | 17 +- app/assets/javascripts/sidebar/sidebar_mediator.js | 33 +- .../javascripts/sidebar/stores/sidebar_store.js | 35 ++ .../javascripts/snippets/components/edit.vue | 57 ++- .../components/snippet_blob_actions_edit.vue | 38 +- .../mutations/delete_snippet.mutation.graphql | 2 +- app/assets/javascripts/sortable/constants.js | 4 +- app/assets/javascripts/sortable/utils.js | 10 +- .../static_site_editor/components/edit_area.vue | 4 +- .../tracking/dispatch_snowplow_event.js | 9 +- app/assets/javascripts/tracking/tracker.js | 267 +++++++++++ app/assets/javascripts/tracking/tracking.js | 275 +---------- app/assets/javascripts/user_popovers.js | 16 + app/assets/javascripts/users_select/index.js | 18 +- .../components/added_commit_message.vue | 43 +- .../components/approvals/approvals.vue | 17 +- .../components/extensions/base.vue | 22 +- .../components/extensions/child_content.vue | 14 +- .../components/extensions/index.js | 1 + .../components/extensions/status_icon.vue | 2 +- .../components/extensions/utils.js | 22 +- .../components/mr_widget_header.vue | 77 --- .../components/mr_widget_how_to_merge_modal.vue | 8 + .../components/mr_widget_pipeline.vue | 5 +- .../components/mr_widget_related_links.vue | 27 +- .../components/mr_widget_status_icon.vue | 2 +- .../states/mr_widget_auto_merge_enabled.vue | 2 +- .../components/states/mr_widget_closed.vue | 4 +- .../components/states/mr_widget_conflicts.vue | 7 +- .../components/states/mr_widget_merged.vue | 8 +- .../components/states/mr_widget_merging.vue | 4 +- .../components/states/ready_to_merge.vue | 57 ++- .../extensions/code_quality/index.js | 13 +- .../extensions/test_report/constants.js | 30 ++ .../extensions/test_report/index.js | 84 +++- .../extensions/test_report/utils.js | 45 +- .../vue_merge_request_widget/mr_widget_options.vue | 25 +- .../queries/states/ready_to_merge.fragment.graphql | 1 - .../stores/mr_widget_store.js | 6 +- .../alert_details/components/alert_details.vue | 4 +- .../ci_cd_analytics/ci_cd_analytics_charts.vue | 10 +- .../javascripts/vue_shared/components/ci_icon.vue | 33 +- .../components/color_picker/color_picker.vue | 11 +- .../javascripts/vue_shared/components/commit.vue | 2 + .../components/confidentiality_badge.vue | 39 ++ .../confirm_danger/confirm_danger_modal.stories.js | 2 + .../confirm_danger/confirm_danger_modal.vue | 14 +- .../components/confirm_danger/constants.js | 2 +- .../date_time_picker/date_time_picker.vue | 2 +- .../vue_shared/components/deployment_instance.vue | 7 +- .../components/dropdown/dropdown_hidden_input.vue | 18 - .../components/dropdown/dropdown_search_input.vue | 49 -- .../dropdown/dropdown_widget/dropdown_widget.vue | 52 +- .../vue_shared/components/file_finder/index.vue | 10 +- .../components/filtered_search_bar/constants.js | 2 +- .../filtered_search_bar_root.vue | 54 ++- .../filtered_search_bar/tokens/author_token.vue | 1 + .../filtered_search_bar/tokens/base_token.vue | 16 +- .../filtered_search_bar/tokens/branch_token.vue | 1 + .../filtered_search_bar/tokens/emoji_token.vue | 1 + .../filtered_search_bar/tokens/label_token.vue | 1 + .../filtered_search_bar/tokens/milestone_token.vue | 1 + .../filtered_search_bar/tokens/release_token.vue | 1 + .../vue_shared/components/markdown/field.vue | 15 +- .../vue_shared/components/markdown/header.vue | 31 +- .../vue_shared/components/markdown/toolbar.vue | 26 +- .../components/metric_images/metric_images_tab.vue | 4 +- .../metric_images/metric_images_table.vue | 8 +- .../vue_shared/components/navigation_tabs.vue | 4 +- .../vue_shared/components/paginated_list.vue | 2 +- .../vue_shared/components/registry/list_item.vue | 1 - .../components/registry/registry_search.vue | 1 + .../runner_instructions_modal.vue | 23 +- .../components/segmented_control_button_group.vue | 35 ++ .../components/sidebar/issuable_move_dropdown.vue | 4 +- .../dropdown_contents_create_view.vue | 2 +- .../dropdown_contents_labels_view.vue | 2 +- .../sidebar/labels_select_vue/dropdown_title.vue | 2 +- .../dropdown_contents_create_view.vue | 2 +- .../dropdown_contents_labels_view.vue | 2 +- .../source_viewer/components/chunk_line.vue | 11 +- .../components/source_viewer/source_viewer.vue | 3 +- .../vue_shared/components/time_ago_tooltip.vue | 2 +- .../components/upload_dropzone/upload_dropzone.vue | 2 +- .../components/usage_quotas/usage_banner.vue | 68 +++ .../components/user_popover/user_popover.vue | 90 +++- .../components/user_select/user_select.vue | 2 +- app/assets/javascripts/vue_shared/constants.js | 14 +- .../issuable/create/components/issuable_form.vue | 19 +- .../issuable/list/components/issuable_item.vue | 15 +- .../list/components/issuable_list_root.vue | 6 + .../issuable/show/components/issuable_header.vue | 42 +- .../show/components/issuable_show_root.vue | 8 + .../issuable/show/components/issuable_title.vue | 2 +- .../javascripts/vue_shared/mixins/timeago.js | 4 +- .../components/section_layout.vue | 34 ++ .../components/section_loader.vue | 35 ++ .../vue_shared/security_reports/store/utils.js | 2 +- .../javascripts/whats_new/components/feature.vue | 8 +- .../work_items/components/item_state.vue | 62 +++ .../work_items/components/work_item_actions.vue | 48 +- .../work_items/components/work_item_detail.vue | 53 ++- .../components/work_item_detail_modal.vue | 103 ++-- .../work_items/components/work_item_state.vue | 98 ++++ .../work_items/components/work_item_title.vue | 11 +- app/assets/javascripts/work_items/constants.js | 8 + .../delete_task_from_work_item.mutation.graphql | 9 + .../work_items/graphql/work_item.fragment.graphql | 6 + .../work_items/graphql/work_item.query.graphql | 2 +- app/assets/javascripts/work_items/index.js | 3 +- .../work_items/pages/create_work_item.vue | 23 +- .../work_items/pages/work_item_root.vue | 46 +- app/assets/javascripts/work_items/router/index.js | 2 + .../work_items_hierarchy/components/app.vue | 2 +- .../bootstrap_migration_components.scss | 11 +- .../stylesheets/components/content_editor.scss | 9 + .../stylesheets/components/dashboard_skeleton.scss | 3 +- .../components/design_management/design.scss | 2 +- app/assets/stylesheets/components/whats_new.scss | 6 - app/assets/stylesheets/errors.scss | 8 + .../stylesheets/framework/broadcast_messages.scss | 7 +- app/assets/stylesheets/framework/buttons.scss | 10 +- app/assets/stylesheets/framework/diffs.scss | 40 +- app/assets/stylesheets/framework/files.scss | 13 +- app/assets/stylesheets/framework/filters.scss | 2 +- app/assets/stylesheets/framework/forms.scss | 1 - app/assets/stylesheets/framework/header.scss | 46 +- app/assets/stylesheets/framework/icons.scss | 72 ++- app/assets/stylesheets/framework/logo.scss | 101 ++-- .../framework/secondary_navigation_elements.scss | 6 +- app/assets/stylesheets/framework/sidebar.scss | 60 ++- app/assets/stylesheets/framework/tables.scss | 24 +- app/assets/stylesheets/framework/variables.scss | 4 +- app/assets/stylesheets/framework/wells.scss | 2 +- app/assets/stylesheets/highlight/common.scss | 22 +- app/assets/stylesheets/highlight/themes/dark.scss | 12 +- .../stylesheets/highlight/themes/monokai.scss | 13 +- app/assets/stylesheets/highlight/themes/none.scss | 9 +- .../highlight/themes/solarized-dark.scss | 13 +- .../highlight/themes/solarized-light.scss | 13 +- app/assets/stylesheets/highlight/white_base.scss | 28 +- app/assets/stylesheets/mailer.scss | 1 - .../stylesheets/page_bundles/_pipeline_mixins.scss | 92 ---- app/assets/stylesheets/page_bundles/boards.scss | 37 +- .../page_bundles/dashboard_projects.scss | 4 +- .../stylesheets/page_bundles/issues_show.scss | 67 +++ .../stylesheets/page_bundles/jira_connect.scss | 11 +- .../stylesheets/page_bundles/merge_requests.scss | 62 +-- app/assets/stylesheets/page_bundles/milestone.scss | 2 +- app/assets/stylesheets/page_bundles/pipeline.scss | 2 +- .../stylesheets/page_bundles/pipeline_editor.scss | 22 + app/assets/stylesheets/page_bundles/pipelines.scss | 65 +-- app/assets/stylesheets/page_bundles/terms.scss | 8 - app/assets/stylesheets/pages/commits.scss | 5 - app/assets/stylesheets/pages/detail_page.scss | 23 +- app/assets/stylesheets/pages/issuable.scss | 107 +++-- app/assets/stylesheets/pages/issues.scss | 29 -- app/assets/stylesheets/pages/login.scss | 1 - app/assets/stylesheets/pages/merge_requests.scss | 6 +- app/assets/stylesheets/pages/notes.scss | 29 -- app/assets/stylesheets/pages/projects.scss | 25 - app/assets/stylesheets/pages/search.scss | 46 +- app/assets/stylesheets/pages/tree.scss | 6 +- app/assets/stylesheets/startup/startup-dark.scss | 112 +++-- .../stylesheets/startup/startup-general.scss | 105 ++-- app/assets/stylesheets/startup/startup-signin.scss | 34 +- app/assets/stylesheets/themes/_dark.scss | 2 + .../stylesheets/themes/dark_mode_overrides.scss | 7 +- app/assets/stylesheets/themes/theme_helper.scss | 1 + app/assets/stylesheets/themes/theme_light.scss | 5 +- app/assets/stylesheets/utilities.scss | 27 ++ .../diffs/overflow_warning_component.html.haml | 6 +- app/components/pajamas/alert_component.html.haml | 12 +- app/components/pajamas/alert_component.rb | 15 +- .../admin/application_settings_controller.rb | 16 +- app/controllers/admin/applications_controller.rb | 5 +- .../admin/background_migrations_controller.rb | 22 + app/controllers/admin/batched_jobs_controller.rb | 28 ++ app/controllers/admin/deploy_keys_controller.rb | 1 + app/controllers/admin/groups_controller.rb | 2 +- app/controllers/admin/jobs_controller.rb | 1 + app/controllers/admin/labels_controller.rb | 1 + .../admin/requests_profiles_controller.rb | 21 - .../admin/runner_projects_controller.rb | 1 + app/controllers/admin/runners_controller.rb | 19 +- app/controllers/admin/sessions_controller.rb | 2 +- app/controllers/admin/topics_controller.rb | 3 +- app/controllers/admin/users_controller.rb | 2 +- app/controllers/application_controller.rb | 7 + app/controllers/autocomplete_controller.rb | 5 +- app/controllers/boards/issues_controller.rb | 1 + app/controllers/boards/lists_controller.rb | 1 + app/controllers/clusters/base_controller.rb | 4 + app/controllers/clusters/clusters_controller.rb | 67 +-- .../concerns/authenticates_with_two_factor.rb | 4 +- ...authenticates_with_two_factor_for_admin_mode.rb | 2 +- .../concerns/dependency_proxy/group_access.rb | 4 - app/controllers/concerns/issuable_actions.rb | 2 +- app/controllers/concerns/notes_actions.rb | 2 +- app/controllers/concerns/oauth_applications.rb | 2 +- .../concerns/product_analytics_tracking.rb | 2 +- app/controllers/concerns/send_file_upload.rb | 2 +- app/controllers/concerns/uploads_actions.rb | 14 +- app/controllers/concerns/wiki_actions.rb | 4 + app/controllers/dashboard/groups_controller.rb | 2 + app/controllers/dashboard/labels_controller.rb | 1 + app/controllers/dashboard/milestones_controller.rb | 1 + app/controllers/dashboard/projects_controller.rb | 1 + app/controllers/dashboard/todos_controller.rb | 11 +- app/controllers/dashboard_controller.rb | 3 +- app/controllers/explore/groups_controller.rb | 1 + app/controllers/explore/projects_controller.rb | 4 +- .../google_api/authorizations_controller.rb | 1 + app/controllers/graphql_controller.rb | 5 +- .../groups/autocomplete_sources_controller.rb | 1 + app/controllers/groups/boards_controller.rb | 5 +- app/controllers/groups/crm/contacts_controller.rb | 1 + .../groups/crm/organizations_controller.rb | 1 + .../groups/dependency_proxies_controller.rb | 4 +- .../dependency_proxy/application_controller.rb | 6 - .../groups/dependency_proxy_auth_controller.rb | 1 + .../dependency_proxy_for_containers_controller.rb | 1 + app/controllers/groups/deploy_tokens_controller.rb | 1 + app/controllers/groups/group_members_controller.rb | 1 + app/controllers/groups/imports_controller.rb | 1 + app/controllers/groups/labels_controller.rb | 1 + app/controllers/groups/milestones_controller.rb | 1 + app/controllers/groups/packages_controller.rb | 1 + .../groups/registry/repositories_controller.rb | 3 +- app/controllers/groups/releases_controller.rb | 19 +- app/controllers/groups/runners_controller.rb | 32 +- .../groups/settings/applications_controller.rb | 6 +- .../groups/settings/ci_cd_controller.rb | 22 +- .../settings/packages_and_registries_controller.rb | 1 + .../groups/settings/repository_controller.rb | 1 + .../groups/shared_projects_controller.rb | 1 + app/controllers/groups/uploads_controller.rb | 1 + app/controllers/groups_controller.rb | 11 +- app/controllers/ide_controller.rb | 2 +- .../import/available_namespaces_controller.rb | 1 + app/controllers/import/base_controller.rb | 1 + app/controllers/import/bitbucket_controller.rb | 7 +- .../import/bitbucket_server_controller.rb | 7 +- app/controllers/import/bulk_imports_controller.rb | 3 +- app/controllers/import/fogbugz_controller.rb | 4 - app/controllers/import/gitea_controller.rb | 6 +- app/controllers/import/gitlab_controller.rb | 3 + app/controllers/import/gitlab_groups_controller.rb | 1 + app/controllers/import/history_controller.rb | 1 + app/controllers/import/manifest_controller.rb | 7 +- app/controllers/import/url_controller.rb | 1 + .../jira_connect/application_controller.rb | 40 +- app/controllers/jira_connect/events_controller.rb | 2 +- .../jira_connect/subscriptions_controller.rb | 3 +- app/controllers/oauth/applications_controller.rb | 6 +- app/controllers/oauth/authorizations_controller.rb | 17 +- app/controllers/omniauth_callbacks_controller.rb | 2 +- app/controllers/profiles/accounts_controller.rb | 1 + app/controllers/profiles/emails_controller.rb | 1 + app/controllers/profiles/gpg_keys_controller.rb | 2 +- app/controllers/profiles/keys_controller.rb | 1 + .../profiles/notifications_controller.rb | 1 + .../profiles/personal_access_tokens_controller.rb | 2 - app/controllers/profiles/preferences_controller.rb | 3 + .../profiles/two_factor_auths_controller.rb | 8 +- app/controllers/profiles_controller.rb | 3 +- .../projects/alert_management_controller.rb | 1 + .../projects/alerting/notifications_controller.rb | 3 + .../cycle_analytics/value_streams_controller.rb | 1 + .../projects/autocomplete_sources_controller.rb | 3 +- app/controllers/projects/avatars_controller.rb | 2 + app/controllers/projects/blame_controller.rb | 7 +- app/controllers/projects/blob_controller.rb | 4 +- app/controllers/projects/boards_controller.rb | 5 +- app/controllers/projects/branches_controller.rb | 2 +- app/controllers/projects/builds_controller.rb | 3 +- .../projects/ci/pipeline_editor_controller.rb | 3 +- .../projects/ci/secure_files_controller.rb | 1 + .../projects/cluster_agents_controller.rb | 1 + app/controllers/projects/clusters_controller.rb | 2 +- .../projects/cycle_analytics/events_controller.rb | 1 + .../projects/cycle_analytics_controller.rb | 1 + app/controllers/projects/deploy_keys_controller.rb | 1 + .../projects/deploy_tokens_controller.rb | 1 + app/controllers/projects/deployments_controller.rb | 1 + app/controllers/projects/discussions_controller.rb | 1 + .../projects/environments_controller.rb | 10 +- .../projects/feature_flags_clients_controller.rb | 1 + .../projects/feature_flags_controller.rb | 1 + .../feature_flags_user_lists_controller.rb | 1 + app/controllers/projects/graphs_controller.rb | 1 + app/controllers/projects/imports_controller.rb | 1 + .../pager_duty_incidents_controller.rb | 1 + app/controllers/projects/incidents_controller.rb | 5 +- app/controllers/projects/issue_links_controller.rb | 1 + app/controllers/projects/issues_controller.rb | 24 +- app/controllers/projects/jobs_controller.rb | 11 +- app/controllers/projects/labels_controller.rb | 1 + .../projects/learn_gitlab_controller.rb | 1 + app/controllers/projects/logs_controller.rb | 3 +- .../projects/merge_requests_controller.rb | 33 +- .../projects/metrics_dashboard_controller.rb | 1 + app/controllers/projects/milestones_controller.rb | 1 + app/controllers/projects/notes_controller.rb | 1 + .../packages/infrastructure_registry_controller.rb | 1 + .../projects/packages/packages_controller.rb | 1 + .../projects/pipeline_schedules_controller.rb | 1 + .../projects/pipelines/application_controller.rb | 1 + .../projects/pipelines/tests_controller.rb | 2 +- app/controllers/projects/pipelines_controller.rb | 54 ++- .../projects/pipelines_settings_controller.rb | 1 + .../projects/product_analytics_controller.rb | 2 +- .../projects/project_members_controller.rb | 1 + .../projects/prometheus/alerts_controller.rb | 66 +-- .../projects/prometheus/metrics_controller.rb | 4 +- .../projects/registry/application_controller.rb | 1 + .../projects/releases/evidences_controller.rb | 1 + app/controllers/projects/releases_controller.rb | 9 +- .../projects/runner_projects_controller.rb | 1 + app/controllers/projects/runners_controller.rb | 1 + .../projects/security/configuration_controller.rb | 2 +- .../projects/serverless/functions_controller.rb | 79 --- .../projects/service_ping_controller.rb | 3 +- app/controllers/projects/services_controller.rb | 14 - .../projects/settings/ci_cd_controller.rb | 3 +- .../projects/settings/operations_controller.rb | 9 +- .../settings/packages_and_registries_controller.rb | 1 + .../projects/settings/repository_controller.rb | 2 +- app/controllers/projects/starrers_controller.rb | 2 + .../projects/tags/releases_controller.rb | 1 + app/controllers/projects/terraform_controller.rb | 1 + app/controllers/projects/todos_controller.rb | 1 + app/controllers/projects/tracings_controller.rb | 1 + app/controllers/projects/tree_controller.rb | 6 +- app/controllers/projects/triggers_controller.rb | 1 + app/controllers/projects/uploads_controller.rb | 4 + app/controllers/projects/work_items_controller.rb | 1 + app/controllers/projects_controller.rb | 26 +- app/controllers/pwa_controller.rb | 12 + .../registrations/welcome_controller.rb | 2 + .../repositories/lfs_storage_controller.rb | 14 + app/controllers/runner_setup_controller.rb | 1 + app/controllers/search_controller.rb | 15 +- app/controllers/sent_notifications_controller.rb | 1 + app/controllers/sessions_controller.rb | 9 +- app/controllers/users_controller.rb | 4 +- .../build_ios_app_guide_email_experiment.rb | 6 + app/finders/alert_management/alerts_finder.rb | 2 - app/finders/error_tracking/errors_finder.rb | 46 -- app/finders/group_descendants_finder.rb | 2 +- app/finders/group_members_finder.rb | 4 + .../base.rb | 35 ++ .../on_direct_membership_finder.rb | 36 ++ .../on_transfer_finder.rb | 17 + app/finders/groups_finder.rb | 4 +- .../incident_management/timeline_events_finder.rb | 37 ++ app/finders/issuable_finder.rb | 4 +- app/finders/issues_finder.rb | 7 +- app/finders/issues_finder/params.rb | 4 - app/finders/packages/build_infos_finder.rb | 46 +- .../build_infos_for_many_packages_finder.rb | 92 ---- app/finders/personal_access_tokens_finder.rb | 2 - .../projects/serverless/functions_finder.rb | 153 ------ app/finders/releases_finder.rb | 14 - app/finders/tags_finder.rb | 4 - app/finders/user_recent_events_finder.rb | 7 +- app/graphql/mutations/award_emojis/base.rb | 6 - app/graphql/mutations/base_mutation.rb | 1 - app/graphql/mutations/boards/update.rb | 3 - app/graphql/mutations/ci/ci_cd_settings_update.rb | 37 +- app/graphql/mutations/ci/job/base.rb | 3 - app/graphql/mutations/ci/pipeline/base.rb | 3 - .../mutations/ci/project_ci_cd_settings_update.rb | 43 ++ app/graphql/mutations/ci/runner/delete.rb | 4 - app/graphql/mutations/ci/runner/update.rb | 4 - .../ci/runners_registration_token/reset.rb | 32 +- .../mutations/clusters/agent_tokens/create.rb | 3 - .../mutations/clusters/agent_tokens/delete.rb | 35 -- .../mutations/clusters/agent_tokens/revoke.rb | 3 - app/graphql/mutations/clusters/agents/delete.rb | 3 - .../container_expiration_policies/update.rb | 2 +- .../container_repositories/destroy_base.rb | 3 - .../mutations/customer_relations/contacts/base.rb | 25 + .../customer_relations/contacts/create.rb | 16 +- .../customer_relations/contacts/update.rb | 16 +- .../customer_relations/organizations/update.rb | 4 + app/graphql/mutations/design_management/move.rb | 3 - .../mutations/discussions/toggle_resolve.rb | 3 - .../environments/canary_ingress/update.rb | 9 +- .../incident_management/timeline_event/base.rb | 29 ++ .../incident_management/timeline_event/create.rb | 37 ++ .../incident_management/timeline_event/destroy.rb | 24 + .../timeline_event/promote_from_note.rb | 46 ++ .../incident_management/timeline_event/update.rb | 33 ++ app/graphql/mutations/issues/set_crm_contacts.rb | 2 +- .../merge_requests/remove_attention_request.rb | 40 ++ .../mutations/merge_requests/request_attention.rb | 40 ++ app/graphql/mutations/merge_requests/set_labels.rb | 3 - .../merge_requests/toggle_attention_requested.rb | 2 + .../metrics/dashboard/annotations/create.rb | 11 +- .../mutations/namespace/package_settings/update.rb | 2 +- app/graphql/mutations/notes/base.rb | 3 - app/graphql/mutations/notes/create/base.rb | 3 - app/graphql/mutations/notes/create/note.rb | 7 +- .../mutations/notes/reposition_image_diff_note.rb | 3 +- .../mutations/notes/update/image_diff_note.rb | 2 +- app/graphql/mutations/packages/destroy.rb | 3 - app/graphql/mutations/packages/destroy_file.rb | 3 - .../mutations/release_asset_links/delete.rb | 4 - .../mutations/release_asset_links/update.rb | 4 - app/graphql/mutations/saved_replies/base.rb | 6 +- app/graphql/mutations/timelogs/delete.rb | 33 ++ app/graphql/mutations/todos/base.rb | 3 - app/graphql/mutations/todos/create.rb | 3 +- app/graphql/mutations/todos/mark_all_done.rb | 2 +- app/graphql/mutations/todos/restore_many.rb | 3 - app/graphql/mutations/user_preferences/update.rb | 2 +- app/graphql/mutations/work_items/create.rb | 3 - .../mutations/work_items/create_from_task.rb | 2 - app/graphql/mutations/work_items/delete.rb | 2 - app/graphql/mutations/work_items/delete_task.rb | 69 +++ app/graphql/mutations/work_items/update.rb | 2 - .../burndown_chart/burnup.iteration.query.graphql | 40 ++ .../burndown_chart/burnup.milestone.query.graphql | 36 ++ .../queries/burndown_chart/burnup.query.graphql | 75 --- .../get_design_list.query.graphql | 2 +- .../pipelines/get_pipeline_details.query.graphql | 6 + .../snippet/snippet_blob_content.query.graphql | 2 +- .../alert_management/http_integrations_resolver.rb | 3 +- app/graphql/resolvers/base_issues_resolver.rb | 2 +- app/graphql/resolvers/base_resolver.rb | 1 - app/graphql/resolvers/boards_resolver.rb | 3 - app/graphql/resolvers/ci/config_resolver.rb | 30 +- app/graphql/resolvers/ci/runner_status_resolver.rb | 9 +- .../resolvers/concerns/issue_resolver_arguments.rb | 6 + app/graphql/resolvers/concerns/resolves_ids.rb | 5 +- .../resolvers/concerns/resolves_snippets.rb | 2 +- .../resolvers/concerns/time_frame_arguments.rb | 9 +- .../design_at_version_resolver.rb | 3 - .../resolvers/design_management/design_resolver.rb | 4 - .../design_management/designs_resolver.rb | 27 +- .../version/design_at_version_resolver.rb | 5 - .../version/designs_at_version_resolver.rb | 3 - .../version_in_collection_resolver.rb | 4 - .../design_management/version_resolver.rb | 4 - .../design_management/versions_resolver.rb | 29 +- .../sentry_detailed_error_resolver.rb | 4 - .../sentry_error_stack_trace_resolver.rb | 4 - app/graphql/resolvers/group_members_resolver.rb | 4 + app/graphql/resolvers/group_packages_resolver.rb | 5 +- .../timeline_events_resolver.rb | 32 ++ app/graphql/resolvers/package_details_resolver.rb | 3 - .../resolvers/package_pipelines_resolver.rb | 54 ++- app/graphql/resolvers/project_packages_resolver.rb | 5 +- app/graphql/resolvers/project_pipeline_resolver.rb | 5 + app/graphql/resolvers/snippets_resolver.rb | 6 +- app/graphql/resolvers/timelog_resolver.rb | 6 +- .../resolvers/user_merge_requests_resolver_base.rb | 3 - app/graphql/resolvers/work_item_resolver.rb | 3 - app/graphql/subscriptions/issuable_updated.rb | 4 - .../types/alert_management/domain_filter_enum.rb | 6 +- app/graphql/types/base_field.rb | 2 +- app/graphql/types/boards/board_issue_input_type.rb | 1 - app/graphql/types/ci/config/config_type.rb | 2 + app/graphql/types/ci/config/include_type.rb | 53 +++ app/graphql/types/ci/config/include_type_enum.rb | 17 + app/graphql/types/ci/pipeline_type.rb | 1 - app/graphql/types/ci/runner_status_enum.rb | 14 +- app/graphql/types/ci/runner_type.rb | 13 +- .../types/ci/runner_upgrade_status_type_enum.rb | 14 +- app/graphql/types/color_type.rb | 25 + .../types/concerns/gitlab_style_deprecations.rb | 4 +- .../types/container_expiration_policy_type.rb | 2 +- app/graphql/types/container_repository_type.rb | 1 + app/graphql/types/current_user_todos.rb | 19 +- .../types/customer_relations/contact_type.rb | 5 + .../types/customer_relations/organization_type.rb | 5 + .../types/dependency_proxy/group_setting_type.rb | 2 +- .../image_ttl_group_policy_type.rb | 2 +- app/graphql/types/deprecated_mutations.rb | 3 +- .../types/design_management/design_fields.rb | 30 +- app/graphql/types/design_management/design_type.rb | 5 +- app/graphql/types/global_id_type.rb | 16 - .../incident_management/timeline_event_type.rb | 72 +++ app/graphql/types/issue_type.rb | 2 +- app/graphql/types/merge_request_type.rb | 8 +- app/graphql/types/mutation_type.rb | 17 +- .../types/namespace/package_settings_type.rb | 2 +- .../notes/update_diff_image_position_input_type.rb | 2 + app/graphql/types/packages/package_base_type.rb | 60 +++ app/graphql/types/packages/package_details_type.rb | 11 +- app/graphql/types/packages/package_type.rb | 64 +-- app/graphql/types/permission_types/timelog.rb | 11 + app/graphql/types/permission_types/work_item.rb | 12 + app/graphql/types/project_statistics_type.rb | 2 + app/graphql/types/project_type.rb | 13 + app/graphql/types/projects/topic_type.rb | 4 + app/graphql/types/query_type.rb | 23 - app/graphql/types/range_input_type.rb | 2 +- app/graphql/types/root_storage_statistics_type.rb | 1 + app/graphql/types/timelog_type.rb | 7 + app/graphql/types/work_item_type.rb | 2 + .../types/work_items/convert_task_input_type.rb | 4 - .../types/work_items/deleted_task_input_type.rb | 19 + app/helpers/appearances_helper.rb | 18 +- app/helpers/application_helper.rb | 4 +- app/helpers/application_settings_helper.rb | 34 +- app/helpers/auth_helper.rb | 4 +- app/helpers/badges_helper.rb | 2 +- app/helpers/boards_helper.rb | 1 - app/helpers/broadcast_messages_helper.rb | 2 +- app/helpers/ci/builds_helper.rb | 10 + app/helpers/ci/pipeline_editor_helper.rb | 1 + app/helpers/ci/pipelines_helper.rb | 4 +- app/helpers/ci/runners_helper.rb | 12 +- app/helpers/ci/secure_files_helper.rb | 10 + app/helpers/clusters_helper.rb | 14 +- app/helpers/container_registry_helper.rb | 4 - app/helpers/emails_helper.rb | 4 +- app/helpers/groups/group_members_helper.rb | 2 +- app/helpers/instance_configuration_helper.rb | 4 + app/helpers/integrations_helper.rb | 1 + app/helpers/invite_members_helper.rb | 25 +- app/helpers/issuables_helper.rb | 23 +- app/helpers/issues_helper.rb | 14 +- app/helpers/jira_connect_helper.rb | 3 +- app/helpers/lazy_image_tag_helper.rb | 26 +- app/helpers/learn_gitlab_helper.rb | 3 +- app/helpers/merge_requests_helper.rb | 43 +- app/helpers/namespaces_helper.rb | 3 +- app/helpers/nav_helper.rb | 8 +- app/helpers/page_layout_helper.rb | 2 +- app/helpers/personal_access_tokens_helper.rb | 7 - app/helpers/profiles_helper.rb | 4 +- app/helpers/projects/pipeline_helper.rb | 1 + app/helpers/projects_helper.rb | 5 +- app/helpers/releases_helper.rb | 9 +- app/helpers/routing/projects_helper.rb | 16 +- app/helpers/routing/pseudonymization_helper.rb | 2 + app/helpers/search_helper.rb | 6 +- app/helpers/sorting_helper.rb | 45 ++ app/helpers/storage_helper.rb | 5 +- app/helpers/system_note_helper.rb | 3 +- app/helpers/todos_helper.rb | 6 +- app/helpers/tracking_helper.rb | 9 +- app/helpers/users/group_callouts_helper.rb | 2 - app/helpers/users_helper.rb | 2 +- app/helpers/workhorse_helper.rb | 2 + app/mailers/emails/in_product_marketing.rb | 6 + app/mailers/emails/merge_requests.rb | 14 + app/mailers/emails/projects.rb | 14 + app/mailers/previews/notify_preview.rb | 4 + app/models/alert_management/alert.rb | 9 +- app/models/alert_management/metric_image.rb | 4 - .../analytics/cycle_analytics/aggregation.rb | 8 + app/models/application_setting.rb | 18 + app/models/application_setting_implementation.rb | 3 + app/models/broadcast_message.rb | 2 +- app/models/ci/bridge.rb | 17 +- app/models/ci/build.rb | 21 +- app/models/ci/build_metadata.rb | 2 +- app/models/ci/job_artifact.rb | 9 +- app/models/ci/namespace_settings.rb | 19 + app/models/ci/pending_build.rb | 2 +- app/models/ci/pipeline.rb | 34 +- app/models/ci/processable.rb | 15 + app/models/ci/runner.rb | 19 +- app/models/ci/secure_file.rb | 7 +- app/models/clusters/applications/prometheus.rb | 1 - app/models/clusters/cluster.rb | 1 - app/models/clusters/instance.rb | 6 + app/models/clusters/platforms/kubernetes.rb | 46 +- app/models/concerns/bulk_member_access_load.rb | 5 + app/models/concerns/ci/has_deployment_name.rb | 2 +- app/models/concerns/ci/has_status.rb | 19 +- app/models/concerns/cross_database_modification.rb | 2 +- app/models/concerns/deployment_platform.rb | 2 +- app/models/concerns/integrations/loggable.rb | 37 ++ .../concerns/integrations/reset_secret_fields.rb | 41 ++ .../integrations/slack_mattermost_notifier.rb | 12 +- app/models/concerns/issuable.rb | 4 +- app/models/concerns/limitable.rb | 4 +- .../concerns/merge_request_reviewer_state.rb | 2 - app/models/concerns/packages/destructible.rb | 2 +- app/models/concerns/pg_full_text_searchable.rb | 14 +- app/models/concerns/project_services_loggable.rb | 28 -- app/models/concerns/routable.rb | 4 +- app/models/concerns/sha256_attribute.rb | 45 -- app/models/concerns/sha_attribute.rb | 64 ++- app/models/container_registry/event.rb | 25 +- app/models/container_repository.rb | 25 +- app/models/deploy_token.rb | 10 +- app/models/deployment.rb | 9 +- app/models/design_management/action.rb | 1 + app/models/environment.rb | 12 +- app/models/event.rb | 6 + app/models/event_collection.rb | 47 +- app/models/group.rb | 4 +- app/models/group_group_link.rb | 2 + app/models/incident_management/timeline_event.rb | 25 + app/models/instance_configuration.rb | 19 + app/models/integration.rb | 9 +- app/models/integrations/bamboo.rb | 54 +-- app/models/integrations/base_chat_notification.rb | 4 + app/models/integrations/base_ci.rb | 10 +- app/models/integrations/buildkite.rb | 31 +- app/models/integrations/drone_ci.rb | 32 +- app/models/integrations/field.rb | 1 + app/models/integrations/jenkins.rb | 53 +-- app/models/integrations/jira.rb | 41 +- app/models/integrations/mock_ci.rb | 18 +- app/models/integrations/packagist.rb | 3 - app/models/integrations/prometheus.rb | 9 - app/models/integrations/teamcity.rb | 46 +- app/models/issue.rb | 7 +- app/models/key.rb | 15 +- app/models/label.rb | 5 - app/models/loose_foreign_keys/deleted_record.rb | 4 +- app/models/member.rb | 7 +- app/models/members_preloader.rb | 2 +- app/models/merge_request.rb | 30 +- app/models/merge_request_assignee.rb | 6 - app/models/merge_request_reviewer.rb | 6 - app/models/namespace.rb | 26 +- app/models/namespace_ci_cd_setting.rb | 9 + app/models/namespaces/traversal/linear.rb | 12 +- app/models/namespaces/traversal/linear_scopes.rb | 14 +- app/models/packages/build_info.rb | 4 +- app/models/packages/cleanup.rb | 8 + app/models/packages/cleanup/policy.rb | 32 ++ app/models/pages_domain.rb | 5 +- app/models/personal_access_token.rb | 4 - .../preloaders/group_root_ancestor_preloader.rb | 2 +- .../user_max_access_level_in_groups_preloader.rb | 2 +- .../user_max_access_level_in_projects_preloader.rb | 51 +- app/models/project.rb | 43 +- app/models/project_ci_cd_setting.rb | 3 +- app/models/project_import_state.rb | 4 +- app/models/project_pages_metadatum.rb | 2 - app/models/project_setting.rb | 13 +- app/models/project_statistics.rb | 8 +- app/models/project_team.rb | 4 + app/models/projects/topic.rb | 7 +- app/models/protected_branch.rb | 4 + app/models/raw_usage_data.rb | 7 + app/models/system_note_metadata.rb | 2 +- app/models/user.rb | 20 +- app/models/user_custom_attribute.rb | 33 +- app/models/users/callout.rb | 4 +- app/models/users/in_product_marketing_email.rb | 71 ++- app/models/wiki.rb | 126 +++-- app/models/work_items/type.rb | 4 + app/policies/group_policy.rb | 34 +- .../incident_management/timeline_event_policy.rb | 7 + app/policies/issuable_policy.rb | 8 + app/policies/issue_policy.rb | 11 +- app/policies/namespace_ci_cd_setting_policy.rb | 5 + app/policies/namespaces/user_namespace_policy.rb | 3 +- app/policies/project_policy.rb | 4 +- app/policies/timelog_policy.rb | 7 + app/policies/work_item_policy.rb | 4 +- app/presenters/clusterable_presenter.rb | 16 - app/presenters/clusters/cluster_presenter.rb | 2 +- app/presenters/dev_ops_report/metric_presenter.rb | 2 +- app/presenters/instance_clusterable_presenter.rb | 20 - app/presenters/issue_presenter.rb | 16 +- app/presenters/project_presenter.rb | 3 +- .../projects/security/configuration_presenter.rb | 2 +- app/presenters/user_presenter.rb | 2 +- app/serializers/award_emoji_entity.rb | 1 + app/serializers/build_details_entity.rb | 8 +- app/serializers/ci/job_entity.rb | 1 + app/serializers/cluster_entity.rb | 10 +- app/serializers/environment_entity.rb | 3 +- app/serializers/environment_serializer.rb | 5 +- app/serializers/issue_board_entity.rb | 2 +- app/serializers/issue_entity.rb | 2 +- app/serializers/issue_sidebar_basic_entity.rb | 2 +- app/serializers/linked_issue_entity.rb | 2 +- app/serializers/merge_request_user_entity.rb | 2 +- app/serializers/merge_request_widget_entity.rb | 2 +- app/serializers/release_entity.rb | 9 + .../alert_management/alerts/update_service.rb | 20 +- .../metric_images/upload_service.rb | 2 +- .../project_access_changed_service.rb | 2 + .../project_create_service.rb | 34 -- .../project_group_link_create_service.rb | 72 --- .../bulk_imports/file_decompression_service.rb | 2 +- .../ci/create_downstream_pipeline_service.rb | 3 + app/services/ci/expire_pipeline_cache_service.rb | 2 +- app/services/ci/generate_kubeconfig_service.rb | 11 +- app/services/ci/job_artifacts/create_service.rb | 2 +- .../ci/job_artifacts/destroy_batch_service.rb | 17 +- .../ci/pipeline_creation/start_pipeline_service.rb | 5 + app/services/ci/pipeline_trigger_service.rb | 2 + app/services/ci/queue/build_queue_service.rb | 2 +- app/services/ci/queue/builds_table_strategy.rb | 2 +- app/services/ci/queue/pending_builds_strategy.rb | 4 +- app/services/ci/register_job_service.rb | 16 +- app/services/ci/retry_job_service.rb | 29 +- app/services/ci/runners/register_runner_service.rb | 2 +- .../ci/runners/reset_registration_token_service.rb | 2 + .../ci/stuck_builds/drop_running_service.rb | 2 +- app/services/ci/update_build_state_service.rb | 4 +- app/services/clusters/kubernetes.rb | 2 - .../create_or_update_service_account_service.rb | 32 -- .../concerns/alert_management/alert_processing.rb | 2 +- .../concerns/ci/downstream_pipeline_helpers.rb | 24 + app/services/concerns/group_linkable.rb | 38 ++ .../cleanup_service.rb | 3 +- .../update_service.rb | 2 +- .../container_expiration_policy_service.rb | 18 - .../customer_relations/contacts/base_service.rb | 17 + .../customer_relations/contacts/create_service.rb | 18 - .../customer_relations/contacts/update_service.rb | 10 +- .../organizations/update_service.rb | 9 + app/services/database/consistency_fix_service.rb | 48 ++ .../deployments/update_environment_service.rb | 2 +- app/services/environments/stop_service.rb | 4 +- app/services/error_tracking/base_service.rb | 10 + .../error_tracking/collect_error_service.rb | 26 +- .../error_tracking/issue_details_service.rb | 11 +- .../error_tracking/issue_latest_event_service.rb | 13 +- .../error_tracking/issue_update_service.rb | 6 +- app/services/error_tracking/list_issues_service.rb | 16 +- app/services/event_create_service.rb | 2 +- app/services/git/base_hooks_service.rb | 2 +- app/services/groups/group_links/create_service.rb | 51 +- .../groups/import_export/export_service.rb | 2 +- .../groups/import_export/import_service.rb | 2 +- app/services/groups/open_issues_count_service.rb | 27 +- app/services/groups/transfer_service.rb | 13 +- app/services/import/bitbucket_server_service.rb | 2 + app/services/import/github_service.rb | 2 + .../file_acquisition_strategies/remote_file.rb | 2 +- .../timeline_events/base_service.rb | 27 ++ .../timeline_events/create_service.rb | 51 ++ .../timeline_events/destroy_service.rb | 38 ++ .../timeline_events/update_service.rb | 61 +++ app/services/issuable/destroy_service.rb | 10 +- app/services/jira/requests/base.rb | 16 +- app/services/jira_connect/sync_service.rb | 2 +- app/services/jira_import/start_import_service.rb | 2 +- .../loose_foreign_keys/batch_cleaner_service.rb | 2 - app/services/members/create_service.rb | 6 +- app/services/members/creator_service.rb | 8 +- app/services/members/projects/creator_service.rb | 15 +- app/services/merge_requests/approval_service.rb | 2 + app/services/merge_requests/base_service.rb | 53 ++- app/services/merge_requests/build_service.rb | 8 +- app/services/merge_requests/create_service.rb | 4 +- .../handle_assignees_change_service.rb | 2 - .../mergeability/run_checks_service.rb | 2 +- app/services/merge_requests/post_merge_service.rb | 14 +- .../merge_requests/push_options_handler_service.rb | 5 + .../merge_requests/remove_approval_service.rb | 1 + .../remove_attention_requested_service.rb | 18 +- .../merge_requests/request_attention_service.rb | 60 +++ .../merge_requests/update_assignees_service.rb | 2 + app/services/merge_requests/update_service.rb | 4 + .../in_product_marketing_email_records.rb | 26 - .../in_product_marketing_emails_service.rb | 4 +- .../namespaces/package_settings/update_service.rb | 2 +- app/services/notes/create_service.rb | 18 +- app/services/notification_service.rb | 30 ++ app/services/projects/after_import_service.rb | 43 -- .../android_target_platform_detector_service.rb | 35 ++ app/services/projects/blame_service.rb | 65 +++ app/services/projects/branches_by_mode_service.rb | 2 +- .../container_repository/cleanup_tags_service.rb | 5 - .../container_repository/delete_tags_service.rb | 18 +- .../gitlab/delete_tags_service.rb | 7 - app/services/projects/create_service.rb | 33 +- .../projects/group_links/create_service.rb | 35 +- ...in_product_marketing_campaign_emails_service.rb | 57 +++ .../projects/lfs_pointers/lfs_download_service.rb | 2 +- app/services/projects/open_issues_count_service.rb | 93 +--- app/services/projects/overwrite_project_service.rb | 2 +- app/services/projects/participants_service.rb | 10 +- .../projects/prometheus/alerts/alert_params.rb | 17 - .../projects/prometheus/alerts/create_service.rb | 15 - .../projects/prometheus/alerts/destroy_service.rb | 13 - .../projects/prometheus/alerts/update_service.rb | 15 - .../projects/prometheus/metrics/base_service.rb | 30 +- .../projects/prometheus/metrics/destroy_service.rb | 1 - .../projects/prometheus/metrics/update_service.rb | 29 -- .../projects/record_target_platforms_service.rb | 34 +- app/services/projects/update_pages_service.rb | 5 + .../projects/update_remote_mirror_service.rb | 2 +- .../prometheus/create_default_alerts_service.rb | 105 ---- app/services/quick_actions/interpret_service.rb | 17 +- app/services/service_ping/build_payload_service.rb | 27 -- app/services/service_ping/devops_report_service.rb | 26 - .../service_ping/permit_data_categories_service.rb | 24 - app/services/service_ping/service_ping_settings.rb | 17 - app/services/service_ping/submit_service.rb | 49 +- app/services/system_note_service.rb | 31 ++ app/services/system_notes/incidents_service.rb | 40 ++ app/services/system_notes/time_tracking_service.rb | 12 + app/services/timelogs/base_service.rb | 15 + app/services/timelogs/delete_service.rb | 26 + app/services/users/destroy_service.rb | 5 +- .../users/in_product_marketing_email_records.rb | 27 ++ app/services/users/validate_manual_otp_service.rb | 29 ++ app/services/users/validate_otp_service.rb | 29 -- app/services/users/validate_push_otp_service.rb | 25 + app/services/work_items/delete_task_service.rb | 45 ++ .../task_list_reference_removal_service.rb | 63 +++ .../_account_and_limit.html.haml | 6 +- .../application_settings/_issue_limits.html.haml | 4 +- .../application_settings/_note_limits.html.haml | 2 +- .../_pipeline_limits.html.haml | 9 + .../application_settings/_prometheus.html.haml | 21 +- .../admin/application_settings/_registry.html.haml | 1 - .../_repository_storage.html.haml | 14 +- .../_runner_registrars_form.html.haml | 18 +- .../admin/application_settings/_signin.html.haml | 61 +-- .../admin/application_settings/_usage.html.haml | 4 +- .../_users_api_limits.html.haml | 2 +- .../_visibility_and_access.html.haml | 19 +- .../application_settings/ci/_header.html.haml | 2 +- .../admin/application_settings/ci_cd.html.haml | 4 +- .../admin/application_settings/general.html.haml | 4 +- .../metrics_and_profiling.html.haml | 4 +- .../admin/application_settings/network.html.haml | 12 + .../service_usage_data.html.haml | 4 +- app/views/admin/applications/_form.html.haml | 16 +- .../admin/background_migrations/_job.html.haml | 10 + .../background_migrations/_migration.html.haml | 10 +- .../_migration_full_information.html.haml | 21 + .../admin/background_migrations/index.html.haml | 29 +- .../admin/background_migrations/show.html.haml | 39 ++ app/views/admin/batched_jobs/_job.html.haml | 17 + .../admin/batched_jobs/_transition_log.html.haml | 13 + app/views/admin/batched_jobs/show.html.haml | 36 ++ app/views/admin/broadcast_messages/_form.html.haml | 2 +- app/views/admin/broadcast_messages/index.html.haml | 2 +- .../_security_newsletter_callout.html.haml | 6 +- app/views/admin/groups/_form.html.haml | 4 +- app/views/admin/groups/show.html.haml | 2 +- app/views/admin/projects/show.html.haml | 4 +- app/views/admin/requests_profiles/index.html.haml | 22 - app/views/admin/runners/edit.html.haml | 130 ++--- app/views/admin/runners/show.html.haml | 2 +- app/views/admin/sessions/_new_base.html.haml | 2 +- app/views/admin/sessions/_signin_box.html.haml | 2 +- app/views/admin/sessions/_two_factor_otp.html.haml | 2 +- app/views/admin/sessions/new.html.haml | 2 +- app/views/admin/sessions/two_factor.html.haml | 4 +- app/views/admin/topics/_form.html.haml | 11 +- app/views/admin/topics/_topic.html.haml | 5 +- app/views/admin/users/_users.html.haml | 4 +- app/views/ci/runner/_how_to_setup_runner.html.haml | 4 +- app/views/ci/runner/_setup_runner_in_aws.html.haml | 2 +- app/views/ci/variables/_content.html.haml | 2 +- app/views/ci/variables/_index.html.haml | 6 +- app/views/clusters/clusters/_banner.html.haml | 8 +- .../clusters/clusters/_deprecation_alert.html.haml | 4 +- .../clusters/_gcp_signup_offer_banner.html.haml | 6 +- .../clusters/clusters/_integrations.html.haml | 23 +- app/views/clusters/clusters/_sidebar.html.haml | 3 +- app/views/clusters/clusters/aws/_new.html.haml | 17 - .../_cloud_provider_button.html.haml | 8 +- .../_cloud_provider_selector.html.haml | 5 +- app/views/clusters/clusters/connect.html.haml | 2 +- app/views/clusters/clusters/gcp/_form.html.haml | 87 ---- .../clusters/gcp/_gcp_not_configured.html.haml | 3 - app/views/clusters/clusters/gcp/_header.html.haml | 14 - app/views/clusters/clusters/gcp/_new.html.haml | 5 - app/views/clusters/clusters/new.html.haml | 19 - .../clusters/clusters/new_cluster_docs.html.haml | 5 +- app/views/clusters/clusters/show.html.haml | 8 - app/views/clusters/clusters/user/_form.html.haml | 6 +- app/views/dashboard/todos/index.html.haml | 2 + app/views/devise/passwords/new.html.haml | 8 +- app/views/devise/sessions/_new_base.html.haml | 13 +- .../sessions/_new_base_user_login_label.html.haml | 1 + app/views/devise/sessions/_new_crowd.html.haml | 8 +- app/views/devise/sessions/_new_ldap.html.haml | 8 +- app/views/devise/sessions/two_factor.html.haml | 2 +- app/views/devise/shared/_omniauth_box.html.haml | 2 +- app/views/devise/shared/_tab_single.html.haml | 2 +- app/views/devise/shared/_tabs_normal.html.haml | 9 - .../doorkeeper/authorizations/redirect.html.haml | 14 +- app/views/errors/request_conflict.html.haml | 18 + app/views/events/event/_note.html.haml | 2 + app/views/explore/projects/topic.html.haml | 12 +- app/views/groups/_home_panel.html.haml | 3 +- ...ort_group_from_another_instance_panel.html.haml | 4 +- .../groups/_import_group_from_file_panel.html.haml | 4 +- app/views/groups/_invite_groups_modal.html.haml | 2 +- app/views/groups/dependency_proxies/show.html.haml | 2 - app/views/groups/issues.html.haml | 2 +- app/views/groups/milestones/index.html.haml | 2 +- app/views/groups/new.html.haml | 2 +- app/views/groups/runners/_group_runners.html.haml | 29 -- app/views/groups/runners/_runner.html.haml | 80 ---- app/views/groups/runners/_settings.html.haml | 133 +----- app/views/groups/runners/_shared_runners.html.haml | 3 - app/views/groups/runners/_sort_dropdown.html.haml | 3 - app/views/groups/runners/edit.html.haml | 6 +- app/views/groups/runners/show.html.haml | 5 +- app/views/groups/settings/_export.html.haml | 8 +- app/views/groups/settings/_permissions.html.haml | 2 +- app/views/groups/settings/_remove_button.html.haml | 4 +- app/views/groups/settings/_transfer.html.haml | 4 +- .../packages_and_registries/show.html.haml | 2 - app/views/help/instance_configuration.html.haml | 1 + .../instance_configuration/_ci_cd_limits.html.haml | 52 ++ .../instance_configuration/_size_limits.html.haml | 3 + app/views/import/bulk_imports/status.html.haml | 1 + app/views/import/shared/_errors.html.haml | 4 +- app/views/jira_connect/users/show.html.haml | 2 +- app/views/layouts/_head.html.haml | 57 +-- app/views/layouts/_header_search.html.haml | 2 +- app/views/layouts/_loading_hints.html.haml | 2 +- app/views/layouts/devise.html.haml | 4 +- app/views/layouts/header/_default.html.haml | 37 +- .../layouts/header/_logo_with_title.html.haml | 7 +- app/views/layouts/header/_new_dropdown.html.haml | 4 +- .../header/_registration_enabled_callout.html.haml | 6 +- .../header/_storage_enforcement_banner.html.haml | 4 +- .../layouts/in_product_marketing_mailer.html.haml | 2 +- app/views/layouts/mailer.html.haml | 2 +- app/views/layouts/nav/_breadcrumbs.html.haml | 5 +- app/views/layouts/nav/sidebar/_admin.html.haml | 4 - app/views/layouts/terms.html.haml | 9 +- app/views/layouts/unknown_user_mailer.html.haml | 2 +- .../notify/approved_merge_request_email.html.haml | 157 ++++++ .../notify/approved_merge_request_email.text.haml | 9 + .../notify/build_ios_app_guide_email.html.haml | 13 + .../notify/build_ios_app_guide_email.text.erb | 13 + ...active_project_deletion_warning_email.html.haml | 28 ++ ...nactive_project_deletion_warning_email.text.erb | 17 + .../merge_request_unmergeable_email.html.haml | 8 + .../merge_when_pipeline_succeeds_email.html.haml | 4 +- .../notify/merged_merge_request_email.html.haml | 14 + .../notify/merged_merge_request_email.text.haml | 8 +- .../unapproved_merge_request_email.html.haml | 156 ++++++ .../unapproved_merge_request_email.text.haml | 9 + app/views/profiles/_email_settings.html.haml | 43 +- app/views/profiles/_name.html.haml | 10 +- app/views/profiles/accounts/show.html.haml | 8 +- app/views/profiles/notifications/show.html.haml | 4 +- app/views/profiles/preferences/show.html.haml | 7 +- app/views/profiles/show.html.haml | 120 +++-- app/views/profiles/two_factor_auths/show.html.haml | 6 +- app/views/projects/_deletion_failed.html.haml | 4 +- app/views/projects/_files.html.haml | 2 +- app/views/projects/_home_panel.html.haml | 5 +- app/views/projects/_last_push.html.haml | 6 +- .../_merge_request_merge_checks_settings.html.haml | 29 +- .../_merge_request_merge_method_settings.html.haml | 2 +- ..._merge_request_merge_options_settings.html.haml | 21 +- app/views/projects/_new_project_fields.html.haml | 4 +- app/views/projects/blame/show.html.haml | 3 + app/views/projects/blob/_blob.html.haml | 2 +- app/views/projects/blob/_breadcrumb.html.haml | 2 +- app/views/projects/blob/_editor.html.haml | 2 + app/views/projects/blob/edit.html.haml | 5 +- app/views/projects/branches/index.html.haml | 2 +- app/views/projects/branches/new.html.haml | 4 +- app/views/projects/buttons/_clone.html.haml | 14 +- .../projects/ci/pipeline_editor/show.html.haml | 1 + app/views/projects/ci/secure_files/show.html.haml | 4 +- app/views/projects/commits/_commits.html.haml | 8 +- app/views/projects/default_branch/_show.html.haml | 14 +- .../projects/deployments/_deployment.html.haml | 1 + app/views/projects/diffs/_diffs.html.haml | 3 +- app/views/projects/diffs/_text_file.html.haml | 2 +- app/views/projects/feature_flags/edit.html.haml | 2 +- app/views/projects/forks/error.html.haml | 8 +- .../_generic_commit_status.html.haml | 5 +- app/views/projects/graphs/charts.html.haml | 2 +- .../_alert_moved_from_service_desk.html.haml | 4 +- app/views/projects/issues/_discussion.html.haml | 2 +- app/views/projects/issues/index.html.haml | 2 +- app/views/projects/issues/show.html.haml | 1 + app/views/projects/jobs/index.html.haml | 2 +- app/views/projects/mattermosts/_no_teams.html.haml | 6 - app/views/projects/mattermosts/new.html.haml | 26 +- .../_close_reopen_draft_report_toggle.html.haml | 76 +-- .../merge_requests/_code_dropdown.html.haml | 39 ++ .../projects/merge_requests/_mr_box.html.haml | 8 +- .../projects/merge_requests/_mr_title.html.haml | 61 +-- .../creations/_new_compare.html.haml | 4 +- .../projects/merge_requests/invalid.html.haml | 4 +- app/views/projects/merge_requests/show.html.haml | 16 +- app/views/projects/milestones/index.html.haml | 2 +- app/views/projects/milestones/show.html.haml | 4 +- app/views/projects/mirrors/_mirror_repos.html.haml | 4 +- app/views/projects/pages/_access.html.haml | 2 +- app/views/projects/pages/_destroy.haml | 2 +- app/views/projects/pages/_list.html.haml | 2 +- .../projects/pages_domains/_certificate.html.haml | 3 +- app/views/projects/pages_domains/_form.html.haml | 7 +- app/views/projects/pipelines/_with_tabs.html.haml | 71 +-- app/views/projects/pipelines/show.html.haml | 2 +- .../projects/runners/_group_runners.html.haml | 5 +- .../projects/serverless/functions/index.html.haml | 17 - .../projects/serverless/functions/show.html.haml | 19 - app/views/projects/services/_form.html.haml | 12 +- .../_detailed_help.html.haml | 98 ---- .../mattermost_slash_commands/_help.html.haml | 17 - .../_installation_info.html.haml | 7 - .../services/prometheus/_custom_metrics.html.haml | 28 -- .../services/prometheus/_external_alerts.html.haml | 8 - .../projects/services/prometheus/_help.html.haml | 8 - .../services/prometheus/_metrics.html.haml | 38 -- .../projects/services/prometheus/_show.html.haml | 9 - .../projects/services/prometheus/_top.html.haml | 9 - app/views/projects/services/slack/_help.haml | 4 - .../services/slack_slash_commands/_help.html.haml | 93 ---- app/views/projects/settings/ci_cd/_form.html.haml | 22 +- app/views/projects/settings/ci_cd/show.html.haml | 16 +- .../settings/operations/_prometheus.html.haml | 17 - .../projects/settings/operations/show.html.haml | 7 +- app/views/projects/tree/_tree_header.html.haml | 6 +- app/views/projects/work_items/index.html.haml | 2 +- app/views/pwa/offline.html.haml | 31 ++ app/views/registrations/welcome/show.html.haml | 4 +- ...auto_devops_implicitly_enabled_banner.html.haml | 6 +- app/views/shared/_import_form.html.haml | 34 +- app/views/shared/_integration_settings.html.haml | 4 +- app/views/shared/_logo.svg | 17 +- app/views/shared/_logo_type.svg | 1 - app/views/shared/_logo_ukraine.svg | 5 - app/views/shared/_logo_with_black_text.svg | 12 + app/views/shared/_logo_with_white_text.svg | 12 + .../shared/_milestones_sort_dropdown.html.haml | 2 +- .../shared/_new_project_item_select.html.haml | 7 +- app/views/shared/_no_password.html.haml | 6 +- app/views/shared/_no_ssh.html.haml | 6 +- app/views/shared/_outdated_browser.html.haml | 4 +- app/views/shared/_project_limit.html.haml | 6 +- ...gistration_features_discovery_message.html.haml | 2 +- app/views/shared/_service_ping_consent.html.haml | 6 +- ...o_factor_auth_recovery_settings_check.html.haml | 6 +- app/views/shared/access_tokens/_table.html.haml | 15 +- app/views/shared/deploy_tokens/_form.html.haml | 30 +- .../shared/doorkeeper/applications/_form.html.haml | 6 - .../shared/empty_states/_merge_requests.html.haml | 4 +- .../shared/errors/_gitaly_unavailable.html.haml | 4 +- app/views/shared/hook_logs/_content.html.haml | 4 +- .../_detailed_help.html.haml | 98 ++++ .../mattermost_slash_commands/_help.html.haml | 17 + .../_installation_info.html.haml | 7 + .../prometheus/_custom_metrics.html.haml | 28 ++ .../shared/integrations/prometheus/_help.html.haml | 8 + .../integrations/prometheus/_metrics.html.haml | 38 ++ .../shared/integrations/prometheus/_show.html.haml | 7 + app/views/shared/integrations/slack/_help.haml | 4 + .../slack_slash_commands/_help.html.haml | 93 ++++ app/views/shared/issuable/_assignees.html.haml | 2 +- app/views/shared/issuable/_form.html.haml | 4 +- app/views/shared/issuable/_reviewers.html.haml | 2 +- app/views/shared/issuable/_search_bar.html.haml | 2 +- app/views/shared/issuable/_sidebar.html.haml | 51 +- app/views/shared/issuable/_sort_dropdown.html.haml | 27 +- app/views/shared/issuable/_status_box.html.haml | 14 +- .../shared/issue_type/_details_header.html.haml | 19 +- app/views/shared/milestones/_milestone.html.haml | 10 +- .../milestones/_milestone_complete_alert.html.haml | 6 +- app/views/shared/milestones/_sidebar.html.haml | 6 +- .../_enforcement_checkbox.html.haml | 11 +- app/views/shared/notes/_hints.html.haml | 11 +- app/views/shared/projects/_topics.html.haml | 20 +- app/views/shared/runners/_form.html.haml | 18 +- .../shared/runners/_runner_type_alert.html.haml | 8 +- app/views/shared/snippets/_snippet.html.haml | 27 +- app/views/shared/topics/_topic.html.haml | 10 +- app/views/shared/web_hooks/_hook_errors.html.haml | 12 +- app/workers/all_queues.yml | 74 +-- .../project_create_worker.rb | 23 - .../project_group_link_create_worker.rb | 26 - app/workers/bulk_imports/pipeline_worker.rb | 16 +- app/workers/ci/build_finished_worker.rb | 2 +- app/workers/cleanup_container_repository_worker.rb | 16 +- .../concerns/git_garbage_collect_methods.rb | 20 +- app/workers/concerns/reenqueuer.rb | 2 + app/workers/concerns/worker_attributes.rb | 4 +- .../cleanup_container_repository_worker.rb | 7 - app/workers/container_expiration_policy_worker.rb | 56 +-- .../migration/enqueuer_worker.rb | 91 +++- .../container_registry/migration/guard_worker.rb | 30 +- .../ci_database_worker.rb | 2 +- .../batched_background_migration_worker.rb | 2 +- ...i_namespace_mirrors_consistency_check_worker.rb | 12 +- .../ci_project_mirrors_consistency_check_worker.rb | 12 +- app/workers/deployments/hooks_worker.rb | 3 + .../expire_build_instance_artifacts_worker.rb | 25 - .../stage/import_issues_and_diff_notes_worker.rb | 2 +- .../github_import/stage/import_notes_worker.rb | 2 +- app/workers/merge_request_cleanup_refs_worker.rb | 2 +- app/workers/merge_requests/close_issue_worker.rb | 52 ++ .../packages/cleanup_package_file_worker.rb | 2 +- app/workers/project_service_worker.rb | 13 +- app/workers/projects/after_import_worker.rb | 48 ++ app/workers/projects/git_garbage_collect_worker.rb | 8 +- .../inactive_projects_deletion_cron_worker.rb | 73 +++ ...active_projects_deletion_notification_worker.rb | 31 ++ .../projects/record_target_platforms_worker.rb | 28 +- .../prometheus/create_default_alerts_worker.rb | 14 +- app/workers/requests_profiles_worker.rb | 18 - .../schedule_merge_request_cleanup_refs_worker.rb | 2 +- app/workers/web_hooks/destroy_worker.rb | 2 +- app/workers/wikis/git_garbage_collect_worker.rb | 8 +- 1689 files changed, 18983 insertions(+), 14008 deletions(-) create mode 100644 app/assets/images/apple-touch-icon.png delete mode 100644 app/assets/images/mailers/ci_pipeline_notif_v1/gitlab-logo-full-horizontal.gif delete mode 100644 app/assets/images/mailers/ci_pipeline_notif_v1/gitlab-logo.gif delete mode 100644 app/assets/images/mailers/gitlab_footer_logo.gif delete mode 100644 app/assets/images/mailers/gitlab_header_logo.gif delete mode 100644 app/assets/images/mailers/gitlab_header_logo.png create mode 100644 app/assets/images/mailers/gitlab_logo.png create mode 100644 app/assets/images/mailers/gitlab_logo_black_text.png delete mode 100644 app/assets/images/mailers/gitlab_tanuki_2x.png delete mode 100644 app/assets/images/mailers/in_product_marketing/gitlab-logo-gray-rgb.png delete mode 100644 app/assets/images/msapplication-tile.png delete mode 100644 app/assets/images/touch-icon-ipad-retina.png delete mode 100644 app/assets/images/touch-icon-ipad.png delete mode 100644 app/assets/images/touch-icon-iphone-retina.png delete mode 100644 app/assets/images/touch-icon-iphone.png create mode 100644 app/assets/images/twitter_card.jpg create mode 100644 app/assets/javascripts/admin/background_migrations/components/database_listbox.vue create mode 100644 app/assets/javascripts/admin/background_migrations/index.js create mode 100644 app/assets/javascripts/api/integrations_api.js create mode 100644 app/assets/javascripts/api/tags_api.js create mode 100644 app/assets/javascripts/clusters/agents/components/revoke_token_button.vue create mode 100644 app/assets/javascripts/clusters/agents/graphql/mutations/revoke_token.mutation.graphql create mode 100644 app/assets/javascripts/clusters/gke_cluster_namespace/index.js delete mode 100644 app/assets/javascripts/clusters/stores/new_cluster/index.js delete mode 100644 app/assets/javascripts/clusters/stores/new_cluster/state.js create mode 100644 app/assets/javascripts/content_editor/components/bubble_menus/code_block.vue create mode 100644 app/assets/javascripts/content_editor/components/bubble_menus/formatting.vue create mode 100644 app/assets/javascripts/content_editor/components/bubble_menus/link.vue create mode 100644 app/assets/javascripts/content_editor/components/bubble_menus/media.vue delete mode 100644 app/assets/javascripts/content_editor/components/code_block_bubble_menu.vue delete mode 100644 app/assets/javascripts/content_editor/components/divider.vue delete mode 100644 app/assets/javascripts/content_editor/components/formatting_bubble_menu.vue create mode 100644 app/assets/javascripts/content_editor/components/wrappers/code_block.vue delete mode 100644 app/assets/javascripts/content_editor/components/wrappers/frontmatter.vue delete mode 100644 app/assets/javascripts/content_editor/components/wrappers/media.vue delete mode 100644 app/assets/javascripts/content_editor/constants.js create mode 100644 app/assets/javascripts/content_editor/constants/code_block_languages.js create mode 100644 app/assets/javascripts/content_editor/constants/index.js create mode 100644 app/assets/javascripts/content_editor/extensions/sourcemap.js create mode 100644 app/assets/javascripts/content_editor/services/asset_resolver.js create mode 100644 app/assets/javascripts/content_editor/services/gl_api_markdown_deserializer.js create mode 100644 app/assets/javascripts/content_editor/services/hast_to_prosemirror_converter.js create mode 100644 app/assets/javascripts/content_editor/services/highlight_js_language_loader.js delete mode 100644 app/assets/javascripts/content_editor/services/markdown_deserializer.js create mode 100644 app/assets/javascripts/content_editor/services/remark_markdown_deserializer.js delete mode 100644 app/assets/javascripts/create_cluster/components/cluster_form_dropdown.vue delete mode 100644 app/assets/javascripts/create_cluster/eks_cluster/components/create_eks_cluster.vue delete mode 100644 app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue delete mode 100644 app/assets/javascripts/create_cluster/eks_cluster/components/service_credentials_form.vue delete mode 100644 app/assets/javascripts/create_cluster/eks_cluster/constants.js delete mode 100644 app/assets/javascripts/create_cluster/eks_cluster/index.js delete mode 100644 app/assets/javascripts/create_cluster/eks_cluster/services/aws_services_facade.js delete mode 100644 app/assets/javascripts/create_cluster/eks_cluster/store/actions.js delete mode 100644 app/assets/javascripts/create_cluster/eks_cluster/store/getters.js delete mode 100644 app/assets/javascripts/create_cluster/eks_cluster/store/index.js delete mode 100644 app/assets/javascripts/create_cluster/eks_cluster/store/mutation_types.js delete mode 100644 app/assets/javascripts/create_cluster/eks_cluster/store/mutations.js delete mode 100644 app/assets/javascripts/create_cluster/eks_cluster/store/state.js delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/components/gke_dropdown_mixin.js delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/components/gke_machine_type_dropdown.vue delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/components/gke_network_dropdown.vue delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/components/gke_project_id_dropdown.vue delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/components/gke_submit_button.vue delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/components/gke_subnetwork_dropdown.vue delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/components/gke_zone_dropdown.vue delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/constants.js delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/gapi_loader.js delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/index.js delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/store/actions.js delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/store/getters.js delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/store/index.js delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/store/mutation_types.js delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/store/mutations.js delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster/store/state.js delete mode 100644 app/assets/javascripts/create_cluster/gke_cluster_namespace/index.js delete mode 100644 app/assets/javascripts/create_cluster/init_create_cluster.js delete mode 100644 app/assets/javascripts/create_cluster/store/cluster_dropdown/actions.js delete mode 100644 app/assets/javascripts/create_cluster/store/cluster_dropdown/getters.js delete mode 100644 app/assets/javascripts/create_cluster/store/cluster_dropdown/index.js delete mode 100644 app/assets/javascripts/create_cluster/store/cluster_dropdown/mutation_types.js delete mode 100644 app/assets/javascripts/create_cluster/store/cluster_dropdown/mutations.js delete mode 100644 app/assets/javascripts/create_cluster/store/cluster_dropdown/state.js create mode 100644 app/assets/javascripts/editor/components/source_editor_toolbar_graphql.js create mode 100644 app/assets/javascripts/editor/extensions/source_editor_toolbar_ext.js create mode 100644 app/assets/javascripts/editor/graphql/add_items.mutation.graphql delete mode 100644 app/assets/javascripts/editor/graphql/get_item.query.graphql create mode 100644 app/assets/javascripts/editor/graphql/remove_items.mutation.graphql create mode 100644 app/assets/javascripts/editor/graphql/typedefs.graphql delete mode 100644 app/assets/javascripts/filtered_search/group_runners_filtered_search_token_keys.js delete mode 100644 app/assets/javascripts/filtered_search/null_dropdown.js create mode 100644 app/assets/javascripts/issues/list/queries/get_issues_counts_without_crm.query.graphql create mode 100644 app/assets/javascripts/issues/list/queries/get_issues_without_crm.query.graphql create mode 100644 app/assets/javascripts/issues/show/utils.js delete mode 100644 app/assets/javascripts/jira_connect/subscriptions/pages/sign_in.vue create mode 100644 app/assets/javascripts/jira_connect/subscriptions/pages/sign_in/sign_in_gitlab_com.vue create mode 100644 app/assets/javascripts/jira_connect/subscriptions/pages/sign_in/sign_in_gitlab_multiversion/index.vue create mode 100644 app/assets/javascripts/jira_connect/subscriptions/pages/sign_in/sign_in_gitlab_multiversion/version_select_form.vue create mode 100644 app/assets/javascripts/jira_connect/subscriptions/pages/sign_in/sign_in_page.vue delete mode 100644 app/assets/javascripts/jira_connect/subscriptions/pages/subscriptions.vue create mode 100644 app/assets/javascripts/jira_connect/subscriptions/pages/subscriptions_page.vue create mode 100644 app/assets/javascripts/jira_connect/subscriptions/store/actions.js create mode 100644 app/assets/javascripts/lib/utils/cookies.js create mode 100644 app/assets/javascripts/packages_and_registries/container_registry/explorer/utils.js create mode 100644 app/assets/javascripts/pages/admin/background_migrations/index.js delete mode 100644 app/assets/javascripts/pages/admin/clusters/index.js delete mode 100644 app/assets/javascripts/pages/projects/clusters/index.js delete mode 100644 app/assets/javascripts/pages/projects/serverless/index.js delete mode 100644 app/assets/javascripts/pages/projects/wikis/edit/index.js create mode 100644 app/assets/javascripts/pipeline_editor/components/file_tree/container.vue create mode 100644 app/assets/javascripts/pipeline_editor/components/file_tree/file_item.vue create mode 100644 app/assets/javascripts/pipeline_editor/components/popovers/file_tree_popover.vue create mode 100644 app/assets/javascripts/pipeline_editor/components/popovers/walkthrough_popover.vue delete mode 100644 app/assets/javascripts/pipeline_editor/components/walkthrough_popover.vue create mode 100644 app/assets/javascripts/pipelines/components/jobs/failed_jobs_app.vue create mode 100644 app/assets/javascripts/pipelines/components/jobs/failed_jobs_table.vue create mode 100644 app/assets/javascripts/pipelines/components/jobs/utils.js create mode 100644 app/assets/javascripts/pipelines/components/pipelines_list/empty_state/ios_templates.vue create mode 100644 app/assets/javascripts/pipelines/graphql/mutations/retry_failed_job.mutation.graphql create mode 100644 app/assets/javascripts/pipelines/graphql/provider.js create mode 100644 app/assets/javascripts/pipelines/graphql/queries/get_failed_jobs.query.graphql create mode 100644 app/assets/javascripts/pipelines/pipeline_details_failed_jobs.js create mode 100644 app/assets/javascripts/pipelines/stores/test_reports/constants.js delete mode 100644 app/assets/javascripts/prometheus_alerts/components/reset_key.vue delete mode 100644 app/assets/javascripts/prometheus_alerts/index.js delete mode 100644 app/assets/javascripts/runner/graphql/details/runner.query.graphql delete mode 100644 app/assets/javascripts/runner/graphql/details/runner_details.fragment.graphql delete mode 100644 app/assets/javascripts/runner/graphql/details/runner_details_shared.fragment.graphql delete mode 100644 app/assets/javascripts/runner/graphql/details/runner_jobs.query.graphql delete mode 100644 app/assets/javascripts/runner/graphql/details/runner_projects.query.graphql delete mode 100644 app/assets/javascripts/runner/graphql/details/runner_update.mutation.graphql create mode 100644 app/assets/javascripts/runner/graphql/edit/runner_fields.fragment.graphql create mode 100644 app/assets/javascripts/runner/graphql/edit/runner_fields_shared.fragment.graphql create mode 100644 app/assets/javascripts/runner/graphql/edit/runner_form.query.graphql create mode 100644 app/assets/javascripts/runner/graphql/edit/runner_update.mutation.graphql create mode 100644 app/assets/javascripts/runner/graphql/show/runner.query.graphql create mode 100644 app/assets/javascripts/runner/graphql/show/runner_jobs.query.graphql create mode 100644 app/assets/javascripts/runner/graphql/show/runner_projects.query.graphql create mode 100644 app/assets/javascripts/runner/local_storage_alert/constants.js create mode 100644 app/assets/javascripts/runner/local_storage_alert/save_alert_to_local_storage.js create mode 100644 app/assets/javascripts/runner/local_storage_alert/show_alert_from_local_storage.js delete mode 100644 app/assets/javascripts/security_configuration/components/section_layout.vue create mode 100644 app/assets/javascripts/security_configuration/graphql/current_license.query.graphql delete mode 100644 app/assets/javascripts/serverless/components/area.vue delete mode 100644 app/assets/javascripts/serverless/components/empty_state.vue delete mode 100644 app/assets/javascripts/serverless/components/environment_row.vue delete mode 100644 app/assets/javascripts/serverless/components/function_details.vue delete mode 100644 app/assets/javascripts/serverless/components/function_row.vue delete mode 100644 app/assets/javascripts/serverless/components/functions.vue delete mode 100644 app/assets/javascripts/serverless/components/missing_prometheus.vue delete mode 100644 app/assets/javascripts/serverless/components/pod_box.vue delete mode 100644 app/assets/javascripts/serverless/components/url.vue delete mode 100644 app/assets/javascripts/serverless/constants.js delete mode 100644 app/assets/javascripts/serverless/event_hub.js delete mode 100644 app/assets/javascripts/serverless/serverless_bundle.js delete mode 100644 app/assets/javascripts/serverless/store/actions.js delete mode 100644 app/assets/javascripts/serverless/store/getters.js delete mode 100644 app/assets/javascripts/serverless/store/index.js delete mode 100644 app/assets/javascripts/serverless/store/mutation_types.js delete mode 100644 app/assets/javascripts/serverless/store/mutations.js delete mode 100644 app/assets/javascripts/serverless/store/state.js delete mode 100644 app/assets/javascripts/serverless/utils.js create mode 100644 app/assets/javascripts/sidebar/queries/remove_attention_request.mutation.graphql create mode 100644 app/assets/javascripts/sidebar/queries/request_attention.mutation.graphql delete mode 100644 app/assets/javascripts/sidebar/queries/toggle_attention_requested.mutation.graphql create mode 100644 app/assets/javascripts/tracking/tracker.js create mode 100644 app/assets/javascripts/vue_shared/components/confidentiality_badge.vue delete mode 100644 app/assets/javascripts/vue_shared/components/dropdown/dropdown_hidden_input.vue delete mode 100644 app/assets/javascripts/vue_shared/components/dropdown/dropdown_search_input.vue create mode 100644 app/assets/javascripts/vue_shared/components/segmented_control_button_group.vue create mode 100644 app/assets/javascripts/vue_shared/components/usage_quotas/usage_banner.vue create mode 100644 app/assets/javascripts/vue_shared/security_configuration/components/section_layout.vue create mode 100644 app/assets/javascripts/vue_shared/security_configuration/components/section_loader.vue create mode 100644 app/assets/javascripts/work_items/components/item_state.vue create mode 100644 app/assets/javascripts/work_items/components/work_item_state.vue create mode 100644 app/assets/javascripts/work_items/graphql/delete_task_from_work_item.mutation.graphql create mode 100644 app/assets/stylesheets/page_bundles/issues_show.scss create mode 100644 app/assets/stylesheets/page_bundles/pipeline_editor.scss create mode 100644 app/controllers/admin/batched_jobs_controller.rb delete mode 100644 app/controllers/admin/requests_profiles_controller.rb delete mode 100644 app/controllers/projects/serverless/functions_controller.rb create mode 100644 app/controllers/pwa_controller.rb create mode 100644 app/experiments/build_ios_app_guide_email_experiment.rb delete mode 100644 app/finders/error_tracking/errors_finder.rb create mode 100644 app/finders/groups/projects_requiring_authorizations_refresh/base.rb create mode 100644 app/finders/groups/projects_requiring_authorizations_refresh/on_direct_membership_finder.rb create mode 100644 app/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder.rb create mode 100644 app/finders/incident_management/timeline_events_finder.rb delete mode 100644 app/finders/packages/build_infos_for_many_packages_finder.rb delete mode 100644 app/finders/projects/serverless/functions_finder.rb create mode 100644 app/graphql/mutations/ci/project_ci_cd_settings_update.rb delete mode 100644 app/graphql/mutations/clusters/agent_tokens/delete.rb create mode 100644 app/graphql/mutations/customer_relations/contacts/base.rb create mode 100644 app/graphql/mutations/incident_management/timeline_event/base.rb create mode 100644 app/graphql/mutations/incident_management/timeline_event/create.rb create mode 100644 app/graphql/mutations/incident_management/timeline_event/destroy.rb create mode 100644 app/graphql/mutations/incident_management/timeline_event/promote_from_note.rb create mode 100644 app/graphql/mutations/incident_management/timeline_event/update.rb create mode 100644 app/graphql/mutations/merge_requests/remove_attention_request.rb create mode 100644 app/graphql/mutations/merge_requests/request_attention.rb create mode 100644 app/graphql/mutations/timelogs/delete.rb create mode 100644 app/graphql/mutations/work_items/delete_task.rb create mode 100644 app/graphql/queries/burndown_chart/burnup.iteration.query.graphql create mode 100644 app/graphql/queries/burndown_chart/burnup.milestone.query.graphql delete mode 100644 app/graphql/queries/burndown_chart/burnup.query.graphql create mode 100644 app/graphql/resolvers/incident_management/timeline_events_resolver.rb create mode 100644 app/graphql/types/ci/config/include_type.rb create mode 100644 app/graphql/types/ci/config/include_type_enum.rb create mode 100644 app/graphql/types/color_type.rb create mode 100644 app/graphql/types/incident_management/timeline_event_type.rb create mode 100644 app/graphql/types/packages/package_base_type.rb create mode 100644 app/graphql/types/permission_types/timelog.rb create mode 100644 app/graphql/types/permission_types/work_item.rb create mode 100644 app/graphql/types/work_items/deleted_task_input_type.rb create mode 100644 app/helpers/ci/secure_files_helper.rb delete mode 100644 app/helpers/personal_access_tokens_helper.rb create mode 100644 app/models/ci/namespace_settings.rb create mode 100644 app/models/concerns/integrations/loggable.rb create mode 100644 app/models/concerns/integrations/reset_secret_fields.rb delete mode 100644 app/models/concerns/project_services_loggable.rb delete mode 100644 app/models/concerns/sha256_attribute.rb create mode 100644 app/models/incident_management/timeline_event.rb create mode 100644 app/models/namespace_ci_cd_setting.rb create mode 100644 app/models/packages/cleanup.rb create mode 100644 app/models/packages/cleanup/policy.rb create mode 100644 app/policies/incident_management/timeline_event_policy.rb create mode 100644 app/policies/namespace_ci_cd_setting_policy.rb delete mode 100644 app/services/authorized_project_update/project_create_service.rb delete mode 100644 app/services/authorized_project_update/project_group_link_create_service.rb create mode 100644 app/services/concerns/ci/downstream_pipeline_helpers.rb create mode 100644 app/services/concerns/group_linkable.rb delete mode 100644 app/services/container_expiration_policy_service.rb create mode 100644 app/services/database/consistency_fix_service.rb create mode 100644 app/services/incident_management/timeline_events/base_service.rb create mode 100644 app/services/incident_management/timeline_events/create_service.rb create mode 100644 app/services/incident_management/timeline_events/destroy_service.rb create mode 100644 app/services/incident_management/timeline_events/update_service.rb create mode 100644 app/services/merge_requests/request_attention_service.rb delete mode 100644 app/services/namespaces/in_product_marketing_email_records.rb delete mode 100644 app/services/projects/after_import_service.rb create mode 100644 app/services/projects/android_target_platform_detector_service.rb create mode 100644 app/services/projects/blame_service.rb create mode 100644 app/services/projects/in_product_marketing_campaign_emails_service.rb delete mode 100644 app/services/projects/prometheus/alerts/alert_params.rb delete mode 100644 app/services/projects/prometheus/alerts/create_service.rb delete mode 100644 app/services/projects/prometheus/alerts/destroy_service.rb delete mode 100644 app/services/projects/prometheus/alerts/update_service.rb delete mode 100644 app/services/projects/prometheus/metrics/update_service.rb delete mode 100644 app/services/prometheus/create_default_alerts_service.rb delete mode 100644 app/services/service_ping/build_payload_service.rb delete mode 100644 app/services/service_ping/devops_report_service.rb delete mode 100644 app/services/service_ping/permit_data_categories_service.rb delete mode 100644 app/services/service_ping/service_ping_settings.rb create mode 100644 app/services/system_notes/incidents_service.rb create mode 100644 app/services/timelogs/base_service.rb create mode 100644 app/services/timelogs/delete_service.rb create mode 100644 app/services/users/in_product_marketing_email_records.rb create mode 100644 app/services/users/validate_manual_otp_service.rb delete mode 100644 app/services/users/validate_otp_service.rb create mode 100644 app/services/users/validate_push_otp_service.rb create mode 100644 app/services/work_items/delete_task_service.rb create mode 100644 app/services/work_items/task_list_reference_removal_service.rb create mode 100644 app/views/admin/application_settings/_pipeline_limits.html.haml create mode 100644 app/views/admin/background_migrations/_job.html.haml create mode 100644 app/views/admin/background_migrations/_migration_full_information.html.haml create mode 100644 app/views/admin/background_migrations/show.html.haml create mode 100644 app/views/admin/batched_jobs/_job.html.haml create mode 100644 app/views/admin/batched_jobs/_transition_log.html.haml create mode 100644 app/views/admin/batched_jobs/show.html.haml delete mode 100644 app/views/admin/requests_profiles/index.html.haml delete mode 100644 app/views/clusters/clusters/aws/_new.html.haml delete mode 100644 app/views/clusters/clusters/gcp/_form.html.haml delete mode 100644 app/views/clusters/clusters/gcp/_gcp_not_configured.html.haml delete mode 100644 app/views/clusters/clusters/gcp/_header.html.haml delete mode 100644 app/views/clusters/clusters/gcp/_new.html.haml delete mode 100644 app/views/clusters/clusters/new.html.haml create mode 100644 app/views/devise/sessions/_new_base_user_login_label.html.haml delete mode 100644 app/views/devise/shared/_tabs_normal.html.haml create mode 100644 app/views/errors/request_conflict.html.haml delete mode 100644 app/views/groups/runners/_group_runners.html.haml delete mode 100644 app/views/groups/runners/_runner.html.haml delete mode 100644 app/views/groups/runners/_shared_runners.html.haml delete mode 100644 app/views/groups/runners/_sort_dropdown.html.haml create mode 100644 app/views/help/instance_configuration/_ci_cd_limits.html.haml create mode 100644 app/views/notify/approved_merge_request_email.html.haml create mode 100644 app/views/notify/approved_merge_request_email.text.haml create mode 100644 app/views/notify/build_ios_app_guide_email.html.haml create mode 100644 app/views/notify/build_ios_app_guide_email.text.erb create mode 100644 app/views/notify/inactive_project_deletion_warning_email.html.haml create mode 100644 app/views/notify/inactive_project_deletion_warning_email.text.erb create mode 100644 app/views/notify/unapproved_merge_request_email.html.haml create mode 100644 app/views/notify/unapproved_merge_request_email.text.haml create mode 100644 app/views/projects/merge_requests/_code_dropdown.html.haml delete mode 100644 app/views/projects/serverless/functions/index.html.haml delete mode 100644 app/views/projects/serverless/functions/show.html.haml delete mode 100644 app/views/projects/services/mattermost_slash_commands/_detailed_help.html.haml delete mode 100644 app/views/projects/services/mattermost_slash_commands/_help.html.haml delete mode 100644 app/views/projects/services/mattermost_slash_commands/_installation_info.html.haml delete mode 100644 app/views/projects/services/prometheus/_custom_metrics.html.haml delete mode 100644 app/views/projects/services/prometheus/_external_alerts.html.haml delete mode 100644 app/views/projects/services/prometheus/_help.html.haml delete mode 100644 app/views/projects/services/prometheus/_metrics.html.haml delete mode 100644 app/views/projects/services/prometheus/_show.html.haml delete mode 100644 app/views/projects/services/prometheus/_top.html.haml delete mode 100644 app/views/projects/services/slack/_help.haml delete mode 100644 app/views/projects/services/slack_slash_commands/_help.html.haml delete mode 100644 app/views/projects/settings/operations/_prometheus.html.haml create mode 100644 app/views/pwa/offline.html.haml delete mode 100644 app/views/shared/_logo_type.svg delete mode 100644 app/views/shared/_logo_ukraine.svg create mode 100644 app/views/shared/_logo_with_black_text.svg create mode 100644 app/views/shared/_logo_with_white_text.svg create mode 100644 app/views/shared/integrations/mattermost_slash_commands/_detailed_help.html.haml create mode 100644 app/views/shared/integrations/mattermost_slash_commands/_help.html.haml create mode 100644 app/views/shared/integrations/mattermost_slash_commands/_installation_info.html.haml create mode 100644 app/views/shared/integrations/prometheus/_custom_metrics.html.haml create mode 100644 app/views/shared/integrations/prometheus/_help.html.haml create mode 100644 app/views/shared/integrations/prometheus/_metrics.html.haml create mode 100644 app/views/shared/integrations/prometheus/_show.html.haml create mode 100644 app/views/shared/integrations/slack/_help.haml create mode 100644 app/views/shared/integrations/slack_slash_commands/_help.html.haml delete mode 100644 app/workers/authorized_project_update/project_create_worker.rb delete mode 100644 app/workers/authorized_project_update/project_group_link_create_worker.rb delete mode 100644 app/workers/expire_build_instance_artifacts_worker.rb create mode 100644 app/workers/merge_requests/close_issue_worker.rb create mode 100644 app/workers/projects/after_import_worker.rb create mode 100644 app/workers/projects/inactive_projects_deletion_cron_worker.rb create mode 100644 app/workers/projects/inactive_projects_deletion_notification_worker.rb delete mode 100644 app/workers/requests_profiles_worker.rb (limited to 'app') diff --git a/app/assets/images/apple-touch-icon.png b/app/assets/images/apple-touch-icon.png new file mode 100644 index 00000000000..90507f61099 Binary files /dev/null and b/app/assets/images/apple-touch-icon.png differ diff --git a/app/assets/images/ext_snippet_icons/logo.svg b/app/assets/images/ext_snippet_icons/logo.svg index 9cb3042213a..d76e9cb3e5c 100644 --- a/app/assets/images/ext_snippet_icons/logo.svg +++ b/app/assets/images/ext_snippet_icons/logo.svg @@ -1 +1,12 @@ - \ No newline at end of file + + + + + + + diff --git a/app/assets/images/favicon-blue.png b/app/assets/images/favicon-blue.png index 2229fe79462..4829a48a0ea 100644 Binary files a/app/assets/images/favicon-blue.png and b/app/assets/images/favicon-blue.png differ diff --git a/app/assets/images/favicon-yellow.png b/app/assets/images/favicon-yellow.png index a80827808fc..fa0a23d54e5 100644 Binary files a/app/assets/images/favicon-yellow.png and b/app/assets/images/favicon-yellow.png differ diff --git a/app/assets/images/favicon.png b/app/assets/images/favicon.png index 845e0ec34a5..feeff619345 100644 Binary files a/app/assets/images/favicon.png and b/app/assets/images/favicon.png differ diff --git a/app/assets/images/file_icons.svg b/app/assets/images/file_icons.svg index def87dd9163..8b19f411c7b 100644 --- a/app/assets/images/file_icons.svg +++ b/app/assets/images/file_icons.svg @@ -1 +1 @@ -api-blueprintLayer 1Browserslist logoBrowserslist logoCfcucumber-mark-transparent-pipsNVIDIA-LogoDartGroup 3Group 3Asset 3logoklLayer 1MMocha Logonodemonnpostcss-logo-symbolprettier-icon-darkGroupGroup 2stylelint-icon-whitestylelint-icon-blackTEXTShoudinibadgeBrandVisualStudioCodewolframLanguage +api-blueprintLayer 1Browserslist logoBrowserslist logoCfcucumber-mark-transparent-pipsNVIDIA-LogoDartGroup 3Group 3Asset 3klLayer 1MMocha Logonodemonnpostcss-logo-symbolprettier-icon-darkGroupGroup 2stylelint-icon-whitestylelint-icon-blackTEXTShoudinibadgeBrandVisualStudioCodewolframLanguage diff --git a/app/assets/images/gitlab_logo.png b/app/assets/images/gitlab_logo.png index ca30b459019..12525056939 100644 Binary files a/app/assets/images/gitlab_logo.png and b/app/assets/images/gitlab_logo.png differ diff --git a/app/assets/images/logo.svg b/app/assets/images/logo.svg index f4e19b67008..c650177c960 100644 --- a/app/assets/images/logo.svg +++ b/app/assets/images/logo.svg @@ -1,26 +1,10 @@ - - - - Slice 1 - Created with Sketch. - - - - + diff --git a/app/assets/images/mailers/ci_pipeline_notif_v1/gitlab-logo-full-horizontal.gif b/app/assets/images/mailers/ci_pipeline_notif_v1/gitlab-logo-full-horizontal.gif deleted file mode 100644 index 3f4ef31947b..00000000000 Binary files a/app/assets/images/mailers/ci_pipeline_notif_v1/gitlab-logo-full-horizontal.gif and /dev/null differ diff --git a/app/assets/images/mailers/ci_pipeline_notif_v1/gitlab-logo.gif b/app/assets/images/mailers/ci_pipeline_notif_v1/gitlab-logo.gif deleted file mode 100644 index 387628f831c..00000000000 Binary files a/app/assets/images/mailers/ci_pipeline_notif_v1/gitlab-logo.gif and /dev/null differ diff --git a/app/assets/images/mailers/gitlab_footer_logo.gif b/app/assets/images/mailers/gitlab_footer_logo.gif deleted file mode 100644 index 3f4ef31947b..00000000000 Binary files a/app/assets/images/mailers/gitlab_footer_logo.gif and /dev/null differ diff --git a/app/assets/images/mailers/gitlab_header_logo.gif b/app/assets/images/mailers/gitlab_header_logo.gif deleted file mode 100644 index 387628f831c..00000000000 Binary files a/app/assets/images/mailers/gitlab_header_logo.gif and /dev/null differ diff --git a/app/assets/images/mailers/gitlab_header_logo.png b/app/assets/images/mailers/gitlab_header_logo.png deleted file mode 100644 index 35ca1860887..00000000000 Binary files a/app/assets/images/mailers/gitlab_header_logo.png and /dev/null differ diff --git a/app/assets/images/mailers/gitlab_logo.png b/app/assets/images/mailers/gitlab_logo.png new file mode 100644 index 00000000000..12525056939 Binary files /dev/null and b/app/assets/images/mailers/gitlab_logo.png differ diff --git a/app/assets/images/mailers/gitlab_logo_black_text.png b/app/assets/images/mailers/gitlab_logo_black_text.png new file mode 100644 index 00000000000..ed8f05a633e Binary files /dev/null and b/app/assets/images/mailers/gitlab_logo_black_text.png differ diff --git a/app/assets/images/mailers/gitlab_tanuki_2x.png b/app/assets/images/mailers/gitlab_tanuki_2x.png deleted file mode 100644 index 551dd6ce2ce..00000000000 Binary files a/app/assets/images/mailers/gitlab_tanuki_2x.png and /dev/null differ diff --git a/app/assets/images/mailers/in_product_marketing/gitlab-logo-gray-rgb.png b/app/assets/images/mailers/in_product_marketing/gitlab-logo-gray-rgb.png deleted file mode 100644 index 31083af512e..00000000000 Binary files a/app/assets/images/mailers/in_product_marketing/gitlab-logo-gray-rgb.png and /dev/null differ diff --git a/app/assets/images/msapplication-tile.png b/app/assets/images/msapplication-tile.png deleted file mode 100644 index 1e0e2ed73ce..00000000000 Binary files a/app/assets/images/msapplication-tile.png and /dev/null differ diff --git a/app/assets/images/touch-icon-ipad-retina.png b/app/assets/images/touch-icon-ipad-retina.png deleted file mode 100644 index 516dc2f4710..00000000000 Binary files a/app/assets/images/touch-icon-ipad-retina.png and /dev/null differ diff --git a/app/assets/images/touch-icon-ipad.png b/app/assets/images/touch-icon-ipad.png deleted file mode 100644 index b2093d015b8..00000000000 Binary files a/app/assets/images/touch-icon-ipad.png and /dev/null differ diff --git a/app/assets/images/touch-icon-iphone-retina.png b/app/assets/images/touch-icon-iphone-retina.png deleted file mode 100644 index 438654e0d20..00000000000 Binary files a/app/assets/images/touch-icon-iphone-retina.png and /dev/null differ diff --git a/app/assets/images/touch-icon-iphone.png b/app/assets/images/touch-icon-iphone.png deleted file mode 100644 index e5f87fbbcf6..00000000000 Binary files a/app/assets/images/touch-icon-iphone.png and /dev/null differ diff --git a/app/assets/images/twitter_card.jpg b/app/assets/images/twitter_card.jpg new file mode 100644 index 00000000000..6b998ab731c Binary files /dev/null and b/app/assets/images/twitter_card.jpg differ diff --git a/app/assets/javascripts/access_tokens/components/projects_token_selector.vue b/app/assets/javascripts/access_tokens/components/projects_token_selector.vue index a746f62b3a1..4843c52fcbb 100644 --- a/app/assets/javascripts/access_tokens/components/projects_token_selector.vue +++ b/app/assets/javascripts/access_tokens/components/projects_token_selector.vue @@ -148,7 +148,7 @@ export default { diff --git a/app/assets/javascripts/admin/background_migrations/components/database_listbox.vue b/app/assets/javascripts/admin/background_migrations/components/database_listbox.vue new file mode 100644 index 00000000000..7f6e5dc4f35 --- /dev/null +++ b/app/assets/javascripts/admin/background_migrations/components/database_listbox.vue @@ -0,0 +1,51 @@ + + +
+ + +
+ diff --git a/app/assets/javascripts/admin/background_migrations/index.js b/app/assets/javascripts/admin/background_migrations/index.js new file mode 100644 index 00000000000..4ddd8f17c9a --- /dev/null +++ b/app/assets/javascripts/admin/background_migrations/index.js @@ -0,0 +1,38 @@ +import Vue from 'vue'; +import * as Sentry from '@sentry/browser'; +import Translate from '~/vue_shared/translate'; +import BackgroundMigrationsDatabaseListbox from './components/database_listbox.vue'; + +Vue.use(Translate); + +export const initBackgroundMigrationsApp = () => { + const el = document.getElementById('js-database-listbox'); + + if (!el) { + return false; + } + + const { selectedDatabase } = el.dataset; + let { databases } = el.dataset; + + try { + databases = JSON.parse(databases).map((database) => ({ + value: database, + text: database, + })); + } catch (e) { + Sentry.captureException(e); + } + + return new Vue({ + el, + render(createElement) { + return createElement(BackgroundMigrationsDatabaseListbox, { + props: { + databases, + selectedDatabase, + }, + }); + }, + }); +}; diff --git a/app/assets/javascripts/admin/statistics_panel/components/app.vue b/app/assets/javascripts/admin/statistics_panel/components/app.vue index 1f0db422807..f250bdae4f5 100644 --- a/app/assets/javascripts/admin/statistics_panel/components/app.vue +++ b/app/assets/javascripts/admin/statistics_panel/components/app.vue @@ -29,7 +29,7 @@ export default {

{{ __('Statistics') }}

- +