From a5f4bba440d7f9ea47046a0a561d49adf0a1e6d4 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 16 Jun 2021 18:25:58 +0000 Subject: Add latest changes from gitlab-org/gitlab@14-0-stable-ee --- .eslintrc.yml | 5 - .gitignore | 1 + .gitlab-ci.yml | 1 + .gitlab/CODEOWNERS | 28 +- .gitlab/changelog_config.yml | 5 + .gitlab/ci/docs.gitlab-ci.yml | 6 +- .gitlab/ci/frontend.gitlab-ci.yml | 27 + .gitlab/ci/global.gitlab-ci.yml | 33 +- .gitlab/ci/rails.gitlab-ci.yml | 10 +- .gitlab/ci/reports.gitlab-ci.yml | 2 +- .gitlab/ci/review.gitlab-ci.yml | 54 +- .gitlab/ci/rules.gitlab-ci.yml | 101 +- .gitlab/ci/untamper-my-lockfile.yml | 26 - .gitlab/ci/yaml.gitlab-ci.yml | 1 - .gitlab/issue_templates/Documentation.md | 2 +- .gitlab/issue_templates/Feature Flag Removal.md | 28 - .gitlab/issue_templates/Feature Flag Roll Out.md | 6 + .../Geo Replicate a new Git repository type.md | 6 + .../Geo Replicate a new blob type.md | 6 + .gitlab/merge_request_templates/Documentation.md | 4 +- .../merge_request_templates/Security Release.md | 4 +- .markdownlint.yml | 2 - .rubocop.yml | 9 +- .rubocop_manual_todo.yml | 83 +- .rubocop_todo.yml | 7 +- .stylelintrc | 1 + CHANGELOG.md | 16 - GITALY_SERVER_VERSION | 2 +- GITLAB_ELASTICSEARCH_INDEXER_VERSION | 2 +- GITLAB_KAS_VERSION | 2 +- GITLAB_PAGES_VERSION | 2 +- GITLAB_SHELL_VERSION | 2 +- Gemfile | 40 +- Gemfile.lock | 227 +- README.md | 8 +- app/assets/images/aws-cloud-formation.png | Bin 0 -> 2545 bytes app/assets/images/cluster_app_logos/fluentd.png | Bin 2480 -> 0 bytes .../mailers/in_product_marketing/experience-0.png | Bin 0 -> 66492 bytes app/assets/images/mailers/members/issues.png | Bin 0 -> 316 bytes .../images/mailers/members/merge-request-open.png | Bin 0 -> 327 bytes app/assets/images/mailers/members/users.png | Bin 0 -> 371 bytes .../add_context_commits_modal_wrapper.vue | 10 +- .../add_context_commits_modal/store/actions.js | 10 +- .../admin/statistics_panel/store/actions.js | 6 +- .../admin/users/components/users_table.vue | 7 +- .../components/alert_management_table.vue | 4 +- .../alerts_settings/components/alerts_form.vue | 143 ++ .../components/alerts_integrations_list.vue | 4 +- .../components/alerts_settings_wrapper.vue | 97 +- .../javascripts/alerts_settings/constants.js | 32 + app/assets/javascripts/alerts_settings/graphql.js | 10 +- .../alerts_settings/graphql/fragmentTypes.json | 1 + app/assets/javascripts/alerts_settings/index.js | 26 +- .../usage_trends/components/usage_counts.vue | 10 +- app/assets/javascripts/api.js | 26 +- app/assets/javascripts/api/analytics_api.js | 32 + app/assets/javascripts/api/groups_api.js | 14 +- app/assets/javascripts/api/markdown_api.js | 11 + .../javascripts/badges/components/badge_form.vue | 28 +- .../badges/components/badge_settings.vue | 11 +- .../batch_comments/components/preview_item.vue | 10 +- .../stores/modules/batch_comments/actions.js | 9 +- app/assets/javascripts/behaviors/gl_emoji.js | 1 - .../behaviors/markdown/render_mermaid.js | 33 +- .../javascripts/behaviors/shortcuts/keybindings.js | 7 + .../javascripts/behaviors/shortcuts/shortcuts.js | 14 + .../javascripts/blob/components/table_contents.vue | 74 + app/assets/javascripts/blob_edit/blob_bundle.js | 8 +- app/assets/javascripts/blob_edit/edit_blob.js | 14 +- app/assets/javascripts/boards/boards_util.js | 144 +- .../components/board_add_new_column_trigger.vue | 10 +- .../javascripts/boards/components/board_card.vue | 16 +- .../boards/components/board_card_inner.vue | 14 +- .../javascripts/boards/components/board_column.vue | 15 +- .../boards/components/board_column_deprecated.vue | 7 +- .../boards/components/board_content.vue | 1 - .../boards/components/board_content_sidebar.vue | 67 +- .../boards/components/board_filtered_search.vue | 5 +- .../javascripts/boards/components/board_form.vue | 51 +- .../javascripts/boards/components/board_list.vue | 89 +- .../boards/components/board_list_deprecated.vue | 13 +- .../boards/components/board_list_header.vue | 20 +- .../components/board_list_header_deprecated.vue | 16 +- .../boards/components/board_new_issue.vue | 2 +- .../boards/components/board_settings_sidebar.vue | 4 +- .../boards/components/config_toggle.vue | 3 + .../components/issue_card_inner_deprecated.vue | 6 +- .../components/issue_time_estimate_deprecated.vue | 2 +- .../components/sidebar/board_sidebar_due_date.vue | 110 - .../sidebar/board_sidebar_labels_select.vue | 11 +- .../sidebar/board_sidebar_milestone_select.vue | 158 -- .../sidebar/board_sidebar_subscription.vue | 6 +- .../sidebar/board_sidebar_time_tracker.vue | 20 +- .../components/sidebar/board_sidebar_title.vue | 5 +- app/assets/javascripts/boards/constants.js | 27 +- .../graphql/group_board_members.query.graphql | 16 + .../boards/graphql/issue.fragment.graphql | 4 - .../graphql/issue_set_due_date.mutation.graphql | 8 - .../graphql/issue_set_milestone.mutation.graphql | 12 - .../boards/graphql/lists_issues.query.graphql | 8 +- .../graphql/project_board_members.query.graphql | 16 + app/assets/javascripts/boards/index.js | 16 +- app/assets/javascripts/boards/models/project.js | 1 + app/assets/javascripts/boards/stores/actions.js | 103 +- .../javascripts/boards/stores/mutation_types.js | 1 + app/assets/javascripts/boards/stores/mutations.js | 9 +- app/assets/javascripts/boards/stores/state.js | 1 + .../branches/components/delete_branch_button.vue | 91 + .../branches/components/delete_branch_modal.vue | 193 ++ .../branches/components/sort_dropdown.vue | 5 +- .../javascripts/branches/divergence_graph.js | 6 +- app/assets/javascripts/branches/event_hub.js | 3 + .../branches/init_delete_branch_button.js | 35 + .../branches/init_delete_branch_modal.js | 16 + .../components/triggers_list.vue | 2 +- .../javascripts/ci_variable_list/store/actions.js | 22 +- app/assets/javascripts/clusters/clusters_bundle.js | 40 +- .../clusters/components/applications.vue | 65 +- .../components/fluentd_output_settings.vue | 238 -- .../components/ingress_modsecurity_settings.vue | 266 --- .../components/remove_cluster_confirmation.vue | 14 +- app/assets/javascripts/clusters/constants.js | 2 - .../clusters/forms/components/integration_form.vue | 17 +- .../javascripts/clusters/forms/stores/state.js | 1 - .../clusters/services/clusters_service.js | 1 - .../javascripts/clusters/stores/clusters_store.js | 29 - .../components/project_form_group.vue | 6 +- .../content_editor/components/content_editor.vue | 8 +- .../components/toolbar_link_button.vue | 96 + .../components/toolbar_text_style_dropdown.vue | 75 + .../content_editor/components/top_toolbar.vue | 24 + app/assets/javascripts/content_editor/constants.js | 34 +- .../extensions/code_block_highlight.js | 20 +- .../javascripts/content_editor/extensions/image.js | 45 +- .../javascripts/content_editor/extensions/link.js | 33 +- .../content_editor/services/content_editor.js | 7 + .../services/track_input_rules_and_shortcuts.js | 11 +- .../javascripts/content_editor/services/utils.js | 5 + .../create_cluster/eks_cluster/store/actions.js | 6 +- .../cycle_analytics/components/base.vue | 129 +- .../cycle_analytics/components/path_navigation.vue | 127 + .../javascripts/cycle_analytics/constants.js | 7 + app/assets/javascripts/cycle_analytics/index.js | 4 +- .../javascripts/cycle_analytics/store/actions.js | 94 +- .../javascripts/cycle_analytics/store/getters.js | 10 + .../javascripts/cycle_analytics/store/index.js | 2 + .../cycle_analytics/store/mutation_types.js | 10 + .../javascripts/cycle_analytics/store/mutations.js | 49 +- .../javascripts/cycle_analytics/store/state.js | 5 + app/assets/javascripts/cycle_analytics/utils.js | 130 +- .../javascripts/deploy_freeze/store/actions.js | 10 +- .../components/design_overlay.vue | 10 +- app/assets/javascripts/diffs/components/app.vue | 11 +- .../javascripts/diffs/components/diff_content.vue | 3 +- .../diffs/components/diff_expansion_cell.vue | 6 +- .../javascripts/diffs/components/diff_file.vue | 6 +- .../diffs/components/diff_file_header.vue | 11 +- .../javascripts/diffs/components/diff_row.vue | 42 + .../javascripts/diffs/components/diff_stats.vue | 53 +- .../javascripts/diffs/components/diff_view.vue | 12 +- .../diffs/components/settings_dropdown.vue | 19 +- app/assets/javascripts/diffs/constants.js | 4 - app/assets/javascripts/diffs/i18n.js | 1 + app/assets/javascripts/diffs/index.js | 21 +- app/assets/javascripts/diffs/store/actions.js | 39 +- app/assets/javascripts/diffs/store/getters.js | 10 +- .../javascripts/diffs/store/modules/diff_state.js | 11 +- .../javascripts/diffs/store/modules/index.js | 2 +- app/assets/javascripts/diffs/store/utils.js | 116 - app/assets/javascripts/diffs/utils/diff_file.js | 36 + app/assets/javascripts/diffs/utils/workers.js | 107 + .../javascripts/diffs/workers/tree_worker.js | 2 +- .../editor/extensions/editor_ci_schema_ext.js | 4 +- app/assets/javascripts/emoji/awards_app/index.js | 2 +- .../javascripts/emoji/awards_app/store/actions.js | 13 +- app/assets/javascripts/emoji/components/picker.vue | 10 +- .../components/environment_actions.vue | 2 +- .../environments/components/environments_app.vue | 2 +- .../components/stop_environment_modal.vue | 2 +- .../error_tracking/components/error_details.vue | 12 +- .../components/error_tracking_list.vue | 2 +- .../javascripts/error_tracking/store/actions.js | 8 +- .../error_tracking/store/details/actions.js | 6 +- .../error_tracking/store/list/actions.js | 6 +- .../error_tracking_settings/store/actions.js | 7 +- .../feature_flags/components/empty_state.vue | 95 + .../components/environments_dropdown.vue | 6 +- .../feature_flags/components/feature_flags.vue | 246 +- .../feature_flags/components/feature_flags_tab.vue | 106 - .../components/new_environments_dropdown.vue | 6 +- .../feature_flags/components/user_lists_table.vue | 125 - app/assets/javascripts/feature_flags/constants.js | 3 - app/assets/javascripts/feature_flags/index.js | 4 +- .../feature_flags/store/edit/actions.js | 6 +- .../feature_flags/store/index/actions.js | 34 - .../feature_flags/store/index/mutation_types.js | 7 - .../feature_flags/store/index/mutations.js | 54 +- .../javascripts/feature_flags/store/index/state.js | 9 +- .../filtered_search/dropdown_ajax_filter.js | 6 +- .../filtered_search/filtered_search_manager.js | 2 +- app/assets/javascripts/flash.js | 4 +- app/assets/javascripts/fly_out_nav.js | 26 +- .../javascripts/frequent_items/components/app.vue | 11 +- .../components/frequent_items_list_item.vue | 2 +- .../components/frequent_items_search_input.vue | 2 +- app/assets/javascripts/frequent_items/index.js | 1 + app/assets/javascripts/gpg_badges.js | 7 +- .../components/grafana_integration.vue | 50 +- .../grafana_integration/store/actions.js | 7 +- .../fragments/alert.fragment.graphql | 8 - .../fragments/alert_detail_item.fragment.graphql | 30 + .../queries/alert_details.query.graphql | 11 + .../queries/get_alerts.query.graphql | 6 + .../queries/get_user_callouts.query.graphql | 13 + .../javascripts/groups/components/group_item.vue | 7 +- app/assets/javascripts/groups_select.js | 17 +- .../ide/components/branches/search_list.vue | 2 +- .../ide/components/new_dropdown/modal.vue | 18 +- app/assets/javascripts/ide/constants.js | 2 + app/assets/javascripts/ide/ide_router.js | 10 +- app/assets/javascripts/ide/index.js | 3 +- .../ide/stores/actions/merge_request.js | 20 +- .../modules/terminal/actions/session_controls.js | 6 +- .../modules/terminal/actions/session_status.js | 4 +- app/assets/javascripts/ide/utils.js | 2 +- .../import_groups/components/import_table_row.vue | 20 +- .../graphql/queries/group.query.graphql | 5 - .../graphql/queries/groupAndProject.query.graphql | 9 + .../import_projects/store/actions.js | 26 +- .../incidents/components/incidents_list.vue | 10 +- .../incidents_settings/components/alerts_form.vue | 145 -- .../components/incidents_settings_tabs.vue | 14 +- .../components/pagerduty_form.vue | 22 +- .../javascripts/incidents_settings/constants.js | 35 +- .../incidents_settings_service.js | 7 +- app/assets/javascripts/incidents_settings/index.js | 12 - .../edit/components/jira_issues_fields.vue | 5 +- .../edit/components/jira_trigger_fields.vue | 4 +- .../edit/components/trigger_fields.vue | 2 +- .../invite_members/components/group_select.vue | 50 +- .../components/invite_members_modal.vue | 26 +- .../components/invite_members_trigger.vue | 3 +- app/assets/javascripts/invite_members/constants.js | 5 + .../invite_members/init_invite_members_modal.js | 2 + .../invite_members/init_invite_members_trigger.js | 22 +- .../issuable/components/csv_export_modal.vue | 1 - .../components/csv_import_export_buttons.vue | 19 +- .../issuable/components/csv_import_modal.vue | 8 +- .../issuable/components/issuable_by_email.vue | 16 +- .../javascripts/issuable/components/status_box.vue | 6 +- app/assets/javascripts/issuable_form.js | 2 +- .../issuable_list/components/issuable_item.vue | 4 +- .../issuable_list/components/issuable_tabs.vue | 2 +- .../javascripts/issue_show/components/app.vue | 62 +- .../issue_show/components/description.vue | 8 +- .../issue_show/components/edit_actions.vue | 138 +- .../components/fields/description_template.vue | 4 +- .../issue_show/components/fields/title.vue | 2 +- .../issue_show/components/fields/type.vue | 79 + .../javascripts/issue_show/components/form.vue | 48 +- app/assets/javascripts/issue_show/constants.js | 12 + app/assets/javascripts/issue_show/graphql.js | 9 + app/assets/javascripts/issue_show/incident.js | 22 +- app/assets/javascripts/issue_show/issue.js | 31 +- .../queries/get_issue_state.query.graphql | 3 + .../queries/update_issue_state.mutation.graphql | 3 + .../issues_list/components/issues_list_app.vue | 101 +- app/assets/javascripts/issues_list/constants.js | 28 +- app/assets/javascripts/issues_list/index.js | 8 +- app/assets/javascripts/issues_list/utils.js | 3 +- .../jira_import/components/jira_import_form.vue | 10 +- .../jobs/components/job_container_item.vue | 2 +- .../javascripts/jobs/components/table/constants.js | 9 + .../table/graphql/queries/get_jobs.query.graphql | 11 +- .../jobs/components/table/jobs_table.vue | 3 +- .../jobs/components/table/jobs_table_app.vue | 81 +- app/assets/javascripts/lib/utils/constants.js | 3 + .../lib/utils/datetime/date_calculation_utility.js | 703 ++++++ .../lib/utils/datetime/date_format_utility.js | 260 +++ .../lib/utils/datetime/pikaday_utility.js | 28 + .../lib/utils/datetime/timeago_utility.js | 124 + app/assets/javascripts/lib/utils/datetime_range.js | 9 +- .../javascripts/lib/utils/datetime_utility.js | 1111 +-------- app/assets/javascripts/lib/utils/number_utils.js | 8 +- app/assets/javascripts/lib/utils/table_utility.js | 9 + app/assets/javascripts/lib/utils/url_utility.js | 38 +- app/assets/javascripts/locale/sprintf.js | 6 +- .../logs/components/environment_logs.vue | 25 +- app/assets/javascripts/logs/constants.js | 1 - app/assets/javascripts/logs/stores/actions.js | 32 +- app/assets/javascripts/logs/stores/getters.js | 13 +- .../javascripts/logs/stores/mutation_types.js | 3 - app/assets/javascripts/logs/stores/mutations.js | 25 - app/assets/javascripts/logs/stores/state.js | 10 - app/assets/javascripts/main.js | 7 +- app/assets/javascripts/manual_ordering.js | 6 +- app/assets/javascripts/members/components/app.vue | 12 +- .../members/components/table/role_dropdown.vue | 2 +- app/assets/javascripts/members/index.js | 47 +- app/assets/javascripts/merge_request.js | 17 +- .../monitoring/components/alert_widget.vue | 6 +- .../monitoring/components/dashboard.vue | 27 +- .../monitoring/components/dashboard_panel.vue | 5 +- .../javascripts/monitoring/stores/actions.js | 71 +- app/assets/javascripts/monitoring/utils.js | 6 +- .../javascripts/nav/components/responsive_app.vue | 107 + .../nav/components/responsive_header.vue | 37 + .../javascripts/nav/components/responsive_home.vue | 62 + .../javascripts/nav/components/top_nav_app.vue | 29 +- .../nav/components/top_nav_container_view.vue | 39 +- .../nav/components/top_nav_dropdown_menu.vue | 84 +- .../nav/components/top_nav_menu_item.vue | 27 +- .../nav/components/top_nav_menu_sections.vue | 63 + .../nav/components/top_nav_new_dropdown.vue | 55 + app/assets/javascripts/nav/event_hub.js | 5 + app/assets/javascripts/nav/index.js | 22 +- app/assets/javascripts/nav/mount.js | 9 +- .../javascripts/nav/utils/has_menu_expanded.js | 2 + app/assets/javascripts/nav/utils/index.js | 2 + .../nav/utils/reset_menu_items_active.js | 14 + .../javascripts/notes/components/comment_form.vue | 11 +- .../javascripts/notes/components/note_actions.vue | 2 +- .../notes/components/noteable_discussion.vue | 9 +- .../notes/mixins/diff_line_note_form.js | 10 +- app/assets/javascripts/notes/stores/actions.js | 26 +- .../components/metrics_settings.vue | 8 +- .../operation_settings/store/actions.js | 7 +- .../packages/details/components/app.vue | 101 +- .../packages/details/components/file_sha.vue | 41 + .../details/components/installation_commands.vue | 4 +- .../packages/details/components/package_files.vue | 67 +- .../javascripts/packages/details/store/actions.js | 33 +- .../packages/details/store/mutation_types.js | 1 + .../packages/details/store/mutations.js | 3 + .../javascripts/packages/list/stores/actions.js | 19 +- .../javascripts/packages/shared/constants.js | 18 +- .../components/details_title.vue | 82 + .../components/terraform_installation.vue | 66 + .../infrastructure_registry/details_app_bundle.js | 32 + .../project/components/registry_settings_app.vue | 88 +- .../settings/project/registry_settings_bundle.js | 4 + .../components/cleanup_policy_enabled_alert.vue | 54 + .../packages_and_registries/shared/utils.js | 3 +- .../application_settings/integrations/index.js | 5 - .../jobs/index/components/stop_jobs_modal.vue | 6 +- .../javascripts/pages/admin/runners/index/index.js | 5 + .../pages/groups/group_members/index.js | 71 +- .../pages/groups/new/components/app.vue | 55 + .../create_group_description_details.vue | 44 + app/assets/javascripts/pages/groups/new/index.js | 33 +- .../pages/groups/settings/ci_cd/show/index.js | 2 + .../shared/components/promote_milestone_modal.vue | 6 +- .../javascripts/pages/profiles/show/index.js | 8 +- .../javascripts/pages/projects/blob/show/index.js | 19 +- .../pages/projects/branches/index/index.js | 8 + .../feature_flags_user_lists/index/index.js | 25 + .../pages/projects/forks/new/components/app.vue | 5 + .../projects/forks/new/components/fork_form.vue | 93 +- .../forks/new/components/fork_groups_list.vue | 8 +- .../javascripts/pages/projects/forks/new/index.js | 2 + app/assets/javascripts/pages/projects/index.js | 2 + .../javascripts/pages/projects/issues/show.js | 4 - .../labels/components/promote_label_modal.vue | 6 +- .../merge_requests/init_merge_request_show.js | 4 - .../packages/infrastructure_registry/show/index.js | 3 + .../shared/components/interval_pattern_input.vue | 46 +- .../pipeline_schedules/shared/init_form.js | 2 + app/assets/javascripts/pages/projects/project.js | 2 +- .../pages/projects/project_members/index.js | 73 +- .../pages/projects/settings/ci_cd/show/index.js | 2 + .../projects/settings/integrations/show/index.js | 4 - .../components/project_feature_setting.vue | 2 +- .../permissions/components/settings_panel.vue | 2 +- .../javascripts/pages/projects/show/index.js | 4 + .../pages/shared/mount_runner_aws_deployments.js | 17 + .../pages/shared/nav/sidebar_tracking.js | 44 + .../pages/shared/wikis/components/wiki_form.vue | 170 +- .../javascripts/pages/shared/wikis/constants.js | 4 + .../javascripts/pages/users/activity_calendar.js | 67 +- app/assets/javascripts/pdf/index.vue | 11 +- .../performance_bar/components/detailed_metric.vue | 2 +- .../components/performance_bar_app.vue | 7 +- .../components/code_snippet_alert/constants.js | 8 +- .../components/commit/commit_section.vue | 16 + .../drawer/cards/first_pipeline_card.vue | 44 +- .../drawer/ui/pipeline_visual_reference.vue | 43 - .../components/editor/text_editor.vue | 20 +- .../components/file_nav/branch_switcher.vue | 162 +- .../file_nav/pipeline_editor_file_nav.vue | 2 +- .../components/pipeline_editor_tabs.vue | 3 +- .../javascripts/pipeline_editor/constants.js | 2 + .../update_current_branch.mutation.graphql | 3 + .../update_last_commit_branch.mutation.graphql | 3 + .../client/last_commit_branch.query.graphql | 3 + .../queries/get_starter_template.query.graphql | 7 + .../pipeline_editor/graphql/resolvers.js | 19 + app/assets/javascripts/pipeline_editor/index.js | 8 + .../pipeline_editor/pipeline_editor_app.vue | 31 +- .../components/graph/graph_component_wrapper.vue | 2 +- .../components/graph/graph_view_selector.vue | 8 +- .../pipelines/components/graph/linked_pipeline.vue | 6 +- .../components/graph_shared/drawing_utils.js | 12 +- .../pipelines/components/header_component.vue | 14 +- .../components/jobs_shared/action_component.vue | 6 +- .../notification/pipeline_notification.vue | 90 - .../pipelines/components/parsing_utils.js | 36 +- .../components/pipelines_list/empty_state.vue | 77 +- .../components/pipelines_list/pipeline_url.vue | 1 + .../components/pipelines_list/pipelines.vue | 22 +- .../tokens/pipeline_branch_name_token.vue | 6 +- .../tokens/pipeline_tag_name_token.vue | 6 +- .../tokens/pipeline_trigger_author_token.vue | 6 +- .../queries/get_pipeline_header_data.query.graphql | 1 + .../queries/get_user_callouts.query.graphql | 13 - .../pipelines/mixins/pipelines_mixin.js | 16 +- .../pipelines/pipeline_details_bundle.js | 10 - .../pipelines/pipeline_details_notification.js | 29 - .../javascripts/pipelines/pipelines_index.js | 2 + .../pipelines/stores/test_reports/actions.js | 10 +- app/assets/javascripts/pipelines/utils.js | 14 +- .../account/components/delete_account_modal.vue | 61 +- .../profile/account/components/update_username.vue | 11 +- app/assets/javascripts/profile/gl_crop.js | 4 +- .../projects/commit/components/form_modal.vue | 4 +- .../javascripts/projects/commits/store/actions.js | 6 +- .../prometheus_alerts/components/reset_key.vue | 6 +- .../protected_branches/protected_branch_edit.js | 6 +- app/assets/javascripts/registry/explorer/index.js | 2 + .../javascripts/registry/explorer/pages/list.vue | 8 + .../components/related_issues_root.vue | 12 +- .../related_merge_requests/store/actions.js | 6 +- .../components/app_index_apollo_client.vue | 275 +++ .../releases/components/releases_empty_state.vue | 44 + .../releases_pagination_apollo_client.vue | 37 + .../releases/components/releases_sort.vue | 6 +- .../components/releases_sort_apollo_client.vue | 91 + app/assets/javascripts/releases/constants.js | 21 +- app/assets/javascripts/releases/mount_index.js | 34 +- .../releases/stores/modules/edit_new/actions.js | 14 +- .../releases/stores/modules/index/actions.js | 6 +- .../components/codequality_issue_body.vue | 2 +- .../grouped_codequality_reports_app.vue | 16 + .../reports/codequality_report/store/mutations.js | 3 + .../repository/components/blob_content_viewer.vue | 17 +- .../repository/components/blob_header_edit.vue | 28 +- .../repository/components/blob_replace.vue | 75 + .../repository/components/table/index.vue | 4 + .../repository/components/table/row.vue | 38 + .../repository/components/tree_content.vue | 17 +- .../repository/components/upload_blob_modal.vue | 82 +- app/assets/javascripts/repository/constants.js | 4 + app/assets/javascripts/repository/graphql.js | 20 +- app/assets/javascripts/repository/index.js | 3 + app/assets/javascripts/repository/log_tree.js | 32 +- .../javascripts/repository/mixins/get_ref.js | 2 +- .../repository/queries/blob_info.query.graphql | 3 +- .../repository/queries/commit.query.graphql | 4 +- app/assets/javascripts/rest_api.js | 1 + .../components/cells/runner_actions_cell.vue | 171 ++ .../runner/components/cells/runner_name_cell.vue | 44 + .../runner/components/cells/runner_type_cell.vue | 42 + .../components/runner_filtered_search_bar.vue | 145 ++ .../javascripts/runner/components/runner_list.vue | 142 ++ .../runner/components/runner_manual_setup_help.vue | 76 + .../runner/components/runner_pagination.vue | 57 + .../javascripts/runner/components/runner_tags.vue | 33 + .../runner/components/runner_type_alert.vue | 66 + .../runner/components/runner_type_badge.vue | 19 +- .../runner/components/runner_type_help.vue | 60 + .../runner/components/runner_update_form.vue | 227 ++ app/assets/javascripts/runner/constants.js | 36 + .../runner/graphql/delete_runner.mutation.graphql | 5 + .../runner/graphql/get_runner.query.graphql | 5 +- .../runner/graphql/get_runners.query.graphql | 31 + .../runner/graphql/runner_details.fragment.graphql | 12 + .../runner/graphql/runner_node.fragment.graphql | 13 + .../runner/graphql/runner_update.mutation.graphql | 10 + .../runner/runner_details/runner_details_app.vue | 20 +- app/assets/javascripts/runner/runner_list/index.js | 42 + .../runner/runner_list/runner_list_app.vue | 127 + .../runner/runner_list/runner_search_utils.js | 109 + app/assets/javascripts/search/index.js | 5 +- app/assets/javascripts/search/store/actions.js | 1 + .../javascripts/search/topbar/components/app.vue | 2 +- .../search/topbar/components/group_filter.vue | 4 +- .../search/topbar/components/project_filter.vue | 4 +- .../topbar/components/searchable_dropdown.vue | 38 +- .../topbar/components/searchable_dropdown_item.vue | 73 + app/assets/javascripts/search/topbar/constants.js | 8 +- .../security_configuration/components/constants.js | 98 + .../components/redesigned_app.vue | 147 ++ .../components/section_layout.vue | 23 + .../components/upgrade_banner.vue | 45 + .../javascripts/security_configuration/index.js | 39 +- .../javascripts/security_configuration/utils.js | 24 + .../serverless/components/empty_state.vue | 4 +- .../serverless/components/missing_prometheus.vue | 4 +- app/assets/javascripts/serverless/store/actions.js | 14 +- .../set_status_modal/set_status_modal_wrapper.vue | 66 +- .../components/assignees/assignee_title.vue | 2 +- .../sidebar/components/assignees/assignees.vue | 20 +- .../components/assignees/sidebar_assignees.vue | 1 - .../assignees/sidebar_assignees_widget.vue | 7 +- .../assignees/sidebar_invite_members.vue | 12 + .../components/date/sidebar_date_widget.vue | 4 + .../sidebar/components/labels/sidebar_labels.vue | 29 + .../sidebar/components/lock/issuable_lock_form.vue | 2 +- .../participants/sidebar_participants.vue | 31 - .../participants/sidebar_participants_widget.vue | 1 + .../components/reviewers/reviewer_title.vue | 2 +- .../sidebar/components/reviewers/reviewers.vue | 2 +- .../components/reviewers/sidebar_reviewers.vue | 1 - .../components/severity/sidebar_severity.vue | 4 +- .../sidebar/components/sidebar_dropdown_widget.vue | 360 +++ .../sidebar/components/sidebar_editable_item.vue | 11 +- .../subscriptions/sidebar_subscriptions_widget.vue | 9 +- .../components/time_tracking/comparison_pane.vue | 2 +- .../sidebar/components/time_tracking/report.vue | 6 +- .../time_tracking/sidebar_time_tracking.vue | 32 +- .../components/time_tracking/time_tracker.vue | 161 +- app/assets/javascripts/sidebar/constants.js | 54 + app/assets/javascripts/sidebar/graphql.js | 25 +- .../javascripts/sidebar/mount_milestone_sidebar.js | 24 +- app/assets/javascripts/sidebar/mount_sidebar.js | 52 +- .../queries/issue_time_tracking.query.graphql | 13 + .../merge_request_time_tracking.query.graphql | 13 + .../sidebar/queries/milestone.fragment.graphql | 5 + .../project_issue_milestone.mutation.graphql | 17 + .../queries/project_issue_milestone.query.graphql | 14 + .../queries/project_milestones.query.graphql | 13 + .../javascripts/sidebar/track_invite_members.js | 12 + app/assets/javascripts/single_file_diff.js | 6 +- .../snippets/components/snippet_blob_edit.vue | 4 +- .../static_site_editor/components/edit_area.vue | 4 +- .../javascripts/static_site_editor/pages/home.vue | 6 +- .../rich_content_editor/constants.js | 57 + .../modals/add_image/add_image_modal.vue | 134 ++ .../modals/add_image/upload_image_tab.vue | 56 + .../modals/insert_video_modal.vue | 91 + .../rich_content_editor/rich_content_editor.vue | 150 ++ .../services/build_custom_renderer.js | 42 + .../services/build_html_to_markdown_renderer.js | 109 + .../rich_content_editor/services/editor_service.js | 116 + .../services/renderers/build_uneditable_token.js | 63 + .../renderers/render_attribute_definition.js | 7 + .../renderers/render_embedded_ruby_text.js | 9 + .../renderers/render_font_awesome_html_inline.js | 11 + .../services/renderers/render_heading.js | 6 + .../services/renderers/render_html_block.js | 23 + .../renderers/render_identifier_instance_text.js | 40 + .../renderers/render_identifier_paragraph.js | 40 + .../services/renderers/render_list_item.js | 6 + .../services/renderers/render_softbreak.js | 7 + .../services/renderers/render_utils.js | 38 + .../rich_content_editor/services/sanitize_html.js | 22 + .../rich_content_editor/toolbar_item.vue | 31 + app/assets/javascripts/tracking.js | 219 -- app/assets/javascripts/tracking/constants.js | 1 + .../javascripts/tracking/get_standard_context.js | 14 + app/assets/javascripts/tracking/index.js | 251 ++ .../user_lists/components/user_list_form.vue | 2 +- .../user_lists/components/user_lists.vue | 120 + .../user_lists/components/user_lists_table.vue | 125 + .../javascripts/user_lists/store/index/actions.js | 38 + .../javascripts/user_lists/store/index/index.js | 11 + .../user_lists/store/index/mutation_types.js | 10 + .../user_lists/store/index/mutations.js | 37 + .../javascripts/user_lists/store/index/state.js | 10 + .../components/approvals/approvals.vue | 22 +- .../approvals/approvals_summary_optional.vue | 4 +- .../components/deployment/deployment_actions.vue | 6 +- .../components/mr_widget_alert_message.vue | 41 +- .../components/mr_widget_expandable_section.vue | 2 +- .../components/mr_widget_pipeline.vue | 4 +- .../components/source_branch_removal_status.vue | 11 +- .../states/mr_widget_pipeline_blocked.vue | 5 +- .../components/states/ready_to_merge.vue | 31 +- .../components/states/work_in_progress.vue | 21 +- .../terraform/mr_widget_terraform_container.vue | 2 +- .../components/terraform/terraform_plan.vue | 4 +- .../vue_merge_request_widget/constants.js | 4 +- .../vue_merge_request_widget/mr_widget_options.vue | 78 +- .../stores/mr_widget_store.js | 1 - .../alert_details/components/alert_details.vue | 2 +- .../components/sidebar/sidebar_assignees.vue | 4 +- .../components/sidebar/sidebar_status.vue | 12 +- .../components/sidebar/sidebar_todo.vue | 2 +- .../fragments/alert_detail_item.fragment.graphql | 30 - .../mutations/alert_set_assignees.mutation.graphql | 16 +- .../mutations/alert_todo_create.mutation.graphql | 8 +- .../graphql/queries/alert_details.query.graphql | 11 - .../queries/alert_sidebar_details.query.graphql | 17 + .../vue_shared/components/alert_details_table.vue | 13 +- .../components/alerts_deprecation_warning.vue | 7 +- .../vue_shared/components/awards_list.vue | 6 +- .../components/filtered_search_bar/constants.js | 2 +- .../filtered_search_bar_root.vue | 6 +- .../filtered_search_bar/filtered_search_utils.js | 67 +- .../store/modules/filters/actions.js | 18 +- .../filtered_search_bar/tokens/author_token.vue | 123 +- .../filtered_search_bar/tokens/base_token.vue | 29 +- .../filtered_search_bar/tokens/emoji_token.vue | 8 +- .../filtered_search_bar/tokens/epic_token.vue | 51 +- .../filtered_search_bar/tokens/label_token.vue | 137 +- .../vue_shared/components/incidents/utils.js | 3 + .../components/issue/issue_assignees.vue | 2 +- .../vue_shared/components/registry/details_row.vue | 5 +- .../vue_shared/components/registry/list_item.vue | 6 +- .../components/registry/registry_search.vue | 2 +- .../components/rich_content_editor/constants.js | 57 - .../modals/add_image/add_image_modal.vue | 134 -- .../modals/add_image/upload_image_tab.vue | 56 - .../modals/insert_video_modal.vue | 91 - .../rich_content_editor/rich_content_editor.vue | 150 -- .../services/build_custom_renderer.js | 42 - .../services/build_html_to_markdown_renderer.js | 109 - .../rich_content_editor/services/editor_service.js | 116 - .../services/renderers/build_uneditable_token.js | 63 - .../renderers/render_attribute_definition.js | 7 - .../renderers/render_embedded_ruby_text.js | 9 - .../renderers/render_font_awesome_html_inline.js | 11 - .../services/renderers/render_heading.js | 6 - .../services/renderers/render_html_block.js | 23 - .../renderers/render_identifier_instance_text.js | 40 - .../renderers/render_identifier_paragraph.js | 40 - .../services/renderers/render_list_item.js | 6 - .../services/renderers/render_softbreak.js | 7 - .../services/renderers/render_utils.js | 38 - .../rich_content_editor/services/sanitize_html.js | 22 - .../rich_content_editor/toolbar_item.vue | 31 - .../components/runner_aws_deployments/constants.js | 49 + .../runner_aws_deployments.vue | 43 + .../runner_aws_deployments_modal.vue | 97 + .../runner_instructions_modal.vue | 4 +- .../components/sidebar/labels_select/base.vue | 191 -- .../sidebar/labels_select/dropdown_button.vue | 86 - .../labels_select/dropdown_create_label.vue | 92 - .../sidebar/labels_select/dropdown_footer.vue | 37 - .../sidebar/labels_select/dropdown_header.vue | 22 - .../labels_select/dropdown_search_input.vue | 28 - .../sidebar/labels_select/dropdown_title.vue | 31 - .../sidebar/labels_select/dropdown_value.vue | 65 - .../labels_select/dropdown_value_collapsed.vue | 55 - .../sidebar/labels_select_vue/dropdown_title.vue | 7 +- .../labels_select_vue/dropdown_value_collapsed.vue | 55 + .../labels_select_vue/labels_select_root.vue | 9 +- .../sidebar/labels_select_widget/constants.js | 5 + .../labels_select_widget/dropdown_button.vue | 42 + .../labels_select_widget/dropdown_contents.vue | 44 + .../dropdown_contents_create_view.vue | 119 + .../dropdown_contents_labels_view.vue | 221 ++ .../labels_select_widget/dropdown_title.vue | 39 + .../labels_select_widget/dropdown_value.vue | 67 + .../sidebar/labels_select_widget/label_item.vue | 82 + .../labels_select_widget/labels_select_root.vue | 327 +++ .../sidebar/labels_select_widget/store/actions.js | 58 + .../sidebar/labels_select_widget/store/getters.js | 52 + .../sidebar/labels_select_widget/store/index.js | 12 + .../labels_select_widget/store/mutation_types.js | 20 + .../labels_select_widget/store/mutations.js | 70 + .../sidebar/labels_select_widget/store/state.js | 29 + .../queries/get_alert_assignees.query.graphql | 20 + .../components/user_callout_dismisser.vue | 175 ++ .../components/user_select/user_select.vue | 13 +- .../new_namespace/new_namespace_page.vue | 2 +- .../merge_request_artifact_download.vue | 82 + .../security_reports/components/help_icon.vue | 2 +- .../security_report_download_dropdown.vue | 9 +- .../security_reports/security_reports_app.vue | 2 + .../javascripts/whats_new/components/feature.vue | 6 +- .../components/rich_content_editor.scss | 2 +- app/assets/stylesheets/framework.scss | 4 +- app/assets/stylesheets/framework/awards.scss | 46 +- app/assets/stylesheets/framework/blank.scss | 118 + app/assets/stylesheets/framework/blocks.scss | 4 +- app/assets/stylesheets/framework/buttons.scss | 4 - app/assets/stylesheets/framework/calendar.scss | 10 + .../stylesheets/framework/contextual_sidebar.scss | 453 ---- .../framework/contextual_sidebar_header.scss | 57 + .../contextual_sidebar.scss | 7 + .../contextual_sidebar_base.scss | 386 +++ .../contextual_sidebar_variant.scss | 514 ++++ app/assets/stylesheets/framework/diffs.scss | 12 +- app/assets/stylesheets/framework/gfm.scss | 3 +- app/assets/stylesheets/framework/header.scss | 25 +- app/assets/stylesheets/framework/highlight.scss | 5 +- app/assets/stylesheets/framework/layout.scss | 12 +- app/assets/stylesheets/framework/lists.scss | 4 +- app/assets/stylesheets/framework/mixins.scss | 16 + app/assets/stylesheets/framework/sidebar.scss | 5 + .../stylesheets/framework/system_messages.scss | 4 +- app/assets/stylesheets/framework/variables.scss | 17 +- app/assets/stylesheets/highlight/themes/dark.scss | 3 + .../stylesheets/highlight/themes/monokai.scss | 3 + app/assets/stylesheets/highlight/themes/none.scss | 3 + .../highlight/themes/solarized-dark.scss | 3 + .../highlight/themes/solarized-light.scss | 3 + app/assets/stylesheets/highlight/white_base.scss | 3 + app/assets/stylesheets/mailer.scss | 21 + .../stylesheets/page_bundles/cycle_analytics.scss | 27 +- .../page_bundles/escalation_policies.scss | 37 + app/assets/stylesheets/page_bundles/group.scss | 107 + app/assets/stylesheets/page_bundles/pipelines.scss | 2 +- app/assets/stylesheets/page_bundles/project.scss | 82 + app/assets/stylesheets/page_bundles/wiki.scss | 1 + app/assets/stylesheets/pages/groups.scss | 211 -- app/assets/stylesheets/pages/issuable.scss | 13 - app/assets/stylesheets/pages/issues.scss | 8 - app/assets/stylesheets/pages/login.scss | 4 + app/assets/stylesheets/pages/merge_requests.scss | 21 +- app/assets/stylesheets/pages/profile.scss | 6 + app/assets/stylesheets/pages/projects.scss | 91 +- app/assets/stylesheets/pages/search.scss | 13 +- app/assets/stylesheets/pages/tree.scss | 10 +- app/assets/stylesheets/performance_bar.scss | 34 +- app/assets/stylesheets/print.scss | 2 +- app/assets/stylesheets/snippets.scss | 1 - app/assets/stylesheets/startup/startup-dark.scss | 1946 ++++++++++------ .../stylesheets/startup/startup-general.scss | 1596 +++++++------ app/assets/stylesheets/startup/startup-signin.scss | 2284 +++--------------- app/assets/stylesheets/themes/theme_helper.scss | 5 +- app/assets/stylesheets/utilities.scss | 7 - app/controllers/abuse_reports_controller.rb | 2 +- app/controllers/admin/appearances_controller.rb | 87 - .../application_settings/appearances_controller.rb | 87 + .../admin/application_settings_controller.rb | 2 +- .../admin/background_migrations_controller.rb | 23 + app/controllers/admin/dashboard_controller.rb | 2 +- app/controllers/admin/groups_controller.rb | 2 +- app/controllers/admin/runners_controller.rb | 3 + app/controllers/admin/users_controller.rb | 27 +- app/controllers/application_controller.rb | 23 +- .../clusters/applications_controller.rb | 2 +- app/controllers/concerns/creates_commit.rb | 2 +- app/controllers/concerns/integrations_actions.rb | 5 +- app/controllers/concerns/membership_actions.rb | 38 +- app/controllers/concerns/wiki_actions.rb | 2 +- app/controllers/concerns/with_performance_bar.rb | 9 +- app/controllers/confirmations_controller.rb | 6 +- app/controllers/dashboard/projects_controller.rb | 2 +- app/controllers/groups/boards_controller.rb | 2 + .../groups/email_campaigns_controller.rb | 9 +- app/controllers/groups/group_links_controller.rb | 4 +- app/controllers/groups/group_members_controller.rb | 25 +- .../groups/registry/repositories_controller.rb | 2 +- app/controllers/groups_controller.rb | 11 +- app/controllers/health_controller.rb | 1 + app/controllers/import/bulk_imports_controller.rb | 6 +- .../jira_connect/app_descriptor_controller.rb | 2 +- app/controllers/omniauth_callbacks_controller.rb | 4 + app/controllers/passwords_controller.rb | 4 + app/controllers/profiles_controller.rb | 3 +- .../projects/alert_management_controller.rb | 4 + .../cycle_analytics/summary_controller.rb | 27 + app/controllers/projects/blob_controller.rb | 3 +- app/controllers/projects/boards_controller.rb | 2 + app/controllers/projects/branches_controller.rb | 20 +- .../projects/ci/pipeline_editor_controller.rb | 1 + app/controllers/projects/commit_controller.rb | 4 - app/controllers/projects/compare_controller.rb | 6 +- .../projects/cycle_analytics/events_controller.rb | 2 +- .../projects/cycle_analytics_controller.rb | 2 +- .../projects/feature_flags_controller.rb | 7 + .../feature_flags_user_lists_controller.rb | 3 + app/controllers/projects/forks_controller.rb | 12 +- app/controllers/projects/issues_controller.rb | 4 +- .../merge_requests/conflicts_controller.rb | 3 + .../projects/merge_requests_controller.rb | 1 + .../projects/metrics_dashboard_controller.rb | 1 + .../packages/infrastructure_registry_controller.rb | 12 + .../projects/pipeline_schedules_controller.rb | 4 + app/controllers/projects/pipelines_controller.rb | 68 +- .../projects/project_members_controller.rb | 16 + app/controllers/projects/releases_controller.rb | 3 + .../projects/security/configuration_controller.rb | 4 + app/controllers/projects/services_controller.rb | 9 +- .../projects/settings/integrations_controller.rb | 2 +- .../projects/settings/operations_controller.rb | 2 +- app/controllers/projects/templates_controller.rb | 2 +- app/controllers/projects/wikis_controller.rb | 4 - app/controllers/projects_controller.rb | 21 +- .../registrations/welcome_controller.rb | 2 +- app/controllers/registrations_controller.rb | 6 +- app/controllers/users_controller.rb | 10 +- app/experiments/application_experiment.rb | 28 +- app/experiments/members/invite_email_experiment.rb | 2 +- app/finders/ci/auth_job_finder.rb | 4 + .../ci/pipelines_for_merge_request_finder.rb | 2 +- app/finders/ci/runners_finder.rb | 9 +- app/finders/concerns/packages/finder_helper.rb | 2 +- app/finders/deployments_finder.rb | 11 +- app/finders/feature_flags_finder.rb | 2 +- app/finders/issuable_finder.rb | 30 +- app/finders/issuable_finder/params.rb | 26 - app/finders/issuables/assignee_filter.rb | 79 + app/finders/issuables/author_filter.rb | 4 +- app/finders/issuables/base_filter.rb | 8 +- app/finders/issues_finder.rb | 2 +- .../packages/group_or_project_package_finder.rb | 12 +- app/finders/packages/helm/package_files_finder.rb | 26 + app/finders/packages/pypi/package_finder.rb | 10 + app/finders/pending_todos_finder.rb | 9 + .../projects/serverless/functions_finder.rb | 2 +- app/finders/projects_finder.rb | 11 +- app/finders/security/jobs_finder.rb | 2 +- app/finders/template_finder.rb | 16 - app/graphql/gitlab_schema.rb | 10 +- app/graphql/mutations/ci/ci_cd_settings_update.rb | 4 + app/graphql/mutations/ci/runner/delete.rb | 44 + app/graphql/mutations/ci/runner/update.rb | 68 + .../ci/runners_registration_token/reset.rb | 66 + app/graphql/mutations/commits/create.rb | 6 + .../concerns/mutations/resolves_subscription.rb | 1 + app/graphql/mutations/issues/set_subscription.rb | 24 +- app/graphql/mutations/labels/create.rb | 4 - .../mutations/merge_requests/set_subscription.rb | 24 +- app/graphql/mutations/snippets/create.rb | 2 +- app/graphql/mutations/snippets/update.rb | 2 +- app/graphql/mutations/todos/mark_all_done.rb | 7 - app/graphql/mutations/todos/restore_many.rb | 5 - .../resolvers/board_list_issues_resolver.rb | 4 +- app/graphql/resolvers/board_lists_resolver.rb | 4 +- app/graphql/resolvers/ci/runners_resolver.rb | 4 + .../resolvers/concerns/board_issue_filterable.rb | 35 - .../resolvers/concerns/board_item_filterable.rb | 35 + .../resolvers/concerns/time_frame_arguments.rb | 8 + app/graphql/resolvers/milestones_resolver.rb | 10 +- .../resolvers/projects/services_resolver.rb | 12 +- app/graphql/resolvers/projects_resolver.rb | 7 +- app/graphql/resolvers/timelog_resolver.rb | 108 +- app/graphql/types/base_enum.rb | 15 +- app/graphql/types/ci/ci_cd_setting_type.rb | 3 + app/graphql/types/ci/runner_sort_enum.rb | 4 +- app/graphql/types/ci/runner_type.rb | 2 + app/graphql/types/ci/runner_type_enum.rb | 8 +- app/graphql/types/deprecated_mutations.rb | 10 +- app/graphql/types/global_id_type.rb | 27 +- app/graphql/types/label_type.rb | 2 - app/graphql/types/member_interface.rb | 2 +- app/graphql/types/merge_request_type.rb | 10 +- .../types/merge_requests/merge_status_enum.rb | 26 + app/graphql/types/mutation_type.rb | 3 + app/graphql/types/packages/metadata_type.rb | 4 +- .../types/packages/package_group_sort_enum.rb | 6 +- app/graphql/types/packages/package_type.rb | 2 + app/graphql/types/packages/pypi/metadatum_type.rb | 17 + app/graphql/types/project_type.rb | 4 + app/graphql/types/projects/service_type.rb | 2 +- app/graphql/types/projects/service_type_enum.rb | 4 +- app/graphql/types/snippet_type.rb | 6 - app/graphql/types/snippets/blob_action_enum.rb | 8 +- .../types/snippets/visibility_scopes_enum.rb | 6 +- app/graphql/types/timelog_type.rb | 2 +- app/helpers/admin/background_migrations_helper.rb | 27 + app/helpers/application_settings_helper.rb | 6 +- app/helpers/clusters_helper.rb | 2 +- app/helpers/commits_helper.rb | 6 +- app/helpers/dropdowns_helper.rb | 2 +- app/helpers/environments_helper.rb | 3 +- app/helpers/events_helper.rb | 2 +- app/helpers/form_helper.rb | 28 +- app/helpers/gitlab_script_tag_helper.rb | 8 + app/helpers/gitpod_helper.rb | 2 +- app/helpers/groups/group_members_helper.rb | 24 +- app/helpers/groups_helper.rb | 32 +- app/helpers/ide_helper.rb | 1 + app/helpers/invite_members_helper.rb | 34 +- .../issuables_description_templates_helper.rb | 9 +- app/helpers/issuables_helper.rb | 4 + app/helpers/issues_helper.rb | 6 +- app/helpers/keyset_helper.rb | 13 + app/helpers/merge_requests_helper.rb | 6 - app/helpers/nav/new_dropdown_helper.rb | 188 ++ app/helpers/nav/top_nav_helper.rb | 148 +- app/helpers/nav_helper.rb | 3 +- app/helpers/notify_helper.rb | 32 +- app/helpers/operations_helper.rb | 18 +- app/helpers/packages_helper.rb | 10 + app/helpers/preferences_helper.rb | 10 +- app/helpers/projects/project_members_helper.rb | 25 +- app/helpers/projects_helper.rb | 4 +- app/helpers/registrations_helper.rb | 10 + app/helpers/search_helper.rb | 3 +- app/helpers/services_helper.rb | 2 +- app/helpers/sidebars_helper.rb | 8 + app/helpers/tab_helper.rb | 16 +- app/helpers/tags_helper.rb | 10 - app/helpers/user_callouts_helper.rb | 10 - app/helpers/version_check_helper.rb | 2 +- app/mailers/emails/in_product_marketing.rb | 5 +- app/mailers/emails/members.rb | 35 +- app/mailers/emails/service_desk.rb | 8 +- app/mailers/previews/notify_preview.rb | 2 +- .../analytics/cycle_analytics/project_level.rb | 49 + app/models/analytics/usage_trends/measurement.rb | 2 +- app/models/application_record.rb | 10 +- app/models/application_setting.rb | 12 + app/models/application_setting_implementation.rb | 2 + app/models/bulk_imports/export.rb | 10 +- app/models/bulk_imports/export_status.rb | 47 + .../bulk_imports/file_transfer/base_config.rb | 12 + app/models/chat_team.rb | 4 +- app/models/ci/bridge.rb | 2 +- app/models/ci/build.rb | 132 +- app/models/ci/build_dependencies.rb | 2 - app/models/ci/build_metadata.rb | 7 +- app/models/ci/build_trace_chunk.rb | 33 +- app/models/ci/build_trace_chunks/database.rb | 4 - app/models/ci/build_trace_chunks/fog.rb | 12 +- app/models/ci/build_trace_chunks/redis.rb | 87 +- app/models/ci/build_trace_chunks/redis_base.rb | 90 + .../ci/build_trace_chunks/redis_trace_chunks.rb | 13 + app/models/ci/build_trace_section.rb | 3 + app/models/ci/job_artifact.rb | 18 +- app/models/ci/job_token/project_scope_link.rb | 33 + app/models/ci/job_token/scope.rb | 43 + app/models/ci/pending_build.rb | 18 + app/models/ci/pipeline.rb | 20 +- app/models/ci/pipeline_schedule.rb | 12 + app/models/ci/processable.rb | 2 +- app/models/ci/runner.rb | 98 +- app/models/ci/runner_namespace.rb | 5 + app/models/ci/runner_project.rb | 5 + app/models/ci/running_build.rb | 28 + app/models/ci/stage.rb | 3 + app/models/clusters/applications/fluentd.rb | 121 - app/models/clusters/applications/ingress.rb | 101 +- app/models/clusters/applications/knative.rb | 4 +- app/models/clusters/applications/runner.rb | 2 +- app/models/clusters/cluster.rb | 33 +- app/models/clusters/clusters_hierarchy.rb | 9 +- app/models/commit.rb | 34 +- app/models/commit_status.rb | 8 +- app/models/concerns/bulk_insert_safe.rb | 6 + app/models/concerns/cache_markdown_field.rb | 9 +- app/models/concerns/cron_schedulable.rb | 21 +- app/models/concerns/deployment_platform.rb | 8 +- app/models/concerns/enum_with_nil.rb | 8 - app/models/concerns/enums/ci/commit_status.rb | 1 + app/models/concerns/enums/vulnerability.rb | 12 + app/models/concerns/has_timelogs_report.rb | 20 - app/models/concerns/has_user_type.rb | 5 +- .../concerns/integrations/base_data_fields.rb | 28 + .../concerns/integrations/has_data_fields.rb | 61 + .../integrations/slack_mattermost_notifier.rb | 24 + app/models/concerns/issuable.rb | 23 +- app/models/concerns/issue_available_features.rb | 3 +- app/models/concerns/limitable.rb | 3 +- .../concerns/mentionable/reference_regexes.rb | 2 +- .../concerns/notification_branch_selection.rb | 2 +- .../concerns/packages/debian/component_file.rb | 4 +- .../concerns/packages/debian/distribution.rb | 12 + .../concerns/packages/debian/distribution_key.rb | 45 + app/models/concerns/prometheus_adapter.rb | 2 +- .../concerns/service_push_data_validations.rb | 4 +- app/models/concerns/services/data_fields.rb | 26 - app/models/concerns/taggable_queries.rb | 16 + app/models/concerns/time_trackable.rb | 18 +- app/models/concerns/timebox.rb | 13 - .../encryption_helper.rb | 12 +- app/models/container_repository.rb | 23 +- app/models/cycle_analytics/project_level.rb | 48 - app/models/deployment.rb | 3 + app/models/environment.rb | 5 +- app/models/environment_status.rb | 2 +- app/models/experiment.rb | 13 +- app/models/experiment_subject.rb | 10 +- app/models/group.rb | 56 +- app/models/group_deploy_token.rb | 2 - app/models/hooks/project_hook.rb | 5 + app/models/hooks/web_hook.rb | 16 + app/models/hooks/web_hook_log_archived.rb | 12 - app/models/import_export_upload.rb | 35 + app/models/integration.rb | 54 +- app/models/integrations/bamboo.rb | 2 +- app/models/integrations/base_chat_notification.rb | 255 ++ app/models/integrations/base_ci.rb | 44 + app/models/integrations/base_issue_tracker.rb | 156 ++ app/models/integrations/base_slash_commands.rb | 67 + app/models/integrations/bugzilla.rb | 26 + app/models/integrations/buildkite.rb | 145 ++ app/models/integrations/builds_email.rb | 16 - .../integrations/chat_message/base_message.rb | 2 +- .../integrations/chat_message/pipeline_message.rb | 8 +- .../integrations/chat_message/push_message.rb | 2 +- .../integrations/chat_message/wiki_page_message.rb | 12 +- app/models/integrations/custom_issue_tracker.rb | 25 + app/models/integrations/discord.rb | 68 + app/models/integrations/drone_ci.rb | 106 + app/models/integrations/ewm.rb | 38 + app/models/integrations/external_wiki.rb | 52 + app/models/integrations/flowdock.rb | 52 + app/models/integrations/hangouts_chat.rb | 71 + app/models/integrations/irker.rb | 123 + app/models/integrations/issue_tracker_data.rb | 11 + app/models/integrations/jenkins.rb | 113 + app/models/integrations/jira.rb | 588 +++++ app/models/integrations/jira_tracker_data.rb | 14 + app/models/integrations/mattermost.rb | 33 + .../integrations/mattermost_slash_commands.rb | 59 + app/models/integrations/microsoft_teams.rb | 59 + app/models/integrations/mock_ci.rb | 90 + app/models/integrations/open_project.rb | 20 + .../integrations/open_project_tracker_data.rb | 18 + app/models/integrations/packagist.rb | 67 + app/models/integrations/pipelines_email.rb | 105 + app/models/integrations/pivotaltracker.rb | 78 + app/models/integrations/pushover.rb | 107 + app/models/integrations/redmine.rb | 25 + app/models/integrations/slack.rb | 59 + app/models/integrations/slack_slash_commands.rb | 36 + app/models/integrations/teamcity.rb | 191 ++ app/models/integrations/unify_circuit.rb | 62 + app/models/integrations/webex_teams.rb | 56 + app/models/integrations/youtrack.rb | 42 + app/models/issue.rb | 6 +- app/models/key.rb | 5 +- app/models/label.rb | 4 + app/models/label_link.rb | 1 - app/models/lfs_object.rb | 17 +- app/models/member.rb | 23 +- app/models/members/group_member.rb | 6 +- app/models/members/last_group_owner_assigner.rb | 62 +- app/models/merge_request.rb | 9 +- app/models/merge_request_context_commit.rb | 2 +- app/models/merge_request_diff.rb | 18 +- app/models/merge_request_diff_commit.rb | 2 +- app/models/milestone.rb | 13 + app/models/namespace.rb | 15 +- app/models/namespace_setting.rb | 3 +- app/models/namespaces/traversal/linear.rb | 27 +- app/models/namespaces/traversal/recursive.rb | 6 + app/models/note.rb | 10 +- app/models/onboarding_progress.rb | 4 + app/models/operations/feature_flag.rb | 2 + .../packages/debian/group_distribution_key.rb | 9 + .../packages/debian/project_distribution_key.rb | 9 + app/models/packages/package.rb | 71 +- app/models/packages/package_file.rb | 7 + app/models/pages/lookup_path.rb | 40 +- app/models/pages_domain.rb | 12 +- app/models/postgresql/replication_slot.rb | 4 +- .../user_max_access_level_in_projects_preloader.rb | 2 +- app/models/project.rb | 220 +- app/models/project_authorization.rb | 9 + app/models/project_ci_cd_setting.rb | 1 + app/models/project_feature.rb | 8 +- app/models/project_feature_usage.rb | 14 +- app/models/project_repository_storage_move.rb | 13 - app/models/project_services/bugzilla_service.rb | 24 - app/models/project_services/buildkite_service.rb | 143 -- .../project_services/chat_notification_service.rb | 252 -- app/models/project_services/ci_service.rb | 42 - .../custom_issue_tracker_service.rb | 23 - app/models/project_services/data_fields.rb | 59 - app/models/project_services/discord_service.rb | 66 - app/models/project_services/drone_ci_service.rb | 104 - app/models/project_services/ewm_service.rb | 36 - .../project_services/external_wiki_service.rb | 50 - app/models/project_services/flowdock_service.rb | 50 - .../project_services/hangouts_chat_service.rb | 71 - app/models/project_services/hipchat_service.rb | 32 - app/models/project_services/irker_service.rb | 121 - app/models/project_services/issue_tracker_data.rb | 9 - .../project_services/issue_tracker_service.rb | 152 -- app/models/project_services/jenkins_service.rb | 111 - app/models/project_services/jira_service.rb | 541 ----- app/models/project_services/jira_tracker_data.rb | 24 - app/models/project_services/mattermost_service.rb | 31 - .../mattermost_slash_commands_service.rb | 57 - .../project_services/microsoft_teams_service.rb | 57 - app/models/project_services/mock_ci_service.rb | 90 - .../project_services/open_project_service.rb | 18 - .../project_services/open_project_tracker_data.rb | 16 - app/models/project_services/packagist_service.rb | 65 - .../project_services/pipelines_email_service.rb | 103 - .../project_services/pivotaltracker_service.rb | 76 - app/models/project_services/prometheus_service.rb | 4 +- app/models/project_services/pushover_service.rb | 105 - app/models/project_services/redmine_service.rb | 23 - .../project_services/slack_mattermost/notifier.rb | 24 - app/models/project_services/slack_service.rb | 57 - .../slack_slash_commands_service.rb | 34 - .../project_services/slash_commands_service.rb | 65 - app/models/project_services/teamcity_service.rb | 189 -- .../project_services/unify_circuit_service.rb | 60 - app/models/project_services/webex_teams_service.rb | 54 - app/models/project_services/youtrack_service.rb | 40 - app/models/project_statistics.rb | 20 +- app/models/protected_branch.rb | 2 - app/models/release.rb | 8 +- app/models/release_highlight.rb | 2 +- app/models/repository.rb | 2 + app/models/service_desk_setting.rb | 22 + app/models/snippet_repository_storage_move.rb | 13 - app/models/timelog.rb | 8 +- app/models/todo.rb | 1 + app/models/user.rb | 57 +- app/models/user_callout.rb | 5 +- app/models/user_detail.rb | 1 + app/models/users/in_product_marketing_email.rb | 3 +- app/policies/concerns/policy_actor.rb | 4 + app/policies/global_policy.rb | 1 + app/policies/group_policy.rb | 3 +- app/policies/issue_policy.rb | 12 + app/policies/merge_request_policy.rb | 5 + app/policies/packages/pypi/metadatum_policy.rb | 8 + app/policies/project_policy.rb | 17 +- app/policies/timelog_policy.rb | 2 +- app/presenters/commit_status_presenter.rb | 3 +- .../packages/detail/package_presenter.rb | 4 +- app/presenters/packages/pypi/package_presenter.rb | 43 +- app/presenters/project_presenter.rb | 2 +- app/presenters/release_presenter.rb | 14 - app/serializers/analytics_stage_entity.rb | 6 +- app/serializers/cluster_application_entity.rb | 4 - app/serializers/fork_namespace_entity.rb | 8 +- app/serializers/issue_board_entity.rb | 2 +- app/serializers/member_serializer.rb | 2 +- app/serializers/merge_request_diff_entity.rb | 8 +- .../periodic_recalculate_service.rb | 7 +- .../project_group_link_create_service.rb | 2 +- .../project_recalculate_service.rb | 80 + .../recalculate_for_user_range_service.rb | 20 - app/services/base_container_service.rb | 8 + app/services/base_count_service.rb | 4 +- app/services/boards/base_item_move_service.rb | 9 +- app/services/boards/base_items_list_service.rb | 12 +- app/services/boards/issues/list_service.rb | 4 +- app/services/branches/create_service.rb | 8 +- .../bulk_imports/file_decompression_service.rb | 58 + app/services/bulk_imports/file_download_service.rb | 102 + .../bulk_imports/relation_export_service.rb | 4 +- .../ci/create_downstream_pipeline_service.rb | 12 +- app/services/ci/create_pipeline_service.rb | 1 + app/services/ci/job_artifacts/create_service.rb | 5 - .../ci/pipeline_creation/start_pipeline_service.rb | 19 + .../calculate_next_run_service.rb | 59 + app/services/ci/play_bridge_service.rb | 10 +- app/services/ci/play_build_service.rb | 18 +- app/services/ci/register_job_service.rb | 64 +- app/services/ci/retry_build_service.rb | 13 +- app/services/ci/update_build_queue_service.rb | 100 +- app/services/ci/update_build_state_service.rb | 22 +- app/services/clusters/applications/base_service.rb | 18 - .../applications/schedule_update_service.rb | 7 +- app/services/clusters/cleanup/app_service.rb | 33 - .../clusters/cleanup/project_namespace_service.rb | 2 +- .../clusters/cleanup/service_account_service.rb | 2 +- .../clusters/gcp/finalize_creation_service.rb | 12 +- .../parse_cluster_applications_artifact_service.rb | 94 - app/services/commits/change_service.rb | 5 +- .../cleanup_service.rb | 1 - .../deployments/update_environment_service.rb | 16 +- .../copy_design_collection/copy_service.rb | 10 +- app/services/design_management/design_service.rb | 2 +- app/services/discussions/resolve_service.rb | 7 + app/services/feature_flags/disable_service.rb | 46 - app/services/feature_flags/enable_service.rb | 93 - app/services/groups/create_service.rb | 2 +- app/services/groups/group_links/create_service.rb | 34 +- app/services/groups/participants_service.rb | 4 +- app/services/groups/transfer_service.rb | 3 + app/services/import_export_clean_up_service.rb | 36 +- app/services/issuable_base_service.rb | 25 +- app/services/issue_rebalancing_service.rb | 11 +- app/services/issues/base_service.rb | 34 +- app/services/issues/close_service.rb | 13 - app/services/issues/create_service.rb | 31 +- app/services/issues/update_service.rb | 22 +- app/services/issues/zoom_link_service.rb | 4 +- app/services/jira_import/users_importer.rb | 15 +- app/services/mattermost/create_team_service.rb | 4 +- app/services/members/create_service.rb | 22 + app/services/merge_requests/base_service.rb | 33 + .../handle_assignees_change_service.rb | 2 +- app/services/merge_requests/refresh_service.rb | 3 +- .../merge_requests/update_assignees_service.rb | 11 +- app/services/merge_requests/update_service.rb | 25 +- app/services/namespace_settings/update_service.rb | 10 + .../in_product_marketing_emails_service.rb | 45 +- .../notification_recipients/builder/base.rb | 45 - .../packages/debian/create_distribution_service.rb | 21 +- .../debian/destroy_distribution_service.rb | 33 - .../debian/generate_distribution_service.rb | 53 +- .../packages/debian/process_changes_service.rb | 2 + .../packages/debian/update_distribution_service.rb | 10 +- .../packages/helm/extract_file_metadata_service.rb | 53 + .../packages/nuget/metadata_extraction_service.rb | 27 +- app/services/pages/delete_service.rb | 9 +- app/services/projects/create_service.rb | 37 +- app/services/projects/destroy_service.rb | 2 +- .../projects/group_links/create_service.rb | 26 +- .../projects/group_links/destroy_service.rb | 20 +- .../projects/prometheus/alerts/notify_service.rb | 4 +- app/services/projects/update_service.rb | 9 + .../prometheus/create_default_alerts_service.rb | 7 +- .../resource_access_tokens/create_service.rb | 2 +- app/services/search/project_service.rb | 4 +- app/services/search_service.rb | 4 + .../ci_configuration/sast_parser_service.rb | 20 +- app/services/snippets/base_service.rb | 6 +- app/services/snippets/create_service.rb | 2 +- app/services/snippets/update_service.rb | 2 +- app/services/todo_service.rb | 2 + .../user_project_access_changed_service.rb | 23 +- app/services/users/activity_service.rb | 4 +- app/services/users/authorized_build_service.rb | 18 + app/services/users/authorized_create_service.rb | 14 + app/services/users/build_service.rb | 187 +- app/services/users/create_service.rb | 9 +- .../users/refresh_authorized_projects_service.rb | 9 +- app/services/users/registrations_build_service.rb | 7 +- .../update_assigned_open_issue_count_service.rb | 33 - app/services/web_hook_service.rb | 51 +- app/services/web_hooks/log_execution_service.rb | 35 + app/validators/json_schemas/ci_runner_config.json | 9 + .../sast_ui_schema.json | 37 +- app/views/admin/appearances/_form.html.haml | 114 - .../_system_header_footer_form.html.haml | 33 - .../admin/appearances/preview_sign_in.html.haml | 12 - app/views/admin/appearances/show.html.haml | 4 - .../_account_and_limit.html.haml | 8 + .../admin/application_settings/_ci_cd.html.haml | 30 +- .../application_settings/_diff_limits.html.haml | 25 +- .../admin/application_settings/_gitpod.html.haml | 6 +- .../appearances/_form.html.haml | 114 + .../_system_header_footer_form.html.haml | 33 + .../appearances/preview_sign_in.html.haml | 12 + .../appearances/show.html.haml | 4 + .../application_settings/ci/_header.html.haml | 2 +- .../admin/application_settings/ci_cd.html.haml | 2 +- .../admin/application_settings/general.html.haml | 7 +- .../application_settings/integrations.html.haml | 13 +- .../background_migrations/_migration.html.haml | 10 + .../admin/background_migrations/index.html.haml | 35 + app/views/admin/broadcast_messages/_form.html.haml | 14 +- app/views/admin/dashboard/index.html.haml | 3 + app/views/admin/groups/_form.html.haml | 10 +- app/views/admin/runners/_runner.html.haml | 2 +- app/views/admin/runners/index.html.haml | 242 +- app/views/admin/runners/show.html.haml | 8 +- app/views/admin/serverless/domains/_form.html.haml | 2 +- .../_service_templates_deprecated_alert.html.haml | 10 +- app/views/admin/users/_access_levels.html.haml | 14 + app/views/admin/users/_modals.html.haml | 2 +- app/views/admin/users/_user.html.haml | 72 - app/views/admin/users/_users.html.haml | 17 +- app/views/admin/users/show.html.haml | 1 + app/views/ci/runner/_how_to_setup_runner.html.haml | 2 +- app/views/ci/runner/_setup_runner_in_aws.html.haml | 16 + .../clusters/clusters/_advanced_settings.html.haml | 2 +- app/views/clusters/clusters/_health.html.haml | 2 +- app/views/clusters/clusters/gcp/_form.html.haml | 13 +- app/views/clusters/clusters/show.html.haml | 16 +- app/views/dashboard/todos/_todo.html.haml | 2 +- app/views/dashboard/todos/index.html.haml | 2 +- app/views/devise/confirmations/almost_there.haml | 6 +- app/views/devise/passwords/new.html.haml | 2 + app/views/devise/registrations/new.html.haml | 3 +- app/views/devise/shared/_signup_box.html.haml | 41 +- app/views/events/_event.atom.builder | 3 +- app/views/events/_event_push.atom.haml | 4 +- app/views/groups/_invite_members_modal.html.haml | 2 +- app/views/groups/_new_group_fields.html.haml | 2 +- app/views/groups/dependency_proxies/show.html.haml | 6 +- app/views/groups/group_members/index.html.haml | 61 +- app/views/groups/new.html.haml | 57 +- app/views/groups/runners/_group_runners.html.haml | 4 + app/views/groups/settings/_permissions.html.haml | 12 +- app/views/groups/settings/ci_cd/_form.html.haml | 3 +- .../groups/settings/integrations/index.html.haml | 2 +- app/views/groups/show.html.haml | 1 + app/views/groups/sidebar/_packages.html.haml | 2 +- app/views/import/_githubish_status.html.haml | 5 +- app/views/import/bitbucket_server/new.html.haml | 7 +- app/views/import/bitbucket_server/status.html.haml | 1 - app/views/import/fogbugz/new.html.haml | 4 +- app/views/import/fogbugz/new_user_map.html.haml | 4 +- app/views/import/fogbugz/status.html.haml | 1 - app/views/import/gitea/new.html.haml | 3 +- app/views/import/gitea/status.html.haml | 1 - app/views/import/github/new.html.haml | 6 +- app/views/import/github/status.html.haml | 2 - app/views/import/gitlab/status.html.haml | 1 - app/views/import/gitlab_projects/new.html.haml | 3 +- app/views/import/manifest/new.html.haml | 4 +- app/views/import/manifest/status.html.haml | 1 - app/views/import/phabricator/new.html.haml | 7 +- app/views/import/shared/_errors.html.haml | 10 +- .../kaminari/gitlab/_keyset_paginator.html.haml | 30 + app/views/layouts/_head.html.haml | 6 +- app/views/layouts/_page.html.haml | 6 +- app/views/layouts/_search.html.haml | 2 +- app/views/layouts/_startup_css.haml | 3 +- app/views/layouts/application.html.haml | 4 +- app/views/layouts/devise.html.haml | 2 +- app/views/layouts/fullscreen.html.haml | 5 +- app/views/layouts/header/_default.html.haml | 30 +- ...roup_invite_members_new_dropdown_item.html.haml | 3 - app/views/layouts/header/_help_dropdown.html.haml | 2 +- app/views/layouts/header/_new_dropdown.html.haml | 62 +- .../layouts/header/_new_repo_experiment.html.haml | 6 - ...ject_invite_members_new_dropdown_item.html.haml | 3 - .../header/_registration_enabled_callout.html.haml | 25 +- app/views/layouts/nav/_dashboard.html.haml | 18 +- app/views/layouts/nav/_top_nav.html.haml | 8 +- .../layouts/nav/_top_nav_responsive.html.haml | 7 + .../layouts/nav/groups_dropdown/_show.html.haml | 17 +- .../layouts/nav/projects_dropdown/_show.html.haml | 8 +- app/views/layouts/nav/sidebar/_admin.html.haml | 41 +- .../layouts/nav/sidebar/_analytics_links.html.haml | 2 +- .../nav/sidebar/_context_menu_body.html.haml | 9 + app/views/layouts/nav/sidebar/_group.html.haml | 39 +- app/views/layouts/nav/sidebar/_profile.html.haml | 7 +- app/views/layouts/terms.html.haml | 2 +- app/views/notify/_failed_builds.html.haml | 4 +- .../notify/in_product_marketing_email.html.haml | 29 +- .../notify/in_product_marketing_email.text.erb | 9 + app/views/notify/member_invited_email.html.haml | 52 +- app/views/notify/pipeline_failed_email.text.erb | 2 +- app/views/notify/ssh_key_expired_email.html.haml | 2 +- app/views/notify/ssh_key_expired_email.text.erb | 2 +- app/views/notify/ssh_key_expiring_soon.text.erb | 2 +- .../notify/ssh_key_expiring_soon_email.html.haml | 2 +- app/views/notify/unknown_sign_in_email.html.haml | 2 +- app/views/profiles/emails/index.html.haml | 10 +- app/views/profiles/notifications/show.html.haml | 16 +- .../personal_access_tokens/index.html.haml | 16 +- app/views/profiles/show.html.haml | 26 +- app/views/profiles/two_factor_auths/show.html.haml | 4 +- .../projects/_bitbucket_import_modal.html.haml | 2 +- app/views/projects/_deletion_failed.html.haml | 10 +- app/views/projects/_files.html.haml | 2 +- app/views/projects/_gitlab_import_modal.html.haml | 2 +- app/views/projects/_home_panel.html.haml | 6 +- app/views/projects/_import_project_pane.html.haml | 2 +- app/views/projects/_invite_members.html.haml | 10 +- app/views/projects/_visibility_modal.html.haml | 2 +- app/views/projects/blob/_blob.html.haml | 9 +- app/views/projects/blob/_header_content.html.haml | 2 + app/views/projects/blob/_new_dir.html.haml | 2 +- app/views/projects/blob/_remove.html.haml | 2 +- app/views/projects/blob/_upload.html.haml | 2 +- app/views/projects/blob/_viewer.html.haml | 1 + app/views/projects/blob/edit.html.haml | 12 +- app/views/projects/branches/_branch.html.haml | 39 +- .../branches/_delete_branch_modal_button.html.haml | 18 + .../branches/_delete_protected_modal.html.haml | 2 +- app/views/projects/branches/index.html.haml | 7 +- app/views/projects/buttons/_clone.html.haml | 21 +- app/views/projects/buttons/_download.html.haml | 8 +- app/views/projects/ci/builds/_build.html.haml | 2 +- app/views/projects/commits/_commits.html.haml | 6 +- app/views/projects/confluences/show.html.haml | 6 +- app/views/projects/cycle_analytics/show.html.haml | 2 +- app/views/projects/empty.html.haml | 5 +- app/views/projects/feature_flags/index.html.haml | 2 +- .../feature_flags_user_lists/edit.html.haml | 1 + .../feature_flags_user_lists/index.html.haml | 8 + .../feature_flags_user_lists/new.html.haml | 1 + .../feature_flags_user_lists/show.html.haml | 1 + app/views/projects/forks/new.html.haml | 3 +- app/views/projects/issues/_nav_btns.html.haml | 3 +- app/views/projects/jobs/_table.html.haml | 2 +- .../merge_requests/_awards_block.html.haml | 4 +- .../_close_reopen_draft_report_toggle.html.haml | 7 +- .../projects/merge_requests/_mr_title.html.haml | 8 +- .../projects/merge_requests/_widget.html.haml | 37 +- app/views/projects/merge_requests/edit.html.haml | 2 + .../projects/merge_requests/invalid.html.haml | 36 +- .../projects/merge_requests/tabs/_tab.html.haml | 4 +- app/views/projects/milestones/show.html.haml | 16 +- .../infrastructure_registry/show.html.haml | 15 + app/views/projects/pages/_access.html.haml | 2 - .../projects/pipeline_schedules/_form.html.haml | 2 +- app/views/projects/pipelines/index.html.haml | 8 +- app/views/projects/pipelines/show.html.haml | 3 +- app/views/projects/project_members/index.html.haml | 62 +- .../shared/_branches_list.html.haml | 15 +- .../shared/_create_protected_branch.html.haml | 15 +- .../protected_branches/shared/_index.html.haml | 2 +- .../projects/registry/repositories/index.html.haml | 2 + .../projects/runners/_specific_runners.html.haml | 4 + app/views/projects/services/_form.html.haml | 18 +- app/views/projects/services/edit.html.haml | 9 +- .../_detailed_help.html.haml | 2 +- .../mattermost_slash_commands/_help.html.haml | 8 +- .../_installation_info.html.haml | 2 +- .../prometheus/_configuration_banner.html.haml | 14 +- .../services/prometheus/_custom_metrics.html.haml | 2 +- .../services/prometheus/_external_alerts.html.haml | 2 +- .../projects/services/prometheus/_help.html.haml | 2 +- .../services/prometheus/_metrics.html.haml | 2 +- .../projects/services/prometheus/_show.html.haml | 4 +- .../projects/services/prometheus/_top.html.haml | 2 +- .../services/slack_slash_commands/_help.html.haml | 4 +- app/views/projects/settings/_general.html.haml | 4 +- app/views/projects/settings/ci_cd/_form.html.haml | 4 +- app/views/projects/settings/ci_cd/show.html.haml | 12 +- .../projects/settings/integrations/show.html.haml | 12 +- .../operations/_alert_management.html.haml | 2 +- .../operations/_configuration_banner.html.haml | 10 +- .../settings/operations/_tracing.html.haml | 22 +- .../projects/settings/operations/show.html.haml | 8 +- .../packages_and_registries/show.html.haml | 23 +- app/views/projects/show.html.haml | 1 + app/views/projects/tree/_tree_header.html.haml | 4 +- app/views/registrations/invites/new.html.haml | 3 +- app/views/search/_results.html.haml | 4 +- app/views/search/results/_issuable.html.haml | 6 +- ...auto_devops_implicitly_enabled_banner.html.haml | 17 +- app/views/shared/_confirm_fork_modal.html.haml | 2 +- app/views/shared/_confirm_modal.html.haml | 2 +- app/views/shared/_global_alert.html.haml | 20 + app/views/shared/_import_form.html.haml | 10 +- app/views/shared/_search_settings.html.haml | 2 + app/views/shared/_service_settings.html.haml | 2 +- app/views/shared/_sidebar_toggle_button.html.haml | 7 +- .../components/sidebar/_time_tracker.html.haml | 8 +- app/views/shared/file_hooks/_index.html.haml | 3 - .../_apply_template_warning.html.haml | 2 +- .../shared/gitpod/_enable_gitpod_modal.html.haml | 2 +- app/views/shared/issuable/_form.html.haml | 8 - app/views/shared/issuable/_search_bar.html.haml | 2 +- app/views/shared/issuable/_sidebar.html.haml | 5 +- .../shared/issuable/_sidebar_assignees.html.haml | 24 +- .../shared/issuable/_sidebar_reviewers.html.haml | 6 +- .../issuable/_sidebar_user_dropdown.html.haml | 21 + .../shared/issuable/form/_branch_chooser.html.haml | 14 +- app/views/shared/issuable/form/_metadata.html.haml | 10 +- app/views/shared/issue_type/_emoji_block.html.haml | 2 +- app/views/shared/members/_group.html.haml | 2 +- app/views/shared/members/_invite_group.html.haml | 10 +- app/views/shared/members/_invite_member.html.haml | 4 +- app/views/shared/members/_member.html.haml | 2 +- app/views/shared/milestones/_issuable.html.haml | 2 +- app/views/shared/milestones/_sidebar.html.haml | 1 + app/views/shared/nav/_scope_menu.html.haml | 12 +- app/views/shared/nav/_scope_menu_body.html.haml | 8 + app/views/shared/nav/_sidebar.html.haml | 4 +- app/views/shared/nav/_sidebar_menu.html.haml | 14 +- .../shared/nav/_sidebar_menu_collapsed.html.haml | 5 + app/views/shared/nav/_sidebar_menu_item.html.haml | 2 +- .../_update_protected_branch.html.haml | 5 +- .../shared/runners/_runner_type_alert.html.haml | 6 +- app/views/shared/wikis/diff.html.haml | 2 +- app/views/shared/wikis/edit.html.haml | 2 +- app/views/shared/wikis/pages.html.haml | 2 +- app/views/users/show.html.haml | 5 +- app/workers/all_queues.yml | 183 +- .../count_job_trigger_worker.rb | 24 - .../instance_statistics/counter_job_worker.rb | 23 - .../project_recalculate_worker.rb | 30 + .../user_refresh_from_replica_worker.rb | 15 + .../user_refresh_over_user_range_worker.rb | 22 +- app/workers/build_hooks_worker.rb | 12 +- app/workers/build_queue_worker.rb | 3 +- app/workers/bulk_import_worker.rb | 7 +- app/workers/bulk_imports/export_request_worker.rb | 2 +- app/workers/bulk_imports/pipeline_worker.rb | 25 +- app/workers/ci/initial_pipeline_process_worker.rb | 2 +- .../pipeline_artifacts/coverage_report_worker.rb | 1 - app/workers/clusters/cleanup/app_worker.rb | 19 - app/workers/concerns/application_worker.rb | 17 + app/workers/concerns/security_scans_queue.rb | 2 +- app/workers/concerns/worker_attributes.rb | 27 +- .../cleanup_container_repository_worker.rb | 50 +- app/workers/container_expiration_policy_worker.rb | 27 +- app/workers/deployments/execute_hooks_worker.rb | 20 - app/workers/expire_pipeline_cache_worker.rb | 8 +- app/workers/git_garbage_collect_worker.rb | 19 - .../incident_management/process_alert_worker.rb | 56 - .../process_prometheus_alert_worker.rb | 23 - app/workers/issue_placement_worker.rb | 9 +- app/workers/issue_rebalancing_worker.rb | 43 +- app/workers/jira_connect/sync_branch_worker.rb | 2 +- .../jira_connect/sync_merge_request_worker.rb | 2 +- .../merge_requests/assignees_change_worker.rb | 28 - .../debian/generate_distribution_worker.rb | 44 + app/workers/pipeline_hooks_worker.rb | 2 +- app/workers/pipeline_process_worker.rb | 10 +- app/workers/pipeline_update_worker.rb | 19 - ..._schedule_bulk_repository_shard_moves_worker.rb | 15 - .../project_update_repository_storage_worker.rb | 15 - app/workers/propagate_integration_worker.rb | 4 +- app/workers/prune_web_hook_logs_worker.rb | 24 - .../remove_unreferenced_lfs_objects_worker.rb | 12 +- ..._schedule_bulk_repository_shard_moves_worker.rb | 16 - .../snippet_update_repository_storage_worker.rb | 15 - .../ssh_keys/expired_notification_worker.rb | 33 +- .../ssh_keys/expiring_soon_notification_worker.rb | 2 - app/workers/stuck_ci_jobs_worker.rb | 55 +- .../users/update_open_issue_count_worker.rb | 26 - app/workers/web_hook_worker.rb | 3 +- app/workers/web_hooks/log_execution_worker.rb | 24 + bin/changelog | 282 --- bin/pkgr_before_precompile.sh | 20 - bin/web | 61 +- bin/web_puma | 63 - bin/web_unicorn | 59 - cable/config.ru | 2 +- changelogs/unreleased/.gitkeep | 0 config.ru | 17 +- config/README.md | 31 + config/application.rb | 34 +- config/dependency_decisions.yml | 14 - config/environments/production.rb | 3 + config/feature_categories.yml | 7 +- .../abort_deleted_project_pipelines.yml | 2 +- .../advanced_search_multi_project_select.yml | 8 + .../allow_force_push_to_protected_branches.yml | 8 - .../development/allow_group_deploy_token.yml | 8 - .../development/allow_unsafe_ruby_regexp.yml | 2 +- .../development/artifacts_management_page.yml | 2 +- .../development/assigned_open_issues_cache.yml | 7 - .../development/auto_devops_banner_disabled.yml | 2 +- .../background_pipeline_retry_endpoint.yml | 8 - .../development/board_multi_select.yml | 8 + .../development/boards_filtered_search.yml | 8 - .../branches_pagination_without_count.yml | 2 +- .../feature_flags/development/cached_mr_widget.yml | 8 + .../cached_sidebar_merge_requests_count.yml | 8 - .../cached_sidebar_open_epics_count.yml | 8 - .../development/check_maven_path_first.yml | 8 - .../development/ci_artifacts_exclude.yml | 2 +- .../development/ci_build_metadata_config.yml | 2 +- .../ci_cross_pipeline_artifacts_download.yml | 8 - .../ci_daily_limit_for_pipeline_schedules.yml | 8 + .../ci_delete_objects_high_concurrency.yml | 2 +- .../ci_delete_objects_medium_concurrency.yml | 2 +- .../ci_drop_cyclical_triggered_pipelines.yml | 2 +- .../ci_drop_new_builds_when_ci_quota_exceeded.yml | 8 + .../development/ci_dynamic_child_pipeline.yml | 8 - .../development/ci_enable_live_trace.yml | 2 +- .../development/ci_external_validation_service.yml | 8 - .../development/ci_fix_commit_status_retried.yml | 2 +- .../ci_idempotent_pipeline_process_worker.yml | 8 + .../ci_minutes_track_live_consumption.yml | 2 +- .../development/ci_needs_optional.yml | 8 - .../development/ci_pending_builds_queue_join.yml | 8 + .../ci_pending_builds_queue_maintain.yml | 8 + .../development/ci_pipeline_latest.yml | 2 +- ...ipeline_status_omit_commit_sha_in_cache_key.yml | 2 +- .../ci_pipeline_triggers_settings_vue_ui.yml | 2 +- ...se_job_rules_without_workflow_rules_warning.yml | 8 - ...ci_reduce_queries_when_ticking_runner_queue.yml | 8 - .../ci_register_job_service_one_by_one.yml | 8 - .../ci_require_credit_card_on_free_plan.yml | 2 +- .../ci_require_credit_card_on_trial_plan.yml | 2 +- .../ci_runner_builds_queue_on_replicas.yml | 8 - .../ci_runners_short_circuit_assignable_for.yml | 2 +- .../ci_runners_tokens_optional_encryption.yml | 2 +- .../development/ci_scoped_job_token.yml | 8 + .../ci_skip_persistent_ref_existence_check.yml | 2 +- .../development/ci_track_shared_runner_builds.yml | 8 + .../ci_untrack_shared_runner_builds.yml | 8 + .../development/ci_yaml_limit_size.yml | 4 +- .../development/cluster_management_project.yml | 8 - .../codequality_mr_diff_annotations.yml | 8 + config/feature_flags/development/combined_menu.yml | 4 +- .../development/configurable_diff_limits.yml | 8 + ...ainer_registry_expiration_policies_loopless.yml | 8 - .../development/create_cloud_run_clusters.yml | 8 - ...create_vulnerability_jira_issue_via_graphql.yml | 8 + .../development/dast_runner_site_validation.yml | 8 + .../database_sourced_aggregated_metrics.yml | 8 - .../development/datadog_ci_integration.yml | 1 + ...sistency_for_user_refresh_over_range_worker.yml | 8 - .../delayed_perform_for_build_hooks_worker.yml | 8 - .../delete_branch_confirmation_modals.yml | 8 + ...itly_enforce_ordering_for_updated_at_filter.yml | 8 - .../destroy_webhooks_before_the_project.yml | 8 - .../development/devops_adoption_feature.yml | 4 +- .../development/diff_settings_usage_data.yml | 2 +- .../development/diffs_virtual_scrolling.yml | 2 +- .../development/disable_service_templates.yml | 2 +- .../drop_license_management_artifact.yml | 8 - .../development/efficient_counter_attribute.yml | 2 +- .../enforce_max_attachment_size_upload_api.yml | 2 +- ..._already_archived_jobs_when_archiving_again.yml | 2 +- .../feature_flags/development/feature_flag_api.yml | 8 - .../development/fetch_remote_params.yml | 8 + .../development/find_remote_root_refs_inmemory.yml | 8 - .../development/git_push_create_all_pipelines.yml | 2 +- config/feature_flags/development/gitaly_backup.yml | 8 + ...porter_query_only_unimported_merge_requests.yml | 8 + .../gitlab_ci_archived_trace_consistent_reads.yml | 2 +- .../development/gitlab_ci_builds_queue_limit.yml | 8 - .../gitlab_ci_builds_queuing_metrics.yml | 2 +- .../gitlab_ci_trace_read_consistency.yml | 8 - .../development/graphql_pipeline_details.yml | 1 + .../development/graphql_pipeline_details_users.yml | 2 +- .../group_level_protected_environments.yml | 8 + config/feature_flags/development/helm_packages.yml | 8 + .../development/honor_escaped_markdown.yml | 8 - .../development/improved_emoji_picker.yml | 2 +- .../development/include_lfs_blobs_in_archive.yml | 8 - .../development/infrastructure_registry_page.yml | 2 +- .../development/ingress_modsecurity.yml | 8 - .../development/inherited_issuable_templates.yml | 8 - .../development/introduce_marker_ranges.yml | 8 - .../development/issue_rebalancing_with_retry.yml | 2 +- .../development/iteration_cadences.yml | 8 + .../feature_flags/development/jobs_table_vue.yml | 2 +- config/feature_flags/development/labels_widget.yml | 8 + .../development/limit_projects_in_groups_api.yml | 8 - .../development/load_balancing_atomic_replica.yml | 8 - .../load_balancing_for_build_hooks_worker.yml | 8 - .../load_balancing_for_build_queue_worker.yml | 8 + .../load_balancing_for_bulk_cron_workers.yml | 8 - ..._balancing_for_expire_pipeline_cache_worker.yml | 8 + .../load_balancing_for_pipeline_hooks_worker.yml | 8 + .../load_balancing_for_pipeline_process_worker.yml | 8 - .../load_balancing_for_web_hook_worker.yml | 8 + .../development/main_branch_over_master.yml | 2 +- .../development/managed_alerts_deprecation.yml | 8 + ...en_metadata_by_path_with_optimization_fence.yml | 8 - .../merge_base_pipeline_for_metrics_comparison.yml | 8 - .../mrc_api_use_raw_diffs_from_gitaly.yml | 1 + .../notification_setting_recipient_refactor.yml | 8 - .../development/optimize_linkable_attributes.yml | 8 - .../development/optimize_merge_request_parser.yml | 8 + .../packages_finder_helper_deploy_token.yml | 8 - ...ic_project_authorization_update_via_replica.yml | 8 - .../development/pick_into_project.yml | 8 - .../development/postgres_hll_batch_counting.yml | 8 - ...load_associations_jobs_request_api_endpoint.yml | 2 +- .../development/prevent_retry_of_retried_jobs.yml | 8 + .../push_rules_supersede_code_owners.yml | 1 + .../read_container_registry_access_level.yml | 8 + ...t_template_jobs_browser_performance_testing.yml | 8 + ...ect_to_latest_template_security_api_fuzzing.yml | 8 + .../redirect_to_latest_template_security_dast.yml | 8 + .../redirect_to_latest_template_terraform.yml | 8 + ..._latest_template_verify_browser_performance.yml | 8 + .../development/release_mr_issue_urls.yml | 8 - .../development/releases_index_apollo_client.yml | 8 + .../development/runner_graphql_query.yml | 1 + .../development/runner_list_view_vue_ui.yml | 8 + .../development/runners_cached_states.yml | 8 - .../development/s3_multithreaded_uploads.yml | 2 +- .../development/security_ci_lint_authorization.yml | 8 + .../security_configuration_redesign.yml | 8 + ...curity_dast_site_profiles_additional_fields.yml | 8 - .../security_dast_site_profiles_api_option.yml | 8 - .../show_relevant_approval_rule_approvers.yml | 2 +- .../feature_flags/development/sidebar_refactor.yml | 2 +- ...iq_load_balancing_rotate_up_to_date_replica.yml | 8 + ..._project_authorization_project_share_worker.yml | 8 - .../specialized_project_authorization_workers.yml | 8 - .../ssh_key_expiration_email_notification.yml | 8 - .../development/sync_traversal_ids.yml | 1 + .../development/unified_diff_components.yml | 1 + ...ing_group_code_coverage_project_click_total.yml | 8 - ...horing_unique_users_pushing_mr_ciconfigfile.yml | 8 - ...age_data_p_terraform_state_api_unique_users.yml | 8 - .../usage_data_track_ecosystem_jira_service.yml | 8 - ...e_data_unique_users_committing_ciconfigfile.yml | 8 - ...e_distinct_in_register_job_object_hierarchy.yml | 2 +- .../development/use_distinct_in_shas_cte.yml | 4 +- ...lized_worker_for_project_auth_recalculation.yml | 8 + .../use_traversal_ids_for_root_ancestor.yml | 8 + .../validate_import_decompressed_archive_size.yml | 2 +- .../feature_flags/development/vue_admin_users.yml | 8 - config/feature_flags/development/webauthn.yml | 2 +- .../development/wiki_content_editor.yml | 7 - .../experiment/ci_runner_templates.yml | 8 + ...pty_project_version_a_experiment_percentage.yml | 8 - config/feature_flags/ops/ci_accept_trace.yml | 2 +- .../ops/ci_queueing_disaster_recovery.yml | 2 +- .../ops/ci_trace_log_invalid_chunks.yml | 2 +- config/feature_flags/ops/ci_trace_overwrite.yml | 8 - .../ops/dedicated_redis_trace_chunks.yml | 8 + config/feature_flags/ops/dynamic_nonce.yml | 8 + config/gitlab.yml.example | 15 +- config/initializers/0_acts_as_taggable.rb | 4 + config/initializers/1_settings.rb | 11 +- config/initializers/6_labkit_middleware.rb | 20 + config/initializers/7_prometheus_metrics.rb | 8 +- config/initializers/7_redis.rb | 1 + .../action_dispatch_journey_formatter.rb | 19 - config/initializers/action_view.rb | 7 + .../active_record_keyset_pagination.rb | 12 + config/initializers/active_record_ping.rb | 7 - .../active_record_postgresql_adapter.rb | 9 + .../cluster_events_before_phased_restart.rb | 8 +- config/initializers/flipper.rb | 6 + config/initializers/gitlab_experiment.rb | 9 + config/initializers/global_id.rb | 3 + config/initializers/hangouts_chat_http_override.rb | 27 +- config/initializers/labkit_middleware.rb | 36 - config/initializers/load_balancing.rb | 30 +- config/initializers/macos.rb | 2 +- config/initializers/mailer_retries.rb | 41 + config/initializers/peek.rb | 6 + config/initializers/puma_client_tempfile_patch.rb | 101 - config/initializers/rack_timeout.rb | 1 - config/initializers/rbtrace.rb | 4 +- config/initializers/tracing.rb | 2 +- .../000_inflections.rb | 1 + config/metrics/aggregates/code_review.yml | 6 + .../counts_28d/20210216175542_ci_builds.yml | 2 +- .../20210216175544_ci_external_pipelines.yml | 3 +- .../20210216175546_ci_internal_pipelines.yml | 2 +- ...0210216175550_ci_pipeline_config_repository.yml | 2 +- .../20210216175552_ci_pipeline_schedules.yml | 2 +- .../counts_28d/20210216175554_ci_pipelines.yml | 2 +- .../counts_28d/20210216175556_ci_triggers.yml | 2 +- .../20210216180308_personal_snippets.yml | 3 +- .../counts_28d/20210216180310_project_snippets.yml | 3 +- .../metrics/counts_28d/20210216180312_snippets.yml | 1 - .../metrics/counts_28d/20210216180317_snippets.yml | 6 +- ...19_action_monthly_active_users_web_ide_edit.yml | 8 +- ...180321_action_monthly_active_users_sfe_edit.yml | 8 +- ...on_monthly_active_users_snippet_editor_edit.yml | 10 +- ...180325_action_monthly_active_users_sse_edit.yml | 10 +- ...180327_action_monthly_active_users_ide_edit.yml | 8 +- .../20210216180330_g_edit_by_web_ide_monthly.yml | 8 +- .../20210216180334_g_edit_by_sfe_monthly.yml | 8 +- ...0210216180338_g_edit_by_snippet_ide_monthly.yml | 8 +- ...180341_ide_edit_total_unique_counts_monthly.yml | 8 +- ...tion_monthly_active_users_design_management.yml | 12 +- ...80747_action_monthly_active_users_wiki_repo.yml | 10 +- .../metrics/counts_28d/20210216180816_groups.yml | 14 +- .../counts_28d/20210216180818_users_created.yml | 11 +- .../counts_28d/20210216180820_ldap_keys.yml | 16 - .../counts_28d/20210216180822_ldap_users.yml | 16 - ...10216180955_projects_with_prometheus_alerts.yml | 3 +- .../metrics/counts_28d/20210216181050_packages.yml | 10 +- .../20210216181057_projects_with_packages.yml | 10 +- ...210216181508_i_quickactions_approve_monthly.yml | 5 +- .../20210216183627_omniauth_providers.yml | 15 +- .../counts_28d/20210216183629_two-factor.yml | 15 +- .../20210216183631_two-factor-via-u2f-device.yml | 15 +- ...210216183633_two-factor-via-webauthn-device.yml | 15 +- .../metrics/counts_28d/20210216183634_standard.yml | 15 +- .../counts_28d/20210216183636_google_oauth2.yml | 15 +- .../20210216183638_unique_users_all_imports.yml | 14 +- .../counts_28d/20210216183644_gitlab_project.yml | 12 +- .../metrics/counts_28d/20210216183646_gitlab.yml | 14 +- .../metrics/counts_28d/20210216183648_github.yml | 18 +- .../counts_28d/20210216183650_bitbucket.yml | 18 +- .../counts_28d/20210216183652_bitbucket_server.yml | 18 +- config/metrics/counts_28d/20210216183653_gitea.yml | 16 +- config/metrics/counts_28d/20210216183655_git.yml | 14 +- .../metrics/counts_28d/20210216183657_manifest.yml | 12 +- .../counts_28d/20210216183659_gitlab_migration.yml | 12 +- .../counts_28d/20210216183709_group_import.yml | 18 +- .../counts_28d/20210216183720_bitbucket.yml | 16 +- .../counts_28d/20210216183722_bitbucket_server.yml | 14 +- .../counts_28d/20210216183737_groups_imported.yml | 6 +- .../20210216183828_dependency_scanning_scans.yml | 16 - .../20210216184024_g_edit_by_sse_monthly.yml | 14 +- .../20210216184255_i_snippets_show_monthly.yml | 14 +- ...nique_users_committing_ciconfigfile_monthly.yml | 14 +- ...59_ci_templates_total_unique_counts_monthly.yml | 18 +- ...806_i_package_composer_deploy_token_monthly.yml | 14 +- ...184810_i_package_conan_deploy_token_monthly.yml | 14 +- ...14_i_package_container_deploy_token_monthly.yml | 16 +- ...84818_i_package_debian_deploy_token_monthly.yml | 16 +- ...4822_i_package_generic_deploy_token_monthly.yml | 17 +- ...84826_i_package_golang_deploy_token_monthly.yml | 16 +- ...184830_i_package_maven_deploy_token_monthly.yml | 14 +- ...16184834_i_package_npm_deploy_token_monthly.yml | 14 +- ...184838_i_package_nuget_deploy_token_monthly.yml | 14 +- ...6184842_i_package_pypi_deploy_token_monthly.yml | 15 +- ...16184846_i_package_tag_deploy_token_monthly.yml | 16 +- ..._token_packages_total_unique_counts_monthly.yml | 14 +- ...10216184854_i_package_composer_user_monthly.yml | 14 +- ...20210216184858_i_package_conan_user_monthly.yml | 14 +- ...0216184902_i_package_container_user_monthly.yml | 16 +- ...0210216184906_i_package_debian_user_monthly.yml | 16 +- ...210216184910_i_package_generic_user_monthly.yml | 17 +- ...0210216184913_i_package_golang_user_monthly.yml | 16 +- ...20210216184917_i_package_maven_user_monthly.yml | 14 +- .../20210216184921_i_package_npm_user_monthly.yml | 14 +- ...20210216184925_i_package_nuget_user_monthly.yml | 14 +- .../20210216184929_i_package_pypi_user_monthly.yml | 14 +- .../20210216184933_i_package_tag_user_monthly.yml | 16 +- ...7_user_packages_total_unique_counts_monthly.yml | 14 +- ..._ecosystem_jira_service_close_issue_monthly.yml | 14 +- ...system_jira_service_cross_reference_monthly.yml | 14 +- ..._ecosystem_jira_service_list_issues_monthly.yml | 16 - ...ecosystem_jira_service_create_issue_monthly.yml | 16 - ...84957_ecosystem_total_unique_counts_monthly.yml | 14 +- ...626_i_package_rubygems_deploy_token_monthly.yml | 3 +- ...10303154654_i_package_rubygems_user_monthly.yml | 2 +- ...rs_expanding_secure_security_report_monthly.yml | 2 +- ...panding_testing_code_quality_report_monthly.yml | 2 +- ...anding_testing_accessibility_report_monthly.yml | 2 +- ...ckage_terraform_module_deploy_token_monthly.yml | 2 +- ...208_i_package_terraform_module_user_monthly.yml | 2 +- ...5507_i_testing_summary_widget_total_monthly.yml | 2 +- ...view_click_single_file_mode_setting_monthly.yml | 2 +- ...e_review_click_file_browser_setting_monthly.yml | 2 +- ...ode_review_click_whitespace_setting_monthly.yml | 2 +- ...1516_i_code_review_diff_view_inline_monthly.yml | 2 +- ...13_i_code_review_diff_view_parallel_monthly.yml | 2 +- ..._code_review_file_browser_tree_view_monthly.yml | 2 +- ..._code_review_file_browser_list_view_monthly.yml | 2 +- ..._i_code_review_diff_show_whitespace_monthly.yml | 2 +- ..._i_code_review_diff_hide_whitespace_monthly.yml | 2 +- ...2121_i_code_review_diff_single_file_monthly.yml | 2 +- ...2_i_code_review_diff_multiple_files_monthly.yml | 2 +- ...8_code_review_category_monthly_active_users.yml | 2 +- ...iew_extension_category_monthly_active_users.yml | 2 +- ...3119_code_review_group_monthly_active_users.yml | 2 +- ...eline_authoring_total_unique_counts_monthly.yml | 2 +- ...0210427213346_geo_secondary_web_oauth_users.yml | 2 +- ...i_code_review_user_resolve_conflict_monthly.yml | 21 + ...i_code_review_user_load_conflict_ui_monthly.yml | 21 + .../20210514141518_monthly_projects_creation.yml | 20 + ...7074859_i_package_helm_deploy_token_monthly.yml | 20 + .../20210517075259_i_package_helm_user_monthly.yml | 20 + config/metrics/counts_28d/20210520111133_total.yml | 20 + ...code_review_click_diff_view_setting_monthly.yml | 19 + .../20210216180328_g_edit_by_web_ide_weekly.yml | 18 + .../20210216180332_g_edit_by_sfe_weekly.yml | 18 + ...20210216180336_g_edit_by_snippet_ide_weekly.yml | 18 + ...6180339_ide_edit_total_unique_counts_weekly.yml | 18 + ...0210216181506_i_quickactions_approve_weekly.yml | 5 +- .../20210216184022_g_edit_by_sse_weekly.yml | 18 + .../20210216184253_i_snippets_show_weekly.yml | 18 + ...unique_users_committing_ciconfigfile_weekly.yml | 18 + ...557_ci_templates_total_unique_counts_weekly.yml | 20 + ...4805_i_package_composer_deploy_token_weekly.yml | 18 + ...6184808_i_package_conan_deploy_token_weekly.yml | 18 + ...812_i_package_container_deploy_token_weekly.yml | 18 + ...184816_i_package_debian_deploy_token_weekly.yml | 18 + ...84820_i_package_generic_deploy_token_weekly.yml | 18 + ...184824_i_package_golang_deploy_token_weekly.yml | 18 + ...6184828_i_package_maven_deploy_token_weekly.yml | 18 + ...216184832_i_package_npm_deploy_token_weekly.yml | 18 + ...6184836_i_package_nuget_deploy_token_weekly.yml | 18 + ...16184840_i_package_pypi_deploy_token_weekly.yml | 18 + ...216184844_i_package_tag_deploy_token_weekly.yml | 18 + ...y_token_packages_total_unique_counts_weekly.yml | 18 + ...210216184852_i_package_composer_user_weekly.yml | 18 + .../20210216184856_i_package_conan_user_weekly.yml | 18 + ...10216184900_i_package_container_user_weekly.yml | 18 + ...20210216184904_i_package_debian_user_weekly.yml | 18 + ...0210216184908_i_package_generic_user_weekly.yml | 19 + ...20210216184911_i_package_golang_user_weekly.yml | 18 + .../20210216184916_i_package_maven_user_weekly.yml | 18 + .../20210216184919_i_package_npm_user_weekly.yml | 18 + .../20210216184923_i_package_nuget_user_weekly.yml | 18 + .../20210216184927_i_package_pypi_user_weekly.yml | 18 + .../20210216184931_i_package_tag_user_weekly.yml | 18 + ...35_user_packages_total_unique_counts_weekly.yml | 18 + ...i_ecosystem_jira_service_close_issue_weekly.yml | 18 + ...osystem_jira_service_cross_reference_weekly.yml | 18 + ...184955_ecosystem_total_unique_counts_weekly.yml | 18 + ...4624_i_package_rubygems_deploy_token_weekly.yml | 2 +- ...210303154652_i_package_rubygems_user_weekly.yml | 3 +- ...ers_expanding_secure_security_report_weekly.yml | 2 +- ...xpanding_testing_code_quality_report_weekly.yml | 2 +- ...panding_testing_accessibility_report_weekly.yml | 2 +- ...ackage_terraform_module_deploy_token_weekly.yml | 2 +- ...2209_i_package_terraform_module_user_weekly.yml | 2 +- ...05507_i_testing_summary_widget_total_weekly.yml | 2 +- ...eview_click_single_file_mode_setting_weekly.yml | 2 +- ...de_review_click_file_browser_setting_weekly.yml | 2 +- ...code_review_click_whitespace_setting_weekly.yml | 2 +- ...01512_i_code_review_diff_view_inline_weekly.yml | 2 +- ...609_i_code_review_diff_view_parallel_weekly.yml | 2 +- ...i_code_review_file_browser_tree_view_weekly.yml | 2 +- ...i_code_review_file_browser_list_view_weekly.yml | 2 +- ...5_i_code_review_diff_show_whitespace_weekly.yml | 2 +- ...7_i_code_review_diff_hide_whitespace_weekly.yml | 2 +- ...02118_i_code_review_diff_single_file_weekly.yml | 2 +- ...59_i_code_review_diff_multiple_files_weekly.yml | 2 +- ...3328_code_review_group_monthly_active_users.yml | 2 +- ...7_code_review_category_monthly_active_users.yml | 2 +- ...iew_extension_category_monthly_active_users.yml | 2 +- ...peline_authoring_total_unique_counts_weekly.yml | 2 +- ..._i_code_review_user_load_conflict_ui_weekly.yml | 21 + ..._i_code_review_user_resolve_conflict_weekly.yml | 21 + ...17074851_i_package_helm_deploy_token_weekly.yml | 20 + .../20210517075252_i_package_helm_user_weekly.yml | 20 + ..._code_review_click_diff_view_setting_weekly.yml | 19 + .../counts_all/20210216174826_ldap_users.yml | 19 - .../20210216174832_cycle_analytics_views.yml | 8 +- ...10216175019_projects_with_prometheus_alerts.yml | 5 +- .../20210216175021_pod_logs_usages_total.yml | 5 +- ...0210216175024_service_desk_enabled_projects.yml | 1 - .../20210216175026_service_desk_issues.yml | 1 - .../20210216175028_requirements_created.yml | 16 - ...10216175403_projects_with_prometheus_alerts.yml | 3 +- ...75442_ingress_modsecurity_packets_processed.yml | 3 +- ...75444_ingress_modsecurity_packets_anomalous.yml | 3 +- .../20210216175450_ingress_modsecurity_logging.yml | 3 +- ...20210216175452_ingress_modsecurity_blocking.yml | 3 +- ...20210216175454_ingress_modsecurity_disabled.yml | 3 +- ...216175456_ingress_modsecurity_not_installed.yml | 3 +- .../counts_all/20210216175510_ci_builds.yml | 2 +- .../20210216175512_ci_internal_pipelines.yml | 2 +- .../20210216175514_ci_external_pipelines.yml | 2 +- ...0210216175518_ci_pipeline_config_repository.yml | 2 +- .../counts_all/20210216175520_ci_runners.yml | 2 +- .../counts_all/20210216175521_ci_triggers.yml | 2 +- .../20210216175523_ci_pipeline_schedules.yml | 2 +- .../counts_all/20210216175525_ci_builds.yml | 2 +- .../20210216175527_ci_external_pipelines.yml | 2 +- .../20210216175529_ci_internal_pipelines.yml | 2 +- ...0210216175533_ci_pipeline_config_repository.yml | 2 +- .../20210216175535_ci_pipeline_schedules.yml | 2 +- .../counts_all/20210216175537_ci_pipelines.yml | 2 +- .../counts_all/20210216175539_ci_triggers.yml | 2 +- .../20210216175623_projects_asana_active.yml | 1 - .../20210216175625_groups_asana_active.yml | 1 - .../20210216175627_templates_asana_active.yml | 1 - .../20210216175628_instances_asana_active.yml | 1 - ...0216175630_projects_inheriting_asana_active.yml | 1 - ...210216175632_groups_inheriting_asana_active.yml | 1 - .../20210216175634_projects_assembla_active.yml | 1 - .../20210216175636_groups_assembla_active.yml | 1 - .../20210216175638_templates_assembla_active.yml | 1 - .../20210216175640_instances_assembla_active.yml | 1 - ...6175642_projects_inheriting_assembla_active.yml | 1 - ...216175644_groups_inheriting_assembla_active.yml | 1 - .../20210216175645_projects_bamboo_active.yml | 1 - .../20210216175647_groups_bamboo_active.yml | 1 - .../20210216175649_templates_bamboo_active.yml | 1 - .../20210216175651_instances_bamboo_active.yml | 1 - ...216175653_projects_inheriting_bamboo_active.yml | 1 - ...10216175655_groups_inheriting_bamboo_active.yml | 1 - .../20210216175657_projects_bugzilla_active.yml | 1 - .../20210216175659_groups_bugzilla_active.yml | 1 - .../20210216175701_templates_bugzilla_active.yml | 1 - .../20210216175702_instances_bugzilla_active.yml | 1 - ...6175704_projects_inheriting_bugzilla_active.yml | 1 - ...216175706_groups_inheriting_bugzilla_active.yml | 1 - .../20210216175708_projects_buildkite_active.yml | 1 - .../20210216175710_groups_buildkite_active.yml | 1 - .../20210216175712_templates_buildkite_active.yml | 1 - .../20210216175714_instances_buildkite_active.yml | 1 - ...175716_projects_inheriting_buildkite_active.yml | 1 - ...16175717_groups_inheriting_buildkite_active.yml | 1 - .../20210216175719_projects_campfire_active.yml | 1 - .../20210216175721_groups_campfire_active.yml | 1 - .../20210216175723_templates_campfire_active.yml | 1 - .../20210216175725_instances_campfire_active.yml | 1 - ...6175727_projects_inheriting_campfire_active.yml | 1 - ...216175729_groups_inheriting_campfire_active.yml | 1 - .../20210216175731_projects_confluence_active.yml | 1 - .../20210216175733_groups_confluence_active.yml | 1 - .../20210216175734_templates_confluence_active.yml | 1 - .../20210216175736_instances_confluence_active.yml | 1 - ...75738_projects_inheriting_confluence_active.yml | 1 - ...6175740_groups_inheriting_confluence_active.yml | 1 - ...175742_projects_custom_issue_tracker_active.yml | 1 - ...16175744_groups_custom_issue_tracker_active.yml | 1 - ...75745_templates_custom_issue_tracker_active.yml | 1 - ...75747_instances_custom_issue_tracker_active.yml | 1 - ...ects_inheriting_custom_issue_tracker_active.yml | 1 - ...oups_inheriting_custom_issue_tracker_active.yml | 1 - .../20210216175753_projects_discord_active.yml | 1 - .../20210216175755_groups_discord_active.yml | 1 - .../20210216175756_templates_discord_active.yml | 1 - .../20210216175758_instances_discord_active.yml | 1 - ...16175800_projects_inheriting_discord_active.yml | 1 - ...0216175802_groups_inheriting_discord_active.yml | 1 - .../20210216175804_projects_drone_ci_active.yml | 1 - .../20210216175806_groups_drone_ci_active.yml | 1 - .../20210216175807_templates_drone_ci_active.yml | 1 - .../20210216175809_instances_drone_ci_active.yml | 1 - ...6175811_projects_inheriting_drone_ci_active.yml | 1 - ...216175813_groups_inheriting_drone_ci_active.yml | 1 - ...210216175815_projects_emails_on_push_active.yml | 1 - ...20210216175817_groups_emails_on_push_active.yml | 1 - ...10216175818_templates_emails_on_push_active.yml | 1 - ...10216175820_instances_emails_on_push_active.yml | 1 - ...2_projects_inheriting_emails_on_push_active.yml | 1 - ...824_groups_inheriting_emails_on_push_active.yml | 1 - ...0210216175826_projects_external_wiki_active.yml | 1 - .../20210216175828_groups_external_wiki_active.yml | 1 - ...210216175829_templates_external_wiki_active.yml | 1 - ...210216175831_instances_external_wiki_active.yml | 1 - ...33_projects_inheriting_external_wiki_active.yml | 1 - ...5835_groups_inheriting_external_wiki_active.yml | 1 - .../20210216175837_projects_flowdock_active.yml | 1 - .../20210216175839_groups_flowdock_active.yml | 1 - .../20210216175840_templates_flowdock_active.yml | 1 - .../20210216175842_instances_flowdock_active.yml | 1 - ...6175844_projects_inheriting_flowdock_active.yml | 1 - ...216175846_groups_inheriting_flowdock_active.yml | 1 - .../20210216175848_projects_github_active.yml | 19 - .../20210216175850_groups_github_active.yml | 19 - .../20210216175851_templates_github_active.yml | 19 - .../20210216175853_instances_github_active.yml | 19 - ...216175855_projects_inheriting_github_active.yml | 19 - ...10216175857_groups_inheriting_github_active.yml | 19 - ...0210216175859_projects_hangouts_chat_active.yml | 1 - .../20210216175901_groups_hangouts_chat_active.yml | 1 - ...210216175902_templates_hangouts_chat_active.yml | 1 - ...210216175904_instances_hangouts_chat_active.yml | 1 - ...06_projects_inheriting_hangouts_chat_active.yml | 1 - ...5908_groups_inheriting_hangouts_chat_active.yml | 1 - .../20210216175910_projects_hipchat_active.yml | 1 - .../20210216175912_groups_hipchat_active.yml | 1 - .../20210216175913_templates_hipchat_active.yml | 1 - .../20210216175915_instances_hipchat_active.yml | 1 - ...16175917_projects_inheriting_hipchat_active.yml | 1 - ...0216175919_groups_inheriting_hipchat_active.yml | 1 - .../20210216175921_projects_irker_active.yml | 1 - .../20210216175923_groups_irker_active.yml | 1 - .../20210216175924_templates_irker_active.yml | 1 - .../20210216175926_instances_irker_active.yml | 1 - ...0216175928_projects_inheriting_irker_active.yml | 1 - ...210216175930_groups_inheriting_irker_active.yml | 1 - .../20210216175932_projects_jenkins_active.yml | 1 - .../20210216175934_groups_jenkins_active.yml | 1 - .../20210216175935_templates_jenkins_active.yml | 1 - .../20210216175937_instances_jenkins_active.yml | 1 - ...16175939_projects_inheriting_jenkins_active.yml | 1 - ...0216175941_groups_inheriting_jenkins_active.yml | 1 - .../20210216175943_projects_jira_active.yml | 1 - .../20210216175945_groups_jira_active.yml | 1 - .../20210216175946_templates_jira_active.yml | 1 - .../20210216175948_instances_jira_active.yml | 1 - ...10216175950_projects_inheriting_jira_active.yml | 1 - ...0210216175952_groups_inheriting_jira_active.yml | 1 - .../20210216175954_projects_mattermost_active.yml | 1 - .../20210216175956_groups_mattermost_active.yml | 1 - .../20210216175957_templates_mattermost_active.yml | 1 - .../20210216175959_instances_mattermost_active.yml | 1 - ...80001_projects_inheriting_mattermost_active.yml | 1 - ...6180003_groups_inheriting_mattermost_active.yml | 1 - ...5_projects_mattermost_slash_commands_active.yml | 1 - ...006_groups_mattermost_slash_commands_active.yml | 1 - ..._templates_mattermost_slash_commands_active.yml | 1 - ..._instances_mattermost_slash_commands_active.yml | 1 - ...inheriting_mattermost_slash_commands_active.yml | 1 - ...inheriting_mattermost_slash_commands_active.yml | 1 - ...10216180016_projects_microsoft_teams_active.yml | 1 - ...0210216180018_groups_microsoft_teams_active.yml | 1 - ...0216180019_templates_microsoft_teams_active.yml | 1 - ...0216180021_instances_microsoft_teams_active.yml | 1 - ..._projects_inheriting_microsoft_teams_active.yml | 1 - ...25_groups_inheriting_microsoft_teams_active.yml | 1 - .../20210216180027_projects_packagist_active.yml | 1 - .../20210216180029_groups_packagist_active.yml | 1 - .../20210216180030_templates_packagist_active.yml | 1 - .../20210216180032_instances_packagist_active.yml | 1 - ...180034_projects_inheriting_packagist_active.yml | 1 - ...16180036_groups_inheriting_packagist_active.yml | 1 - ...10216180038_projects_pipelines_email_active.yml | 1 - ...0210216180040_groups_pipelines_email_active.yml | 1 - ...0216180041_templates_pipelines_email_active.yml | 1 - ...0216180043_instances_pipelines_email_active.yml | 1 - ..._projects_inheriting_pipelines_email_active.yml | 1 - ...47_groups_inheriting_pipelines_email_active.yml | 1 - ...210216180049_projects_pivotaltracker_active.yml | 1 - ...20210216180051_groups_pivotaltracker_active.yml | 1 - ...10216180052_templates_pivotaltracker_active.yml | 1 - ...10216180054_instances_pivotaltracker_active.yml | 1 - ...6_projects_inheriting_pivotaltracker_active.yml | 1 - ...058_groups_inheriting_pivotaltracker_active.yml | 1 - .../20210216180100_projects_pushover_active.yml | 1 - .../20210216180102_groups_pushover_active.yml | 1 - .../20210216180104_templates_pushover_active.yml | 1 - .../20210216180105_instances_pushover_active.yml | 1 - ...6180107_projects_inheriting_pushover_active.yml | 1 - ...216180109_groups_inheriting_pushover_active.yml | 1 - .../20210216180111_projects_redmine_active.yml | 1 - .../20210216180113_groups_redmine_active.yml | 1 - .../20210216180115_templates_redmine_active.yml | 1 - .../20210216180116_instances_redmine_active.yml | 1 - ...16180118_projects_inheriting_redmine_active.yml | 1 - ...0216180120_groups_inheriting_redmine_active.yml | 1 - .../20210216180122_projects_slack_active.yml | 1 - .../20210216180124_groups_slack_active.yml | 1 - .../20210216180126_templates_slack_active.yml | 1 - .../20210216180127_instances_slack_active.yml | 1 - ...0216180129_projects_inheriting_slack_active.yml | 1 - ...210216180131_groups_inheriting_slack_active.yml | 1 - ...180133_projects_slack_slash_commands_active.yml | 1 - ...16180135_groups_slack_slash_commands_active.yml | 1 - ...80137_templates_slack_slash_commands_active.yml | 1 - ...80138_instances_slack_slash_commands_active.yml | 1 - ...ects_inheriting_slack_slash_commands_active.yml | 1 - ...oups_inheriting_slack_slash_commands_active.yml | 1 - .../20210216180144_projects_teamcity_active.yml | 1 - .../20210216180146_groups_teamcity_active.yml | 1 - .../20210216180148_templates_teamcity_active.yml | 1 - .../20210216180149_instances_teamcity_active.yml | 1 - ...6180151_projects_inheriting_teamcity_active.yml | 1 - ...216180153_groups_inheriting_teamcity_active.yml | 1 - ...0210216180155_projects_unify_circuit_active.yml | 1 - .../20210216180157_groups_unify_circuit_active.yml | 1 - ...210216180159_templates_unify_circuit_active.yml | 1 - ...210216180201_instances_unify_circuit_active.yml | 1 - ...03_projects_inheriting_unify_circuit_active.yml | 1 - ...0204_groups_inheriting_unify_circuit_active.yml | 1 - .../20210216180206_projects_webex_teams_active.yml | 1 - .../20210216180208_groups_webex_teams_active.yml | 1 - ...20210216180210_templates_webex_teams_active.yml | 1 - ...20210216180212_instances_webex_teams_active.yml | 1 - ...0214_projects_inheriting_webex_teams_active.yml | 1 - ...180215_groups_inheriting_webex_teams_active.yml | 1 - .../20210216180217_projects_youtrack_active.yml | 1 - .../20210216180219_groups_youtrack_active.yml | 1 - .../20210216180221_templates_youtrack_active.yml | 1 - .../20210216180223_instances_youtrack_active.yml | 1 - ...6180225_projects_inheriting_youtrack_active.yml | 1 - ...216180226_groups_inheriting_youtrack_active.yml | 1 - .../20210216180228_projects_jira_server_active.yml | 1 - .../20210216180230_projects_jira_cloud_active.yml | 1 - ...10216180232_projects_jira_dvcs_cloud_active.yml | 1 - ...0216180234_projects_jira_dvcs_server_active.yml | 1 - .../20210216180239_personal_snippets.yml | 3 +- .../counts_all/20210216180241_project_snippets.yml | 3 +- .../counts_all/20210216180242_web_ide_commits.yml | 5 +- .../counts_all/20210216180244_web_ide_views.yml | 5 +- .../20210216180246_web_ide_merge_requests.yml | 5 +- .../counts_all/20210216180248_web_ide_previews.yml | 5 +- .../20210216180250_web_ide_terminals.yml | 5 +- .../20210216180252_web_ide_pipelines.yml | 5 +- .../counts_all/20210216180253_snippet_comment.yml | 3 +- .../counts_all/20210216180255_snippet_create.yml | 3 +- .../counts_all/20210216180257_snippet_update.yml | 3 +- .../20210216180259_static_site_editor_views.yml | 5 +- .../20210216180301_static_site_editor_commits.yml | 8 +- ...216180303_static_site_editor_merge_requests.yml | 6 +- ...180304_user_preferences_user_gitpod_enabled.yml | 5 +- .../metrics/counts_all/20210216180306_snippets.yml | 1 - .../metrics/counts_all/20210216180316_snippets.yml | 6 +- .../20210216180453_projects_creating_incidents.yml | 2 +- .../counts_all/20210216180638_gitlab_project.yml | 6 +- .../metrics/counts_all/20210216180639_gitlab.yml | 6 +- .../metrics/counts_all/20210216180641_github.yml | 6 +- .../counts_all/20210216180643_bitbucket.yml | 6 +- .../counts_all/20210216180645_bitbucket_server.yml | 6 +- config/metrics/counts_all/20210216180647_gitea.yml | 6 +- config/metrics/counts_all/20210216180649_git.yml | 6 +- .../metrics/counts_all/20210216180650_manifest.yml | 6 +- .../counts_all/20210216180652_gitlab_migration.yml | 6 +- .../20210216180734_wiki_pages_create.yml | 10 +- .../20210216180736_wiki_pages_update.yml | 10 +- .../20210216180738_wiki_pages_delete.yml | 10 +- ...0216180740_design_management_designs_create.yml | 12 +- ...0216180741_design_management_designs_update.yml | 12 +- ...0216180743_design_management_designs_delete.yml | 12 +- .../metrics/counts_all/20210216180750_groups.yml | 5 +- config/metrics/counts_all/20210216180752_keys.yml | 10 +- .../metrics/counts_all/20210216180756_groups.yml | 14 +- .../counts_all/20210216180758_users_created.yml | 12 +- .../counts_all/20210216180800_ldap_keys.yml | 16 - .../counts_all/20210216180801_ldap_users.yml | 16 - .../counts_all/20210216181009_lfs_objects.yml | 4 +- .../20210216181011_projects_with_packages.yml | 11 +- .../metrics/counts_all/20210216181012_packages.yml | 10 +- ...14_projects_with_expiration_policy_disabled.yml | 8 +- ...016_projects_with_expiration_policy_enabled.yml | 8 +- ...iration_policy_enabled_with_keep_n_set_to_1.yml | 18 + ...iration_policy_enabled_with_keep_n_set_to_5.yml | 18 + ...ration_policy_enabled_with_keep_n_set_to_10.yml | 18 + ...ration_policy_enabled_with_keep_n_set_to_25.yml | 18 + ...ration_policy_enabled_with_keep_n_set_to_50.yml | 18 + ...ation_policy_enabled_with_keep_n_set_to_100.yml | 18 + ...ation_policy_enabled_with_cadence_set_to_1d.yml | 8 +- ...ation_policy_enabled_with_cadence_set_to_7d.yml | 8 +- ...tion_policy_enabled_with_cadence_set_to_14d.yml | 8 +- ...n_policy_enabled_with_cadence_set_to_1month.yml | 8 +- ...n_policy_enabled_with_cadence_set_to_3month.yml | 8 +- ...on_policy_enabled_with_older_than_set_to_7d.yml | 8 +- ...n_policy_enabled_with_older_than_set_to_14d.yml | 8 +- ...n_policy_enabled_with_older_than_set_to_30d.yml | 8 +- ...n_policy_enabled_with_older_than_set_to_90d.yml | 8 +- ...expiration_policy_enabled_with_keep_n_unset.yml | 18 + ...ration_policy_enabled_with_older_than_unset.yml | 8 +- .../metrics/counts_all/20210216181051_vendor.yml | 11 +- .../20210216181055_projects_with_packages.yml | 10 +- .../20210216181259_jira_imports_projects_count.yml | 2 +- .../20210216182547_projects_datadog_active.yml | 14 +- .../20210216182549_groups_datadog_active.yml | 14 +- .../20210216182551_templates_datadog_active.yml | 14 +- .../20210216182553_instances_datadog_active.yml | 14 +- ...16182555_projects_inheriting_datadog_active.yml | 14 +- ...0216182557_groups_inheriting_datadog_active.yml | 14 +- .../20210216182614_projects_ewm_active.yml | 14 +- .../20210216182616_groups_ewm_active.yml | 14 +- .../20210216182618_templates_ewm_active.yml | 14 +- .../20210216182620_instances_ewm_active.yml | 14 +- ...210216182622_projects_inheriting_ewm_active.yml | 14 +- ...20210216182623_groups_inheriting_ewm_active.yml | 14 +- .../20210216182722_projects_mock_ci_active.yml | 17 +- .../20210216182724_groups_mock_ci_active.yml | 17 +- .../20210216182726_templates_mock_ci_active.yml | 17 +- .../20210216182728_instances_mock_ci_active.yml | 17 +- ...16182730_projects_inheriting_mock_ci_active.yml | 17 +- ...0216182732_groups_inheriting_mock_ci_active.yml | 17 +- ...10216182734_projects_mock_monitoring_active.yml | 17 +- ...0210216182736_groups_mock_monitoring_active.yml | 17 +- ...0216182738_templates_mock_monitoring_active.yml | 17 +- ...0216182739_instances_mock_monitoring_active.yml | 17 +- ..._projects_inheriting_mock_monitoring_active.yml | 17 +- ...43_groups_inheriting_mock_monitoring_active.yml | 17 +- ...ge_events_i_package_composer_delete_package.yml | 16 +- ...kage_events_i_package_composer_pull_package.yml | 16 +- ...kage_events_i_package_composer_push_package.yml | 16 +- ...ckage_events_i_package_conan_delete_package.yml | 16 +- ...package_events_i_package_conan_pull_package.yml | 16 +- ...package_events_i_package_conan_push_package.yml | 16 +- ...e_events_i_package_container_delete_package.yml | 18 +- ...age_events_i_package_container_pull_package.yml | 18 +- ...age_events_i_package_container_push_package.yml | 18 +- ...kage_events_i_package_debian_delete_package.yml | 16 +- ...ackage_events_i_package_debian_pull_package.yml | 16 +- ...ackage_events_i_package_debian_push_package.yml | 18 +- ...919_package_events_i_package_delete_package.yml | 16 +- ...ts_i_package_delete_package_by_deploy_token.yml | 16 +- ...ge_events_i_package_delete_package_by_guest.yml | 16 +- ...age_events_i_package_delete_package_by_user.yml | 16 +- ...age_events_i_package_generic_delete_package.yml | 16 +- ...ckage_events_i_package_generic_pull_package.yml | 16 +- ...ckage_events_i_package_generic_push_package.yml | 16 +- ...kage_events_i_package_golang_delete_package.yml | 16 +- ...ackage_events_i_package_golang_pull_package.yml | 16 +- ...ackage_events_i_package_golang_push_package.yml | 16 +- ...ckage_events_i_package_maven_delete_package.yml | 16 +- ...package_events_i_package_maven_pull_package.yml | 16 +- ...package_events_i_package_maven_push_package.yml | 16 +- ...package_events_i_package_npm_delete_package.yml | 16 +- ...6_package_events_i_package_npm_pull_package.yml | 16 +- ...8_package_events_i_package_npm_push_package.yml | 16 +- ...ckage_events_i_package_nuget_delete_package.yml | 16 +- ...package_events_i_package_nuget_pull_package.yml | 16 +- ...package_events_i_package_nuget_push_package.yml | 16 +- ...82956_package_events_i_package_pull_package.yml | 16 +- ...ents_i_package_pull_package_by_deploy_token.yml | 16 +- ...kage_events_i_package_pull_package_by_guest.yml | 16 +- ...ckage_events_i_package_pull_package_by_user.yml | 16 +- ...83004_package_events_i_package_push_package.yml | 16 +- ...ents_i_package_push_package_by_deploy_token.yml | 16 +- ...kage_events_i_package_push_package_by_guest.yml | 16 +- ...ckage_events_i_package_push_package_by_user.yml | 16 +- ...ackage_events_i_package_pypi_delete_package.yml | 16 +- ..._package_events_i_package_pypi_pull_package.yml | 16 +- ..._package_events_i_package_pypi_push_package.yml | 16 +- ...package_events_i_package_tag_delete_package.yml | 18 +- ...9_package_events_i_package_tag_pull_package.yml | 18 +- ...1_package_events_i_package_tag_push_package.yml | 18 +- .../20210216183400_omniauth_providers.yml | 15 +- .../counts_all/20210216183402_two-factor.yml | 15 +- .../20210216183404_two-factor-via-u2f-device.yml | 15 +- ...210216183406_two-factor-via-webauthn-device.yml | 15 +- .../metrics/counts_all/20210216183408_standard.yml | 15 +- .../counts_all/20210216183410_google_oauth2.yml | 15 +- ...s_i_package_terraform_module_delete_package.yml | 2 +- ...nts_i_package_terraform_module_pull_package.yml | 2 +- ...nts_i_package_terraform_module_push_package.yml | 2 +- ...20210423005644_i_analytics_dev_ops_adoption.yml | 2 +- ...0210427212450_geo_secondary_web_oauth_users.yml | 2 +- ...ers_viewing_analytics_group_devops_adoption.yml | 2 +- ...10502045402_ci_runners_instance_type_active.yml | 4 +- ...20210502050341_ci_runners_group_type_active.yml | 4 +- ...210502050834_ci_runners_project_type_active.yml | 4 +- .../20210502050942_ci_runners_online.yml | 4 +- ...1651_ci_runners_instance_type_active_online.yml | 4 +- ...2051922_ci_runners_group_type_active_online.yml | 4 +- ...52036_ci_runners_project_type_active_online.yml | 4 +- ...37_in_product_marketing_email_create_0_sent.yml | 2 +- ...roduct_marketing_email_create_0_cta_clicked.yml | 2 +- ...48_in_product_marketing_email_create_1_sent.yml | 2 +- ...roduct_marketing_email_create_1_cta_clicked.yml | 2 +- ...04_in_product_marketing_email_create_2_sent.yml | 2 +- ...roduct_marketing_email_create_2_cta_clicked.yml | 2 +- ...07_in_product_marketing_email_verify_0_sent.yml | 2 +- ...roduct_marketing_email_verify_0_cta_clicked.yml | 2 +- ...55_in_product_marketing_email_verify_1_sent.yml | 2 +- ...roduct_marketing_email_verify_1_cta_clicked.yml | 2 +- ...15_in_product_marketing_email_verify_2_sent.yml | 2 +- ...roduct_marketing_email_verify_2_cta_clicked.yml | 2 +- ...035_in_product_marketing_email_trial_0_sent.yml | 2 +- ...product_marketing_email_trial_0_cta_clicked.yml | 2 +- ...054_in_product_marketing_email_trial_1_sent.yml | 2 +- ...product_marketing_email_trial_1_cta_clicked.yml | 2 +- ...114_in_product_marketing_email_trial_2_sent.yml | 2 +- ...product_marketing_email_trial_2_cta_clicked.yml | 2 +- ...3134_in_product_marketing_email_team_0_sent.yml | 2 +- ..._product_marketing_email_team_0_cta_clicked.yml | 2 +- ...3153_in_product_marketing_email_team_1_sent.yml | 2 +- ..._product_marketing_email_team_1_cta_clicked.yml | 2 +- ...3213_in_product_marketing_email_team_2_sent.yml | 2 +- ..._product_marketing_email_team_2_cta_clicked.yml | 2 +- .../20210514141520_project_imports_total.yml | 20 + ..._package_events_i_package_helm_pull_package.yml | 20 + ...n_product_marketing_email_experience_0_sent.yml | 21 + config/metrics/license/20210204124827_hostname.yml | 1 - .../license/20210204124829_active_user_count.yml | 4 +- .../20210204124854_license_management_jobs.yml | 17 - .../20210204124926_license_trial_ends_on.yml | 16 - config/metrics/license/20210216181053_version.yml | 8 +- config/metrics/license/20210216183237_version.yml | 12 +- .../metrics/objects_schemas/topology_schema.json | 2 +- config/metrics/schema.json | 29 +- .../20210204124858_container_registry_enabled.yml | 14 +- .../20210204124900_dependency_proxy_enabled.yml | 14 +- .../settings/20210204124904_gravatar_enabled.yml | 13 +- .../settings/20210204124908_mattermost_enabled.yml | 12 +- .../settings/20210204124912_prometheus_enabled.yml | 4 +- .../20210204124914_prometheus_metrics_enabled.yml | 4 +- .../20210204124916_reply_by_email_enabled.yml | 14 +- ...04124920_web_ide_clientside_preview_enabled.yml | 14 +- .../20210216175459_ingress_modsecurity_enabled.yml | 3 +- .../settings/20210216180314_gitpod_enabled.yml | 5 +- config/metrics/settings/20210216180836_enabled.yml | 3 +- config/metrics/settings/20210216180838_enabled.yml | 3 +- .../settings/20210216180840_direct_upload.yml | 3 +- .../settings/20210216180841_background_upload.yml | 3 +- .../metrics/settings/20210216180843_provider.yml | 5 +- config/metrics/settings/20210216180845_enabled.yml | 3 +- config/metrics/settings/20210216180847_enabled.yml | 3 +- .../settings/20210216180849_direct_upload.yml | 3 +- .../settings/20210216180851_background_upload.yml | 3 +- .../metrics/settings/20210216180852_provider.yml | 5 +- config/metrics/settings/20210216180854_enabled.yml | 3 +- config/metrics/settings/20210216180856_enabled.yml | 3 +- .../settings/20210216180858_direct_upload.yml | 3 +- .../settings/20210216180900_background_upload.yml | 3 +- .../metrics/settings/20210216180902_provider.yml | 5 +- config/metrics/settings/20210216180903_enabled.yml | 5 +- config/metrics/settings/20210216180905_enabled.yml | 3 +- .../settings/20210216180907_direct_upload.yml | 3 +- .../settings/20210216180909_background_upload.yml | 3 +- .../metrics/settings/20210216180911_provider.yml | 5 +- config/metrics/settings/20210216180913_enabled.yml | 3 +- config/metrics/settings/20210216180915_enabled.yml | 3 +- .../settings/20210216180916_direct_upload.yml | 3 +- .../settings/20210216180918_background_upload.yml | 3 +- .../metrics/settings/20210216180920_provider.yml | 5 +- .../settings/20210321224827_gitaly_apdex.yml | 2 +- config/redis.trace_chunks.yml.example | 38 + config/routes.rb | 48 +- config/routes/admin.rb | 20 +- config/routes/project.rb | 25 +- config/routes/repository.rb | 67 +- config/routes/repository_deprecated.rb | 36 + config/routes/repository_scoped.rb | 41 - config/routes/user.rb | 1 - config/sidekiq_queues.yml | 20 +- config/unicorn.rb.example | 144 -- config/unicorn.rb.example.development | 77 - danger/commit_messages/Dangerfile | 147 -- danger/feature_flag/Dangerfile | 10 +- danger/plugins/product_intelligence.rb | 10 + danger/product_intelligence/Dangerfile | 82 +- danger/roulette/Dangerfile | 33 +- db/fixtures/production/002_admin.rb | 6 +- .../20210331000934_add_config_to_ci_runners.rb | 7 + ...version_of_ci_build_trace_sections_to_bigint.rb | 16 + ...tate_and_started_at_to_mr_diff_details_table.rb | 10 + ...eate_packages_debian_group_distribution_keys.rb | 37 + ...te_packages_debian_project_distribution_keys.rb | 37 + ..._indexes_to_merge_request_diff_details_table.rb | 26 + ...reate_vulnerability_finding_evidence_headers.rb | 29 + ...07191949_add_remove_on_issue_close_to_labels.rb | 8 +- ...10510083845_add_sha_to_status_check_response.rb | 13 + ...5250_add_foreign_key_to_lfs_objects_projects.rb | 19 + .../20210512120122_add_pending_builds_table.rb | 15 + ...0517130723_make_snapshot_segment_id_optional.rb | 11 + .../20210517144856_require_snapshot_namespace.rb | 19 + ...o_merge_requests_author_approval_on_projects.rb | 17 + ...e_conversion_of_ci_builds_metadata_to_bigint.rb | 16 + ...2039_group_protected_environments_add_column.rb | 15 + ..._initialize_conversion_of_taggings_to_bigint.rb | 16 + ...3440_backfill_taggings_for_bigint_conversion.rb | 16 + ...20_drop_devops_adoption_namespace_uniqueness.rb | 23 + ...itialize_conversion_of_deployments_to_bigint.rb | 16 + ...5_backfill_deployments_for_bigint_conversion.rb | 16 + ...of_geo_job_artifact_deleted_events_to_bigint.rb | 16 + ...rtifact_deleted_events_for_bigint_conversion.rb | 16 + ...eline_id_into_vulnerability_statistics_table.rb | 7 + ...526135911_create_ci_minutes_additional_packs.rb | 25 + ...security_report_approval_rules_sidekiq_queue.rb | 15 + ...lnerability_statistics_on_latest_pipeline_id.rb | 17 + ...n_key_for_latest_pipeline_id_to_ci_pipelines.rb | 17 + ...ly_pipeline_schedule_triggers_to_plan_limits.rb | 7 + ...daily_pipeline_schedule_triggers_plan_limits.rb | 26 + ..._add_index_for_cadence_iterations_automation.rb | 17 + ...experiment_subjects_group_id_to_namespace_id.rb | 15 + ...9_add_diff_max_lines_to_application_settings.rb | 11 + ...9_add_diff_max_files_to_application_settings.rb | 11 + ...oups_outside_hierarchy_to_namespace_settings.rb | 17 + ...4558_create_ci_job_token_project_scope_links.rb | 24 + ...247_change_iterations_title_uniqueness_index.rb | 20 + ...3916_rename_instance_statistics_measurements.rb | 13 + ...531070452_default_enforce_ssh_key_expiration.rb | 7 + ...0531071107_enable_enforce_ssh_key_expiration.rb | 15 + ...tected_environments_add_index_and_constraint.rb | 35 + .../20210601123341_add_running_builds_table.rb | 17 + .../20210601125410_add_runners_created_at_index.rb | 20 + .../20210601131742_update_web_hook_calls_limit.rb | 17 + ...601133459_replace_runners_contacted_at_index.rb | 26 + .../20210602122213_add_upcoming_reconciliations.rb | 23 + ...20210602122233_add_runners_description_index.rb | 17 + .../20210603140302_add_pronouns_to_user_details.rb | 20 + ...33_remove_builds_email_service_from_services.rb | 11 + ...04082145_create_external_status_checks_table.rb | 42 + ..._rename_status_check_responses_approval_rule.rb | 34 + ...0531_add_text_limit_to_user_details_pronouns.rb | 15 + ...temporary_index_on_security_findings_scan_id.rb | 18 + ...dd_job_token_scope_enabled_to_ci_cd_settings.rb | 17 + ...initialize_conversion_of_ci_stages_to_bigint.rb | 16 + ...346_backfill_ci_stages_for_bigint_conversion.rb | 16 + ...ique_index_for_batched_background_migrations.rb | 28 + ...856_add_expiry_id_ssh_key_notification_index.rb | 20 + ...heck_foreign_key_to_external_status_check_id.rb | 17 + ...tus_check_foreign_key_to_protected_branch_id.rb | 17 + ...10_add_protected_attribute_to_pending_builds.rb | 7 + ...uild_index_for_cadence_iterations_automation.rb | 39 + ..._detection_method_to_vulnerabilities_finding.rb | 17 + ...20190527194900_schedule_calculate_wiki_sizes.rb | 10 +- ...ra_tracker_data_deployment_type_based_on_url.rb | 26 + ...lculate_uuid_on_vulnerabilities_occurrences2.rb | 37 + ...i_build_trace_sections_for_bigint_conversion.rb | 16 + ...ontainer_registry_enabled_to_project_feature.rb | 36 + ...hedule_cleanup_orphaned_lfs_objects_projects.rb | 27 + ...ation_policies_linked_to_no_container_images.rb | 29 + ...fill_clusters_integration_prometheus_enabled.rb | 42 + ...ill_ci_builds_metadata_for_bigint_conversion.rb | 16 + ...ill_escalation_policies_for_oncall_schedules.rb | 89 + ...2430_backfill_pk_conversion_for_self_managed.rb | 44 + ...20210525075724_clean_up_pending_builds_table.rb | 28 + ...210526160133_remove_segment_selections_table.rb | 26 + ...2715_backfill_draft_status_on_merge_requests.rb | 17 + ...experiment_subjects_group_id_to_namespace_id.rb | 15 + ...lize_rename_instance_statistics_measurements.rb | 13 + .../20210601073400_fix_total_stage_in_vsa.rb | 27 + .../20210604070207_retry_backfill_traversal_ids.rb | 21 + ...dd_index_for_container_registry_access_level.rb | 36 + ...609125005_drop_non_partitioned_web_hook_logs.rb | 43 + ...igrate_protected_attribute_to_pending_builds.rb | 26 + ...113229_add_index_to_protected_pending_builds.rb | 17 + ...ation_policies_linked_to_no_container_images.rb | 32 + .../20210611080951_fix_missing_traversal_ids.rb | 48 + db/schema_migrations/20210331000934 | 1 + db/schema_migrations/20210421163509 | 1 + db/schema_migrations/20210426225417 | 1 + db/schema_migrations/20210430121522 | 1 + db/schema_migrations/20210430121542 | 1 + db/schema_migrations/20210504143128 | 1 + db/schema_migrations/20210505070612 | 1 + db/schema_migrations/20210505070812 | 1 + db/schema_migrations/20210505170152 | 1 + db/schema_migrations/20210506150833 | 1 + db/schema_migrations/20210510083845 | 1 + db/schema_migrations/20210511165250 | 1 + db/schema_migrations/20210512120122 | 1 + db/schema_migrations/20210513163904 | 1 + db/schema_migrations/20210514063252 | 1 + db/schema_migrations/20210517130723 | 1 + db/schema_migrations/20210517144856 | 1 + db/schema_migrations/20210517221612 | 1 + db/schema_migrations/20210518074332 | 1 + db/schema_migrations/20210519104931 | 1 + db/schema_migrations/20210519132109 | 1 + db/schema_migrations/20210519132129 | 1 + db/schema_migrations/20210519220019 | 1 + db/schema_migrations/20210520012430 | 1 + db/schema_migrations/20210520102039 | 1 + db/schema_migrations/20210520133032 | 1 + db/schema_migrations/20210520133440 | 1 + db/schema_migrations/20210521073920 | 1 + db/schema_migrations/20210525075724 | 1 + db/schema_migrations/20210525085158 | 1 + db/schema_migrations/20210525085325 | 1 + db/schema_migrations/20210525100539 | 1 + db/schema_migrations/20210525100603 | 1 + db/schema_migrations/20210525184900 | 1 + db/schema_migrations/20210526135911 | 1 + db/schema_migrations/20210526155257 | 1 + db/schema_migrations/20210526160133 | 1 + db/schema_migrations/20210526181820 | 1 + db/schema_migrations/20210526181821 | 1 + db/schema_migrations/20210526190259 | 1 + db/schema_migrations/20210526190553 | 1 + db/schema_migrations/20210526222715 | 1 + db/schema_migrations/20210527065005 | 1 + db/schema_migrations/20210527130524 | 1 + db/schema_migrations/20210527131039 | 1 + db/schema_migrations/20210527133919 | 1 + db/schema_migrations/20210527134019 | 1 + db/schema_migrations/20210527185542 | 1 + db/schema_migrations/20210527194558 | 1 + db/schema_migrations/20210529164247 | 1 + db/schema_migrations/20210531053916 | 1 + db/schema_migrations/20210531054108 | 1 + db/schema_migrations/20210531070452 | 1 + db/schema_migrations/20210531071107 | 1 + db/schema_migrations/20210601073400 | 1 + db/schema_migrations/20210601080039 | 1 + db/schema_migrations/20210601123341 | 1 + db/schema_migrations/20210601125410 | 1 + db/schema_migrations/20210601131742 | 1 + db/schema_migrations/20210601133459 | 1 + db/schema_migrations/20210602122213 | 1 + db/schema_migrations/20210602122233 | 1 + db/schema_migrations/20210603140302 | 1 + db/schema_migrations/20210603222333 | 1 + db/schema_migrations/20210604070207 | 1 + db/schema_migrations/20210604082145 | 1 + db/schema_migrations/20210604085600 | 1 + db/schema_migrations/20210606143426 | 1 + db/schema_migrations/20210607050531 | 1 + db/schema_migrations/20210607080044 | 1 + db/schema_migrations/20210607154719 | 1 + db/schema_migrations/20210608072312 | 1 + db/schema_migrations/20210608072346 | 1 + db/schema_migrations/20210609013512 | 1 + db/schema_migrations/20210609090856 | 1 + db/schema_migrations/20210609125005 | 1 + db/schema_migrations/20210609192728 | 1 + db/schema_migrations/20210609193101 | 1 + db/schema_migrations/20210610102410 | 1 + db/schema_migrations/20210610102413 | 1 + db/schema_migrations/20210610113229 | 1 + db/schema_migrations/20210610141711 | 1 + db/schema_migrations/20210611080951 | 1 + db/schema_migrations/20210611100359 | 1 + db/schema_migrations/20210614131002 | 1 + db/structure.sql | 696 ++++-- doc/.vale/gitlab/Acronyms.yml | 19 +- doc/.vale/gitlab/SubstitutionWarning.yml | 12 + doc/.vale/gitlab/Substitutions.yml | 2 +- doc/.vale/gitlab/spelling-exceptions.txt | 7 +- doc/administration/audit_events.md | 53 +- doc/administration/audit_reports.md | 4 +- doc/administration/auth/ldap/index.md | 212 +- .../auth/ldap/ldap-troubleshooting.md | 89 +- doc/administration/auth/okta.md | 1 + doc/administration/clusters/kas.md | 2 +- doc/administration/compliance.md | 36 +- doc/administration/configure.md | 16 + doc/administration/consul.md | 21 +- doc/administration/database_load_balancing.md | 55 +- doc/administration/environment_variables.md | 4 +- doc/administration/external_pipeline_validation.md | 19 +- doc/administration/feature_flags.md | 5 +- doc/administration/file_hooks.md | 11 +- doc/administration/geo/disaster_recovery/index.md | 27 +- .../geo/disaster_recovery/planned_failover.md | 24 +- doc/administration/geo/index.md | 25 +- doc/administration/geo/replication/datatypes.md | 60 +- doc/administration/geo/replication/faq.md | 10 +- .../geo/replication/geo_validation_tests.md | 4 +- .../geo/replication/multiple_servers.md | 48 +- .../geo/replication/remove_geo_node.md | 1 + .../geo/replication/security_review.md | 2 +- .../geo/replication/troubleshooting.md | 87 +- .../geo/replication/using_a_geo_server.md | 1 + .../geo/replication/version_specific_updates.md | 10 + doc/administration/geo/setup/database.md | 232 +- doc/administration/geo/setup/external_database.md | 41 +- doc/administration/git_annex.md | 1 + doc/administration/gitaly/configure_gitaly.md | 3 +- doc/administration/gitaly/faq.md | 90 + doc/administration/gitaly/index.md | 184 +- doc/administration/gitaly/praefect.md | 160 +- doc/administration/incoming_email.md | 13 +- doc/administration/index.md | 5 +- doc/administration/instance_limits.md | 83 +- doc/administration/integration/kroki.md | 25 +- doc/administration/integration/plantuml.md | 2 +- doc/administration/integration/terminal.md | 13 +- doc/administration/issue_closing_pattern.md | 2 +- doc/administration/job_artifacts.md | 4 +- doc/administration/job_logs.md | 12 +- doc/administration/libravatar.md | 4 +- doc/administration/load_balancer.md | 2 +- doc/administration/logs.md | 81 +- doc/administration/maintenance_mode/index.md | 30 +- .../gitlab_self_monitoring_project/index.md | 13 +- .../monitoring/performance/gitlab_configuration.md | 3 +- .../performance/grafana_configuration.md | 7 +- doc/administration/monitoring/performance/index.md | 1 - .../monitoring/performance/performance_bar.md | 23 +- .../monitoring/performance/request_profiling.md | 2 +- .../monitoring/prometheus/gitlab_metrics.md | 31 +- doc/administration/monitoring/prometheus/index.md | 34 +- doc/administration/nfs.md | 11 +- doc/administration/object_storage.md | 186 +- .../operations/cleaning_up_redis_sessions.md | 2 +- .../operations/extra_sidekiq_processes.md | 127 +- .../operations/extra_sidekiq_routing.md | 164 ++ .../operations/fast_ssh_key_lookup.md | 17 +- .../operations/filesystem_benchmarking.md | 2 +- doc/administration/operations/index.md | 4 +- doc/administration/operations/puma.md | 7 +- .../operations/sidekiq_memory_killer.md | 16 +- doc/administration/operations/ssh_certificates.md | 2 +- doc/administration/operations/unicorn.md | 116 +- doc/administration/packages/container_registry.md | 105 +- doc/administration/packages/dependency_proxy.md | 17 + doc/administration/pages/index.md | 118 +- doc/administration/polling.md | 2 +- doc/administration/postgresql/external.md | 4 + .../postgresql/img/pg_ha_architecture.png | Bin 18412 -> 18308 bytes doc/administration/postgresql/index.md | 2 +- doc/administration/postgresql/pgbouncer.md | 2 +- .../postgresql/replication_and_failover.md | 535 +---- doc/administration/postgresql/standalone.md | 15 +- doc/administration/pseudonymizer.md | 2 +- doc/administration/raketasks/check.md | 42 +- doc/administration/read_only_gitlab.md | 10 +- .../redis/replication_and_failover.md | 62 +- .../redis/replication_and_failover_external.md | 22 +- .../reference_architectures/10k_users.md | 483 ++-- .../reference_architectures/25k_users.md | 430 ++-- .../reference_architectures/2k_users.md | 136 +- .../reference_architectures/3k_users.md | 366 +-- .../reference_architectures/50k_users.md | 423 ++-- .../reference_architectures/5k_users.md | 356 +-- .../reference_architectures/index.md | 4 +- .../reference_architectures/troubleshooting.md | 207 +- doc/administration/reply_by_email_postfix_setup.md | 2 +- doc/administration/repository_checks.md | 9 +- doc/administration/repository_storage_paths.md | 13 +- doc/administration/repository_storage_types.md | 4 +- doc/administration/sidekiq.md | 5 +- doc/administration/smime_signing_email.md | 2 +- .../static_objects_external_storage.md | 3 +- doc/administration/terraform_state.md | 2 +- doc/administration/timezone.md | 2 +- doc/administration/troubleshooting/debug.md | 29 +- doc/administration/troubleshooting/defcon.md | 20 +- .../troubleshooting/diagnostics_tools.md | 2 +- .../troubleshooting/gitlab_rails_cheat_sheet.md | 134 +- .../troubleshooting/group_saml_scim.md | 4 + .../img/azure_configure_group_claim.png | Bin 0 -> 45870 bytes doc/administration/troubleshooting/index.md | 2 +- .../troubleshooting/kubernetes_cheat_sheet.md | 4 +- .../troubleshooting/linux_cheat_sheet.md | 6 +- doc/administration/troubleshooting/log_parsing.md | 2 +- .../navigating_gitlab_via_rails_console.md | 4 +- doc/administration/troubleshooting/postgresql.md | 3 +- doc/administration/troubleshooting/sidekiq.md | 2 +- doc/administration/troubleshooting/ssl.md | 2 +- .../troubleshooting/test_environments.md | 2 +- .../troubleshooting/tracing_correlation_id.md | 2 +- doc/administration/whats-new.md | 3 +- doc/api/README.md | 11 +- doc/api/applications.md | 4 +- doc/api/audit_events.md | 2 + doc/api/boards.md | 3 +- doc/api/broadcast_messages.md | 11 +- doc/api/commits.md | 18 +- doc/api/container_registry.md | 30 +- doc/api/custom_attributes.md | 3 +- doc/api/dependency_proxy.md | 3 +- doc/api/deploy_keys.md | 13 +- doc/api/deploy_tokens.md | 14 +- doc/api/deployments.md | 100 +- doc/api/discussions.md | 24 +- doc/api/dora/metrics.md | 35 +- doc/api/dora4_group_analytics.md | 1 + doc/api/environments.md | 6 +- doc/api/feature_flag_specs.md | 292 +-- doc/api/feature_flags_legacy.md | 314 +-- doc/api/graphql/getting_started.md | 127 +- doc/api/graphql/index.md | 7 +- doc/api/graphql/reference/index.md | 1026 +++++--- doc/api/graphql/removed_items.md | 26 + doc/api/group_badges.md | 7 +- doc/api/group_clusters.md | 2 +- doc/api/group_import_export.md | 7 +- doc/api/group_labels.md | 7 +- doc/api/group_level_variables.md | 11 +- doc/api/group_protected_environments.md | 154 ++ doc/api/group_relations_export.md | 6 +- doc/api/group_repository_storage_moves.md | 12 +- doc/api/group_wikis.md | 9 +- doc/api/groups.md | 124 +- doc/api/instance_level_ci_variables.md | 8 +- doc/api/invitations.md | 9 +- doc/api/issues.md | 5 +- doc/api/job_artifacts.md | 16 +- doc/api/jobs.md | 44 +- doc/api/labels.md | 35 +- doc/api/lint.md | 19 +- doc/api/managed_licenses.md | 3 +- doc/api/members.md | 7 +- doc/api/merge_request_approvals.md | 156 +- doc/api/merge_requests.md | 23 + doc/api/merge_trains.md | 2 +- doc/api/notification_settings.md | 4 +- doc/api/oauth2.md | 3 +- doc/api/packages/composer.md | 11 +- doc/api/packages/nuget.md | 2 +- doc/api/packages/pypi.md | 77 +- doc/api/pages_domains.md | 23 +- doc/api/pipeline_schedules.md | 40 +- doc/api/pipeline_triggers.md | 10 +- doc/api/pipelines.md | 24 +- doc/api/project_aliases.md | 10 +- doc/api/project_badges.md | 4 +- doc/api/project_clusters.md | 21 +- doc/api/project_import_export.md | 35 +- doc/api/project_level_variables.md | 8 +- doc/api/project_repository_storage_moves.md | 6 +- doc/api/project_snippets.md | 8 +- doc/api/projects.md | 248 +- doc/api/protected_branches.md | 28 +- doc/api/protected_environments.md | 5 +- doc/api/protected_tags.md | 2 +- doc/api/releases/index.md | 3 +- doc/api/releases/links.md | 4 +- doc/api/remote_mirrors.md | 3 +- doc/api/repositories.md | 5 + doc/api/repository_files.md | 29 +- doc/api/resource_access_tokens.md | 16 +- doc/api/resource_label_events.md | 7 +- doc/api/runners.md | 40 +- doc/api/scim.md | 18 +- doc/api/search.md | 9 +- doc/api/services.md | 4 +- doc/api/settings.md | 7 +- doc/api/snippet_repository_storage_moves.md | 12 +- doc/api/status_checks.md | 201 ++ doc/api/suggestions.md | 2 + doc/api/system_hooks.md | 6 +- doc/api/tags.md | 85 +- doc/api/templates/dockerfiles.md | 4 - doc/api/templates/gitlab_ci_ymls.md | 2 +- doc/api/todos.md | 3 + doc/api/users.md | 57 +- doc/api/vulnerability_exports.md | 14 +- doc/api/wikis.md | 15 +- .../ci_scale/ci_builds_cumulative_forecast.png | Bin 36221 -> 19274 bytes .../ci_scale/ci_builds_daily_forecast.png | Bin 29472 -> 11550 bytes doc/architecture/blueprints/ci_scale/index.md | 10 +- .../index.md | 614 +++++ .../container_registry_metadata_database/index.md | 6 +- doc/ci/README.md | 4 +- doc/ci/caching/index.md | 114 +- doc/ci/chatops/README.md | 1 + .../bitbucket_integration.md | 2 +- .../ci_cd_for_external_repos/github_integration.md | 2 +- doc/ci/ci_cd_for_external_repos/index.md | 2 +- doc/ci/directed_acyclic_graph/index.md | 2 +- doc/ci/docker/README.md | 1 + doc/ci/docker/index.md | 2 +- doc/ci/docker/using_docker_build.md | 9 +- doc/ci/docker/using_docker_images.md | 4 + doc/ci/docker/using_kaniko.md | 8 +- doc/ci/enable_or_disable_ci.md | 2 +- doc/ci/environments/deployment_safety.md | 4 +- doc/ci/environments/environments_dashboard.md | 4 +- doc/ci/environments/index.md | 32 +- doc/ci/environments/protected_environments.md | 136 +- doc/ci/examples/README.md | 6 +- .../authenticating-with-hashicorp-vault/index.md | 5 + .../laravel_with_gitlab_and_envoy/index.md | 22 +- doc/ci/examples/php.md | 2 +- ...test-and-deploy-python-application-to-heroku.md | 1 + .../test-and-deploy-ruby-application-to-heroku.md | 1 + doc/ci/examples/test-clojure-application.md | 1 + doc/ci/git_submodules.md | 4 +- doc/ci/interactive_web_terminal/index.md | 2 +- doc/ci/introduction/index.md | 2 +- doc/ci/jobs/index.md | 6 +- doc/ci/jobs/job_control.md | 391 +++- doc/ci/large_repositories/index.md | 16 +- doc/ci/merge_request_pipelines/index.md | 18 +- .../pipelines_for_merged_results/index.md | 4 +- .../merge_trains/index.md | 7 +- doc/ci/migration/circleci.md | 14 +- doc/ci/migration/jenkins.md | 20 +- doc/ci/multi_project_pipelines.md | 2 +- doc/ci/parent_child_pipelines.md | 4 +- doc/ci/pipelines/index.md | 13 +- doc/ci/pipelines/job_artifacts.md | 12 +- doc/ci/pipelines/pipeline_architectures.md | 4 +- doc/ci/pipelines/pipeline_artifacts.md | 13 +- doc/ci/pipelines/pipeline_efficiency.md | 4 +- doc/ci/pipelines/schedules.md | 23 +- doc/ci/pipelines/settings.md | 26 +- doc/ci/quick_start/README.md | 1 + doc/ci/quick_start/index.md | 18 +- doc/ci/review_apps/index.md | 2 +- doc/ci/runners/README.md | 1037 ++------- doc/ci/runners/configure_runners.md | 601 +++++ doc/ci/runners/runners_scope.md | 251 ++ doc/ci/services/README.md | 1 + doc/ci/services/gitlab.md | 2 +- doc/ci/ssh_keys/README.md | 1 + doc/ci/ssh_keys/index.md | 2 +- doc/ci/triggers/README.md | 38 +- doc/ci/troubleshooting.md | 8 +- doc/ci/unit_test_reports.md | 23 +- doc/ci/variables/README.md | 258 +-- doc/ci/variables/predefined_variables.md | 6 +- doc/ci/variables/where_variables_can_be_used.md | 11 +- doc/ci/yaml/README.md | 623 ++--- doc/ci/yaml/gitlab_ci_yaml.md | 2 +- doc/ci/yaml/includes.md | 22 +- doc/ci/yaml/script.md | 2 +- doc/development/README.md | 4 +- doc/development/api_graphql_styleguide.md | 41 +- doc/development/api_styleguide.md | 8 +- doc/development/application_limits.md | 2 +- doc/development/appsec/index.md | 2 +- doc/development/architecture.md | 81 +- doc/development/auto_devops.md | 8 +- doc/development/background_migrations.md | 115 +- doc/development/changelog.md | 333 +-- doc/development/chaos_endpoints.md | 19 +- .../cicd/cicd_reference_documentation_guide.md | 2 +- doc/development/cicd/index.md | 22 +- doc/development/cicd/templates.md | 20 + doc/development/code_review.md | 8 +- doc/development/contributing/index.md | 2 +- doc/development/contributing/issue_workflow.md | 10 +- .../contributing/merge_request_workflow.md | 14 +- doc/development/dangerbot.md | 2 +- doc/development/database/pagination_guidelines.md | 12 +- .../database/strings_and_the_text_data_type.md | 8 +- doc/development/db_dump.md | 2 +- doc/development/deprecation_guidelines/index.md | 5 + doc/development/diffs.md | 18 +- .../documentation/graphql_styleguide.md | 2 +- doc/development/documentation/index.md | 28 +- .../documentation/restful_api_styleguide.md | 18 +- .../site_architecture/deployment_process.md | 18 +- .../documentation/site_architecture/global_nav.md | 20 +- .../documentation/site_architecture/index.md | 16 +- .../site_architecture/release_process.md | 1 + doc/development/documentation/structure.md | 2 +- doc/development/documentation/styleguide/index.md | 85 +- .../documentation/styleguide/word_list.md | 163 ++ doc/development/documentation/testing.md | 27 +- doc/development/documentation/workflow.md | 6 +- doc/development/ee_features.md | 6 +- doc/development/elasticsearch.md | 31 +- doc/development/event_tracking/backend.md | 3 +- doc/development/event_tracking/frontend.md | 3 +- doc/development/event_tracking/index.md | 3 +- .../experiment_guide/experimentation.md | 5 +- .../experiment_guide/gitlab_experiment.md | 20 + doc/development/experiment_guide/index.md | 26 +- doc/development/fe_guide/accessibility.md | 50 +- doc/development/fe_guide/content_editor.md | 116 + doc/development/fe_guide/design_anti_patterns.md | 4 +- doc/development/fe_guide/editor_lite.md | 1 + doc/development/fe_guide/event_tracking.md | 3 +- doc/development/fe_guide/frontend_faq.md | 10 +- doc/development/fe_guide/graphql.md | 11 +- .../img/content_editor_highlevel_diagram.png | Bin 0 -> 47794 bytes doc/development/fe_guide/index.md | 5 + doc/development/fe_guide/style/vue.md | 9 +- doc/development/fe_guide/troubleshooting.md | 8 +- doc/development/fe_guide/vue.md | 44 +- doc/development/fe_guide/vuex.md | 3 +- doc/development/feature_flags/controls.md | 33 +- doc/development/feature_flags/development.md | 2 + doc/development/feature_flags/index.md | 12 +- doc/development/feature_flags/process.md | 1 + doc/development/file_storage.md | 2 +- doc/development/geo.md | 8 +- doc/development/go_guide/index.md | 2 +- doc/development/gotchas.md | 2 +- doc/development/graphql_guide/authorization.md | 2 +- doc/development/graphql_guide/pagination.md | 22 +- doc/development/i18n/externalization.md | 330 +-- doc/development/i18n/index.md | 53 +- doc/development/i18n/merging_translations.md | 53 +- doc/development/i18n/proofreader.md | 49 +- doc/development/i18n/translation.md | 104 +- doc/development/import_project.md | 2 +- doc/development/integrations/codesandbox.md | 2 +- doc/development/integrations/jenkins.md | 3 +- doc/development/integrations/secure.md | 2 +- .../integrations/secure_partner_integration.md | 4 +- doc/development/internal_api.md | 36 +- doc/development/jh_features_review.md | 6 + doc/development/kubernetes.md | 25 +- doc/development/licensing.md | 2 +- doc/development/logging.md | 6 +- doc/development/maintenance_mode.md | 4 +- .../merge_request_performance_guidelines.md | 10 +- doc/development/migration_style_guide.md | 42 +- doc/development/module_with_instance_variables.md | 14 +- doc/development/multi_version_compatibility.md | 133 +- doc/development/namespaces_storage_statistics.md | 4 +- doc/development/new_fe_guide/dependencies.md | 1 + .../new_fe_guide/development/performance.md | 2 +- .../new_fe_guide/modules/dirty_submit.md | 2 +- doc/development/packages.md | 6 +- doc/development/performance.md | 4 +- doc/development/permissions.md | 2 +- doc/development/pipelines.md | 49 +- doc/development/polymorphic_associations.md | 14 +- .../product_analytics/event_dictionary.md | 3 +- doc/development/product_analytics/index.md | 3 +- doc/development/profiling.md | 2 +- doc/development/prometheus_metrics.md | 2 +- doc/development/pry_debugging.md | 6 +- doc/development/query_recorder.md | 2 +- doc/development/rake_tasks.md | 6 +- doc/development/reactive_caching.md | 2 +- doc/development/real_time.md | 97 + doc/development/redis.md | 15 +- doc/development/reference_processing.md | 16 +- doc/development/reusing_abstractions.md | 6 +- doc/development/routing.md | 12 + doc/development/scalability.md | 8 +- doc/development/secure_coding_guidelines.md | 4 +- doc/development/sidekiq_style_guide.md | 68 + doc/development/single_table_inheritance.md | 39 + doc/development/snowplow.md | 2 + doc/development/snowplow/index.md | 130 +- doc/development/stage_group_dashboards.md | 59 +- doc/development/testing_guide/best_practices.md | 56 +- doc/development/testing_guide/ci.md | 4 +- .../testing_guide/end_to_end/beginners_guide.md | 6 +- .../testing_guide/end_to_end/feature_flags.md | 4 +- .../end_to_end/img/gl-capybara_V13_12.png | Bin 19201 -> 6777 bytes .../end_to_end/img/gl-chemlab_V13_12.png | Bin 17753 -> 6580 bytes doc/development/testing_guide/end_to_end/index.md | 7 +- .../running_tests_that_require_special_setup.md | 4 +- doc/development/testing_guide/flaky_tests.md | 6 +- doc/development/testing_guide/frontend_testing.md | 22 +- doc/development/testing_guide/review_apps.md | 16 +- doc/development/testing_guide/testing_levels.md | 4 +- .../testing_guide/testing_rake_tasks.md | 8 +- doc/development/understanding_explain_plans.md | 4 +- doc/development/uploads.md | 8 +- doc/development/usage_ping.md | 2 + doc/development/usage_ping/dictionary.md | 2408 ++++++++++--------- doc/development/usage_ping/index.md | 15 +- doc/development/usage_ping/metrics_dictionary.md | 35 +- .../usage_ping/metrics_instrumentation.md | 40 +- doc/development/utilities.md | 30 +- doc/development/what_requires_downtime.md | 1 + doc/development/wikis.md | 2 +- doc/downgrade_ee_to_ce/README.md | 1 + doc/downgrade_ee_to_ce/index.md | 6 +- doc/gitlab-basics/README.md | 1 + doc/gitlab-basics/add-file.md | 2 +- doc/gitlab-basics/create-branch.md | 4 +- doc/gitlab-basics/create-project.md | 1 + doc/gitlab-basics/create-your-ssh-keys.md | 1 + doc/gitlab-basics/fork-project.md | 1 + doc/gitlab-basics/start-using-git.md | 552 +++-- doc/install/README.md | 1 + doc/install/azure/index.md | 3 +- doc/install/google_cloud_platform/index.md | 4 +- doc/install/installation.md | 38 +- doc/install/next_steps.md | 46 +- doc/install/postgresql_extensions.md | 22 +- doc/install/relative_url.md | 4 +- doc/install/requirements.md | 104 +- doc/integration/README.md | 1 + doc/integration/akismet.md | 6 +- doc/integration/elasticsearch.md | 105 +- doc/integration/external-issue-tracker.md | 7 - doc/integration/gitpod.md | 3 +- doc/integration/google_workspace_saml.md | 1 + doc/integration/jira/dvcs.md | 16 +- doc/integration/jira_development_panel.md | 1 + doc/integration/kerberos.md | 32 +- doc/integration/oauth_provider.md | 15 +- doc/integration/omniauth.md | 4 +- doc/integration/saml.md | 4 +- doc/integration/slash_commands.md | 2 +- doc/integration/sourcegraph.md | 3 +- doc/intro/README.md | 1 + doc/legal/README.md | 1 + doc/legal/index.md | 2 +- doc/migrate_ci_to_ce/README.md | 462 +--- doc/operations/error_tracking.md | 8 +- doc/operations/feature_flags.md | 24 +- .../incident_management/alert_integrations.md | 1 + doc/operations/incident_management/alerts.md | 10 +- .../img/pagerduty_incidents_integration_v13_3.png | Bin 43318 -> 13288 bytes doc/operations/incident_management/incidents.md | 20 +- doc/operations/incident_management/integrations.md | 24 +- .../incident_management/oncall_schedules.md | 12 +- doc/operations/incident_management/paging.md | 6 +- doc/operations/incident_management/status_page.md | 11 +- doc/operations/index.md | 6 +- doc/operations/metrics/alerts.md | 32 +- .../metrics_dashboard_template_selection_v13_3.png | Bin 31905 -> 9033 bytes doc/operations/metrics/dashboards/index.md | 48 +- doc/operations/metrics/dashboards/settings.md | 4 +- doc/operations/metrics/embed_grafana.md | 2 +- doc/operations/metrics/index.md | 34 +- doc/operations/product_analytics.md | 2 +- doc/operations/tracing.md | 4 +- doc/policy/maintenance.md | 28 +- doc/push_rules/push_rules.md | 21 +- doc/raketasks/README.md | 1 + doc/raketasks/backup_restore.md | 12 +- doc/security/README.md | 4 +- doc/security/asset_proxy.md | 8 +- doc/security/cicd_environment_variables.md | 1 + doc/security/cicd_variables.md | 14 +- doc/security/crime_vulnerability.md | 4 +- doc/security/information_exclusivity.md | 2 +- doc/security/password_length_limits.md | 19 +- doc/security/password_storage.md | 25 +- ...swords_for_integrated_authentication_methods.md | 2 +- ...ject_import_decompressed_archive_size_limits.md | 6 +- doc/security/rack_attack.md | 2 +- doc/security/rate_limits.md | 2 +- doc/security/ssh_keys_restrictions.md | 15 +- doc/security/two_factor_authentication.md | 57 +- doc/security/unlock_user.md | 2 +- doc/security/user_email_confirmation.md | 10 +- doc/security/webhooks.md | 21 +- doc/subscriptions/bronze_starter.md | 6 +- doc/subscriptions/gitlab_com/index.md | 2 +- doc/subscriptions/img/license-file.png | Bin 0 -> 72190 bytes doc/subscriptions/img/license-overview.png | Bin 0 -> 38018 bytes doc/subscriptions/img/publicly-visible.png | Bin 0 -> 58946 bytes doc/subscriptions/img/support-diagram.png | Bin 0 -> 49941 bytes doc/subscriptions/index.md | 102 +- doc/subscriptions/self_managed/index.md | 30 +- doc/system_hooks/system_hooks.md | 2 +- doc/tools/email.md | 9 +- doc/topics/authentication/index.md | 12 +- doc/topics/autodevops/customize.md | 65 +- doc/topics/autodevops/index.md | 10 +- doc/topics/autodevops/quick_start_guide.md | 30 +- doc/topics/autodevops/requirements.md | 77 +- doc/topics/autodevops/stages.md | 130 +- .../upgrading_auto_deploy_dependencies.md | 20 +- doc/topics/build_your_application.md | 16 + doc/topics/git/bisect.md | 6 +- doc/topics/git/cherry_picking.md | 2 +- doc/topics/git/feature_branch_development.md | 12 +- doc/topics/git/feature_branching.md | 6 +- doc/topics/git/getting_started.md | 6 +- doc/topics/git/git_add.md | 6 +- doc/topics/git/git_log.md | 6 +- doc/topics/git/git_rebase.md | 19 +- doc/topics/git/lfs/index.md | 44 +- .../git/lfs/migrate_from_git_annex_to_git_lfs.md | 1 + doc/topics/git/lfs/migrate_to_git_lfs.md | 6 +- doc/topics/git/merge_conflicts.md | 6 +- doc/topics/git/merge_requests.md | 1 + .../img/rebase_reset.png | Bin 21836 -> 33399 bytes .../img/revert.png | Bin 13243 -> 21473 bytes .../numerous_undo_possibilities_in_git/index.md | 218 +- doc/topics/git/rollback_commits.md | 6 +- doc/topics/git/stash.md | 6 +- doc/topics/git/subtree.md | 6 +- doc/topics/git/tags.md | 2 +- doc/topics/git/unstage.md | 6 +- doc/topics/git/useful_git_commands.md | 7 +- doc/topics/gitlab_flow.md | 81 +- doc/topics/plan_and_track.md | 28 + doc/topics/release_your_application.md | 13 + doc/topics/set_up_organization.md | 16 + doc/topics/use_gitlab.md | 19 + doc/university/README.md | 1 + doc/university/index.md | 1 + doc/university/training/gitlab_flow.md | 1 + doc/university/training/index.md | 1 + doc/university/training/topics/agile_git.md | 1 + doc/university/training/topics/bisect.md | 1 + doc/university/training/topics/cherry_picking.md | 1 + doc/university/training/topics/env_setup.md | 1 + .../training/topics/feature_branching.md | 1 + doc/university/training/topics/getting_started.md | 1 + doc/university/training/topics/git_add.md | 1 + doc/university/training/topics/git_intro.md | 1 + doc/university/training/topics/git_log.md | 1 + doc/university/training/topics/merge_conflicts.md | 1 + doc/university/training/topics/merge_requests.md | 1 + doc/university/training/topics/rollback_commits.md | 1 + doc/university/training/topics/stash.md | 1 + doc/university/training/topics/subtree.md | 1 + doc/university/training/topics/tags.md | 1 + doc/university/training/topics/unstage.md | 1 + doc/university/training/user_training.md | 1 + doc/update/README.md | 1 + doc/update/index.md | 20 +- doc/update/mysql_to_postgresql.md | 8 +- doc/update/patch_versions.md | 2 +- doc/update/upgrading_from_ce_to_ee.md | 2 +- doc/update/upgrading_from_source.md | 20 +- doc/update/upgrading_postgresql_using_slony.md | 2 +- doc/user/abuse_reports.md | 1 + doc/user/admin_area/abuse_reports.md | 1 + .../admin_area/activating_deactivating_users.md | 1 + doc/user/admin_area/analytics/dev_ops_report.md | 61 +- .../analytics/img/admin_devops_adoption_v14_0.png | Bin 0 -> 52947 bytes .../instance_activity_pipelines_chart_v13_6_a.png | Bin 92540 -> 30831 bytes doc/user/admin_area/analytics/index.md | 15 +- doc/user/admin_area/analytics/usage_trends.md | 2 +- doc/user/admin_area/analytics/user_cohorts.md | 1 + doc/user/admin_area/appearance.md | 6 +- doc/user/admin_area/approving_users.md | 8 +- doc/user/admin_area/blocking_unblocking_users.md | 1 + doc/user/admin_area/broadcast_messages.md | 79 +- doc/user/admin_area/credentials_inventory.md | 9 +- doc/user/admin_area/custom_project_templates.md | 10 +- doc/user/admin_area/diff_limits.md | 32 +- doc/user/admin_area/geo_nodes.md | 2 +- doc/user/admin_area/img/cohorts_v13_9_a.png | Bin 122096 -> 35297 bytes doc/user/admin_area/index.md | 60 +- doc/user/admin_area/license.md | 14 +- doc/user/admin_area/merge_requests_approvals.md | 4 +- doc/user/admin_area/moderate_users.md | 59 +- doc/user/admin_area/monitoring/health_check.md | 8 +- doc/user/admin_area/review_abuse_reports.md | 8 +- .../settings/account_and_limit_settings.md | 82 +- .../admin_area/settings/continuous_integration.md | 140 +- .../admin_area/settings/external_authorization.md | 7 +- doc/user/admin_area/settings/floc.md | 3 +- doc/user/admin_area/settings/gitaly_timeouts.md | 8 +- doc/user/admin_area/settings/help_page.md | 6 +- .../settings/img/admin_required_pipeline.png | Bin 22587 -> 0 bytes ...ous_integration_shared_runner_details_v14_0.png | Bin 0 -> 80106 bytes .../settings/img/custom_sign_in_page_v13_6.png | Bin 61203 -> 0 bytes doc/user/admin_area/settings/img/enforce_terms.png | Bin 54881 -> 156968 bytes .../settings/import_export_rate_limits.md | 4 +- doc/user/admin_area/settings/index.md | 22 +- .../settings/instance_template_repository.md | 13 +- .../settings/package_registry_rate_limits.md | 5 +- .../settings/project_integration_management.md | 6 +- .../settings/push_event_activities_limit.md | 13 +- .../settings/rate_limit_on_notes_creation.md | 2 +- .../settings/rate_limits_on_raw_endpoints.md | 7 +- .../admin_area/settings/sign_in_restrictions.md | 16 +- .../admin_area/settings/sign_up_restrictions.md | 18 +- doc/user/admin_area/settings/terms.md | 5 +- doc/user/admin_area/settings/third_party_offers.md | 6 +- doc/user/admin_area/settings/usage_statistics.md | 16 +- .../admin_area/settings/user_and_ip_rate_limits.md | 15 +- .../settings/visibility_and_access_controls.md | 12 +- doc/user/admin_area/user_cohorts.md | 6 +- doc/user/analytics/ci_cd_analytics.md | 25 +- doc/user/analytics/index.md | 2 +- doc/user/analytics/value_stream_analytics.md | 132 +- .../api_fuzzing/create_har_files.md | 8 +- doc/user/application_security/api_fuzzing/index.md | 69 +- .../container_scanning/index.md | 330 +-- .../application_security/coverage_fuzzing/index.md | 4 +- doc/user/application_security/cve_id_request.md | 2 +- .../application_security/dast/browser_based.md | 75 +- .../dast/img/dast_auth_browser_scan_highlight.png | Bin 0 -> 203980 bytes .../img/dast_auth_browser_scan_search_elements.png | Bin 0 -> 155046 bytes .../dast/img/dast_auth_report.jpg | Bin 0 -> 121121 bytes doc/user/application_security/dast/index.md | 785 ++++--- doc/user/application_security/dast_api/index.md | 67 +- .../dependency_scanning/analyzers.md | 2 +- .../dependency_scanning/index.md | 12 +- ...urity_approval_rules_and_enabled_jobs_v13_4.png | Bin 35553 -> 0 bytes ...ured_security_approval_rules_and_jobs_v13_4.png | Bin 29773 -> 0 bytes doc/user/application_security/index.md | 165 +- .../offline_deployments/index.md | 19 +- doc/user/application_security/sast/analyzers.md | 23 +- doc/user/application_security/sast/index.md | 36 +- .../application_security/secret_detection/index.md | 16 +- .../img/security_center_settings_v13_4.png | Bin 69604 -> 23188 bytes .../security_dashboard/index.md | 3 +- doc/user/application_security/terminology/index.md | 6 +- .../threat_monitoring_policy_alert_list_v13_12.png | Bin 59862 -> 22929 bytes .../threat_monitoring/index.md | 58 +- ...ty_page_merge_request_button_dropdown_v13_1.png | Bin 53561 -> 0 bytes .../application_security/vulnerabilities/index.md | 146 +- .../vulnerabilities/severities.md | 7 +- .../vulnerability_report/index.md | 4 +- doc/user/clusters/agent/index.md | 4 +- doc/user/clusters/agent/repository.md | 115 +- doc/user/clusters/agent/runner.md | 1 + doc/user/clusters/applications.md | 735 +----- doc/user/clusters/cost_management.md | 8 +- doc/user/clusters/crossplane.md | 2 +- doc/user/clusters/img/fluentd_v13_0.png | Bin 32445 -> 0 bytes doc/user/clusters/integrations.md | 27 +- doc/user/clusters/management_project.md | 8 +- doc/user/clusters/management_project_template.md | 86 + .../migrating_from_gma_to_project_template.md | 95 + doc/user/compliance/license_compliance/index.md | 42 +- doc/user/discussions/index.md | 9 +- doc/user/gitlab_com/index.md | 302 +-- doc/user/group/bulk_editing/index.md | 1 + doc/user/group/clusters/index.md | 14 +- doc/user/group/custom_project_templates.md | 57 +- .../img/group_devops_adoption_v13_11.png | Bin 58389 -> 0 bytes .../img/group_devops_adoption_v14_0.png | Bin 0 -> 52890 bytes doc/user/group/devops_adoption/index.md | 26 +- doc/user/group/epics/epic_boards.md | 170 +- doc/user/group/epics/img/epic_board_v13_10.png | Bin 42037 -> 0 bytes doc/user/group/epics/img/epic_board_v14_0.png | Bin 0 -> 16512 bytes doc/user/group/epics/manage_epics.md | 27 +- doc/user/group/import/index.md | 7 +- doc/user/group/index.md | 68 +- doc/user/group/insights/index.md | 2 +- .../img/issues_created_per_month_v12_8_a.png | Bin 54332 -> 16244 bytes doc/user/group/repositories_analytics/index.md | 4 +- .../saml_sso/img/member_enterprise_badge_v14_0.png | Bin 0 -> 31502 bytes .../group/saml_sso/img/saml_group_links_v13_9.png | Bin 0 -> 162931 bytes doc/user/group/saml_sso/index.md | 21 +- doc/user/group/saml_sso/scim_setup.md | 4 + doc/user/group/settings/import_export.md | 10 +- doc/user/group/subgroups/index.md | 23 +- .../img/delete_value_stream_v13_12.png | Bin 57007 -> 20164 bytes .../img/new_value_stream_v13_12.png | Bin 55481 -> 19993 bytes .../img/vsa_filter_bar_v13_12.png | Bin 125695 -> 36706 bytes .../img/vsa_label_based_stage_v14_0.png | Bin 65149 -> 19873 bytes .../img/vsa_overview_stage_v13_11.png | Bin 60960 -> 21148 bytes .../img/vsa_time_metrics_v13_12.png | Bin 51065 -> 18354 bytes doc/user/group/value_stream_analytics/index.md | 4 +- doc/user/img/completed_tasks_v13_3.png | Bin 10844 -> 14835 bytes doc/user/infrastructure/index.md | 15 +- doc/user/infrastructure/terraform_state.md | 17 +- doc/user/instance/clusters/index.md | 5 +- doc/user/markdown.md | 454 ++-- doc/user/operations_dashboard/index.md | 2 +- doc/user/packages/composer_repository/index.md | 4 +- doc/user/packages/conan_repository/index.md | 2 +- doc/user/packages/container_registry/index.md | 15 +- doc/user/packages/index.md | 11 +- doc/user/packages/infrastructure_registry/index.md | 93 + doc/user/packages/maven_repository/index.md | 15 +- doc/user/packages/npm_registry/index.md | 9 +- doc/user/packages/nuget_repository/index.md | 2 +- doc/user/packages/package_registry/index.md | 39 +- doc/user/packages/pypi_repository/index.md | 39 +- doc/user/packages/rubygems_registry/index.md | 4 +- .../packages/terraform_module_registry/index.md | 124 + doc/user/packages/workflows/project_registry.md | 4 +- .../packages/workflows/working_with_monorepos.md | 64 + doc/user/permissions.md | 104 +- doc/user/profile/account/create_accounts.md | 23 +- doc/user/profile/account/delete_account.md | 5 +- .../profile/account/two_factor_authentication.md | 13 +- .../img/notification_global_settings_v13_12.png | Bin 20731 -> 9268 bytes .../profile/img/unknown_sign_in_email_v13_1.png | Bin 20230 -> 0 bytes .../profile/img/unknown_sign_in_email_v14_0.png | Bin 0 -> 68946 bytes doc/user/profile/index.md | 16 +- doc/user/profile/notifications.md | 1 + doc/user/profile/unknown_sign_in_notification.md | 2 +- doc/user/project/badges.md | 31 +- doc/user/project/bulk_editing.md | 1 + doc/user/project/canary_deployments.md | 4 +- doc/user/project/clusters/add_eks_clusters.md | 13 +- doc/user/project/clusters/add_gke_clusters.md | 12 +- doc/user/project/clusters/add_remove_clusters.md | 62 +- doc/user/project/clusters/index.md | 47 +- doc/user/project/clusters/kubernetes_pod_logs.md | 24 +- .../protect/container_host_security/index.md | 6 +- .../container_host_security/quick_start_guide.md | 24 +- .../protect/container_network_security/index.md | 6 +- .../quick_start_guide.md | 34 +- doc/user/project/clusters/protect/index.md | 5 +- .../guide_waf_ingress_disabled_settings_v12_10.png | Bin 51416 -> 0 bytes .../img/guide_waf_ingress_installation_v12_10.png | Bin 44243 -> 0 bytes .../img/guide_waf_ingress_save_changes_v12_10.png | Bin 54688 -> 0 bytes .../protect/web_application_firewall/index.md | 103 - .../web_application_firewall/quick_start_guide.md | 265 --- doc/user/project/clusters/runbooks/index.md | 99 +- doc/user/project/clusters/serverless/index.md | 74 +- doc/user/project/deploy_boards.md | 2 +- doc/user/project/deploy_keys/index.md | 2 +- doc/user/project/deploy_tokens/index.md | 2 +- doc/user/project/description_templates.md | 39 +- doc/user/project/file_lock.md | 8 +- doc/user/project/highlighting.md | 2 +- ...owners_approval_new_protected_branch_v13_10.png | Bin 30238 -> 0 bytes ...ode_owners_approval_protected_branch_v13_10.png | Bin 17263 -> 0 bytes doc/user/project/import/bitbucket.md | 2 +- doc/user/project/import/bitbucket_server.md | 2 +- doc/user/project/import/clearcase.md | 2 +- doc/user/project/import/cvs.md | 2 +- doc/user/project/import/fogbugz.md | 2 +- doc/user/project/import/gemnasium.md | 1 + doc/user/project/import/gitea.md | 2 +- doc/user/project/import/github.md | 2 +- doc/user/project/import/gitlab_com.md | 2 +- doc/user/project/import/index.md | 2 +- doc/user/project/import/manifest.md | 2 +- doc/user/project/import/perforce.md | 2 +- doc/user/project/import/phabricator.md | 2 +- doc/user/project/import/repo_by_url.md | 2 +- doc/user/project/import/svn.md | 6 +- doc/user/project/import/tfvc.md | 6 +- doc/user/project/index.md | 4 +- .../integrations/gitlab_slack_application.md | 2 +- doc/user/project/integrations/hipchat.md | 7 - doc/user/project/integrations/index.md | 2 +- doc/user/project/integrations/jira.md | 1 + .../integrations/jira_cloud_configuration.md | 1 + doc/user/project/integrations/jira_integrations.md | 1 + .../integrations/jira_server_configuration.md | 1 + .../integrations/mattermost_slash_commands.md | 6 +- doc/user/project/integrations/overview.md | 15 +- doc/user/project/integrations/prometheus.md | 144 +- .../integrations/prometheus_library/kubernetes.md | 2 +- .../prometheus_library/nginx_ingress.md | 22 - .../prometheus_library/nginx_ingress_vts.md | 22 - .../project/integrations/services_templates.md | 68 +- doc/user/project/integrations/webex_teams.md | 3 +- doc/user/project/integrations/webhooks.md | 14 +- doc/user/project/issue_board.md | 199 +- doc/user/project/issues/confidential_issues.md | 8 +- doc/user/project/issues/csv_export.md | 105 +- doc/user/project/issues/csv_import.md | 2 +- doc/user/project/issues/design_management.md | 7 +- doc/user/project/issues/due_dates.md | 24 +- .../issues/img/issue_type_change_v13_12.png | Bin 0 -> 52414 bytes doc/user/project/issues/issue_data_and_actions.md | 2 +- doc/user/project/issues/managing_issues.md | 24 +- doc/user/project/labels.md | 2 +- .../img/access_requests_management_v13_9.png | Bin 24246 -> 0 bytes .../members/img/add_user_email_accept_v13_9.png | Bin 21877 -> 0 bytes .../members/img/add_user_email_ready_v13_8.png | Bin 28850 -> 0 bytes .../members/img/add_user_email_search_v13_8.png | Bin 29293 -> 0 bytes .../members/img/withdraw_access_request_button.png | Bin 28154 -> 0 bytes doc/user/project/members/index.md | 203 +- .../project/members/share_project_with_groups.md | 2 +- .../merge_requests/accessibility_testing.md | 12 +- .../project/merge_requests/allow_collaboration.md | 50 +- doc/user/project/merge_requests/approvals/index.md | 32 +- doc/user/project/merge_requests/approvals/rules.md | 6 +- .../project/merge_requests/approvals/settings.md | 2 +- .../authorization_for_merge_requests.md | 16 +- .../merge_requests/browser_performance_testing.md | 31 +- doc/user/project/merge_requests/changes.md | 60 +- .../project/merge_requests/cherry_pick_changes.md | 25 +- doc/user/project/merge_requests/code_quality.md | 19 +- doc/user/project/merge_requests/commits.md | 28 + .../merge_requests/creating_merge_requests.md | 3 +- doc/user/project/merge_requests/getting_started.md | 58 +- .../merge_requests/img/allow_collaboration.png | Bin 10806 -> 0 bytes .../img/allow_collaboration_after_save.png | Bin 5410 -> 0 bytes .../img/code_quality_mr_diff_report_v14.png | Bin 0 -> 54803 bytes .../merge_requests/img/commit-button_v13_12.png | Bin 0 -> 8834 bytes .../merge_requests/img/conflict_ui_v14_0.png | Bin 0 -> 8371 bytes .../merge_requests/img/merge_request_pipeline.png | Bin 0 -> 31026 bytes .../img/project_merge_requests_list_view_v13_5.png | Bin 0 -> 87738 bytes .../img/reviewer_approval_rules_form_v13_8.png | Bin 42245 -> 0 bytes .../img/reviewer_approval_rules_sidebar_v13_8.png | Bin 38840 -> 0 bytes .../img/status_checks_branches_selector_v14_0.png | Bin 0 -> 5460 bytes .../img/status_checks_create_form_v14_0.png | Bin 0 -> 11913 bytes .../img/status_checks_delete_modal_v14_0.png | Bin 0 -> 5662 bytes .../img/status_checks_list_view_v14_0.png | Bin 0 -> 15958 bytes .../img/status_checks_update_form_v14_0.png | Bin 0 -> 13348 bytes doc/user/project/merge_requests/index.md | 85 +- .../merge_requests/load_performance_testing.md | 10 +- .../merge_requests/merge_request_approvals.md | 1 + .../merge_requests/merge_request_dependencies.md | 2 +- .../merge_requests/merge_when_pipeline_succeeds.md | 2 +- .../project/merge_requests/resolve_conflicts.md | 4 +- .../reviewing_and_managing_merge_requests.md | 1 + .../reviews/img/merge_request_pipeline.png | Bin 31026 -> 0 bytes .../img/project_merge_requests_list_view_v13_5.png | Bin 87738 -> 0 bytes .../img/reviewer_approval_rules_form_v13_8.png | Bin 0 -> 42245 bytes .../img/reviewer_approval_rules_sidebar_v13_8.png | Bin 0 -> 38840 bytes doc/user/project/merge_requests/reviews/index.md | 143 +- .../project/merge_requests/reviews/suggestions.md | 4 + .../project/merge_requests/squash_and_merge.md | 2 +- doc/user/project/merge_requests/status_checks.md | 179 ++ .../merge_requests/test_coverage_visualization.md | 84 +- .../testing_and_reports_in_merge_requests.md | 2 +- doc/user/project/merge_requests/versions.md | 2 +- doc/user/project/merge_requests/widgets.md | 64 + .../work_in_progress_merge_requests.md | 1 + doc/user/project/milestones/index.md | 4 +- doc/user/project/new_ci_build_permissions_model.md | 1 + .../dns_concepts.md | 2 +- .../custom_domains_ssl_tls_certification/index.md | 4 +- .../lets_encrypt_integration.md | 4 +- .../ssl_tls_concepts.md | 2 +- .../pages/getting_started/pages_ci_cd_template.md | 4 +- .../getting_started/pages_forked_sample_project.md | 2 +- .../pages/getting_started/pages_from_scratch.md | 2 +- .../getting_started/pages_new_project_template.md | 3 +- doc/user/project/pages/getting_started_part_one.md | 2 +- doc/user/project/pages/index.md | 2 +- doc/user/project/pages/introduction.md | 4 +- .../project/pages/lets_encrypt_for_gitlab_pages.md | 2 +- doc/user/project/pages/pages_access_control.md | 2 +- doc/user/project/pages/redirects.md | 2 +- doc/user/project/protected_branches.md | 40 +- doc/user/project/protected_tags.md | 2 +- doc/user/project/quick_actions.md | 1 - doc/user/project/releases/index.md | 17 +- doc/user/project/repository/branches/default.md | 3 +- .../repository/img/download_source_code.png | Bin 19681 -> 0 bytes .../repository/img/file_ext_icons_repo_v12_10.png | Bin 73624 -> 0 bytes doc/user/project/repository/index.md | 418 ++-- .../project/repository/jupyter_notebooks/index.md | 9 +- .../project/repository/repository_mirroring.md | 46 +- doc/user/project/repository/web_editor.md | 8 +- doc/user/project/settings/import_export.md | 12 +- doc/user/project/settings/index.md | 94 +- doc/user/project/settings/project_access_tokens.md | 2 + doc/user/project/time_tracking.md | 6 +- doc/user/project/web_ide/index.md | 26 +- doc/user/project/wiki/img/content_editor_v14.0.png | Bin 0 -> 13771 bytes .../wiki/img/use_new_editor_button_v14.0.png | Bin 0 -> 16719 bytes doc/user/project/wiki/index.md | 82 +- doc/user/project/working_with_projects.md | 25 +- doc/user/reserved_names.md | 6 +- doc/user/search/advanced_search.md | 42 +- doc/user/search/index.md | 4 +- doc/user/shortcuts.md | 8 +- doc/user/snippets.md | 8 +- doc/user/todos.md | 1 + file_hooks/examples/save_to_file.rb | 2 +- .../usage_metric_definition/metric_definition.yml | 1 + lib/api/api.rb | 6 +- lib/api/branches.rb | 4 + lib/api/ci/runner.rb | 4 +- lib/api/commit_statuses.rb | 6 +- lib/api/commits.rb | 9 +- lib/api/composer_packages.rb | 4 +- lib/api/concerns/packages/conan_endpoints.rb | 2 +- .../packages/debian_distribution_endpoints.rb | 152 ++ lib/api/concerns/packages/debian_endpoints.rb | 133 -- .../concerns/packages/debian_package_endpoints.rb | 127 + lib/api/concerns/packages/nuget_endpoints.rb | 5 +- lib/api/debian_group_packages.rb | 10 +- lib/api/debian_project_packages.rb | 35 +- lib/api/entities/basic_project_details.rb | 31 +- lib/api/entities/commit.rb | 1 + lib/api/entities/group_detail.rb | 6 +- lib/api/entities/issue_basic.rb | 2 +- lib/api/entities/label_basic.rb | 2 +- lib/api/entities/merge_request_basic.rb | 6 +- lib/api/entities/package.rb | 8 +- lib/api/entities/packages/debian/distribution.rb | 23 + lib/api/entities/project.rb | 19 +- lib/api/entities/project_repository_storage.rb | 16 + lib/api/entities/runner.rb | 1 + lib/api/entities/snippet.rb | 10 +- lib/api/entities/user_preferences.rb | 2 +- lib/api/feature_flag_scopes.rb | 160 -- lib/api/feature_flags.rb | 58 +- lib/api/generic_packages.rb | 4 +- lib/api/group_avatar.rb | 21 + lib/api/group_container_repositories.rb | 2 +- lib/api/group_export.rb | 6 +- lib/api/group_packages.rb | 2 +- lib/api/groups.rb | 2 +- lib/api/helm_packages.rb | 56 + lib/api/helpers.rb | 12 +- lib/api/helpers/label_helpers.rb | 15 +- lib/api/helpers/packages/basic_auth_helpers.rb | 8 + lib/api/helpers/packages/conan/api_helpers.rb | 4 +- lib/api/helpers/projects_helpers.rb | 6 +- lib/api/helpers/runner.rb | 25 +- lib/api/helpers/services_helpers.rb | 52 +- lib/api/internal/base.rb | 13 +- lib/api/invitations.rb | 1 + lib/api/jobs.rb | 1 - lib/api/lint.rb | 6 +- lib/api/maven_packages.rb | 10 +- lib/api/members.rb | 2 + lib/api/merge_requests.rb | 11 +- lib/api/npm_project_packages.rb | 4 +- lib/api/nuget_group_packages.rb | 4 + lib/api/nuget_project_packages.rb | 8 +- lib/api/project_container_repositories.rb | 10 +- lib/api/project_debian_distributions.rb | 37 + lib/api/project_export.rb | 6 +- lib/api/project_packages.rb | 4 +- lib/api/project_snippets.rb | 4 +- lib/api/project_templates.rb | 2 +- lib/api/projects.rb | 15 +- lib/api/pypi_packages.rb | 78 +- lib/api/rubygem_packages.rb | 4 +- lib/api/settings.rb | 2 +- lib/api/snippets.rb | 4 +- lib/api/tags.rb | 85 +- lib/api/terraform/modules/v1/packages.rb | 4 +- lib/api/unleash.rb | 5 +- lib/api/users.rb | 14 +- lib/backup/gitaly_backup.rb | 67 + lib/backup/gitaly_rpc_backup.rb | 128 + lib/backup/repositories.rb | 194 +- lib/banzai/filter/base_relative_link_filter.rb | 18 +- lib/banzai/filter/markdown_pre_escape_filter.rb | 2 - .../filter/references/label_reference_filter.rb | 93 +- lib/banzai/filter/references/reference_cache.rb | 48 +- lib/banzai/filter/references/reference_filter.rb | 4 + lib/banzai/filter/upload_link_filter.rb | 14 +- lib/banzai/pipeline/markup_pipeline.rb | 3 +- lib/banzai/reference_parser/issue_parser.rb | 9 +- .../reference_parser/merge_request_parser.rb | 33 +- lib/bulk_imports/clients/graphql.rb | 2 +- lib/bulk_imports/clients/http.rb | 60 +- .../common/extractors/ndjson_extractor.rb | 68 + .../common/extractors/rest_extractor.rb | 2 +- .../groups/extractors/subgroups_extractor.rb | 2 +- .../groups/graphql/get_labels_query.rb | 53 - .../groups/pipelines/boards_pipeline.rb | 15 + .../groups/pipelines/entity_finisher.rb | 22 +- .../groups/pipelines/labels_pipeline.rb | 11 +- .../groups/pipelines/milestones_pipeline.rb | 21 +- lib/bulk_imports/ndjson_pipeline.rb | 99 + lib/bulk_imports/pipeline.rb | 33 +- lib/bulk_imports/pipeline/context.rb | 8 + lib/bulk_imports/pipeline/extracted_data.rb | 2 +- lib/bulk_imports/stage.rb | 6 +- lib/csv_builder.rb | 2 +- lib/feature.rb | 7 +- lib/feature/active_support_cache_store_adapter.rb | 36 - lib/flowdock/git.rb | 2 +- lib/generators/gitlab/usage_metric/USAGE | 9 + .../templates/instrumentation_class.rb.template | 14 + .../instrumentation_class_spec.rb.template | 7 + .../gitlab/usage_metric/usage_metric_generator.rb | 71 + lib/gitlab.rb | 11 +- lib/gitlab/application_context.rb | 4 + lib/gitlab/auth.rb | 21 +- lib/gitlab/auth/o_auth/user.rb | 2 +- .../cleanup_orphaned_lfs_objects_projects.rb | 78 + ...ation_policies_linked_to_no_container_images.rb | 41 + ...recalculate_vulnerabilities_occurrences_uuid.rb | 18 + ...ra_tracker_data_deployment_type_based_on_url.rb | 42 + lib/gitlab/cache.rb | 7 + lib/gitlab/cache/import/caching.rb | 11 + lib/gitlab/checks/base_bulk_checker.rb | 18 + lib/gitlab/checks/base_checker.rb | 23 - lib/gitlab/checks/base_single_checker.rb | 34 + lib/gitlab/checks/branch_check.rb | 2 +- lib/gitlab/checks/change_access.rb | 57 - lib/gitlab/checks/changes_access.rb | 54 + lib/gitlab/checks/diff_check.rb | 2 +- lib/gitlab/checks/lfs_check.rb | 7 +- lib/gitlab/checks/lfs_integrity.rb | 11 +- lib/gitlab/checks/matching_merge_request.rb | 60 +- lib/gitlab/checks/push_check.rb | 2 +- lib/gitlab/checks/push_file_count_check.rb | 2 +- lib/gitlab/checks/single_change_access.rb | 55 + lib/gitlab/checks/snippet_check.rb | 2 +- lib/gitlab/checks/tag_check.rb | 2 +- lib/gitlab/ci/ansi2json/line.rb | 2 +- lib/gitlab/ci/badge/coverage/template.rb | 16 - lib/gitlab/ci/badge/pipeline/template.rb | 16 - lib/gitlab/ci/badge/template.rb | 13 +- lib/gitlab/ci/build/auto_retry.rb | 14 +- lib/gitlab/ci/config/entry/need.rb | 22 +- lib/gitlab/ci/config/entry/processable.rb | 1 - lib/gitlab/ci/config/entry/reports.rb | 5 +- lib/gitlab/ci/config/external/file/artifact.rb | 5 - lib/gitlab/ci/config/external/file/template.rb | 4 +- lib/gitlab/ci/cron_parser.rb | 8 + lib/gitlab/ci/features.rb | 16 - lib/gitlab/ci/jwt.rb | 1 + lib/gitlab/ci/matching/build_matcher.rb | 29 + lib/gitlab/ci/matching/runner_matcher.rb | 68 + lib/gitlab/ci/parsers/test/junit.rb | 1 + .../ci/pipeline/chain/validate/after_config.rb | 24 + lib/gitlab/ci/pipeline/chain/validate/external.rb | 28 +- lib/gitlab/ci/pipeline/preloader.rb | 8 + lib/gitlab/ci/pipeline/seed/build.rb | 2 +- lib/gitlab/ci/queue/metrics.rb | 20 +- lib/gitlab/ci/reports/test_suite_comparer.rb | 3 +- lib/gitlab/ci/status/build/failed.rb | 3 +- lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml | 2 +- .../ci/templates/Getting-Started.gitlab-ci.yml | 39 + lib/gitlab/ci/templates/Getting-started.yml | 39 - .../Jobs/Browser-Performance-Testing.gitlab-ci.yml | 4 +- ...rowser-Performance-Testing.latest.gitlab-ci.yml | 2 +- lib/gitlab/ci/templates/Jobs/Build.gitlab-ci.yml | 6 +- .../ci/templates/Jobs/Code-Quality.gitlab-ci.yml | 2 +- .../Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml | 2 +- lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml | 9 +- lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml | 335 +++ .../templates/Jobs/Secret-Detection.gitlab-ci.yml | 36 + .../Managed-Cluster-Applications.gitlab-ci.yml | 23 +- lib/gitlab/ci/templates/Ruby.gitlab-ci.yml | 2 +- .../templates/Security/API-Fuzzing.gitlab-ci.yml | 266 +-- .../Security/API-Fuzzing.latest.gitlab-ci.yml | 5 +- .../Security/Container-Scanning.gitlab-ci.yml | 70 +- .../Security/Coverage-Fuzzing.gitlab-ci.yml | 3 + .../ci/templates/Security/DAST-API.gitlab-ci.yml | 5 +- .../ci/templates/Security/DAST.gitlab-ci.yml | 7 +- .../templates/Security/DAST.latest.gitlab-ci.yml | 18 +- .../Security/Dependency-Scanning.gitlab-ci.yml | 5 +- .../Security/License-Management.gitlab-ci.yml | 13 - .../Security/License-Scanning.gitlab-ci.yml | 5 +- .../ci/templates/Security/SAST.gitlab-ci.yml | 343 +-- .../Security/Secret-Detection.gitlab-ci.yml | 48 +- .../Security/Secure-Binaries.gitlab-ci.yml | 25 +- lib/gitlab/ci/templates/Terraform.gitlab-ci.yml | 63 +- .../Verify/Browser-Performance.gitlab-ci.yml | 2 +- lib/gitlab/ci/templates/npm.gitlab-ci.yml | 70 +- lib/gitlab/ci/templates/npm.latest.gitlab-ci.yml | 41 - lib/gitlab/ci/trace.rb | 28 +- lib/gitlab/ci/trace/chunked_io.rb | 9 +- lib/gitlab/ci/trace/metrics.rb | 1 - lib/gitlab/ci/variables/collection.rb | 20 +- lib/gitlab/ci/variables/collection/item.rb | 13 +- lib/gitlab/ci/yaml_processor/result.rb | 16 + lib/gitlab/cluster/lifecycle_events.rb | 22 +- lib/gitlab/cluster/mixins/unicorn_http_server.rb | 34 - .../cluster/puma_worker_killer_initializer.rb | 7 +- .../content_security_policy/config_loader.rb | 3 +- lib/gitlab/cycle_analytics/stage_summary.rb | 17 +- lib/gitlab/cycle_analytics/summary/base.rb | 5 +- lib/gitlab/cycle_analytics/summary/commit.rb | 2 +- lib/gitlab/cycle_analytics/summary/deploy.rb | 2 +- .../summary/deployment_frequency.rb | 6 +- lib/gitlab/cycle_analytics/summary/issue.rb | 15 +- lib/gitlab/data_builder/build.rb | 2 + lib/gitlab/data_builder/pipeline.rb | 2 + lib/gitlab/data_builder/wiki_page.rb | 3 +- lib/gitlab/database.rb | 15 +- .../database/background_migration/batched_job.rb | 2 +- .../background_migration/batched_migration.rb | 18 +- lib/gitlab/database/consistency.rb | 20 +- lib/gitlab/database/dynamic_model_helpers.rb | 19 + lib/gitlab/database/load_balancing.rb | 142 ++ .../database/load_balancing/active_record_proxy.rb | 15 + .../database/load_balancing/connection_proxy.rb | 140 ++ lib/gitlab/database/load_balancing/host.rb | 209 ++ lib/gitlab/database/load_balancing/host_list.rb | 99 + .../database/load_balancing/load_balancer.rb | 275 +++ lib/gitlab/database/load_balancing/logger.rb | 13 + .../database/load_balancing/rack_middleware.rb | 98 + lib/gitlab/database/load_balancing/resolver.rb | 52 + .../database/load_balancing/service_discovery.rb | 187 ++ lib/gitlab/database/load_balancing/session.rb | 118 + .../load_balancing/sidekiq_client_middleware.rb | 46 + .../load_balancing/sidekiq_server_middleware.rb | 71 + lib/gitlab/database/load_balancing/srv_resolver.rb | 46 + lib/gitlab/database/load_balancing/sticking.rb | 147 ++ lib/gitlab/database/migration_helpers.rb | 21 +- .../migrations/background_migration_helpers.rb | 48 +- .../postgresql_adapter/empty_query_ping.rb | 3 + .../database/postgresql_adapter/type_map_cache.rb | 44 + lib/gitlab/diff/file_collection/base.rb | 15 +- .../file_collection/merge_request_diff_batch.rb | 24 +- lib/gitlab/diff/highlight.rb | 6 - lib/gitlab/diff/highlight_cache.rb | 1 - lib/gitlab/email/handler/reply_processing.rb | 2 + lib/gitlab/email/handler/service_desk_handler.rb | 7 +- lib/gitlab/email/message/in_product_marketing.rb | 4 +- .../email/message/in_product_marketing/base.rb | 13 +- .../message/in_product_marketing/experience.rb | 80 + lib/gitlab/email/receiver.rb | 2 +- lib/gitlab/emoji.rb | 12 +- lib/gitlab/error_tracking.rb | 3 - lib/gitlab/etag_caching/middleware.rb | 5 +- lib/gitlab/exclusive_lease_helpers.rb | 2 +- lib/gitlab/experimentation.rb | 12 +- lib/gitlab/experimentation/controller_concern.rb | 2 +- lib/gitlab/file_hook.rb | 2 +- lib/gitlab/file_hook_logger.rb | 2 +- lib/gitlab/git/conflict/resolver.rb | 4 +- lib/gitlab/git/diff_collection.rb | 6 +- lib/gitlab/git/lfs_changes.rb | 6 +- lib/gitlab/git/remote_repository.rb | 17 - lib/gitlab/git/repository.rb | 8 +- lib/gitlab/git_access.rb | 16 +- lib/gitlab/git_access_snippet.rb | 16 +- lib/gitlab/gitaly_client/blob_service.rb | 8 +- lib/gitlab/gitaly_client/remote_service.rb | 15 +- lib/gitlab/gitaly_client/repository_service.rb | 11 +- .../importer/pull_requests_importer.rb | 6 +- .../importer/pull_requests_reviews_importer.rb | 94 +- lib/gitlab/github_import/page_counter.rb | 4 + lib/gitlab/global_id/deprecations.rb | 47 + lib/gitlab/gon_helper.rb | 1 + lib/gitlab/graphql.rb | 7 - lib/gitlab/graphql/authorize/authorize_resource.rb | 3 - lib/gitlab/graphql/deprecation.rb | 9 +- lib/gitlab/graphql/docs/helper.rb | 434 ---- lib/gitlab/graphql/docs/renderer.rb | 54 - lib/gitlab/graphql/docs/templates/default.md.haml | 224 -- lib/gitlab/graphql/standard_graphql_error.rb | 10 + lib/gitlab/health_checks/redis/redis_check.rb | 3 +- .../health_checks/redis/trace_chunks_check.rb | 35 + lib/gitlab/health_checks/unicorn_check.rb | 41 - lib/gitlab/highlight.rb | 21 +- lib/gitlab/hook_data/issue_builder.rb | 3 + lib/gitlab/hook_data/merge_request_builder.rb | 3 + lib/gitlab/i18n.rb | 20 +- .../after_export_strategies/web_upload_strategy.rb | 4 + lib/gitlab/import_export/base/relation_factory.rb | 5 + lib/gitlab/import_export/command_line_util.rb | 9 + .../decompressed_archive_size_validator.rb | 11 +- lib/gitlab/import_export/error.rb | 2 +- lib/gitlab/import_export/file_importer.rb | 4 +- lib/gitlab/import_export/group/import_export.yml | 3 + .../import_export/group/legacy_import_export.yml | 2 + .../import_export/group/legacy_tree_restorer.rb | 4 +- lib/gitlab/import_export/group/tree_restorer.rb | 2 +- lib/gitlab/import_export/group/tree_saver.rb | 4 +- lib/gitlab/import_export/json/legacy_reader.rb | 2 +- lib/gitlab/import_export/json/legacy_writer.rb | 2 +- lib/gitlab/import_export/json/ndjson_reader.rb | 2 +- lib/gitlab/import_export/json/ndjson_writer.rb | 2 +- .../import_export/json/streaming_serializer.rb | 2 +- .../import_export/legacy_relation_tree_saver.rb | 2 +- lib/gitlab/import_export/project/tree_restorer.rb | 4 +- lib/gitlab/import_export/project/tree_saver.rb | 6 +- lib/gitlab/import_export/shared.rb | 2 +- lib/gitlab/instrumentation/redis.rb | 7 +- lib/gitlab/instrumentation/redis_payload.rb | 6 - lib/gitlab/integrations/sti_type.rb | 13 +- lib/gitlab/json.rb | 4 +- lib/gitlab/kas.rb | 7 + lib/gitlab/kas/client.rb | 75 + lib/gitlab/kubernetes/helm/parsers/list_v2.rb | 37 - lib/gitlab/markdown_cache/field_data.rb | 2 +- lib/gitlab/metrics.rb | 4 + lib/gitlab/metrics/exporter/web_exporter.rb | 3 +- lib/gitlab/metrics/requests_rack_middleware.rb | 13 +- lib/gitlab/metrics/samplers/database_sampler.rb | 4 +- lib/gitlab/metrics/samplers/ruby_sampler.rb | 2 - lib/gitlab/metrics/samplers/unicorn_sampler.rb | 73 - lib/gitlab/metrics/subscribers/active_record.rb | 57 +- lib/gitlab/metrics/subscribers/external_http.rb | 2 - lib/gitlab/metrics/transaction.rb | 23 +- lib/gitlab/metrics/web_transaction.rb | 25 + lib/gitlab/nav/top_nav_menu_item.rb | 6 +- lib/gitlab/nav/top_nav_view_model_builder.rb | 28 +- lib/gitlab/pagination/keyset/header_builder.rb | 1 - lib/gitlab/pagination/keyset/paginator.rb | 176 ++ .../pagination/keyset/simple_order_builder.rb | 2 + .../patch/action_dispatch_journey_formatter.rb | 34 - lib/gitlab/patch/global_id.rb | 25 + lib/gitlab/patch/hangouts_chat_http_override.rb | 21 + lib/gitlab/path_regex.rb | 4 - lib/gitlab/profiler.rb | 2 +- lib/gitlab/project_search_results.rb | 13 +- lib/gitlab/prometheus/adapter.rb | 3 - .../issue_and_merge_request_actions.rb | 2 + lib/gitlab/quick_actions/merge_request_actions.rb | 2 +- lib/gitlab/reactive_cache_set_cache.rb | 14 +- lib/gitlab/redis/cache.rb | 30 +- lib/gitlab/redis/queues.rb | 30 +- lib/gitlab/redis/shared_state.rb | 30 +- lib/gitlab/redis/trace_chunks.rb | 12 + lib/gitlab/redis/wrapper.rb | 56 +- lib/gitlab/regex.rb | 3 +- lib/gitlab/repository_set_cache.rb | 5 + lib/gitlab/runtime.rb | 10 +- lib/gitlab/saas.rb | 26 + lib/gitlab/set_cache.rb | 14 +- lib/gitlab/setup_helper.rb | 12 +- lib/gitlab/sidekiq_cluster/cli.rb | 16 +- lib/gitlab/sidekiq_config/worker_router.rb | 2 +- lib/gitlab/sidekiq_logging/logs_jobs.rb | 3 + lib/gitlab/sidekiq_logging/structured_logger.rb | 2 - lib/gitlab/sidekiq_middleware.rb | 11 +- .../duplicate_jobs/duplicate_job.rb | 10 +- .../sidekiq_middleware/instrumentation_logger.rb | 19 - lib/gitlab/sidekiq_middleware/server_metrics.rb | 13 + .../sidekiq_middleware/size_limiter/compressor.rb | 52 + .../sidekiq_middleware/size_limiter/server.rb | 18 + .../sidekiq_middleware/size_limiter/validator.rb | 91 +- lib/gitlab/slash_commands/presenters/base.rb | 2 +- lib/gitlab/stack_prof.rb | 1 - lib/gitlab/task_helpers.rb | 8 +- lib/gitlab/template/gitlab_ci_yml_template.rb | 33 + lib/gitlab/themes.rb | 24 +- lib/gitlab/time_tracking_formatter.rb | 10 +- lib/gitlab/usage/metrics/aggregates/aggregate.rb | 14 +- .../metrics/aggregates/sources/postgres_hll.rb | 6 +- .../usage/metrics/instrumentations/base_metric.rb | 5 +- ...ount_users_using_approve_quick_action_metric.rb | 13 - .../metrics/instrumentations/database_metric.rb | 18 +- .../metrics/instrumentations/generic_metric.rb | 9 + .../metrics/instrumentations/redis_hll_metric.rb | 35 +- lib/gitlab/usage/metrics/name_suggestion.rb | 200 ++ .../usage/metrics/names_suggestions/generator.rb | 182 +- lib/gitlab/usage/metrics/query.rb | 72 + lib/gitlab/usage/time_frame.rb | 25 + lib/gitlab/usage_data.rb | 89 +- .../counter_events/package_events.yml | 1 + .../usage_data_counters/hll_redis_counter.rb | 9 +- .../known_events/code_review_events.yml | 13 + .../usage_data_counters/known_events/common.yml | 4 - .../usage_data_counters/known_events/ecosystem.yml | 4 - .../known_events/epic_events.yml | 6 + .../known_events/package_events.yml | 8 + .../merge_request_activity_unique_counter.rb | 11 +- lib/gitlab/usage_data_metrics.rb | 5 +- lib/gitlab/usage_data_queries.rb | 50 +- lib/gitlab/utils/measuring.rb | 4 +- lib/gitlab/utils/usage_data.rb | 5 +- lib/gitlab/workhorse.rb | 2 +- lib/google_api/cloud_platform/client.rb | 6 - lib/mattermost.rb | 5 + lib/mattermost/client.rb | 8 +- lib/mattermost/error.rb | 5 - lib/mattermost/session.rb | 16 +- lib/microsoft_teams/notifier.rb | 2 +- lib/peek/views/active_record.rb | 19 +- lib/peek/views/memory.rb | 76 + lib/prometheus/pid_provider.rb | 12 - lib/release_highlights/validator/entry.rb | 5 +- lib/security/ci_configuration/base_build_action.rb | 2 +- lib/security/ci_configuration/sast_build_action.rb | 3 - lib/serializers/json.rb | 2 +- .../concerns/container_with_html_options.rb | 10 + lib/sidebars/menu.rb | 10 + lib/sidebars/menu_item.rb | 8 + lib/sidebars/projects/menus/infrastructure_menu.rb | 2 +- lib/sidebars/projects/menus/issues_menu.rb | 2 +- lib/sidebars/projects/menus/labels_menu.rb | 2 +- lib/sidebars/projects/menus/learn_gitlab_menu.rb | 9 +- lib/sidebars/projects/menus/monitor_menu.rb | 6 +- .../projects/menus/packages_registries_menu.rb | 2 +- .../projects/menus/project_information_menu.rb | 29 +- lib/sidebars/projects/menus/scope_menu.rb | 26 + .../projects/menus/security_compliance_menu.rb | 22 +- lib/sidebars/projects/menus/settings_menu.rb | 2 +- lib/support/init.d/gitlab | 21 +- lib/support/init.d/gitlab.default.example | 5 +- lib/system_check/app/redis_version_check.rb | 6 +- .../incoming_email/imap_authentication_check.rb | 2 +- lib/tasks/file_hooks.rake | 7 +- lib/tasks/gitlab/artifacts/migrate.rake | 4 +- lib/tasks/gitlab/backup.rake | 12 +- lib/tasks/gitlab/cleanup.rake | 6 +- lib/tasks/gitlab/db.rake | 27 +- lib/tasks/gitlab/docs/redirect.rake | 75 +- lib/tasks/gitlab/doctor/secrets.rake | 2 +- lib/tasks/gitlab/graphql.rake | 7 +- lib/tasks/gitlab/ldap.rake | 2 +- lib/tasks/gitlab/lfs/migrate.rake | 4 +- lib/tasks/gitlab/packages/composer.rake | 2 +- lib/tasks/gitlab/packages/events.rake | 4 +- lib/tasks/gitlab/packages/migrate.rake | 2 +- lib/tasks/gitlab/pages.rake | 6 +- lib/tasks/gitlab/setup.rake | 2 +- lib/tasks/gitlab/storage.rake | 34 +- lib/tasks/gitlab/terraform/migrate.rake | 2 +- lib/tasks/gitlab/uploads/migrate.rake | 4 +- lib/tasks/gitlab/uploads/sanitize.rake | 2 +- lib/tasks/gitlab/x509/update.rake | 2 +- lib/tasks/import.rake | 4 +- lib/tasks/tokens.rake | 2 +- locale/am_ET/gitlab.po | 1688 ++++++++++---- locale/ar_SA/gitlab.po | 1696 ++++++++++---- locale/as_IN/gitlab.po | 1688 ++++++++++---- locale/az_AZ/gitlab.po | 1688 ++++++++++---- locale/ba_RU/gitlab.po | 1686 ++++++++++---- locale/bg/gitlab.po | 1688 ++++++++++---- locale/bn_BD/gitlab.po | 1688 ++++++++++---- locale/bn_IN/gitlab.po | 1688 ++++++++++---- locale/br_FR/gitlab.po | 1694 ++++++++++---- locale/bs_BA/gitlab.po | 1690 ++++++++++---- locale/ca_ES/gitlab.po | 1688 ++++++++++---- locale/cs_CZ/gitlab.po | 1692 ++++++++++---- locale/cy_GB/gitlab.po | 1696 ++++++++++---- locale/da_DK/gitlab.po | 1688 ++++++++++---- locale/de/gitlab.po | 1700 ++++++++++---- locale/el_GR/gitlab.po | 1688 ++++++++++---- locale/eo/gitlab.po | 1688 ++++++++++---- locale/es/gitlab.po | 1720 ++++++++++---- locale/et_EE/gitlab.po | 1688 ++++++++++---- locale/fa_IR/gitlab.po | 1688 ++++++++++---- locale/fi_FI/gitlab.po | 1688 ++++++++++---- locale/fil_PH/gitlab.po | 1688 ++++++++++---- locale/fr/gitlab.po | 1696 ++++++++++---- locale/gitlab.pot | 1848 ++++++++------- locale/gl_ES/gitlab.po | 1688 ++++++++++---- locale/he_IL/gitlab.po | 1692 ++++++++++---- locale/hi_IN/gitlab.po | 1688 ++++++++++---- locale/hr_HR/gitlab.po | 1690 ++++++++++---- locale/hu_HU/gitlab.po | 1688 ++++++++++---- locale/hy_AM/gitlab.po | 1688 ++++++++++---- locale/id_ID/gitlab.po | 1686 ++++++++++---- locale/ig_NG/gitlab.po | 1686 ++++++++++---- locale/is_IS/gitlab.po | 1688 ++++++++++---- locale/it/gitlab.po | 1688 ++++++++++---- locale/ja/gitlab.po | 1752 ++++++++++---- locale/ka_GE/gitlab.po | 1688 ++++++++++---- locale/kab/gitlab.po | 1688 ++++++++++---- locale/ko/gitlab.po | 1694 ++++++++++---- locale/ku_TR/gitlab.po | 1688 ++++++++++---- locale/ky_KG/gitlab.po | 1688 ++++++++++---- locale/lt_LT/gitlab.po | 1692 ++++++++++---- locale/mk_MK/gitlab.po | 1688 ++++++++++---- locale/mn_MN/gitlab.po | 1688 ++++++++++---- locale/nb_NO/gitlab.po | 1716 ++++++++++---- locale/nl_NL/gitlab.po | 1688 ++++++++++---- locale/pa_IN/gitlab.po | 1688 ++++++++++---- locale/pl_PL/gitlab.po | 2450 +++++++++++++------- locale/pt_BR/gitlab.po | 1700 ++++++++++---- locale/pt_PT/gitlab.po | 1690 ++++++++++---- locale/ro_RO/gitlab.po | 1690 ++++++++++---- locale/ru/gitlab.po | 1718 ++++++++++---- locale/si_LK/gitlab.po | 1688 ++++++++++---- locale/sk_SK/gitlab.po | 1692 ++++++++++---- locale/sl_SI/gitlab.po | 1692 ++++++++++---- locale/sq_AL/gitlab.po | 1688 ++++++++++---- locale/sr_CS/gitlab.po | 1690 ++++++++++---- locale/sr_SP/gitlab.po | 1690 ++++++++++---- locale/sv_SE/gitlab.po | 1688 ++++++++++---- locale/sw_KE/gitlab.po | 1688 ++++++++++---- locale/ta_IN/gitlab.po | 1688 ++++++++++---- locale/tr_TR/gitlab.po | 1696 ++++++++++---- locale/uk/gitlab.po | 2150 +++++++++++------ locale/ur_PK/gitlab.po | 1688 ++++++++++---- locale/uz_UZ/gitlab.po | 1688 ++++++++++---- locale/vi_VN/gitlab.po | 1686 ++++++++++---- locale/zh_CN/gitlab.po | 1762 ++++++++++---- locale/zh_HK/gitlab.po | 1688 ++++++++++---- locale/zh_TW/gitlab.po | 1686 ++++++++++---- package.json | 77 +- plugins/.gitignore | 5 - qa/.gitignore | 1 + qa/Dockerfile | 12 + qa/Gemfile | 3 +- qa/Gemfile.lock | 38 +- qa/qa.rb | 35 +- qa/qa/flow/user.rb | 6 +- qa/qa/page/admin/overview/users/index.rb | 2 +- qa/qa/page/component/issuable/sidebar.rb | 6 +- qa/qa/page/component/issue_board/show.rb | 4 +- qa/qa/page/dashboard/snippet/index.rb | 3 + qa/qa/page/group/members.rb | 2 +- qa/qa/page/group/menu.rb | 8 +- qa/qa/page/group/new.rb | 15 + qa/qa/page/main/menu.rb | 96 +- qa/qa/page/project/branches/show.rb | 16 +- .../page/project/deployments/environments/index.rb | 21 + .../page/project/deployments/environments/show.rb | 23 + qa/qa/page/project/import/github.rb | 27 +- .../page/project/infrastructure/kubernetes/add.rb | 21 + .../infrastructure/kubernetes/add_existing.rb | 46 + .../project/infrastructure/kubernetes/index.rb | 29 + .../page/project/infrastructure/kubernetes/show.rb | 110 + qa/qa/page/project/members.rb | 2 +- qa/qa/page/project/menu.rb | 25 +- qa/qa/page/project/monitor/incidents/index.rb | 21 + qa/qa/page/project/monitor/metrics/show.rb | 137 ++ .../page/project/operations/environments/index.rb | 21 - qa/qa/page/project/operations/environments/show.rb | 23 - qa/qa/page/project/operations/incidents/index.rb | 21 - qa/qa/page/project/operations/kubernetes/add.rb | 21 - .../project/operations/kubernetes/add_existing.rb | 46 - qa/qa/page/project/operations/kubernetes/index.rb | 29 - qa/qa/page/project/operations/kubernetes/show.rb | 110 - qa/qa/page/project/operations/metrics/show.rb | 137 -- qa/qa/page/project/settings/alerts.rb | 39 + qa/qa/page/project/settings/incidents.rb | 39 - qa/qa/page/project/settings/monitor.rb | 23 + qa/qa/page/project/settings/operations.rb | 23 - qa/qa/page/project/show.rb | 7 +- qa/qa/page/project/sub_menus/deployments.rb | 40 + qa/qa/page/project/sub_menus/infrastructure.rb | 40 + qa/qa/page/project/sub_menus/monitor.rb | 48 + qa/qa/page/project/sub_menus/operations.rb | 64 - qa/qa/page/project/sub_menus/project.rb | 6 +- qa/qa/page/project/sub_menus/settings.rb | 4 +- qa/qa/page/registration/sign_up.rb | 5 +- qa/qa/resource/group.rb | 39 +- qa/qa/resource/group_base.rb | 47 +- qa/qa/resource/group_label.rb | 25 + .../resource/kubernetes_cluster/project_cluster.rb | 12 +- qa/qa/resource/label.rb | 61 - qa/qa/resource/label_base.rb | 88 + qa/qa/resource/project.rb | 138 +- qa/qa/resource/project_imported_from_github.rb | 14 +- qa/qa/resource/project_label.rb | 28 + qa/qa/resource/sandbox.rb | 2 + qa/qa/runtime/allure_report.rb | 85 + qa/qa/runtime/env.rb | 7 +- qa/qa/runtime/scenario.rb | 8 +- .../api/3_create/gitaly/distributed_reads_spec.rb | 2 +- .../gitaly/praefect_replication_queue_spec.rb | 2 +- .../1_manage/group/bulk_import_group_spec.rb | 57 +- .../create_group_with_mattermost_team_spec.rb | 10 +- .../1_manage/group/transfer_group_spec.rb | 7 +- .../1_manage/project/import_github_repo_spec.rb | 143 +- .../2_plan/issue/real_time_assignee_spec.rb | 5 +- .../modify_design_content_spec.rb | 2 +- .../merge_request/create_merge_request_spec.rb | 13 +- .../merge_merge_request_from_fork_spec.rb | 3 +- .../repository/add_list_delete_branches_spec.rb | 4 +- .../repository/push_http_private_token_spec.rb | 2 +- .../snippet/create_personal_snippet_spec.rb | 2 +- ...te_personal_snippet_with_multiple_files_spec.rb | 2 +- .../3_create/snippet/snippet_index_page_spec.rb | 2 +- .../pipeline/create_and_process_pipeline_spec.rb | 7 +- .../5_package/container_registry_spec.rb | 8 + .../browser_ui/5_package/maven_repository_spec.rb | 4 +- .../browser_ui/5_package/npm_registry_spec.rb | 4 +- .../browser_ui/5_package/nuget_repository_spec.rb | 10 +- .../6_release/pages/pages_pipeline_spec.rb | 3 +- .../auto_devops/auto_devops_templates_spec.rb | 4 +- .../create_project_with_auto_devops_spec.rb | 8 +- .../kubernetes/kubernetes_integration_spec.rb | 4 +- .../8_monitor/all_monitor_core_features_spec.rb | 34 +- .../8_monitor/cluster_with_prometheus.rb | 2 +- .../browser_ui/non_devops/performance_bar_spec.rb | 2 +- qa/qa/tools/delete_projects.rb | 8 +- qa/qa/tools/delete_subgroups.rb | 8 +- qa/qa/tools/delete_test_ssh_keys.rb | 8 +- qa/qa/tools/generate_perf_testdata.rb | 28 +- qa/qa/tools/revoke_all_personal_access_tokens.rb | 4 +- qa/spec/spec_helper.rb | 5 +- qa/spec/specs/helpers/context_selector_spec.rb | 6 +- qa/spec/support/matchers/eventually_matcher.rb | 132 ++ qa/tls_certificates/client/client.crt | 30 + qa/tls_certificates/client/client.csr | 27 + qa/tls_certificates/client/client.key | 51 + qa/tls_certificates/client/client.pem | 113 + qa/tls_certificates/client/client.pfx | Bin 0 -> 7021 bytes .../cop/usage_data/histogram_with_large_table.rb | 58 + .../cop/usage_data/instrumentation_superclass.rb | 63 + rubocop/rubocop-usage-data.yml | 66 + scripts/frontend/startup_css/clean_css.js | 83 + scripts/frontend/startup_css/constants.js | 106 + scripts/frontend/startup_css/get_css_path.js | 22 + scripts/frontend/startup_css/get_startup_css.js | 69 + scripts/frontend/startup_css/main.js | 60 + scripts/frontend/startup_css/setup.sh | 76 + .../frontend/startup_css/startup_css_changed.sh | 40 + scripts/frontend/startup_css/utils.js | 8 + scripts/frontend/startup_css/write_startup_scss.js | 28 + scripts/gitaly-test-build | 9 +- scripts/lint-changelog-filenames | 12 - scripts/prepare_build.sh | 3 + scripts/review_apps/base-config.yaml | 4 +- scripts/review_apps/review-apps.sh | 89 +- scripts/rspec_helpers.sh | 2 +- scripts/security-harness | 3 +- scripts/static-analysis | 29 +- scripts/trigger-build | 41 +- scripts/utils.sh | 14 + scripts/verify-tff-mapping | 4 +- spec/bin/changelog_spec.rb | 119 - spec/bin/sidekiq_cluster_spec.rb | 6 +- spec/config/mail_room_spec.rb | 4 +- .../metrics/aggregates/aggregated_metrics_spec.rb | 8 +- spec/controllers/abuse_reports_controller_spec.rb | 2 +- .../admin/appearances_controller_spec.rb | 91 - .../appearances_controller_spec.rb | 91 + spec/controllers/admin/groups_controller_spec.rb | 21 +- .../admin/integrations_controller_spec.rb | 4 +- spec/controllers/admin/runners_controller_spec.rb | 8 + spec/controllers/admin/services_controller_spec.rb | 2 +- spec/controllers/admin/users_controller_spec.rb | 89 + spec/controllers/application_controller_spec.rb | 4 +- spec/controllers/confirmations_controller_spec.rb | 64 +- .../dashboard/projects_controller_spec.rb | 9 +- .../groups/group_members_controller_spec.rb | 47 +- .../registry/repositories_controller_spec.rb | 2 + .../settings/integrations_controller_spec.rb | 4 +- spec/controllers/groups_controller_spec.rb | 58 +- .../import/bulk_imports_controller_spec.rb | 6 +- .../omniauth_callbacks_controller_spec.rb | 24 + spec/controllers/passwords_controller_spec.rb | 12 + spec/controllers/profiles_controller_spec.rb | 13 +- .../cycle_analytics/summary_controller_spec.rb | 46 + spec/controllers/projects/blob_controller_spec.rb | 34 + .../projects/branches_controller_spec.rb | 15 - .../controllers/projects/commit_controller_spec.rb | 12 - .../projects/compare_controller_spec.rb | 17 +- .../projects/feature_flags_controller_spec.rb | 94 +- .../feature_flags_user_lists_controller_spec.rb | 33 + spec/controllers/projects/forks_controller_spec.rb | 19 + .../controllers/projects/issues_controller_spec.rb | 2 +- .../projects/mattermosts_controller_spec.rb | 6 +- .../merge_requests/conflicts_controller_spec.rb | 124 +- .../infrastructure_registry_controller_spec.rb | 45 + .../projects/pipelines_controller_spec.rb | 45 +- .../projects/project_members_controller_spec.rb | 74 +- .../projects/service_hook_logs_controller_spec.rb | 8 +- .../projects/services_controller_spec.rb | 8 +- .../settings/operations_controller_spec.rb | 5 +- .../projects/templates_controller_spec.rb | 26 +- spec/controllers/projects_controller_spec.rb | 18 +- spec/controllers/registrations_controller_spec.rb | 24 + spec/controllers/search_controller_spec.rb | 2 +- spec/db/schema_spec.rb | 4 +- spec/deprecation_toolkit_env.rb | 6 +- spec/docs_screenshots/wiki_docs.rb | 47 + spec/experiments/application_experiment_spec.rb | 65 +- .../members/invite_email_experiment_spec.rb | 10 +- spec/factories/bulk_import/trackers.rb | 6 + spec/factories/ci/builds.rb | 32 +- spec/factories/ci/job_artifacts.rb | 15 - spec/factories/ci/job_token/project_scope_links.rb | 9 + spec/factories/clusters/applications/helm.rb | 26 - spec/factories/clusters/clusters.rb | 6 +- spec/factories/environments.rb | 8 +- .../background_migration/batched_migrations.rb | 1 + spec/factories/groups.rb | 7 + spec/factories/integration_data.rb | 6 +- spec/factories/integrations.rb | 36 +- spec/factories/merge_requests.rb | 5 + spec/factories/operations/feature_flag_scopes.rb | 2 +- spec/factories/operations/feature_flags.rb | 1 + spec/factories/packages.rb | 2 +- spec/factories/packages/debian/component_file.rb | 6 +- spec/factories/packages/debian/distribution_key.rb | 16 + spec/factories/packages/debian/file_metadatum.rb | 48 +- spec/factories/packages/package_file.rb | 28 +- spec/factories/projects.rb | 4 + spec/factories/user_details.rb | 1 + spec/factories_spec.rb | 3 + spec/features/admin/admin_appearance_spec.rb | 20 +- spec/features/admin/admin_hooks_spec.rb | 18 - spec/features/admin/admin_mode/logout_spec.rb | 31 +- spec/features/admin/admin_mode_spec.rb | 77 +- spec/features/admin/admin_runners_spec.rb | 58 +- spec/features/admin/admin_search_settings_spec.rb | 2 +- .../admin/admin_sees_background_migrations_spec.rb | 84 + spec/features/admin/admin_settings_spec.rb | 46 +- spec/features/admin/clusters/applications_spec.rb | 22 - ...user_activates_mattermost_slash_command_spec.rb | 16 + spec/features/admin/users/user_spec.rb | 30 +- spec/features/admin/users/users_spec.rb | 458 ++-- .../alert_management/alert_management_list_spec.rb | 24 + .../user_views_alerts_settings_spec.rb | 2 +- spec/features/boards/boards_spec.rb | 42 +- spec/features/boards/issue_ordering_spec.rb | 2 +- spec/features/boards/multi_select_spec.rb | 4 +- spec/features/boards/new_issue_spec.rb | 34 +- spec/features/boards/sidebar_assignee_spec.rb | 2 +- spec/features/boards/sidebar_milestones_spec.rb | 4 +- spec/features/calendar_spec.rb | 13 +- spec/features/clusters/cluster_detail_page_spec.rb | 24 - .../clusters/cluster_health_dashboard_spec.rb | 12 +- .../installing_applications_shared_examples.rb | 252 -- spec/features/contextual_sidebar_spec.rb | 8 +- spec/features/cycle_analytics_spec.rb | 4 +- spec/features/dashboard/active_tab_spec.rb | 21 +- ...ard_with_external_authorization_service_spec.rb | 19 +- spec/features/dashboard/group_spec.rb | 2 + spec/features/dashboard/shortcuts_spec.rb | 18 +- .../frequently_visited_projects_and_groups_spec.rb | 14 +- spec/features/groups/clusters/applications_spec.rb | 23 - spec/features/groups/group_settings_spec.rb | 20 + .../groups/import_export/connect_instance_spec.rb | 4 +- .../groups/import_export/import_file_spec.rb | 14 +- ...user_activates_mattermost_slash_command_spec.rb | 16 + spec/features/groups/members/manage_groups_spec.rb | 76 + .../features/groups/members/manage_members_spec.rb | 59 +- spec/features/groups/members/tabs_spec.rb | 6 +- .../groups/milestones/gfm_autocomplete_spec.rb | 1 + spec/features/groups/navbar_spec.rb | 12 + .../settings/user_searches_in_settings_spec.rb | 2 +- spec/features/groups_spec.rb | 38 +- spec/features/incidents/incident_details_spec.rb | 38 + spec/features/issues/csv_spec.rb | 4 +- spec/features/issues/issue_detail_spec.rb | 63 +- spec/features/issues/issue_sidebar_spec.rb | 4 +- spec/features/issues/user_creates_issue_spec.rb | 48 +- spec/features/issues/user_edits_issue_spec.rb | 5 +- .../issues/user_interacts_with_awards_spec.rb | 10 +- .../user_resets_their_incoming_email_token_spec.rb | 4 +- .../issues/user_toggles_subscription_spec.rb | 71 +- spec/features/markdown/mermaid_spec.rb | 97 +- spec/features/markdown/metrics_spec.rb | 2 +- ...ows_commits_from_memebers_who_can_merge_spec.rb | 6 +- .../merge_request/user_awards_emoji_spec.rb | 4 +- .../user_edits_assignees_sidebar_spec.rb | 4 +- .../user_edits_reviewers_sidebar_spec.rb | 61 + .../merge_request/user_merges_immediately_spec.rb | 2 +- .../user_sees_merge_request_pipelines_spec.rb | 2 + .../merge_request/user_sees_merge_widget_spec.rb | 12 +- .../merge_request/user_sees_versions_spec.rb | 8 +- .../merge_request/user_views_diffs_spec.rb | 1 + .../merge_requests/user_exports_as_csv_spec.rb | 8 +- spec/features/nav/top_nav_responsive_spec.rb | 53 + spec/features/profile_spec.rb | 4 +- .../profiles/personal_access_tokens_spec.rb | 11 +- spec/features/profiles/user_edit_profile_spec.rb | 2 + .../features/profiles/user_search_settings_spec.rb | 2 +- spec/features/projects/active_tabs_spec.rb | 25 +- .../projects/badges/pipeline_badge_spec.rb | 2 +- spec/features/projects/blobs/blob_show_spec.rb | 22 +- .../projects/branches/user_deletes_branch_spec.rb | 33 +- .../projects/branches/user_views_branches_spec.rb | 11 +- spec/features/projects/branches_spec.rb | 67 +- .../projects/clusters/applications_spec.rb | 23 - .../confluence/user_views_confluence_page_spec.rb | 2 +- .../projects/environments/environment_spec.rb | 22 +- .../projects/environments/environments_spec.rb | 2 +- .../projects/environments_pod_logs_spec.rb | 2 +- .../user_deletes_feature_flag_user_list_spec.rb | 7 +- .../user_sees_feature_flag_list_spec.rb | 58 +- .../user_updates_feature_flag_spec.rb | 8 +- spec/features/projects/features_visibility_spec.rb | 4 +- .../projects/import_export/import_file_spec.rb | 10 +- .../projects/infrastructure_registry_spec.rb | 61 + .../integrations/user_activates_flowdock_spec.rb | 22 + .../integrations/user_activates_jira_spec.rb | 149 ++ .../user_activates_pivotaltracker_spec.rb | 20 + .../features/projects/members/invite_group_spec.rb | 8 + spec/features/projects/members/list_spec.rb | 50 +- spec/features/projects/members/tabs_spec.rb | 4 +- .../projects/members/user_requests_access_spec.rb | 7 +- spec/features/projects/navbar_spec.rb | 4 + spec/features/projects/new_project_spec.rb | 52 +- .../projects/pages/user_edits_settings_spec.rb | 6 - .../projects/releases/user_views_releases_spec.rb | 172 +- .../features/projects/serverless/functions_spec.rb | 1 - .../projects/services/disable_triggers_spec.rb | 2 +- .../services/user_activates_flowdock_spec.rb | 22 - .../projects/services/user_activates_jira_spec.rb | 149 -- ...user_activates_mattermost_slash_command_spec.rb | 35 +- .../services/user_activates_pivotaltracker_spec.rb | 20 - .../user_activates_slack_notifications_spec.rb | 2 +- .../projects/settings/monitor_settings_spec.rb | 16 +- .../projects/settings/registry_settings_spec.rb | 12 +- .../projects/settings/service_desk_setting_spec.rb | 19 +- .../user_manages_merge_requests_settings_spec.rb | 6 +- .../settings/user_searches_in_settings_spec.rb | 2 +- spec/features/projects/show/schema_markup_spec.rb | 4 +- .../show/user_sees_collaboration_links_spec.rb | 12 +- spec/features/projects/user_uses_shortcuts_spec.rb | 8 +- .../projects/user_views_empty_project_spec.rb | 23 +- .../projects/wiki/user_views_wiki_empty_spec.rb | 2 +- .../wiki/user_views_wiki_in_project_page_spec.rb | 7 +- spec/features/projects_spec.rb | 14 +- spec/features/protected_branches_spec.rb | 52 +- .../features/search/user_searches_for_code_spec.rb | 2 +- .../search/user_searches_for_issues_spec.rb | 2 +- .../user_searches_for_merge_requests_spec.rb | 7 +- .../search/user_searches_for_milestones_spec.rb | 2 +- .../search/user_searches_for_wiki_pages_spec.rb | 2 +- .../search/user_uses_header_search_field_spec.rb | 4 +- .../search/user_uses_search_filters_spec.rb | 8 +- .../project/snippet/private_access_spec.rb | 81 +- spec/features/users/show_spec.rb | 8 + spec/features/users/signup_spec.rb | 2 +- spec/finders/ci/auth_job_finder_spec.rb | 30 +- spec/finders/ci/runners_finder_spec.rb | 58 +- .../concerns/packages/finder_helper_spec.rb | 82 +- spec/finders/deployments_finder_spec.rb | 24 - spec/finders/feature_flags_finder_spec.rb | 8 +- spec/finders/issues_finder_spec.rb | 10 + .../packages/helm/package_files_finder_spec.rb | 47 + spec/finders/packages/maven/package_finder_spec.rb | 136 +- spec/finders/packages/pypi/package_finder_spec.rb | 10 +- spec/finders/pending_todos_finder_spec.rb | 28 +- .../projects/serverless/functions_finder_spec.rb | 2 +- spec/finders/projects_finder_spec.rb | 35 +- spec/finders/security/security_jobs_finder_spec.rb | 6 +- .../schemas/analytics/cycle_analytics/summary.json | 21 + spec/fixtures/api/schemas/cluster_status.json | 2 - .../fixtures/api/schemas/entities/issue_board.json | 3 +- spec/fixtures/api/schemas/external_validation.json | 4 +- .../schemas/graphql/packages/package_details.json | 1 + .../graphql/packages/package_pypi_metadata.json | 13 + spec/fixtures/api/schemas/public_api/v4/board.json | 2 + .../api/schemas/public_api/v4/label_basic.json | 6 +- .../api/schemas/public_api/v4/project.json | 8 +- spec/fixtures/bulk_imports/boards.ndjson | 1 + spec/fixtures/bulk_imports/gz/boards.ndjson.gz | Bin 0 -> 432 bytes spec/fixtures/bulk_imports/gz/labels.ndjson.gz | Bin 0 -> 202 bytes spec/fixtures/bulk_imports/gz/milestones.ndjson.gz | Bin 0 -> 402 bytes spec/fixtures/bulk_imports/labels.ndjson | 1 + spec/fixtures/bulk_imports/labels.ndjson.gz | Bin 202 -> 0 bytes spec/fixtures/bulk_imports/milestones.ndjson | 5 + .../config/redis_cache_config_with_env.yml | 2 - .../config/redis_cache_new_format_host.yml | 29 - .../config/redis_cache_new_format_socket.yml | 6 - .../config/redis_cache_old_format_host.yml | 5 - .../config/redis_cache_old_format_socket.yml | 3 - spec/fixtures/config/redis_new_format_host.yml | 18 +- .../config/redis_queues_config_with_env.yml | 2 - .../config/redis_queues_new_format_host.yml | 29 - .../config/redis_queues_new_format_socket.yml | 6 - .../config/redis_queues_old_format_host.yml | 5 - .../config/redis_queues_old_format_socket.yml | 3 - .../config/redis_shared_state_config_with_env.yml | 2 - .../config/redis_shared_state_new_format_host.yml | 29 - .../redis_shared_state_new_format_socket.yml | 6 - .../config/redis_shared_state_old_format_host.yml | 5 - .../redis_shared_state_old_format_socket.yml | 3 - spec/fixtures/dns/a_rr.json | 4 + .../dns/a_with_aaaa_rr_in_additional_section.json | 4 + spec/fixtures/dns/aaaa_rr.json | 4 + .../dns/srv_with_a_rr_in_additional_section.json | 4 + .../helm/helm_list_v2_cilium_deployed.json.gz | Bin 302 -> 0 bytes .../helm/helm_list_v2_cilium_failed.json.gz | Bin 304 -> 0 bytes .../helm/helm_list_v2_cilium_missing.json.gz | Bin 320 -> 0 bytes spec/fixtures/helm/helm_list_v2_empty_blob.json.gz | Bin 81 -> 0 bytes .../helm/helm_list_v2_prometheus_deployed.json.gz | Bin 338 -> 0 bytes .../helm/helm_list_v2_prometheus_failed.json.gz | Bin 339 -> 0 bytes .../helm/helm_list_v2_prometheus_missing.json.gz | Bin 320 -> 0 bytes .../sample_metric.yml | 1 + .../sample_metric_with_ee.yml | 1 + .../sample_metric_with_name_suggestions.yml | 1 + .../gitlab/usage_metric_generator/sample_metric.rb | 14 + .../usage_metric_generator/sample_metric_test.rb | 7 + .../debian/sample-dev_1.2.3~binary_amd64.deb | Bin 1164 -> 1164 bytes .../fixtures/packages/debian/sample/debian/control | 2 +- .../packages/debian/sample_1.2.3~alpha2.dsc | 6 +- .../packages/debian/sample_1.2.3~alpha2.tar.xz | Bin 864 -> 864 bytes .../debian/sample_1.2.3~alpha2_amd64.buildinfo | 275 +-- .../debian/sample_1.2.3~alpha2_amd64.changes | 26 +- .../survey_response_schema.json | 8 +- spec/fixtures/whats_new/20201225_01_05.yml | 2 +- .../__helpers__/mock_user_callout_dismisser.js | 16 + spec/frontend/__helpers__/vue_test_utils_helper.js | 11 +- .../__helpers__/vue_test_utils_helper_spec.js | 3 +- .../components/alert_management_table_spec.js | 32 +- .../__snapshots__/alerts_form_spec.js.snap | 119 + .../alerts_settings/components/alerts_form_spec.js | 50 + .../components/alerts_integrations_list_spec.js | 2 +- .../components/alerts_settings_wrapper_spec.js | 11 +- spec/frontend/api_spec.js | 68 +- .../batch_comments/components/preview_item_spec.js | 4 +- .../stores/modules/batch_comments/actions_spec.js | 6 + .../behaviors/shortcuts/keybindings_spec.js | 11 + .../blob/components/table_contents_spec.js | 67 + spec/frontend/boards/board_card_inner_spec.js | 20 +- spec/frontend/boards/board_list_spec.js | 7 +- spec/frontend/boards/boards_util_spec.js | 112 +- .../__snapshots__/board_blocked_icon_spec.js.snap | 2 +- spec/frontend/boards/components/board_card_spec.js | 38 +- .../components/board_content_sidebar_spec.js | 32 +- .../components/board_filtered_search_spec.js | 4 +- spec/frontend/boards/components/board_form_spec.js | 20 +- .../board_list_header_deprecated_spec.js | 13 +- .../boards/components/board_list_header_spec.js | 14 +- .../sidebar/board_sidebar_due_date_spec.js | 137 -- .../sidebar/board_sidebar_labels_select_spec.js | 6 +- .../sidebar/board_sidebar_milestone_select_spec.js | 178 -- .../sidebar/board_sidebar_subscription_spec.js | 11 +- .../sidebar/board_sidebar_time_tracker_spec.js | 13 +- .../components/sidebar/board_sidebar_title_spec.js | 6 +- .../boards/project_select_deprecated_spec.js | 8 +- spec/frontend/boards/stores/actions_spec.js | 171 +- spec/frontend/boards/stores/mutations_spec.js | 47 + .../components/delete_branch_button_spec.js | 96 + .../components/delete_branch_modal_spec.js | 157 ++ .../ci_variable_list/store/actions_spec.js | 12 +- .../remove_cluster_confirmation_spec.js.snap | 2 + .../clusters/components/applications_spec.js | 41 - .../components/fluentd_output_settings_spec.js | 186 -- .../ingress_modsecurity_settings_spec.js | 192 -- .../forms/components/integration_form_spec.js | 13 - spec/frontend/clusters/services/mock_data.js | 3 - .../clusters/stores/clusters_store_spec.js | 23 - spec/frontend/commit/pipelines/pipelines_spec.js | 280 --- .../commit/pipelines/pipelines_table_spec.js | 253 ++ .../__snapshots__/toolbar_link_button_spec.js.snap | 36 + .../components/content_editor_spec.js | 9 +- .../components/toolbar_link_button_spec.js | 151 ++ .../components/toolbar_text_style_dropdown_spec.js | 131 ++ .../content_editor/components/top_toolbar_spec.js | 19 +- .../extensions/code_block_highlight_spec.js | 37 + .../content_editor/extensions/link_spec.js | 61 + .../track_input_rules_and_shortcuts_spec.js | 45 +- spec/frontend/content_editor/test_utils.js | 132 +- .../eks_cluster/store/actions_spec.js | 6 +- .../__snapshots__/base_spec.js.snap | 9 + spec/frontend/cycle_analytics/base_spec.js | 197 ++ spec/frontend/cycle_analytics/mock_data.js | 175 +- .../cycle_analytics/path_navigation_spec.js | 148 ++ .../frontend/cycle_analytics/store/actions_spec.js | 191 +- .../frontend/cycle_analytics/store/getters_spec.js | 16 + .../cycle_analytics/store/mutations_spec.js | 34 +- spec/frontend/cycle_analytics/utils_spec.js | 129 +- spec/frontend/deploy_freeze/store/actions_spec.js | 8 +- .../frontend/diffs/components/diff_content_spec.js | 1 + spec/frontend/diffs/components/diff_stats_spec.js | 53 +- .../diffs/components/settings_dropdown_spec.js | 1 - spec/frontend/diffs/mock_data/diff_file.js | 2 + spec/frontend/diffs/store/actions_spec.js | 62 +- spec/frontend/diffs/store/utils_spec.js | 328 --- spec/frontend/diffs/utils/diff_file_spec.js | 78 +- spec/frontend/diffs/utils/workers_spec.js | 309 +++ spec/frontend/editor/editor_ci_schema_ext_spec.js | 7 +- .../emoji/awards_app/store/actions_spec.js | 191 +- .../components/error_details_spec.js | 10 +- spec/frontend/error_tracking/store/actions_spec.js | 2 +- .../error_tracking/store/details/actions_spec.js | 2 +- .../error_tracking/store/list/actions_spec.js | 2 +- .../feature_flags/components/empty_state_spec.js | 136 ++ .../feature_flags/components/feature_flags_spec.js | 145 +- .../components/feature_flags_tab_spec.js | 167 -- .../components/user_lists_table_spec.js | 98 - .../feature_flags/store/index/actions_spec.js | 165 +- .../feature_flags/store/index/mutations_spec.js | 94 +- .../filtered_search_manager_spec.js | 2 +- spec/frontend/fixtures/api_markdown.rb | 2 +- spec/frontend/fixtures/releases.rb | 11 + spec/frontend/fixtures/runner.rb | 75 + spec/frontend/fixtures/services.rb | 2 +- spec/frontend/fixtures/startup_css.rb | 88 + spec/frontend/fixtures/static/projects.json | 9 + spec/frontend/flash_spec.js | 49 +- .../frontend/frequent_items/components/app_spec.js | 18 +- .../__snapshots__/grafana_integration_spec.js.snap | 42 +- .../components/grafana_integration_spec.js | 22 +- spec/frontend/groups/components/group_item_spec.js | 122 +- spec/frontend/ide/components/branches/item_spec.js | 2 +- .../ide/components/commit_sidebar/actions_spec.js | 14 +- .../ide/components/commit_sidebar/form_spec.js | 2 +- .../new_merge_request_option_spec.js | 6 +- spec/frontend/ide/components/ide_review_spec.js | 4 +- spec/frontend/ide/components/ide_spec.js | 4 +- .../frontend/ide/components/ide_status_bar_spec.js | 2 +- spec/frontend/ide/components/ide_tree_list_spec.js | 6 +- spec/frontend/ide/components/ide_tree_spec.js | 4 +- .../ide/components/merge_requests/list_spec.js | 2 +- spec/frontend/ide/components/nav_dropdown_spec.js | 4 +- .../ide/components/new_dropdown/index_spec.js | 2 +- .../ide/components/new_dropdown/modal_spec.js | 18 +- .../ide/components/repo_commit_section_spec.js | 6 +- spec/frontend/ide/components/repo_editor_spec.js | 8 +- spec/frontend/ide/ide_router_spec.js | 12 +- spec/frontend/ide/mock_data.js | 14 +- spec/frontend/ide/services/index_spec.js | 2 +- spec/frontend/ide/stores/actions/file_spec.js | 16 +- .../ide/stores/actions/merge_request_spec.js | 14 +- spec/frontend/ide/stores/actions/project_spec.js | 32 +- spec/frontend/ide/stores/actions/tree_spec.js | 22 +- spec/frontend/ide/stores/actions_spec.js | 6 +- spec/frontend/ide/stores/getters_spec.js | 36 +- .../ide/stores/modules/commit/actions_spec.js | 22 +- .../ide/stores/modules/commit/getters_spec.js | 4 +- .../stores/modules/terminal/actions/checks_spec.js | 2 +- .../terminal/actions/session_controls_spec.js | 12 +- .../terminal/actions/session_status_spec.js | 6 +- spec/frontend/ide/stores/mutations/branch_spec.js | 10 +- spec/frontend/ide/stores/mutations/file_spec.js | 6 +- spec/frontend/ide/stores/mutations/tree_spec.js | 24 +- spec/frontend/ide/stores/mutations_spec.js | 22 +- spec/frontend/ide/stores/utils_spec.js | 18 +- spec/frontend/ide/utils_spec.js | 34 +- .../components/import_table_row_spec.js | 117 +- .../import_projects/store/actions_spec.js | 18 +- .../incidents/components/incidents_list_spec.js | 31 - .../__snapshots__/alerts_form_spec.js.snap | 114 - .../incidents_settings_tabs_spec.js.snap | 18 +- .../__snapshots__/pagerduty_form_spec.js.snap | 16 +- .../components/alerts_form_spec.js | 51 - .../components/incidents_settings_service_spec.js | 7 +- .../components/pagerduty_form_spec.js | 23 +- .../edit/components/active_checkbox_spec.js | 1 + .../edit/components/confirmation_modal_spec.js | 8 +- .../edit/components/dynamic_field_spec.js | 16 +- .../edit/components/integration_form_spec.js | 61 +- .../edit/components/jira_issues_fields_spec.js | 54 +- .../edit/components/jira_trigger_fields_spec.js | 18 +- .../edit/components/jira_upgrade_cta_spec.js | 9 +- .../edit/components/override_dropdown_spec.js | 10 +- .../edit/components/trigger_fields_spec.js | 23 +- .../index/components/integrations_list_spec.js | 6 +- .../invite_members/components/group_select_spec.js | 33 +- .../components/invite_members_modal_spec.js | 50 +- .../components/invite_members_trigger_spec.js | 16 +- .../issuable/components/csv_export_modal_spec.js | 44 +- .../components/csv_import_export_buttons_spec.js | 58 +- .../issuable/components/csv_import_modal_spec.js | 48 +- .../issuable/components/issuable_by_email_spec.js | 11 +- .../issuable/components/status_box_spec.js | 4 +- .../components/related_issues_root_spec.js | 6 +- .../issuable_list/components/issuable_item_spec.js | 4 +- spec/frontend/issue_show/components/app_spec.js | 41 +- .../issue_show/components/description_spec.js | 2 +- .../issue_show/components/edit_actions_spec.js | 180 +- .../issue_show/components/fields/type_spec.js | 84 + spec/frontend/issue_show/components/form_spec.js | 17 + .../components/incidents/incident_tabs_spec.js | 2 +- spec/frontend/issue_show/issue_spec.js | 2 +- spec/frontend/issue_show/mock_data.js | 59 - spec/frontend/issue_show/mock_data/apollo_mock.js | 9 + spec/frontend/issue_show/mock_data/mock_data.js | 60 + .../components/issuables_list_app_spec.js | 5 +- .../issues_list/components/issues_list_app_spec.js | 134 +- spec/frontend/issues_list/mock_data.js | 14 +- spec/frontend/issues_list/utils_spec.js | 10 +- .../__snapshots__/jira_import_form_spec.js.snap | 6 + .../components/jira_import_progress_spec.js | 2 +- .../jobs/components/table/job_table_app_spec.js | 90 +- spec/frontend/lib/utils/datetime_utility_spec.js | 17 +- spec/frontend/lib/utils/number_utility_spec.js | 4 + spec/frontend/lib/utils/table_utility_spec.js | 11 + spec/frontend/lib/utils/url_utility_spec.js | 88 +- .../logs/components/environment_logs_spec.js | 3 +- spec/frontend/logs/mock_data.js | 27 - spec/frontend/logs/stores/actions_spec.js | 27 - spec/frontend/logs/stores/getters_spec.js | 48 +- spec/frontend/logs/stores/mutations_spec.js | 36 - spec/frontend/members/components/app_spec.js | 2 +- .../members/components/members_tabs_spec.js | 10 +- .../modals/remove_group_link_modal_spec.js | 2 +- .../members/components/table/expires_at_spec.js | 2 +- .../members/components/table/role_dropdown_spec.js | 2 +- spec/frontend/members/index_spec.js | 19 +- spec/frontend/members/mock_data.js | 13 +- spec/frontend/members/utils_spec.js | 10 +- spec/frontend/monitoring/alert_widget_spec.js | 2 +- .../__snapshots__/dashboard_template_spec.js.snap | 1 - .../components/charts/time_series_spec.js | 8 +- .../monitoring/components/dashboard_panel_spec.js | 26 + .../monitoring/components/dashboard_spec.js | 44 +- .../components/dashboard_url_time_spec.js | 2 +- spec/frontend/monitoring/store/actions_spec.js | 14 +- .../frontend/nav/components/responsive_app_spec.js | 173 ++ .../nav/components/responsive_header_spec.js | 67 + .../nav/components/responsive_home_spec.js | 137 ++ spec/frontend/nav/components/top_nav_app_spec.js | 31 +- .../nav/components/top_nav_container_view_spec.js | 60 +- .../nav/components/top_nav_dropdown_menu_spec.js | 121 +- .../nav/components/top_nav_menu_item_spec.js | 76 +- .../nav/components/top_nav_menu_sections_spec.js | 107 + .../nav/components/top_nav_new_dropdown_spec.js | 122 + spec/frontend/nav/mock_data.js | 4 + .../frontend/notes/components/comment_form_spec.js | 41 +- .../notes/components/discussion_actions_spec.js | 11 +- .../discussion_reply_placeholder_spec.js | 23 +- .../notes/components/noteable_discussion_spec.js | 12 + spec/frontend/notes/stores/actions_spec.js | 180 +- .../components/metrics_settings_spec.js | 16 +- .../components/__snapshots__/file_sha_spec.js.snap | 30 + .../packages/details/components/app_spec.js | 109 +- .../packages/details/components/file_sha_spec.js | 33 + .../components/installations_commands_spec.js | 4 + .../details/components/package_files_spec.js | 132 +- .../packages/details/store/actions_spec.js | 62 +- .../packages/details/store/mutations_spec.js | 9 + spec/frontend/packages/list/stores/actions_spec.js | 6 +- spec/frontend/packages/mock_data.js | 17 + .../__snapshots__/package_list_row_spec.js.snap | 4 +- .../terraform_installation_spec.js.snap | 44 + .../components/details_title_spec.js | 93 + .../components/terraform_installation_spec.js | 61 + .../components/registry_settings_app_spec.js | 26 + .../cleanup_policy_enabled_alert_spec.js.snap | 19 + .../cleanup_policy_enabled_alert_spec.js | 49 + .../components/promote_milestone_modal_spec.js | 4 +- .../projects/forks/new/components/app_spec.js | 1 + .../forks/new/components/fork_form_spec.js | 182 +- .../forks/new/components/fork_groups_list_spec.js | 2 +- .../__snapshots__/code_coverage_spec.js.snap | 2 +- .../__snapshots__/learn_gitlab_a_spec.js.snap | 2 + .../__snapshots__/learn_gitlab_b_spec.js.snap | 2 + .../components/interval_pattern_input_spec.js | 27 + .../pages/shared/nav/sidebar_tracking_spec.js | 160 ++ .../shared/wikis/components/wiki_form_spec.js | 115 +- .../frontend/pages/users/activity_calendar_spec.js | 16 + .../components/commit/commit_section_spec.js | 9 +- .../drawer/cards/first_pipeline_card_spec.js | 12 +- .../drawer/ui/pipeline_visual_reference_spec.js | 31 - .../components/editor/text_editor_spec.js | 51 +- .../components/file-nav/branch_switcher_spec.js | 153 +- spec/frontend/pipeline_editor/mock_data.js | 1 + .../frontend/pipelines/components/dag/mock_data.js | 14 + .../graph/graph_component_wrapper_spec.js | 2 +- .../pipelines/graph/linked_pipeline_spec.js | 6 + .../__snapshots__/links_inner_spec.js.snap | 7 + .../pipelines/graph_shared/links_inner_spec.js | 23 +- spec/frontend/pipelines/header_component_spec.js | 16 + spec/frontend/pipelines/mock_data.js | 51 + .../notification/pipeline_notification_spec.js | 79 - spec/frontend/pipelines/parsing_utils_spec.js | 10 +- .../frontend/pipelines/pipeline_graph/mock_data.js | 32 + .../pipelines/pipeline_graph/utils_spec.js | 22 + spec/frontend/pipelines/pipelines_spec.js | 32 +- .../pipelines/test_reports/stores/actions_spec.js | 2 +- .../account/components/update_username_spec.js | 12 +- .../projects/commit/components/form_modal_spec.js | 7 +- .../projects/commits/store/actions_spec.js | 6 +- .../protected_branch_edit_spec.js | 6 +- .../__snapshots__/registry_breadcrumb_spec.js.snap | 1 + .../components/details_page/tags_list_row_spec.js | 8 +- spec/frontend/registry/explorer/pages/list_spec.js | 53 +- .../related_merge_requests/store/actions_spec.js | 6 +- .../releases/__snapshots__/util_spec.js.snap | 56 +- .../components/app_index_apollo_client_spec.js | 394 ++++ .../components/releases_empty_state_spec.js | 56 + .../releases_pagination_apollo_client_spec.js | 126 + .../components/releases_sort_apollo_client_spec.js | 103 + .../releases/stores/modules/detail/actions_spec.js | 26 +- .../codequality_report/store/actions_spec.js | 3 + .../codequality_report/store/mutations_spec.js | 9 + .../components/blob_content_viewer_spec.js | 69 +- .../repository/components/blob_header_edit_spec.js | 82 + .../repository/components/blob_replace_spec.js | 67 + .../repository/components/table/row_spec.js | 22 + .../repository/components/tree_content_spec.js | 5 +- .../components/upload_blob_modal_spec.js | 80 + spec/frontend/repository/log_tree_spec.js | 15 + .../components/cells/runner_actions_cell_spec.js | 201 ++ .../components/cells/runner_name_cell_spec.js | 42 + .../components/cells/runner_type_cell_spec.js | 48 + .../components/runner_filtered_search_bar_spec.js | 137 ++ .../frontend/runner/components/runner_list_spec.js | 130 ++ .../components/runner_manual_setup_help_spec.js | 84 + .../runner/components/runner_pagination_spec.js | 160 ++ .../frontend/runner/components/runner_tags_spec.js | 64 + .../runner/components/runner_type_alert_spec.js | 61 + .../runner/components/runner_type_badge_spec.js | 10 +- .../runner/components/runner_type_help_spec.js | 32 + .../runner/components/runner_update_form_spec.js | 263 +++ spec/frontend/runner/mock_data.js | 6 + .../runner_detail/runner_details_app_spec.js | 21 +- .../runner/runner_list/runner_list_app_spec.js | 232 ++ .../runner/runner_list/runner_search_utils_spec.js | 239 ++ spec/frontend/search/mock_data.js | 28 +- spec/frontend/search/store/actions_spec.js | 21 +- .../components/searchable_dropdown_item_spec.js | 97 + .../topbar/components/searchable_dropdown_spec.js | 58 +- .../components/redesigned_app_spec.js | 232 ++ .../components/section_layout_spec.js | 49 + .../components/upgrade_banner_spec.js | 60 + spec/frontend/security_configuration/utils_spec.js | 81 + .../__snapshots__/self_monitor_form_spec.js.snap | 4 +- .../__snapshots__/empty_state_spec.js.snap | 2 +- .../components/missing_prometheus_spec.js | 2 +- .../set_status_modal_wrapper_spec.js | 28 +- spec/frontend/sidebar/assignees_spec.js | 4 +- .../assignees/sidebar_invite_members_spec.js | 11 +- .../components/date/sidebar_date_widget_spec.js | 7 +- .../components/sidebar_dropdown_widget_spec.js | 503 ++++ .../components/time_tracking/report_spec.js | 2 +- .../components/time_tracking/time_tracker_spec.js | 131 +- spec/frontend/sidebar/mock_data.js | 96 + spec/frontend/sidebar/track_invite_members_spec.js | 37 + .../snippet_visibility_edit_spec.js.snap | 1 + .../snippets/components/snippet_blob_edit_spec.js | 8 +- .../components/edit_area_spec.js | 4 +- .../rich_content_editor/editor_service_spec.js | 214 ++ .../modals/add_image/add_image_modal_spec.js | 73 + .../modals/add_image/upload_image_tab_spec.js | 41 + .../modals/insert_video_modal_spec.js | 44 + .../rich_content_editor_integration_spec.js | 69 + .../rich_content_editor_spec.js | 222 ++ .../services/build_custom_renderer_spec.js | 32 + .../build_html_to_markdown_renderer_spec.js | 218 ++ .../renderers/build_uneditable_token_spec.js | 88 + .../services/renderers/mock_data.js | 54 + .../renderers/render_attribute_definition_spec.js | 25 + .../renderers/render_embedded_ruby_spec.js | 24 + .../render_font_awesome_html_inline_spec.js | 33 + .../services/renderers/render_heading_spec.js | 12 + .../services/renderers/render_html_block_spec.js | 37 + .../render_identifier_instance_text_spec.js | 55 + .../renderers/render_identifier_paragraph_spec.js | 84 + .../services/renderers/render_list_item_spec.js | 12 + .../services/renderers/render_softbreak_spec.js | 23 + .../services/renderers/render_utils_spec.js | 109 + .../services/sanitize_html_spec.js | 11 + .../rich_content_editor/toolbar_item_spec.js | 57 + .../frontend/tracking/get_standard_context_spec.js | 53 + spec/frontend/tracking_spec.js | 152 +- .../user_lists/components/user_lists_spec.js | 195 ++ .../user_lists/components/user_lists_table_spec.js | 98 + .../user_lists/store/index/actions_spec.js | 203 ++ .../user_lists/store/index/mutations_spec.js | 121 + .../components/approvals/approvals_spec.js | 8 +- .../components/mr_widget_alert_message_spec.js | 77 +- .../components/mr_widget_pipeline_spec.js | 2 +- .../components/states/mr_widget_closed_spec.js | 4 +- .../components/states/mr_widget_merged_spec.js | 6 +- .../states/mr_widget_pipeline_blocked_spec.js | 2 +- .../states/mr_widget_ready_to_merge_spec.js | 47 +- .../components/states/mr_widget_wip_spec.js | 10 +- .../deployment/deployment_actions_spec.js | 8 +- .../vue_mr_widget/mr_widget_options_spec.js | 6 +- .../vue_shared/alert_details/alert_status_spec.js | 38 +- .../sidebar/alert_sidebar_assignees_spec.js | 6 +- .../sidebar/alert_sidebar_status_spec.js | 53 +- .../__snapshots__/awards_list_spec.js.snap | 19 +- .../__snapshots__/expand_button_spec.js.snap | 4 + .../components/alert_details_table_spec.js | 25 +- .../vue_shared/components/awards_list_spec.js | 9 +- .../filtered_search_utils_spec.js | 75 +- .../components/filtered_search_bar/mock_data.js | 4 +- .../store/modules/filters/actions_spec.js | 2 +- .../tokens/author_token_spec.js | 212 +- .../filtered_search_bar/tokens/base_token_spec.js | 17 + .../filtered_search_bar/tokens/emoji_token_spec.js | 6 +- .../filtered_search_bar/tokens/epic_token_spec.js | 43 +- .../filtered_search_bar/tokens/label_token_spec.js | 69 +- .../form/__snapshots__/title_spec.js.snap | 1 + .../components/issue/issue_assignees_spec.js | 4 +- .../__snapshots__/code_instruction_spec.js.snap | 1 + .../rich_content_editor/editor_service_spec.js | 214 -- .../modals/add_image/add_image_modal_spec.js | 73 - .../modals/add_image/upload_image_tab_spec.js | 41 - .../modals/insert_video_modal_spec.js | 44 - .../rich_content_editor_integration_spec.js | 69 - .../rich_content_editor_spec.js | 222 -- .../services/build_custom_renderer_spec.js | 32 - .../build_html_to_markdown_renderer_spec.js | 218 -- .../renderers/build_uneditable_token_spec.js | 88 - .../services/renderers/mock_data.js | 54 - .../renderers/render_attribute_definition_spec.js | 25 - .../renderers/render_embedded_ruby_spec.js | 24 - .../render_font_awesome_html_inline_spec.js | 33 - .../services/renderers/render_heading_spec.js | 12 - .../services/renderers/render_html_block_spec.js | 37 - .../render_identifier_instance_text_spec.js | 55 - .../renderers/render_identifier_paragraph_spec.js | 84 - .../services/renderers/render_list_item_spec.js | 12 - .../services/renderers/render_softbreak_spec.js | 23 - .../services/renderers/render_utils_spec.js | 109 - .../services/sanitize_html_spec.js | 11 - .../rich_content_editor/toolbar_item_spec.js | 57 - .../runner_aws_deployments_modal_spec.js.snap | 110 + .../runner_aws_deployments_modal_spec.js | 75 + .../runner_aws_deployments_spec.js | 41 + .../merge_request_artifact_download_spec.js | 108 + .../components/sidebar/labels_select/base_spec.js | 127 - .../sidebar/labels_select/dropdown_button_spec.js | 90 - .../labels_select/dropdown_create_label_spec.js | 103 - .../sidebar/labels_select/dropdown_footer_spec.js | 75 - .../sidebar/labels_select/dropdown_header_spec.js | 39 - .../labels_select/dropdown_search_input_spec.js | 39 - .../sidebar/labels_select/dropdown_title_spec.js | 41 - .../labels_select/dropdown_value_collapsed_spec.js | 95 - .../sidebar/labels_select/dropdown_value_spec.js | 84 - .../components/sidebar/labels_select/mock_data.js | 57 - .../dropdown_value_collapsed_spec.js | 95 + .../labels_select_vue/labels_select_root_spec.js | 2 +- .../sidebar/labels_select_vue/mock_data.js | 17 + .../components/user_callout_dismisser_mock_data.js | 30 + .../components/user_callout_dismisser_spec.js | 306 +++ .../vue_shared/components/user_select_spec.js | 15 +- .../vue_shared/components/web_ide_link_spec.js | 4 +- spec/frontend/whats_new/components/feature_spec.js | 12 +- spec/generator_helper.rb | 15 - spec/graphql/mutations/ci/runner/delete_spec.rb | 92 + spec/graphql/mutations/ci/runner/update_spec.rb | 95 + spec/graphql/mutations/commits/create_spec.rb | 5 + .../mutations/design_management/upload_spec.rb | 2 +- .../mutations/issues/set_subscription_spec.rb | 36 +- spec/graphql/mutations/issues/update_spec.rb | 30 +- .../merge_requests/set_subscription_spec.rb | 28 +- spec/graphql/mutations/todos/mark_all_done_spec.rb | 7 +- spec/graphql/resolvers/boards_resolver_spec.rb | 2 +- spec/graphql/resolvers/ci/runners_resolver_spec.rb | 66 +- .../concerns/caching_array_resolver_spec.rb | 1 - .../resolvers/group_packages_resolver_spec.rb | 22 +- .../resolvers/package_details_resolver_spec.rb | 1 - spec/graphql/resolvers/projects_resolver_spec.rb | 18 +- spec/graphql/resolvers/timelog_resolver_spec.rb | 131 +- spec/graphql/types/ci/runner_type_spec.rb | 6 +- spec/graphql/types/global_id_type_spec.rb | 146 ++ spec/graphql/types/label_type_spec.rb | 1 - spec/graphql/types/merge_request_type_spec.rb | 33 +- spec/graphql/types/mutation_type_spec.rb | 22 - .../types/packages/package_group_sort_enum_spec.rb | 9 + .../types/packages/package_sort_enum_spec.rb | 9 + .../types/packages/pypi/metadatum_type_spec.rb | 13 + spec/graphql/types/projects/service_type_spec.rb | 4 +- spec/graphql/types/projects/services_enum_spec.rb | 8 +- spec/graphql/types/snippet_type_spec.rb | 28 +- .../types/snippets/blob_viewer_type_spec.rb | 22 +- spec/graphql/types/timelog_type_spec.rb | 2 +- .../admin/background_migrations_helper_spec.rb | 67 + spec/helpers/application_settings_helper_spec.rb | 20 +- spec/helpers/commits_helper_spec.rb | 16 +- spec/helpers/environments_helper_spec.rb | 5 +- spec/helpers/events_helper_spec.rb | 7 + spec/helpers/gitlab_script_tag_helper_spec.rb | 7 + spec/helpers/groups/group_members_helper_spec.rb | 106 +- spec/helpers/invite_members_helper_spec.rb | 65 - .../issuables_description_templates_helper_spec.rb | 93 +- spec/helpers/issuables_helper_spec.rb | 14 + spec/helpers/issues_helper_spec.rb | 6 +- spec/helpers/keyset_helper_spec.rb | 94 + spec/helpers/nav/new_dropdown_helper_spec.rb | 320 +++ spec/helpers/nav/top_nav_helper_spec.rb | 235 +- spec/helpers/notify_helper_spec.rb | 32 +- spec/helpers/operations_helper_spec.rb | 18 +- spec/helpers/packages_helper_spec.rb | 169 +- spec/helpers/preferences_helper_spec.rb | 37 + .../projects/alert_management_helper_spec.rb | 2 +- .../projects/project_members_helper_spec.rb | 75 +- spec/helpers/registrations_helper_spec.rb | 6 + spec/helpers/user_callouts_helper_spec.rb | 20 - spec/helpers/webpack_helper_spec.rb | 3 +- spec/initializers/database_config_spec.rb | 26 +- spec/initializers/global_id_spec.rb | 35 + spec/initializers/lograge_spec.rb | 56 +- spec/initializers/mailer_retries_spec.rb | 25 + spec/lib/api/entities/merge_request_basic_spec.rb | 11 + spec/lib/api/helpers/runner_helpers_spec.rb | 71 + spec/lib/api/helpers/runner_spec.rb | 69 + spec/lib/api/helpers_spec.rb | 60 + spec/lib/backup/gitaly_backup_spec.rb | 110 + spec/lib/backup/gitaly_rpc_backup_spec.rb | 153 ++ spec/lib/backup/repositories_spec.rb | 191 +- .../references/label_reference_filter_spec.rb | 68 + .../filter/references/reference_cache_spec.rb | 7 +- .../references/snippet_reference_filter_spec.rb | 4 +- .../pipeline/plain_markdown_pipeline_spec.rb | 14 - .../banzai/pipeline/post_process_pipeline_spec.rb | 13 - .../banzai/reference_parser/commit_parser_spec.rb | 4 +- .../banzai/reference_parser/issue_parser_spec.rb | 10 +- .../reference_parser/merge_request_parser_spec.rb | 21 +- spec/lib/bulk_imports/clients/http_spec.rb | 42 +- .../common/extractors/ndjson_extractor_spec.rb | 53 + .../common/extractors/rest_extractor_spec.rb | 2 +- .../groups/extractors/subgroups_extractor_spec.rb | 2 +- .../groups/graphql/get_labels_query_spec.rb | 35 - .../groups/pipelines/boards_pipeline_spec.rb | 49 + .../groups/pipelines/entity_finisher_spec.rb | 34 +- .../groups/pipelines/labels_pipeline_spec.rb | 102 +- .../groups/pipelines/milestones_pipeline_spec.rb | 110 +- spec/lib/bulk_imports/ndjson_pipeline_spec.rb | 186 ++ spec/lib/bulk_imports/pipeline/context_spec.rb | 23 + spec/lib/bulk_imports/pipeline_spec.rb | 2 + spec/lib/bulk_imports/stage_spec.rb | 3 +- spec/lib/csv_builder_spec.rb | 12 + spec/lib/expand_variables_spec.rb | 40 +- .../snowplow_event_definition_generator_spec.rb | 4 +- .../redis_hll_generator_spec.rb | 4 +- .../usage_metric_definition_generator_spec.rb | 4 +- .../gitlab/usage_metric_generator_spec.rb | 70 + spec/lib/gitlab/application_context_spec.rb | 18 + spec/lib/gitlab/auth/auth_finders_spec.rb | 8 +- spec/lib/gitlab/auth_spec.rb | 26 +- .../cleanup_orphaned_lfs_objects_projects_spec.rb | 82 + ..._policies_linked_to_no_container_images_spec.rb | 142 ++ .../migrate_issue_trackers_sensitive_data_spec.rb | 10 +- ...culate_vulnerabilities_occurrences_uuid_spec.rb | 34 + ...acker_data_deployment_type_based_on_url_spec.rb | 44 + spec/lib/gitlab/cache/import/caching_spec.rb | 12 + spec/lib/gitlab/cache_spec.rb | 12 + spec/lib/gitlab/checks/change_access_spec.rb | 70 - spec/lib/gitlab/checks/changes_access_spec.rb | 42 + spec/lib/gitlab/checks/lfs_check_spec.rb | 10 +- spec/lib/gitlab/checks/lfs_integrity_spec.rb | 30 +- .../gitlab/checks/matching_merge_request_spec.rb | 68 + .../lib/gitlab/checks/single_change_access_spec.rb | 62 + spec/lib/gitlab/ci/ansi2json/line_spec.rb | 26 +- spec/lib/gitlab/ci/badge/coverage/template_spec.rb | 52 +- spec/lib/gitlab/ci/badge/pipeline/template_spec.rb | 52 +- spec/lib/gitlab/ci/build/auto_retry_spec.rb | 4 +- spec/lib/gitlab/ci/config/entry/need_spec.rb | 20 - .../lib/gitlab/ci/config/entry/processable_spec.rb | 8 - spec/lib/gitlab/ci/config/entry/reports_spec.rb | 1 - spec/lib/gitlab/ci/jwt_spec.rb | 1 + spec/lib/gitlab/ci/matching/build_matcher_spec.rb | 64 + spec/lib/gitlab/ci/matching/runner_matcher_spec.rb | 113 + spec/lib/gitlab/ci/parsers/test/junit_spec.rb | 24 + .../ci/pipeline/chain/validate/external_spec.rb | 59 +- spec/lib/gitlab/ci/pipeline/preloader_spec.rb | 8 +- spec/lib/gitlab/ci/pipeline/seed/build_spec.rb | 11 - .../gitlab/ci/pipeline/seed/environment_spec.rb | 2 +- spec/lib/gitlab/ci/templates/npm_spec.rb | 4 +- spec/lib/gitlab/ci/templates/templates_spec.rb | 162 +- spec/lib/gitlab/ci/trace/chunked_io_spec.rb | 2 +- .../gitlab/ci/variables/collection/item_spec.rb | 39 +- .../gitlab/ci/variables/collection/sort_spec.rb | 11 +- spec/lib/gitlab/ci/variables/collection_spec.rb | 76 +- spec/lib/gitlab/ci/yaml_processor/result_spec.rb | 53 + spec/lib/gitlab/ci/yaml_processor_spec.rb | 25 - .../cleanup/orphan_lfs_file_references_spec.rb | 2 +- .../cluster/mixins/unicorn_http_server_spec.rb | 117 - .../content_security_policy/config_loader_spec.rb | 1 + .../gitlab/cycle_analytics/stage_summary_spec.rb | 9 +- spec/lib/gitlab/data_builder/build_spec.rb | 2 + spec/lib/gitlab/data_builder/pipeline_spec.rb | 2 + spec/lib/gitlab/data_builder/wiki_page_spec.rb | 5 +- .../background_migration/batched_job_spec.rb | 10 - .../background_migration/batched_migration_spec.rb | 63 + spec/lib/gitlab/database/consistency_spec.rb | 25 + .../count/reltuples_count_strategy_spec.rb | 2 +- .../gitlab/database/dynamic_model_helpers_spec.rb | 88 +- .../load_balancing/active_record_proxy_spec.rb | 20 + .../load_balancing/connection_proxy_spec.rb | 316 +++ .../database/load_balancing/host_list_spec.rb | 188 ++ .../gitlab/database/load_balancing/host_spec.rb | 445 ++++ .../database/load_balancing/load_balancer_spec.rb | 522 +++++ .../load_balancing/rack_middleware_spec.rb | 243 ++ .../database/load_balancing/resolver_spec.rb | 80 + .../load_balancing/service_discovery_spec.rb | 252 ++ .../gitlab/database/load_balancing/session_spec.rb | 353 +++ .../sidekiq_client_middleware_spec.rb | 161 ++ .../sidekiq_server_middleware_spec.rb | 201 ++ .../database/load_balancing/srv_resolver_spec.rb | 61 + .../database/load_balancing/sticking_spec.rb | 307 +++ spec/lib/gitlab/database/load_balancing_spec.rb | 834 +++++++ spec/lib/gitlab/database/migration_helpers_spec.rb | 35 + .../background_migration_helpers_spec.rb | 124 + .../table_management_helpers_spec.rb | 2 +- .../postgresql_adapter/type_map_cache_spec.rb | 68 + spec/lib/gitlab/database/with_lock_retries_spec.rb | 6 +- spec/lib/gitlab/database_spec.rb | 34 +- spec/lib/gitlab/diff/highlight_cache_spec.rb | 16 +- spec/lib/gitlab/diff/highlight_spec.rb | 20 - .../email/handler/create_issue_handler_spec.rb | 8 + .../email/handler/service_desk_handler_spec.rb | 20 +- .../message/in_product_marketing/base_spec.rb | 11 +- .../message/in_product_marketing/create_spec.rb | 3 +- .../in_product_marketing/experience_spec.rb | 64 + .../message/in_product_marketing/team_spec.rb | 3 +- .../message/in_product_marketing/trial_spec.rb | 3 +- .../message/in_product_marketing/verify_spec.rb | 3 +- spec/lib/gitlab/email/receiver_spec.rb | 16 +- spec/lib/gitlab/emoji_spec.rb | 11 +- .../processor/context_payload_processor_spec.rb | 10 +- .../processor/grpc_error_processor_spec.rb | 10 +- .../processor/sidekiq_processor_spec.rb | 10 +- spec/lib/gitlab/error_tracking_spec.rb | 17 - spec/lib/gitlab/etag_caching/middleware_spec.rb | 18 +- .../experimentation/controller_concern_spec.rb | 21 +- spec/lib/gitlab/file_hook_spec.rb | 2 +- spec/lib/gitlab/git/conflict/resolver_spec.rb | 32 + spec/lib/gitlab/git/remote_repository_spec.rb | 41 - spec/lib/gitlab/git/repository_spec.rb | 32 +- spec/lib/gitlab/git_access_spec.rb | 6 +- .../gitlab/gitaly_client/remote_service_spec.rb | 51 +- .../gitaly_client/repository_service_spec.rb | 132 +- spec/lib/gitlab/gitaly_client_spec.rb | 8 - .../importer/pull_requests_importer_spec.rb | 31 +- .../pull_requests_reviews_importer_spec.rb | 118 +- spec/lib/gitlab/github_import/page_counter_spec.rb | 11 + spec/lib/gitlab/global_id/deprecations_spec.rb | 46 + spec/lib/gitlab/graphql/docs/renderer_spec.rb | 639 ----- .../health_checks/redis/trace_chunks_check_spec.rb | 8 + .../lib/gitlab/health_checks/unicorn_check_spec.rb | 67 - spec/lib/gitlab/highlight_spec.rb | 24 +- spec/lib/gitlab/hook_data/issue_builder_spec.rb | 2 + .../gitlab/hook_data/merge_request_builder_spec.rb | 2 + .../web_upload_strategy_spec.rb | 22 +- spec/lib/gitlab/import_export/all_models.yml | 28 +- .../import_export/base/relation_factory_spec.rb | 9 + .../gitlab/import_export/command_line_util_spec.rb | 23 + .../decompressed_archive_size_validator_spec.rb | 8 + .../gitlab/import_export/group/tree_saver_spec.rb | 2 +- .../import_export/import_failure_service_spec.rb | 2 +- .../import_export/json/legacy_reader/file_spec.rb | 2 +- .../import_export/json/legacy_reader/hash_spec.rb | 2 +- .../import_export/json/legacy_writer_spec.rb | 2 +- .../import_export/json/ndjson_reader_spec.rb | 2 +- .../import_export/json/ndjson_writer_spec.rb | 2 +- .../json/streaming_serializer_spec.rb | 4 +- .../legacy_relation_tree_saver_spec.rb | 4 +- .../import_export/project/export_task_spec.rb | 2 +- .../import_export/project/import_task_spec.rb | 2 +- .../project/sample/relation_tree_restorer_spec.rb | 2 +- .../import_export/project/tree_restorer_spec.rb | 20 +- .../import_export/relation_tree_restorer_spec.rb | 8 +- .../gitlab/import_export/safe_model_attributes.yml | 2 +- spec/lib/gitlab/import_export/shared_spec.rb | 22 + spec/lib/gitlab/instrumentation/redis_base_spec.rb | 18 - spec/lib/gitlab/instrumentation/redis_spec.rb | 43 +- spec/lib/gitlab/instrumentation_helper_spec.rb | 36 + spec/lib/gitlab/json_spec.rb | 12 +- spec/lib/gitlab/kas/client_spec.rb | 84 + spec/lib/gitlab/kas_spec.rb | 6 + .../gitlab/kubernetes/helm/parsers/list_v2_spec.rb | 100 - spec/lib/gitlab/mail_room/mail_room_spec.rb | 4 + spec/lib/gitlab/markdown_cache/field_data_spec.rb | 7 + .../metrics/requests_rack_middleware_spec.rb | 38 +- .../metrics/samplers/unicorn_sampler_spec.rb | 141 -- .../metrics/subscribers/active_record_spec.rb | 136 ++ spec/lib/gitlab/metrics/transaction_spec.rb | 30 +- spec/lib/gitlab/metrics/web_transaction_spec.rb | 40 +- spec/lib/gitlab/metrics_spec.rb | 20 + spec/lib/gitlab/nav/top_nav_menu_item_spec.rb | 4 +- .../gitlab/pagination/gitaly_keyset_pager_spec.rb | 2 - .../lib/gitlab/pagination/keyset/paginator_spec.rb | 120 + .../pagination/keyset/request_context_spec.rb | 15 +- .../action_dispatch_journey_formatter_spec.rb | 33 - spec/lib/gitlab/path_regex_spec.rb | 4 +- spec/lib/gitlab/profiler_spec.rb | 8 +- spec/lib/gitlab/project_search_results_spec.rb | 35 +- spec/lib/gitlab/prometheus/adapter_spec.rb | 24 +- spec/lib/gitlab/redis/cache_spec.rb | 22 +- spec/lib/gitlab/redis/queues_spec.rb | 22 +- spec/lib/gitlab/redis/shared_state_spec.rb | 22 +- spec/lib/gitlab/redis/trace_chunks_spec.rb | 55 + spec/lib/gitlab/redis/wrapper_spec.rb | 42 +- spec/lib/gitlab/regex_spec.rb | 11 + spec/lib/gitlab/repository_set_cache_spec.rb | 25 + spec/lib/gitlab/runtime_spec.rb | 19 - spec/lib/gitlab/sidekiq_cluster/cli_spec.rb | 165 +- .../sidekiq_logging/structured_logger_spec.rb | 147 +- .../duplicate_jobs/duplicate_job_spec.rb | 82 +- .../instrumentation_logger_spec.rb | 54 +- .../sidekiq_middleware/server_metrics_spec.rb | 105 + .../size_limiter/compressor_spec.rb | 200 ++ .../sidekiq_middleware/size_limiter/server_spec.rb | 33 + .../size_limiter/validator_spec.rb | 186 +- spec/lib/gitlab/sidekiq_middleware_spec.rb | 303 ++- .../gitlab/template/gitlab_ci_yml_template_spec.rb | 49 + spec/lib/gitlab/time_tracking_formatter_spec.rb | 6 + spec/lib/gitlab/tracking/standard_context_spec.rb | 6 +- spec/lib/gitlab/usage/metric_definition_spec.rb | 18 +- .../usage/metrics/aggregates/aggregate_spec.rb | 31 - .../instrumentations/count_boards_metric_spec.rb | 5 +- .../instrumentations/count_issues_metric_spec.rb | 5 +- .../count_users_creating_issues_metric_spec.rb | 12 +- ...users_using_approve_quick_action_metric_spec.rb | 15 - .../instrumentations/hostname_metric_spec.rb | 4 +- .../instrumentations/redis_hll_metric_spec.rb | 28 + .../metrics/instrumentations/uuid_metric_spec.rb | 4 +- .../gitlab/usage/metrics/name_suggestion_spec.rb | 94 + .../metrics/names_suggestions/generator_spec.rb | 18 - spec/lib/gitlab/usage/metrics/query_spec.rb | 51 + spec/lib/gitlab/usage_data/topology_spec.rb | 4 +- .../merge_request_activity_unique_counter_spec.rb | 24 +- .../package_event_counter_spec.rb | 2 +- spec/lib/gitlab/usage_data_queries_spec.rb | 8 +- spec/lib/gitlab/usage_data_spec.rb | 170 +- spec/lib/gitlab/utils/measuring_spec.rb | 2 +- spec/lib/gitlab/workhorse_spec.rb | 31 - spec/lib/gitlab_spec.rb | 19 +- spec/lib/google_api/cloud_platform/client_spec.rb | 2 - spec/lib/mattermost/client_spec.rb | 4 +- spec/lib/mattermost/command_spec.rb | 6 +- spec/lib/mattermost/session_spec.rb | 8 +- spec/lib/mattermost/team_spec.rb | 8 +- spec/lib/peek/views/active_record_spec.rb | 175 +- spec/lib/peek/views/memory_spec.rb | 53 + spec/lib/prometheus/pid_provider_spec.rb | 60 - .../ci_configuration/sast_build_action_spec.rb | 51 +- .../secret_detection_build_action_spec.rb | 8 +- spec/lib/serializers/json_spec.rb | 2 +- spec/lib/sidebars/menu_spec.rb | 46 + .../projects/menus/confluence_menu_spec.rb | 2 +- .../menus/external_issue_tracker_menu_spec.rb | 2 +- .../projects/menus/learn_gitlab_menu_spec.rb | 1 - .../menus/packages_registries_menu_spec.rb | 3 +- .../menus/project_information_menu_spec.rb | 14 + .../lib/sidebars/projects/menus/scope_menu_spec.rb | 23 + .../menus/security_compliance_menu_spec.rb | 36 + .../sidebars/projects/menus/settings_menu_spec.rb | 3 +- spec/lib/sidebars/projects/panel_spec.rb | 2 +- .../app/hashed_storage_all_projects_check_spec.rb | 7 +- .../app/hashed_storage_enabled_check_spec.rb | 7 +- .../imap_authentication_check_spec.rb | 31 + .../system_check/orphans/namespace_check_spec.rb | 4 +- .../system_check/orphans/repository_check_spec.rb | 4 +- spec/lib/system_check/simple_executor_spec.rb | 5 +- spec/lib/system_check_spec.rb | 5 +- spec/mailers/emails/in_product_marketing_spec.rb | 36 +- spec/mailers/emails/profile_spec.rb | 6 +- spec/mailers/emails/service_desk_spec.rb | 12 + spec/mailers/notify_spec.rb | 32 +- ...90924152703_migrate_issue_trackers_data_spec.rb | 4 +- ...125114345_add_admin_mode_protected_path_spec.rb | 2 +- .../20191204114127_delete_legacy_triggers_spec.rb | 2 +- ...20_add_timestamp_softwarelicensespolicy_spec.rb | 2 +- ...0200122123016_backfill_project_settings_spec.rb | 2 +- ...20200123155929_remove_invalid_jira_data_spec.rb | 2 +- ...90233_remove_invalid_issue_tracker_data_spec.rb | 2 +- ..._reschedule_migrate_issue_trackers_data_spec.rb | 14 +- ...200313203550_remove_orphaned_chat_names_spec.rb | 2 +- ...ll_deployment_clusters_from_deployments_spec.rb | 2 +- ..._interpolation_format_in_common_metrics_spec.rb | 2 +- .../20200526115436_dedup_mr_metrics_spec.rb | 2 +- ...val_rule_name_for_code_owners_rule_type_spec.rb | 2 +- ...00703125016_backfill_namespace_settings_spec.rb | 2 +- ...st_unique_index_alert_management_alerts_spec.rb | 2 +- ..._unique_index_on_cycle_analytics_stages_spec.rb | 2 +- ...311_add_o_auth_paths_to_protected_paths_spec.rb | 2 +- ...ate_missing_vulnerabilities_issue_links_spec.rb | 2 +- ...25_schedule_migration_to_hashed_storage_spec.rb | 2 +- ...ons_for_pre_versioning_terraform_states_spec.rb | 2 +- ...kfill_jira_tracker_deployment_type_jobs_spec.rb | 2 +- ...1_migrate_services_to_http_integrations_spec.rb | 2 +- ..._backfill_jira_tracker_deployment_type2_spec.rb | 2 +- ...anup_transfered_projects_shared_runners_spec.rb | 2 +- ...move_duplicate_vulnerabilities_findings_spec.rb | 2 +- ...ate_uuid_on_vulnerabilities_occurrences_spec.rb | 2 +- ...210112143418_remove_duplicate_services2_spec.rb | 2 +- ...a_issue_first_mentioned_in_commit_value_spec.rb | 2 +- ...4_remove_bad_dependency_proxy_manifests_spec.rb | 2 +- ...pdated_at_after_repository_storage_move_spec.rb | 2 +- .../20210226141517_dedup_issue_metrics_spec.rb | 2 +- ...otal_tuple_count_for_batched_migrations_spec.rb | 2 +- ...schedule_artifact_expiry_backfill_again_spec.rb | 2 +- ...acker_data_deployment_type_based_on_url_spec.rb | 48 + ...7_schedule_drop_invalid_vulnerabilities_spec.rb | 2 +- ...134202_copy_adoption_snapshot_namespace_spec.rb | 10 +- ...135954_copy_adoption_segments_namespace_spec.rb | 2 +- ...oject_value_stream_id_to_project_stages_spec.rb | 2 +- ..._schedule_drop_invalid_vulnerabilities2_spec.rb | 2 +- ...e_cleanup_orphaned_lfs_objects_projects_spec.rb | 37 + .../20210601073400_fix_total_stage_in_vsa_spec.rb | 30 + ...d_environments_add_index_and_constraint_spec.rb | 29 + ...move_builds_email_service_from_services_spec.rb | 24 + spec/migrations/add_default_and_free_plans_spec.rb | 2 +- ...alue_stream_to_groups_with_group_stages_spec.rb | 2 +- .../add_deploy_token_type_to_deploy_tokens_spec.rb | 2 +- ...ident_settings_to_all_existing_projects_spec.rb | 2 +- spec/migrations/add_new_post_eoa_plans_spec.rb | 2 +- ...ndex_to_ci_builds_table_on_user_id_name_spec.rb | 2 +- ...orages_weighted_to_application_settings_spec.rb | 2 +- ...partial_index_on_project_id_to_services_spec.rb | 2 +- ..._approvals_user_id_and_merge_request_id_spec.rb | 2 +- ...to_released_at_column_on_releases_table_spec.rb | 2 +- ...clusters_integration_prometheus_enabled_spec.rb | 80 + ...scalation_policies_for_oncall_schedules_spec.rb | 100 + .../backfill_imported_snippet_repositories_spec.rb | 2 +- ...ackfill_operations_feature_flags_active_spec.rb | 2 +- .../backfill_operations_feature_flags_iid_spec.rb | 2 +- ..._add_not_null_constraints_to_timestamps_spec.rb | 2 +- .../backfill_snippet_repositories_spec.rb | 2 +- ...ackfill_status_page_published_incidents_spec.rb | 2 +- spec/migrations/backport_enterprise_schema_spec.rb | 2 +- ...ap_designs_filename_length_to_new_limit_spec.rb | 2 +- ...tbound_local_requests_whitelist_default_spec.rb | 2 +- ...ges_size_defaults_in_project_statistics_spec.rb | 2 +- .../change_web_hook_events_default_spec.rb | 2 +- spec/migrations/clean_grafana_url_spec.rb | 2 +- ...ean_up_noteable_id_for_notes_on_commits_spec.rb | 2 +- .../clean_up_pending_builds_table_spec.rb | 47 + .../cleanup_empty_commit_user_mentions_spec.rb | 2 +- ...p_group_import_states_with_null_user_id_spec.rb | 4 +- .../cleanup_legacy_artifact_migration_spec.rb | 2 +- ...er_registry_enabled_to_project_features_spec.rb | 45 + ...anup_optimistic_locking_nulls_pt2_fixed_spec.rb | 2 +- .../cleanup_optimistic_locking_nulls_spec.rb | 2 +- ...cleanup_projects_with_missing_namespace_spec.rb | 4 +- .../complete_namespace_settings_migration_spec.rb | 2 +- spec/migrations/confirm_project_bot_users_spec.rb | 2 +- ...environment_for_self_monitoring_project_spec.rb | 2 +- spec/migrations/deduplicate_epic_iids_spec.rb | 2 +- ..._internal_ids_where_feature_flags_usage_spec.rb | 2 +- .../delete_template_project_services_spec.rb | 2 +- ...te_template_services_duplicated_by_type_spec.rb | 2 +- .../delete_user_callout_alerts_moved_spec.rb | 2 +- ..._policies_linked_to_no_container_images_spec.rb | 46 + ...ate_prometheus_services_background_jobs_spec.rb | 2 +- spec/migrations/drop_alerts_service_data_spec.rb | 2 +- .../drop_background_migration_jobs_spec.rb | 2 +- ...ect_ci_cd_settings_merge_trains_enabled_spec.rb | 2 +- .../encrypt_feature_flags_clients_tokens_spec.rb | 2 +- ...text_attributes_on_application_settings_spec.rb | 2 +- .../enqueue_reset_merge_status_second_run_spec.rb | 2 +- spec/migrations/enqueue_reset_merge_status_spec.rb | 2 +- ...ernal_diff_store_on_merge_request_diffs_spec.rb | 2 +- ...sure_filled_file_store_on_package_files_spec.rb | 2 +- .../ensure_namespace_settings_creation_spec.rb | 2 +- .../ensure_target_project_id_is_filled_spec.rb | 2 +- .../ensure_u2f_registrations_migrated_spec.rb | 2 +- .../fill_file_store_ci_job_artifacts_spec.rb | 2 +- .../migrations/fill_file_store_lfs_objects_spec.rb | 2 +- .../fill_productivity_analytics_start_date_spec.rb | 2 +- spec/migrations/fill_store_uploads_spec.rb | 2 +- spec/migrations/fix_max_pages_size_spec.rb | 2 +- spec/migrations/fix_null_type_labels_spec.rb | 2 +- .../fix_pool_repository_source_project_id_spec.rb | 2 +- .../fix_projects_without_project_feature_spec.rb | 2 +- ...ix_projects_without_prometheus_services_spec.rb | 2 +- .../fix_wrong_pages_access_level_spec.rb | 2 +- .../migrations/generate_ci_jwt_signing_key_spec.rb | 2 +- .../generate_lets_encrypt_private_key_spec.rb | 2 +- .../generate_missing_routes_for_bots_spec.rb | 2 +- ..._pipeline_schedule_triggers_plan_limits_spec.rb | 73 + .../insert_daily_invites_plan_limits_spec.rb | 2 +- ...nsert_project_feature_flags_plan_limits_spec.rb | 6 +- .../insert_project_hooks_plan_limits_spec.rb | 2 +- ...e_all_merge_request_user_mentions_to_db_spec.rb | 2 +- ...e_auto_dev_ops_domain_to_cluster_domain_spec.rb | 2 +- .../migrate_bot_type_to_user_type_spec.rb | 2 +- ...status_to_protected_branches_in_batches_spec.rb | 2 +- .../migrate_commit_notes_mentions_to_db_spec.rb | 2 +- ...ework_enum_to_database_framework_record_spec.rb | 2 +- ...e_commit_signature_worker_sidekiq_queue_spec.rb | 2 +- ...l_from_namespaces_to_namespace_settings_spec.rb | 2 +- ...migrate_discussion_id_on_promoted_epics_spec.rb | 2 +- .../migrate_elastic_index_settings_spec.rb | 2 +- ...igrate_incident_issues_to_incident_type_spec.rb | 2 +- .../migrate_k8s_service_integration_spec.rb | 2 +- ...te_legacy_managed_clusters_to_unmanaged_spec.rb | 2 +- ...ged_clusters_with_no_token_to_unmanaged_spec.rb | 2 +- .../migrate_merge_request_mentions_to_db_spec.rb | 2 +- ...ps_feature_flags_scopes_target_user_ids_spec.rb | 2 +- ...e_protected_attribute_to_pending_builds_spec.rb | 33 + .../migrate_storage_migrator_sidekiq_queue_spec.rb | 2 +- ...te_store_security_reports_sidekiq_queue_spec.rb | 2 +- ..._to_report_approval_rules_sidekiq_queue_spec.rb | 2 +- ...r_registry_enabled_to_project_features3_spec.rb | 2 +- spec/migrations/move_limits_from_plans_spec.rb | 2 +- spec/migrations/nullify_users_role_spec.rb | 2 +- ...pulate_project_statistics_packages_size_spec.rb | 2 +- ...le_type_on_approval_merge_request_rules_spec.rb | 2 +- ...ve_additional_application_settings_rows_spec.rb | 2 +- .../remove_alerts_service_records_again_spec.rb | 2 +- .../remove_alerts_service_records_spec.rb | 2 +- ...move_deprecated_jenkins_service_records_spec.rb | 5 +- .../remove_duplicate_labels_from_groups_spec.rb | 2 +- .../remove_duplicate_labels_from_project_spec.rb | 2 +- .../remove_empty_github_service_templates_spec.rb | 2 +- ...ve_gitlab_issue_tracker_service_records_spec.rb | 2 +- .../remove_hipchat_service_records_spec.rb | 2 +- .../migrations/remove_orphan_service_hooks_spec.rb | 2 +- .../remove_orphaned_invited_members_spec.rb | 2 +- ...remove_packages_deprecated_dependencies_spec.rb | 2 +- ...cords_without_group_from_webhooks_table_spec.rb | 2 +- .../remove_security_dashboard_feature_flag_spec.rb | 2 +- ...ure_flag_to_instance_security_dashboard_spec.rb | 2 +- spec/migrations/rename_sitemap_namespace_spec.rb | 2 +- .../rename_sitemap_root_namespaces_spec.rb | 2 +- .../reschedule_artifact_expiry_backfill_spec.rb | 2 +- .../migrations/reseed_merge_trains_enabled_spec.rb | 2 +- .../reseed_repository_storages_weighted_spec.rb | 2 +- .../retry_backfill_traversal_ids_spec.rb | 93 + .../save_instance_administrators_group_id_spec.rb | 2 +- ...dule_backfill_push_rules_id_in_projects_spec.rb | 2 +- ...blocked_by_links_replacement_second_try_spec.rb | 2 +- .../schedule_calculate_wiki_sizes_spec.rb | 60 - ..._policies_linked_to_no_container_images_spec.rb | 47 + ...alid_time_for_pages_domain_certificates_spec.rb | 2 +- .../schedule_link_lfs_objects_projects_spec.rb | 2 +- ...erge_request_cleanup_schedules_backfill_spec.rb | 2 +- .../schedule_migrate_pages_to_zip_storage_spec.rb | 2 +- .../schedule_migrate_security_scans_spec.rb | 2 +- .../schedule_migrate_u2f_webauthn_spec.rb | 2 +- .../schedule_pages_metadata_migration_spec.rb | 2 +- ...edule_populate_issue_email_participants_spec.rb | 2 +- ..._populate_merge_request_assignees_table_spec.rb | 2 +- ...le_populate_personal_snippet_statistics_spec.rb | 2 +- ...ule_populate_project_snippet_statistics_spec.rb | 2 +- ...edule_populate_user_highest_roles_table_spec.rb | 2 +- ...ulate_project_authorizations_second_run_spec.rb | 2 +- ...dule_recalculate_project_authorizations_spec.rb | 2 +- ...culate_project_authorizations_third_run_spec.rb | 2 +- ...te_uuid_on_vulnerabilities_occurrences2_spec.rb | 127 + .../schedule_sync_issuables_state_id_spec.rb | 2 +- ...edule_sync_issuables_state_id_where_nil_spec.rb | 2 +- ...oup_to_match_visibility_level_of_parent_spec.rb | 2 +- ...ting_users_that_require_two_factor_auth_spec.rb | 2 +- .../schedule_update_timelogs_project_id_spec.rb | 2 +- ...ere_two_factor_auth_required_from_group_spec.rb | 2 +- spec/migrations/seed_merge_trains_enabled_spec.rb | 2 +- .../seed_repository_storages_weighted_spec.rb | 2 +- ...es_remove_temporary_index_on_project_id_spec.rb | 2 +- .../set_issue_id_for_all_versions_spec.rb | 2 +- spec/migrations/set_job_waiter_ttl_spec.rb | 2 +- spec/migrations/sync_issuables_state_id_spec.rb | 2 +- spec/migrations/truncate_user_fullname_spec.rb | 2 +- .../unconfirm_wrongfully_verified_emails_spec.rb | 2 +- ...npm_package_requests_forwarding_default_spec.rb | 2 +- .../update_fingerprint_sha256_within_keys_spec.rb | 2 +- .../update_historical_data_recorded_at_spec.rb | 2 +- ...ternal_ids_last_value_for_epics_renamed_spec.rb | 2 +- .../update_minimum_password_length_spec.rb | 2 +- ...t_and_found_group_and_orphaned_projects_spec.rb | 2 +- ...update_timestamp_softwarelicensespolicy_spec.rb | 2 +- spec/models/application_record_spec.rb | 42 + spec/models/application_setting_spec.rb | 28 + spec/models/bulk_imports/export_status_spec.rb | 77 + spec/models/bulk_imports/export_upload_spec.rb | 2 +- .../file_transfer/group_config_spec.rb | 18 +- .../file_transfer/project_config_spec.rb | 18 +- spec/models/ci/build_dependencies_spec.rb | 9 - spec/models/ci/build_spec.rb | 383 ++- spec/models/ci/build_trace_chunk_spec.rb | 116 +- spec/models/ci/build_trace_chunks/database_spec.rb | 6 - spec/models/ci/build_trace_chunks/redis_spec.rb | 6 - spec/models/ci/job_artifact_spec.rb | 26 - .../models/ci/job_token/project_scope_link_spec.rb | 68 + spec/models/ci/job_token/scope_spec.rb | 65 + spec/models/ci/pending_build_spec.rb | 33 + spec/models/ci/pipeline_schedule_spec.rb | 77 +- spec/models/ci/pipeline_spec.rb | 126 +- spec/models/ci/runner_spec.rb | 177 +- spec/models/ci/running_build_spec.rb | 55 + spec/models/clusters/applications/fluentd_spec.rb | 84 - spec/models/clusters/applications/ingress_spec.rb | 90 - spec/models/clusters/cluster_spec.rb | 96 +- spec/models/clusters/clusters_hierarchy_spec.rb | 8 +- spec/models/commit_spec.rb | 101 +- spec/models/commit_status_spec.rb | 26 + spec/models/concerns/awardable_spec.rb | 4 +- spec/models/concerns/bulk_insert_safe_spec.rb | 31 + spec/models/concerns/deployment_platform_spec.rb | 32 +- spec/models/concerns/has_timelogs_report_spec.rb | 55 - spec/models/concerns/has_user_type_spec.rb | 2 +- .../concerns/integrations/has_data_fields_spec.rb | 156 ++ spec/models/concerns/issuable_spec.rb | 12 + spec/models/concerns/limitable_spec.rb | 25 +- .../encryption_helper_spec.rb | 94 +- spec/models/container_repository_spec.rb | 55 +- .../project_level_stage_adapter_spec.rb | 2 +- spec/models/deploy_token_spec.rb | 76 +- spec/models/deployment_metrics_spec.rb | 6 +- spec/models/diff_discussion_spec.rb | 6 +- spec/models/diff_note_spec.rb | 8 +- spec/models/email_spec.rb | 2 +- spec/models/environment_spec.rb | 67 +- spec/models/environment_status_spec.rb | 11 + spec/models/experiment_spec.rb | 66 +- spec/models/experiment_subject_spec.rb | 30 +- spec/models/group_spec.rb | 298 ++- spec/models/hooks/project_hook_spec.rb | 11 + spec/models/hooks/service_hook_spec.rb | 10 + spec/models/hooks/system_hook_spec.rb | 10 + spec/models/hooks/web_hook_log_archived_spec.rb | 52 - spec/models/hooks/web_hook_spec.rb | 49 +- spec/models/import_export_upload_spec.rb | 99 +- spec/models/integration_spec.rb | 31 +- spec/models/integrations/assembla_spec.rb | 6 +- spec/models/integrations/bamboo_spec.rb | 42 +- .../integrations/base_chat_notification_spec.rb | 296 +++ .../models/integrations/base_issue_tracker_spec.rb | 34 + spec/models/integrations/bugzilla_spec.rb | 35 + spec/models/integrations/buildkite_spec.rb | 151 ++ spec/models/integrations/campfire_spec.rb | 8 +- .../chat_message/wiki_page_message_spec.rb | 46 +- spec/models/integrations/confluence_spec.rb | 6 +- .../integrations/custom_issue_tracker_spec.rb | 35 + spec/models/integrations/discord_spec.rb | 82 + spec/models/integrations/drone_ci_spec.rb | 148 ++ spec/models/integrations/ewm_spec.rb | 61 + spec/models/integrations/external_wiki_spec.rb | 59 + spec/models/integrations/flowdock_spec.rb | 58 + spec/models/integrations/hangouts_chat_spec.rb | 15 + spec/models/integrations/irker_spec.rb | 76 + .../models/integrations/issue_tracker_data_spec.rb | 9 + spec/models/integrations/jenkins_spec.rb | 255 ++ spec/models/integrations/jira_spec.rb | 1081 +++++++++ spec/models/integrations/jira_tracker_data_spec.rb | 19 + .../integrations/mattermost_slash_commands_spec.rb | 132 ++ spec/models/integrations/mattermost_spec.rb | 7 + spec/models/integrations/microsoft_teams_spec.rb | 360 +++ spec/models/integrations/open_project_spec.rb | 35 + .../integrations/open_project_tracker_data_spec.rb | 19 + spec/models/integrations/packagist_spec.rb | 48 + spec/models/integrations/pipelines_email_spec.rb | 305 +++ spec/models/integrations/pivotaltracker_spec.rb | 101 + spec/models/integrations/pushover_spec.rb | 71 + spec/models/integrations/redmine_spec.rb | 53 + .../integrations/slack_slash_commands_spec.rb | 50 + spec/models/integrations/slack_spec.rb | 133 ++ spec/models/integrations/teamcity_spec.rb | 334 +++ spec/models/integrations/unify_circuit_spec.rb | 16 + spec/models/integrations/webex_teams_spec.rb | 14 + spec/models/integrations/youtrack_spec.rb | 45 + spec/models/issue_spec.rb | 54 +- spec/models/key_spec.rb | 12 +- spec/models/label_link_spec.rb | 25 +- spec/models/lfs_object_spec.rb | 30 + spec/models/lfs_objects_project_spec.rb | 2 +- spec/models/member_spec.rb | 45 +- spec/models/members/group_member_spec.rb | 16 + .../members/last_group_owner_assigner_spec.rb | 2 +- spec/models/members/project_member_spec.rb | 10 + spec/models/merge_request_diff_spec.rb | 55 +- spec/models/merge_request_spec.rb | 103 +- spec/models/milestone_spec.rb | 43 +- spec/models/namespace_spec.rb | 96 +- spec/models/note_spec.rb | 12 + spec/models/onboarding_progress_spec.rb | 22 + spec/models/operations/feature_flag_scope_spec.rb | 4 +- spec/models/operations/feature_flag_spec.rb | 8 +- spec/models/packages/debian/file_entry_spec.rb | 12 +- .../packages/debian/group_distribution_key_spec.rb | 7 + .../debian/project_distribution_key_spec.rb | 7 + spec/models/packages/package_file_spec.rb | 16 + spec/models/packages/package_spec.rb | 82 +- spec/models/pages/lookup_path_spec.rb | 9 +- spec/models/pages_domain_spec.rb | 32 +- spec/models/plan_limits_spec.rb | 1 + spec/models/postgresql/replication_slot_spec.rb | 4 + spec/models/project_ci_cd_setting_spec.rb | 6 + spec/models/project_feature_usage_spec.rb | 50 + .../models/project_repository_storage_move_spec.rb | 35 - .../project_services/bugzilla_service_spec.rb | 35 - .../project_services/buildkite_service_spec.rb | 151 -- .../chat_notification_service_spec.rb | 282 --- .../custom_issue_tracker_service_spec.rb | 35 - spec/models/project_services/data_fields_spec.rb | 156 -- .../project_services/discord_service_spec.rb | 82 - .../project_services/drone_ci_service_spec.rb | 148 -- spec/models/project_services/ewm_service_spec.rb | 61 - .../project_services/external_wiki_service_spec.rb | 59 - .../project_services/flowdock_service_spec.rb | 58 - .../project_services/hangouts_chat_service_spec.rb | 15 - .../project_services/hipchat_service_spec.rb | 36 - spec/models/project_services/irker_service_spec.rb | 76 - .../project_services/issue_tracker_data_spec.rb | 9 - .../project_services/issue_tracker_service_spec.rb | 34 - .../project_services/jenkins_service_spec.rb | 255 -- spec/models/project_services/jira_service_spec.rb | 976 -------- .../project_services/jira_tracker_data_spec.rb | 19 - .../project_services/mattermost_service_spec.rb | 7 - .../mattermost_slash_commands_service_spec.rb | 132 -- .../microsoft_teams_service_spec.rb | 360 --- .../project_services/open_project_service_spec.rb | 35 - .../open_project_tracker_data_spec.rb | 19 - .../project_services/packagist_service_spec.rb | 48 - .../pipelines_email_service_spec.rb | 305 --- .../pivotaltracker_service_spec.rb | 101 - .../project_services/prometheus_service_spec.rb | 27 +- .../project_services/pushover_service_spec.rb | 71 - .../project_services/redmine_service_spec.rb | 53 - spec/models/project_services/slack_service_spec.rb | 133 -- .../slack_slash_commands_service_spec.rb | 50 - .../project_services/teamcity_service_spec.rb | 334 --- .../project_services/unify_circuit_service_spec.rb | 16 - .../project_services/webex_teams_service_spec.rb | 14 - .../project_services/youtrack_service_spec.rb | 45 - spec/models/project_spec.rb | 390 ++-- spec/models/release_highlight_spec.rb | 6 +- spec/models/repository_spec.rb | 64 + spec/models/service_desk_setting_spec.rb | 31 + .../models/snippet_repository_storage_move_spec.rb | 13 - spec/models/snippet_spec.rb | 2 +- spec/models/timelog_spec.rb | 56 +- spec/models/todo_spec.rb | 12 + spec/models/user_detail_spec.rb | 5 + spec/models/user_spec.rb | 69 +- spec/policies/global_policy_spec.rb | 30 + spec/policies/group_policy_spec.rb | 20 +- spec/policies/issue_policy_spec.rb | 123 +- spec/policies/merge_request_policy_spec.rb | 5 +- spec/policies/project_policy_spec.rb | 244 +- spec/presenters/clusters/cluster_presenter_spec.rb | 4 +- spec/presenters/merge_request_presenter_spec.rb | 2 +- .../packages/detail/package_presenter_spec.rb | 3 +- .../packages/pypi/package_presenter_spec.rb | 55 +- spec/presenters/project_presenter_spec.rb | 2 +- spec/presenters/release_presenter_spec.rb | 40 - spec/presenters/service_hook_presenter_spec.rb | 8 +- spec/presenters/web_hook_log_presenter_spec.rb | 12 +- spec/rack_servers/unicorn_spec.rb | 105 - spec/rake_helper.rb | 6 - spec/requests/api/branches_spec.rb | 43 +- spec/requests/api/ci/runner/jobs_put_spec.rb | 70 +- .../api/ci/runner/jobs_request_post_spec.rb | 47 +- spec/requests/api/ci/runner/runners_post_spec.rb | 37 +- spec/requests/api/ci/runners_spec.rb | 10 +- spec/requests/api/commit_statuses_spec.rb | 66 +- spec/requests/api/commits_spec.rb | 19 + spec/requests/api/composer_packages_spec.rb | 2 + spec/requests/api/conan_instance_packages_spec.rb | 2 + spec/requests/api/debian_group_packages_spec.rb | 14 +- spec/requests/api/debian_project_packages_spec.rb | 28 +- spec/requests/api/feature_flag_scopes_spec.rb | 319 --- spec/requests/api/feature_flags_spec.rb | 216 +- spec/requests/api/files_spec.rb | 3 +- spec/requests/api/generic_packages_spec.rb | 3 +- spec/requests/api/go_proxy_spec.rb | 2 +- spec/requests/api/graphql/ci/ci_cd_setting_spec.rb | 1 + .../api/graphql/group/group_members_spec.rb | 17 + spec/requests/api/graphql/group/milestones_spec.rb | 7 + spec/requests/api/graphql/group/timelogs_spec.rb | 49 +- .../mutations/ci/ci_cd_settings_update_spec.rb | 32 +- .../ci/runners_registration_token/reset_spec.rb | 122 + .../api/graphql/mutations/labels/create_spec.rb | 3 +- .../api/graphql/mutations/snippets/create_spec.rb | 4 +- .../api/graphql/mutations/snippets/update_spec.rb | 2 +- .../graphql/mutations/todos/mark_all_done_spec.rb | 6 +- .../graphql/mutations/todos/restore_many_spec.rb | 2 - .../requests/api/graphql/packages/composer_spec.rb | 51 +- spec/requests/api/graphql/packages/conan_spec.rb | 50 +- spec/requests/api/graphql/packages/maven_spec.rb | 92 +- spec/requests/api/graphql/packages/nuget_spec.rb | 61 +- spec/requests/api/graphql/packages/pypi_spec.rb | 27 + .../api/graphql/project/base_service_spec.rb | 2 +- .../api/graphql/project/project_members_spec.rb | 14 + spec/requests/api/graphql/project/releases_spec.rb | 106 +- spec/requests/api/graphql/project_query_spec.rb | 25 +- spec/requests/api/group_avatar_spec.rb | 64 + .../api/group_container_repositories_spec.rb | 1 + spec/requests/api/group_export_spec.rb | 19 +- spec/requests/api/group_labels_spec.rb | 4 +- spec/requests/api/groups_spec.rb | 41 +- spec/requests/api/helm_packages_spec.rb | 63 + spec/requests/api/internal/base_spec.rb | 53 +- spec/requests/api/invitations_spec.rb | 50 +- .../api/issues/put_projects_issues_spec.rb | 11 - spec/requests/api/labels_spec.rb | 14 +- spec/requests/api/maven_packages_spec.rb | 426 ++-- spec/requests/api/members_spec.rb | 68 +- spec/requests/api/merge_requests_spec.rb | 45 +- spec/requests/api/npm_project_packages_spec.rb | 5 +- spec/requests/api/nuget_group_packages_spec.rb | 2 + spec/requests/api/nuget_project_packages_spec.rb | 8 +- spec/requests/api/project_attributes.yml | 4 +- .../api/project_container_repositories_spec.rb | 6 +- .../api/project_debian_distributions_spec.rb | 66 + spec/requests/api/project_export_spec.rb | 13 + spec/requests/api/project_packages_spec.rb | 32 +- .../api/project_repository_storage_moves_spec.rb | 2 +- spec/requests/api/project_statistics_spec.rb | 10 +- spec/requests/api/projects_spec.rb | 214 +- spec/requests/api/pypi_packages_spec.rb | 242 +- spec/requests/api/releases_spec.rb | 2 +- spec/requests/api/repositories_spec.rb | 10 +- spec/requests/api/rubygem_packages_spec.rb | 14 +- spec/requests/api/services_spec.rb | 2 +- spec/requests/api/settings_spec.rb | 4 + spec/requests/api/tags_spec.rb | 129 -- .../api/terraform/modules/v1/packages_spec.rb | 13 +- spec/requests/api/terraform/state_spec.rb | 22 - spec/requests/api/unleash_spec.rb | 162 +- spec/requests/api/users_preferences_spec.rb | 12 +- spec/requests/api/users_spec.rb | 23 + spec/requests/api/wikis_spec.rb | 45 +- spec/requests/git_http_spec.rb | 4 +- .../groups/email_campaigns_controller_spec.rb | 13 +- spec/requests/lfs_http_spec.rb | 4 +- spec/requests/oauth/tokens_controller_spec.rb | 71 +- spec/requests/openid_connect_spec.rb | 110 + spec/requests/users_controller_spec.rb | 42 - spec/routing/project_routing_spec.rb | 34 +- spec/routing/routing_spec.rb | 28 +- .../usage_data/histogram_with_large_table_spec.rb | 108 + .../usage_data/instrumentation_superclass_spec.rb | 64 + .../analytics_summary_serializer_spec.rb | 4 +- .../serializers/cluster_application_entity_spec.rb | 12 - spec/serializers/cluster_entity_spec.rb | 4 +- spec/serializers/fork_namespace_entity_spec.rb | 32 +- spec/serializers/issue_board_entity_spec.rb | 2 +- spec/serializers/member_serializer_spec.rb | 2 +- spec/serializers/merge_request_diff_entity_spec.rb | 68 +- spec/serializers/pipeline_serializer_spec.rb | 19 +- .../admin/propagate_service_template_spec.rb | 2 +- .../periodic_recalculate_service_spec.rb | 2 +- .../project_recalculate_service_spec.rb | 76 + .../recalculate_for_user_range_service_spec.rb | 21 - .../file_decompression_service_spec.rb | 99 + .../bulk_imports/file_download_service_spec.rb | 133 ++ .../bulk_imports/relation_export_service_spec.rb | 2 +- .../bulk_update_integration_service_spec.rb | 8 +- .../services/ci/append_build_trace_service_spec.rb | 2 +- .../ci/create_downstream_pipeline_service_spec.rb | 47 +- .../creation_errors_and_warnings_spec.rb | 13 - .../cross_project_pipeline_spec.rb | 2 + .../ci/create_pipeline_service/needs_spec.rb | 2 +- spec/services/ci/create_pipeline_service_spec.rb | 3 +- .../ci/job_artifacts/create_service_spec.rb | 47 - .../start_pipeline_service_spec.rb | 20 + .../shared_processing_service.rb | 2 + .../shared_processing_service_tests_with_yaml.rb | 1 + spec/services/ci/register_job_service_spec.rb | 147 +- spec/services/ci/retry_build_service_spec.rb | 10 +- .../services/ci/update_build_queue_service_spec.rb | 368 ++- .../services/ci/update_build_state_service_spec.rb | 42 +- .../clusters/applications/create_service_spec.rb | 7 +- spec/services/clusters/cleanup/app_service_spec.rb | 118 - spec/services/clusters/destroy_service_spec.rb | 6 +- .../clusters/gcp/finalize_creation_service_spec.rb | 6 +- ...e_cluster_applications_artifact_service_spec.rb | 126 - spec/services/commits/cherry_pick_service_spec.rb | 13 +- .../cleanup_service_spec.rb | 286 ++- .../deployments/update_environment_service_spec.rb | 36 + .../copy_design_collection/copy_service_spec.rb | 8 + spec/services/discussions/resolve_service_spec.rb | 45 + .../services/feature_flags/disable_service_spec.rb | 92 - spec/services/feature_flags/enable_service_spec.rb | 154 -- spec/services/feature_flags/update_service_spec.rb | 145 -- spec/services/groups/create_service_spec.rb | 2 +- spec/services/groups/destroy_service_spec.rb | 2 +- .../groups/group_links/create_service_spec.rb | 46 +- spec/services/groups/participants_service_spec.rb | 37 + .../import_export_clean_up_service_spec.rb | 77 +- spec/services/issue_rebalancing_service_spec.rb | 21 +- spec/services/issues/close_service_spec.rb | 85 +- spec/services/issues/create_service_spec.rb | 24 +- spec/services/issues/update_service_spec.rb | 90 +- spec/services/issues/zoom_link_service_spec.rb | 10 +- spec/services/jira_import/users_importer_spec.rb | 72 +- spec/services/lfs/push_service_spec.rb | 17 +- spec/services/members/create_service_spec.rb | 45 +- spec/services/members/invite_service_spec.rb | 16 +- spec/services/merge_requests/build_service_spec.rb | 70 +- .../services/merge_requests/create_service_spec.rb | 2 +- .../handle_assignees_change_service_spec.rb | 22 +- spec/services/merge_requests/merge_service_spec.rb | 4 +- .../update_assignees_service_spec.rb | 47 +- .../services/merge_requests/update_service_spec.rb | 8 + .../namespace_settings/update_service_spec.rb | 32 + .../in_product_marketing_emails_service_spec.rb | 29 +- spec/services/notes/create_service_spec.rb | 4 +- spec/services/notes/quick_actions_service_spec.rb | 16 + .../builder/default_spec.rb | 16 +- .../debian/create_distribution_service_spec.rb | 9 +- .../debian/destroy_distribution_service_spec.rb | 78 - .../extract_changes_metadata_service_spec.rb | 30 +- .../debian/generate_distribution_service_spec.rb | 175 +- .../debian/parse_debian822_service_spec.rb | 2 +- .../debian/process_changes_service_spec.rb | 3 + .../debian/update_distribution_service_spec.rb | 2 + .../helm/extract_file_metadata_service_spec.rb | 59 + .../nuget/metadata_extraction_service_spec.rb | 7 +- .../update_package_from_metadata_service_spec.rb | 28 +- spec/services/pages/delete_service_spec.rb | 37 +- .../pod_logs/elasticsearch_service_spec.rb | 18 +- spec/services/projects/create_service_spec.rb | 72 +- spec/services/projects/destroy_service_spec.rb | 17 - .../projects/group_links/create_service_spec.rb | 24 +- .../projects/group_links/destroy_service_spec.rb | 58 +- .../prometheus/alerts/notify_service_spec.rb | 39 +- ...ule_bulk_repository_shard_moves_service_spec.rb | 2 +- spec/services/projects/transfer_service_spec.rb | 2 - spec/services/projects/update_service_spec.rb | 25 + .../quick_actions/interpret_service_spec.rb | 10 - .../ci_configuration/sast_parser_service_spec.rb | 30 +- spec/services/snippets/create_service_spec.rb | 2 +- spec/services/snippets/update_service_spec.rb | 2 +- .../system_notes/issuables_service_spec.rb | 2 +- .../user_project_access_changed_service_spec.rb | 35 +- spec/services/users/activity_service_spec.rb | 47 + .../users/authorized_build_service_spec.rb | 16 + spec/services/users/build_service_spec.rb | 139 +- ...pdate_assigned_open_issue_count_service_spec.rb | 49 - spec/services/web_hook_service_spec.rb | 96 +- spec/spec_helper.rb | 9 + spec/support/capybara.rb | 3 +- spec/support/database_cleaner.rb | 2 - .../metrics_instrumentation_shared_examples.rb | 31 +- spec/support/gitlab_stubs/gitlab_ci_for_sast.yml | 1 - .../gitlab_ci_for_sast_default_analyzers.yml | 15 - spec/support/helpers/access_matchers_helpers.rb | 16 +- spec/support/helpers/cycle_analytics_helpers.rb | 5 + spec/support/helpers/feature_flag_helpers.rb | 3 +- .../helpers/features/top_nav_spec_helpers.rb | 53 + spec/support/helpers/gitaly_setup.rb | 4 +- .../helpers/global_id_deprecation_helpers.rb | 13 + spec/support/helpers/graphql_helpers.rb | 4 + .../support/helpers/javascript_fixtures_helpers.rb | 10 +- spec/support/helpers/login_helpers.rb | 6 +- spec/support/helpers/query_recorder.rb | 7 +- spec/support/helpers/rake_helpers.rb | 5 - spec/support/helpers/reference_parser_helpers.rb | 18 +- spec/support/helpers/usage_data_helpers.rb | 2 - spec/support/import_export/common_util.rb | 8 +- spec/support/matchers/be_one_of.rb | 11 + spec/support/redis.rb | 8 + spec/support/redis/redis_helpers.rb | 5 + spec/support/redis/redis_shared_examples.rb | 149 +- .../change_access_checks_shared_context.rb | 29 - .../changes_access_checks_shared_context.rb | 40 + .../group_integrations_shared_context.rb | 28 + ...stance_and_group_integrations_shared_context.rb | 18 + .../instance_integrations_shared_context.rb | 24 + .../integrations/integrations_shared_context.rb | 78 + .../project_integrations_jira_context.rb | 14 + .../project_integrations_shared_context.rb | 45 + .../graphql/requests/packages_shared_context.rb | 33 + .../load_balancing_configuration_shared_context.rb | 19 + .../shared_contexts/navbar_structure_context.rb | 20 +- .../policies/project_policy_shared_context.rb | 4 +- .../project_service_jira_context.rb | 14 - .../project_service_shared_context.rb | 47 - .../read_ci_configuration_shared_context.rb | 4 - .../requests/api/conan_packages_shared_context.rb | 4 +- .../requests/api/helm_packages_shared_context.rb | 10 + .../requests/api/npm_packages_shared_context.rb | 2 +- .../packages/debian/distribution_shared_context.rb | 20 + .../shared_contexts/services_shared_context.rb | 72 - .../single_change_access_checks_shared_context.rb | 29 + .../ci/badge_template_shared_examples.rb | 57 + .../controllers/wiki_actions_shared_examples.rb | 4 +- .../features/discussion_comments_shared_example.rb | 4 + ...st_slash_command_integration_shared_examples.rb | 34 + .../issuable_invite_members_shared_examples.rb | 12 +- .../features/variable_list_shared_examples.rb | 2 + .../finders/assignees_filter_shared_examples.rb | 6 + .../mutations/can_mutate_spammable_examples.rb | 6 +- .../resolves_subscription_shared_examples.rb | 53 +- .../lib/gitlab/ci/ci_trace_shared_examples.rb | 74 + .../lib/gitlab/experimentation_shared_examples.rb | 20 + .../models/chat_integration_shared_examples.rb | 359 +++ .../models/chat_service_shared_examples.rb | 359 --- .../models/chat_slash_commands_shared_examples.rb | 128 - .../slack_mattermost_notifier_shared_examples.rb | 648 ++++++ .../models/concerns/timebox_shared_examples.rb | 39 - .../base_slash_commands_shared_examples.rb | 128 + .../models/mentionable_shared_examples.rb | 4 +- .../debian/component_file_shared_example.rb | 18 +- .../debian/distribution_key_shared_examples.rb | 49 + .../debian/distribution_shared_examples.rb | 1 + ...ack_mattermost_notifications_shared_examples.rb | 643 ----- .../namespaces/linear_traversal_examples.rb | 23 + .../namespaces/traversal_examples.rb | 38 + .../requests/api/conan_packages_shared_examples.rb | 12 - .../api/debian_packages_shared_examples.rb | 222 +- .../packages/package_details_shared_examples.rb | 27 + .../requests/api/helm_packages_shared_examples.rb | 53 + .../requests/api/packages_shared_examples.rb | 2 +- .../requests/api/pypi_packages_shared_examples.rb | 173 +- .../resource_label_events_api_shared_examples.rb | 2 +- .../requests/api/tracking_shared_examples.rb | 2 +- ...luster_applications_artifact_shared_examples.rb | 89 - .../generate_distribution_shared_examples.rb | 166 ++ .../users/build_service_shared_examples.rb | 125 + .../uncached_response_shared_examples.rb | 12 - spec/support/unicorn.rb | 27 - spec/tasks/admin_mode_spec.rb | 2 +- spec/tasks/cache/clear/redis_spec.rb | 39 +- spec/tasks/config_lint_spec.rb | 4 +- spec/tasks/gettext_rake_spec.rb | 4 +- spec/tasks/gitlab/artifacts/check_rake_spec.rb | 2 +- spec/tasks/gitlab/artifacts/migrate_rake_spec.rb | 2 +- spec/tasks/gitlab/backup_rake_spec.rb | 78 +- spec/tasks/gitlab/check_rake_spec.rb | 2 +- spec/tasks/gitlab/cleanup_rake_spec.rb | 2 +- spec/tasks/gitlab/container_registry_rake_spec.rb | 2 +- spec/tasks/gitlab/db_rake_spec.rb | 18 +- spec/tasks/gitlab/external_diffs_rake_spec.rb | 2 +- .../gitlab/generate_sample_prometheus_data_spec.rb | 2 +- spec/tasks/gitlab/git_rake_spec.rb | 2 +- spec/tasks/gitlab/gitaly_rake_spec.rb | 2 +- spec/tasks/gitlab/info_rake_spec.rb | 2 +- spec/tasks/gitlab/ldap_rake_spec.rb | 6 +- spec/tasks/gitlab/lfs/check_rake_spec.rb | 2 +- spec/tasks/gitlab/lfs/migrate_rake_spec.rb | 2 +- spec/tasks/gitlab/packages/composer_rake_spec.rb | 2 +- spec/tasks/gitlab/packages/events_rake_spec.rb | 2 +- spec/tasks/gitlab/packages/migrate_rake_spec.rb | 2 +- spec/tasks/gitlab/pages_rake_spec.rb | 2 +- spec/tasks/gitlab/password_rake_spec.rb | 2 +- spec/tasks/gitlab/praefect_rake_spec.rb | 2 +- spec/tasks/gitlab/seed/group_seed_rake_spec.rb | 2 +- spec/tasks/gitlab/shell_rake_spec.rb | 2 +- spec/tasks/gitlab/sidekiq_rake_spec.rb | 2 +- spec/tasks/gitlab/snippets_rake_spec.rb | 2 +- spec/tasks/gitlab/storage_rake_spec.rb | 31 +- spec/tasks/gitlab/terraform/migrate_rake_spec.rb | 4 +- spec/tasks/gitlab/update_templates_rake_spec.rb | 2 +- spec/tasks/gitlab/uploads/check_rake_spec.rb | 2 +- spec/tasks/gitlab/uploads/migrate_rake_spec.rb | 2 +- spec/tasks/gitlab/usage_data_rake_spec.rb | 2 +- spec/tasks/gitlab/user_management_rake_spec.rb | 2 +- spec/tasks/gitlab/web_hook_rake_spec.rb | 2 +- spec/tasks/gitlab/workhorse_rake_spec.rb | 2 +- spec/tasks/gitlab/x509/update_rake_spec.rb | 2 +- spec/tasks/migrate/schema_check_rake_spec.rb | 2 +- spec/tasks/tokens_spec.rb | 2 +- spec/tooling/danger/changelog_spec.rb | 299 ++- spec/tooling/danger/product_intelligence_spec.rb | 150 ++ spec/tooling/danger/project_helper_spec.rb | 36 +- spec/tooling/graphql/docs/renderer_spec.rb | 643 +++++ spec/views/admin/users/_user.html.haml_spec.rb | 51 - .../devise/shared/_signup_box.html.haml_spec.rb | 2 +- .../layouts/header/_new_dropdown.haml_spec.rb | 12 +- .../layouts/nav/sidebar/_group.html.haml_spec.rb | 12 +- .../layouts/nav/sidebar/_project.html.haml_spec.rb | 45 +- .../clusters/clusters/gcp/_form.html.haml_spec.rb | 12 - spec/views/projects/empty.html.haml_spec.rb | 47 +- spec/views/projects/services/_form.haml_spec.rb | 17 +- .../views/projects/services/edit.html.haml_spec.rb | 6 +- .../settings/operations/show.html.haml_spec.rb | 40 +- spec/views/shared/nav/_sidebar.html.haml_spec.rb | 2 - .../count_job_trigger_worker_spec.rb | 17 - .../instance_statistics/counter_job_worker_spec.rb | 70 - .../project_recalculate_worker_spec.rb | 68 + .../user_refresh_from_replica_worker_spec.rb | 11 + .../user_refresh_over_user_range_worker_spec.rb | 58 +- spec/workers/build_hooks_worker_spec.rb | 15 +- spec/workers/build_queue_worker_spec.rb | 31 + spec/workers/bulk_import_worker_spec.rb | 22 + .../bulk_imports/export_request_worker_spec.rb | 2 +- spec/workers/bulk_imports/pipeline_worker_spec.rb | 122 +- .../ci/initial_pipeline_process_worker_spec.rb | 4 +- .../applications/activate_service_worker_spec.rb | 6 +- .../applications/deactivate_service_worker_spec.rb | 12 +- spec/workers/clusters/cleanup/app_worker_spec.rb | 41 - spec/workers/concerns/application_worker_spec.rb | 34 + spec/workers/concerns/worker_attributes_spec.rb | 68 + .../cleanup_container_repository_worker_spec.rb | 560 ++--- .../container_expiration_policy_worker_spec.rb | 104 +- .../deployments/execute_hooks_worker_spec.rb | 51 - spec/workers/every_sidekiq_worker_spec.rb | 8 +- spec/workers/expire_pipeline_cache_worker_spec.rb | 11 +- spec/workers/git_garbage_collect_worker_spec.rb | 26 - .../process_alert_worker_spec.rb | 88 - .../process_prometheus_alert_worker_spec.rb | 28 - spec/workers/issue_placement_worker_spec.rb | 4 +- spec/workers/issue_rebalancing_worker_spec.rb | 85 +- .../merge_requests/assignees_change_worker_spec.rb | 59 - .../debian/generate_distribution_worker_spec.rb | 62 + spec/workers/pipeline_hooks_worker_spec.rb | 5 + spec/workers/pipeline_process_worker_spec.rb | 45 +- spec/workers/post_receive_spec.rb | 2 +- spec/workers/process_commit_worker_spec.rb | 2 +- ...dule_bulk_repository_shard_moves_worker_spec.rb | 12 - spec/workers/project_service_worker_spec.rb | 2 +- ...roject_update_repository_storage_worker_spec.rb | 15 - spec/workers/projects/post_creation_worker_spec.rb | 4 +- ...dule_bulk_repository_shard_moves_worker_spec.rb | 2 +- .../propagate_integration_inherit_worker_spec.rb | 2 +- spec/workers/propagate_integration_worker_spec.rb | 8 +- .../propagate_service_template_worker_spec.rb | 2 +- spec/workers/prune_web_hook_logs_worker_spec.rb | 26 - .../remove_expired_group_links_worker_spec.rb | 2 +- .../remove_unreferenced_lfs_objects_worker_spec.rb | 8 +- ...dule_bulk_repository_shard_moves_worker_spec.rb | 12 - ...nippet_update_repository_storage_worker_spec.rb | 15 - .../ssh_keys/expired_notification_worker_spec.rb | 36 +- .../expiring_soon_notification_worker_spec.rb | 10 - spec/workers/stuck_ci_jobs_worker_spec.rb | 132 +- .../users/update_open_issue_count_worker_spec.rb | 65 - spec/workers/web_hook_worker_spec.rb | 7 +- tooling/danger/changelog.rb | 161 +- tooling/danger/product_intelligence.rb | 102 + tooling/danger/project_helper.rb | 13 +- tooling/graphql/docs/helper.rb | 438 ++++ tooling/graphql/docs/renderer.rb | 54 + tooling/graphql/docs/templates/default.md.haml | 224 ++ vendor/Dockerfile/OpenJDK-alpine.Dockerfile | 8 - vendor/elastic_stack/values.yaml | 6 - vendor/fluentd/values.yaml | 18 - vendor/ingress/modsecurity.conf | 274 --- vendor/project_templates/cluster_management.tar.gz | Bin 4051 -> 12723 bytes workhorse/config.toml.example | 1 + workhorse/config_test.go | 9 + workhorse/doc/operations/configuration.md | 6 +- workhorse/gitaly_integration_test.go | 2 +- workhorse/gitaly_test.go | 2 +- workhorse/go.mod | 7 +- workhorse/go.sum | 74 +- workhorse/internal/api/api.go | 8 +- workhorse/internal/config/config.go | 20 +- workhorse/internal/git/archive.go | 2 +- workhorse/internal/git/archive_test.go | 2 +- workhorse/internal/git/blob.go | 2 +- workhorse/internal/git/diff.go | 2 +- workhorse/internal/git/format-patch.go | 2 +- workhorse/internal/git/snapshot.go | 2 +- workhorse/internal/git/upload-pack_test.go | 2 +- workhorse/internal/gitaly/blob.go | 4 +- workhorse/internal/gitaly/diff.go | 4 +- workhorse/internal/gitaly/gitaly.go | 6 +- workhorse/internal/gitaly/namespace.go | 2 +- workhorse/internal/gitaly/repository.go | 4 +- workhorse/internal/gitaly/smarthttp.go | 4 +- workhorse/internal/gitaly/unmarshal_test.go | 2 +- workhorse/internal/httprs/httprs_test.go | 8 + .../internal/lsif_transformer/parser/code_hover.go | 20 + .../lsif_transformer/parser/code_hover_test.go | 24 +- .../internal/lsif_transformer/parser/hovers.go | 13 +- workhorse/internal/objectstore/multipart.go | 11 +- workhorse/internal/redis/keywatcher.go | 18 + workhorse/internal/redis/keywatcher_test.go | 55 + workhorse/internal/redis/redis.go | 64 +- workhorse/internal/redis/redis_test.go | 16 +- workhorse/internal/testhelper/gitaly.go | 2 +- workhorse/main.go | 24 +- workhorse/main_test.go | 2 +- yarn.lock | 718 +++--- 5832 files changed, 196003 insertions(+), 104002 deletions(-) delete mode 100644 .gitlab/ci/untamper-my-lockfile.yml delete mode 100644 .gitlab/issue_templates/Feature Flag Removal.md create mode 100644 app/assets/images/aws-cloud-formation.png delete mode 100644 app/assets/images/cluster_app_logos/fluentd.png create mode 100644 app/assets/images/mailers/in_product_marketing/experience-0.png create mode 100644 app/assets/images/mailers/members/issues.png create mode 100644 app/assets/images/mailers/members/merge-request-open.png create mode 100644 app/assets/images/mailers/members/users.png create mode 100644 app/assets/javascripts/alerts_settings/components/alerts_form.vue create mode 100644 app/assets/javascripts/alerts_settings/graphql/fragmentTypes.json create mode 100644 app/assets/javascripts/api/analytics_api.js create mode 100644 app/assets/javascripts/api/markdown_api.js create mode 100644 app/assets/javascripts/blob/components/table_contents.vue delete mode 100644 app/assets/javascripts/boards/components/sidebar/board_sidebar_due_date.vue delete mode 100644 app/assets/javascripts/boards/components/sidebar/board_sidebar_milestone_select.vue create mode 100644 app/assets/javascripts/boards/graphql/group_board_members.query.graphql delete mode 100644 app/assets/javascripts/boards/graphql/issue_set_due_date.mutation.graphql delete mode 100644 app/assets/javascripts/boards/graphql/issue_set_milestone.mutation.graphql create mode 100644 app/assets/javascripts/boards/graphql/project_board_members.query.graphql create mode 100644 app/assets/javascripts/branches/components/delete_branch_button.vue create mode 100644 app/assets/javascripts/branches/components/delete_branch_modal.vue create mode 100644 app/assets/javascripts/branches/event_hub.js create mode 100644 app/assets/javascripts/branches/init_delete_branch_button.js create mode 100644 app/assets/javascripts/branches/init_delete_branch_modal.js delete mode 100644 app/assets/javascripts/clusters/components/fluentd_output_settings.vue delete mode 100644 app/assets/javascripts/clusters/components/ingress_modsecurity_settings.vue create mode 100644 app/assets/javascripts/content_editor/components/toolbar_link_button.vue create mode 100644 app/assets/javascripts/content_editor/components/toolbar_text_style_dropdown.vue create mode 100644 app/assets/javascripts/content_editor/services/utils.js create mode 100644 app/assets/javascripts/cycle_analytics/components/path_navigation.vue create mode 100644 app/assets/javascripts/cycle_analytics/store/getters.js create mode 100644 app/assets/javascripts/diffs/utils/workers.js create mode 100644 app/assets/javascripts/feature_flags/components/empty_state.vue delete mode 100644 app/assets/javascripts/feature_flags/components/feature_flags_tab.vue delete mode 100644 app/assets/javascripts/feature_flags/components/user_lists_table.vue create mode 100644 app/assets/javascripts/graphql_shared/fragments/alert_detail_item.fragment.graphql create mode 100644 app/assets/javascripts/graphql_shared/queries/alert_details.query.graphql create mode 100644 app/assets/javascripts/graphql_shared/queries/get_user_callouts.query.graphql delete mode 100644 app/assets/javascripts/import_entities/import_groups/graphql/queries/group.query.graphql create mode 100644 app/assets/javascripts/import_entities/import_groups/graphql/queries/groupAndProject.query.graphql delete mode 100644 app/assets/javascripts/incidents_settings/components/alerts_form.vue create mode 100644 app/assets/javascripts/issue_show/components/fields/type.vue create mode 100644 app/assets/javascripts/issue_show/graphql.js create mode 100644 app/assets/javascripts/issue_show/queries/get_issue_state.query.graphql create mode 100644 app/assets/javascripts/issue_show/queries/update_issue_state.mutation.graphql create mode 100644 app/assets/javascripts/jobs/components/table/constants.js create mode 100644 app/assets/javascripts/lib/utils/datetime/date_calculation_utility.js create mode 100644 app/assets/javascripts/lib/utils/datetime/date_format_utility.js create mode 100644 app/assets/javascripts/lib/utils/datetime/pikaday_utility.js create mode 100644 app/assets/javascripts/lib/utils/datetime/timeago_utility.js create mode 100644 app/assets/javascripts/lib/utils/table_utility.js create mode 100644 app/assets/javascripts/nav/components/responsive_app.vue create mode 100644 app/assets/javascripts/nav/components/responsive_header.vue create mode 100644 app/assets/javascripts/nav/components/responsive_home.vue create mode 100644 app/assets/javascripts/nav/components/top_nav_menu_sections.vue create mode 100644 app/assets/javascripts/nav/components/top_nav_new_dropdown.vue create mode 100644 app/assets/javascripts/nav/event_hub.js create mode 100644 app/assets/javascripts/nav/utils/has_menu_expanded.js create mode 100644 app/assets/javascripts/nav/utils/index.js create mode 100644 app/assets/javascripts/nav/utils/reset_menu_items_active.js create mode 100644 app/assets/javascripts/packages/details/components/file_sha.vue create mode 100644 app/assets/javascripts/packages_and_registries/infrastructure_registry/components/details_title.vue create mode 100644 app/assets/javascripts/packages_and_registries/infrastructure_registry/components/terraform_installation.vue create mode 100644 app/assets/javascripts/packages_and_registries/infrastructure_registry/details_app_bundle.js create mode 100644 app/assets/javascripts/packages_and_registries/shared/components/cleanup_policy_enabled_alert.vue create mode 100644 app/assets/javascripts/pages/groups/new/components/app.vue create mode 100644 app/assets/javascripts/pages/groups/new/components/create_group_description_details.vue create mode 100644 app/assets/javascripts/pages/projects/feature_flags_user_lists/index/index.js create mode 100644 app/assets/javascripts/pages/projects/packages/infrastructure_registry/show/index.js create mode 100644 app/assets/javascripts/pages/shared/mount_runner_aws_deployments.js create mode 100644 app/assets/javascripts/pages/shared/nav/sidebar_tracking.js create mode 100644 app/assets/javascripts/pages/shared/wikis/constants.js delete mode 100644 app/assets/javascripts/pipeline_editor/components/drawer/ui/pipeline_visual_reference.vue create mode 100644 app/assets/javascripts/pipeline_editor/graphql/mutations/update_current_branch.mutation.graphql create mode 100644 app/assets/javascripts/pipeline_editor/graphql/mutations/update_last_commit_branch.mutation.graphql create mode 100644 app/assets/javascripts/pipeline_editor/graphql/queries/client/last_commit_branch.query.graphql create mode 100644 app/assets/javascripts/pipeline_editor/graphql/queries/get_starter_template.query.graphql delete mode 100644 app/assets/javascripts/pipelines/components/notification/pipeline_notification.vue delete mode 100644 app/assets/javascripts/pipelines/graphql/queries/get_user_callouts.query.graphql delete mode 100644 app/assets/javascripts/pipelines/pipeline_details_notification.js create mode 100644 app/assets/javascripts/releases/components/app_index_apollo_client.vue create mode 100644 app/assets/javascripts/releases/components/releases_empty_state.vue create mode 100644 app/assets/javascripts/releases/components/releases_pagination_apollo_client.vue create mode 100644 app/assets/javascripts/releases/components/releases_sort_apollo_client.vue create mode 100644 app/assets/javascripts/repository/components/blob_replace.vue create mode 100644 app/assets/javascripts/repository/constants.js create mode 100644 app/assets/javascripts/runner/components/cells/runner_actions_cell.vue create mode 100644 app/assets/javascripts/runner/components/cells/runner_name_cell.vue create mode 100644 app/assets/javascripts/runner/components/cells/runner_type_cell.vue create mode 100644 app/assets/javascripts/runner/components/runner_filtered_search_bar.vue create mode 100644 app/assets/javascripts/runner/components/runner_list.vue create mode 100644 app/assets/javascripts/runner/components/runner_manual_setup_help.vue create mode 100644 app/assets/javascripts/runner/components/runner_pagination.vue create mode 100644 app/assets/javascripts/runner/components/runner_tags.vue create mode 100644 app/assets/javascripts/runner/components/runner_type_alert.vue create mode 100644 app/assets/javascripts/runner/components/runner_type_help.vue create mode 100644 app/assets/javascripts/runner/components/runner_update_form.vue create mode 100644 app/assets/javascripts/runner/graphql/delete_runner.mutation.graphql create mode 100644 app/assets/javascripts/runner/graphql/get_runners.query.graphql create mode 100644 app/assets/javascripts/runner/graphql/runner_details.fragment.graphql create mode 100644 app/assets/javascripts/runner/graphql/runner_node.fragment.graphql create mode 100644 app/assets/javascripts/runner/graphql/runner_update.mutation.graphql create mode 100644 app/assets/javascripts/runner/runner_list/index.js create mode 100644 app/assets/javascripts/runner/runner_list/runner_list_app.vue create mode 100644 app/assets/javascripts/runner/runner_list/runner_search_utils.js create mode 100644 app/assets/javascripts/search/topbar/components/searchable_dropdown_item.vue create mode 100644 app/assets/javascripts/security_configuration/components/redesigned_app.vue create mode 100644 app/assets/javascripts/security_configuration/components/section_layout.vue create mode 100644 app/assets/javascripts/security_configuration/components/upgrade_banner.vue create mode 100644 app/assets/javascripts/security_configuration/utils.js delete mode 100644 app/assets/javascripts/sidebar/components/participants/sidebar_participants.vue create mode 100644 app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue create mode 100644 app/assets/javascripts/sidebar/queries/issue_time_tracking.query.graphql create mode 100644 app/assets/javascripts/sidebar/queries/merge_request_time_tracking.query.graphql create mode 100644 app/assets/javascripts/sidebar/queries/milestone.fragment.graphql create mode 100644 app/assets/javascripts/sidebar/queries/project_issue_milestone.mutation.graphql create mode 100644 app/assets/javascripts/sidebar/queries/project_issue_milestone.query.graphql create mode 100644 app/assets/javascripts/sidebar/queries/project_milestones.query.graphql create mode 100644 app/assets/javascripts/sidebar/track_invite_members.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/constants.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/modals/add_image/add_image_modal.vue create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/modals/add_image/upload_image_tab.vue create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/modals/insert_video_modal.vue create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/rich_content_editor.vue create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/build_custom_renderer.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/build_html_to_markdown_renderer.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/editor_service.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/renderers/build_uneditable_token.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/renderers/render_attribute_definition.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/renderers/render_embedded_ruby_text.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/renderers/render_font_awesome_html_inline.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/renderers/render_heading.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/renderers/render_html_block.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/renderers/render_identifier_instance_text.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/renderers/render_identifier_paragraph.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/renderers/render_list_item.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/renderers/render_softbreak.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/renderers/render_utils.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/services/sanitize_html.js create mode 100644 app/assets/javascripts/static_site_editor/rich_content_editor/toolbar_item.vue delete mode 100644 app/assets/javascripts/tracking.js create mode 100644 app/assets/javascripts/tracking/constants.js create mode 100644 app/assets/javascripts/tracking/get_standard_context.js create mode 100644 app/assets/javascripts/tracking/index.js create mode 100644 app/assets/javascripts/user_lists/components/user_lists.vue create mode 100644 app/assets/javascripts/user_lists/components/user_lists_table.vue create mode 100644 app/assets/javascripts/user_lists/store/index/actions.js create mode 100644 app/assets/javascripts/user_lists/store/index/index.js create mode 100644 app/assets/javascripts/user_lists/store/index/mutation_types.js create mode 100644 app/assets/javascripts/user_lists/store/index/mutations.js create mode 100644 app/assets/javascripts/user_lists/store/index/state.js delete mode 100644 app/assets/javascripts/vue_shared/alert_details/graphql/fragments/alert_detail_item.fragment.graphql delete mode 100644 app/assets/javascripts/vue_shared/alert_details/graphql/queries/alert_details.query.graphql create mode 100644 app/assets/javascripts/vue_shared/alert_details/graphql/queries/alert_sidebar_details.query.graphql create mode 100644 app/assets/javascripts/vue_shared/components/incidents/utils.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/constants.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/modals/add_image/add_image_modal.vue delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/modals/add_image/upload_image_tab.vue delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/modals/insert_video_modal.vue delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/rich_content_editor.vue delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/build_custom_renderer.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/build_html_to_markdown_renderer.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/editor_service.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/build_uneditable_token.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_attribute_definition.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_embedded_ruby_text.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_font_awesome_html_inline.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_heading.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_html_block.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_identifier_instance_text.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_identifier_paragraph.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_list_item.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_softbreak.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_utils.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/services/sanitize_html.js delete mode 100644 app/assets/javascripts/vue_shared/components/rich_content_editor/toolbar_item.vue create mode 100644 app/assets/javascripts/vue_shared/components/runner_aws_deployments/constants.js create mode 100644 app/assets/javascripts/vue_shared/components/runner_aws_deployments/runner_aws_deployments.vue create mode 100644 app/assets/javascripts/vue_shared/components/runner_aws_deployments/runner_aws_deployments_modal.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/base.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_button.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_create_label.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_footer.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_header.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_search_input.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_title.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_value.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_value_collapsed.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_vue/dropdown_value_collapsed.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/constants.js create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_button.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_contents.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_contents_create_view.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_contents_labels_view.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_title.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_value.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/label_item.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/labels_select_root.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/actions.js create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/getters.js create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/index.js create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/mutation_types.js create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/mutations.js create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/state.js create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/queries/get_alert_assignees.query.graphql create mode 100644 app/assets/javascripts/vue_shared/components/user_callout_dismisser.vue create mode 100644 app/assets/javascripts/vue_shared/security_reports/components/artifact_downloads/merge_request_artifact_download.vue create mode 100644 app/assets/stylesheets/framework/blank.scss delete mode 100644 app/assets/stylesheets/framework/contextual_sidebar.scss create mode 100644 app/assets/stylesheets/framework/contextual_sidebar_header.scss create mode 100644 app/assets/stylesheets/framework/contextual_sidebar_refactoring/contextual_sidebar.scss create mode 100644 app/assets/stylesheets/framework/contextual_sidebar_refactoring/contextual_sidebar_base.scss create mode 100644 app/assets/stylesheets/framework/contextual_sidebar_refactoring/contextual_sidebar_variant.scss create mode 100644 app/assets/stylesheets/page_bundles/escalation_policies.scss create mode 100644 app/assets/stylesheets/page_bundles/group.scss create mode 100644 app/assets/stylesheets/page_bundles/project.scss delete mode 100644 app/controllers/admin/appearances_controller.rb create mode 100644 app/controllers/admin/application_settings/appearances_controller.rb create mode 100644 app/controllers/admin/background_migrations_controller.rb create mode 100644 app/controllers/projects/analytics/cycle_analytics/summary_controller.rb create mode 100644 app/finders/issuables/assignee_filter.rb create mode 100644 app/finders/packages/helm/package_files_finder.rb create mode 100644 app/graphql/mutations/ci/runner/delete.rb create mode 100644 app/graphql/mutations/ci/runner/update.rb create mode 100644 app/graphql/mutations/ci/runners_registration_token/reset.rb delete mode 100644 app/graphql/resolvers/concerns/board_issue_filterable.rb create mode 100644 app/graphql/resolvers/concerns/board_item_filterable.rb create mode 100644 app/graphql/types/merge_requests/merge_status_enum.rb create mode 100644 app/graphql/types/packages/pypi/metadatum_type.rb create mode 100644 app/helpers/admin/background_migrations_helper.rb create mode 100644 app/helpers/keyset_helper.rb create mode 100644 app/helpers/nav/new_dropdown_helper.rb create mode 100644 app/models/analytics/cycle_analytics/project_level.rb create mode 100644 app/models/bulk_imports/export_status.rb create mode 100644 app/models/ci/build_trace_chunks/redis_base.rb create mode 100644 app/models/ci/build_trace_chunks/redis_trace_chunks.rb create mode 100644 app/models/ci/job_token/project_scope_link.rb create mode 100644 app/models/ci/job_token/scope.rb create mode 100644 app/models/ci/pending_build.rb create mode 100644 app/models/ci/running_build.rb delete mode 100644 app/models/clusters/applications/fluentd.rb delete mode 100644 app/models/concerns/has_timelogs_report.rb create mode 100644 app/models/concerns/integrations/base_data_fields.rb create mode 100644 app/models/concerns/integrations/has_data_fields.rb create mode 100644 app/models/concerns/integrations/slack_mattermost_notifier.rb create mode 100644 app/models/concerns/packages/debian/distribution_key.rb delete mode 100644 app/models/concerns/services/data_fields.rb create mode 100644 app/models/concerns/taggable_queries.rb delete mode 100644 app/models/cycle_analytics/project_level.rb delete mode 100644 app/models/hooks/web_hook_log_archived.rb create mode 100644 app/models/integrations/base_chat_notification.rb create mode 100644 app/models/integrations/base_ci.rb create mode 100644 app/models/integrations/base_issue_tracker.rb create mode 100644 app/models/integrations/base_slash_commands.rb create mode 100644 app/models/integrations/bugzilla.rb create mode 100644 app/models/integrations/buildkite.rb delete mode 100644 app/models/integrations/builds_email.rb create mode 100644 app/models/integrations/custom_issue_tracker.rb create mode 100644 app/models/integrations/discord.rb create mode 100644 app/models/integrations/drone_ci.rb create mode 100644 app/models/integrations/ewm.rb create mode 100644 app/models/integrations/external_wiki.rb create mode 100644 app/models/integrations/flowdock.rb create mode 100644 app/models/integrations/hangouts_chat.rb create mode 100644 app/models/integrations/irker.rb create mode 100644 app/models/integrations/issue_tracker_data.rb create mode 100644 app/models/integrations/jenkins.rb create mode 100644 app/models/integrations/jira.rb create mode 100644 app/models/integrations/jira_tracker_data.rb create mode 100644 app/models/integrations/mattermost.rb create mode 100644 app/models/integrations/mattermost_slash_commands.rb create mode 100644 app/models/integrations/microsoft_teams.rb create mode 100644 app/models/integrations/mock_ci.rb create mode 100644 app/models/integrations/open_project.rb create mode 100644 app/models/integrations/open_project_tracker_data.rb create mode 100644 app/models/integrations/packagist.rb create mode 100644 app/models/integrations/pipelines_email.rb create mode 100644 app/models/integrations/pivotaltracker.rb create mode 100644 app/models/integrations/pushover.rb create mode 100644 app/models/integrations/redmine.rb create mode 100644 app/models/integrations/slack.rb create mode 100644 app/models/integrations/slack_slash_commands.rb create mode 100644 app/models/integrations/teamcity.rb create mode 100644 app/models/integrations/unify_circuit.rb create mode 100644 app/models/integrations/webex_teams.rb create mode 100644 app/models/integrations/youtrack.rb create mode 100644 app/models/packages/debian/group_distribution_key.rb create mode 100644 app/models/packages/debian/project_distribution_key.rb delete mode 100644 app/models/project_repository_storage_move.rb delete mode 100644 app/models/project_services/bugzilla_service.rb delete mode 100644 app/models/project_services/buildkite_service.rb delete mode 100644 app/models/project_services/chat_notification_service.rb delete mode 100644 app/models/project_services/ci_service.rb delete mode 100644 app/models/project_services/custom_issue_tracker_service.rb delete mode 100644 app/models/project_services/data_fields.rb delete mode 100644 app/models/project_services/discord_service.rb delete mode 100644 app/models/project_services/drone_ci_service.rb delete mode 100644 app/models/project_services/ewm_service.rb delete mode 100644 app/models/project_services/external_wiki_service.rb delete mode 100644 app/models/project_services/flowdock_service.rb delete mode 100644 app/models/project_services/hangouts_chat_service.rb delete mode 100644 app/models/project_services/hipchat_service.rb delete mode 100644 app/models/project_services/irker_service.rb delete mode 100644 app/models/project_services/issue_tracker_data.rb delete mode 100644 app/models/project_services/issue_tracker_service.rb delete mode 100644 app/models/project_services/jenkins_service.rb delete mode 100644 app/models/project_services/jira_service.rb delete mode 100644 app/models/project_services/jira_tracker_data.rb delete mode 100644 app/models/project_services/mattermost_service.rb delete mode 100644 app/models/project_services/mattermost_slash_commands_service.rb delete mode 100644 app/models/project_services/microsoft_teams_service.rb delete mode 100644 app/models/project_services/mock_ci_service.rb delete mode 100644 app/models/project_services/open_project_service.rb delete mode 100644 app/models/project_services/open_project_tracker_data.rb delete mode 100644 app/models/project_services/packagist_service.rb delete mode 100644 app/models/project_services/pipelines_email_service.rb delete mode 100644 app/models/project_services/pivotaltracker_service.rb delete mode 100644 app/models/project_services/pushover_service.rb delete mode 100644 app/models/project_services/redmine_service.rb delete mode 100644 app/models/project_services/slack_mattermost/notifier.rb delete mode 100644 app/models/project_services/slack_service.rb delete mode 100644 app/models/project_services/slack_slash_commands_service.rb delete mode 100644 app/models/project_services/slash_commands_service.rb delete mode 100644 app/models/project_services/teamcity_service.rb delete mode 100644 app/models/project_services/unify_circuit_service.rb delete mode 100644 app/models/project_services/webex_teams_service.rb delete mode 100644 app/models/project_services/youtrack_service.rb delete mode 100644 app/models/snippet_repository_storage_move.rb create mode 100644 app/policies/packages/pypi/metadatum_policy.rb create mode 100644 app/services/authorized_project_update/project_recalculate_service.rb delete mode 100644 app/services/authorized_project_update/recalculate_for_user_range_service.rb create mode 100644 app/services/bulk_imports/file_decompression_service.rb create mode 100644 app/services/bulk_imports/file_download_service.rb create mode 100644 app/services/ci/pipeline_creation/start_pipeline_service.rb create mode 100644 app/services/ci/pipeline_schedules/calculate_next_run_service.rb delete mode 100644 app/services/clusters/cleanup/app_service.rb delete mode 100644 app/services/clusters/parse_cluster_applications_artifact_service.rb delete mode 100644 app/services/feature_flags/disable_service.rb delete mode 100644 app/services/feature_flags/enable_service.rb delete mode 100644 app/services/packages/debian/destroy_distribution_service.rb create mode 100644 app/services/packages/helm/extract_file_metadata_service.rb create mode 100644 app/services/users/authorized_build_service.rb create mode 100644 app/services/users/authorized_create_service.rb delete mode 100644 app/services/users/update_assigned_open_issue_count_service.rb create mode 100644 app/services/web_hooks/log_execution_service.rb create mode 100644 app/validators/json_schemas/ci_runner_config.json delete mode 100644 app/views/admin/appearances/_form.html.haml delete mode 100644 app/views/admin/appearances/_system_header_footer_form.html.haml delete mode 100644 app/views/admin/appearances/preview_sign_in.html.haml delete mode 100644 app/views/admin/appearances/show.html.haml create mode 100644 app/views/admin/application_settings/appearances/_form.html.haml create mode 100644 app/views/admin/application_settings/appearances/_system_header_footer_form.html.haml create mode 100644 app/views/admin/application_settings/appearances/preview_sign_in.html.haml create mode 100644 app/views/admin/application_settings/appearances/show.html.haml create mode 100644 app/views/admin/background_migrations/_migration.html.haml create mode 100644 app/views/admin/background_migrations/index.html.haml delete mode 100644 app/views/admin/users/_user.html.haml create mode 100644 app/views/ci/runner/_setup_runner_in_aws.html.haml create mode 100644 app/views/kaminari/gitlab/_keyset_paginator.html.haml delete mode 100644 app/views/layouts/header/_group_invite_members_new_dropdown_item.html.haml delete mode 100644 app/views/layouts/header/_new_repo_experiment.html.haml delete mode 100644 app/views/layouts/header/_project_invite_members_new_dropdown_item.html.haml create mode 100644 app/views/layouts/nav/_top_nav_responsive.html.haml create mode 100644 app/views/layouts/nav/sidebar/_context_menu_body.html.haml create mode 100644 app/views/projects/branches/_delete_branch_modal_button.html.haml create mode 100644 app/views/projects/feature_flags_user_lists/index.html.haml create mode 100644 app/views/projects/packages/infrastructure_registry/show.html.haml create mode 100644 app/views/shared/_global_alert.html.haml create mode 100644 app/views/shared/issuable/_sidebar_user_dropdown.html.haml create mode 100644 app/views/shared/nav/_scope_menu_body.html.haml create mode 100644 app/views/shared/nav/_sidebar_menu_collapsed.html.haml delete mode 100644 app/workers/analytics/instance_statistics/count_job_trigger_worker.rb delete mode 100644 app/workers/analytics/instance_statistics/counter_job_worker.rb create mode 100644 app/workers/authorized_project_update/project_recalculate_worker.rb create mode 100644 app/workers/authorized_project_update/user_refresh_from_replica_worker.rb delete mode 100644 app/workers/clusters/cleanup/app_worker.rb delete mode 100644 app/workers/deployments/execute_hooks_worker.rb delete mode 100644 app/workers/git_garbage_collect_worker.rb delete mode 100644 app/workers/incident_management/process_alert_worker.rb delete mode 100644 app/workers/incident_management/process_prometheus_alert_worker.rb delete mode 100644 app/workers/merge_requests/assignees_change_worker.rb create mode 100644 app/workers/packages/debian/generate_distribution_worker.rb delete mode 100644 app/workers/pipeline_update_worker.rb delete mode 100644 app/workers/project_schedule_bulk_repository_shard_moves_worker.rb delete mode 100644 app/workers/project_update_repository_storage_worker.rb delete mode 100644 app/workers/prune_web_hook_logs_worker.rb delete mode 100644 app/workers/snippet_schedule_bulk_repository_shard_moves_worker.rb delete mode 100644 app/workers/snippet_update_repository_storage_worker.rb delete mode 100644 app/workers/users/update_open_issue_count_worker.rb create mode 100644 app/workers/web_hooks/log_execution_worker.rb delete mode 100755 bin/changelog delete mode 100755 bin/pkgr_before_precompile.sh delete mode 100755 bin/web_puma delete mode 100755 bin/web_unicorn delete mode 100644 changelogs/unreleased/.gitkeep create mode 100644 config/feature_flags/development/advanced_search_multi_project_select.yml delete mode 100644 config/feature_flags/development/allow_force_push_to_protected_branches.yml delete mode 100644 config/feature_flags/development/allow_group_deploy_token.yml delete mode 100644 config/feature_flags/development/assigned_open_issues_cache.yml delete mode 100644 config/feature_flags/development/background_pipeline_retry_endpoint.yml create mode 100644 config/feature_flags/development/board_multi_select.yml delete mode 100644 config/feature_flags/development/boards_filtered_search.yml create mode 100644 config/feature_flags/development/cached_mr_widget.yml delete mode 100644 config/feature_flags/development/cached_sidebar_merge_requests_count.yml delete mode 100644 config/feature_flags/development/cached_sidebar_open_epics_count.yml delete mode 100644 config/feature_flags/development/check_maven_path_first.yml delete mode 100644 config/feature_flags/development/ci_cross_pipeline_artifacts_download.yml create mode 100644 config/feature_flags/development/ci_daily_limit_for_pipeline_schedules.yml create mode 100644 config/feature_flags/development/ci_drop_new_builds_when_ci_quota_exceeded.yml delete mode 100644 config/feature_flags/development/ci_dynamic_child_pipeline.yml delete mode 100644 config/feature_flags/development/ci_external_validation_service.yml create mode 100644 config/feature_flags/development/ci_idempotent_pipeline_process_worker.yml delete mode 100644 config/feature_flags/development/ci_needs_optional.yml create mode 100644 config/feature_flags/development/ci_pending_builds_queue_join.yml create mode 100644 config/feature_flags/development/ci_pending_builds_queue_maintain.yml delete mode 100644 config/feature_flags/development/ci_raise_job_rules_without_workflow_rules_warning.yml delete mode 100644 config/feature_flags/development/ci_reduce_queries_when_ticking_runner_queue.yml delete mode 100644 config/feature_flags/development/ci_register_job_service_one_by_one.yml delete mode 100644 config/feature_flags/development/ci_runner_builds_queue_on_replicas.yml create mode 100644 config/feature_flags/development/ci_scoped_job_token.yml create mode 100644 config/feature_flags/development/ci_track_shared_runner_builds.yml create mode 100644 config/feature_flags/development/ci_untrack_shared_runner_builds.yml delete mode 100644 config/feature_flags/development/cluster_management_project.yml create mode 100644 config/feature_flags/development/codequality_mr_diff_annotations.yml create mode 100644 config/feature_flags/development/configurable_diff_limits.yml delete mode 100644 config/feature_flags/development/container_registry_expiration_policies_loopless.yml delete mode 100644 config/feature_flags/development/create_cloud_run_clusters.yml create mode 100644 config/feature_flags/development/create_vulnerability_jira_issue_via_graphql.yml create mode 100644 config/feature_flags/development/dast_runner_site_validation.yml delete mode 100644 config/feature_flags/development/database_sourced_aggregated_metrics.yml delete mode 100644 config/feature_flags/development/delayed_consistency_for_user_refresh_over_range_worker.yml delete mode 100644 config/feature_flags/development/delayed_perform_for_build_hooks_worker.yml create mode 100644 config/feature_flags/development/delete_branch_confirmation_modals.yml delete mode 100644 config/feature_flags/development/deployments_finder_implicitly_enforce_ordering_for_updated_at_filter.yml delete mode 100644 config/feature_flags/development/destroy_webhooks_before_the_project.yml delete mode 100644 config/feature_flags/development/drop_license_management_artifact.yml delete mode 100644 config/feature_flags/development/feature_flag_api.yml create mode 100644 config/feature_flags/development/fetch_remote_params.yml delete mode 100644 config/feature_flags/development/find_remote_root_refs_inmemory.yml create mode 100644 config/feature_flags/development/gitaly_backup.yml create mode 100644 config/feature_flags/development/github_review_importer_query_only_unimported_merge_requests.yml delete mode 100644 config/feature_flags/development/gitlab_ci_builds_queue_limit.yml delete mode 100644 config/feature_flags/development/gitlab_ci_trace_read_consistency.yml create mode 100644 config/feature_flags/development/group_level_protected_environments.yml create mode 100644 config/feature_flags/development/helm_packages.yml delete mode 100644 config/feature_flags/development/honor_escaped_markdown.yml delete mode 100644 config/feature_flags/development/include_lfs_blobs_in_archive.yml delete mode 100644 config/feature_flags/development/ingress_modsecurity.yml delete mode 100644 config/feature_flags/development/inherited_issuable_templates.yml delete mode 100644 config/feature_flags/development/introduce_marker_ranges.yml create mode 100644 config/feature_flags/development/iteration_cadences.yml create mode 100644 config/feature_flags/development/labels_widget.yml delete mode 100644 config/feature_flags/development/limit_projects_in_groups_api.yml delete mode 100644 config/feature_flags/development/load_balancing_atomic_replica.yml delete mode 100644 config/feature_flags/development/load_balancing_for_build_hooks_worker.yml create mode 100644 config/feature_flags/development/load_balancing_for_build_queue_worker.yml delete mode 100644 config/feature_flags/development/load_balancing_for_bulk_cron_workers.yml create mode 100644 config/feature_flags/development/load_balancing_for_expire_pipeline_cache_worker.yml create mode 100644 config/feature_flags/development/load_balancing_for_pipeline_hooks_worker.yml delete mode 100644 config/feature_flags/development/load_balancing_for_pipeline_process_worker.yml create mode 100644 config/feature_flags/development/load_balancing_for_web_hook_worker.yml create mode 100644 config/feature_flags/development/managed_alerts_deprecation.yml delete mode 100644 config/feature_flags/development/maven_metadata_by_path_with_optimization_fence.yml delete mode 100644 config/feature_flags/development/merge_base_pipeline_for_metrics_comparison.yml delete mode 100644 config/feature_flags/development/notification_setting_recipient_refactor.yml delete mode 100644 config/feature_flags/development/optimize_linkable_attributes.yml create mode 100644 config/feature_flags/development/optimize_merge_request_parser.yml delete mode 100644 config/feature_flags/development/packages_finder_helper_deploy_token.yml delete mode 100644 config/feature_flags/development/periodic_project_authorization_update_via_replica.yml delete mode 100644 config/feature_flags/development/pick_into_project.yml delete mode 100644 config/feature_flags/development/postgres_hll_batch_counting.yml create mode 100644 config/feature_flags/development/prevent_retry_of_retried_jobs.yml create mode 100644 config/feature_flags/development/read_container_registry_access_level.yml create mode 100644 config/feature_flags/development/redirect_to_latest_template_jobs_browser_performance_testing.yml create mode 100644 config/feature_flags/development/redirect_to_latest_template_security_api_fuzzing.yml create mode 100644 config/feature_flags/development/redirect_to_latest_template_security_dast.yml create mode 100644 config/feature_flags/development/redirect_to_latest_template_terraform.yml create mode 100644 config/feature_flags/development/redirect_to_latest_template_verify_browser_performance.yml delete mode 100644 config/feature_flags/development/release_mr_issue_urls.yml create mode 100644 config/feature_flags/development/releases_index_apollo_client.yml create mode 100644 config/feature_flags/development/runner_list_view_vue_ui.yml delete mode 100644 config/feature_flags/development/runners_cached_states.yml create mode 100644 config/feature_flags/development/security_ci_lint_authorization.yml create mode 100644 config/feature_flags/development/security_configuration_redesign.yml delete mode 100644 config/feature_flags/development/security_dast_site_profiles_additional_fields.yml delete mode 100644 config/feature_flags/development/security_dast_site_profiles_api_option.yml create mode 100644 config/feature_flags/development/sidekiq_load_balancing_rotate_up_to_date_replica.yml delete mode 100644 config/feature_flags/development/specialized_project_authorization_project_share_worker.yml delete mode 100644 config/feature_flags/development/specialized_project_authorization_workers.yml delete mode 100644 config/feature_flags/development/ssh_key_expiration_email_notification.yml delete mode 100644 config/feature_flags/development/usage_data_i_testing_group_code_coverage_project_click_total.yml delete mode 100644 config/feature_flags/development/usage_data_o_pipeline_authoring_unique_users_pushing_mr_ciconfigfile.yml delete mode 100644 config/feature_flags/development/usage_data_p_terraform_state_api_unique_users.yml delete mode 100644 config/feature_flags/development/usage_data_track_ecosystem_jira_service.yml delete mode 100644 config/feature_flags/development/usage_data_unique_users_committing_ciconfigfile.yml create mode 100644 config/feature_flags/development/use_specialized_worker_for_project_auth_recalculation.yml create mode 100644 config/feature_flags/development/use_traversal_ids_for_root_ancestor.yml delete mode 100644 config/feature_flags/development/vue_admin_users.yml delete mode 100644 config/feature_flags/development/wiki_content_editor.yml create mode 100644 config/feature_flags/experiment/ci_runner_templates.yml delete mode 100644 config/feature_flags/experiment/invite_members_empty_project_version_a_experiment_percentage.yml delete mode 100644 config/feature_flags/ops/ci_trace_overwrite.yml create mode 100644 config/feature_flags/ops/dedicated_redis_trace_chunks.yml create mode 100644 config/feature_flags/ops/dynamic_nonce.yml create mode 100644 config/initializers/6_labkit_middleware.rb delete mode 100644 config/initializers/action_dispatch_journey_formatter.rb create mode 100644 config/initializers/action_view.rb create mode 100644 config/initializers/active_record_keyset_pagination.rb delete mode 100644 config/initializers/active_record_ping.rb create mode 100644 config/initializers/active_record_postgresql_adapter.rb create mode 100644 config/initializers/flipper.rb create mode 100644 config/initializers/global_id.rb delete mode 100644 config/initializers/labkit_middleware.rb create mode 100644 config/initializers/mailer_retries.rb delete mode 100644 config/initializers/puma_client_tempfile_patch.rb delete mode 100644 config/metrics/counts_28d/20210216180820_ldap_keys.yml delete mode 100644 config/metrics/counts_28d/20210216180822_ldap_users.yml delete mode 100644 config/metrics/counts_28d/20210216183828_dependency_scanning_scans.yml delete mode 100644 config/metrics/counts_28d/20210216184949_i_ecosystem_jira_service_list_issues_monthly.yml delete mode 100644 config/metrics/counts_28d/20210216184953_i_ecosystem_jira_service_create_issue_monthly.yml create mode 100644 config/metrics/counts_28d/20210514013545_i_code_review_user_resolve_conflict_monthly.yml create mode 100644 config/metrics/counts_28d/20210514013549_i_code_review_user_load_conflict_ui_monthly.yml create mode 100644 config/metrics/counts_28d/20210514141518_monthly_projects_creation.yml create mode 100644 config/metrics/counts_28d/20210517074859_i_package_helm_deploy_token_monthly.yml create mode 100644 config/metrics/counts_28d/20210517075259_i_package_helm_user_monthly.yml create mode 100644 config/metrics/counts_28d/20210520111133_total.yml create mode 100644 config/metrics/counts_28d/20210607113556_i_code_review_click_diff_view_setting_monthly.yml create mode 100644 config/metrics/counts_7d/20210216180328_g_edit_by_web_ide_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180332_g_edit_by_sfe_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180336_g_edit_by_snippet_ide_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180339_ide_edit_total_unique_counts_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184022_g_edit_by_sse_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184253_i_snippets_show_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184301_o_pipeline_authoring_unique_users_committing_ciconfigfile_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184557_ci_templates_total_unique_counts_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184805_i_package_composer_deploy_token_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184808_i_package_conan_deploy_token_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184812_i_package_container_deploy_token_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184816_i_package_debian_deploy_token_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184820_i_package_generic_deploy_token_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184824_i_package_golang_deploy_token_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184828_i_package_maven_deploy_token_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184832_i_package_npm_deploy_token_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184836_i_package_nuget_deploy_token_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184840_i_package_pypi_deploy_token_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184844_i_package_tag_deploy_token_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184848_deploy_token_packages_total_unique_counts_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184852_i_package_composer_user_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184856_i_package_conan_user_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184900_i_package_container_user_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184904_i_package_debian_user_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184908_i_package_generic_user_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184911_i_package_golang_user_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184916_i_package_maven_user_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184919_i_package_npm_user_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184923_i_package_nuget_user_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184927_i_package_pypi_user_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184931_i_package_tag_user_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184935_user_packages_total_unique_counts_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184939_i_ecosystem_jira_service_close_issue_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184943_i_ecosystem_jira_service_cross_reference_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184955_ecosystem_total_unique_counts_weekly.yml create mode 100644 config/metrics/counts_7d/20210514013544_i_code_review_user_load_conflict_ui_weekly.yml create mode 100644 config/metrics/counts_7d/20210514013545_i_code_review_user_resolve_conflict_weekly.yml create mode 100644 config/metrics/counts_7d/20210517074851_i_package_helm_deploy_token_weekly.yml create mode 100644 config/metrics/counts_7d/20210517075252_i_package_helm_user_weekly.yml create mode 100644 config/metrics/counts_7d/20210607113552_i_code_review_click_diff_view_setting_weekly.yml delete mode 100644 config/metrics/counts_all/20210216174826_ldap_users.yml delete mode 100644 config/metrics/counts_all/20210216175028_requirements_created.yml delete mode 100644 config/metrics/counts_all/20210216175848_projects_github_active.yml delete mode 100644 config/metrics/counts_all/20210216175850_groups_github_active.yml delete mode 100644 config/metrics/counts_all/20210216175851_templates_github_active.yml delete mode 100644 config/metrics/counts_all/20210216175853_instances_github_active.yml delete mode 100644 config/metrics/counts_all/20210216175855_projects_inheriting_github_active.yml delete mode 100644 config/metrics/counts_all/20210216175857_groups_inheriting_github_active.yml delete mode 100644 config/metrics/counts_all/20210216180800_ldap_keys.yml delete mode 100644 config/metrics/counts_all/20210216180801_ldap_users.yml create mode 100644 config/metrics/counts_all/20210216181018_projects_with_expiration_policy_enabled_with_keep_n_set_to_1.yml create mode 100644 config/metrics/counts_all/20210216181020_projects_with_expiration_policy_enabled_with_keep_n_set_to_5.yml create mode 100644 config/metrics/counts_all/20210216181022_projects_with_expiration_policy_enabled_with_keep_n_set_to_10.yml create mode 100644 config/metrics/counts_all/20210216181024_projects_with_expiration_policy_enabled_with_keep_n_set_to_25.yml create mode 100644 config/metrics/counts_all/20210216181025_projects_with_expiration_policy_enabled_with_keep_n_set_to_50.yml create mode 100644 config/metrics/counts_all/20210216181027_projects_with_expiration_policy_enabled_with_keep_n_set_to_100.yml create mode 100644 config/metrics/counts_all/20210216181046_projects_with_expiration_policy_enabled_with_keep_n_unset.yml create mode 100644 config/metrics/counts_all/20210514141520_project_imports_total.yml create mode 100644 config/metrics/counts_all/20210517073546_package_events_i_package_helm_pull_package.yml create mode 100644 config/metrics/counts_all/20210518081225_in_product_marketing_email_experience_0_sent.yml delete mode 100644 config/metrics/license/20210204124854_license_management_jobs.yml delete mode 100644 config/metrics/license/20210204124926_license_trial_ends_on.yml create mode 100644 config/redis.trace_chunks.yml.example create mode 100644 config/routes/repository_deprecated.rb delete mode 100644 config/routes/repository_scoped.rb delete mode 100644 config/unicorn.rb.example delete mode 100644 config/unicorn.rb.example.development delete mode 100644 danger/commit_messages/Dangerfile create mode 100644 danger/plugins/product_intelligence.rb create mode 100644 db/migrate/20210331000934_add_config_to_ci_runners.rb create mode 100644 db/migrate/20210430121522_initialize_conversion_of_ci_build_trace_sections_to_bigint.rb create mode 100644 db/migrate/20210504143128_add_verification_state_and_started_at_to_mr_diff_details_table.rb create mode 100644 db/migrate/20210505070612_create_packages_debian_group_distribution_keys.rb create mode 100644 db/migrate/20210505070812_create_packages_debian_project_distribution_keys.rb create mode 100644 db/migrate/20210505170152_add_verification_indexes_to_merge_request_diff_details_table.rb create mode 100644 db/migrate/20210506150833_create_vulnerability_finding_evidence_headers.rb create mode 100644 db/migrate/20210510083845_add_sha_to_status_check_response.rb create mode 100644 db/migrate/20210511165250_add_foreign_key_to_lfs_objects_projects.rb create mode 100644 db/migrate/20210512120122_add_pending_builds_table.rb create mode 100644 db/migrate/20210517130723_make_snapshot_segment_id_optional.rb create mode 100644 db/migrate/20210517144856_require_snapshot_namespace.rb create mode 100644 db/migrate/20210517221612_add_default_value_to_merge_requests_author_approval_on_projects.rb create mode 100644 db/migrate/20210519132109_initialize_conversion_of_ci_builds_metadata_to_bigint.rb create mode 100644 db/migrate/20210520102039_group_protected_environments_add_column.rb create mode 100644 db/migrate/20210520133032_initialize_conversion_of_taggings_to_bigint.rb create mode 100644 db/migrate/20210520133440_backfill_taggings_for_bigint_conversion.rb create mode 100644 db/migrate/20210521073920_drop_devops_adoption_namespace_uniqueness.rb create mode 100644 db/migrate/20210525085158_initialize_conversion_of_deployments_to_bigint.rb create mode 100644 db/migrate/20210525085325_backfill_deployments_for_bigint_conversion.rb create mode 100644 db/migrate/20210525100539_initialize_conversion_of_geo_job_artifact_deleted_events_to_bigint.rb create mode 100644 db/migrate/20210525100603_backfill_geo_job_artifact_deleted_events_for_bigint_conversion.rb create mode 100644 db/migrate/20210525184900_add_latest_pipeline_id_into_vulnerability_statistics_table.rb create mode 100644 db/migrate/20210526135911_create_ci_minutes_additional_packs.rb create mode 100644 db/migrate/20210526155257_rename_sync_security_report_approval_rules_sidekiq_queue.rb create mode 100644 db/migrate/20210526181820_add_index_to_vulnerability_statistics_on_latest_pipeline_id.rb create mode 100644 db/migrate/20210526181821_add_foreign_key_for_latest_pipeline_id_to_ci_pipelines.rb create mode 100644 db/migrate/20210526190259_add_ci_daily_pipeline_schedule_triggers_to_plan_limits.rb create mode 100644 db/migrate/20210526190553_insert_ci_daily_pipeline_schedule_triggers_plan_limits.rb create mode 100644 db/migrate/20210527065005_add_index_for_cadence_iterations_automation.rb create mode 100644 db/migrate/20210527130524_rename_experiment_subjects_group_id_to_namespace_id.rb create mode 100644 db/migrate/20210527133919_add_diff_max_lines_to_application_settings.rb create mode 100644 db/migrate/20210527134019_add_diff_max_files_to_application_settings.rb create mode 100644 db/migrate/20210527185542_add_prevent_sharing_groups_outside_hierarchy_to_namespace_settings.rb create mode 100644 db/migrate/20210527194558_create_ci_job_token_project_scope_links.rb create mode 100644 db/migrate/20210529164247_change_iterations_title_uniqueness_index.rb create mode 100644 db/migrate/20210531053916_rename_instance_statistics_measurements.rb create mode 100644 db/migrate/20210531070452_default_enforce_ssh_key_expiration.rb create mode 100644 db/migrate/20210531071107_enable_enforce_ssh_key_expiration.rb create mode 100644 db/migrate/20210601080039_group_protected_environments_add_index_and_constraint.rb create mode 100644 db/migrate/20210601123341_add_running_builds_table.rb create mode 100644 db/migrate/20210601125410_add_runners_created_at_index.rb create mode 100644 db/migrate/20210601131742_update_web_hook_calls_limit.rb create mode 100644 db/migrate/20210601133459_replace_runners_contacted_at_index.rb create mode 100644 db/migrate/20210602122213_add_upcoming_reconciliations.rb create mode 100644 db/migrate/20210602122233_add_runners_description_index.rb create mode 100644 db/migrate/20210603140302_add_pronouns_to_user_details.rb create mode 100644 db/migrate/20210603222333_remove_builds_email_service_from_services.rb create mode 100644 db/migrate/20210604082145_create_external_status_checks_table.rb create mode 100644 db/migrate/20210604085600_rename_status_check_responses_approval_rule.rb create mode 100644 db/migrate/20210607050531_add_text_limit_to_user_details_pronouns.rb create mode 100644 db/migrate/20210607080044_remove_temporary_index_on_security_findings_scan_id.rb create mode 100644 db/migrate/20210607154719_add_job_token_scope_enabled_to_ci_cd_settings.rb create mode 100644 db/migrate/20210608072312_initialize_conversion_of_ci_stages_to_bigint.rb create mode 100644 db/migrate/20210608072346_backfill_ci_stages_for_bigint_conversion.rb create mode 100644 db/migrate/20210609013512_add_unique_index_for_batched_background_migrations.rb create mode 100644 db/migrate/20210609090856_add_expiry_id_ssh_key_notification_index.rb create mode 100644 db/migrate/20210609192728_add_status_check_foreign_key_to_external_status_check_id.rb create mode 100644 db/migrate/20210609193101_add_status_check_foreign_key_to_protected_branch_id.rb create mode 100644 db/migrate/20210610102410_add_protected_attribute_to_pending_builds.rb create mode 100644 db/migrate/20210611100359_rebuild_index_for_cadence_iterations_automation.rb create mode 100644 db/migrate/20210614131002_add_detection_method_to_vulnerabilities_finding.rb create mode 100644 db/post_migrate/20210421163509_schedule_update_jira_tracker_data_deployment_type_based_on_url.rb create mode 100644 db/post_migrate/20210426225417_schedule_recalculate_uuid_on_vulnerabilities_occurrences2.rb create mode 100644 db/post_migrate/20210430121542_backfill_ci_build_trace_sections_for_bigint_conversion.rb create mode 100644 db/post_migrate/20210513163904_cleanup_move_container_registry_enabled_to_project_feature.rb create mode 100644 db/post_migrate/20210514063252_schedule_cleanup_orphaned_lfs_objects_projects.rb create mode 100644 db/post_migrate/20210518074332_schedule_disable_expiration_policies_linked_to_no_container_images.rb create mode 100644 db/post_migrate/20210519104931_backfill_clusters_integration_prometheus_enabled.rb create mode 100644 db/post_migrate/20210519132129_backfill_ci_builds_metadata_for_bigint_conversion.rb create mode 100644 db/post_migrate/20210519220019_backfill_escalation_policies_for_oncall_schedules.rb create mode 100644 db/post_migrate/20210520012430_backfill_pk_conversion_for_self_managed.rb create mode 100644 db/post_migrate/20210525075724_clean_up_pending_builds_table.rb create mode 100644 db/post_migrate/20210526160133_remove_segment_selections_table.rb create mode 100644 db/post_migrate/20210526222715_backfill_draft_status_on_merge_requests.rb create mode 100644 db/post_migrate/20210527131039_clean_up_rename_experiment_subjects_group_id_to_namespace_id.rb create mode 100644 db/post_migrate/20210531054108_finalize_rename_instance_statistics_measurements.rb create mode 100644 db/post_migrate/20210601073400_fix_total_stage_in_vsa.rb create mode 100644 db/post_migrate/20210604070207_retry_backfill_traversal_ids.rb create mode 100644 db/post_migrate/20210606143426_add_index_for_container_registry_access_level.rb create mode 100644 db/post_migrate/20210609125005_drop_non_partitioned_web_hook_logs.rb create mode 100644 db/post_migrate/20210610102413_migrate_protected_attribute_to_pending_builds.rb create mode 100644 db/post_migrate/20210610113229_add_index_to_protected_pending_builds.rb create mode 100644 db/post_migrate/20210610141711_disable_expiration_policies_linked_to_no_container_images.rb create mode 100644 db/post_migrate/20210611080951_fix_missing_traversal_ids.rb create mode 100644 db/schema_migrations/20210331000934 create mode 100644 db/schema_migrations/20210421163509 create mode 100644 db/schema_migrations/20210426225417 create mode 100644 db/schema_migrations/20210430121522 create mode 100644 db/schema_migrations/20210430121542 create mode 100644 db/schema_migrations/20210504143128 create mode 100644 db/schema_migrations/20210505070612 create mode 100644 db/schema_migrations/20210505070812 create mode 100644 db/schema_migrations/20210505170152 create mode 100644 db/schema_migrations/20210506150833 create mode 100644 db/schema_migrations/20210510083845 create mode 100644 db/schema_migrations/20210511165250 create mode 100644 db/schema_migrations/20210512120122 create mode 100644 db/schema_migrations/20210513163904 create mode 100644 db/schema_migrations/20210514063252 create mode 100644 db/schema_migrations/20210517130723 create mode 100644 db/schema_migrations/20210517144856 create mode 100644 db/schema_migrations/20210517221612 create mode 100644 db/schema_migrations/20210518074332 create mode 100644 db/schema_migrations/20210519104931 create mode 100644 db/schema_migrations/20210519132109 create mode 100644 db/schema_migrations/20210519132129 create mode 100644 db/schema_migrations/20210519220019 create mode 100644 db/schema_migrations/20210520012430 create mode 100644 db/schema_migrations/20210520102039 create mode 100644 db/schema_migrations/20210520133032 create mode 100644 db/schema_migrations/20210520133440 create mode 100644 db/schema_migrations/20210521073920 create mode 100644 db/schema_migrations/20210525075724 create mode 100644 db/schema_migrations/20210525085158 create mode 100644 db/schema_migrations/20210525085325 create mode 100644 db/schema_migrations/20210525100539 create mode 100644 db/schema_migrations/20210525100603 create mode 100644 db/schema_migrations/20210525184900 create mode 100644 db/schema_migrations/20210526135911 create mode 100644 db/schema_migrations/20210526155257 create mode 100644 db/schema_migrations/20210526160133 create mode 100644 db/schema_migrations/20210526181820 create mode 100644 db/schema_migrations/20210526181821 create mode 100644 db/schema_migrations/20210526190259 create mode 100644 db/schema_migrations/20210526190553 create mode 100644 db/schema_migrations/20210526222715 create mode 100644 db/schema_migrations/20210527065005 create mode 100644 db/schema_migrations/20210527130524 create mode 100644 db/schema_migrations/20210527131039 create mode 100644 db/schema_migrations/20210527133919 create mode 100644 db/schema_migrations/20210527134019 create mode 100644 db/schema_migrations/20210527185542 create mode 100644 db/schema_migrations/20210527194558 create mode 100644 db/schema_migrations/20210529164247 create mode 100644 db/schema_migrations/20210531053916 create mode 100644 db/schema_migrations/20210531054108 create mode 100644 db/schema_migrations/20210531070452 create mode 100644 db/schema_migrations/20210531071107 create mode 100644 db/schema_migrations/20210601073400 create mode 100644 db/schema_migrations/20210601080039 create mode 100644 db/schema_migrations/20210601123341 create mode 100644 db/schema_migrations/20210601125410 create mode 100644 db/schema_migrations/20210601131742 create mode 100644 db/schema_migrations/20210601133459 create mode 100644 db/schema_migrations/20210602122213 create mode 100644 db/schema_migrations/20210602122233 create mode 100644 db/schema_migrations/20210603140302 create mode 100644 db/schema_migrations/20210603222333 create mode 100644 db/schema_migrations/20210604070207 create mode 100644 db/schema_migrations/20210604082145 create mode 100644 db/schema_migrations/20210604085600 create mode 100644 db/schema_migrations/20210606143426 create mode 100644 db/schema_migrations/20210607050531 create mode 100644 db/schema_migrations/20210607080044 create mode 100644 db/schema_migrations/20210607154719 create mode 100644 db/schema_migrations/20210608072312 create mode 100644 db/schema_migrations/20210608072346 create mode 100644 db/schema_migrations/20210609013512 create mode 100644 db/schema_migrations/20210609090856 create mode 100644 db/schema_migrations/20210609125005 create mode 100644 db/schema_migrations/20210609192728 create mode 100644 db/schema_migrations/20210609193101 create mode 100644 db/schema_migrations/20210610102410 create mode 100644 db/schema_migrations/20210610102413 create mode 100644 db/schema_migrations/20210610113229 create mode 100644 db/schema_migrations/20210610141711 create mode 100644 db/schema_migrations/20210611080951 create mode 100644 db/schema_migrations/20210611100359 create mode 100644 db/schema_migrations/20210614131002 create mode 100644 doc/administration/configure.md create mode 100644 doc/administration/gitaly/faq.md create mode 100644 doc/administration/operations/extra_sidekiq_routing.md create mode 100644 doc/administration/troubleshooting/img/azure_configure_group_claim.png create mode 100644 doc/api/group_protected_environments.md create mode 100644 doc/api/status_checks.md create mode 100644 doc/architecture/blueprints/composable_codebase_using_rails_engines/index.md create mode 100644 doc/ci/runners/configure_runners.md create mode 100644 doc/ci/runners/runners_scope.md create mode 100644 doc/development/documentation/styleguide/word_list.md create mode 100644 doc/development/fe_guide/content_editor.md create mode 100644 doc/development/fe_guide/img/content_editor_highlevel_diagram.png create mode 100644 doc/development/real_time.md create mode 100644 doc/subscriptions/img/license-file.png create mode 100644 doc/subscriptions/img/license-overview.png create mode 100644 doc/subscriptions/img/publicly-visible.png create mode 100644 doc/subscriptions/img/support-diagram.png create mode 100644 doc/topics/build_your_application.md create mode 100644 doc/topics/plan_and_track.md create mode 100644 doc/topics/release_your_application.md create mode 100644 doc/topics/set_up_organization.md create mode 100644 doc/topics/use_gitlab.md create mode 100644 doc/user/admin_area/analytics/img/admin_devops_adoption_v14_0.png delete mode 100644 doc/user/admin_area/settings/img/admin_required_pipeline.png create mode 100644 doc/user/admin_area/settings/img/continuous_integration_shared_runner_details_v14_0.png delete mode 100644 doc/user/admin_area/settings/img/custom_sign_in_page_v13_6.png create mode 100644 doc/user/application_security/dast/img/dast_auth_browser_scan_highlight.png create mode 100644 doc/user/application_security/dast/img/dast_auth_browser_scan_search_elements.png create mode 100644 doc/user/application_security/dast/img/dast_auth_report.jpg delete mode 100644 doc/user/application_security/img/unconfigured_security_approval_rules_and_enabled_jobs_v13_4.png delete mode 100644 doc/user/application_security/img/unconfigured_security_approval_rules_and_jobs_v13_4.png delete mode 100644 doc/user/application_security/vulnerabilities/img/vulnerability_page_merge_request_button_dropdown_v13_1.png delete mode 100644 doc/user/clusters/img/fluentd_v13_0.png create mode 100644 doc/user/clusters/management_project_template.md create mode 100644 doc/user/clusters/migrating_from_gma_to_project_template.md delete mode 100644 doc/user/group/devops_adoption/img/group_devops_adoption_v13_11.png create mode 100644 doc/user/group/devops_adoption/img/group_devops_adoption_v14_0.png delete mode 100644 doc/user/group/epics/img/epic_board_v13_10.png create mode 100644 doc/user/group/epics/img/epic_board_v14_0.png create mode 100644 doc/user/group/saml_sso/img/member_enterprise_badge_v14_0.png create mode 100644 doc/user/group/saml_sso/img/saml_group_links_v13_9.png create mode 100644 doc/user/packages/infrastructure_registry/index.md create mode 100644 doc/user/packages/terraform_module_registry/index.md create mode 100644 doc/user/packages/workflows/working_with_monorepos.md delete mode 100644 doc/user/profile/img/unknown_sign_in_email_v13_1.png create mode 100644 doc/user/profile/img/unknown_sign_in_email_v14_0.png delete mode 100644 doc/user/project/clusters/protect/web_application_firewall/img/guide_waf_ingress_disabled_settings_v12_10.png delete mode 100644 doc/user/project/clusters/protect/web_application_firewall/img/guide_waf_ingress_installation_v12_10.png delete mode 100644 doc/user/project/clusters/protect/web_application_firewall/img/guide_waf_ingress_save_changes_v12_10.png delete mode 100644 doc/user/project/clusters/protect/web_application_firewall/index.md delete mode 100644 doc/user/project/clusters/protect/web_application_firewall/quick_start_guide.md delete mode 100644 doc/user/project/img/code_owners_approval_new_protected_branch_v13_10.png delete mode 100644 doc/user/project/img/code_owners_approval_protected_branch_v13_10.png delete mode 100644 doc/user/project/integrations/hipchat.md create mode 100644 doc/user/project/issues/img/issue_type_change_v13_12.png delete mode 100644 doc/user/project/members/img/access_requests_management_v13_9.png delete mode 100644 doc/user/project/members/img/add_user_email_accept_v13_9.png delete mode 100644 doc/user/project/members/img/add_user_email_ready_v13_8.png delete mode 100644 doc/user/project/members/img/add_user_email_search_v13_8.png delete mode 100644 doc/user/project/members/img/withdraw_access_request_button.png create mode 100644 doc/user/project/merge_requests/commits.md delete mode 100644 doc/user/project/merge_requests/img/allow_collaboration.png delete mode 100644 doc/user/project/merge_requests/img/allow_collaboration_after_save.png create mode 100644 doc/user/project/merge_requests/img/code_quality_mr_diff_report_v14.png create mode 100644 doc/user/project/merge_requests/img/commit-button_v13_12.png create mode 100644 doc/user/project/merge_requests/img/conflict_ui_v14_0.png create mode 100644 doc/user/project/merge_requests/img/merge_request_pipeline.png create mode 100644 doc/user/project/merge_requests/img/project_merge_requests_list_view_v13_5.png delete mode 100644 doc/user/project/merge_requests/img/reviewer_approval_rules_form_v13_8.png delete mode 100644 doc/user/project/merge_requests/img/reviewer_approval_rules_sidebar_v13_8.png create mode 100644 doc/user/project/merge_requests/img/status_checks_branches_selector_v14_0.png create mode 100644 doc/user/project/merge_requests/img/status_checks_create_form_v14_0.png create mode 100644 doc/user/project/merge_requests/img/status_checks_delete_modal_v14_0.png create mode 100644 doc/user/project/merge_requests/img/status_checks_list_view_v14_0.png create mode 100644 doc/user/project/merge_requests/img/status_checks_update_form_v14_0.png delete mode 100644 doc/user/project/merge_requests/reviews/img/merge_request_pipeline.png delete mode 100644 doc/user/project/merge_requests/reviews/img/project_merge_requests_list_view_v13_5.png create mode 100644 doc/user/project/merge_requests/reviews/img/reviewer_approval_rules_form_v13_8.png create mode 100644 doc/user/project/merge_requests/reviews/img/reviewer_approval_rules_sidebar_v13_8.png create mode 100644 doc/user/project/merge_requests/status_checks.md create mode 100644 doc/user/project/merge_requests/widgets.md delete mode 100644 doc/user/project/repository/img/download_source_code.png delete mode 100644 doc/user/project/repository/img/file_ext_icons_repo_v12_10.png create mode 100644 doc/user/project/wiki/img/content_editor_v14.0.png create mode 100644 doc/user/project/wiki/img/use_new_editor_button_v14.0.png create mode 100644 lib/api/concerns/packages/debian_distribution_endpoints.rb delete mode 100644 lib/api/concerns/packages/debian_endpoints.rb create mode 100644 lib/api/concerns/packages/debian_package_endpoints.rb create mode 100644 lib/api/entities/packages/debian/distribution.rb create mode 100644 lib/api/entities/project_repository_storage.rb delete mode 100644 lib/api/feature_flag_scopes.rb create mode 100644 lib/api/group_avatar.rb create mode 100644 lib/api/helm_packages.rb create mode 100644 lib/api/project_debian_distributions.rb create mode 100644 lib/backup/gitaly_backup.rb create mode 100644 lib/backup/gitaly_rpc_backup.rb create mode 100644 lib/bulk_imports/common/extractors/ndjson_extractor.rb delete mode 100644 lib/bulk_imports/groups/graphql/get_labels_query.rb create mode 100644 lib/bulk_imports/groups/pipelines/boards_pipeline.rb create mode 100644 lib/bulk_imports/ndjson_pipeline.rb delete mode 100644 lib/feature/active_support_cache_store_adapter.rb create mode 100644 lib/generators/gitlab/usage_metric/USAGE create mode 100644 lib/generators/gitlab/usage_metric/templates/instrumentation_class.rb.template create mode 100644 lib/generators/gitlab/usage_metric/templates/instrumentation_class_spec.rb.template create mode 100644 lib/generators/gitlab/usage_metric/usage_metric_generator.rb create mode 100644 lib/gitlab/background_migration/cleanup_orphaned_lfs_objects_projects.rb create mode 100644 lib/gitlab/background_migration/disable_expiration_policies_linked_to_no_container_images.rb create mode 100644 lib/gitlab/background_migration/update_jira_tracker_data_deployment_type_based_on_url.rb create mode 100644 lib/gitlab/checks/base_bulk_checker.rb create mode 100644 lib/gitlab/checks/base_single_checker.rb delete mode 100644 lib/gitlab/checks/change_access.rb create mode 100644 lib/gitlab/checks/changes_access.rb create mode 100644 lib/gitlab/checks/single_change_access.rb create mode 100644 lib/gitlab/ci/matching/build_matcher.rb create mode 100644 lib/gitlab/ci/matching/runner_matcher.rb create mode 100644 lib/gitlab/ci/pipeline/chain/validate/after_config.rb create mode 100644 lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml delete mode 100644 lib/gitlab/ci/templates/Getting-started.yml create mode 100644 lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml create mode 100644 lib/gitlab/ci/templates/Jobs/Secret-Detection.gitlab-ci.yml delete mode 100644 lib/gitlab/ci/templates/Security/License-Management.gitlab-ci.yml delete mode 100644 lib/gitlab/ci/templates/npm.latest.gitlab-ci.yml delete mode 100644 lib/gitlab/cluster/mixins/unicorn_http_server.rb create mode 100644 lib/gitlab/database/load_balancing.rb create mode 100644 lib/gitlab/database/load_balancing/active_record_proxy.rb create mode 100644 lib/gitlab/database/load_balancing/connection_proxy.rb create mode 100644 lib/gitlab/database/load_balancing/host.rb create mode 100644 lib/gitlab/database/load_balancing/host_list.rb create mode 100644 lib/gitlab/database/load_balancing/load_balancer.rb create mode 100644 lib/gitlab/database/load_balancing/logger.rb create mode 100644 lib/gitlab/database/load_balancing/rack_middleware.rb create mode 100644 lib/gitlab/database/load_balancing/resolver.rb create mode 100644 lib/gitlab/database/load_balancing/service_discovery.rb create mode 100644 lib/gitlab/database/load_balancing/session.rb create mode 100644 lib/gitlab/database/load_balancing/sidekiq_client_middleware.rb create mode 100644 lib/gitlab/database/load_balancing/sidekiq_server_middleware.rb create mode 100644 lib/gitlab/database/load_balancing/srv_resolver.rb create mode 100644 lib/gitlab/database/load_balancing/sticking.rb create mode 100644 lib/gitlab/database/postgresql_adapter/type_map_cache.rb create mode 100644 lib/gitlab/email/message/in_product_marketing/experience.rb create mode 100644 lib/gitlab/global_id/deprecations.rb delete mode 100644 lib/gitlab/graphql.rb delete mode 100644 lib/gitlab/graphql/docs/helper.rb delete mode 100644 lib/gitlab/graphql/docs/renderer.rb delete mode 100644 lib/gitlab/graphql/docs/templates/default.md.haml create mode 100644 lib/gitlab/graphql/standard_graphql_error.rb create mode 100644 lib/gitlab/health_checks/redis/trace_chunks_check.rb delete mode 100644 lib/gitlab/health_checks/unicorn_check.rb create mode 100644 lib/gitlab/kas/client.rb delete mode 100644 lib/gitlab/kubernetes/helm/parsers/list_v2.rb delete mode 100644 lib/gitlab/metrics/samplers/unicorn_sampler.rb create mode 100644 lib/gitlab/pagination/keyset/paginator.rb delete mode 100644 lib/gitlab/patch/action_dispatch_journey_formatter.rb create mode 100644 lib/gitlab/patch/global_id.rb create mode 100644 lib/gitlab/patch/hangouts_chat_http_override.rb create mode 100644 lib/gitlab/redis/trace_chunks.rb create mode 100644 lib/gitlab/saas.rb create mode 100644 lib/gitlab/sidekiq_middleware/size_limiter/compressor.rb create mode 100644 lib/gitlab/sidekiq_middleware/size_limiter/server.rb delete mode 100644 lib/gitlab/usage/metrics/instrumentations/count_users_using_approve_quick_action_metric.rb create mode 100644 lib/gitlab/usage/metrics/name_suggestion.rb create mode 100644 lib/gitlab/usage/metrics/query.rb create mode 100644 lib/gitlab/usage/time_frame.rb create mode 100644 lib/mattermost.rb delete mode 100644 lib/mattermost/error.rb create mode 100644 lib/peek/views/memory.rb delete mode 100644 plugins/.gitignore create mode 100644 qa/qa/page/project/deployments/environments/index.rb create mode 100644 qa/qa/page/project/deployments/environments/show.rb create mode 100644 qa/qa/page/project/infrastructure/kubernetes/add.rb create mode 100644 qa/qa/page/project/infrastructure/kubernetes/add_existing.rb create mode 100644 qa/qa/page/project/infrastructure/kubernetes/index.rb create mode 100644 qa/qa/page/project/infrastructure/kubernetes/show.rb create mode 100644 qa/qa/page/project/monitor/incidents/index.rb create mode 100644 qa/qa/page/project/monitor/metrics/show.rb delete mode 100644 qa/qa/page/project/operations/environments/index.rb delete mode 100644 qa/qa/page/project/operations/environments/show.rb delete mode 100644 qa/qa/page/project/operations/incidents/index.rb delete mode 100644 qa/qa/page/project/operations/kubernetes/add.rb delete mode 100644 qa/qa/page/project/operations/kubernetes/add_existing.rb delete mode 100644 qa/qa/page/project/operations/kubernetes/index.rb delete mode 100644 qa/qa/page/project/operations/kubernetes/show.rb delete mode 100644 qa/qa/page/project/operations/metrics/show.rb create mode 100644 qa/qa/page/project/settings/alerts.rb delete mode 100644 qa/qa/page/project/settings/incidents.rb create mode 100644 qa/qa/page/project/settings/monitor.rb delete mode 100644 qa/qa/page/project/settings/operations.rb create mode 100644 qa/qa/page/project/sub_menus/deployments.rb create mode 100644 qa/qa/page/project/sub_menus/infrastructure.rb create mode 100644 qa/qa/page/project/sub_menus/monitor.rb delete mode 100644 qa/qa/page/project/sub_menus/operations.rb create mode 100644 qa/qa/resource/group_label.rb delete mode 100644 qa/qa/resource/label.rb create mode 100644 qa/qa/resource/label_base.rb create mode 100644 qa/qa/resource/project_label.rb create mode 100644 qa/qa/runtime/allure_report.rb create mode 100644 qa/spec/support/matchers/eventually_matcher.rb create mode 100644 qa/tls_certificates/client/client.crt create mode 100644 qa/tls_certificates/client/client.csr create mode 100644 qa/tls_certificates/client/client.key create mode 100644 qa/tls_certificates/client/client.pem create mode 100644 qa/tls_certificates/client/client.pfx create mode 100644 rubocop/cop/usage_data/histogram_with_large_table.rb create mode 100644 rubocop/cop/usage_data/instrumentation_superclass.rb create mode 100644 scripts/frontend/startup_css/clean_css.js create mode 100644 scripts/frontend/startup_css/constants.js create mode 100644 scripts/frontend/startup_css/get_css_path.js create mode 100644 scripts/frontend/startup_css/get_startup_css.js create mode 100644 scripts/frontend/startup_css/main.js create mode 100755 scripts/frontend/startup_css/setup.sh create mode 100755 scripts/frontend/startup_css/startup_css_changed.sh create mode 100644 scripts/frontend/startup_css/utils.js create mode 100644 scripts/frontend/startup_css/write_startup_scss.js delete mode 100755 scripts/lint-changelog-filenames delete mode 100644 spec/bin/changelog_spec.rb delete mode 100644 spec/controllers/admin/appearances_controller_spec.rb create mode 100644 spec/controllers/admin/application_settings/appearances_controller_spec.rb create mode 100644 spec/controllers/projects/analytics/cycle_analytics/summary_controller_spec.rb create mode 100644 spec/controllers/projects/packages/infrastructure_registry_controller_spec.rb create mode 100644 spec/docs_screenshots/wiki_docs.rb create mode 100644 spec/factories/ci/job_token/project_scope_links.rb create mode 100644 spec/factories/packages/debian/distribution_key.rb create mode 100644 spec/features/admin/admin_sees_background_migrations_spec.rb delete mode 100644 spec/features/admin/clusters/applications_spec.rb create mode 100644 spec/features/admin/integrations/user_activates_mattermost_slash_command_spec.rb delete mode 100644 spec/features/clusters/installing_applications_shared_examples.rb delete mode 100644 spec/features/groups/clusters/applications_spec.rb create mode 100644 spec/features/groups/integrations/user_activates_mattermost_slash_command_spec.rb create mode 100644 spec/features/merge_request/user_edits_reviewers_sidebar_spec.rb create mode 100644 spec/features/nav/top_nav_responsive_spec.rb delete mode 100644 spec/features/projects/clusters/applications_spec.rb create mode 100644 spec/features/projects/infrastructure_registry_spec.rb create mode 100644 spec/features/projects/integrations/user_activates_flowdock_spec.rb create mode 100644 spec/features/projects/integrations/user_activates_jira_spec.rb create mode 100644 spec/features/projects/integrations/user_activates_pivotaltracker_spec.rb delete mode 100644 spec/features/projects/services/user_activates_flowdock_spec.rb delete mode 100644 spec/features/projects/services/user_activates_jira_spec.rb delete mode 100644 spec/features/projects/services/user_activates_pivotaltracker_spec.rb create mode 100644 spec/finders/packages/helm/package_files_finder_spec.rb create mode 100644 spec/fixtures/api/schemas/analytics/cycle_analytics/summary.json create mode 100644 spec/fixtures/api/schemas/graphql/packages/package_pypi_metadata.json create mode 100644 spec/fixtures/bulk_imports/boards.ndjson create mode 100644 spec/fixtures/bulk_imports/gz/boards.ndjson.gz create mode 100644 spec/fixtures/bulk_imports/gz/labels.ndjson.gz create mode 100644 spec/fixtures/bulk_imports/gz/milestones.ndjson.gz create mode 100644 spec/fixtures/bulk_imports/labels.ndjson delete mode 100644 spec/fixtures/bulk_imports/labels.ndjson.gz create mode 100644 spec/fixtures/bulk_imports/milestones.ndjson delete mode 100644 spec/fixtures/config/redis_cache_config_with_env.yml delete mode 100644 spec/fixtures/config/redis_cache_new_format_host.yml delete mode 100644 spec/fixtures/config/redis_cache_new_format_socket.yml delete mode 100644 spec/fixtures/config/redis_cache_old_format_host.yml delete mode 100644 spec/fixtures/config/redis_cache_old_format_socket.yml delete mode 100644 spec/fixtures/config/redis_queues_config_with_env.yml delete mode 100644 spec/fixtures/config/redis_queues_new_format_host.yml delete mode 100644 spec/fixtures/config/redis_queues_new_format_socket.yml delete mode 100644 spec/fixtures/config/redis_queues_old_format_host.yml delete mode 100644 spec/fixtures/config/redis_queues_old_format_socket.yml delete mode 100644 spec/fixtures/config/redis_shared_state_config_with_env.yml delete mode 100644 spec/fixtures/config/redis_shared_state_new_format_host.yml delete mode 100644 spec/fixtures/config/redis_shared_state_new_format_socket.yml delete mode 100644 spec/fixtures/config/redis_shared_state_old_format_host.yml delete mode 100644 spec/fixtures/config/redis_shared_state_old_format_socket.yml create mode 100644 spec/fixtures/dns/a_rr.json create mode 100644 spec/fixtures/dns/a_with_aaaa_rr_in_additional_section.json create mode 100644 spec/fixtures/dns/aaaa_rr.json create mode 100644 spec/fixtures/dns/srv_with_a_rr_in_additional_section.json delete mode 100644 spec/fixtures/helm/helm_list_v2_cilium_deployed.json.gz delete mode 100644 spec/fixtures/helm/helm_list_v2_cilium_failed.json.gz delete mode 100644 spec/fixtures/helm/helm_list_v2_cilium_missing.json.gz delete mode 100644 spec/fixtures/helm/helm_list_v2_empty_blob.json.gz delete mode 100644 spec/fixtures/helm/helm_list_v2_prometheus_deployed.json.gz delete mode 100644 spec/fixtures/helm/helm_list_v2_prometheus_failed.json.gz delete mode 100644 spec/fixtures/helm/helm_list_v2_prometheus_missing.json.gz create mode 100644 spec/fixtures/lib/generators/gitlab/usage_metric_generator/sample_metric.rb create mode 100644 spec/fixtures/lib/generators/gitlab/usage_metric_generator/sample_metric_test.rb create mode 100644 spec/frontend/__helpers__/mock_user_callout_dismisser.js create mode 100644 spec/frontend/alerts_settings/components/__snapshots__/alerts_form_spec.js.snap create mode 100644 spec/frontend/alerts_settings/components/alerts_form_spec.js create mode 100644 spec/frontend/blob/components/table_contents_spec.js delete mode 100644 spec/frontend/boards/components/sidebar/board_sidebar_due_date_spec.js delete mode 100644 spec/frontend/boards/components/sidebar/board_sidebar_milestone_select_spec.js create mode 100644 spec/frontend/branches/components/delete_branch_button_spec.js create mode 100644 spec/frontend/branches/components/delete_branch_modal_spec.js delete mode 100644 spec/frontend/clusters/components/fluentd_output_settings_spec.js delete mode 100644 spec/frontend/clusters/components/ingress_modsecurity_settings_spec.js delete mode 100644 spec/frontend/commit/pipelines/pipelines_spec.js create mode 100644 spec/frontend/commit/pipelines/pipelines_table_spec.js create mode 100644 spec/frontend/content_editor/components/__snapshots__/toolbar_link_button_spec.js.snap create mode 100644 spec/frontend/content_editor/components/toolbar_link_button_spec.js create mode 100644 spec/frontend/content_editor/components/toolbar_text_style_dropdown_spec.js create mode 100644 spec/frontend/content_editor/extensions/code_block_highlight_spec.js create mode 100644 spec/frontend/content_editor/extensions/link_spec.js create mode 100644 spec/frontend/cycle_analytics/__snapshots__/base_spec.js.snap create mode 100644 spec/frontend/cycle_analytics/base_spec.js create mode 100644 spec/frontend/cycle_analytics/path_navigation_spec.js create mode 100644 spec/frontend/cycle_analytics/store/getters_spec.js create mode 100644 spec/frontend/diffs/utils/workers_spec.js create mode 100644 spec/frontend/feature_flags/components/empty_state_spec.js delete mode 100644 spec/frontend/feature_flags/components/feature_flags_tab_spec.js delete mode 100644 spec/frontend/feature_flags/components/user_lists_table_spec.js create mode 100644 spec/frontend/fixtures/runner.rb create mode 100644 spec/frontend/fixtures/startup_css.rb delete mode 100644 spec/frontend/incidents_settings/components/__snapshots__/alerts_form_spec.js.snap delete mode 100644 spec/frontend/incidents_settings/components/alerts_form_spec.js create mode 100644 spec/frontend/issue_show/components/fields/type_spec.js delete mode 100644 spec/frontend/issue_show/mock_data.js create mode 100644 spec/frontend/issue_show/mock_data/apollo_mock.js create mode 100644 spec/frontend/issue_show/mock_data/mock_data.js create mode 100644 spec/frontend/lib/utils/table_utility_spec.js create mode 100644 spec/frontend/nav/components/responsive_app_spec.js create mode 100644 spec/frontend/nav/components/responsive_header_spec.js create mode 100644 spec/frontend/nav/components/responsive_home_spec.js create mode 100644 spec/frontend/nav/components/top_nav_menu_sections_spec.js create mode 100644 spec/frontend/nav/components/top_nav_new_dropdown_spec.js create mode 100644 spec/frontend/packages/details/components/__snapshots__/file_sha_spec.js.snap create mode 100644 spec/frontend/packages/details/components/file_sha_spec.js create mode 100644 spec/frontend/packages_and_registries/infrastructure_registry/components/__snapshots__/terraform_installation_spec.js.snap create mode 100644 spec/frontend/packages_and_registries/infrastructure_registry/components/details_title_spec.js create mode 100644 spec/frontend/packages_and_registries/infrastructure_registry/components/terraform_installation_spec.js create mode 100644 spec/frontend/packages_and_registries/shared/components/__snapshots__/cleanup_policy_enabled_alert_spec.js.snap create mode 100644 spec/frontend/packages_and_registries/shared/components/cleanup_policy_enabled_alert_spec.js create mode 100644 spec/frontend/pages/shared/nav/sidebar_tracking_spec.js create mode 100644 spec/frontend/pages/users/activity_calendar_spec.js delete mode 100644 spec/frontend/pipeline_editor/components/drawer/ui/pipeline_visual_reference_spec.js delete mode 100644 spec/frontend/pipelines/notification/pipeline_notification_spec.js create mode 100644 spec/frontend/releases/components/app_index_apollo_client_spec.js create mode 100644 spec/frontend/releases/components/releases_empty_state_spec.js create mode 100644 spec/frontend/releases/components/releases_pagination_apollo_client_spec.js create mode 100644 spec/frontend/releases/components/releases_sort_apollo_client_spec.js create mode 100644 spec/frontend/repository/components/blob_header_edit_spec.js create mode 100644 spec/frontend/repository/components/blob_replace_spec.js create mode 100644 spec/frontend/runner/components/cells/runner_actions_cell_spec.js create mode 100644 spec/frontend/runner/components/cells/runner_name_cell_spec.js create mode 100644 spec/frontend/runner/components/cells/runner_type_cell_spec.js create mode 100644 spec/frontend/runner/components/runner_filtered_search_bar_spec.js create mode 100644 spec/frontend/runner/components/runner_list_spec.js create mode 100644 spec/frontend/runner/components/runner_manual_setup_help_spec.js create mode 100644 spec/frontend/runner/components/runner_pagination_spec.js create mode 100644 spec/frontend/runner/components/runner_tags_spec.js create mode 100644 spec/frontend/runner/components/runner_type_alert_spec.js create mode 100644 spec/frontend/runner/components/runner_type_help_spec.js create mode 100644 spec/frontend/runner/components/runner_update_form_spec.js create mode 100644 spec/frontend/runner/mock_data.js create mode 100644 spec/frontend/runner/runner_list/runner_list_app_spec.js create mode 100644 spec/frontend/runner/runner_list/runner_search_utils_spec.js create mode 100644 spec/frontend/search/topbar/components/searchable_dropdown_item_spec.js create mode 100644 spec/frontend/security_configuration/components/redesigned_app_spec.js create mode 100644 spec/frontend/security_configuration/components/section_layout_spec.js create mode 100644 spec/frontend/security_configuration/components/upgrade_banner_spec.js create mode 100644 spec/frontend/security_configuration/utils_spec.js create mode 100644 spec/frontend/sidebar/components/sidebar_dropdown_widget_spec.js create mode 100644 spec/frontend/sidebar/track_invite_members_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/editor_service_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/modals/add_image/add_image_modal_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/modals/add_image/upload_image_tab_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/modals/insert_video_modal_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/rich_content_editor_integration_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/rich_content_editor_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/build_custom_renderer_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/build_html_to_markdown_renderer_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/renderers/build_uneditable_token_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/renderers/mock_data.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/renderers/render_attribute_definition_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/renderers/render_embedded_ruby_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/renderers/render_font_awesome_html_inline_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/renderers/render_heading_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/renderers/render_html_block_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/renderers/render_identifier_instance_text_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/renderers/render_identifier_paragraph_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/renderers/render_list_item_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/renderers/render_softbreak_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/renderers/render_utils_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/services/sanitize_html_spec.js create mode 100644 spec/frontend/static_site_editor/rich_content_editor/toolbar_item_spec.js create mode 100644 spec/frontend/tracking/get_standard_context_spec.js create mode 100644 spec/frontend/user_lists/components/user_lists_spec.js create mode 100644 spec/frontend/user_lists/components/user_lists_table_spec.js create mode 100644 spec/frontend/user_lists/store/index/actions_spec.js create mode 100644 spec/frontend/user_lists/store/index/mutations_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/editor_service_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/modals/add_image/add_image_modal_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/modals/add_image/upload_image_tab_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/modals/insert_video_modal_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/rich_content_editor_integration_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/rich_content_editor_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/build_custom_renderer_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/build_html_to_markdown_renderer_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/renderers/build_uneditable_token_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/renderers/mock_data.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/renderers/render_attribute_definition_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/renderers/render_embedded_ruby_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/renderers/render_font_awesome_html_inline_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/renderers/render_heading_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/renderers/render_html_block_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/renderers/render_identifier_instance_text_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/renderers/render_identifier_paragraph_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/renderers/render_list_item_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/renderers/render_softbreak_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/renderers/render_utils_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/services/sanitize_html_spec.js delete mode 100644 spec/frontend/vue_shared/components/rich_content_editor/toolbar_item_spec.js create mode 100644 spec/frontend/vue_shared/components/runner_aws_deployments/__snapshots__/runner_aws_deployments_modal_spec.js.snap create mode 100644 spec/frontend/vue_shared/components/runner_aws_deployments/runner_aws_deployments_modal_spec.js create mode 100644 spec/frontend/vue_shared/components/runner_aws_deployments/runner_aws_deployments_spec.js create mode 100644 spec/frontend/vue_shared/components/security_reports/artifact_downloads/merge_request_artifact_download_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/base_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_button_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_create_label_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_footer_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_header_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_search_input_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_title_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_value_collapsed_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_value_spec.js delete mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select/mock_data.js create mode 100644 spec/frontend/vue_shared/components/sidebar/labels_select_vue/dropdown_value_collapsed_spec.js create mode 100644 spec/frontend/vue_shared/components/user_callout_dismisser_mock_data.js create mode 100644 spec/frontend/vue_shared/components/user_callout_dismisser_spec.js delete mode 100644 spec/generator_helper.rb create mode 100644 spec/graphql/mutations/ci/runner/delete_spec.rb create mode 100644 spec/graphql/mutations/ci/runner/update_spec.rb create mode 100644 spec/graphql/types/packages/package_group_sort_enum_spec.rb create mode 100644 spec/graphql/types/packages/package_sort_enum_spec.rb create mode 100644 spec/graphql/types/packages/pypi/metadatum_type_spec.rb create mode 100644 spec/helpers/admin/background_migrations_helper_spec.rb create mode 100644 spec/helpers/keyset_helper_spec.rb create mode 100644 spec/helpers/nav/new_dropdown_helper_spec.rb create mode 100644 spec/initializers/global_id_spec.rb create mode 100644 spec/initializers/mailer_retries_spec.rb create mode 100644 spec/lib/api/helpers/runner_helpers_spec.rb create mode 100644 spec/lib/api/helpers/runner_spec.rb create mode 100644 spec/lib/backup/gitaly_backup_spec.rb create mode 100644 spec/lib/backup/gitaly_rpc_backup_spec.rb create mode 100644 spec/lib/bulk_imports/common/extractors/ndjson_extractor_spec.rb delete mode 100644 spec/lib/bulk_imports/groups/graphql/get_labels_query_spec.rb create mode 100644 spec/lib/bulk_imports/groups/pipelines/boards_pipeline_spec.rb create mode 100644 spec/lib/bulk_imports/ndjson_pipeline_spec.rb create mode 100644 spec/lib/generators/gitlab/usage_metric_generator_spec.rb create mode 100644 spec/lib/gitlab/background_migration/cleanup_orphaned_lfs_objects_projects_spec.rb create mode 100644 spec/lib/gitlab/background_migration/disable_expiration_policies_linked_to_no_container_images_spec.rb create mode 100644 spec/lib/gitlab/background_migration/update_jira_tracker_data_deployment_type_based_on_url_spec.rb delete mode 100644 spec/lib/gitlab/checks/change_access_spec.rb create mode 100644 spec/lib/gitlab/checks/changes_access_spec.rb create mode 100644 spec/lib/gitlab/checks/single_change_access_spec.rb create mode 100644 spec/lib/gitlab/ci/matching/build_matcher_spec.rb create mode 100644 spec/lib/gitlab/ci/matching/runner_matcher_spec.rb delete mode 100644 spec/lib/gitlab/cluster/mixins/unicorn_http_server_spec.rb create mode 100644 spec/lib/gitlab/database/consistency_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing/active_record_proxy_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing/connection_proxy_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing/host_list_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing/host_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing/load_balancer_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing/rack_middleware_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing/resolver_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing/service_discovery_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing/session_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing/sidekiq_client_middleware_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing/sidekiq_server_middleware_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing/srv_resolver_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing/sticking_spec.rb create mode 100644 spec/lib/gitlab/database/load_balancing_spec.rb create mode 100644 spec/lib/gitlab/database/postgresql_adapter/type_map_cache_spec.rb create mode 100644 spec/lib/gitlab/email/message/in_product_marketing/experience_spec.rb create mode 100644 spec/lib/gitlab/git/conflict/resolver_spec.rb create mode 100644 spec/lib/gitlab/global_id/deprecations_spec.rb delete mode 100644 spec/lib/gitlab/graphql/docs/renderer_spec.rb create mode 100644 spec/lib/gitlab/health_checks/redis/trace_chunks_check_spec.rb delete mode 100644 spec/lib/gitlab/health_checks/unicorn_check_spec.rb create mode 100644 spec/lib/gitlab/kas/client_spec.rb delete mode 100644 spec/lib/gitlab/kubernetes/helm/parsers/list_v2_spec.rb delete mode 100644 spec/lib/gitlab/metrics/samplers/unicorn_sampler_spec.rb create mode 100644 spec/lib/gitlab/pagination/keyset/paginator_spec.rb delete mode 100644 spec/lib/gitlab/patch/action_dispatch_journey_formatter_spec.rb create mode 100644 spec/lib/gitlab/redis/trace_chunks_spec.rb create mode 100644 spec/lib/gitlab/sidekiq_middleware/size_limiter/compressor_spec.rb create mode 100644 spec/lib/gitlab/sidekiq_middleware/size_limiter/server_spec.rb delete mode 100644 spec/lib/gitlab/usage/metrics/instrumentations/count_users_using_approve_quick_action_metric_spec.rb create mode 100644 spec/lib/gitlab/usage/metrics/instrumentations/redis_hll_metric_spec.rb create mode 100644 spec/lib/gitlab/usage/metrics/name_suggestion_spec.rb create mode 100644 spec/lib/gitlab/usage/metrics/query_spec.rb create mode 100644 spec/lib/peek/views/memory_spec.rb create mode 100644 spec/lib/sidebars/projects/menus/scope_menu_spec.rb create mode 100644 spec/lib/sidebars/projects/menus/security_compliance_menu_spec.rb create mode 100644 spec/lib/system_check/incoming_email/imap_authentication_check_spec.rb create mode 100644 spec/migrations/20210421163509_schedule_update_jira_tracker_data_deployment_type_based_on_url_spec.rb create mode 100644 spec/migrations/20210514063252_schedule_cleanup_orphaned_lfs_objects_projects_spec.rb create mode 100644 spec/migrations/20210601073400_fix_total_stage_in_vsa_spec.rb create mode 100644 spec/migrations/20210601080039_group_protected_environments_add_index_and_constraint_spec.rb create mode 100644 spec/migrations/20210603222333_remove_builds_email_service_from_services_spec.rb create mode 100644 spec/migrations/backfill_clusters_integration_prometheus_enabled_spec.rb create mode 100644 spec/migrations/backfill_escalation_policies_for_oncall_schedules_spec.rb create mode 100644 spec/migrations/clean_up_pending_builds_table_spec.rb create mode 100644 spec/migrations/cleanup_move_container_registry_enabled_to_project_features_spec.rb create mode 100644 spec/migrations/disable_expiration_policies_linked_to_no_container_images_spec.rb create mode 100644 spec/migrations/insert_ci_daily_pipeline_schedule_triggers_plan_limits_spec.rb create mode 100644 spec/migrations/migrate_protected_attribute_to_pending_builds_spec.rb create mode 100644 spec/migrations/retry_backfill_traversal_ids_spec.rb delete mode 100644 spec/migrations/schedule_calculate_wiki_sizes_spec.rb create mode 100644 spec/migrations/schedule_disable_expiration_policies_linked_to_no_container_images_spec.rb create mode 100644 spec/migrations/schedule_recalculate_uuid_on_vulnerabilities_occurrences2_spec.rb create mode 100644 spec/models/bulk_imports/export_status_spec.rb create mode 100644 spec/models/ci/job_token/project_scope_link_spec.rb create mode 100644 spec/models/ci/job_token/scope_spec.rb create mode 100644 spec/models/ci/pending_build_spec.rb create mode 100644 spec/models/ci/running_build_spec.rb delete mode 100644 spec/models/clusters/applications/fluentd_spec.rb delete mode 100644 spec/models/concerns/has_timelogs_report_spec.rb create mode 100644 spec/models/concerns/integrations/has_data_fields_spec.rb delete mode 100644 spec/models/hooks/web_hook_log_archived_spec.rb create mode 100644 spec/models/integrations/base_chat_notification_spec.rb create mode 100644 spec/models/integrations/base_issue_tracker_spec.rb create mode 100644 spec/models/integrations/bugzilla_spec.rb create mode 100644 spec/models/integrations/buildkite_spec.rb create mode 100644 spec/models/integrations/custom_issue_tracker_spec.rb create mode 100644 spec/models/integrations/discord_spec.rb create mode 100644 spec/models/integrations/drone_ci_spec.rb create mode 100644 spec/models/integrations/ewm_spec.rb create mode 100644 spec/models/integrations/external_wiki_spec.rb create mode 100644 spec/models/integrations/flowdock_spec.rb create mode 100644 spec/models/integrations/hangouts_chat_spec.rb create mode 100644 spec/models/integrations/irker_spec.rb create mode 100644 spec/models/integrations/issue_tracker_data_spec.rb create mode 100644 spec/models/integrations/jenkins_spec.rb create mode 100644 spec/models/integrations/jira_spec.rb create mode 100644 spec/models/integrations/jira_tracker_data_spec.rb create mode 100644 spec/models/integrations/mattermost_slash_commands_spec.rb create mode 100644 spec/models/integrations/mattermost_spec.rb create mode 100644 spec/models/integrations/microsoft_teams_spec.rb create mode 100644 spec/models/integrations/open_project_spec.rb create mode 100644 spec/models/integrations/open_project_tracker_data_spec.rb create mode 100644 spec/models/integrations/packagist_spec.rb create mode 100644 spec/models/integrations/pipelines_email_spec.rb create mode 100644 spec/models/integrations/pivotaltracker_spec.rb create mode 100644 spec/models/integrations/pushover_spec.rb create mode 100644 spec/models/integrations/redmine_spec.rb create mode 100644 spec/models/integrations/slack_slash_commands_spec.rb create mode 100644 spec/models/integrations/slack_spec.rb create mode 100644 spec/models/integrations/teamcity_spec.rb create mode 100644 spec/models/integrations/unify_circuit_spec.rb create mode 100644 spec/models/integrations/webex_teams_spec.rb create mode 100644 spec/models/integrations/youtrack_spec.rb create mode 100644 spec/models/packages/debian/group_distribution_key_spec.rb create mode 100644 spec/models/packages/debian/project_distribution_key_spec.rb delete mode 100644 spec/models/project_repository_storage_move_spec.rb delete mode 100644 spec/models/project_services/bugzilla_service_spec.rb delete mode 100644 spec/models/project_services/buildkite_service_spec.rb delete mode 100644 spec/models/project_services/chat_notification_service_spec.rb delete mode 100644 spec/models/project_services/custom_issue_tracker_service_spec.rb delete mode 100644 spec/models/project_services/data_fields_spec.rb delete mode 100644 spec/models/project_services/discord_service_spec.rb delete mode 100644 spec/models/project_services/drone_ci_service_spec.rb delete mode 100644 spec/models/project_services/ewm_service_spec.rb delete mode 100644 spec/models/project_services/external_wiki_service_spec.rb delete mode 100644 spec/models/project_services/flowdock_service_spec.rb delete mode 100644 spec/models/project_services/hangouts_chat_service_spec.rb delete mode 100644 spec/models/project_services/hipchat_service_spec.rb delete mode 100644 spec/models/project_services/irker_service_spec.rb delete mode 100644 spec/models/project_services/issue_tracker_data_spec.rb delete mode 100644 spec/models/project_services/issue_tracker_service_spec.rb delete mode 100644 spec/models/project_services/jenkins_service_spec.rb delete mode 100644 spec/models/project_services/jira_service_spec.rb delete mode 100644 spec/models/project_services/jira_tracker_data_spec.rb delete mode 100644 spec/models/project_services/mattermost_service_spec.rb delete mode 100644 spec/models/project_services/mattermost_slash_commands_service_spec.rb delete mode 100644 spec/models/project_services/microsoft_teams_service_spec.rb delete mode 100644 spec/models/project_services/open_project_service_spec.rb delete mode 100644 spec/models/project_services/open_project_tracker_data_spec.rb delete mode 100644 spec/models/project_services/packagist_service_spec.rb delete mode 100644 spec/models/project_services/pipelines_email_service_spec.rb delete mode 100644 spec/models/project_services/pivotaltracker_service_spec.rb delete mode 100644 spec/models/project_services/pushover_service_spec.rb delete mode 100644 spec/models/project_services/redmine_service_spec.rb delete mode 100644 spec/models/project_services/slack_service_spec.rb delete mode 100644 spec/models/project_services/slack_slash_commands_service_spec.rb delete mode 100644 spec/models/project_services/teamcity_service_spec.rb delete mode 100644 spec/models/project_services/unify_circuit_service_spec.rb delete mode 100644 spec/models/project_services/webex_teams_service_spec.rb delete mode 100644 spec/models/project_services/youtrack_service_spec.rb delete mode 100644 spec/models/snippet_repository_storage_move_spec.rb delete mode 100644 spec/rack_servers/unicorn_spec.rb delete mode 100644 spec/requests/api/feature_flag_scopes_spec.rb create mode 100644 spec/requests/api/graphql/mutations/ci/runners_registration_token/reset_spec.rb create mode 100644 spec/requests/api/graphql/packages/pypi_spec.rb create mode 100644 spec/requests/api/group_avatar_spec.rb create mode 100644 spec/requests/api/helm_packages_spec.rb create mode 100644 spec/requests/api/project_debian_distributions_spec.rb create mode 100644 spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb create mode 100644 spec/rubocop/cop/usage_data/instrumentation_superclass_spec.rb create mode 100644 spec/services/authorized_project_update/project_recalculate_service_spec.rb delete mode 100644 spec/services/authorized_project_update/recalculate_for_user_range_service_spec.rb create mode 100644 spec/services/bulk_imports/file_decompression_service_spec.rb create mode 100644 spec/services/bulk_imports/file_download_service_spec.rb create mode 100644 spec/services/ci/pipeline_creation/start_pipeline_service_spec.rb delete mode 100644 spec/services/clusters/cleanup/app_service_spec.rb delete mode 100644 spec/services/clusters/parse_cluster_applications_artifact_service_spec.rb delete mode 100644 spec/services/feature_flags/disable_service_spec.rb delete mode 100644 spec/services/feature_flags/enable_service_spec.rb create mode 100644 spec/services/groups/participants_service_spec.rb delete mode 100644 spec/services/packages/debian/destroy_distribution_service_spec.rb create mode 100644 spec/services/packages/helm/extract_file_metadata_service_spec.rb create mode 100644 spec/services/users/authorized_build_service_spec.rb delete mode 100644 spec/services/users/update_assigned_open_issue_count_service_spec.rb delete mode 100644 spec/support/gitlab_stubs/gitlab_ci_for_sast_default_analyzers.yml create mode 100644 spec/support/helpers/features/top_nav_spec_helpers.rb create mode 100644 spec/support/helpers/global_id_deprecation_helpers.rb create mode 100644 spec/support/matchers/be_one_of.rb delete mode 100644 spec/support/shared_contexts/change_access_checks_shared_context.rb create mode 100644 spec/support/shared_contexts/changes_access_checks_shared_context.rb create mode 100644 spec/support/shared_contexts/features/integrations/group_integrations_shared_context.rb create mode 100644 spec/support/shared_contexts/features/integrations/instance_and_group_integrations_shared_context.rb create mode 100644 spec/support/shared_contexts/features/integrations/instance_integrations_shared_context.rb create mode 100644 spec/support/shared_contexts/features/integrations/integrations_shared_context.rb create mode 100644 spec/support/shared_contexts/features/integrations/project_integrations_jira_context.rb create mode 100644 spec/support/shared_contexts/features/integrations/project_integrations_shared_context.rb create mode 100644 spec/support/shared_contexts/graphql/requests/packages_shared_context.rb create mode 100644 spec/support/shared_contexts/load_balancing_configuration_shared_context.rb delete mode 100644 spec/support/shared_contexts/project_service_jira_context.rb delete mode 100644 spec/support/shared_contexts/project_service_shared_context.rb create mode 100644 spec/support/shared_contexts/requests/api/helm_packages_shared_context.rb create mode 100644 spec/support/shared_contexts/services/packages/debian/distribution_shared_context.rb delete mode 100644 spec/support/shared_contexts/services_shared_context.rb create mode 100644 spec/support/shared_contexts/single_change_access_checks_shared_context.rb create mode 100644 spec/support/shared_examples/ci/badge_template_shared_examples.rb create mode 100644 spec/support/shared_examples/features/integrations/user_activates_mattermost_slash_command_integration_shared_examples.rb create mode 100644 spec/support/shared_examples/lib/gitlab/experimentation_shared_examples.rb create mode 100644 spec/support/shared_examples/models/chat_integration_shared_examples.rb delete mode 100644 spec/support/shared_examples/models/chat_service_shared_examples.rb delete mode 100644 spec/support/shared_examples/models/chat_slash_commands_shared_examples.rb create mode 100644 spec/support/shared_examples/models/concerns/integrations/slack_mattermost_notifier_shared_examples.rb create mode 100644 spec/support/shared_examples/models/integrations/base_slash_commands_shared_examples.rb create mode 100644 spec/support/shared_examples/models/packages/debian/distribution_key_shared_examples.rb delete mode 100644 spec/support/shared_examples/models/slack_mattermost_notifications_shared_examples.rb create mode 100644 spec/support/shared_examples/namespaces/linear_traversal_examples.rb create mode 100644 spec/support/shared_examples/requests/api/graphql/packages/package_details_shared_examples.rb create mode 100644 spec/support/shared_examples/requests/api/helm_packages_shared_examples.rb delete mode 100644 spec/support/shared_examples/services/clusters/parse_cluster_applications_artifact_shared_examples.rb create mode 100644 spec/support/shared_examples/services/packages/debian/generate_distribution_shared_examples.rb create mode 100644 spec/support/shared_examples/services/users/build_service_shared_examples.rb delete mode 100644 spec/support/shared_examples/uncached_response_shared_examples.rb delete mode 100644 spec/support/unicorn.rb create mode 100644 spec/tooling/danger/product_intelligence_spec.rb create mode 100644 spec/tooling/graphql/docs/renderer_spec.rb delete mode 100644 spec/views/admin/users/_user.html.haml_spec.rb delete mode 100644 spec/workers/analytics/instance_statistics/count_job_trigger_worker_spec.rb delete mode 100644 spec/workers/analytics/instance_statistics/counter_job_worker_spec.rb create mode 100644 spec/workers/authorized_project_update/project_recalculate_worker_spec.rb create mode 100644 spec/workers/authorized_project_update/user_refresh_from_replica_worker_spec.rb create mode 100644 spec/workers/build_queue_worker_spec.rb delete mode 100644 spec/workers/clusters/cleanup/app_worker_spec.rb delete mode 100644 spec/workers/deployments/execute_hooks_worker_spec.rb delete mode 100644 spec/workers/git_garbage_collect_worker_spec.rb delete mode 100644 spec/workers/incident_management/process_alert_worker_spec.rb delete mode 100644 spec/workers/incident_management/process_prometheus_alert_worker_spec.rb delete mode 100644 spec/workers/merge_requests/assignees_change_worker_spec.rb create mode 100644 spec/workers/packages/debian/generate_distribution_worker_spec.rb delete mode 100644 spec/workers/project_schedule_bulk_repository_shard_moves_worker_spec.rb delete mode 100644 spec/workers/project_update_repository_storage_worker_spec.rb delete mode 100644 spec/workers/prune_web_hook_logs_worker_spec.rb delete mode 100644 spec/workers/snippet_schedule_bulk_repository_shard_moves_worker_spec.rb delete mode 100644 spec/workers/snippet_update_repository_storage_worker_spec.rb delete mode 100644 spec/workers/users/update_open_issue_count_worker_spec.rb create mode 100644 tooling/danger/product_intelligence.rb create mode 100644 tooling/graphql/docs/helper.rb create mode 100644 tooling/graphql/docs/renderer.rb create mode 100644 tooling/graphql/docs/templates/default.md.haml delete mode 100644 vendor/Dockerfile/OpenJDK-alpine.Dockerfile delete mode 100644 vendor/fluentd/values.yaml delete mode 100644 vendor/ingress/modsecurity.conf diff --git a/.eslintrc.yml b/.eslintrc.yml index 7ec7abca2e4..b1a65df946a 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -31,11 +31,6 @@ rules: - error - allowElseIf: true lines-between-class-members: off - # Disabled for now, to make the plugin-vue 4.5 -> 5.0 update smoother - vue/no-confusing-v-for-v-if: error - vue/no-use-v-if-with-v-for: off - vue/no-v-html: error - vue/use-v-on-exact: off # all offenses of no-jquery/no-animate-toggle are false positives ( $toast.show() ) no-jquery/no-animate-toggle: off no-jquery/no-event-shorthand: off diff --git a/.gitignore b/.gitignore index 9d9730bf406..323741575de 100644 --- a/.gitignore +++ b/.gitignore @@ -42,6 +42,7 @@ eslint-report.html /config/redis.cache.yml /config/redis.queues.yml /config/redis.shared_state.yml +/config/redis.trace_chunks.yml /config/unicorn.rb /config/puma.rb /config/puma_actioncable.rb diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 27a618a9925..574a7d29853 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -107,3 +107,4 @@ variables: include: - local: .gitlab/ci/*.gitlab-ci.yml + - remote: 'https://gitlab.com/gitlab-org/frontend/untamper-my-lockfile/-/raw/main/.gitlab-ci-template.yml' diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index acb80bd194b..361d1124a78 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -7,6 +7,8 @@ *.rake @gitlab-org/maintainers/rails-backend [Documentation Directories] +.markdownlint.yml @marcel.amirault @eread @aqualls @cnorris +/doc/.markdownlint @marcel.amirault @eread @aqualls @cnorris /doc/ @gl-docsteam /doc/.vale/ @marcel.amirault @eread @aqualls @cnorris /doc/administration/geo/ @axil @@ -21,7 +23,7 @@ /doc/administration/redis/ @axil /doc/administration/reference_architectures/ @axil /doc/administration/snippets/ @aqualls -/doc/administration/troubleshooting @axil @marcia +/doc/administration/troubleshooting @axil @marcia @eread /doc/api/group_activity_analytics.md @msedlakjakubowski /doc/ci/ @marcel.amirault @sselhorn /doc/ci/environments/ @axil @@ -29,10 +31,11 @@ /doc/ci/test_cases/ @msedlakjakubowski /doc/development/ @marcia /doc/development/documentation/ @cnorris +/doc/development/i18n/ @ngaskill /doc/development/value_stream_analytics.md @msedlakjakubowski /doc/gitlab-basics/ @marcia /doc/install/ @axil -/doc/integration/ @aqualls +/doc/integration/ @aqualls @eread /doc/operations/ @ngaskill @axil /doc/push_rules/ @aqualls /doc/ssh/ @eread @@ -43,7 +46,7 @@ /doc/user/analytics/ @msedlakjakubowski @ngaskill /doc/user/application_security @rdickenson /doc/user/clusters/ @marcia -/doc/user/compliance/ @rdickenson +/doc/user/compliance/ @rdickenson @eread /doc/user/group/ @msedlakjakubowski /doc/user/group/bulk_editing/ @msedlakjakubowski /doc/user/group/devops_adoption/ @msedlakjakubowski @@ -54,10 +57,10 @@ /doc/user/group/value_stream_analytics/ @msedlakjakubowski /doc/user/infrastructure/ @marcia /doc/user/packages/ @ngaskill -/doc/user/profile/ @msedlakjakubowski +/doc/user/profile/ @msedlakjakubowski @eread /doc/user/project/ @aqualls @axil @eread @msedlakjakubowski @ngaskill /doc/user/project/clusters/ @ngaskill -/doc/user/project/import/ @msedlakjakubowski +/doc/user/project/import/ @ngaskill @msedlakjakubowski /doc/user/project/integrations/ @aqualls /doc/user/project/integrations/prometheus_library/ @ngaskill /doc/user/project/issues/ @msedlakjakubowski @@ -65,7 +68,7 @@ /doc/user/project/milestones/ @msedlakjakubowski /doc/user/project/pages/ @axil /doc/user/project/repository/ @aqualls -/doc/user/project/settings/ @aqualls +/doc/user/project/settings/ @aqualls @eread /doc/user/project/static_site_editor/index.md @aqualls /doc/user/project/web_ide/index.md @aqualls /doc/user/project/wiki/index.md @aqualls @@ -200,7 +203,8 @@ Dangerfile @gl-quality/eng-prod [Templates] /lib/gitlab/ci/templates/ @nolith @shinya.maeda @matteeyah /lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml @DylanGriffith @mayra-cabrera @tkuah -/lib/gitlab/ci/templates/Security/ @plafoucriere @gonzoyumo @twoodham @sethgitlab +/lib/gitlab/ci/templates/Security/ @gonzoyumo @twoodham @sethgitlab @thiagocsf +/lib/gitlab/ci/templates/Security/Container-Scanning.*.yml @gitlab-org/protect/container-security-backend [Project Alias] /ee/app/models/project_alias.rb @patrickbajao @@ -216,6 +220,8 @@ Dangerfile @gl-quality/eng-prod /ee/app/policies/vulnerabilities/ @gitlab-org/secure/threat-insights-backend-team /ee/app/policies/vulnerability*.rb @gitlab-org/secure/threat-insights-backend-team /ee/lib/api/vulnerabilit*.rb @gitlab-org/secure/threat-insights-backend-team +/ee/lib/gitlab/ci/reports/security/vulnerability_reports_comparer.rb @gitlab-org/secure/threat-insights-backend-team +/ee/spec/lib/gitlab/ci/reports/security/vulnerability_reports_comparer_spec.rb @gitlab-org/secure/threat-insights-backend-team /ee/spec/policies/vulnerabilities/ @gitlab-org/secure/threat-insights-backend-team /ee/spec/policies/vulnerability*.rb @gitlab-org/secure/threat-insights-backend-team @@ -333,3 +339,11 @@ Dangerfile @gl-quality/eng-prod [Application Security] /lib/gitlab/content_security_policy/ @gitlab-com/gl-security/appsec + +[Gitaly] +lib/gitlab/git_access.rb @proglottis @toon @zj-gitlab +lib/gitlab/git_access_*.rb @proglottis @toon @zj-gitlab +ee/lib/ee/gitlab/git_access.rb @proglottis @toon @zj-gitlab +ee/lib/ee/gitlab/git_access_*.rb @proglottis @toon @zj-gitlab +ee/lib/ee/gitlab/checks/** @proglottis @toon @zj-gitlab +lib/gitlab/checks/** @proglottis @toon @zj-gitlab diff --git a/.gitlab/changelog_config.yml b/.gitlab/changelog_config.yml index 7aa18cc8f36..6069cd17a08 100644 --- a/.gitlab/changelog_config.yml +++ b/.gitlab/changelog_config.yml @@ -36,3 +36,8 @@ template: | {% else %} No changes. {% end %} +# The tag format for gitlab-org/gitlab is vX.Y.Z(-rcX)-ee. The -ee prefix would +# be treated as a pre-release identifier, which can result in the wrong tag +# being used as the starting point of a changelog commit range. The custom regex +# here is used to ensure we find the correct tag. +tag_regex: '^v(?P\d+)\.(?P\d+)\.(?P\d+)-ee$' diff --git a/.gitlab/ci/docs.gitlab-ci.yml b/.gitlab/ci/docs.gitlab-ci.yml index 35d462584ee..a4317c72413 100644 --- a/.gitlab/ci/docs.gitlab-ci.yml +++ b/.gitlab/ci/docs.gitlab-ci.yml @@ -10,8 +10,8 @@ # because some repos are private and CI_JOB_TOKEN cannot access files. # See https://gitlab.com/gitlab-org/gitlab/issues/191273 GIT_DEPTH: 1 - # By default, deploy the Review App using the `master` branch of the `gitlab-org/gitlab-docs` project - DOCS_BRANCH: master + # By default, deploy the Review App using the `main` branch of the `gitlab-org/gitlab-docs` project + DOCS_BRANCH: main environment: name: review-docs/mr-${CI_MERGE_REQUEST_IID} # DOCS_REVIEW_APPS_DOMAIN and DOCS_GITLAB_REPO_SUFFIX are CI variables @@ -54,8 +54,6 @@ docs-lint links: extends: - .docs:rules:docs-lint image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-html:alpine-3.13-ruby-2.7.2 - # TODO: revert to .default-retry when https://gitlab.com/gitlab-org/gitlab/-/issues/331002 is fixed. - retry: 2 stage: test needs: [] script: diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index 33aab8554e7..dfd595c2696 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -317,3 +317,30 @@ bundle-size-review: expire_in: 31d paths: - bundle-size-review + +.startup-css-check-base: + extends: + - .frontend-test-base + script: + - *yarn-install + - run_timed_command "yarn generate:startup_css" + - yarn check:startup_css + +startup-css-check: + extends: + - .startup-css-check-base + - .frontend:rules:default-frontend-jobs + needs: + - job: "compile-test-assets" + - job: "rspec frontend_fixture" + - job: "rspec-ee frontend_fixture" + optional: true + +startup-css-check as-if-foss: + extends: + - .startup-css-check-base + - .as-if-foss + - .frontend:rules:default-frontend-jobs-as-if-foss + needs: + - job: "compile-test-assets as-if-foss" + - job: "rspec frontend_fixture as-if-foss" diff --git a/.gitlab/ci/global.gitlab-ci.yml b/.gitlab/ci/global.gitlab-ci.yml index 489b02fe2f6..ba49ddfce9d 100644 --- a/.gitlab/ci/global.gitlab-ci.yml +++ b/.gitlab/ci/global.gitlab-ci.yml @@ -36,6 +36,23 @@ <<: *gitaly-ruby-gems-cache policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up. +.gitaly-binaries-cache: &gitaly-binaries-cache + key: + files: + - GITALY_SERVER_VERSION + prefix: "gitaly-binaries" + paths: + - tmp/tests/gitaly/_build/bin/ + - tmp/tests/gitaly/config.toml + - tmp/tests/gitaly/gitaly2.config.toml + - tmp/tests/gitaly/internal/ + - tmp/tests/gitaly/internal_gitaly2/ + - tmp/tests/gitaly/internal_sockets/ + - tmp/tests/gitaly/Makefile + - tmp/tests/gitaly/praefect.config.toml + - tmp/tests/gitaly/ruby/ + policy: pull + .go-pkg-cache: &go-pkg-cache key: "go-pkg-v1" paths: @@ -81,7 +98,7 @@ <<: *rubocop-cache # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up but RuboCop has a mechanism # for keeping only the N latest cache files, so we take advantage of it with `pull-push`. - policy: pull-push + policy: push .qa-ruby-gems-cache: &qa-ruby-gems-cache key: "qa-ruby-gems-v1" @@ -97,6 +114,7 @@ cache: - *ruby-gems-cache - *gitaly-ruby-gems-cache + - *gitaly-binaries-cache - *go-pkg-cache .setup-test-env-cache-push: @@ -105,6 +123,11 @@ - *gitaly-ruby-gems-cache-push - *go-pkg-cache-push +.gitaly-binaries-cache-push: + cache: + - <<: *gitaly-binaries-cache + policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up. + .rails-cache: cache: - *ruby-gems-cache @@ -159,7 +182,7 @@ - *assets-cache-push .use-pg11: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.14-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36" + image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36" services: - name: postgres:11.6 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] @@ -168,7 +191,7 @@ POSTGRES_HOST_AUTH_METHOD: trust .use-pg12: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.14-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36" + image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36" services: - name: postgres:12 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] @@ -177,7 +200,7 @@ POSTGRES_HOST_AUTH_METHOD: trust .use-pg11-ee: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.14-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36" + image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36" services: - name: postgres:11.6 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] @@ -188,7 +211,7 @@ POSTGRES_HOST_AUTH_METHOD: trust .use-pg12-ee: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.14-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36" + image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36" services: - name: postgres:12 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml index 68804b0f4c1..b74c8ebf575 100644 --- a/.gitlab/ci/rails.gitlab-ci.yml +++ b/.gitlab/ci/rails.gitlab-ci.yml @@ -8,7 +8,7 @@ .minimal-bundle-install: script: - - export BUNDLE_WITHOUT="${BUNDLE_WITHOUT}:default:test:puma:unicorn:kerberos:metrics:omnibus:ed25519" + - export BUNDLE_WITHOUT="${BUNDLE_WITHOUT}:default:test:puma:kerberos:metrics:omnibus:ed25519" - bundle_install_script .base-script: @@ -192,6 +192,14 @@ update-setup-test-env-cache: artifacts: paths: [] # This job's purpose is only to update the cache. +update-gitaly-binaries-cache: + extends: + - setup-test-env + - .gitaly-binaries-cache-push + - .shared:rules:update-gitaly-binaries-cache + artifacts: + paths: [] # This job's purpose is only to update the cache. + .coverage-base: extends: - .default-retry diff --git a/.gitlab/ci/reports.gitlab-ci.yml b/.gitlab/ci/reports.gitlab-ci.yml index 0162996e3a9..4cc03fdb1a4 100644 --- a/.gitlab/ci/reports.gitlab-ci.yml +++ b/.gitlab/ci/reports.gitlab-ci.yml @@ -27,7 +27,7 @@ code_quality: variables: SAST_BRAKEMAN_LEVEL: 2 # GitLab-specific SAST_EXCLUDED_PATHS: "qa, spec, doc, ee/spec, config/gitlab.yml.example, tmp" # GitLab-specific - SAST_DISABLE_BABEL: "true" + SAST_EXCLUDED_ANALYZERS: bandit, flawfinder, phpcs-security-audit, pmd-apex, security-code-scan, spotbugs brakeman-sast: rules: !reference [".reports:rules:sast", rules] diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml index 5decc83da2b..cabeb0cc1ac 100644 --- a/.gitlab/ci/review.gitlab-ci.yml +++ b/.gitlab/ci/review.gitlab-ci.yml @@ -39,11 +39,11 @@ review-build-cng: .review-workflow-base: extends: - .default-retry - image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-helm3-kubectl1.14 + image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-helm3.5-kubectl1.17 variables: HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}" DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}" - GITLAB_HELM_CHART_REF: "v4.6.3" + GITLAB_HELM_CHART_REF: "v4.12.0" environment: name: review/${CI_COMMIT_REF_SLUG}${FREQUENCY} url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN} @@ -54,6 +54,7 @@ review-deploy: extends: - .review-workflow-base - .review:rules:review-deploy + retry: 2 stage: review needs: ["review-build-cng"] resource_group: "review/${CI_COMMIT_REF_NAME}" @@ -65,18 +66,21 @@ review-deploy: - *base-before_script script: - check_kube_domain - - ensure_namespace + - "ensure_namespace ${KUBE_NAMESPACE}" - install_external_dns - download_chart - date - deploy || (display_deployment_debug && exit 1) + - verify_deploy || exit 1 - disable_sign_ups || (delete_release && exit 1) after_script: # Run seed-dast-test-data.sh only when DAST_RUN is set to true. This is to pupulate review app with data for DAST scan. # Set DAST_RUN to true when jobs are manually scheduled. - if [ "$DAST_RUN" == "true" ]; then source scripts/review_apps/seed-dast-test-data.sh; TRACE=1 trigger_proj_user_creation; fi artifacts: - paths: [environment_url.txt] + paths: + - environment_url.txt + - curl_output.txt expire_in: 7 days when: always @@ -111,7 +115,6 @@ review-stop: .review-qa-base: extends: - - .default-retry - .use-docker-in-docker image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-qa-alpine-ruby-2.7 stage: qa @@ -120,6 +123,7 @@ review-stop: QA_ARTIFACTS_DIR: "${CI_PROJECT_DIR}/qa" QA_CAN_TEST_GIT_PROTOCOL_V2: "false" QA_DEBUG: "true" + QA_GENERATE_ALLURE_REPORT: "true" GITLAB_USERNAME: "root" GITLAB_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}" GITLAB_ADMIN_USERNAME: "root" @@ -140,10 +144,32 @@ review-stop: expire_in: 7 days when: always +.allure-report-base: + image: + name: ${GITLAB_DEPENDENCY_PROXY}andrcuns/allure-report-publisher:0.3.2 + entrypoint: [""] + stage: post-qa + variables: + GIT_STRATEGY: none + STORAGE_CREDENTIALS: $QA_ALLURE_REPORT_GCS_CREDENTIALS + GITLAB_AUTH_TOKEN: $GITLAB_QA_MR_ALLURE_REPORT_TOKEN + allow_failure: true + script: + - | + allure-report-publisher upload gcs \ + --results-glob="qa/gitlab-qa-run-*/**/allure-results/*" \ + --bucket="gitlab-qa-allure-reports" \ + --prefix="$ALLURE_REPORT_PATH_PREFIX/$CI_COMMIT_REF_SLUG" \ + --update-pr="comment" \ + --copy-latest \ + --ignore-missing-results \ + --color + review-qa-smoke: extends: - .review-qa-base - .review:rules:review-qa-smoke + retry: 1 # This is confusing but this means "2 runs at max". script: - gitlab-qa Test::Instance::Smoke "${QA_IMAGE}" "${CI_ENVIRONMENT_URL}" @@ -209,6 +235,24 @@ parallel-spec-reports: junit: qa/gitlab-qa-run-*/**/rspec-*.xml expire_in: 31d +allure-report-qa-smoke: + extends: + - .allure-report-base + - .review:rules:review-qa-smoke-report + needs: ["review-qa-smoke"] + variables: + ALLURE_REPORT_PATH_PREFIX: gitlab-review-smoke + ALLURE_JOB_NAME: review-qa-smoke + +allure-report-qa-all: + extends: + - .allure-report-base + - .review:rules:review-qa-all-report + needs: ["review-qa-all"] + variables: + ALLURE_REPORT_PATH_PREFIX: gitlab-review-all + ALLURE_JOB_NAME: review-qa-all + danger-review: extends: - .default-retry diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 5c9be5b1e9f..8dd97c1fe69 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -102,6 +102,7 @@ - ".gitlab/ci/build-images.gitlab-ci.yml" - ".gitlab/ci/review.gitlab-ci.yml" - "scripts/review_apps/base-config.yaml" + - "scripts/review_apps/review-apps.sh" - "scripts/trigger-build" .ci-qa-patterns: &ci-qa-patterns @@ -110,6 +111,9 @@ - ".gitlab/ci/build-images.gitlab-ci.yml" - ".gitlab/ci/qa.gitlab-ci.yml" +.gitaly-patterns: &gitaly-patterns + - "GITALY_SERVER_VERSION" + .workhorse-patterns: &workhorse-patterns - "GITLAB_WORKHORSE_VERSION" - "workhorse/**/*" @@ -119,7 +123,7 @@ - ".gitlab-ci.yml" - ".gitlab/ci/**/*.yml" - "lib/gitlab/ci/templates/**/*.yml" - - "{,ee/}changelogs/**/*.yml" + - "{,ee/,jh/}changelogs/**/*.yml" .docs-patterns: &docs-patterns - ".gitlab/route-map.yml" @@ -138,7 +142,7 @@ - "config/webpack.config.js" - "config/**/*.js" - "vendor/assets/**/*" - - "{,ee/}app/assets/**/*" + - "{,ee/,jh/}app/assets/**/*" .frontend-patterns: &frontend-patterns - "{package.json,yarn.lock}" @@ -148,45 +152,48 @@ - "Dockerfile.assets" - "config/**/*.js" - "vendor/assets/**/*" - - "{,ee/}{app/assets,app/helpers,app/presenters,app/views,locale,public,symbol}/**/*" + - "{,ee/,jh/}{app/assets,app/helpers,app/presenters,app/views,locale,public,symbol}/**/*" + +.startup-css-patterns: &startup-css-patterns + - "{,ee/,jh/}app/assets/stylesheets/startup/**/*" .backend-patterns: &backend-patterns - "Gemfile{,.lock}" - "Rakefile" - "config.ru" # List explicitly all the app/ dirs that are backend (i.e. all except app/assets). - - "{,ee/}{app/channels,app/controllers,app/finders,app/graphql,app/helpers,app/mailers,app/models,app/policies,app/presenters,app/serializers,app/services,app/uploaders,app/validators,app/views,app/workers}/**/*" - - "{,ee/}{bin,cable,config,db,lib}/**/*" - - "{,ee/}spec/**/*.rb" + - "{,ee/,jh/}{app/channels,app/controllers,app/finders,app/graphql,app/helpers,app/mailers,app/models,app/policies,app/presenters,app/serializers,app/services,app/uploaders,app/validators,app/views,app/workers}/**/*" + - "{,ee/,jh/}{bin,cable,config,db,lib}/**/*" + - "{,ee/,jh/}spec/**/*.rb" # CI changes - ".gitlab-ci.yml" - ".gitlab/ci/**/*" - "*_VERSION" .db-patterns: &db-patterns - - "{,ee/}{,spec/}{db,migrations}/**/*" - - "{,ee/}{,spec/}lib/{,ee/}gitlab/database/**/*" - - "{,ee/}{,spec/}lib/{,ee/}gitlab/database{,_spec}.rb" - - "{,ee/}{,spec/}lib/{,ee/}gitlab/background_migration/**/*" - - "{,ee/}{,spec/}lib/{,ee/}gitlab/background_migration{,_spec}.rb" - - "{,ee/}spec/support/helpers/database/**/*" + - "{,ee/,jh/}{,spec/}{db,migrations}/**/*" + - "{,ee/,jh/}{,spec/}lib/{,ee/,jh/}gitlab/database/**/*" + - "{,ee/,jh/}{,spec/}lib/{,ee/,jh/}gitlab/database{,_spec}.rb" + - "{,ee/,jh/}{,spec/}lib/{,ee/,jh/}gitlab/background_migration/**/*" + - "{,ee/,jh/}{,spec/}lib/{,ee/,jh/}gitlab/background_migration{,_spec}.rb" + - "{,ee/,jh/}spec/support/helpers/database/**/*" - "config/prometheus/common_metrics.yml" # Used by Gitlab::DatabaseImporters::CommonMetrics::Importer - - "{,ee/}app/models/project_statistics.rb" # Used to calculate sizes in migration specs + - "{,ee/,jh/}app/models/project_statistics.rb" # Used to calculate sizes in migration specs # CI changes - ".gitlab-ci.yml" - ".gitlab/ci/**/*" .db-library-patterns: &db-library-patterns - - "{,ee/}{,spec/}lib/{,ee/}gitlab/database/**/*" - - "{,ee/}{,spec/}lib/{,ee/}gitlab/database{,_spec}.rb" - - "{,ee/}spec/support/helpers/database/**/*" + - "{,ee/,jh/}{,spec/}lib/{,ee/,jh/}gitlab/database/**/*" + - "{,ee/,jh/}{,spec/}lib/{,ee/,jh/}gitlab/database{,_spec}.rb" + - "{,ee/,jh/}spec/support/helpers/database/**/*" .backstage-patterns: &backstage-patterns - "Dangerfile" - "danger/**/*" - - "{,ee/}fixtures/**/*" - - "{,ee/}rubocop/**/*" - - "{,ee/}spec/**/*" + - "{,ee/,jh/}fixtures/**/*" + - "{,ee/,jh/}rubocop/**/*" + - "{,ee/,jh/}spec/**/*" - "{,spec/}tooling/**/*" .code-patterns: &code-patterns @@ -206,7 +213,7 @@ - "Rakefile" - "tests.yml" - "config.ru" - - "{,ee/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" + - "{,ee/,jh/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" - "doc/api/graphql/reference/*" # Files in this folder are auto-generated - "data/whats_new/*.yml" @@ -231,15 +238,15 @@ - "Rakefile" - "tests.yml" - "config.ru" - - "{,ee/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" + - "{,ee/,jh/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" - "doc/api/graphql/reference/*" # Files in this folder are auto-generated - "data/whats_new/*.yml" # Backstage changes - "Dangerfile" - "danger/**/*" - - "{,ee/}fixtures/**/*" - - "{,ee/}rubocop/**/*" - - "{,ee/}spec/**/*" + - "{,ee/,jh/}fixtures/**/*" + - "{,ee/,jh/}rubocop/**/*" + - "{,ee/,jh/}spec/**/*" - "{,spec/}tooling/**/*" .code-qa-patterns: &code-qa-patterns @@ -259,7 +266,7 @@ - "Rakefile" - "tests.yml" - "config.ru" - - "{,ee/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" + - "{,ee/,jh/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" - "doc/api/graphql/reference/*" # Files in this folder are auto-generated - "data/whats_new/*.yml" # QA changes @@ -283,15 +290,15 @@ - "Rakefile" - "tests.yml" - "config.ru" - - "{,ee/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" + - "{,ee/,jh/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" - "doc/api/graphql/reference/*" # Files in this folder are auto-generated - "data/whats_new/*.yml" # Backstage changes - "Dangerfile" - "danger/**/*" - - "{,ee/}fixtures/**/*" - - "{,ee/}rubocop/**/*" - - "{,ee/}spec/**/*" + - "{,ee/,jh/}fixtures/**/*" + - "{,ee/,jh/}rubocop/**/*" + - "{,ee/,jh/}spec/**/*" - "{,spec/}tooling/**/*" # QA changes - ".dockerignore" @@ -306,6 +313,11 @@ - <<: *if-security-schedule - <<: *if-merge-request-title-update-caches +.shared:rules:update-gitaly-binaries-cache: + rules: + - <<: *if-merge-request-title-update-caches + - changes: *gitaly-patterns + ###################### # Build images rules # ###################### @@ -317,6 +329,8 @@ changes: *ci-build-images-patterns - <<: *if-dot-com-gitlab-org-and-security-merge-request changes: *code-qa-patterns + - <<: *if-dot-com-gitlab-org-default-branch + changes: *code-qa-patterns - <<: *if-dot-com-gitlab-org-schedule .build-images:rules:build-assets-image: @@ -439,6 +453,8 @@ changes: *code-backstage-patterns - <<: *if-merge-request-title-as-if-foss - <<: *if-merge-request-title-run-all-rspec + - <<: *if-merge-request + changes: *startup-css-patterns - <<: *if-merge-request changes: *ci-patterns @@ -1130,6 +1146,20 @@ changes: *code-qa-patterns allow_failure: true +.review:rules:review-qa-smoke-report: + rules: + - <<: *if-not-ee + when: never + - <<: *if-dot-com-gitlab-org-merge-request + changes: *ci-review-patterns + when: always + - <<: *if-dot-com-gitlab-org-merge-request + changes: *frontend-patterns + when: always + - <<: *if-dot-com-gitlab-org-merge-request + changes: *code-qa-patterns + when: always + .review:rules:review-qa-all: rules: - <<: *if-not-ee @@ -1142,6 +1172,19 @@ changes: *qa-patterns allow_failure: true +.review:rules:review-qa-all-report: + rules: + - <<: *if-not-ee + when: never + - <<: *if-dot-com-gitlab-org-merge-request + changes: *code-patterns + when: manual + allow_failure: true + - <<: *if-dot-com-gitlab-org-merge-request + changes: *qa-patterns + allow_failure: true + when: always + .review:rules:review-cleanup: rules: - <<: *if-not-ee diff --git a/.gitlab/ci/untamper-my-lockfile.yml b/.gitlab/ci/untamper-my-lockfile.yml deleted file mode 100644 index 54ba160f1bd..00000000000 --- a/.gitlab/ci/untamper-my-lockfile.yml +++ /dev/null @@ -1,26 +0,0 @@ -untamper-my-lockfile: - image: registry.gitlab.com/gitlab-org/frontend/untamper-my-lockfile:main - stage: test - needs: [] - before_script: [] - after_script: [] - cache: {} - retry: 1 - script: - - untamper-my-lockfile --lockfile yarn.lock - rules: - # Create a pipeline if the branch is named 'add-untamper-my-lockfile' in - # order to have an integration check added in the MR that introduces it - - if: $CI_COMMIT_REF_NAME == "add-untamper-my-lockfile" - # Create a pipeline if there are changes in yarn.lock _and_ we are in a - # merge request _or_ branch pipeline. - # - # This ensures that the pipeline isn't run in scheduled jobs for example - # - # Also our best effort to support both branch and MR pipelines. In certain - # projects this might trigger _two_ pipelines. These projects can be fixed - # by adding proper workflow:rules - # https://docs.gitlab.com/ee/ci/yaml/#workflowrules - - if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH - changes: - - yarn.lock diff --git a/.gitlab/ci/yaml.gitlab-ci.yml b/.gitlab/ci/yaml.gitlab-ci.yml index c597d992760..a0961866465 100644 --- a/.gitlab/ci/yaml.gitlab-ci.yml +++ b/.gitlab/ci/yaml.gitlab-ci.yml @@ -10,5 +10,4 @@ lint-yaml: variables: LINT_PATHS: .gitlab-ci.yml .gitlab/ci lib/gitlab/ci/templates changelogs script: - - '[[ ! -d "ee/" ]] || export LINT_PATHS="$LINT_PATHS ee/changelogs"' - yamllint -f colored $LINT_PATHS diff --git a/.gitlab/issue_templates/Documentation.md b/.gitlab/issue_templates/Documentation.md index f05d7049b7f..c58b6d0cf06 100644 --- a/.gitlab/issue_templates/Documentation.md +++ b/.gitlab/issue_templates/Documentation.md @@ -25,7 +25,7 @@ * Include use cases, benefits, and/or goals for this work. * If adding content: What audience is it intended for? (What roles and scenarios?) For ideas, see personas at https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/ or the persona labels at - https://gitlab.com/groups/gitlab-org/-/labels?utf8=%E2%9C%93&subscribed=&search=persona%3A + https://gitlab.com/groups/gitlab-org/-/labels?subscribed=&search=persona%3A --> ### Proposal diff --git a/.gitlab/issue_templates/Feature Flag Removal.md b/.gitlab/issue_templates/Feature Flag Removal.md deleted file mode 100644 index c061ab8516c..00000000000 --- a/.gitlab/issue_templates/Feature Flag Removal.md +++ /dev/null @@ -1,28 +0,0 @@ - - -## Feature - -The `:feature_name` feature flag was previously [enabled by default](URL) and should be removed. - -## Owners - -- Group: ~"group::GROUP_NAME" -- Slack channel: `#g_GROUP_NAME` -- DRI: USERNAME -- PM: USERNAME - -**Removal** - -This is an __important__ phase, that should be either done in the next Milestone or as soon as possible. For the cleanup phase, please follow our documentation on how to [clean up the feature flag](https://docs.gitlab.com/ee/development/feature_flags/controls.html#cleaning-up). - -- [ ] Remove `:feature_name` feature flag - - [ ] Remove all references to the feature flag from the codebase - - [ ] Remove the YAML definitions for the feature from the repository - - [ ] Create a Changelog Entry - -- [ ] Clean up the feature flag from all environments by running this chatops command in `#production` channel `/chatops run feature delete some_feature`. - -- [ ] Close this issue after the feature flag is removed from the codebase. - -/label ~"feature flag" ~"technical debt" -/assign DRI diff --git a/.gitlab/issue_templates/Feature Flag Roll Out.md b/.gitlab/issue_templates/Feature Flag Roll Out.md index f07604d2d3d..424b752d1b4 100644 --- a/.gitlab/issue_templates/Feature Flag Roll Out.md +++ b/.gitlab/issue_templates/Feature Flag Roll Out.md @@ -110,6 +110,12 @@ To do so, follow these steps: the feature can be officially announced in a release blog post. - [ ] `/chatops run auto_deploy status ` - [ ] Close [the feature issue](ISSUE LINK) to indicate the feature will be released in the current milestone. +- [ ] Set the next milestone to this rollout issue for scheduling [the flag removal](#release-the-feature). +- [ ] (Optional) You can create a separate issue for scheduling the steps below to [Release the feature](#release-the-feature). + - [ ] Set the title to "[Feature flag] Cleanup ``". + - [ ] Execute the `/copy_metadata ` quick action to copy the labels from this rollout issue. + - [ ] Link this rollout issue as a related issue. + - [ ] Close this rollout issue. **WARNING:** This approach has the downside that it makes it difficult for us to [clean up](https://docs.gitlab.com/ee/development/feature_flags/controls.html#cleaning-up) the flag. diff --git a/.gitlab/issue_templates/Geo Replicate a new Git repository type.md b/.gitlab/issue_templates/Geo Replicate a new Git repository type.md index feabef36f20..be6fef40f3a 100644 --- a/.gitlab/issue_templates/Geo Replicate a new Git repository type.md +++ b/.gitlab/issue_templates/Geo Replicate a new Git repository type.md @@ -513,6 +513,12 @@ That's all of the required database changes. last_synced_at { 1.day.ago } retry_count { 0 } end + + trait :verification_succeeded do + verification_checksum { 'e079a831cab27bcda7d81cd9b48296d0c3dd92ef' } + verification_state { Geo::CoolWidgetRegistry.verification_state_value(:verification_succeeded) } + verified_at { 5.days.ago } + end end end ``` diff --git a/.gitlab/issue_templates/Geo Replicate a new blob type.md b/.gitlab/issue_templates/Geo Replicate a new blob type.md index b9e69d36ecc..c7bbb6b937c 100644 --- a/.gitlab/issue_templates/Geo Replicate a new blob type.md +++ b/.gitlab/issue_templates/Geo Replicate a new blob type.md @@ -479,6 +479,12 @@ That's all of the required database changes. last_synced_at { 1.day.ago } retry_count { 0 } end + + trait :verification_succeeded do + verification_checksum { 'e079a831cab27bcda7d81cd9b48296d0c3dd92ef' } + verification_state { Geo::CoolWidgetRegistry.verification_state_value(:verification_succeeded) } + verified_at { 5.days.ago } + end end end ``` diff --git a/.gitlab/merge_request_templates/Documentation.md b/.gitlab/merge_request_templates/Documentation.md index fac84d98141..9c6b5a73b4f 100644 --- a/.gitlab/merge_request_templates/Documentation.md +++ b/.gitlab/merge_request_templates/Documentation.md @@ -52,8 +52,8 @@ All reviewers can help ensure accuracy, clarity, completeness, and adherence to - [ ] Technical writer review. If not requested for this MR, must be scheduled post-merge. To request for this MR, assign the writer listed for the applicable [DevOps stage](https://about.gitlab.com/handbook/product/categories/#devops-stages). - [ ] Ensure docs metadata are present and up-to-date. - [ ] Ensure ~"Technical Writing" and ~"documentation" are added. - - [ ] Add the corresponding `docs::` [scoped label](https://gitlab.com/groups/gitlab-org/-/labels?utf8=%E2%9C%93&subscribed=&search=docs%3A%3A). - - [ ] If working on UI text, add the corresponding `UI Text` [scoped label](https://gitlab.com/groups/gitlab-org/-/labels?utf8=%E2%9C%93&subscribed=&search=ui+text). + - [ ] Add the corresponding `docs::` [scoped label](https://gitlab.com/groups/gitlab-org/-/labels?subscribed=&search=docs%3A%3A). + - [ ] If working on UI text, add the corresponding `UI Text` [scoped label](https://gitlab.com/groups/gitlab-org/-/labels?subscribed=&search=ui+text). - [ ] Add ~"tw::doing" when starting work on the MR. - [ ] Add ~"tw::finished" if Technical Writing team work on the MR is complete but it remains open. diff --git a/.gitlab/merge_request_templates/Security Release.md b/.gitlab/merge_request_templates/Security Release.md index fccfad18ef0..77e8718c34f 100644 --- a/.gitlab/merge_request_templates/Security Release.md +++ b/.gitlab/merge_request_templates/Security Release.md @@ -16,7 +16,7 @@ See [the general developer security release guidelines](https://gitlab.com/gitla - [ ] Merge request targets `master`, or a versioned stable branch (`X-Y-stable-ee`). - [ ] Milestone is set for the version this merge request applies to. A closed milestone can be assigned via [quick actions]. - [ ] Title of this merge request is the same as for all backports. -- [ ] A [CHANGELOG entry] is added without a `merge_request` value, with `type` set to `security` +- [ ] A [CHANGELOG entry] has been included, with `Changelog` trailer set to `security`. - [ ] For the MR targeting `master`: - [ ] Assign to a reviewer and maintainer, per our [Code Review process]. - [ ] Ensure it's approved according to our [Approval Guidelines]. @@ -37,7 +37,7 @@ See [the general developer security release guidelines](https://gitlab.com/gitla [GitLab Security]: https://gitlab.com/gitlab-org/security/gitlab [quick actions]: https://docs.gitlab.com/ee/user/project/quick_actions.html#quick-actions-for-issues-merge-requests-and-epics -[CHANGELOG entry]: https://docs.gitlab.com/ee/development/changelog.html +[CHANGELOG entry]: https://docs.gitlab.com/ee/development/changelog.html#overview [Code Review process]: https://docs.gitlab.com/ee/development/code_review.html [Approval Guidelines]: https://docs.gitlab.com/ee/development/code_review.html#approval-guidelines [Canonical repository]: https://gitlab.com/gitlab-org/gitlab diff --git a/.markdownlint.yml b/.markdownlint.yml index ccf2ef02eee..dd04406f68d 100644 --- a/.markdownlint.yml +++ b/.markdownlint.yml @@ -66,7 +66,6 @@ "Grafana", "Gzip", "Helm", - "HipChat", "ID", "Ingress", "jasmine-jquery", @@ -131,7 +130,6 @@ "Ubuntu", "Ultra Auth", "Unicorn", - "unicorn-worker-killer", "URL", "WebdriverIO", "YAML", diff --git a/.rubocop.yml b/.rubocop.yml index d086bdf7361..a26e9ab986b 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -36,8 +36,9 @@ AllCops: - 'plugins/**/*' - 'file_hooks/**/*' - 'workhorse/**/*' + - 'spec/support/*.git/**/*' # e.g. spec/support/gitlab-git-test.git CacheRootDirectory: tmp - MaxFilesInCache: 18000 + MaxFilesInCache: 25000 Cop/AvoidKeywordArgumentsInSidekiqWorkers: Enabled: true @@ -89,6 +90,7 @@ RSpec/FilePath: - 'spec/frontend/fixtures/*' - 'ee/spec/frontend/fixtures/*' - 'spec/requests/api/v3/*' + - 'spec/fixtures/**/*' # Configuration parameters: AllowSubject. RSpec/MultipleMemoizedHelpers: @@ -663,3 +665,8 @@ Style/RegexpLiteralMixedPreserve: - mixed - mixed_preserve EnforcedStyle: mixed_preserve + +RSpec/TopLevelDescribePath: + Exclude: + - 'spec/fixtures/**/*.rb' + - 'ee/spec/fixtures/**/*.rb' diff --git a/.rubocop_manual_todo.yml b/.rubocop_manual_todo.yml index e5cb55488d7..dcd6dcf4062 100644 --- a/.rubocop_manual_todo.yml +++ b/.rubocop_manual_todo.yml @@ -13,8 +13,6 @@ # WIP See https://gitlab.com/gitlab-org/gitlab/-/issues/322903 Graphql/Descriptions: Exclude: - - 'app/graphql/types/snippets/blob_action_enum.rb' - - 'app/graphql/types/snippets/visibility_scopes_enum.rb' - 'ee/app/graphql/ee/types/list_limit_metric_enum.rb' - 'ee/app/graphql/types/epic_state_enum.rb' - 'ee/app/graphql/types/health_status_enum.rb' @@ -31,8 +29,6 @@ Graphql/Descriptions: # WIP: See https://gitlab.com/gitlab-org/gitlab/-/issues/220040 Rails/SaveBang: Exclude: - - 'ee/spec/controllers/projects/merge_requests_controller_spec.rb' - - 'ee/spec/controllers/subscriptions_controller_spec.rb' - 'ee/spec/initializers/fog_google_https_private_urls_spec.rb' - 'ee/spec/lib/analytics/merge_request_metrics_calculator_spec.rb' - 'ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb' @@ -157,11 +153,7 @@ Rails/SaveBang: - 'spec/lib/gitlab/shard_health_cache_spec.rb' - 'spec/mailers/notify_spec.rb' - 'spec/models/clusters/applications/helm_spec.rb' - - 'spec/models/container_repository_spec.rb' - 'spec/models/design_management/version_spec.rb' - - 'spec/models/diff_discussion_spec.rb' - - 'spec/models/diff_note_spec.rb' - - 'spec/models/email_spec.rb' - 'spec/models/environment_spec.rb' - 'spec/models/event_spec.rb' - 'spec/models/fork_network_spec.rb' @@ -170,10 +162,6 @@ Rails/SaveBang: - 'spec/models/group_spec.rb' - 'spec/models/identity_spec.rb' - 'spec/models/jira_import_state_spec.rb' - - 'spec/models/key_spec.rb' - - 'spec/models/lfs_objects_project_spec.rb' - - 'spec/models/merge_request_spec.rb' - - 'spec/models/milestone_spec.rb' - 'spec/models/namespace_spec.rb' - 'spec/models/note_spec.rb' - 'spec/models/notification_setting_spec.rb' @@ -385,7 +373,6 @@ RSpec/EmptyLineAfterFinalLetItBe: - ee/spec/requests/api/commits_spec.rb - ee/spec/requests/api/dora/metrics_spec.rb - ee/spec/requests/api/epics_spec.rb - - ee/spec/requests/api/external_approval_rules_spec.rb - ee/spec/requests/api/geo_spec.rb - ee/spec/requests/api/graphql/boards/epic_board_list_epics_query_spec.rb - ee/spec/requests/api/graphql/current_user/todos_query_spec.rb @@ -449,9 +436,9 @@ RSpec/EmptyLineAfterFinalLetItBe: - ee/spec/services/dast_scanner_profiles/destroy_service_spec.rb - ee/spec/services/dast_scanner_profiles/update_service_spec.rb - ee/spec/services/dast_site_profiles/destroy_service_spec.rb - - ee/spec/services/external_approval_rules/create_service_spec.rb - - ee/spec/services/external_approval_rules/destroy_service_spec.rb - - ee/spec/services/external_approval_rules/update_service_spec.rb + - ee/spec/services/external_status_checks/create_service_spec.rb + - ee/spec/services/external_status_checks/destroy_service_spec.rb + - ee/spec/services/external_status_checks/update_service_spec.rb - ee/spec/services/gitlab_subscriptions/activate_service_spec.rb - ee/spec/services/gitlab_subscriptions/apply_trial_service_spec.rb - ee/spec/services/incident_management/incidents/upload_metric_service_spec.rb @@ -732,7 +719,6 @@ RSpec/EmptyLineAfterFinalLetItBe: - spec/services/wiki_pages/event_create_service_spec.rb - spec/support/shared_examples/graphql/design_fields_shared_examples.rb - spec/support/shared_examples/graphql/mutations/set_assignees_shared_examples.rb - - spec/support/shared_examples/models/slack_mattermost_notifications_shared_examples.rb - spec/support/shared_examples/quick_actions/issuable/issuable_quick_actions_shared_examples.rb - spec/support/shared_examples/services/container_registry_auth_service_shared_examples.rb - spec/support/shared_examples/services/packages_shared_examples.rb @@ -771,7 +757,6 @@ RSpec/TimecopFreeze: - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_time_summary_spec.rb' - 'ee/spec/lib/gitlab/analytics/type_of_work/tasks_by_type_spec.rb' - 'ee/spec/lib/gitlab/auth/group_saml/sso_enforcer_spec.rb' - - 'ee/spec/lib/gitlab/database/load_balancing/host_spec.rb' - 'ee/spec/lib/gitlab/geo/base_request_spec.rb' - 'ee/spec/lib/gitlab/geo/event_gap_tracking_spec.rb' - 'ee/spec/lib/gitlab/geo/git_push_http_spec.rb' @@ -882,7 +867,6 @@ RSpec/AnyInstanceOf: - 'ee/spec/features/issues/form_spec.rb' - 'ee/spec/features/merge_request/user_creates_merge_request_spec.rb' - 'ee/spec/features/projects/new_project_spec.rb' - - 'ee/spec/features/projects/services/user_activates_jira_spec.rb' - 'ee/spec/features/registrations/welcome_spec.rb' - 'ee/spec/features/security/project/internal_access_spec.rb' - 'ee/spec/features/security/project/private_access_spec.rb' @@ -1161,6 +1145,8 @@ RSpec/AnyInstanceOf: - 'spec/models/hooks/service_hook_spec.rb' - 'spec/models/hooks/system_hook_spec.rb' - 'spec/models/hooks/web_hook_spec.rb' + - 'spec/models/integrations/jira_spec.rb' + - 'spec/models/integrations/mattermost_slash_commands_spec.rb' - 'spec/models/issue_spec.rb' - 'spec/models/key_spec.rb' - 'spec/models/member_spec.rb' @@ -1168,8 +1154,6 @@ RSpec/AnyInstanceOf: - 'spec/models/merge_request_spec.rb' - 'spec/models/note_spec.rb' - 'spec/models/project_import_state_spec.rb' - - 'spec/models/project_services/jira_service_spec.rb' - - 'spec/models/project_services/mattermost_slash_commands_service_spec.rb' - 'spec/models/project_spec.rb' - 'spec/models/repository_spec.rb' - 'spec/models/user_spec.rb' @@ -1302,8 +1286,8 @@ RSpec/AnyInstanceOf: - 'spec/support/shared_examples/features/snippets_shared_examples.rb' - 'spec/support/shared_examples/lib/gitlab/ci/ci_trace_shared_examples.rb' - 'spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb' - - 'spec/support/shared_examples/models/chat_slash_commands_shared_examples.rb' - 'spec/support/shared_examples/models/diff_note_after_commit_shared_examples.rb' + - 'spec/support/shared_examples/models/integrations/base_slash_commands_shared_examples.rb' - 'spec/support/shared_examples/models/mentionable_shared_examples.rb' - 'spec/support/shared_examples/models/with_uploads_shared_examples.rb' - 'spec/support/shared_examples/path_extraction_shared_examples.rb' @@ -1320,7 +1304,6 @@ RSpec/AnyInstanceOf: - 'spec/support/shared_examples/workers/authorized_projects_worker_shared_example.rb' - 'spec/support/shared_examples/workers/reactive_cacheable_shared_examples.rb' - 'spec/support/snowplow.rb' - - 'spec/support/unicorn.rb' - 'spec/tasks/gitlab/cleanup_rake_spec.rb' - 'spec/tasks/gitlab/container_registry_rake_spec.rb' - 'spec/tasks/gitlab/db_rake_spec.rb' @@ -1602,6 +1585,7 @@ Gitlab/NamespacedClass: - 'app/models/list_user_preference.rb' - 'app/models/member.rb' - 'app/models/members/group_member.rb' + - 'app/models/members/last_group_owner_assigner.rb' - 'app/models/members/project_member.rb' - 'app/models/members_preloader.rb' - 'app/models/merge_request.rb' @@ -1658,48 +1642,9 @@ Gitlab/NamespacedClass: - 'app/models/project_pages_metadatum.rb' - 'app/models/project_repository.rb' - 'app/models/project_repository_storage_move.rb' - - 'app/models/project_services/alerts_service.rb' - - 'app/models/project_services/alerts_service_data.rb' - - 'app/models/project_services/bugzilla_service.rb' - - 'app/models/project_services/buildkite_service.rb' - - 'app/models/project_services/chat_notification_service.rb' - - 'app/models/project_services/ci_service.rb' - - 'app/models/project_services/custom_issue_tracker_service.rb' - - 'app/models/project_services/discord_service.rb' - - 'app/models/project_services/drone_ci_service.rb' - - 'app/models/project_services/ewm_service.rb' - - 'app/models/project_services/external_wiki_service.rb' - - 'app/models/project_services/flowdock_service.rb' - - 'app/models/project_services/hangouts_chat_service.rb' - - 'app/models/project_services/hipchat_service.rb' - - 'app/models/project_services/irker_service.rb' - - 'app/models/project_services/issue_tracker_data.rb' - - 'app/models/project_services/issue_tracker_service.rb' - - 'app/models/project_services/jenkins_service.rb' - - 'app/models/project_services/jira_service.rb' - - 'app/models/project_services/jira_tracker_data.rb' - - 'app/models/project_services/mattermost_service.rb' - - 'app/models/project_services/mattermost_slash_commands_service.rb' - - 'app/models/project_services/microsoft_teams_service.rb' - - 'app/models/project_services/mock_ci_service.rb' - - 'app/models/project_services/mock_deployment_service.rb' - 'app/models/project_services/mock_monitoring_service.rb' - 'app/models/project_services/monitoring_service.rb' - - 'app/models/project_services/open_project_service.rb' - - 'app/models/project_services/open_project_tracker_data.rb' - - 'app/models/project_services/packagist_service.rb' - - 'app/models/project_services/pipelines_email_service.rb' - - 'app/models/project_services/pivotaltracker_service.rb' - 'app/models/project_services/prometheus_service.rb' - - 'app/models/project_services/pushover_service.rb' - - 'app/models/project_services/redmine_service.rb' - - 'app/models/project_services/slack_service.rb' - - 'app/models/project_services/slack_slash_commands_service.rb' - - 'app/models/project_services/slash_commands_service.rb' - - 'app/models/project_services/teamcity_service.rb' - - 'app/models/project_services/unify_circuit_service.rb' - - 'app/models/project_services/webex_teams_service.rb' - - 'app/models/project_services/youtrack_service.rb' - 'app/models/project_setting.rb' - 'app/models/project_snippet.rb' - 'app/models/project_statistics.rb' @@ -2404,11 +2349,6 @@ Gitlab/NamespacedClass: - 'ee/app/models/project_alias.rb' - 'ee/app/models/project_repository_state.rb' - 'ee/app/models/project_security_setting.rb' - - 'ee/app/models/project_services/github_service.rb' - - 'ee/app/models/project_services/github_service/remote_project.rb' - - 'ee/app/models/project_services/github_service/status_message.rb' - - 'ee/app/models/project_services/github_service/status_notifier.rb' - - 'ee/app/models/project_services/gitlab_slack_application_service.rb' - 'ee/app/models/protected_environment.rb' - 'ee/app/models/push_rule.rb' - 'ee/app/models/resource_iteration_event.rb' @@ -2533,7 +2473,6 @@ Gitlab/NamespacedClass: - 'ee/app/workers/elastic_full_index_worker.rb' - 'ee/app/workers/elastic_index_bulk_cron_worker.rb' - 'ee/app/workers/elastic_index_initial_bulk_cron_worker.rb' - - 'ee/app/workers/elastic_indexer_worker.rb' - 'ee/app/workers/elastic_indexing_control_worker.rb' - 'ee/app/workers/elastic_namespace_indexer_worker.rb' - 'ee/app/workers/elastic_namespace_rollout_worker.rb' @@ -2699,7 +2638,6 @@ Performance/OpenStruct: - 'ee/lib/gitlab/graphql/aggregations/epics/epic_node.rb' - 'lib/api/wikis.rb' - 'lib/gitlab/ci/ansi2html.rb' - - 'lib/gitlab/ci/reports/test_suite_comparer.rb' - 'lib/gitlab/git/diff_collection.rb' - 'lib/gitlab/import_export/after_export_strategies/base_after_export_strategy.rb' - 'lib/gitlab/testing/request_inspector_middleware.rb' @@ -2712,8 +2650,8 @@ Gitlab/DelegatePredicateMethods: - 'app/models/clusters/platforms/kubernetes.rb' - 'app/models/concerns/ci/metadatable.rb' - 'app/models/concerns/diff_positionable_note.rb' + - 'app/models/concerns/integrations/base_data_fields.rb' - 'app/models/concerns/resolvable_discussion.rb' - - 'app/models/concerns/services/data_fields.rb' - 'app/models/project.rb' - 'ee/app/models/concerns/ee/ci/metadatable.rb' - 'ee/app/models/ee/group.rb' @@ -2888,7 +2826,7 @@ Gitlab/FeatureAvailableUsage: - 'ee/app/views/shared/promotions/_promote_repository_features.html.haml' - 'ee/app/workers/analytics/code_review_metrics_worker.rb' - 'ee/app/workers/group_saml_group_sync_worker.rb' - - 'ee/lib/api/external_approval_rules.rb' + - 'ee/lib/api/external_status_checks.rb' - 'ee/lib/ee/api/entities/approval_state.rb' - 'ee/lib/ee/api/entities/board.rb' - 'ee/lib/ee/api/entities/issue.rb' @@ -2936,8 +2874,6 @@ Style/RegexpLiteralMixedPreserve: - 'ee/spec/controllers/groups/groups_controller_spec.rb' - 'ee/spec/features/groups/saml_enforcement_spec.rb' - 'ee/spec/features/markdown/metrics_spec.rb' - - 'ee/spec/lib/gitlab/database/load_balancing/load_balancer_spec.rb' - - 'ee/spec/models/project_services/jira_service_spec.rb' - 'ee/spec/services/jira/requests/issues/list_service_spec.rb' - 'lib/api/invitations.rb' - 'lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb' @@ -2966,5 +2902,4 @@ Style/RegexpLiteralMixedPreserve: - 'spec/support/helpers/grafana_api_helpers.rb' - 'spec/support/helpers/query_recorder.rb' - 'spec/support/helpers/require_migration.rb' - - 'spec/support/shared_examples/models/slack_mattermost_notifications_shared_examples.rb' - 'spec/views/layouts/_head.html.haml_spec.rb' diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 26b12f26943..ad1f7afa451 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -152,7 +152,7 @@ Lint/MissingCopEnableDirective: Lint/MixedRegexpCaptureTypes: Exclude: - 'app/models/alert_management/alert.rb' - - 'app/models/project_services/ewm_service.rb' + - 'app/models/integrations/ewm.rb' - 'app/uploaders/file_uploader.rb' - 'ee/lib/gitlab/code_owners/reference_extractor.rb' - 'lib/gitlab/ci/pipeline/expression/lexeme/string.rb' @@ -742,11 +742,6 @@ Style/ExplicitBlockArgument: Style/FormatString: Enabled: false -# Offense count: 67 -# Cop supports --auto-correct. -Style/GlobalStdStream: - Enabled: false - # Offense count: 897 # Configuration parameters: MinBodyLength. Style/GuardClause: diff --git a/.stylelintrc b/.stylelintrc index 13ec6ea340b..a4331811eb3 100644 --- a/.stylelintrc +++ b/.stylelintrc @@ -3,6 +3,7 @@ "ignoreFiles": [ "app/assets/stylesheets/pages/emojis.scss", "app/assets/stylesheets/startup/startup-*.scss", + "ee/app/assets/stylesheets/startup/startup-*.scss", "app/assets/stylesheets/lazy_bundles/select2.scss", "app/assets/stylesheets/highlight/themes/*.scss", "app/assets/stylesheets/lazy_bundles/cropper.css" diff --git a/CHANGELOG.md b/CHANGELOG.md index cf7d07b984d..6cbd9e875df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,22 +28,6 @@ entry. - [Improve SSH key expiration warning emails](gitlab-org/gitlab@2e3929503046ab1da5635ef295321ce08843f937) ([merge request](gitlab-org/gitlab!63393)) -## 13.12.2 (2021-06-01) - -### Security (11 changes) - -- [Bump BinData version](gitlab-org/security/gitlab@609303ac4904cad6bbcc776bb809a46a66891d53) ([merge request](gitlab-org/security/gitlab!1414)) -- [Block access to GitLab for users with expired password](gitlab-org/security/gitlab@f0a07ce8a596a4dd6f1311dff893c896b0cdf82f) ([merge request](gitlab-org/security/gitlab!1446)) -- [Adds redirect page to OAuth](gitlab-org/security/gitlab@6ed6dfc8f9ba785fd5337ee0f4701c983b6f07b0) ([merge request](gitlab-org/security/gitlab!1441)) -- [Update users two factor required from group](gitlab-org/security/gitlab@8c3fe378289d2dced2139c9db396b6270d3bc0ab) ([merge request](gitlab-org/security/gitlab!1432)) -- [Updates authorization for lint](gitlab-org/security/gitlab@be33caed9684af07ac715038d7a2865d9d0c7247) ([merge request](gitlab-org/security/gitlab!1429)) -- [Opt in to Atlassians new context qsh](gitlab-org/security/gitlab@f1d06250fbef6fa2af8a8c88d3b3f9391c332089) ([merge request](gitlab-org/security/gitlab!1408)) -- [Limit oncall projects shown to scope of source](gitlab-org/security/gitlab@a70859aaac44c9b3bd3cc673737e01e2a3aba99c) ([merge request](gitlab-org/security/gitlab!1410)) **GitLab Enterprise Edition** -- [Only verify commit signatures if the user email is verified](gitlab-org/security/gitlab@9039fdffdf109cdf667be8db3d792a502aad8bb9) ([merge request](gitlab-org/security/gitlab!1385)) -- [Prevent XSS on notebooks](gitlab-org/security/gitlab@9a2dc30920c2a271257ccec92aebcfabec276096) ([merge request](gitlab-org/security/gitlab!1421)) -- [Truncate all non-blob markdown to 1MB by default](gitlab-org/security/gitlab@e9e6bc0450639ee25fd0ced983da231700a4d4f9) ([merge request](gitlab-org/security/gitlab!1420)) -- [Use xpath search of Nokogiri instead of css search](gitlab-org/security/gitlab@7e5c79021ab54ffc70d22bba3c663ce38ae83a88) ([merge request](gitlab-org/security/gitlab!1416)) - ## 13.12.1 (2021-05-25) ### Fixed (3 changes) diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index 535687224af..9b197696144 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -13.12.4 \ No newline at end of file +8a6d0e26de9d584941267d2b68c94b37bc30e092 diff --git a/GITLAB_ELASTICSEARCH_INDEXER_VERSION b/GITLAB_ELASTICSEARCH_INDEXER_VERSION index 46b81d815a2..d8b698973a4 100644 --- a/GITLAB_ELASTICSEARCH_INDEXER_VERSION +++ b/GITLAB_ELASTICSEARCH_INDEXER_VERSION @@ -1 +1 @@ -2.11.0 +2.12.0 diff --git a/GITLAB_KAS_VERSION b/GITLAB_KAS_VERSION index 6665a53d3b5..4b964e96540 100644 --- a/GITLAB_KAS_VERSION +++ b/GITLAB_KAS_VERSION @@ -1 +1 @@ -13.12.0 +14.0.0 diff --git a/GITLAB_PAGES_VERSION b/GITLAB_PAGES_VERSION index 5edffce6d57..32b7211cb61 100644 --- a/GITLAB_PAGES_VERSION +++ b/GITLAB_PAGES_VERSION @@ -1 +1 @@ -1.39.0 +1.40.0 diff --git a/GITLAB_SHELL_VERSION b/GITLAB_SHELL_VERSION index ce0b2795686..dc18eab7e57 100644 --- a/GITLAB_SHELL_VERSION +++ b/GITLAB_SHELL_VERSION @@ -1 +1 @@ -13.18.0 +13.19.0 diff --git a/Gemfile b/Gemfile index 3aee2845eae..3f4de069464 100644 --- a/Gemfile +++ b/Gemfile @@ -2,7 +2,7 @@ source 'https://rubygems.org' -gem 'rails', '~> 6.0.3.6' +gem 'rails', '~> 6.1.3.2' gem 'bootsnap', '~> 1.4.6' @@ -129,7 +129,7 @@ gem 'fog-local', '~> 0.6' gem 'fog-openstack', '~> 1.0' gem 'fog-rackspace', '~> 0.1.1' gem 'fog-aliyun', '~> 0.3' -gem 'gitlab-fog-azure-rm', '~> 1.0.1', require: false +gem 'gitlab-fog-azure-rm', '~> 1.1.1', require: false # for Google storage gem 'google-api-client', '~> 0.33' @@ -183,13 +183,8 @@ gem 'rack', '~> 2.2.3' # https://github.com/sharpstone/rack-timeout/blob/master/README.md#rails-apps-manually gem 'rack-timeout', '~> 0.5.1', require: 'rack/timeout/base' -group :unicorn do - gem 'unicorn', '~> 5.5' - gem 'unicorn-worker-killer', '~> 0.4.4' -end - group :puma do - gem 'puma', '~> 5.1.1', require: false + gem 'puma', '~> 5.3.1', require: false gem 'puma_worker_killer', '~> 0.3.1', require: false end @@ -254,7 +249,7 @@ gem 'flowdock', '~> 0.7' gem 'slack-messenger', '~> 2.3.4' # Hangouts Chat integration -gem 'hangouts-chat', '~> 0.0.5' +gem 'hangouts-chat', '~> 0.0.5', require: 'hangouts_chat' # Asana integration gem 'asana', '~> 0.10.3' @@ -306,15 +301,20 @@ gem 'gitlab-license', '~> 1.5' gem 'rack-attack', '~> 6.3.0' # Sentry integration -gem 'sentry-raven', '~> 3.0' +gem 'sentry-raven', '~> 3.1' # PostgreSQL query parsing -gem 'pg_query', '~> 1.3.0' +# +# We need this fork until https://github.com/pganalyze/pg_query/pull/212 +# and https://github.com/pganalyze/pg_query/pull/213 are +# released. gitlab-labkit will need to be updated to use the pg_query +# version. +gem 'gitlab-pg_query', '~> 2.0.4', require: 'pg_query' gem 'premailer-rails', '~> 1.10.3' # LabKit: Tracing and Correlation -gem 'gitlab-labkit', '~> 0.16.2' +gem 'gitlab-labkit', '~> 0.18.0' # Thrift is a dependency of gitlab-labkit, we want a version higher than 0.14.0 # because of https://gitlab.com/gitlab-org/gitlab/-/issues/321900 gem 'thrift', '>= 0.14.0' @@ -341,12 +341,11 @@ group :metrics do # Prometheus gem 'prometheus-client-mmap', '~> 0.12.0' - gem 'raindrops', '~> 0.18' end group :development do gem 'lefthook', '~> 0.7.0', require: false - gem 'solargraph', '~> 0.40.4', require: false + gem 'solargraph', '~> 0.42', require: false gem 'letter_opener_web', '~> 1.4.0' @@ -403,7 +402,7 @@ group :development, :test do end group :development, :test, :danger do - gem 'gitlab-dangerfiles', '~> 2.0.0', require: false + gem 'gitlab-dangerfiles', '~> 2.1.2', require: false end group :development, :test, :coverage do @@ -483,16 +482,19 @@ gem 'spamcheck', '~> 0.1.0' # Gitaly GRPC protocol definitions gem 'gitaly', '~> 13.12.0.pre.rc1' +# KAS GRPC protocol definitions +gem 'kas-grpc', '~> 0.0.2' + gem 'grpc', '~> 1.30.2' -gem 'google-protobuf', '~> 3.14.0' +gem 'google-protobuf', '~> 3.17.1' gem 'toml-rb', '~> 1.0.0' # Feature toggles -gem 'flipper', '~> 0.17.1' -gem 'flipper-active_record', '~> 0.17.1' -gem 'flipper-active_support_cache_store', '~> 0.17.1' +gem 'flipper', '~> 0.21.0' +gem 'flipper-active_record', '~> 0.21.0' +gem 'flipper-active_support_cache_store', '~> 0.21.0' gem 'unleash', '~> 0.1.5' gem 'gitlab-experiment', '~> 0.5.4' diff --git a/Gemfile.lock b/Gemfile.lock index 23876a9ecc9..5cd2431a7d1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -12,64 +12,68 @@ GEM abstract_type (0.0.7) acme-client (2.0.6) faraday (>= 0.17, < 2.0.0) - actioncable (6.0.3.6) - actionpack (= 6.0.3.6) + actioncable (6.1.3.2) + actionpack (= 6.1.3.2) + activesupport (= 6.1.3.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.0.3.6) - actionpack (= 6.0.3.6) - activejob (= 6.0.3.6) - activerecord (= 6.0.3.6) - activestorage (= 6.0.3.6) - activesupport (= 6.0.3.6) + actionmailbox (6.1.3.2) + actionpack (= 6.1.3.2) + activejob (= 6.1.3.2) + activerecord (= 6.1.3.2) + activestorage (= 6.1.3.2) + activesupport (= 6.1.3.2) mail (>= 2.7.1) - actionmailer (6.0.3.6) - actionpack (= 6.0.3.6) - actionview (= 6.0.3.6) - activejob (= 6.0.3.6) + actionmailer (6.1.3.2) + actionpack (= 6.1.3.2) + actionview (= 6.1.3.2) + activejob (= 6.1.3.2) + activesupport (= 6.1.3.2) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.0.3.6) - actionview (= 6.0.3.6) - activesupport (= 6.0.3.6) - rack (~> 2.0, >= 2.0.8) + actionpack (6.1.3.2) + actionview (= 6.1.3.2) + activesupport (= 6.1.3.2) + rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.0.3.6) - actionpack (= 6.0.3.6) - activerecord (= 6.0.3.6) - activestorage (= 6.0.3.6) - activesupport (= 6.0.3.6) + actiontext (6.1.3.2) + actionpack (= 6.1.3.2) + activerecord (= 6.1.3.2) + activestorage (= 6.1.3.2) + activesupport (= 6.1.3.2) nokogiri (>= 1.8.5) - actionview (6.0.3.6) - activesupport (= 6.0.3.6) + actionview (6.1.3.2) + activesupport (= 6.1.3.2) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.0.3.6) - activesupport (= 6.0.3.6) + activejob (6.1.3.2) + activesupport (= 6.1.3.2) globalid (>= 0.3.6) - activemodel (6.0.3.6) - activesupport (= 6.0.3.6) - activerecord (6.0.3.6) - activemodel (= 6.0.3.6) - activesupport (= 6.0.3.6) + activemodel (6.1.3.2) + activesupport (= 6.1.3.2) + activerecord (6.1.3.2) + activemodel (= 6.1.3.2) + activesupport (= 6.1.3.2) activerecord-explain-analyze (0.1.0) activerecord (>= 4) pg - activestorage (6.0.3.6) - actionpack (= 6.0.3.6) - activejob (= 6.0.3.6) - activerecord (= 6.0.3.6) + activestorage (6.1.3.2) + actionpack (= 6.1.3.2) + activejob (= 6.1.3.2) + activerecord (= 6.1.3.2) + activesupport (= 6.1.3.2) marcel (~> 1.0.0) - activesupport (6.0.3.6) + mini_mime (~> 1.0.2) + activesupport (6.1.3.2) concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - zeitwerk (~> 2.2, >= 2.2.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) acts-as-taggable-on (7.0.0) activerecord (>= 5.0, < 6.2) adamantium (0.2.0) @@ -133,7 +137,7 @@ GEM net-http-persistent (~> 4.0) nokogiri (~> 1.11.0.rc2) babosa (1.0.4) - backport (1.1.2) + backport (1.2.0) base32 (0.3.2) batch-loader (2.0.1) bcrypt (3.1.16) @@ -348,13 +352,24 @@ GEM factory_bot_rails (6.1.0) factory_bot (~> 6.1.0) railties (>= 5.0.0) - faraday (1.0.1) + faraday (1.4.2) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.1) multipart-post (>= 1.2, < 3) + ruby2_keywords (>= 0.0.4) faraday-cookie_jar (0.0.7) faraday (>= 0.8.0) http-cookie (~> 1.0.0) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) faraday-http-cache (2.2.0) faraday (>= 0.8) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.1.0) faraday_middleware (1.0.0) faraday (~> 1.0) faraday_middleware-aws-sigv4 (0.3.0) @@ -366,19 +381,19 @@ GEM fast_blank (1.0.0) fast_gettext (1.6.0) ffaker (2.10.0) - ffi (1.13.1) + ffi (1.15.1) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake ffi-yajl (2.3.4) libyajl2 (~> 1.2) - flipper (0.17.1) - flipper-active_record (0.17.1) - activerecord (>= 4.2, < 7) - flipper (~> 0.17.1) - flipper-active_support_cache_store (0.17.1) - activesupport (>= 4.2, < 7) - flipper (~> 0.17.1) + flipper (0.21.0) + flipper-active_record (0.21.0) + activerecord (>= 5.0, < 7) + flipper (~> 0.21.0) + flipper-active_support_cache_store (0.21.0) + activesupport (>= 5.0, < 7) + flipper (~> 0.21.0) flowdock (0.7.1) httparty (~> 0.7) multi_json @@ -447,13 +462,13 @@ GEM terminal-table (~> 1.5, >= 1.5.1) gitlab-chronic (0.10.5) numerizer (~> 0.2) - gitlab-dangerfiles (2.0.0) + gitlab-dangerfiles (2.1.2) danger-gitlab gitlab-experiment (0.5.4) activesupport (>= 3.0) request_store (>= 1.0) scientist (~> 1.6, >= 1.6.0) - gitlab-fog-azure-rm (1.0.1) + gitlab-fog-azure-rm (1.1.1) azure-storage-blob (~> 2.0) azure-storage-common (~> 2.0) fog-core (= 2.1.0) @@ -467,13 +482,13 @@ GEM fog-xml (~> 0.1.0) google-api-client (>= 0.44.2, < 0.51) google-cloud-env (~> 1.2) - gitlab-labkit (0.16.2) + gitlab-labkit (0.18.0) actionpack (>= 5.0.0, < 7.0.0) activesupport (>= 5.0.0, < 7.0.0) + gitlab-pg_query (~> 2.0) grpc (~> 1.19) jaeger-client (~> 1.1) opentracing (~> 0.4) - pg_query (~> 1.3) redis (> 3.0.0, < 5.0.0) gitlab-license (1.5.0) gitlab-mail_room (0.0.9) @@ -483,6 +498,8 @@ GEM addressable (~> 2.7) omniauth (~> 1.9) openid_connect (~> 1.2) + gitlab-pg_query (2.0.4) + google-protobuf (>= 3.17.1) gitlab-sidekiq-fetcher (0.5.6) sidekiq (~> 5) gitlab-styles (6.2.0) @@ -516,7 +533,7 @@ GEM signet (~> 0.12) google-cloud-env (1.4.0) faraday (>= 0.17.3, < 2.0) - google-protobuf (3.14.0) + google-protobuf (3.17.1) googleapis-common-protos-types (1.0.6) google-protobuf (~> 3.14) googleauth (0.14.0) @@ -622,7 +639,7 @@ GEM http-cookie (1.0.3) domain_name (~> 0.5) http-form_data (2.3.0) - http-parser (1.2.1) + http-parser (1.2.3) ffi-compiler (>= 1.0, < 2.0) httparty (0.16.4) mime-types (~> 3.0) @@ -676,7 +693,8 @@ GEM activerecord kaminari-core (= 1.2.1) kaminari-core (1.2.1) - kgio (2.11.3) + kas-grpc (0.0.2) + grpc (~> 1.0) knapsack (1.21.1) rake kramdown (2.3.1) @@ -690,7 +708,7 @@ GEM rest-client (~> 2.0) launchy (2.5.0) addressable (~> 2.7) - lefthook (0.7.2) + lefthook (0.7.5) letter_opener (1.7.0) launchy (~> 2.2) letter_opener_web (1.4.0) @@ -742,7 +760,7 @@ GEM mime-types-data (3.2020.0512) mini_histogram (0.3.1) mini_magick (4.10.1) - mini_mime (1.1.0) + mini_mime (1.0.2) mini_portile2 (2.5.0) minitest (5.11.3) mixlib-cli (2.1.8) @@ -903,7 +921,6 @@ GEM peek (1.1.0) railties (>= 4.0.0) pg (1.2.3) - pg_query (1.3.0) plist (3.6.0) png_quantizator (0.2.1) po_to_json (1.0.1) @@ -929,12 +946,12 @@ GEM pry (~> 0.13.0) pry-rails (0.3.9) pry (>= 0.10.4) - pry-shell (0.4.0) + pry-shell (0.4.1) pry (~> 0.13.0) tty-markdown tty-prompt public_suffix (4.0.6) - puma (5.1.1) + puma (5.3.2) nio4r (~> 2.0) puma_worker_killer (0.3.1) get_process_mem (~> 0.2) @@ -962,20 +979,20 @@ GEM rack-test (1.1.0) rack (>= 1.0, < 3) rack-timeout (0.5.2) - rails (6.0.3.6) - actioncable (= 6.0.3.6) - actionmailbox (= 6.0.3.6) - actionmailer (= 6.0.3.6) - actionpack (= 6.0.3.6) - actiontext (= 6.0.3.6) - actionview (= 6.0.3.6) - activejob (= 6.0.3.6) - activemodel (= 6.0.3.6) - activerecord (= 6.0.3.6) - activestorage (= 6.0.3.6) - activesupport (= 6.0.3.6) - bundler (>= 1.3.0) - railties (= 6.0.3.6) + rails (6.1.3.2) + actioncable (= 6.1.3.2) + actionmailbox (= 6.1.3.2) + actionmailer (= 6.1.3.2) + actionpack (= 6.1.3.2) + actiontext (= 6.1.3.2) + actionview (= 6.1.3.2) + activejob (= 6.1.3.2) + activemodel (= 6.1.3.2) + activerecord (= 6.1.3.2) + activestorage (= 6.1.3.2) + activesupport (= 6.1.3.2) + bundler (>= 1.15.0) + railties (= 6.1.3.2) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -989,14 +1006,13 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - railties (6.0.3.6) - actionpack (= 6.0.3.6) - activesupport (= 6.0.3.6) + railties (6.1.3.2) + actionpack (= 6.1.3.2) + activesupport (= 6.1.3.2) method_source rake (>= 0.8.7) - thor (>= 0.20.3, < 2.0) + thor (~> 1.0) rainbow (3.0.0) - raindrops (0.19.1) rake (13.0.3) rb-fsevent (0.10.4) rb-inotify (0.10.1) @@ -1130,7 +1146,7 @@ GEM nokogiri (>= 1.10.5) rexml ruby-statistics (2.1.2) - ruby2_keywords (0.0.2) + ruby2_keywords (0.0.4) ruby_parser (3.15.0) sexp_processor (~> 4.9) rubyntlm (0.6.2) @@ -1169,7 +1185,7 @@ GEM selenium-webdriver (3.142.7) childprocess (>= 0.5, < 4.0) rubyzip (>= 1.2.2) - sentry-raven (3.0.4) + sentry-raven (3.1.2) faraday (>= 1.0) settingslogic (2.0.9) sexp_processor (4.15.1) @@ -1200,10 +1216,11 @@ GEM slack-messenger (2.3.4) snowplow-tracker (0.6.1) contracts (~> 0.7, <= 0.11) - solargraph (0.40.4) - backport (~> 1.1) + solargraph (0.42.3) + backport (~> 1.2) benchmark bundler (>= 1.17.2) + diff-lcs (~> 1.4) e2mmap jaro_winkler (~> 1.5) kramdown (~> 2.3) @@ -1255,8 +1272,8 @@ GEM terser (1.0.2) execjs (>= 0.3.0, < 3) test-prof (0.12.0) - test_file_finder (0.1.3) - faraday (~> 1.0.1) + test_file_finder (0.1.4) + faraday (~> 1.0) text (1.3.1) thin (1.8.0) daemons (~> 1.0, >= 1.0.9) @@ -1305,8 +1322,8 @@ GEM tty-screen (~> 0.8) wisper (~> 2.0) tty-screen (0.8.1) - tzinfo (1.2.9) - thread_safe (~> 0.1) + tzinfo (2.0.4) + concurrent-ruby (~> 1.0) u2f (0.2.1) uber (0.1.0) unf (0.1.4) @@ -1314,12 +1331,6 @@ GEM unf_ext (0.0.7.7) unicode-display_width (1.7.0) unicode_utils (1.4.0) - unicorn (5.5.5) - kgio (~> 2.6) - raindrops (~> 0.7) - unicorn-worker-killer (0.4.4) - get_process_mem (~> 0) - unicorn (>= 4, < 6) uniform_notifier (1.13.0) unleash (0.1.5) murmurhash3 (~> 0.1.6) @@ -1456,9 +1467,9 @@ DEPENDENCIES faraday_middleware-aws-sigv4 (~> 0.3.0) fast_blank ffaker (~> 2.10) - flipper (~> 0.17.1) - flipper-active_record (~> 0.17.1) - flipper-active_support_cache_store (~> 0.17.1) + flipper (~> 0.21.0) + flipper-active_record (~> 0.21.0) + flipper-active_support_cache_store (~> 0.21.0) flowdock (~> 0.7) fog-aliyun (~> 0.3) fog-aws (~> 3.9) @@ -1475,23 +1486,24 @@ DEPENDENCIES gitaly (~> 13.12.0.pre.rc1) github-markup (~> 1.7.0) gitlab-chronic (~> 0.10.5) - gitlab-dangerfiles (~> 2.0.0) + gitlab-dangerfiles (~> 2.1.2) gitlab-experiment (~> 0.5.4) - gitlab-fog-azure-rm (~> 1.0.1) + gitlab-fog-azure-rm (~> 1.1.1) gitlab-fog-google (~> 1.13) - gitlab-labkit (~> 0.16.2) + gitlab-labkit (~> 0.18.0) gitlab-license (~> 1.5) gitlab-mail_room (~> 0.0.9) gitlab-markup (~> 1.7.1) gitlab-net-dns (~> 0.9.1) gitlab-omniauth-openid-connect (~> 0.4.0) + gitlab-pg_query (~> 2.0.4) gitlab-sidekiq-fetcher (= 0.5.6) gitlab-styles (~> 6.2.0) gitlab_chronic_duration (~> 0.10.6.2) gitlab_omniauth-ldap (~> 2.1.1) gon (~> 6.4.0) google-api-client (~> 0.33) - google-protobuf (~> 3.14.0) + google-protobuf (~> 3.17.1) gpgme (~> 2.0.19) grape (~> 1.5.2) grape-entity (~> 0.9.0) @@ -1522,6 +1534,7 @@ DEPENDENCIES json_schemer (~> 0.2.12) jwt (~> 2.1.0) kaminari (~> 1.0) + kas-grpc (~> 0.0.2) knapsack (~> 1.21.1) kramdown (~> 2.3.1) kubeclient (~> 4.9.1) @@ -1572,14 +1585,13 @@ DEPENDENCIES parslet (~> 1.8) peek (~> 1.1) pg (~> 1.1) - pg_query (~> 1.3.0) png_quantizator (~> 0.2.1) premailer-rails (~> 1.10.3) prometheus-client-mmap (~> 0.12.0) pry-byebug pry-rails (~> 0.3.9) pry-shell (~> 0.4.0) - puma (~> 5.1.1) + puma (~> 5.3.1) puma_worker_killer (~> 0.3.1) rack (~> 2.2.3) rack-attack (~> 6.3.0) @@ -1587,11 +1599,10 @@ DEPENDENCIES rack-oauth2 (~> 1.16.0) rack-proxy (~> 0.6.0) rack-timeout (~> 0.5.1) - rails (~> 6.0.3.6) + rails (~> 6.1.3.2) rails-controller-testing rails-i18n (~> 6.0) rainbow (~> 3.0) - raindrops (~> 0.18) rblineprof (~> 0.3.6) rbtrace (~> 0.4) rdoc (~> 6.1.2) @@ -1623,7 +1634,7 @@ DEPENDENCIES sassc-rails (~> 2.1.0) seed-fu (~> 2.3.7) selenium-webdriver (~> 3.142) - sentry-raven (~> 3.0) + sentry-raven (~> 3.1) settingslogic (~> 2.0.9) shoulda-matchers (~> 4.0.1) sidekiq (~> 5.2.7) @@ -1633,7 +1644,7 @@ DEPENDENCIES simplecov-cobertura (~> 1.3.1) slack-messenger (~> 2.3.4) snowplow-tracker (~> 0.6.1) - solargraph (~> 0.40.4) + solargraph (~> 0.42) spamcheck (~> 0.1.0) spring (~> 2.1.0) spring-commands-rspec (~> 1.0.4) @@ -1652,8 +1663,6 @@ DEPENDENCIES truncato (~> 0.7.11) u2f (~> 0.2.1) unf (~> 0.1.4) - unicorn (~> 5.5) - unicorn-worker-killer (~> 0.4.4) unleash (~> 0.1.5) valid_email (~> 0.1) validates_hostname (~> 1.0.11) diff --git a/README.md b/README.md index 103c23f152c..05193e71c7e 100644 --- a/README.md +++ b/README.md @@ -68,9 +68,9 @@ GitLab is an open source project and we are very happy to accept community contr To work on GitLab itself, we recommend setting up your development environment with [the GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit). If you do not use the GitLab Development Kit you need to install and setup all the dependencies yourself, this is a lot of work and error prone. -One small thing you also have to do when installing it yourself is to copy the example development Unicorn configuration file: +One small thing you also have to do when installing it yourself is to copy the example development Puma configuration file: - cp config/unicorn.rb.example.development config/unicorn.rb + cp config/puma.rb.example.development config/puma.rb Instructions on how to start GitLab and how to run the tests can be found in the [getting started section of the GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit#getting-started). @@ -81,8 +81,8 @@ GitLab is a Ruby on Rails application that runs on the following software: - Ubuntu/Debian/CentOS/RHEL/OpenSUSE - Ruby (MRI) 2.7.2 - Git 2.31+ -- Redis 4.0+ -- PostgreSQL 11+ +- Redis 5.0+ +- PostgreSQL 12+ For more information please see the [architecture](https://docs.gitlab.com/ee/development/architecture.html) and [requirements](https://docs.gitlab.com/ee/install/requirements.html) documentation. diff --git a/app/assets/images/aws-cloud-formation.png b/app/assets/images/aws-cloud-formation.png new file mode 100644 index 00000000000..1d078309d86 Binary files /dev/null and b/app/assets/images/aws-cloud-formation.png differ diff --git a/app/assets/images/cluster_app_logos/fluentd.png b/app/assets/images/cluster_app_logos/fluentd.png deleted file mode 100644 index 6d42578f2ce..00000000000 Binary files a/app/assets/images/cluster_app_logos/fluentd.png and /dev/null differ diff --git a/app/assets/images/mailers/in_product_marketing/experience-0.png b/app/assets/images/mailers/in_product_marketing/experience-0.png new file mode 100644 index 00000000000..346204d1db1 Binary files /dev/null and b/app/assets/images/mailers/in_product_marketing/experience-0.png differ diff --git a/app/assets/images/mailers/members/issues.png b/app/assets/images/mailers/members/issues.png new file mode 100644 index 00000000000..b68a0a33d24 Binary files /dev/null and b/app/assets/images/mailers/members/issues.png differ diff --git a/app/assets/images/mailers/members/merge-request-open.png b/app/assets/images/mailers/members/merge-request-open.png new file mode 100644 index 00000000000..2485b0ca970 Binary files /dev/null and b/app/assets/images/mailers/members/merge-request-open.png differ diff --git a/app/assets/images/mailers/members/users.png b/app/assets/images/mailers/members/users.png new file mode 100644 index 00000000000..b3954ecbf61 Binary files /dev/null and b/app/assets/images/mailers/members/users.png differ diff --git a/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_wrapper.vue b/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_wrapper.vue index 5d074698ea4..90c9113e0e1 100644 --- a/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_wrapper.vue +++ b/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_wrapper.vue @@ -2,7 +2,7 @@ import { GlModal, GlTabs, GlTab, GlSearchBoxByType, GlSprintf } from '@gitlab/ui'; import { mapState, mapActions } from 'vuex'; import ReviewTabContainer from '~/add_context_commits_modal/components/review_tab_container.vue'; -import { deprecatedCreateFlash as createFlash } from '~/flash'; +import createFlash from '~/flash'; import { BV_SHOW_MODAL } from '~/lib/utils/constants'; import { s__ } from '~/locale'; import eventHub from '../event_hub'; @@ -192,9 +192,11 @@ export default { window.location.reload(); } if (!values[0] && !values[1]) { - createFlash( - s__('ContextCommits|Failed to create/remove context commits. Please try again.'), - ); + createFlash({ + message: s__( + 'ContextCommits|Failed to create/remove context commits. Please try again.', + ), + }); } }); } else if (this.uniqueCommits.length > 0) { diff --git a/app/assets/javascripts/add_context_commits_modal/store/actions.js b/app/assets/javascripts/add_context_commits_modal/store/actions.js index 7b6f4c81bd2..4e5a2c7b371 100644 --- a/app/assets/javascripts/add_context_commits_modal/store/actions.js +++ b/app/assets/javascripts/add_context_commits_modal/store/actions.js @@ -1,6 +1,6 @@ import _ from 'lodash'; import Api from '~/api'; -import { deprecatedCreateFlash as createFlash } from '~/flash'; +import createFlash from '~/flash'; import axios from '~/lib/utils/axios_utils'; import { s__ } from '~/locale'; import * as types from './mutation_types'; @@ -71,7 +71,9 @@ export const createContextCommits = ({ state }, { commits, forceReload = false } }) .catch(() => { if (forceReload) { - createFlash(s__('ContextCommits|Failed to create context commits. Please try again.')); + createFlash({ + message: s__('ContextCommits|Failed to create context commits. Please try again.'), + }); } return false; @@ -111,7 +113,9 @@ export const removeContextCommits = ({ state }, forceReload = false) => }) .catch(() => { if (forceReload) { - createFlash(s__('ContextCommits|Failed to delete context commits. Please try again.')); + createFlash({ + message: s__('ContextCommits|Failed to delete context commits. Please try again.'), + }); } return false; diff --git a/app/assets/javascripts/admin/statistics_panel/store/actions.js b/app/assets/javascripts/admin/statistics_panel/store/actions.js index 459f11c02f1..77782cdc187 100644 --- a/app/assets/javascripts/admin/statistics_panel/store/actions.js +++ b/app/assets/javascripts/admin/statistics_panel/store/actions.js @@ -1,5 +1,5 @@ import Api from '~/api'; -import { deprecatedCreateFlash as createFlash } from '~/flash'; +import createFlash from '~/flash'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; import { s__ } from '~/locale'; import * as types from './mutation_types'; @@ -21,5 +21,7 @@ export const receiveStatisticsSuccess = ({ commit }, statistics) => export const receiveStatisticsError = ({ commit }, error) => { commit(types.RECEIVE_STATISTICS_ERROR, error); - createFlash(s__('AdminDashboard|Error loading the statistics. Please try again')); + createFlash({ + message: s__('AdminDashboard|Error loading the statistics. Please try again'), + }); }; diff --git a/app/assets/javascripts/admin/users/components/users_table.vue b/app/assets/javascripts/admin/users/components/users_table.vue index 2fd96e38f8e..ede5c26e487 100644 --- a/app/assets/javascripts/admin/users/components/users_table.vue +++ b/app/assets/javascripts/admin/users/components/users_table.vue @@ -2,16 +2,13 @@ import { GlSkeletonLoader, GlTable } from '@gitlab/ui'; import createFlash from '~/flash'; import { convertNodeIdsFromGraphQLIds } from '~/graphql_shared/utils'; +import { thWidthClass } from '~/lib/utils/table_utility'; import { s__, __ } from '~/locale'; import UserDate from '~/vue_shared/components/user_date.vue'; import getUsersGroupCountsQuery from '../graphql/queries/get_users_group_counts.query.graphql'; import UserActions from './user_actions.vue'; import UserAvatar from './user_avatar.vue'; -const DEFAULT_TH_CLASSES = - 'gl-bg-transparent! gl-border-b-solid! gl-border-b-gray-100! gl-p-5! gl-border-b-1!'; -const thWidthClass = (width) => `gl-w-${width}p ${DEFAULT_TH_CLASSES}`; - export default { components: { GlSkeletonLoader, @@ -112,7 +109,7 @@ export default { :empty-text="s__('AdminUsers|No users found')" show-empty stacked="md" - data-qa-selector="user_row_content" + :tbody-tr-attr="{ 'data-qa-selector': 'user_row_content' }" >