From bea6aeeaf67a4ca59760d85d019213879de96aa1 Mon Sep 17 00:00:00 2001 From: Sruthi Chandran Date: Thu, 30 Sep 2021 23:02:18 +0530 Subject: [PATCH] New upstream version 14.1.7+ds1 --- .browserslistrc | 20 +- .eslintignore | 1 + .eslintrc.yml | 4 + .gitignore | 1 - .gitlab/CODEOWNERS | 5 + .gitlab/ci/build-images.gitlab-ci.yml | 43 +- .gitlab/ci/docs.gitlab-ci.yml | 2 +- .gitlab/ci/frontend.gitlab-ci.yml | 50 +- .gitlab/ci/global.gitlab-ci.yml | 40 +- .gitlab/ci/pages.gitlab-ci.yml | 10 +- .gitlab/ci/rails.gitlab-ci.yml | 144 +- .gitlab/ci/reports.gitlab-ci.yml | 34 +- .gitlab/ci/review.gitlab-ci.yml | 88 +- .gitlab/ci/rules.gitlab-ci.yml | 140 +- .gitlab/ci/setup.gitlab-ci.yml | 2 +- .gitlab/issue_templates/Deprecations.md | 50 + .gitlab/issue_templates/Design Sprint.md | 1 + .../issue_templates/Feature Flag Roll Out.md | 11 +- .../Feature Proposal - basic.md | 5 +- ...Geo Replicate a new Git repository type.md | 174 +- .../Geo Replicate a new blob type.md | 176 +- .../Security developer workflow.md | 5 +- .../Snowplow event tracking.md | 2 +- .../merge_request_templates/Documentation.md | 69 +- .../Quarantine End to End Test.md | 2 +- .../Security Release.md | 4 +- .gitpod.yml | 12 +- .markdownlint.yml | 3 + .prettierignore | 1 + .rubocop.yml | 23 + .rubocop_manual_todo.yml | 974 +- .rubocop_todo.yml | 19 +- CHANGELOG.md | 780 +- GITALY_SERVER_VERSION | 2 +- GITLAB_KAS_VERSION | 2 +- GITLAB_PAGES_VERSION | 2 +- Gemfile | 46 +- Gemfile.lock | 124 +- LICENSE | 1 + README.md | 3 +- VERSION | 2 +- app/assets/javascripts/activities.js | 2 +- .../setup_metrics_and_profiling.js | 3 + .../users/components/actions/activate.vue | 31 +- .../users/components/actions/approve.vue | 41 +- .../admin/users/components/actions/ban.vue | 69 + .../admin/users/components/actions/block.vue | 21 +- .../users/components/actions/deactivate.vue | 23 +- .../admin/users/components/actions/index.js | 4 + .../admin/users/components/actions/reject.vue | 51 +- .../admin/users/components/actions/unban.vue | 53 + .../users/components/actions/unblock.vue | 20 +- .../admin/users/components/actions/unlock.vue | 18 +- .../components/modals}/delete_user_modal.vue | 4 +- .../components/modals}/user_modal_manager.vue | 0 .../admin/users/components/user_actions.vue | 117 +- .../javascripts/admin/users/constants.js | 10 +- app/assets/javascripts/admin/users/index.js | 65 +- ...disabled.vue => service_ping_disabled.vue} | 23 +- ... => devops_score_disabled_service_ping.js} | 18 +- .../analytics/shared/components/daterange.vue | 121 + .../shared/components/metric_card.vue | 80 - .../components/projects_dropdown_filter.vue | 241 + .../javascripts/analytics/shared/constants.js | 12 + .../shared/graphql/projects.query.graphql | 22 + .../javascripts/analytics/shared/utils.js | 4 + .../usage_trends/components/usage_counts.vue | 32 +- app/assets/javascripts/api.js | 10 +- app/assets/javascripts/api/analytics_api.js | 19 + app/assets/javascripts/api/constants.js | 1 - app/assets/javascripts/api/groups_api.js | 2 +- app/assets/javascripts/api/projects_api.js | 2 +- app/assets/javascripts/api/user_api.js | 10 +- .../components/manage_two_factor_form.vue | 98 + .../authentication/two_factor_auth/index.js | 31 + app/assets/javascripts/awards_handler.js | 8 +- .../javascripts/badges/components/badge.vue | 2 +- .../badges/components/badge_form.vue | 2 +- .../badges/components/badge_list_row.vue | 2 +- .../batch_comments/components/draft_note.vue | 8 +- .../batch_comments/components/review_bar.vue | 2 +- .../stores/modules/batch_comments/actions.js | 28 +- .../behaviors/markdown/render_mermaid.js | 10 +- .../javascripts/behaviors/preview_markdown.js | 8 +- .../javascripts/blob/balsamiq_viewer.js | 6 +- .../blob/components/blob_content.vue | 6 + .../blob/components/blob_edit_content.vue | 4 +- .../blob/components/blob_header_filepath.vue | 2 +- .../javascripts/blob/csv/csv_viewer.vue | 55 + app/assets/javascripts/blob/csv/index.js | 17 + app/assets/javascripts/blob/csv_viewer.js | 3 + .../blob/file_template_mediator.js | 11 +- app/assets/javascripts/blob/openapi/index.js | 6 +- app/assets/javascripts/blob/utils.js | 4 +- app/assets/javascripts/blob/viewer/index.js | 40 +- app/assets/javascripts/blob_edit/edit_blob.js | 8 +- app/assets/javascripts/boards/boards_util.js | 3 +- .../boards/components/board_blocked_icon.vue | 6 +- .../boards/components/board_card_inner.vue | 131 +- .../boards/components/board_column.vue | 2 +- .../boards/components/board_content.vue | 24 +- .../components/board_content_sidebar.vue | 188 +- .../components/board_filtered_search.vue | 23 +- .../boards/components/board_form.vue | 12 +- .../boards/components/board_list.vue | 31 +- .../components/board_list_deprecated.vue | 4 +- .../boards/components/board_list_header.vue | 35 +- .../boards/components/board_new_issue.vue | 24 +- .../components/board_settings_sidebar.vue | 83 +- .../boards/components/board_sidebar.js | 2 +- .../boards/components/boards_selector.vue | 2 +- .../components/boards_selector_deprecated.vue | 2 +- .../issue_board_filtered_search.vue | 102 + .../boards/components/new_list_dropdown.js | 6 +- .../boards/components/project_select.vue | 2 +- .../components/project_select_deprecated.vue | 2 +- .../sidebar/board_editable_item.vue | 2 +- app/assets/javascripts/boards/constants.js | 5 + .../graphql/issue_set_labels.mutation.graphql | 1 + app/assets/javascripts/boards/index.js | 26 +- .../javascripts/boards/issue_board_filters.js | 47 + .../boards/mixins/sortable_default_options.js | 2 +- app/assets/javascripts/boards/models/list.js | 14 +- .../mount_filtered_search_issue_boards.js | 31 + .../javascripts/boards/stores/actions.js | 29 +- .../javascripts/boards/stores/boards_store.js | 11 +- .../javascripts/boards/stores/getters.js | 2 +- .../javascripts/boards/stores/mutations.js | 18 +- .../components/delete_branch_button.vue | 8 +- .../javascripts/branches/divergence_graph.js | 2 +- .../captcha_modal_axios_interceptor.js | 56 +- .../ci_lint/components/ci_lint.vue | 6 +- .../javascripts/clusters/clusters_bundle.js | 221 +- .../clusters/components/application_row.vue | 478 - .../clusters/components/applications.vue | 662 - .../components/crossplane_provider_stack.vue | 93 - .../components/knative_domain_editor.vue | 232 - .../uninstall_application_button.vue | 36 - ...install_application_confirmation_modal.vue | 101 - .../update_application_confirmation_modal.vue | 66 - app/assets/javascripts/clusters/constants.js | 57 - .../services/application_state_machine.js | 250 - .../clusters/services/clusters_service.js | 26 - .../clusters/stores/clusters_store.js | 207 - .../clusters_list/store/actions.js | 6 +- .../code_quality_walkthrough/utils.js | 3 +- .../commit/pipelines/pipelines_bundle.js | 14 +- .../commit/pipelines/pipelines_table.vue | 20 +- .../javascripts/commit_merge_requests.js | 9 +- app/assets/javascripts/commits.js | 2 +- .../components/project_form_group.vue | 2 +- .../components/content_editor.vue | 31 +- .../components/toolbar_image_button.vue | 110 + .../components/toolbar_link_button.vue | 14 +- .../components/toolbar_table_button.vue | 91 + .../content_editor/components/top_toolbar.vue | 28 + .../components/wrappers/image.vue | 31 + .../content_editor/extensions/hard_break.js | 10 +- .../extensions/horizontal_rule.js | 9 +- .../content_editor/extensions/image.js | 130 +- .../content_editor/extensions/link.js | 33 +- .../content_editor/extensions/table.js | 7 + .../content_editor/extensions/table_cell.js | 9 + .../content_editor/extensions/table_header.js | 9 + .../content_editor/extensions/table_row.js | 51 + .../services/create_content_editor.js | 61 +- .../content_editor/services/upload_file.js | 44 + .../content_editor/services/utils.js | 14 + .../contributors/components/contributors.vue | 36 +- .../contributors/stores/actions.js | 8 +- .../components/gke_machine_type_dropdown.vue | 2 +- .../components/gke_project_id_dropdown.vue | 2 +- .../components/gke_zone_dropdown.vue | 2 +- .../create_cluster/gke_cluster/index.js | 6 +- .../components/custom_metrics_form_fields.vue | 2 +- .../cycle_analytics/components/filter_bar.vue | 142 + .../components/formatted_stage_count.vue | 32 + .../components/path_navigation.vue | 10 +- .../components/value_stream_filters.vue | 93 + .../javascripts/cycle_analytics/constants.js | 1 + .../javascripts/cycle_analytics/index.js | 19 +- .../cycle_analytics/store/actions.js | 62 +- .../cycle_analytics/store/getters.js | 29 + .../cycle_analytics/store/index.js | 2 + .../cycle_analytics/store/mutation_types.js | 4 + .../cycle_analytics/store/mutations.js | 38 +- .../cycle_analytics/store/state.js | 5 + .../javascripts/cycle_analytics/utils.js | 20 + .../deploy_keys/components/app.vue | 18 +- .../design_notes/design_discussion.vue | 2 +- .../components/design_notes/design_note.vue | 6 +- .../components/design_todo_button.vue | 24 +- .../design_management/pages/design/index.vue | 4 +- .../design_management/utils/tracking.js | 8 +- app/assets/javascripts/diff.js | 8 +- .../javascripts/diffs/components/app.vue | 92 +- .../components/collapsed_files_warning.vue | 7 +- .../diffs/components/compare_versions.vue | 21 +- .../diffs/components/diff_content.vue | 38 +- .../diffs/components/diff_file.vue | 89 +- .../diffs/components/diff_file_header.vue | 35 +- .../diffs/components/diff_line_note_form.vue | 5 +- .../javascripts/diffs/components/diff_row.vue | 560 +- .../diffs/components/diff_row_utils.js | 41 +- .../diffs/components/diff_view.vue | 74 +- .../components/inline_diff_table_row.vue | 204 - .../diffs/components/inline_diff_view.vue | 117 - .../components/parallel_diff_table_row.vue | 310 - .../diffs/components/parallel_diff_view.vue | 142 - .../diffs/components/pre_renderer.vue | 84 + .../virtual_scroller_scroll_sync.js | 51 + app/assets/javascripts/diffs/constants.js | 1 - app/assets/javascripts/diffs/index.js | 3 - app/assets/javascripts/diffs/store/actions.js | 60 +- app/assets/javascripts/diffs/store/getters.js | 6 +- .../diffs/store/getters_versions_dropdowns.js | 3 +- app/assets/javascripts/diffs/store/utils.js | 10 +- app/assets/javascripts/editor/constants.js | 7 +- .../extensions/editor_file_template_ext.js | 8 - ..._ext.js => source_editor_ci_schema_ext.js} | 4 +- ...ase.js => source_editor_extension_base.js} | 10 +- .../source_editor_file_template_ext.js | 8 + ...n_ext.js => source_editor_markdown_ext.js} | 4 +- ...ide_ext.js => source_editor_webide_ext.js} | 4 +- .../{editor_lite.js => source_editor.js} | 42 +- .../emoji/components/emoji_group.vue | 1 + .../environments/components/deploy_board.vue | 2 +- .../components/environment_actions.vue | 2 +- .../components/environment_item.vue | 16 +- .../components/environments_app.vue | 8 +- .../components/environments_table.vue | 6 +- .../environments/mixins/environments_mixin.js | 19 +- .../components/stacktrace_entry.vue | 2 +- .../error_tracking_settings/store/actions.js | 1 - .../configure_feature_flags_modal.vue | 1 + .../components/edit_feature_flag.vue | 37 - .../components/feature_flags.vue | 7 +- .../components/feature_flags_table.vue | 68 +- .../feature_flags/components/form.vue | 428 +- .../components/new_environments_dropdown.vue | 2 +- .../components/new_feature_flag.vue | 40 +- .../strategies/gitlab_user_list.vue | 2 +- app/assets/javascripts/feature_flags/edit.js | 7 - .../feature_flags/store/edit/actions.js | 10 +- .../feature_flags/store/edit/mutations.js | 3 +- .../feature_flags/store/helpers.js | 149 +- .../feature_flags/store/index/mutations.js | 7 +- .../feature_flags/store/new/actions.js | 10 +- .../feature_highlight_helper.js | 8 +- .../add_extra_tokens_for_merge_requests.js | 13 +- .../available_dropdown_mappings.js | 2 + .../filtered_search/dropdown_ajax_filter.js | 2 +- .../filtered_search/dropdown_emoji.js | 2 +- .../filtered_search/dropdown_non_user.js | 2 +- .../filtered_search_manager.js | 5 +- .../filtered_search_visual_tokens.js | 5 +- .../filtered_search/visual_token_value.js | 14 +- app/assets/javascripts/flash.js | 27 - app/assets/javascripts/fly_out_nav.js | 11 +- .../components/frequent_items_list_item.vue | 32 +- .../frequent_items/store/actions.js | 3 +- app/assets/javascripts/gfm_auto_complete.js | 33 +- app/assets/javascripts/gpg_badges.js | 5 +- .../grafana_integration/store/actions.js | 1 - .../javascripts/graphql_shared/constants.js | 13 +- .../javascripts/graphql_shared/utils.js | 5 - app/assets/javascripts/group.js | 12 +- .../javascripts/group_label_subscription.js | 14 +- .../components/shared_runners_form.vue | 2 +- .../javascripts/groups/components/app.vue | 10 +- .../groups/components/group_item.vue | 34 +- .../javascripts/groups/components/groups.vue | 2 +- .../groups/components/item_stats.vue | 2 +- .../groups/groups_filterable_list.js | 9 +- .../ide/components/error_message.vue | 2 +- app/assets/javascripts/ide/components/ide.vue | 1 - .../ide/components/ide_project_header.vue | 12 +- .../javascripts/ide/components/jobs/stage.vue | 2 +- .../ide/components/merge_requests/item.vue | 2 +- .../ide/components/new_dropdown/modal.vue | 3 - .../ide/components/preview/navigator.vue | 6 +- .../ide/components/repo_editor.vue | 27 +- .../ide/components/shared/tokened_input.vue | 2 +- .../ide/components/terminal/terminal.vue | 2 +- app/assets/javascripts/ide/ide_router.js | 15 +- .../javascripts/ide/lib/diff/controller.js | 3 +- app/assets/javascripts/ide/services/index.js | 2 +- app/assets/javascripts/ide/stores/actions.js | 32 +- .../ide/stores/actions/merge_request.js | 3 - .../javascripts/ide/stores/actions/project.js | 21 +- .../ide/stores/modules/clientside/actions.js | 2 +- .../ide/stores/modules/commit/actions.js | 8 +- app/assets/javascripts/ide/stores/utils.js | 4 +- .../components/group_dropdown.vue | 40 + .../import_groups/components/import_table.vue | 7 +- .../components/import_table_row.vue | 26 +- .../components/import_projects_table.vue | 14 +- .../components/provider_repo_table_row.vue | 62 +- .../import_entities/import_projects/index.js | 2 +- .../incidents_settings_service.js | 1 - .../edit/components/jira_issues_fields.vue | 42 +- .../components/invite_members_modal.vue | 79 +- .../components/members_token_select.vue | 24 +- .../javascripts/invite_members/constants.js | 6 + .../utils/response_message_parser.js | 65 + .../issuable/components/issuable_by_email.vue | 4 +- .../components/status_select.vue | 58 + .../issuable_bulk_update_sidebar/constants.js | 17 + .../init_issue_status_select.js | 17 + .../issuable_bulk_update_actions.js | 10 +- .../issuable_bulk_update_sidebar.js | 13 +- .../issuable_init_bulk_update_sidebar.js | 0 .../subscription_select.js | 2 +- app/assets/javascripts/issuable_context.js | 30 +- .../components/issuable_form.vue | 21 +- app/assets/javascripts/issuable_index.js | 2 +- .../components/issuable_list_root.vue | 2 +- .../components/issuable_show_root.vue | 6 +- .../components/issuable_sidebar_root.vue | 23 +- .../javascripts/issuable_sidebar/constants.js | 1 + app/assets/javascripts/issue.js | 12 +- .../graphql/queries/get_alert.graphql | 1 + .../queries/update_issue.mutation.graphql | 4 + .../javascripts/issue_show/services/index.js | 2 - app/assets/javascripts/issue_status_select.js | 27 - .../components/issuables_list_app.vue | 22 +- .../components/issue_card_time_info.vue | 2 +- .../components/issues_list_app.vue | 208 +- .../javascripts/issues_list/constants.js | 235 +- app/assets/javascripts/issues_list/index.js | 12 +- .../queries/get_issues.query.graphql | 2 +- .../queries/get_issues_count.query.graphql | 26 + .../queries/issue.fragment.graphql | 2 +- .../queries/search_iterations.query.graphql | 10 + .../queries/search_labels.query.graphql | 12 + .../queries/search_milestones.query.graphql | 10 + .../queries/search_users.query.graphql | 14 + app/assets/javascripts/issues_list/utils.js | 54 +- .../branches/components/project_dropdown.vue | 95 + .../components/source_branch_dropdown.vue | 134 + .../jira_connect/branches/constants.js | 2 + .../graphql/queries/get_project.query.graphql | 17 + .../queries/get_projects.query.graphql | 34 + .../jira_connect/components/groups_list.vue | 1 + .../components/jira_import_form.vue | 4 +- .../jobs/components/empty_state.vue | 11 +- .../javascripts/jobs/components/job_app.vue | 6 - .../components/log/collapsible_section.vue | 33 +- .../jobs/components/log/line_number.vue | 6 +- .../jobs/components/manual_variables_form.vue | 39 +- .../sidebar_job_details_container.vue | 2 +- app/assets/javascripts/jobs/constants.js | 2 + app/assets/javascripts/jobs/index.js | 2 - app/assets/javascripts/jobs/store/actions.js | 24 +- .../javascripts/jobs/store/mutations.js | 28 +- app/assets/javascripts/jobs/store/state.js | 3 + app/assets/javascripts/jobs/store/utils.js | 75 +- app/assets/javascripts/jobs/utils.js | 6 +- app/assets/javascripts/label_manager.js | 12 +- app/assets/javascripts/labels_select.js | 16 +- app/assets/javascripts/lib/dompurify.js | 11 + app/assets/javascripts/lib/graphql.js | 52 +- .../javascripts/lib/utils/axios_utils.js | 3 + .../javascripts/lib/utils/common_utils.js | 139 +- app/assets/javascripts/lib/utils/constants.js | 1 + .../lib/utils/datetime/timeago_utility.js | 47 +- .../lib/utils/finite_state_machine.js | 101 + .../javascripts/lib/utils/text_utility.js | 58 + .../javascripts/lib/utils/url_utility.js | 76 +- app/assets/javascripts/line_highlighter.js | 4 +- app/assets/javascripts/locale/index.js | 47 +- .../logs/components/environment_logs.vue | 8 +- .../tokens/token_with_loading_state.vue | 2 +- app/assets/javascripts/main.js | 9 +- .../action_buttons/user_action_buttons.vue | 1 + .../javascripts/members/components/app.vue | 7 +- .../members_filtered_search_bar.vue | 20 +- .../members/components/members_tabs.vue | 45 +- .../components/table/members_table.vue | 19 +- app/assets/javascripts/members/constants.js | 9 +- app/assets/javascripts/members/utils.js | 4 +- .../components/diff_file_editor.vue | 12 +- .../merge_conflict_resolver_app.vue | 2 +- app/assets/javascripts/merge_request.js | 8 - app/assets/javascripts/merge_request_tabs.js | 28 +- app/assets/javascripts/milestone.js | 8 +- app/assets/javascripts/milestone_select.js | 17 +- .../components/milestone_combobox.vue | 4 +- .../javascripts/milestones/milestone_utils.js | 32 + .../javascripts/mirrors/mirror_repos.js | 8 +- app/assets/javascripts/mirrors/ssh_mirror.js | 6 +- .../monitoring/components/alert_widget.vue | 2 +- .../components/charts/time_series.vue | 20 +- .../components/dashboard_actions_menu.vue | 34 +- .../components/dashboard_header.vue | 2 +- .../monitoring/components/dashboard_panel.vue | 2 +- .../components/duplicate_dashboard_modal.vue | 2 +- .../monitoring/components/graph_group.vue | 2 +- .../javascripts/namespaces/leave_by_url.js | 12 +- .../nav/components/top_nav_dropdown_menu.vue | 4 +- .../nav/components/top_nav_menu_item.vue | 2 +- .../nav/components/top_nav_menu_sections.vue | 2 +- .../javascripts/notebook/cells/markdown.vue | 60 +- app/assets/javascripts/notes.js | 5 +- .../notes/components/comment_form.vue | 8 +- .../notes/components/discussion_notes.vue | 25 +- .../notes/components/note_actions.vue | 8 +- .../notes/components/note_awards_list.vue | 8 +- .../notes/components/note_header.vue | 1 + .../notes/components/noteable_discussion.vue | 14 +- .../notes/components/noteable_note.vue | 22 +- .../notes/components/notes_app.vue | 13 +- .../javascripts/notes/mixins/resolvable.js | 7 +- .../javascripts/notes/stores/actions.js | 84 +- .../javascripts/notes/stores/getters.js | 2 +- app/assets/javascripts/notes/utils.js | 7 + .../components/custom_notifications_modal.vue | 6 +- .../components/notifications_dropdown.vue | 2 +- .../operation_settings/store/actions.js | 1 - .../packages/details/components/app.vue | 4 +- .../javascripts/packages/list/constants.js | 8 + .../javascripts/packages/shared/constants.js | 2 + .../javascripts/packages/shared/utils.js | 4 + .../components/details/app.vue | 301 + .../package_registry/pages/details.js | 26 + .../group/components/group_settings_app.vue | 2 +- .../settings/group/constants.js | 8 +- .../project/components/settings_form.vue | 8 +- .../settings/project/utils.js | 7 +- app/assets/javascripts/pager.js | 3 +- .../pages/admin/abuse_reports/index.js | 2 +- .../metrics_and_profiling/index.js | 2 +- .../metrics_and_profiling/usage_statistics.js | 41 + .../application_settings/payload_previewer.js | 6 +- .../broadcast_messages/broadcast_message.js | 11 +- .../pages/admin/broadcast_messages/index.js | 6 +- .../pages/admin/clusters/destroy/index.js | 4 +- .../pages/admin/clusters/edit/index.js | 4 +- .../javascripts/pages/admin/clusters/index.js | 4 +- .../pages/admin/clusters/index/index.js | 8 +- .../pages/admin/clusters/new/index.js | 4 +- .../pages/admin/clusters/show/index.js | 8 +- .../pages/admin/dev_ops_report/index.js | 4 +- .../pages/admin/identities/index.js | 6 + .../pages/admin/impersonation_tokens/index.js | 5 + .../pages/admin/integrations/edit/index.js | 6 +- .../pages/admin/jobs/index/index.js | 6 +- .../javascripts/pages/admin/keys/index.js | 4 +- .../pages/admin/labels/index/index.js | 6 +- .../index/components/delete_project_modal.vue | 2 +- .../pages/admin/projects/index/index.js | 8 +- .../pages/admin/spam_logs/index.js | 2 +- .../javascripts/pages/admin/users/index.js | 67 +- .../pages/admin/users/keys/index.js | 5 - .../pages/dashboard/groups/index/index.js | 4 +- .../pages/dashboard/milestones/show/index.js | 8 +- .../pages/dashboard/todos/index/todos.js | 12 +- .../pages/explore/projects/index.js | 4 +- .../pages/groups/clusters/destroy/index.js | 4 +- .../pages/groups/clusters/edit/index.js | 4 +- .../pages/groups/clusters/index.js | 6 +- .../pages/groups/clusters/new/index.js | 4 +- .../pages/groups/clusters/show/index.js | 6 +- .../javascripts/pages/groups/issues/index.js | 2 +- .../pages/groups/merge_requests/index.js | 2 +- .../pages/groups/milestones/show/index.js | 6 +- .../pages/groups/new/group_path_validator.js | 21 +- .../components/delete_milestone_modal.vue | 14 +- .../profiles/notifications/show/index.js | 4 +- .../pages/profiles/two_factor_auths/index.js | 4 +- .../pages/projects/artifacts/browse/index.js | 6 +- .../pages/projects/artifacts/file/index.js | 6 +- .../pages/projects/clusters/destroy/index.js | 4 +- .../pages/projects/clusters/edit/index.js | 4 +- .../pages/projects/clusters/index.js | 4 +- .../pages/projects/clusters/show/index.js | 10 +- .../pages/projects/commit/show/index.js | 4 +- .../forks/new/components/fork_form.vue | 14 +- .../new/components/fork_groups_list_item.vue | 2 +- .../javascripts/pages/projects/index.js | 2 + .../labels/components/promote_label_modal.vue | 43 +- .../merge_requests/conflicts/index.js | 6 +- .../merge_requests/creations/new/compare.js | 2 +- .../creations/new/compare_autocomplete.js | 8 +- .../pages/projects/new/components/app.vue | 26 +- .../projects/packages/packages/show/index.js | 14 +- .../pipeline_schedules/create/index.js | 2 +- .../projects/pipeline_schedules/edit/index.js | 2 +- .../projects/pipeline_schedules/new/index.js | 2 +- .../pipeline_schedules/update/index.js | 2 +- .../javascripts/pages/projects/project.js | 8 +- .../projects/security/configuration/index.js | 4 +- .../projects/settings/ci_cd/show/index.js | 2 + .../permissions/components/settings_panel.vue | 12 +- .../pages/registrations/new/index.js | 8 +- .../javascripts/pages/sessions/new/index.js | 2 + .../pages/sessions/new/username_validator.js | 8 +- .../shared/wikis/components/wiki_form.vue | 18 +- .../javascripts/pages/shared/wikis/index.js | 6 +- .../pages/users/activity_calendar.js | 8 +- .../javascripts/pages/users/user_tabs.js | 4 +- .../javascripts/performance/constants.js | 4 +- .../components/detailed_metric.vue | 9 +- .../javascripts/persistent_user_callout.js | 14 +- .../components/commit/commit_form.vue | 1 + .../editor/ci_config_merged_preview.vue | 6 +- .../components/editor/ci_editor_header.vue | 38 + .../components/editor/text_editor.vue | 10 +- .../components/file_nav/branch_switcher.vue | 8 + .../components/header/pipeline_status.vue | 1 + .../components/header/validation_segment.vue | 2 +- .../components/pipeline_editor_tabs.vue | 3 + .../javascripts/pipeline_editor/constants.js | 10 + .../update_commit_sha.mutation.graphql | 3 + .../graphql/queries/blob_content.graphql | 12 +- .../graphql/queries/ci_config.graphql | 4 +- .../queries/latest_commit_sha.query.graphql | 12 + .../pipeline_editor/graphql/resolvers.js | 24 +- .../pipeline_editor/pipeline_editor_app.vue | 110 +- .../javascripts/pipeline_new/constants.js | 4 +- .../components/graph/graph_component.vue | 12 +- .../graph/graph_component_wrapper.vue | 4 +- .../components/graph/linked_pipeline.vue | 2 +- .../graph/linked_pipelines_column.vue | 2 +- .../graph/stage_column_component.vue | 40 +- .../components/graph_shared/drawing_utils.js | 6 +- .../jobs_shared/action_component.vue | 2 +- .../pipelines/components/parsing_utils.js | 17 +- .../components/pipeline_graph/job_pill.vue | 28 +- .../pipeline_graph/pipeline_graph.vue | 51 +- .../{stage_pill.vue => stage_name.vue} | 17 +- .../components/pipelines_list/empty_state.vue | 64 +- .../pipelines_list/pipeline_multi_actions.vue | 2 +- .../pipelines_list/pipeline_stage.vue | 8 +- .../pipelines_list/pipeline_url.vue | 23 +- .../components/pipelines_list/pipelines.vue | 2 +- .../pipelines_list/pipelines_artifacts.vue | 2 +- .../pipelines_list/pipelines_ci_templates.vue | 46 +- .../tokens/pipeline_branch_name_token.vue | 2 +- .../tokens/pipeline_tag_name_token.vue | 2 +- .../tokens/pipeline_trigger_author_token.vue | 2 +- app/assets/javascripts/pipelines/constants.js | 3 - .../mixins/graph_pipeline_bundle_mixin.js | 14 +- .../pipelines/pipeline_details_bundle.js | 10 +- .../pipelines/pipeline_details_mediator.js | 6 +- .../pipelines/pipeline_shared_client.js | 1 + .../javascripts/pipelines/pipelines_index.js | 4 +- .../components/profile_preferences.vue | 3 +- app/assets/javascripts/profile/profile.js | 13 +- app/assets/javascripts/project_find_file.js | 8 +- .../javascripts/project_label_subscription.js | 8 +- .../commit/components/branches_dropdown.vue | 2 +- .../commits/components/author_select.vue | 5 +- .../components/project_delete_button.vue | 4 - .../charts/components/pipeline_charts.vue | 10 + .../javascripts/projects/project_new.js | 21 +- .../components/shared_runners_toggle.vue | 59 +- .../settings/mount_shared_runners_toggle.js | 8 +- .../components/service_desk_root.vue | 7 +- .../components/service_desk_setting.vue | 2 +- .../components/terraform_notification.vue | 65 + .../projects/terraform_notification/index.js | 18 + .../commit_pipeline_status_component.vue | 6 +- .../protected_branch_create.js | 8 +- .../protected_tags/protected_tag_edit.js | 6 +- app/assets/javascripts/ref/constants.js | 3 +- .../components/list_page/cleanup_status.vue | 71 + .../components/list_page/image_list_row.vue | 37 +- .../registry/explorer/constants/details.js | 4 + .../components/related_issues_list.vue | 9 +- .../components/related_merge_requests.vue | 2 +- .../releases/components/app_edit_new.vue | 3 +- .../releases/components/app_index.vue | 2 +- .../components/app_index_apollo_client.vue | 6 +- .../fragments/release.fragment.graphql | 14 + .../release_for_editing.fragment.graphql | 1 + .../queries/all_releases.query.graphql | 9 + .../stores/modules/edit_new/actions.js | 1 + .../reports/components/issue_body.js | 9 + .../reports/components/report_item.vue | 21 +- app/assets/javascripts/reports/constants.js | 1 + ...blob_replace.vue => blob_button_group.vue} | 47 +- .../components/blob_content_viewer.vue | 67 +- .../{blob_header_edit.vue => blob_edit.vue} | 0 .../blob_viewers/download_viewer.vue | 51 + .../components/blob_viewers/empty_viewer.vue | 3 + .../components/blob_viewers/index.js | 27 + .../components/blob_viewers/text_viewer.vue | 25 + .../components/delete_blob_modal.vue | 151 + .../repository/components/table/index.vue | 2 +- .../repository/components/table/row.vue | 2 + .../repository/components/tree_content.vue | 25 +- .../components/upload_blob_modal.vue | 12 +- .../javascripts/repository/constants.js | 8 +- .../queries/blob_info.query.graphql | 5 +- .../queries/commit.fragment.graphql | 1 + app/assets/javascripts/right_sidebar.js | 40 +- .../components/cells/runner_actions_cell.vue | 21 +- .../components/cells/runner_type_cell.vue | 4 +- .../components/helpers/masked_value.vue | 60 + .../components/runner_filtered_search_bar.vue | 141 +- .../runner/components/runner_list.vue | 36 +- .../components/runner_manual_setup_help.vue | 6 +- .../runner_registration_token_reset.vue | 10 +- .../runner/components/runner_tag.vue | 27 + .../runner/components/runner_tags.vue | 13 +- .../runner/components/runner_type_help.vue | 4 +- .../runner/components/runner_update_form.vue | 67 +- .../components/search_tokens/tag_token.vue | 91 + app/assets/javascripts/runner/constants.js | 9 +- .../runner/graphql/get_runner.query.graphql | 2 +- .../runner/graphql/get_runners.query.graphql | 6 +- ...graphql => runner_delete.mutation.graphql} | 0 .../graphql/runner_details.fragment.graphql | 13 +- .../runner_details_shared.fragment.graphql | 12 + .../graphql/runner_node.fragment.graphql | 2 + .../graphql/runner_update.mutation.graphql | 2 +- .../runner_details/runner_details_app.vue | 34 +- .../runner_update_form_utils.js | 38 + .../javascripts/runner/runner_list/index.js | 3 +- .../runner/runner_list/runner_list_app.vue | 35 +- .../runner/runner_list/runner_search_utils.js | 17 +- app/assets/javascripts/runner/sentry_utils.js | 20 + .../javascripts/search/store/actions.js | 45 +- .../javascripts/search/store/constants.js | 7 + .../javascripts/search/store/getters.js | 9 + app/assets/javascripts/search/store/index.js | 2 + .../search/store/mutation_types.js | 2 + .../javascripts/search/store/mutations.js | 3 + app/assets/javascripts/search/store/state.js | 6 + app/assets/javascripts/search/store/utils.js | 80 + .../search/topbar/components/group_filter.vue | 12 +- .../topbar/components/project_filter.vue | 12 +- .../topbar/components/searchable_dropdown.vue | 41 +- .../components/searchable_dropdown_item.vue | 8 +- app/assets/javascripts/search_autocomplete.js | 10 +- .../javascripts/search_autocomplete_utils.js | 19 + .../components/auto_dev_ops_alert.vue | 41 + .../components/configuration_table.vue | 2 + .../components/constants.js | 58 +- .../components/feature_card.vue | 3 +- .../components/redesigned_app.vue | 82 +- .../components/section_layout.vue | 6 +- ...onfigure_secret_detection.mutation.graphql | 6 + .../security_configuration/index.js | 81 +- .../security_configuration/utils.js | 4 +- .../components/self_monitor_form.vue | 2 +- app/assets/javascripts/sentry/index.js | 1 + .../javascripts/sentry/sentry_config.js | 4 +- ...ing_consent.js => service_ping_consent.js} | 15 +- .../components/assignees/assignee_title.vue | 2 +- .../assignees/sidebar_assignees.vue | 6 +- .../assignees/sidebar_assignees_widget.vue | 22 +- .../assignees/user_name_with_status.vue | 23 +- .../sidebar_confidentiality_widget.vue | 6 +- .../components/date/sidebar_date_widget.vue | 22 +- .../components/lock/edit_form_buttons.vue | 6 +- .../components/participants/participants.vue | 4 +- .../components/reviewers/reviewer_title.vue | 2 +- .../reviewers/sidebar_reviewers.vue | 6 +- .../components/severity/sidebar_severity.vue | 2 +- .../components/sidebar_dropdown_widget.vue | 44 +- .../components/sidebar_editable_item.vue | 8 +- .../sidebar_subscriptions_widget.vue | 11 +- .../components/time_tracking/report.vue | 4 +- .../components/time_tracking/time_tracker.vue | 2 +- .../todo_toggle/sidebar_todo_widget.vue | 195 + .../sidebar/components/todo_toggle/todo.vue | 2 +- app/assets/javascripts/sidebar/constants.js | 50 +- .../sidebar/lib/sidebar_move_issue.js | 9 +- .../javascripts/sidebar/mount_sidebar.js | 78 +- .../queries/epic_reference.query.graphql | 10 + .../sidebar/queries/epic_todo.query.graphql | 14 + .../sidebar/queries/issue_todo.query.graphql | 14 + .../merge_request_milestone.query.graphql | 14 + .../queries/merge_request_todo.query.graphql | 14 + .../queries/milestone.fragment.graphql | 1 + .../project_issue_milestone.mutation.graphql | 1 + .../queries/project_milestones.query.graphql | 8 +- .../queries/todo_create.mutation.graphql | 9 + .../queries/todo_mark_done.mutation.graphql | 9 + .../queries/updateStatus.mutation.graphql | 3 +- ...e_merge_request_milestone.mutation.graphql | 17 + .../sidebar/services/sidebar_service.js | 3 +- .../javascripts/sidebar/sidebar_mediator.js | 8 +- app/assets/javascripts/smart_interval.js | 29 + .../javascripts/snippets/components/edit.vue | 6 +- .../snippets/components/embed_dropdown.vue | 2 +- .../snippets/components/snippet_blob_edit.vue | 6 +- .../snippets/components/snippet_header.vue | 2 +- .../javascripts/sortable/sortable_config.js | 1 + app/assets/javascripts/star.js | 8 +- .../components/edit_drawer.vue | 2 +- .../static_site_editor/constants.js | 5 +- .../static_site_editor/image_repository.js | 7 +- .../modals/insert_video_modal.vue | 12 +- .../services/submit_content_changes.js | 8 +- app/assets/javascripts/task_list.js | 6 +- .../terraform/components/states_table.vue | 4 +- .../terraform/components/terraform_list.vue | 2 +- app/assets/javascripts/toggle_buttons.js | 6 +- .../token_access/components/token_access.vue | 206 + .../components/token_projects_table.vue | 81 + ...roject_ci_job_token_scope.mutation.graphql | 5 + ...roject_ci_job_token_scope.mutation.graphql | 5 + ...update_ci_job_token_scope.mutation.graphql | 8 + .../get_ci_job_token_scope.query.graphql | 7 + ...ects_with_ci_job_token_scope.query.graphql | 12 + app/assets/javascripts/token_access/index.js | 31 + app/assets/javascripts/tracking/index.js | 21 +- .../user_lists/components/user_lists.vue | 8 +- app/assets/javascripts/user_popovers.js | 1 + app/assets/javascripts/users_select/index.js | 2 +- .../components/artifacts_list.vue | 42 +- .../components/deployment/memory_usage.vue | 2 +- .../components/extensions/base.vue | 2 +- .../components/mr_collapsible_extension.vue | 4 +- .../components/mr_widget_header.vue | 39 +- .../components/mr_widget_pipeline.vue | 4 +- .../states/mr_widget_auto_merge_enabled.vue | 14 +- .../states/mr_widget_auto_merge_failed.vue | 2 +- .../components/states/mr_widget_conflicts.vue | 2 +- .../components/states/mr_widget_merged.vue | 37 +- .../components/states/mr_widget_rebase.vue | 22 +- .../components/states/ready_to_merge.vue | 27 +- .../mr_widget_options.vue | 2 +- .../stores/mr_widget_store.js | 5 +- .../components/sidebar/sidebar_assignees.vue | 6 +- .../components/sidebar/sidebar_status.vue | 4 +- .../vue_shared/components/actions_button.vue | 2 +- .../vue_shared/components/awards_list.vue | 8 +- .../components/blob_viewers/mixins.js | 8 +- .../components/blob_viewers/rich_viewer.vue | 2 +- .../components/blob_viewers/simple_viewer.vue | 6 +- .../components/changed_file_icon.vue | 8 +- .../ci_cd_analytics_area_chart.vue | 29 +- .../ci_cd_analytics_charts.vue | 9 +- .../vue_shared/components/ci_icon.vue | 8 +- .../default.vue | 1 + .../image.vue | 0 .../diff_viewer/viewers/renamed.vue | 2 +- .../components/dismissible_alert.vue | 9 +- .../components/dropdown/dropdown_button.vue | 2 +- .../vue_shared/components/expand_button.vue | 2 +- .../components/file_finder/index.vue | 5 +- .../vue_shared/components/file_icon.vue | 3 +- .../filtered_search_bar/constants.js | 3 + .../filtered_search_utils.js | 26 +- .../tokens/author_token.vue | 16 +- .../filtered_search_bar/tokens/base_token.vue | 77 +- .../tokens/branch_token.vue | 2 +- .../tokens/emoji_token.vue | 2 +- .../filtered_search_bar/tokens/epic_token.vue | 21 +- .../tokens/iteration_token.vue | 20 +- .../tokens/label_token.vue | 14 +- .../tokens/milestone_token.vue | 14 +- .../components/form/form_footer_actions.vue | 1 + .../vue_shared/components/gl_modal_vuex.vue | 4 +- .../vue_shared/components/markdown/field.vue | 14 +- .../markdown/suggestion_diff_header.vue | 5 +- .../markdown/suggestion_diff_row.vue | 8 +- .../components/markdown/suggestions.vue | 7 +- .../components/markdown/toolbar.vue | 2 +- .../components/notes/placeholder_note.vue | 10 +- .../components/notes/system_note.vue | 2 +- .../components/oncall_schedules_list.vue | 10 +- .../paginated_table_with_search_and_tabs.vue | 6 + .../components/project_avatar.stories.js | 30 + .../vue_shared/components/project_avatar.vue | 45 + .../project_selector/project_list_item.vue | 2 +- .../runner_instructions_modal.vue | 2 +- .../vue_shared/components/select2_select.vue | 48 - .../components/sidebar/copyable_field.vue | 18 +- .../components/sidebar/date_picker.vue | 2 +- .../sidebar/issuable_move_dropdown.vue | 2 +- .../dropdown_contents_create_view.vue | 2 +- .../dropdown_contents_labels_view.vue | 14 +- .../labels_select_vue/dropdown_title.vue | 2 +- .../labels_select_vue/store/actions.js | 10 +- .../labels_select_vue/store/mutations.js | 12 + .../dropdown_contents_create_view.vue | 2 +- .../labels_select_widget/dropdown_title.vue | 2 +- .../labels_select_widget/dropdown_value.vue | 43 +- .../graphql/issue_labels.query.graphql | 15 + .../labels_select_root.vue | 24 +- .../labels_select_widget/store/actions.js | 6 +- .../labels_select_widget/store/mutations.js | 12 + .../todo_toggle/todo_button.stories.js | 23 + .../sidebar/todo_toggle/todo_button.vue | 56 + .../components/sidebar/todo_toggle/utils.js | 5 + .../{editor_lite.vue => source_editor.vue} | 8 +- .../vue_shared/components/todo_button.vue | 28 - .../components/user_popover/user_popover.vue | 6 +- .../components/user_select/user_select.vue | 23 +- .../vue_shared/components/web_ide_link.vue | 10 +- .../new_namespace/components/welcome.vue | 14 +- .../new_namespace/new_namespace_page.vue | 12 +- .../vue_shared/plugins/global_toast.js | 2 +- .../components/manage_via_mr.vue | 35 +- .../merge_request_artifact_download.vue | 1 + .../security_report_download_dropdown.vue | 13 +- .../vue_shared/security_reports/constants.js | 1 + .../security_reports/security_reports_app.vue | 2 + .../javascripts/vuex_shared/bindings.js | 6 +- .../javascripts/whats_new/components/app.vue | 2 +- app/assets/stylesheets/application_dark.scss | 4 + app/assets/stylesheets/components/avatar.scss | 13 +- .../components/batch_comments/review_bar.scss | 10 +- app/assets/stylesheets/framework.scss | 4 +- ...r_variant.scss => contextual_sidebar.scss} | 110 +- .../framework/contextual_sidebar_header.scss | 1 + .../contextual_sidebar.scss | 7 - .../contextual_sidebar_base.scss | 386 - app/assets/stylesheets/framework/diffs.scss | 8 +- .../stylesheets/framework/dropdowns.scss | 18 +- app/assets/stylesheets/framework/files.scss | 22 + app/assets/stylesheets/framework/flash.scss | 11 +- app/assets/stylesheets/framework/header.scss | 5 +- app/assets/stylesheets/framework/lists.scss | 6 - .../{editor-lite.scss => source_editor.scss} | 4 +- .../framework/system_messages.scss | 3 +- .../stylesheets/framework/variables.scss | 12 - ...cation_settings_metrics_and_profiling.scss | 2 +- .../stylesheets/page_bundles/boards.scss | 4 + app/assets/stylesheets/page_bundles/ide.scss | 16 +- .../stylesheets/page_bundles/members.scss | 152 - .../page_bundles/merge_requests.scss | 1 + .../stylesheets/page_bundles/milestone.scss | 23 +- .../page_bundles/new_namespace.scss | 5 +- .../stylesheets/page_bundles/pipelines.scss | 6 + app/assets/stylesheets/pages/clusters.scss | 14 + app/assets/stylesheets/pages/commits.scss | 2 + app/assets/stylesheets/pages/issuable.scss | 24 +- .../stylesheets/pages/merge_requests.scss | 10 +- app/assets/stylesheets/pages/notes.scss | 1 + app/assets/stylesheets/snippets.scss | 15 +- .../stylesheets/startup/startup-dark.scss | 1137 +- .../stylesheets/startup/startup-general.scss | 999 +- .../stylesheets/startup/startup-signin.scss | 38 +- app/assets/stylesheets/themes/_dark.scss | 11 + .../stylesheets/themes/theme_helper.scss | 25 +- .../stylesheets/themes/theme_indigo.scss | 2 +- app/assets/stylesheets/utilities.scss | 47 + .../admin/application_settings_controller.rb | 8 +- .../admin/background_migrations_controller.rb | 14 + .../admin/ci/variables_controller.rb | 2 +- app/controllers/admin/cohorts_controller.rb | 6 +- .../admin/integrations_controller.rb | 2 +- app/controllers/admin/runners_controller.rb | 2 +- .../admin/usage_trends_controller.rb | 4 +- app/controllers/admin/users_controller.rb | 9 +- app/controllers/application_controller.rb | 4 - app/controllers/boards/issues_controller.rb | 2 +- app/controllers/chaos_controller.rb | 2 +- .../concerns/authenticates_with_two_factor.rb | 4 +- ...nticates_with_two_factor_for_admin_mode.rb | 2 +- app/controllers/concerns/impersonation.rb | 19 +- app/controllers/concerns/issuable_actions.rb | 7 +- .../metrics/dashboard/prometheus_api_proxy.rb | 2 +- .../concerns/project_unauthorized.rb | 2 +- app/controllers/concerns/redis_tracking.rb | 7 +- app/controllers/concerns/routable_actions.rb | 20 +- app/controllers/concerns/spammable_actions.rb | 35 +- app/controllers/concerns/wiki_actions.rb | 3 +- .../dashboard/milestones_controller.rb | 2 +- app/controllers/dashboard/todos_controller.rb | 1 - .../groups/application_controller.rb | 10 +- app/controllers/groups/boards_controller.rb | 1 + .../clusters/applications_controller.rb | 2 +- .../clusters/integrations_controller.rb | 2 +- app/controllers/groups/clusters_controller.rb | 2 +- .../groups/group_members_controller.rb | 8 - .../groups/milestones_controller.rb | 2 +- app/controllers/groups/runners_controller.rb | 2 +- .../groups/variables_controller.rb | 2 +- app/controllers/help_controller.rb | 2 +- .../import/bulk_imports_controller.rb | 4 +- app/controllers/import/gitea_controller.rb | 6 +- app/controllers/invites_controller.rb | 19 +- .../jira_connect/events_controller.rb | 2 +- app/controllers/metrics_controller.rb | 2 +- .../profiles/gpg_keys_controller.rb | 2 +- app/controllers/profiles/groups_controller.rb | 2 +- .../profiles/passwords_controller.rb | 8 + .../personal_access_tokens_controller.rb | 6 +- .../profiles/two_factor_auths_controller.rb | 11 + .../projects/application_controller.rb | 2 +- .../projects/artifacts_controller.rb | 2 +- app/controllers/projects/blob_controller.rb | 16 +- app/controllers/projects/boards_controller.rb | 1 + .../projects/build_artifacts_controller.rb | 2 +- .../clusters/applications_controller.rb | 2 +- .../clusters/integrations_controller.rb | 2 +- .../projects/clusters_controller.rb | 2 +- app/controllers/projects/commit_controller.rb | 3 +- .../projects/cycle_analytics_controller.rb | 8 +- .../environments/prometheus_api_controller.rb | 2 +- .../projects/feature_flags_controller.rb | 4 - app/controllers/projects/forks_controller.rb | 2 +- app/controllers/projects/graphs_controller.rb | 4 +- .../projects/import/jira_controller.rb | 6 +- app/controllers/projects/issues_controller.rb | 15 +- app/controllers/projects/jobs_controller.rb | 4 + .../projects/mattermosts_controller.rb | 14 +- .../merge_requests/diffs_controller.rb | 14 +- .../projects/merge_requests_controller.rb | 9 +- .../projects/milestones_controller.rb | 2 +- .../projects/pipelines_controller.rb | 19 +- .../projects/project_members_controller.rb | 4 +- .../projects/prometheus/metrics_controller.rb | 6 +- .../projects/releases_controller.rb | 6 - .../projects/repositories_controller.rb | 2 +- .../projects/runners_controller.rb | 16 +- .../projects/service_hook_logs_controller.rb | 15 +- ...ntroller.rb => service_ping_controller.rb} | 4 +- .../projects/services_controller.rb | 18 +- .../settings/access_tokens_controller.rb | 10 +- .../projects/settings/ci_cd_controller.rb | 1 + .../settings/integrations_controller.rb | 2 +- .../packages_and_registries_controller.rb | 7 +- app/controllers/projects/tree_controller.rb | 4 + .../projects/variables_controller.rb | 2 +- app/controllers/projects_controller.rb | 15 +- .../experience_levels_controller.rb | 2 +- .../registrations/invites_controller.rb | 9 - .../registrations/welcome_controller.rb | 2 +- app/controllers/registrations_controller.rb | 1 - .../repositories/git_http_controller.rb | 6 +- app/controllers/search_controller.rb | 11 + app/controllers/uploads_controller.rb | 6 - .../users/unsubscribes_controller.rb | 33 + app/controllers/users_controller.rb | 2 +- app/experiments/application_experiment.rb | 53 +- .../new_project_readme_content_experiment.rb | 30 + .../readme_advanced.md.tt | 90 + .../readme_basic.md.tt | 3 + app/finders/bulk_imports/entities_finder.rb | 35 + app/finders/bulk_imports/imports_finder.rb | 24 + app/finders/ci/pipelines_finder.rb | 11 +- .../ci/pipelines_for_merge_request_finder.rb | 3 +- app/finders/ci/runners_finder.rb | 7 +- app/finders/concerns/merged_at_filter.rb | 20 +- app/finders/container_repositories_finder.rb | 2 - .../environments/environments_finder.rb | 9 + app/finders/members_finder.rb | 5 +- app/finders/merge_requests_finder.rb | 7 + app/finders/milestones_finder.rb | 15 +- .../packages/helm/package_files_finder.rb | 11 +- app/finders/projects_finder.rb | 2 +- app/finders/security/jobs_finder.rb | 4 +- app/finders/security/security_jobs_finder.rb | 2 +- .../prometheus_integration/create.rb | 4 +- .../prometheus_integration_base.rb | 2 +- .../prometheus_integration/reset_token.rb | 2 +- .../prometheus_integration/update.rb | 2 +- .../boards/issues/issue_move_list.rb | 2 - .../ci/job_token_scope/add_project.rb | 49 + .../ci/job_token_scope/remove_project.rb | 49 + app/graphql/mutations/ci/runner/update.rb | 2 + .../concerns/mutations/package_eventable.rb | 2 +- .../concerns/mutations/spam_protection.rb | 19 - app/graphql/mutations/issues/create.rb | 3 +- .../mutations/issues/set_confidential.rb | 8 +- app/graphql/mutations/issues/update.rb | 3 +- app/graphql/mutations/packages/destroy.rb | 37 + .../mutations/release_asset_links/create.rb | 4 + .../base_security_analyzer.rb | 44 + .../ci_configuration/configure_sast.rb | 33 +- .../configure_secret_detection.rb | 33 +- app/graphql/mutations/snippets/create.rb | 10 +- app/graphql/mutations/snippets/update.rb | 10 +- .../get_container_repositories.query.graphql | 2 + .../queries/epic/epic_children.query.graphql | 1 + .../get_pipeline_details.query.graphql | 3 + .../releases/all_releases.query.graphql | 105 + .../alert_management/alert_resolver.rb | 2 +- .../alert_management/integrations_resolver.rb | 4 +- .../resolvers/board_list_issues_resolver.rb | 2 +- app/graphql/resolvers/ci/config_resolver.rb | 8 +- .../resolvers/ci/job_token_scope_resolver.rb | 21 + app/graphql/resolvers/ci/runners_resolver.rb | 16 +- app/graphql/resolvers/ci/template_resolver.rb | 2 +- .../concerns/issue_resolver_arguments.rb | 2 +- app/graphql/resolvers/issues_resolver.rb | 1 + app/graphql/resolvers/milestones_resolver.rb | 20 +- .../projects/jira_projects_resolver.rb | 6 +- .../types/alert_management/alert_sort_enum.rb | 4 +- .../types/alert_management/alert_type.rb | 2 +- .../alert_management/integration_type.rb | 2 +- .../prometheus_integration_type.rb | 10 +- app/graphql/types/base_field.rb | 12 +- .../boards/board_issue_input_base_type.rb | 2 +- app/graphql/types/ci/build_need_type.rb | 2 + app/graphql/types/ci/detailed_status_type.rb | 7 + app/graphql/types/ci/group_type.rb | 8 +- app/graphql/types/ci/job_token_scope_type.rb | 16 + app/graphql/types/ci/job_type.rb | 2 +- app/graphql/types/ci/pipeline_type.rb | 3 + app/graphql/types/ci/runner_type.rb | 36 +- app/graphql/types/ci/stage_type.rb | 20 +- app/graphql/types/ci/status_action_type.rb | 7 + app/graphql/types/deployment_tier_enum.rb | 14 + .../types/design_management/design_type.rb | 2 +- app/graphql/types/group_invitation_type.rb | 2 +- .../types/issuable_searchable_field_enum.rb | 12 + app/graphql/types/issue_sort_enum.rb | 2 + app/graphql/types/issue_type.rb | 5 +- .../issues/negated_issue_filter_input_type.rb | 2 +- app/graphql/types/merge_request_type.rb | 2 +- app/graphql/types/milestone_sort_enum.rb | 13 + app/graphql/types/milestone_type.rb | 3 + app/graphql/types/mutation_type.rb | 3 + app/graphql/types/noteable_type.rb | 23 + app/graphql/types/notes/discussion_type.rb | 10 + ...noteable_type.rb => noteable_interface.rb} | 4 +- app/graphql/types/project_invitation_type.rb | 2 +- app/graphql/types/project_type.rb | 16 +- .../types/projects/service_type_enum.rb | 2 +- app/graphql/types/query_complexity_type.rb | 30 + app/graphql/types/query_type.rb | 8 + app/graphql/types/release_asset_link_type.rb | 2 + app/graphql/types/snippet_type.rb | 2 +- app/graphql/types/snippets/blob_type.rb | 4 + app/graphql/types/user_callout_type.rb | 2 +- app/helpers/admin/user_actions_helper.rb | 17 +- app/helpers/analytics/unique_visits_helper.rb | 30 - app/helpers/application_helper.rb | 2 +- app/helpers/application_settings_helper.rb | 7 + app/helpers/auto_devops_helper.rb | 2 +- app/helpers/blob_helper.rb | 4 +- app/helpers/ci/jobs_helper.rb | 1 - app/helpers/ci/pipeline_editor_helper.rb | 16 +- app/helpers/ci/pipelines_helper.rb | 68 +- app/helpers/ci/variables_helper.rb | 2 +- app/helpers/clusters_helper.rb | 6 +- app/helpers/commits_helper.rb | 8 + app/helpers/custom_metrics_helper.rb | 2 +- app/helpers/diff_helper.rb | 10 +- app/helpers/environments_helper.rb | 2 +- app/helpers/events_helper.rb | 3 +- app/helpers/external_link_helper.rb | 5 +- app/helpers/gitlab_routing_helper.rb | 381 +- app/helpers/groups_helper.rb | 18 +- app/helpers/icons_helper.rb | 2 +- ...vices_helper.rb => integrations_helper.rb} | 117 +- app/helpers/issuables_helper.rb | 9 + app/helpers/issues_helper.rb | 3 - app/helpers/namespaces_helper.rb | 4 - app/helpers/nav/new_dropdown_helper.rb | 15 +- app/helpers/nav/top_nav_helper.rb | 4 +- app/helpers/nav_helper.rb | 6 +- app/helpers/operations_helper.rb | 13 +- app/helpers/packages_helper.rb | 27 +- app/helpers/personal_access_tokens_helper.rb | 7 + .../projects/alert_management_helper.rb | 4 +- app/helpers/projects_helper.rb | 22 +- app/helpers/registrations_helper.rb | 7 - app/helpers/releases_helper.rb | 23 +- app/helpers/routing/artifacts_helper.rb | 49 + app/helpers/routing/graphql_helper.rb | 13 + app/helpers/routing/groups/members_helper.rb | 31 + app/helpers/routing/members_helper.rb | 14 + .../routing/pipeline_schedules_helper.rb | 29 + .../routing/projects/members_helper.rb | 31 + app/helpers/routing/projects_helper.rb | 85 + app/helpers/routing/snippets_helper.rb | 144 + app/helpers/routing/wiki_helper.rb | 13 + app/helpers/search_helper.rb | 21 +- app/helpers/sessions_helper.rb | 9 + app/helpers/sidebars_helper.rb | 76 +- app/helpers/sorting_helper.rb | 21 +- app/helpers/sorting_titles_values_helper.rb | 56 +- app/helpers/tracking_helper.rb | 2 +- app/helpers/user_callouts_helper.rb | 2 +- app/helpers/users_helper.rb | 149 +- app/helpers/whats_new_helper.rb | 6 +- app/mailers/emails/admin_notification.rb | 19 + app/mailers/emails/profile.rb | 8 + app/mailers/emails/service_desk.rb | 8 +- app/mailers/notify.rb | 1 + app/models/ability.rb | 8 + app/models/alert_management/alert.rb | 12 +- .../alert_management/http_integration.rb | 4 - app/models/application_setting.rb | 12 +- app/models/application_setting/term.rb | 5 +- .../application_setting_implementation.rb | 19 + app/models/audit_event.rb | 7 +- app/models/award_emoji.rb | 8 +- app/models/blob.rb | 1 + app/models/blob_viewer/csv.rb | 13 + app/models/blob_viewer/go_mod.rb | 6 +- app/models/blob_viewer/markup.rb | 4 +- app/models/bulk_import.rb | 6 + app/models/bulk_imports/entity.rb | 6 + app/models/bulk_imports/export_status.rb | 2 +- .../bulk_imports/file_transfer/base_config.rb | 6 +- .../file_transfer/group_config.rb | 4 + .../file_transfer/project_config.rb | 4 + app/models/ci/base_model.rb | 17 + app/models/ci/build.rb | 42 +- app/models/ci/build_dependencies.rb | 14 +- app/models/ci/build_metadata.rb | 4 +- app/models/ci/build_trace_chunk.rb | 10 +- app/models/ci/build_trace_chunks/fog.rb | 35 +- app/models/ci/group.rb | 5 + app/models/ci/instance_variable.rb | 2 +- app/models/ci/job_artifact.rb | 8 +- app/models/ci/job_token/project_scope_link.rb | 4 + app/models/ci/pending_build.rb | 42 +- app/models/ci/pipeline.rb | 71 +- app/models/ci/runner.rb | 19 +- app/models/clusters/applications/runner.rb | 2 +- .../clusters/integrations/prometheus.rb | 14 +- app/models/commit_status.rb | 1 + app/models/compare.rb | 4 + .../analytics/cycle_analytics/stage.rb | 4 + app/models/concerns/any_field_validation.rb | 25 + app/models/concerns/approvable_base.rb | 13 + app/models/concerns/atomic_internal_id.rb | 23 +- app/models/concerns/avatarable.rb | 7 +- app/models/concerns/cache_markdown_field.rb | 6 +- .../cascading_namespace_setting_attribute.rb | 13 +- app/models/concerns/ci/maskable.rb | 2 +- app/models/concerns/ci/metadatable.rb | 2 +- app/models/concerns/enums/ci/commit_status.rb | 1 + app/models/concerns/has_integrations.rb | 2 +- .../concerns/integrations/has_web_hook.rb | 36 + app/models/concerns/issuable.rb | 30 +- app/models/concerns/milestoneish.rb | 4 + app/models/concerns/partitioned_table.rb | 6 +- app/models/concerns/sortable.rb | 2 +- app/models/concerns/taggable_queries.rb | 21 + app/models/container_repository.rb | 14 +- app/models/deployment.rb | 2 +- app/models/diff_discussion.rb | 7 + app/models/discussion.rb | 18 + app/models/error_tracking.rb | 7 + app/models/error_tracking/error.rb | 23 + app/models/error_tracking/error_event.rb | 11 + .../project_error_tracking_setting.rb | 2 + app/models/event.rb | 15 +- app/models/event_collection.rb | 1 + app/models/group.rb | 21 +- app/models/hooks/web_hook_log.rb | 2 +- app/models/integration.rb | 113 +- app/models/integrations/bamboo.rb | 6 - app/models/integrations/base_monitoring.rb | 23 + .../integrations/base_slash_commands.rb | 2 +- app/models/integrations/buildkite.rb | 28 +- app/models/integrations/campfire.rb | 32 +- app/models/integrations/confluence.rb | 2 +- app/models/integrations/datadog.rb | 46 +- app/models/integrations/discord.rb | 2 + app/models/integrations/drone_ci.rb | 36 +- app/models/integrations/ewm.rb | 2 +- app/models/integrations/jenkins.rb | 14 +- app/models/integrations/jira.rb | 15 +- .../integrations/mattermost_slash_commands.rb | 2 +- app/models/integrations/mock_ci.rb | 2 +- app/models/integrations/mock_monitoring.rb | 25 + app/models/integrations/packagist.rb | 14 +- app/models/integrations/pipelines_email.rb | 2 +- app/models/integrations/pivotaltracker.rb | 17 +- app/models/integrations/prometheus.rb | 203 + app/models/integrations/teamcity.rb | 15 - app/models/internal_id.rb | 171 +- app/models/issue.rb | 78 +- app/models/member.rb | 135 +- app/models/members/group_member.rb | 6 +- app/models/members/project_member.rb | 8 +- app/models/merge_request.rb | 11 +- app/models/merge_request/cleanup_schedule.rb | 55 +- app/models/merge_request/diff_commit_user.rb | 95 + app/models/merge_request_diff.rb | 2 +- app/models/merge_request_diff_commit.rb | 70 +- app/models/milestone.rb | 13 + app/models/namespace.rb | 10 +- app/models/namespace_setting.rb | 2 +- app/models/namespaces/traversal/linear.rb | 51 +- app/models/namespaces/traversal/recursive.rb | 20 +- app/models/note.rb | 7 + app/models/operations/feature_flag.rb | 2 +- app/models/packages/debian.rb | 4 + app/models/packages/event.rb | 6 +- app/models/packages/go/module.rb | 2 +- app/models/packages/helm.rb | 2 + app/models/packages/nuget.rb | 1 + app/models/packages/package.rb | 8 - app/models/packages/package_file.rb | 2 + app/models/plan.rb | 2 +- app/models/plan_limits.rb | 4 + app/models/project.rb | 171 +- app/models/project_ci_cd_setting.rb | 1 - .../mock_monitoring_service.rb | 23 - .../project_services/monitoring_service.rb | 21 - .../project_services/prometheus_service.rb | 203 - app/models/project_team.rb | 15 +- app/models/repository_language.rb | 4 + app/models/service_desk_setting.rb | 5 +- app/models/timelog.rb | 1 + app/models/user.rb | 24 +- app/models/user_callout.rb | 6 +- app/models/wiki.rb | 36 +- app/models/wiki_page.rb | 1 - app/policies/group_policy.rb | 1 + app/policies/project_policy.rb | 24 +- app/policies/release_policy.rb | 16 + app/policies/releases/link_policy.rb | 2 +- app/presenters/blob_presenter.rb | 4 + app/presenters/ci/build_runner_presenter.rb | 2 +- app/presenters/commit_status_presenter.rb | 3 +- .../dev_ops_report/metric_presenter.rb | 2 +- app/presenters/gitlab/blame_presenter.rb | 2 +- app/presenters/merge_request_presenter.rb | 4 +- .../packages/helm/index_presenter.rb | 53 + .../packages/nuget/presenter_helpers.rb | 3 +- .../packages/nuget/service_index_presenter.rb | 10 +- app/presenters/project_presenter.rb | 4 - app/presenters/search_service_presenter.rb | 2 +- app/presenters/snippet_blob_presenter.rb | 4 + .../analytics/cycle_analytics/stage_entity.rb | 15 + .../merge_request_widget_entity.rb | 2 +- app/serializers/paginated_diff_entity.rb | 27 +- app/serializers/service_event_entity.rb | 12 +- .../alert_management/alerts/update_service.rb | 5 +- app/services/audit_event_service.rb | 7 +- ...ntainer_registry_authentication_service.rb | 20 +- app/services/base_service.rb | 1 + app/services/boards/issues/create_service.rb | 4 +- app/services/branches/create_service.rb | 8 +- .../bulk_create_integration_service.rb | 8 +- .../bulk_imports/file_download_service.rb | 68 +- .../bulk_update_integration_service.rb | 6 +- .../captcha/captcha_verification_service.rb | 25 +- app/services/ci/after_requeue_job_service.rb | 24 +- app/services/ci/append_build_trace_service.rb | 13 + .../ci/create_downstream_pipeline_service.rb | 4 +- app/services/ci/destroy_pipeline_service.rb | 4 +- .../ci/expire_pipeline_cache_service.rb | 2 +- .../ci/job_token_scope/add_project_service.rb | 31 + .../job_token_scope/remove_project_service.rb | 31 + .../calculate_next_run_service.rb | 9 +- app/services/ci/pipelines/add_job_service.rb | 37 + app/services/ci/play_bridge_service.rb | 2 - app/services/ci/play_build_service.rb | 2 - app/services/ci/queue/build_queue_service.rb | 90 + .../ci/queue/builds_table_strategy.rb | 67 + .../ci/queue/pending_builds_strategy.rb | 69 + app/services/ci/register_job_service.rb | 86 +- app/services/ci/retry_build_service.rb | 44 +- app/services/ci/retry_pipeline_service.rb | 16 +- .../alert_management/alert_processing.rb | 2 +- .../job_token_scope/edit_scope_validations.rb | 26 + .../update_repository_storage_methods.rb | 6 +- .../design_management/save_designs_service.rb | 2 +- .../error_tracking/collect_error_service.rb | 38 + app/services/git/base_hooks_service.rb | 2 +- app/services/git/wiki_push_service/change.rb | 3 +- app/services/gpg_keys/create_service.rb | 10 +- app/services/gpg_keys/destroy_service.rb | 2 + .../groups/group_links/create_service.rb | 2 +- .../groups/group_links/destroy_service.rb | 2 +- .../groups/group_links/update_service.rb | 2 +- app/services/groups/transfer_service.rb | 5 + .../incidents/create_service.rb | 12 +- .../incidents/update_severity_service.rb | 38 - app/services/issuable/clone/base_service.rb | 2 +- .../issuable/import_csv/base_service.rb | 5 +- app/services/issuable_base_service.rb | 19 +- app/services/issues/base_service.rb | 2 +- app/services/issues/clone_service.rb | 6 +- app/services/issues/create_service.rb | 25 +- app/services/issues/duplicate_service.rb | 1 + app/services/issues/move_service.rb | 5 +- app/services/issues/update_service.rb | 26 +- app/services/jira/requests/base.rb | 12 +- .../jira/requests/projects/list_service.rb | 4 +- .../destroy_service.rb | 24 + app/services/jira_import/users_importer.rb | 4 +- .../jira_import/users_mapper_service.rb | 8 +- app/services/keys/destroy_service.rb | 12 +- app/services/members/creator_service.rb | 172 + .../members/groups/creator_service.rb | 17 + app/services/members/invite_service.rb | 2 +- .../members/projects/creator_service.rb | 22 + app/services/merge_requests/base_service.rb | 2 +- .../push_options_handler_service.rb | 5 + app/services/merge_requests/rebase_service.rb | 6 - app/services/metrics_service.rb | 2 +- .../namespace_settings/update_service.rb | 25 +- .../in_product_marketing_emails_service.rb | 17 - app/services/notes/post_process_service.rb | 2 +- app/services/notification_service.rb | 5 + app/services/packages/conan/search_service.rb | 2 +- .../packages/destroy_package_service.rb | 33 + .../nuget/metadata_extraction_service.rb | 6 + .../update_package_from_metadata_service.rb | 21 +- app/services/post_receive_service.rb | 10 +- app/services/projects/create_service.rb | 27 +- app/services/projects/destroy_service.rb | 11 + .../projects/group_links/create_service.rb | 7 +- .../projects/group_links/update_service.rb | 20 +- .../lfs_pointers/lfs_download_service.rb | 12 +- .../projects/operations/update_service.rb | 6 +- .../projects/overwrite_project_service.rb | 2 +- .../prometheus/alerts/notify_service.rb | 2 +- .../protect_default_branch_service.rb | 6 +- app/services/projects/transfer_service.rb | 14 +- app/services/projects/update_pages_service.rb | 14 +- .../projects/update_remote_mirror_service.rb | 2 +- app/services/projects/update_service.rb | 2 + app/services/releases/base_service.rb | 11 + app/services/releases/create_service.rb | 10 +- app/services/releases/destroy_service.rb | 2 + app/services/releases/update_service.rb | 2 + .../resource_access_tokens/create_service.rb | 11 +- .../dependency_scanning_create_service.rb | 25 + .../service_ping/build_payload_service.rb | 27 + .../permit_data_categories_service.rb | 34 + app/services/service_ping/submit_service.rb | 94 + app/services/snippets/create_service.rb | 30 +- app/services/snippets/update_service.rb | 29 +- app/services/spam/akismet_service.rb | 1 + app/services/spam/spam_action_service.rb | 96 +- app/services/spam/spam_params.rb | 44 +- app/services/spam/spam_verdict_service.rb | 5 +- app/services/submit_usage_ping_service.rb | 77 - app/services/user_agent_detail_service.rb | 17 +- .../user_project_access_changed_service.rb | 16 +- app/services/web_hook_service.rb | 1 - app/services/wiki_pages/base_service.rb | 2 +- app/services/wiki_pages/create_service.rb | 5 +- app/services/wiki_pages/update_service.rb | 2 +- .../wikis/create_attachment_service.rb | 4 + .../dependency_proxy/file_uploader.rb | 2 +- .../json_schemas/build_metadata_secrets.json | 3 +- .../error_tracking_event_payload.json | 231 + .../application_settings/_ci_cd.html.haml | 2 +- .../application_settings/_gitaly.html.haml | 18 +- .../application_settings/_help_page.html.haml | 6 +- .../_initial_branch_name.html.haml | 2 +- .../_localization.html.haml | 5 + .../application_settings/_mailgun.html.haml | 25 + .../_repository_check.html.haml | 23 +- .../_repository_mirrors_form.html.haml | 7 +- .../_repository_storage.html.haml | 14 +- .../_runner_registrars_form.html.haml | 16 + .../application_settings/_snowplow.html.haml | 15 +- .../_third_party_offers.html.haml | 6 +- .../application_settings/_usage.html.haml | 41 +- .../application_settings/ci/_header.html.haml | 4 +- .../application_settings/ci_cd.html.haml | 12 +- .../application_settings/general.html.haml | 1 + .../integrations.html.haml | 8 +- .../metrics_and_profiling.html.haml | 4 +- .../preferences.html.haml | 13 +- .../application_settings/repository.html.haml | 12 +- .../_migration.html.haml | 9 + .../background_migrations/index.html.haml | 1 + app/views/admin/dashboard/index.html.haml | 5 +- .../admin/dev_ops_report/_callout.html.haml | 2 +- .../admin/dev_ops_report/_report.html.haml | 9 +- app/views/admin/groups/show.html.haml | 6 +- app/views/admin/identities/index.html.haml | 2 + .../impersonation_tokens/index.html.haml | 5 +- app/views/admin/projects/show.html.haml | 21 +- app/views/admin/runners/_runner.html.haml | 10 +- app/views/admin/runners/index.html.haml | 12 +- app/views/admin/users/_approve_user.html.haml | 7 - app/views/admin/users/_ban_user.html.haml | 9 - app/views/admin/users/_block_user.html.haml | 8 - app/views/admin/users/_head.html.haml | 63 +- .../users/_reject_pending_user.html.haml | 7 - .../users/_user_activation_effects.html.haml | 6 - .../users/_user_approve_effects.html.haml | 11 - .../admin/users/_user_detail_note.html.haml | 4 +- .../users/_user_reject_effects.html.haml | 10 - app/views/admin/users/keys.html.haml | 1 + app/views/admin/users/projects.html.haml | 2 + app/views/admin/users/show.html.haml | 129 +- app/views/ci/token_access/_index.html.haml | 1 + app/views/ci/variables/_content.html.haml | 4 +- app/views/ci/variables/_index.html.haml | 6 +- .../ci/variables/_variable_row.html.haml | 2 +- .../clusters/clusters/_applications.html.haml | 1 - .../clusters/_applications_tab.html.haml | 5 - app/views/clusters/clusters/_banner.html.haml | 18 +- .../_multiple_clusters_message.html.haml | 2 +- .../clusters/_provider_details_form.html.haml | 4 +- .../clusters/clusters/aws/_new.html.haml | 8 +- .../clusters/clusters/gcp/_form.html.haml | 4 +- app/views/clusters/clusters/show.html.haml | 17 +- .../clusters/clusters/user/_form.html.haml | 4 +- app/views/dashboard/projects/index.html.haml | 9 - app/views/devise/shared/_signup_box.html.haml | 2 +- .../groups/_delete_project_button.html.haml | 1 + app/views/groups/_home_panel.html.haml | 4 + .../_import_group_from_file_panel.html.haml | 3 +- .../groups/_invite_members_modal.html.haml | 15 +- app/views/groups/_project_badges.html.haml | 2 + app/views/groups/merge_requests.html.haml | 2 +- app/views/groups/milestones/_form.html.haml | 38 +- app/views/groups/projects.html.haml | 5 +- .../groups/runners/_group_runners.html.haml | 35 +- app/views/groups/runners/_runner.html.haml | 8 +- .../{_index.html.haml => _settings.html.haml} | 0 app/views/groups/settings/_advanced.html.haml | 17 +- .../groups/settings/_pages_settings.html.haml | 2 +- app/views/groups/settings/_transfer.html.haml | 22 + .../groups/settings/ci_cd/show.html.haml | 4 +- .../settings/integrations/index.html.haml | 8 +- .../repository/_initial_branch_name.html.haml | 4 +- app/views/groups/show.html.haml | 2 + app/views/help/index.html.haml | 2 +- .../import/gitlab_projects/new.html.haml | 2 +- .../import/shared/_new_project_form.html.haml | 4 +- app/views/layouts/_flash.html.haml | 2 + app/views/layouts/_loading_hints.html.haml | 2 +- app/views/layouts/_page.html.haml | 4 +- app/views/layouts/_search.html.haml | 4 +- app/views/layouts/_snowplow.html.haml | 2 +- app/views/layouts/application.html.haml | 1 - app/views/layouts/devise.html.haml | 25 +- .../layouts/header/_new_dropdown.html.haml | 2 +- .../_registration_enabled_callout.html.haml | 4 +- app/views/layouts/minimal.html.haml | 18 + app/views/layouts/nav/_dashboard.html.haml | 2 +- .../nav/projects_dropdown/_show.html.haml | 21 +- .../layouts/nav/sidebar/_admin.html.haml | 20 +- .../nav/sidebar/_analytics_links.html.haml | 2 +- .../nav/sidebar/_context_menu_body.html.haml | 9 - .../layouts/nav/sidebar/_group.html.haml | 210 +- .../nav/sidebar/_group_menus.html.haml | 166 + .../layouts/nav/sidebar/_profile.html.haml | 7 +- app/views/layouts/welcome.html.haml | 8 - ...cess_token_about_to_expire_email.html.haml | 2 +- ...ccess_token_about_to_expire_email.text.erb | 2 +- .../access_token_expired_email.html.haml | 2 +- .../access_token_expired_email.text.erb | 2 +- .../in_product_marketing_email.html.haml | 2 +- .../notify/send_admin_notification.html.haml | 7 + .../notify/send_admin_notification.text.haml | 6 + .../send_unsubscribed_notification.html.haml | 2 + .../send_unsubscribed_notification.text.haml | 1 + .../notify/user_deactivated_email.html.haml | 17 + .../notify/user_deactivated_email.text.erb | 10 + app/views/profiles/accounts/show.html.haml | 16 +- app/views/profiles/keys/index.html.haml | 4 +- .../personal_access_tokens/index.html.haml | 3 +- app/views/profiles/preferences/show.html.haml | 46 +- app/views/profiles/show.html.haml | 5 +- .../profiles/two_factor_auths/show.html.haml | 16 +- app/views/projects/_export.html.haml | 1 + app/views/projects/_flash_messages.html.haml | 1 + app/views/projects/_home_panel.html.haml | 4 + .../projects/_import_project_pane.html.haml | 2 +- ...> _invite_members_empty_project.html.haml} | 3 +- .../projects/_invite_members_modal.html.haml | 15 +- ...ge_request_merge_checks_settings.html.haml | 2 +- .../projects/_new_project_fields.html.haml | 2 +- app/views/projects/_remove.html.haml | 2 +- .../projects/_terraform_banner.html.haml | 5 + app/views/projects/blame/show.html.haml | 5 +- .../blob/_pipeline_tour_success.html.haml | 2 +- .../projects/blob/viewers/_csv.html.haml | 1 + app/views/projects/branches/new.html.haml | 8 +- .../projects/cycle_analytics/show.html.haml | 2 +- .../projects/default_branch/_show.html.haml | 4 +- app/views/projects/diffs/_warning.html.haml | 11 +- app/views/projects/empty.html.haml | 2 +- .../projects/feature_flags/edit.html.haml | 3 - app/views/projects/forks/error.html.haml | 15 +- app/views/projects/forks/new.html.haml | 2 +- app/views/projects/import/jira/show.html.haml | 2 +- .../_alert_moved_from_service_desk.html.haml | 9 +- app/views/projects/issues/index.html.haml | 2 +- app/views/projects/issues/show.html.haml | 2 +- .../projects/mattermosts/_no_teams.html.haml | 2 +- .../mattermosts/_team_selection.html.haml | 4 +- .../projects/merge_requests/show.html.haml | 2 +- app/views/projects/milestones/_form.html.haml | 40 +- app/views/projects/milestones/show.html.haml | 24 +- .../projects/packages/packages/show.html.haml | 24 +- .../projects/pages/_pages_settings.html.haml | 7 +- .../projects/pipelines/_with_tabs.html.haml | 2 +- app/views/projects/pipelines/index.html.haml | 4 +- .../prometheus/metrics/edit.html.haml | 2 +- .../projects/prometheus/metrics/new.html.haml | 2 +- .../shared/_create_protected_branch.html.haml | 2 +- .../shared/_index.html.haml | 13 +- .../protected_tags/shared/_index.html.haml | 12 +- .../projects/registry/settings/_index.haml | 9 - app/views/projects/releases/index.html.haml | 2 + .../{_index.html.haml => _settings.html.haml} | 0 .../runners/_specific_runners.html.haml | 34 +- .../security/configuration/show.html.haml | 2 + .../settings/access_tokens/index.html.haml | 7 +- .../settings/ci_cd/_autodevops_form.html.haml | 2 +- .../projects/settings/ci_cd/_form.html.haml | 12 +- .../projects/settings/ci_cd/show.html.haml | 22 +- .../settings/operations/show.html.haml | 7 +- .../experience_levels/show.html.haml | 1 + app/views/registrations/invites/new.html.haml | 17 - .../registrations/welcome/show.html.haml | 5 +- app/views/root/index.html.haml | 10 + app/views/search/_results.html.haml | 24 +- app/views/search/results/_blob_data.html.haml | 1 + app/views/search/results/_issuable.html.haml | 33 +- app/views/search/results/_timeout.html.haml | 10 + ...devops_implicitly_enabled_banner.html.haml | 4 +- .../_confirm_your_email_alert.html.haml | 7 + app/views/shared/_global_alert.html.haml | 16 +- app/views/shared/_group_form.html.haml | 3 +- app/views/shared/_import_form.html.haml | 11 + .../shared/_new_project_item_select.html.haml | 2 +- app/views/shared/_project_limit.html.haml | 16 +- ...l.haml => _service_ping_consent.html.haml} | 8 +- .../shared/_sidebar_toggle_button.html.haml | 2 - .../shared/access_tokens/_form.html.haml | 29 +- .../shared/access_tokens/_table.html.haml | 17 +- app/views/shared/boards/_show.html.haml | 4 + app/views/shared/deploy_keys/_form.html.haml | 2 +- .../deploy_keys/_project_group_form.html.haml | 2 +- .../shared/deploy_tokens/_form.html.haml | 2 +- .../shared/empty_states/_issues.html.haml | 2 +- .../issuable/_bulk_update_sidebar.html.haml | 12 +- app/views/shared/issuable/_form.html.haml | 15 +- .../_invite_members_trigger.html.haml | 8 - .../shared/issuable/_search_bar.html.haml | 2 + app/views/shared/issuable/_sidebar.html.haml | 41 +- .../shared/issuable/_sidebar_todo.html.haml | 15 - .../shared/issuable/_sort_dropdown.html.haml | 2 + .../issue_type/_details_content.html.haml | 3 + app/views/shared/members/_group.html.haml | 50 - .../members/_manage_access_button.html.haml | 7 + app/views/shared/members/_member.html.haml | 72 +- app/views/shared/members/_requests.html.haml | 5 +- .../shared/members/_search_field.html.haml | 6 - .../shared/members/_sort_dropdown.html.haml | 19 - .../shared/milestones/_form_dates.html.haml | 24 +- .../shared/milestones/_issuable.html.haml | 2 + .../shared/milestones/_issuables.html.haml | 14 +- .../_milestone_complete_alert.html.haml | 10 + app/views/shared/milestones/_top.html.haml | 9 +- .../_enforcement_checkbox.html.haml | 3 +- .../_setting_label_checkbox.html.haml | 3 +- .../_setting_label_fieldset.html.haml | 3 +- app/views/shared/nav/_scope_menu.html.haml | 12 +- .../shared/nav/_scope_menu_body.html.haml | 8 - app/views/shared/nav/_sidebar.html.haml | 13 +- app/views/shared/nav/_sidebar_menu.html.haml | 12 +- .../nav/_sidebar_menu_collapsed.html.haml | 5 - app/views/shared/snippets/_embed.html.haml | 4 +- app/views/shared/wikis/edit.html.haml | 2 +- app/views/users/unsubscribes/show.html.haml | 11 + app/workers/all_queues.yml | 65 +- app/workers/archive_trace_worker.rb | 15 +- .../user_refresh_from_replica_worker.rb | 47 +- app/workers/build_finished_worker.rb | 58 +- app/workers/build_queue_worker.rb | 2 +- .../bulk_imports/export_request_worker.rb | 2 +- app/workers/ci/archive_trace_worker.rb | 18 + app/workers/ci/archive_traces_cron_worker.rb | 2 +- app/workers/ci/build_finished_worker.rb | 71 + ...ign_resource_from_resource_group_worker.rb | 12 +- .../applications/activate_service_worker.rb | 2 +- .../applications/deactivate_service_worker.rb | 14 +- app/workers/concerns/application_worker.rb | 25 + .../gitlab/github_import/object_importer.rb | 17 +- app/workers/concerns/waitable_worker.rb | 4 +- app/workers/concerns/worker_attributes.rb | 3 +- .../cleanup_container_repository_worker.rb | 10 +- .../container_expiration_policy_worker.rb | 21 + .../database/partition_management_worker.rb | 19 + app/workers/expire_pipeline_cache_worker.rb | 2 +- .../github_import/import_diff_note_worker.rb | 8 +- .../github_import/import_issue_worker.rb | 8 +- .../github_import/import_lfs_object_worker.rb | 8 +- .../github_import/import_note_worker.rb | 8 +- .../import_pull_request_merged_by_worker.rb | 8 +- .../import_pull_request_review_worker.rb | 8 +- .../import_pull_request_worker.rb | 8 +- .../stage/finish_import_worker.rb | 3 +- app/workers/gitlab/import/stuck_import_job.rb | 2 +- ...orker.rb => gitlab_service_ping_worker.rb} | 10 +- .../jira_connect/forward_event_worker.rb | 25 + .../jira_connect/sync_branch_worker.rb | 5 +- .../jira_connect/sync_builds_worker.rb | 8 +- .../jira_connect/sync_deployments_worker.rb | 8 +- .../jira_connect/sync_feature_flags_worker.rb | 8 +- .../jira_connect/sync_merge_request_worker.rb | 4 +- .../jira_connect/sync_project_worker.rb | 5 +- .../merge_request_cleanup_refs_worker.rb | 56 +- .../in_product_marketing_emails_worker.rb | 5 - .../packages/helm/extraction_worker.rb | 29 + app/workers/partition_creation_worker.rb | 5 +- app/workers/pipeline_hooks_worker.rb | 2 +- app/workers/project_service_worker.rb | 2 +- app/workers/projects/post_creation_worker.rb | 12 +- .../create_default_alerts_worker.rb | 2 +- .../single_repository_worker.rb | 2 +- ...edule_merge_request_cleanup_refs_worker.rb | 13 +- babel.config.js | 4 + bin/actioncable | 63 - bin/background_jobs_sk | 10 +- bin/background_jobs_sk_cluster | 12 +- cable/config.ru | 10 - config/application.rb | 25 +- config/environments/development.rb | 2 +- config/environments/production.rb | 3 - ...ntainer_repositories_list_repositories.yml | 18 + ...ntainer_repositories_delete_repository.yml | 18 + ...ject_container_repositories_delete_tag.yml | 18 + ...container_repositories_delete_tag_bulk.yml | 18 + ...ntainer_repositories_list_repositories.yml | 18 + ...oject_container_repositories_list_tags.yml | 18 + .../api__pypi_packages_list_package.yml | 18 + ..._applications_cluster_application_name.yml | 18 + ..._prometheus_disabled_manual_prometheus.yml | 18 + ...s_prometheus_enabled_manual_prometheus.yml | 18 + ...egistry_notification_create_repository.yml | 18 + ...egistry_notification_delete_repository.yml | 18 + ...ainer_registry_notification_delete_tag.yml | 18 + ..._registry_notification_push_repository.yml | 18 + ...ntainer_registry_notification_push_tag.yml | 18 + config/events/delete_repository_container.yml | 18 + config/events/delete_tag_bulk_tag.yml | 18 + .../events/experiment_name_initial_write.yml | 18 + config/events/experiment_name_write.yml | 18 + ...oups__email_campaigns_controller_click.yml | 18 + ...ositories_controller_list_repositories.yml | 18 + ...ent__zoom_integration_add_zoom_meeting.yml | 18 + ...__zoom_integration_remove_zoom_meeting.yml | 18 + config/events/list_repositories_container.yml | 18 + .../events/notes__create_service_execute.yml | 18 + config/events/package_class_pull_package.yml | 18 + config/events/package_class_push_package.yml | 18 + ...ositories_controller_delete_repository.yml | 18 + ...ositories_controller_list_repositories.yml | 18 + ...__registry__tags_controller_delete_tag.yml | 18 + ...istry__tags_controller_delete_tag_bulk.yml | 18 + ...s__registry__tags_controller_list_tags.yml | 18 + config/feature_categories.yml | 4 +- .../add_timezone_to_web_operations.yml | 8 + ...=> allow_archive_as_web_access_format.yml} | 8 +- ...caching_rate_limit_repository_compare.yml} | 8 +- .../block_external_fork_network_mirrors.yml | 2 +- .../cancel_pipelines_prior_to_destroy.yml | 8 + .../cascading_namespace_settings.yml | 8 - .../development/ci_artifacts_exclude.yml | 8 - ...uild_finished_worker_namespace_changed.yml | 8 + .../development/ci_build_metadata_config.yml | 2 +- ...x_pipeline_status_for_dag_needs_manual.yml | 8 - .../feature_flags/development/ci_job_jwt.yml | 2 +- ...ions.yml => ci_job_trace_force_encode.yml} | 10 +- ...eeded.yml => ci_jobs_trace_size_limit.yml} | 8 +- .../development/ci_jwt_signing_key.yml | 2 +- ...ng_builds_maintain_shared_runners_data.yml | 8 + .../ci_pending_builds_queue_source.yml | 8 + .../development/ci_pipeline_latest.yml | 8 - ...ne_status_omit_commit_sha_in_cache_key.yml | 8 - .../ci_reset_bridge_with_subsequent_jobs.yml | 2 +- .../ci_runners_tokens_optional_encryption.yml | 8 - ...r_jobs.yml => ci_same_stage_job_needs.yml} | 8 +- ...> container_registry_migration_phase1.yml} | 8 +- ...tainer_registry_migration_phase1_allow.yml | 8 + ...tainer_registry_migration_phase1_deny.yml} | 8 +- ...tion.yml => diffs_batch_render_cached.yml} | 10 +- .../development/diffs_gradual_load.yml | 8 - .../development/disable_service_templates.yml | 8 - ...ady_archived_jobs_when_archiving_again.yml | 8 - ...protected_tag_for_release_permissions.yml} | 10 +- .../development/fetch_remote_params.yml | 2 +- .../development/fork_project_form.yml | 2 +- ...generate_iids_without_explicit_locking.yml | 8 + .../git_access_batched_changes_size.yml | 8 + .../development/group_devops_adoption.yml | 8 - ...l => increase_page_size_exponentially.yml} | 8 +- .../infinitely_collapsible_sections.yml | 8 + ..._mvc.yml => integrated_error_tracking.yml} | 8 +- .../issue_boards_filtered_search.yml | 8 + ...yml => jira_issue_details_edit_labels.yml} | 8 +- ...yml => jira_issue_details_edit_status.yml} | 8 +- .../kubernetes_agent_on_gitlab_com.yml | 8 - ..._spam.yml => lfs_link_existing_object.yml} | 9 +- ...dequality_mr_diff.yml => list_commits.yml} | 10 +- ...ncing_for_expire_pipeline_cache_worker.yml | 8 - ...ad_balancing_for_pipeline_hooks_worker.yml | 8 - ...lancing_for_update_all_mirrors_worker.yml} | 10 +- ...alancing_refine_load_balancer_methods.yml} | 8 +- ...e_join.yml => mailgun_events_receiver.yml} | 8 +- ...yml => merge_request_discussion_cache.yml} | 10 +- .../merge_request_refs_cleanup.yml | 2 +- .../development/multiple_database_metrics.yml | 8 + .../development/multiple_oncall_schedules.yml | 8 - .../development/new_release_page.yml | 8 - ...s.yml => one_megabyte_file_size_limit.yml} | 10 +- ...ackages.yml => package_details_apollo.yml} | 8 +- ...rchy.yml => partition_pruning_dry_run.yml} | 6 +- .../pipeline_editor_branch_switcher.yml | 2 +- .../project_finder_similarity_sort.yml | 8 - .../development/project_statistics_sync.yml | 8 - .../projects_post_creation_worker.yml | 8 - .../runner_detailed_view_vue_ui.yml | 2 +- .../development/runner_graphql_query.yml | 3 +- .../development/runner_list_view_vue_ui.yml | 2 +- .../runner_registration_control.yml | 8 + .../search_sort_issues_by_popularity.yml | 8 + .../security_configuration_redesign_ee.yml | 8 + .../development/sidebar_refactor.yml | 8 - ...ekiq_job_completion_metric_initialize.yml} | 12 +- ...ad_balancing_rotate_up_to_date_replica.yml | 8 - ...ers_by_project_authorizations_user_id.yml} | 8 +- ...roject_share_update_auth_recalculation.yml | 8 + ...or_project_transfer_auth_recalculation.yml | 8 + .../update_remote_mirror_inmemory.yml | 2 +- .../usage_data_code_review_aggregation.yml | 8 - ...secrets_management_vault_build_created.yml | 2 +- .../development/use_distinct_in_shas_cte.yml | 8 - .../use_traversal_ids_for_ancestors.yml | 2 +- .../development/use_workhorse_s3_client.yml | 8 - ...sh_from_replica_worker_uses_replica_db.yml | 8 + ...marketing_emails_experiment_percentage.yml | 8 - .../invite_signup_page_interaction.yml | 8 - .../experiment/new_project_readme_content.yml | 8 + .../pipeline_empty_state_templates.yml | 8 - ...yml => redirect_trial_user_to_feature.yml} | 10 +- ...ster_recovery_disable_fair_scheduling.yml} | 8 +- ...ueing_disaster_recovery_disable_quota.yml} | 2 +- config/gitlab.yml.example | 7 + ...ons.rb => 0_migration_paths_additional.rb} | 3 + config/initializers/1_settings.rb | 28 +- config/initializers/7_prometheus_metrics.rb | 10 +- config/initializers/7_redis.rb | 2 + ...time_identify.rb => 9_runtime_identify.rb} | 2 +- .../active_record_build_select.rb | 6 + .../active_record_force_reconnects.rb | 3 +- config/initializers/asciidoctor_patch.rb | 20 - .../attr_encrypted_no_db_connection.rb | 16 + .../check_decomposition_database_config.rb | 7 + config/initializers/doorkeeper.rb | 5 + config/initializers/gitlab_experiment.rb | 15 +- config/initializers/global_id.rb | 2 +- config/initializers/postgres_partitioning.rb | 10 +- config/initializers/rspec_profiling.rb | 2 +- config/initializers/zz_metrics.rb | 10 +- .../004_zeitwerk.rb | 72 + .../100_patch_omniauth_oauth2.rb | 42 +- config/karma.config.js | 2 +- config/known_invalid_graphql_queries.yml | 1 - config/metrics/aggregates/code_review.yml | 3 - .../counts_28d/20210201124930_deployments.yml | 1 + ...s_unique_visits_for_any_target_monthly.yml | 1 + ...16174933_p_analytics_pipelines_monthly.yml | 1 + ...174941_p_analytics_valuestream_monthly.yml | 1 + ...0216174956_i_analytics_cohorts_monthly.yml | 1 + ...5000_i_analytics_dev_ops_score_monthly.yml | 1 + ...5004_g_analytics_merge_request_monthly.yml | 1 + ..._analytics_instance_statistics_monthly.yml | 1 + ..._analytics_total_unique_counts_monthly.yml | 1 + .../20210216175055_merge_requests.yml | 1 + ...overriding_approvers_per_merge_request.yml | 1 + ...overriding_approvers_per_merge_request.yml | 1 + .../20210216175101_merge_requests_users.yml | 1 + .../counts_28d/20210216175109_suggestions.yml | 1 + ...216175113_merge_request_action_monthly.yml | 1 + ..._source_code_code_intelligence_monthly.yml | 1 + ...6175120_i_code_review_mr_diffs_monthly.yml | 1 + ..._review_user_single_file_diffs_monthly.yml | 1 + ...de_review_mr_single_file_diffs_monthly.yml | 1 + ...2_i_code_review_user_create_mr_monthly.yml | 1 + ...36_i_code_review_user_close_mr_monthly.yml | 1 + ...0_i_code_review_user_reopen_mr_monthly.yml | 1 + ...44_i_code_review_user_merge_mr_monthly.yml | 1 + ..._review_user_create_mr_comment_monthly.yml | 1 + ...de_review_user_edit_mr_comment_monthly.yml | 1 + ..._review_user_remove_mr_comment_monthly.yml | 1 + ...ode_review_user_add_suggestion_monthly.yml | 1 + ...e_review_user_apply_suggestion_monthly.yml | 1 + ...05_clusters_applications_cert_managers.yml | 1 + ...10216175407_clusters_applications_helm.yml | 1 + ...16175409_clusters_applications_ingress.yml | 1 + ...16175411_clusters_applications_knative.yml | 1 + ...0216175413_clusters_management_project.yml | 1 + .../20210216175415_clusters_disabled.yml | 1 + .../20210216175417_clusters_enabled.yml | 1 + .../20210216175419_clusters_platforms_gke.yml | 1 + .../20210216175420_clusters_platforms_eks.yml | 1 + ...20210216175422_clusters_platforms_user.yml | 1 + ...10216175424_instance_clusters_disabled.yml | 1 + ...210216175426_instance_clusters_enabled.yml | 1 + ...20210216175428_group_clusters_disabled.yml | 1 + .../20210216175430_group_clusters_enabled.yml | 1 + ...210216175432_project_clusters_disabled.yml | 1 + ...0210216175434_project_clusters_enabled.yml | 1 + .../counts_28d/20210216175542_ci_builds.yml | 1 + .../20210216175544_ci_external_pipelines.yml | 1 + .../20210216175546_ci_internal_pipelines.yml | 1 + ...6175548_ci_pipeline_config_auto_devops.yml | 1 + ...16175550_ci_pipeline_config_repository.yml | 1 + .../20210216175552_ci_pipeline_schedules.yml | 1 + .../20210216175554_ci_pipelines.yml | 1 + .../counts_28d/20210216175556_ci_triggers.yml | 1 + .../20210216175616_user_dast_jobs.yml | 1 + .../20210216175618_dast_pipeline.yml | 1 + .../20210216180308_personal_snippets.yml | 1 + .../20210216180310_project_snippets.yml | 1 + .../counts_28d/20210216180312_snippets.yml | 1 + .../counts_28d/20210216180317_snippets.yml | 1 + ...tion_monthly_active_users_web_ide_edit.yml | 1 + ...1_action_monthly_active_users_sfe_edit.yml | 1 + ...nthly_active_users_snippet_editor_edit.yml | 1 + ...5_action_monthly_active_users_sse_edit.yml | 1 + ...7_action_monthly_active_users_ide_edit.yml | 1 + ...210216180330_g_edit_by_web_ide_monthly.yml | 1 + .../20210216180334_g_edit_by_sfe_monthly.yml | 1 + ...16180338_g_edit_by_snippet_ide_monthly.yml | 1 + ...1_ide_edit_total_unique_counts_monthly.yml | 1 + .../20210216180355_user_api_fuzzing_jobs.yml | 1 + ...210216180357_user_api_fuzzing_dnd_jobs.yml | 1 + .../20210216180424_i_search_total_monthly.yml | 1 + ...431_search_total_unique_counts_monthly.yml | 1 + ..._management_alerts_total_unique_counts.yml | 9 +- ...nagement_incidents_total_unique_counts.yml | 9 +- ...20210216180524_projects_with_incidents.yml | 9 +- ...16180526_projects_with_alert_incidents.yml | 9 +- ...anagement_alert_status_changed_monthly.yml | 9 +- ...dent_management_alert_assigned_monthly.yml | 9 +- ...incident_management_alert_todo_monthly.yml | 9 +- ...nt_management_incident_created_monthly.yml | 9 +- ...t_management_incident_reopened_monthly.yml | 9 +- ...ent_management_incident_closed_monthly.yml | 9 +- ...t_management_incident_assigned_monthly.yml | 9 +- ...ident_management_incident_todo_monthly.yml | 9 +- ...nt_management_incident_comment_monthly.yml | 9 +- ...nagement_incident_zoom_meeting_monthly.yml | 19 + ...ent_management_incident_relate_monthly.yml | 9 +- ...t_management_incident_unrelate_monthly.yml | 9 +- ...t_incident_change_confidential_monthly.yml | 9 +- ...management_total_unique_counts_monthly.yml | 9 +- ...nagement_alert_create_incident_monthly.yml | 7 +- ...16180731_projects_imported_from_github.yml | 1 + ...monthly_active_users_design_management.yml | 1 + ..._action_monthly_active_users_wiki_repo.yml | 1 + .../counts_28d/20210216180814_events.yml | 1 + .../counts_28d/20210216180816_groups.yml | 1 + .../20210216180818_users_created.yml | 1 + ...180955_projects_with_prometheus_alerts.yml | 1 + .../counts_28d/20210216180956_clusters.yml | 1 + ...80958_clusters_applications_prometheus.yml | 1 + ...operations_dashboard_default_dashboard.yml | 1 + ...16181002_projects_with_tracing_enabled.yml | 1 + ...4_projects_with_error_tracking_enabled.yml | 1 + ...ns_dashboard_users_with_projects_added.yml | 1 + .../counts_28d/20210216181050_packages.yml | 1 + .../20210216181057_projects_with_packages.yml | 1 + .../counts_28d/20210216181139_issues.yml | 1 + .../counts_28d/20210216181141_notes.yml | 1 + .../counts_28d/20210216181143_projects.yml | 1 + .../counts_28d/20210216181145_todos.yml | 1 + ...16181147_service_desk_enabled_projects.yml | 1 + .../20210216181148_service_desk_issues.yml | 1 + .../20210216181150_projects_jira_active.yml | 1 + ...181152_projects_jira_dvcs_cloud_active.yml | 1 + ...81154_projects_jira_dvcs_server_active.yml | 1 + .../counts_28d/20210216181158_epics.yml | 1 + .../counts_28d/20210216181200_label_lists.yml | 1 + ...management_issue_title_changed_monthly.yml | 1 + ...ment_issue_description_changed_monthly.yml | 1 + ...agement_issue_assignee_changed_monthly.yml | 1 + ...gement_issue_made_confidential_monthly.yml | 1 + ..._management_issue_made_visible_monthly.yml | 1 + ...oject_management_issue_created_monthly.yml | 1 + ...roject_management_issue_closed_monthly.yml | 1 + ...ject_management_issue_reopened_monthly.yml | 1 + ...management_issue_label_changed_monthly.yml | 1 + ...gement_issue_milestone_changed_monthly.yml | 1 + ...agement_issue_cross_referenced_monthly.yml | 1 + ...project_management_issue_moved_monthly.yml | 1 + ...oject_management_issue_related_monthly.yml | 1 + ...ect_management_issue_unrelated_monthly.yml | 1 + ...ment_issue_marked_as_duplicate_monthly.yml | 1 + ...roject_management_issue_locked_monthly.yml | 1 + ...ject_management_issue_unlocked_monthly.yml | 1 + ...management_issue_designs_added_monthly.yml | 1 + ...agement_issue_designs_modified_monthly.yml | 1 + ...nagement_issue_designs_removed_monthly.yml | 1 + ...agement_issue_due_date_changed_monthly.yml | 1 + ...nt_issue_time_estimate_changed_monthly.yml | 1 + ...ement_issue_time_spent_changed_monthly.yml | 1 + ...management_issue_comment_added_monthly.yml | 1 + ...anagement_issue_comment_edited_monthly.yml | 1 + ...nagement_issue_comment_removed_monthly.yml | 1 + ...roject_management_issue_cloned_monthly.yml | 1 + ...ssues_edit_total_unique_counts_monthly.yml | 1 + ...6181508_i_quickactions_approve_monthly.yml | 1 + ...2_i_quickactions_assign_single_monthly.yml | 1 + ...519_i_quickactions_assign_self_monthly.yml | 1 + ...i_quickactions_assign_reviewer_monthly.yml | 1 + ...216181527_i_quickactions_award_monthly.yml | 1 + ...1530_i_quickactions_board_move_monthly.yml | 1 + ...216181541_i_quickactions_clone_monthly.yml | 1 + ...216181545_i_quickactions_close_monthly.yml | 1 + ...49_i_quickactions_confidential_monthly.yml | 1 + ...ns_copy_metadata_merge_request_monthly.yml | 1 + ...ickactions_copy_metadata_issue_monthly.yml | 1 + ...ckactions_create_merge_request_monthly.yml | 1 + ...0216181604_i_quickactions_done_monthly.yml | 1 + ...216181607_i_quickactions_draft_monthly.yml | 1 + ...10216181611_i_quickactions_due_monthly.yml | 1 + ...81615_i_quickactions_duplicate_monthly.yml | 1 + ...181622_i_quickactions_estimate_monthly.yml | 1 + ...216181629_i_quickactions_label_monthly.yml | 1 + ...0216181633_i_quickactions_lock_monthly.yml | 1 + ...216181637_i_quickactions_merge_monthly.yml | 1 + ...81641_i_quickactions_milestone_monthly.yml | 1 + ...0216181644_i_quickactions_move_monthly.yml | 1 + ...181659_i_quickactions_reassign_monthly.yml | 1 + ...quickactions_reassign_reviewer_monthly.yml | 1 + ...16181707_i_quickactions_rebase_monthly.yml | 1 + ...6181710_i_quickactions_relabel_monthly.yml | 1 + ...16181714_i_quickactions_relate_monthly.yml | 1 + ...i_quickactions_remove_due_date_monthly.yml | 1 + ...i_quickactions_remove_estimate_monthly.yml | 1 + ..._quickactions_remove_milestone_monthly.yml | 1 + ...quickactions_remove_time_spent_monthly.yml | 1 + ...747_i_quickactions_remove_zoom_monthly.yml | 1 + ...16181751_i_quickactions_reopen_monthly.yml | 1 + ...216181755_i_quickactions_shrug_monthly.yml | 1 + ..._i_quickactions_spend_subtract_monthly.yml | 1 + ...81802_i_quickactions_spend_add_monthly.yml | 1 + ...6_i_quickactions_submit_review_monthly.yml | 1 + ...81809_i_quickactions_subscribe_monthly.yml | 1 + ...81813_i_quickactions_tableflip_monthly.yml | 1 + ...10216181817_i_quickactions_tag_monthly.yml | 1 + ...1_i_quickactions_target_branch_monthly.yml | 1 + ...216181824_i_quickactions_title_monthly.yml | 1 + ...0216181828_i_quickactions_todo_monthly.yml | 1 + ...quickactions_unassign_specific_monthly.yml | 1 + ...35_i_quickactions_unassign_all_monthly.yml | 1 + ...quickactions_unassign_reviewer_monthly.yml | 1 + ..._quickactions_unlabel_specific_monthly.yml | 1 + ...846_i_quickactions_unlabel_all_monthly.yml | 1 + ...16181850_i_quickactions_unlock_monthly.yml | 1 + ...854_i_quickactions_unsubscribe_monthly.yml | 1 + ...10216181901_i_quickactions_wip_monthly.yml | 1 + ...0216181905_i_quickactions_zoom_monthly.yml | 1 + .../20210216181923_successful_deployments.yml | 1 + .../20210216181924_failed_deployments.yml | 1 + .../counts_28d/20210216181935_deployments.yml | 1 + .../20210216181937_failed_deployments.yml | 1 + .../counts_28d/20210216181939_releases.yml | 1 + .../20210216181941_successful_deployments.yml | 1 + ...216181951_clusters_applications_runner.yml | 1 + ..._user_unique_users_all_secure_scanners.yml | 1 + .../counts_28d/20210216182034_deploy_keys.yml | 1 + .../counts_28d/20210216182036_keys.yml | 1 + .../20210216182038_remote_mirrors.yml | 1 + ...tion_monthly_active_users_project_repo.yml | 1 + ..._action_monthly_active_users_git_write.yml | 1 + .../20210216182051_protected_branches.yml | 1 + .../20210216182102_wiki_action_monthly.yml | 1 + .../20210216182106_design_action_monthly.yml | 1 + .../20210216182109_project_action_monthly.yml | 1 + .../20210216182125_user_sast_jobs.yml | 4 +- ...10216182127_user_secret_detection_jobs.yml | 4 +- .../20210216182129_sast_pipeline.yml | 4 +- ...210216182131_secret_detection_pipeline.yml | 4 +- ...136_i_testing_test_case_parsed_monthly.yml | 1 + ...216183159_projects_with_alerts_created.yml | 1 + ...nce_features_track_unique_visits_union.yml | 16 - ...3_product_analytics_test_metrics_union.yml | 1 + ...ct_analytics_test_metrics_intersection.yml | 1 + .../20210216183627_omniauth_providers.yml | 1 + .../counts_28d/20210216183629_two-factor.yml | 1 + ...210216183631_two-factor-via-u2f-device.yml | 1 + ...6183633_two-factor-via-webauthn-device.yml | 1 + .../counts_28d/20210216183634_standard.yml | 1 + .../20210216183636_google_oauth2.yml | 1 + ...0210216183638_unique_users_all_imports.yml | 1 + .../counts_28d/20210216183640_gitlab.yml | 1 + .../counts_28d/20210216183642_gitlab_v1.yml | 1 + .../20210216183644_gitlab_project.yml | 1 + .../counts_28d/20210216183646_gitlab.yml | 1 + .../counts_28d/20210216183648_github.yml | 1 + .../counts_28d/20210216183650_bitbucket.yml | 1 + .../20210216183652_bitbucket_server.yml | 1 + .../counts_28d/20210216183653_gitea.yml | 1 + .../metrics/counts_28d/20210216183655_git.yml | 1 + .../counts_28d/20210216183657_manifest.yml | 1 + .../20210216183659_gitlab_migration.yml | 1 + .../counts_28d/20210216183701_jira.yml | 1 + .../counts_28d/20210216183703_fogbugz.yml | 1 + .../counts_28d/20210216183705_phabricator.yml | 1 + .../metrics/counts_28d/20210216183707_csv.yml | 1 + .../20210216183709_group_import.yml | 1 + .../20210216183711_gitlab_migration.yml | 1 + .../counts_28d/20210216183712_total.yml | 1 + .../20210216183714_gitlab_project.yml | 1 + .../counts_28d/20210216183716_gitlab.yml | 1 + .../counts_28d/20210216183718_github.yml | 1 + .../counts_28d/20210216183720_bitbucket.yml | 1 + .../20210216183722_bitbucket_server.yml | 1 + .../counts_28d/20210216183724_gitea.yml | 1 + .../metrics/counts_28d/20210216183726_git.yml | 1 + .../counts_28d/20210216183728_manifest.yml | 1 + .../counts_28d/20210216183730_jira.yml | 1 + .../counts_28d/20210216183731_fogbugz.yml | 1 + .../counts_28d/20210216183733_phabricator.yml | 1 + .../metrics/counts_28d/20210216183735_csv.yml | 1 + .../20210216183737_groups_imported.yml | 1 + ...10216183817_user_coverage_fuzzing_jobs.yml | 1 + .../counts_28d/20210216183826_sast_scans.yml | 1 + ...0210216183830_container_scanning_scans.yml | 1 + .../counts_28d/20210216183832_dast_scans.yml | 1 + .../20210216183834_secret_detection_scans.yml | 1 + .../20210216183836_coverage_fuzzing_scans.yml | 1 + .../20210216183838_api_fuzzing_scans.yml | 1 + ...e_unique_visits_for_any_target_monthly.yml | 16 - ...h_unique_visits_for_any_target_monthly.yml | 1 + ...6183926_g_compliance_dashboard_monthly.yml | 16 - ...3930_g_compliance_audit_events_monthly.yml | 16 - ...3934_i_compliance_audit_events_monthly.yml | 16 - ...ompliance_credential_inventory_monthly.yml | 16 - ..._a_compliance_audit_events_api_monthly.yml | 16 - ...compliance_total_unique_counts_monthly.yml | 16 - .../20210216184024_g_edit_by_sse_monthly.yml | 1 + ...0210216184047_git_write_action_monthly.yml | 1 + ...40_testing_total_unique_counts_monthly.yml | 1 + ...20210216184255_i_snippets_show_monthly.yml | 1 + ...rraform_state_api_unique_users_monthly.yml | 1 + ..._users_committing_ciconfigfile_monthly.yml | 1 + ..._user_toggled_task_item_status_monthly.yml | 1 + ..._i_code_review_user_approve_mr_monthly.yml | 1 + ..._code_review_user_unapprove_mr_monthly.yml | 1 + ...ode_review_user_resolve_thread_monthly.yml | 1 + ...e_review_user_unresolve_thread_monthly.yml | 1 + ...38_i_code_review_edit_mr_title_monthly.yml | 1 + ...342_i_code_review_edit_mr_desc_monthly.yml | 1 + ...review_user_create_review_note_monthly.yml | 1 + ...ode_review_user_publish_review_monthly.yml | 1 + ...er_create_multiline_mr_comment_monthly.yml | 1 + ...user_edit_multiline_mr_comment_monthly.yml | 1 + ...er_remove_multiline_mr_comment_monthly.yml | 1 + ...18_i_code_review_user_assigned_monthly.yml | 1 + ...de_review_user_marked_as_draft_monthly.yml | 1 + ..._review_user_unmarked_as_draft_monthly.yml | 1 + ...e_review_user_review_requested_monthly.yml | 1 + ...eview_user_approval_rule_added_monthly.yml | 1 + ...iew_user_approval_rule_deleted_monthly.yml | 1 + ...view_user_approval_rule_edited_monthly.yml | 1 + ...eview_user_vs_code_api_request_monthly.yml | 1 + ...view_user_create_mr_from_issue_monthly.yml | 1 + ...ode_review_total_unique_counts_monthly.yml | 1 + ...templates_implicit_auto_devops_monthly.yml | 1 + ...tes_implicit_auto_devops_build_monthly.yml | 1 + ...es_implicit_auto_devops_deploy_monthly.yml | 1 + ...mplates_implicit_security_sast_monthly.yml | 1 + ...icit_security_secret_detection_monthly.yml | 1 + ...templates_5_min_production_app_monthly.yml | 1 + ...523_p_ci_templates_auto_devops_monthly.yml | 1 + ...ci_templates_aws_cf_deploy_ec2_monthly.yml | 1 + ..._p_ci_templates_aws_deploy_ecs_monthly.yml | 1 + ...ci_templates_auto_devops_build_monthly.yml | 1 + ...i_templates_auto_devops_deploy_monthly.yml | 1 + ...ates_auto_devops_deploy_latest_monthly.yml | 1 + ...6_p_ci_templates_security_sast_monthly.yml | 1 + ...ates_security_secret_detection_monthly.yml | 1 + ...emplates_terraform_base_latest_monthly.yml | 1 + ..._templates_total_unique_counts_monthly.yml | 1 + ...ickactions_total_unique_counts_monthly.yml | 1 + ..._package_composer_deploy_token_monthly.yml | 1 + ...0_i_package_conan_deploy_token_monthly.yml | 1 + ...package_container_deploy_token_monthly.yml | 1 + ..._i_package_debian_deploy_token_monthly.yml | 1 + ...i_package_generic_deploy_token_monthly.yml | 1 + ..._i_package_golang_deploy_token_monthly.yml | 1 + ...0_i_package_maven_deploy_token_monthly.yml | 1 + ...834_i_package_npm_deploy_token_monthly.yml | 1 + ...8_i_package_nuget_deploy_token_monthly.yml | 1 + ...42_i_package_pypi_deploy_token_monthly.yml | 1 + ...846_i_package_tag_deploy_token_monthly.yml | 1 + ...n_packages_total_unique_counts_monthly.yml | 1 + ...184854_i_package_composer_user_monthly.yml | 1 + ...216184858_i_package_conan_user_monthly.yml | 1 + ...84902_i_package_container_user_monthly.yml | 1 + ...16184906_i_package_debian_user_monthly.yml | 1 + ...6184910_i_package_generic_user_monthly.yml | 1 + ...16184913_i_package_golang_user_monthly.yml | 1 + ...216184917_i_package_maven_user_monthly.yml | 1 + ...10216184921_i_package_npm_user_monthly.yml | 1 + ...216184925_i_package_nuget_user_monthly.yml | 1 + ...0216184929_i_package_pypi_user_monthly.yml | 1 + ...10216184933_i_package_tag_user_monthly.yml | 1 + ...r_packages_total_unique_counts_monthly.yml | 1 + ...ystem_jira_service_close_issue_monthly.yml | 1 + ...m_jira_service_cross_reference_monthly.yml | 1 + ..._ecosystem_total_unique_counts_monthly.yml | 1 + ...ickactions_invite_email_single_monthly.yml | 1 + ...kactions_invite_email_multiple_monthly.yml | 1 + ...iew_user_time_estimate_changed_monthly.yml | 1 + ...review_user_time_spent_changed_monthly.yml | 1 + ...view_user_mr_discussion_locked_monthly.yml | 1 + ...ew_user_mr_discussion_unlocked_monthly.yml | 1 + ..._users_pushing_mr_ciconfigfile_monthly.yml | 1 + ..._review_user_milestone_changed_monthly.yml | 1 + ...ode_review_user_labels_changed_monthly.yml | 1 + ..._review_user_assignees_changed_monthly.yml | 1 + ..._review_user_reviewers_changed_monthly.yml | 1 + ...ack_service_issue_notification_monthly.yml | 1 + ...lack_service_push_notification_monthly.yml | 1 + ...ervice_deployment_notification_monthly.yml | 1 + ...service_wiki_page_notification_monthly.yml | 1 + ...ice_merge_request_notification_monthly.yml | 1 + ...lack_service_note_notification_monthly.yml | 1 + ..._service_tag_push_notification_monthly.yml | 1 + ...confidential_note_notification_monthly.yml | 1 + ...onfidential_issue_notification_monthly.yml | 1 + ..._package_rubygems_deploy_token_monthly.yml | 1 + ...154654_i_package_rubygems_user_monthly.yml | 1 + ...panding_secure_security_report_monthly.yml | 1 + ...ng_testing_code_quality_report_monthly.yml | 1 + ...g_testing_accessibility_report_monthly.yml | 1 + ..._terraform_module_deploy_token_monthly.yml | 1 + ..._package_terraform_module_user_monthly.yml | 1 + ...i_testing_summary_widget_total_monthly.yml | 1 + ...click_single_file_mode_setting_monthly.yml | 1 + ...iew_click_file_browser_setting_monthly.yml | 1 + ...eview_click_whitespace_setting_monthly.yml | 1 + ...i_code_review_diff_view_inline_monthly.yml | 1 + ...code_review_diff_view_parallel_monthly.yml | 1 + ..._review_file_browser_tree_view_monthly.yml | 1 + ..._review_file_browser_list_view_monthly.yml | 1 + ...de_review_diff_show_whitespace_monthly.yml | 1 + ...de_review_diff_hide_whitespace_monthly.yml | 1 + ...i_code_review_diff_single_file_monthly.yml | 1 + ...ode_review_diff_multiple_files_monthly.yml | 1 + ...e_review_category_monthly_active_users.yml | 1 + ...xtension_category_monthly_active_users.yml | 1 + ...code_review_group_monthly_active_users.yml | 1 + ..._authoring_total_unique_counts_monthly.yml | 1 + ...27213346_geo_secondary_web_oauth_users.yml | 1 + ...e_review_user_resolve_conflict_monthly.yml | 1 + ...e_review_user_load_conflict_ui_monthly.yml | 1 + ...210514141518_monthly_projects_creation.yml | 1 + ...59_i_package_helm_deploy_token_monthly.yml | 1 + ...0517075259_i_package_helm_user_monthly.yml | 1 + .../counts_28d/20210520111133_total.yml | 1 + ...review_click_diff_view_setting_monthly.yml | 1 + ..._management_issue_title_changed_weekly.yml | 1 + ...i_analytics_instance_statistics_weekly.yml | 1 + ...4_analytics_total_unique_counts_weekly.yml | 1 + ...0216175111_merge_request_action_weekly.yml | 1 + ...i_source_code_code_intelligence_weekly.yml | 1 + ...16175118_i_code_review_mr_diffs_weekly.yml | 1 + ...e_review_user_single_file_diffs_weekly.yml | 1 + ...ode_review_mr_single_file_diffs_weekly.yml | 1 + ...30_i_code_review_user_create_mr_weekly.yml | 1 + ...134_i_code_review_user_close_mr_weekly.yml | 1 + ...38_i_code_review_user_reopen_mr_weekly.yml | 1 + ...142_i_code_review_user_merge_mr_weekly.yml | 1 + ...e_review_user_create_mr_comment_weekly.yml | 1 + ...ode_review_user_edit_mr_comment_weekly.yml | 1 + ...e_review_user_remove_mr_comment_weekly.yml | 1 + ...code_review_user_add_suggestion_weekly.yml | 1 + ...de_review_user_apply_suggestion_weekly.yml | 1 + ...0210216180328_g_edit_by_web_ide_weekly.yml | 1 + .../20210216180332_g_edit_by_sfe_weekly.yml | 1 + ...216180336_g_edit_by_snippet_ide_weekly.yml | 1 + ...39_ide_edit_total_unique_counts_weekly.yml | 1 + .../20210216180422_i_search_total_weekly.yml | 1 + ...0429_search_total_unique_counts_weekly.yml | 1 + ..._management_alerts_total_unique_counts.yml | 19 + ...nagement_incidents_total_unique_counts.yml | 19 + ...management_alert_status_changed_weekly.yml | 19 + ...ident_management_alert_assigned_weekly.yml | 19 + ..._incident_management_alert_todo_weekly.yml | 19 + ...ent_management_incident_created_weekly.yml | 19 + ...nt_management_incident_reopened_weekly.yml | 19 + ...ent_management_incident_closed_weekly.yml} | 13 +- ...nt_management_incident_assigned_weekly.yml | 19 + ...cident_management_incident_todo_weekly.yml | 19 + ...ent_management_incident_comment_weekly.yml | 19 + ...anagement_incident_zoom_meeting_weekly.yml | 19 + ...dent_management_incident_relate_weekly.yml | 19 + ...nt_management_incident_unrelate_weekly.yml | 19 + ...nt_incident_change_confidential_weekly.yml | 19 + ..._management_total_unique_counts_weekly.yml | 19 + ...anagement_alert_create_incident_weekly.yml | 20 + ...ement_issue_description_changed_weekly.yml | 1 + ...nagement_issue_assignee_changed_weekly.yml | 1 + ...agement_issue_made_confidential_weekly.yml | 1 + ...t_management_issue_made_visible_weekly.yml | 1 + ...roject_management_issue_created_weekly.yml | 1 + ...project_management_issue_closed_weekly.yml | 1 + ...oject_management_issue_reopened_weekly.yml | 1 + ..._management_issue_label_changed_weekly.yml | 1 + ...agement_issue_milestone_changed_weekly.yml | 1 + ...nagement_issue_cross_referenced_weekly.yml | 1 + ..._project_management_issue_moved_weekly.yml | 1 + ...roject_management_issue_related_weekly.yml | 1 + ...ject_management_issue_unrelated_weekly.yml | 1 + ...ement_issue_marked_as_duplicate_weekly.yml | 1 + ...project_management_issue_locked_weekly.yml | 1 + ...oject_management_issue_unlocked_weekly.yml | 1 + ..._management_issue_designs_added_weekly.yml | 1 + ...nagement_issue_designs_modified_weekly.yml | 1 + ...anagement_issue_designs_removed_weekly.yml | 1 + ...nagement_issue_due_date_changed_weekly.yml | 1 + ...ent_issue_time_estimate_changed_weekly.yml | 1 + ...gement_issue_time_spent_changed_weekly.yml | 1 + ..._management_issue_comment_added_weekly.yml | 1 + ...management_issue_comment_edited_weekly.yml | 1 + ...anagement_issue_comment_removed_weekly.yml | 1 + ...project_management_issue_cloned_weekly.yml | 1 + ...issues_edit_total_unique_counts_weekly.yml | 1 + ...16181506_i_quickactions_approve_weekly.yml | 1 + ...10_i_quickactions_assign_single_weekly.yml | 1 + ...1517_i_quickactions_assign_self_weekly.yml | 1 + ..._i_quickactions_assign_reviewer_weekly.yml | 1 + ...0216181525_i_quickactions_award_weekly.yml | 1 + ...81529_i_quickactions_board_move_weekly.yml | 1 + ...0216181540_i_quickactions_clone_weekly.yml | 1 + ...0216181543_i_quickactions_close_weekly.yml | 1 + ...547_i_quickactions_confidential_weekly.yml | 1 + ...ons_copy_metadata_merge_request_weekly.yml | 1 + ...uickactions_copy_metadata_issue_weekly.yml | 1 + ...ickactions_create_merge_request_weekly.yml | 1 + ...10216181602_i_quickactions_done_weekly.yml | 1 + ...0216181605_i_quickactions_draft_weekly.yml | 1 + ...210216181609_i_quickactions_due_weekly.yml | 1 + ...181613_i_quickactions_duplicate_weekly.yml | 1 + ...6181620_i_quickactions_estimate_weekly.yml | 1 + ...0216181628_i_quickactions_label_weekly.yml | 1 + ...10216181631_i_quickactions_lock_weekly.yml | 1 + ...0216181635_i_quickactions_merge_weekly.yml | 1 + ...181639_i_quickactions_milestone_weekly.yml | 1 + ...10216181642_i_quickactions_move_weekly.yml | 1 + ...6181657_i_quickactions_reassign_weekly.yml | 1 + ..._quickactions_reassign_reviewer_weekly.yml | 1 + ...216181705_i_quickactions_rebase_weekly.yml | 1 + ...16181708_i_quickactions_relabel_weekly.yml | 1 + ...216181712_i_quickactions_relate_weekly.yml | 1 + ..._i_quickactions_remove_due_date_weekly.yml | 1 + ..._i_quickactions_remove_estimate_weekly.yml | 1 + ...i_quickactions_remove_milestone_weekly.yml | 1 + ..._quickactions_remove_time_spent_weekly.yml | 1 + ...1745_i_quickactions_remove_zoom_weekly.yml | 1 + ...216181749_i_quickactions_reopen_weekly.yml | 1 + ...0216181753_i_quickactions_shrug_weekly.yml | 1 + ...6_i_quickactions_spend_subtract_weekly.yml | 1 + ...181800_i_quickactions_spend_add_weekly.yml | 1 + ...04_i_quickactions_submit_review_weekly.yml | 1 + ...181808_i_quickactions_subscribe_weekly.yml | 1 + ...181811_i_quickactions_tableflip_weekly.yml | 1 + ...210216181815_i_quickactions_tag_weekly.yml | 1 + ...19_i_quickactions_target_branch_weekly.yml | 1 + ...0216181822_i_quickactions_title_weekly.yml | 1 + ...10216181826_i_quickactions_todo_weekly.yml | 1 + ..._quickactions_unassign_specific_weekly.yml | 1 + ...833_i_quickactions_unassign_all_weekly.yml | 1 + ..._quickactions_unassign_reviewer_weekly.yml | 1 + ...i_quickactions_unlabel_specific_weekly.yml | 1 + ...1845_i_quickactions_unlabel_all_weekly.yml | 1 + ...216181848_i_quickactions_unlock_weekly.yml | 1 + ...1852_i_quickactions_unsubscribe_weekly.yml | 1 + ...210216181859_i_quickactions_wip_weekly.yml | 1 + ...10216181903_i_quickactions_zoom_weekly.yml | 1 + .../20210216182100_wiki_action_weekly.yml | 1 + .../20210216182104_design_action_weekly.yml | 1 + .../20210216182107_project_action_weekly.yml | 1 + ...2134_i_testing_test_case_parsed_weekly.yml | 1 + ...3_product_analytics_test_metrics_union.yml | 1 + ...ct_analytics_test_metrics_intersection.yml | 1 + .../20210216184022_g_edit_by_sse_weekly.yml | 1 + ...20210216184045_git_write_action_weekly.yml | 1 + .../20210216184253_i_snippets_show_weekly.yml | 1 + ...e_users_committing_ciconfigfile_weekly.yml | 1 + ...w_user_toggled_task_item_status_weekly.yml | 1 + ...0_i_code_review_user_approve_mr_weekly.yml | 1 + ...i_code_review_user_unapprove_mr_weekly.yml | 1 + ...code_review_user_resolve_thread_weekly.yml | 1 + ...de_review_user_unresolve_thread_weekly.yml | 1 + ...336_i_code_review_edit_mr_title_weekly.yml | 1 + ...4340_i_code_review_edit_mr_desc_weekly.yml | 1 + ..._review_user_create_review_note_weekly.yml | 1 + ...code_review_user_publish_review_weekly.yml | 1 + ...ser_create_multiline_mr_comment_weekly.yml | 1 + ..._user_edit_multiline_mr_comment_weekly.yml | 1 + ...ser_remove_multiline_mr_comment_weekly.yml | 1 + ...416_i_code_review_user_assigned_weekly.yml | 1 + ...ode_review_user_marked_as_draft_weekly.yml | 1 + ...e_review_user_unmarked_as_draft_weekly.yml | 1 + ...de_review_user_review_requested_weekly.yml | 1 + ...review_user_approval_rule_added_weekly.yml | 1 + ...view_user_approval_rule_deleted_weekly.yml | 1 + ...eview_user_approval_rule_edited_weekly.yml | 1 + ...review_user_vs_code_api_request_weekly.yml | 1 + ...eview_user_create_mr_from_issue_weekly.yml | 1 + ...code_review_total_unique_counts_weekly.yml | 1 + ..._templates_5_min_production_app_weekly.yml | 1 + ..._ci_templates_aws_cf_deploy_ec2_weekly.yml | 1 + ...8_p_ci_templates_aws_deploy_ecs_weekly.yml | 1 + ...i_templates_total_unique_counts_weekly.yml | 1 + ...i_package_composer_deploy_token_weekly.yml | 1 + ...08_i_package_conan_deploy_token_weekly.yml | 1 + ..._package_container_deploy_token_weekly.yml | 1 + ...6_i_package_debian_deploy_token_weekly.yml | 1 + ..._i_package_generic_deploy_token_weekly.yml | 1 + ...4_i_package_golang_deploy_token_weekly.yml | 1 + ...28_i_package_maven_deploy_token_weekly.yml | 1 + ...4832_i_package_npm_deploy_token_weekly.yml | 1 + ...36_i_package_nuget_deploy_token_weekly.yml | 1 + ...840_i_package_pypi_deploy_token_weekly.yml | 1 + ...4844_i_package_tag_deploy_token_weekly.yml | 1 + ...en_packages_total_unique_counts_weekly.yml | 1 + ...6184852_i_package_composer_user_weekly.yml | 1 + ...0216184856_i_package_conan_user_weekly.yml | 1 + ...184900_i_package_container_user_weekly.yml | 1 + ...216184904_i_package_debian_user_weekly.yml | 1 + ...16184908_i_package_generic_user_weekly.yml | 1 + ...216184911_i_package_golang_user_weekly.yml | 1 + ...0216184916_i_package_maven_user_weekly.yml | 1 + ...210216184919_i_package_npm_user_weekly.yml | 1 + ...0216184923_i_package_nuget_user_weekly.yml | 1 + ...10216184927_i_package_pypi_user_weekly.yml | 1 + ...210216184931_i_package_tag_user_weekly.yml | 1 + ...er_packages_total_unique_counts_weekly.yml | 1 + ...system_jira_service_close_issue_weekly.yml | 1 + ...em_jira_service_cross_reference_weekly.yml | 1 + ...5_ecosystem_total_unique_counts_weekly.yml | 1 + ...e_users_pushing_mr_ciconfigfile_weekly.yml | 1 + ...lack_service_issue_notification_weekly.yml | 1 + ...view_user_time_estimate_changed_weekly.yml | 1 + ..._review_user_time_spent_changed_weekly.yml | 1 + ...slack_service_push_notification_weekly.yml | 1 + ...service_deployment_notification_weekly.yml | 1 + ..._service_wiki_page_notification_weekly.yml | 1 + ...vice_merge_request_notification_weekly.yml | 1 + ...slack_service_note_notification_weekly.yml | 1 + ...k_service_tag_push_notification_weekly.yml | 1 + ..._confidential_note_notification_weekly.yml | 1 + ...confidential_issue_notification_weekly.yml | 1 + ...iew_user_mr_discussion_unlocked_weekly.yml | 1 + ...eview_user_mr_discussion_locked_weekly.yml | 1 + ...e_review_user_milestone_changed_weekly.yml | 1 + ...code_review_user_labels_changed_weekly.yml | 1 + ...e_review_user_assignees_changed_weekly.yml | 1 + ...e_review_user_reviewers_changed_weekly.yml | 1 + ...uickactions_invite_email_single_weekly.yml | 1 + ...ckactions_invite_email_multiple_weekly.yml | 1 + ...i_package_rubygems_deploy_token_weekly.yml | 1 + ...3154652_i_package_rubygems_user_weekly.yml | 1 + ...xpanding_secure_security_report_weekly.yml | 1 + ...ing_testing_code_quality_report_weekly.yml | 1 + ...ng_testing_accessibility_report_weekly.yml | 1 + ...e_terraform_module_deploy_token_weekly.yml | 1 + ...i_package_terraform_module_user_weekly.yml | 1 + ..._i_testing_summary_widget_total_weekly.yml | 1 + ..._click_single_file_mode_setting_weekly.yml | 1 + ...view_click_file_browser_setting_weekly.yml | 1 + ...review_click_whitespace_setting_weekly.yml | 1 + ..._i_code_review_diff_view_inline_weekly.yml | 1 + ..._code_review_diff_view_parallel_weekly.yml | 1 + ...e_review_file_browser_tree_view_weekly.yml | 1 + ...e_review_file_browser_list_view_weekly.yml | 1 + ...ode_review_diff_show_whitespace_weekly.yml | 1 + ...ode_review_diff_hide_whitespace_weekly.yml | 1 + ..._i_code_review_diff_single_file_weekly.yml | 1 + ...code_review_diff_multiple_files_weekly.yml | 1 + ...code_review_group_monthly_active_users.yml | 1 + ...e_review_category_monthly_active_users.yml | 1 + ...xtension_category_monthly_active_users.yml | 1 + ...e_authoring_total_unique_counts_weekly.yml | 1 + ...de_review_user_load_conflict_ui_weekly.yml | 1 + ...de_review_user_resolve_conflict_weekly.yml | 1 + ...851_i_package_helm_deploy_token_weekly.yml | 1 + ...10517075252_i_package_helm_user_weekly.yml | 1 + ..._review_click_diff_view_setting_weekly.yml | 1 + .../counts_all/20210201124934_deployments.yml | 1 + .../counts_all/20210204124930_servers.yml | 1 + .../counts_all/20210204124932_clusters.yml | 1 + .../20210216174832_cycle_analytics_views.yml | 1 + .../20210216174846_p_analytics_pipelines.yml | 1 + ...20210216174850_p_analytics_valuestream.yml | 1 + .../20210216174856_p_analytics_repo.yml | 1 + .../20210216174858_i_analytics_cohorts.yml | 1 + ...210216174900_i_analytics_dev_ops_score.yml | 1 + ...210216174902_g_analytics_merge_request.yml | 1 + ...174906_i_analytics_instance_statistics.yml | 1 + ...analytics_unique_visits_for_any_target.yml | 1 + ...175019_projects_with_prometheus_alerts.yml | 1 + .../20210216175021_pod_logs_usages_total.yml | 1 + ...16175024_service_desk_enabled_projects.yml | 1 + .../20210216175026_service_desk_issues.yml | 1 + .../counts_all/20210216175037_suggestions.yml | 1 + .../20210216175039_merge_requests.yml | 1 + .../20210216175041_merge_request_comment.yml | 1 + .../20210216175043_merge_request_create.yml | 1 + .../20210216175045_merge_requests.yml | 1 + .../counts_all/20210216175053_suggestions.yml | 1 + ...ed_merge_requests_using_approval_rules.yml | 1 + .../20210216175229_auto_devops_enabled.yml | 1 + .../20210216175231_auto_devops_disabled.yml | 1 + .../counts_all/20210216175232_clusters.yml | 1 + .../20210216175234_clusters_enabled.yml | 1 + ...0210216175236_project_clusters_enabled.yml | 1 + .../20210216175238_group_clusters_enabled.yml | 1 + ...210216175240_instance_clusters_enabled.yml | 1 + .../20210216175242_clusters_disabled.yml | 1 + ...210216175244_project_clusters_disabled.yml | 1 + ...20210216175246_group_clusters_disabled.yml | 1 + ...10216175248_instance_clusters_disabled.yml | 1 + .../20210216175250_clusters_platforms_eks.yml | 1 + .../20210216175251_clusters_platforms_gke.yml | 1 + ...20210216175253_clusters_platforms_user.yml | 1 + ...10216175255_clusters_applications_helm.yml | 1 + ...16175257_clusters_applications_ingress.yml | 1 + ...59_clusters_applications_cert_managers.yml | 1 + ...75301_clusters_applications_crossplane.yml | 1 + ...75303_clusters_applications_prometheus.yml | 1 + ...216175305_clusters_applications_runner.yml | 1 + ...16175307_clusters_applications_knative.yml | 1 + ...09_clusters_applications_elastic_stack.yml | 1 + ...16175310_clusters_applications_jupyter.yml | 1 + ...216175312_clusters_applications_cilium.yml | 1 + ...0216175314_clusters_management_project.yml | 1 + ...175320_projects_with_terraform_reports.yml | 1 + ...6175322_projects_with_terraform_states.yml | 1 + .../20210216175324_terraform_reports.yml | 1 + .../20210216175326_terraform_states.yml | 1 + ...29_clusters_applications_cert_managers.yml | 1 + ...10216175331_clusters_applications_helm.yml | 1 + ...16175333_clusters_applications_ingress.yml | 1 + ...16175335_clusters_applications_knative.yml | 1 + ...0216175337_clusters_management_project.yml | 1 + .../20210216175339_clusters_disabled.yml | 1 + .../20210216175341_clusters_enabled.yml | 1 + .../20210216175343_clusters_platforms_gke.yml | 1 + .../20210216175345_clusters_platforms_eks.yml | 1 + ...20210216175346_clusters_platforms_user.yml | 1 + ...10216175348_instance_clusters_disabled.yml | 1 + ...210216175350_instance_clusters_enabled.yml | 1 + ...20210216175352_group_clusters_disabled.yml | 1 + .../20210216175354_group_clusters_enabled.yml | 1 + ...210216175356_project_clusters_disabled.yml | 1 + ...0210216175358_project_clusters_enabled.yml | 1 + ...175403_projects_with_prometheus_alerts.yml | 1 + ..._ingress_modsecurity_packets_processed.yml | 1 + ..._ingress_modsecurity_packets_anomalous.yml | 1 + ...20210216175446_network_policy_forwards.yml | 1 + .../20210216175448_network_policy_drops.yml | 1 + ...0216175450_ingress_modsecurity_logging.yml | 1 + ...216175452_ingress_modsecurity_blocking.yml | 1 + ...216175454_ingress_modsecurity_disabled.yml | 1 + ...5456_ingress_modsecurity_not_installed.yml | 1 + .../counts_all/20210216175510_ci_builds.yml | 1 + .../20210216175512_ci_internal_pipelines.yml | 1 + .../20210216175514_ci_external_pipelines.yml | 1 + ...6175516_ci_pipeline_config_auto_devops.yml | 1 + ...16175518_ci_pipeline_config_repository.yml | 1 + .../counts_all/20210216175520_ci_runners.yml | 3 +- .../counts_all/20210216175521_ci_triggers.yml | 1 + .../20210216175523_ci_pipeline_schedules.yml | 1 + .../counts_all/20210216175525_ci_builds.yml | 1 + .../20210216175527_ci_external_pipelines.yml | 1 + .../20210216175529_ci_internal_pipelines.yml | 1 + ...6175531_ci_pipeline_config_auto_devops.yml | 1 + ...16175533_ci_pipeline_config_repository.yml | 1 + .../20210216175535_ci_pipeline_schedules.yml | 1 + .../20210216175537_ci_pipelines.yml | 1 + .../counts_all/20210216175539_ci_triggers.yml | 1 + .../counts_all/20210216175612_dast_jobs.yml | 1 + .../20210216175614_user_dast_jobs.yml | 1 + .../counts_all/20210216175621_web_hooks.yml | 1 + .../20210216175623_projects_asana_active.yml | 1 + .../20210216175625_groups_asana_active.yml | 1 + .../20210216175627_templates_asana_active.yml | 1 + .../20210216175628_instances_asana_active.yml | 1 + ...75630_projects_inheriting_asana_active.yml | 1 + ...6175632_groups_inheriting_asana_active.yml | 1 + ...0210216175634_projects_assembla_active.yml | 1 + .../20210216175636_groups_assembla_active.yml | 1 + ...210216175638_templates_assembla_active.yml | 1 + ...210216175640_instances_assembla_active.yml | 1 + ...42_projects_inheriting_assembla_active.yml | 1 + ...5644_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 + ...5653_projects_inheriting_bamboo_active.yml | 1 + ...175655_groups_inheriting_bamboo_active.yml | 1 + ...0210216175657_projects_bugzilla_active.yml | 1 + .../20210216175659_groups_bugzilla_active.yml | 1 + ...210216175701_templates_bugzilla_active.yml | 1 + ...210216175702_instances_bugzilla_active.yml | 1 + ...04_projects_inheriting_bugzilla_active.yml | 1 + ...5706_groups_inheriting_bugzilla_active.yml | 1 + ...210216175708_projects_buildkite_active.yml | 1 + ...20210216175710_groups_buildkite_active.yml | 1 + ...10216175712_templates_buildkite_active.yml | 1 + ...10216175714_instances_buildkite_active.yml | 1 + ...6_projects_inheriting_buildkite_active.yml | 1 + ...717_groups_inheriting_buildkite_active.yml | 1 + ...0210216175719_projects_campfire_active.yml | 1 + .../20210216175721_groups_campfire_active.yml | 1 + ...210216175723_templates_campfire_active.yml | 1 + ...210216175725_instances_campfire_active.yml | 1 + ...27_projects_inheriting_campfire_active.yml | 1 + ...5729_groups_inheriting_campfire_active.yml | 1 + ...10216175731_projects_confluence_active.yml | 1 + ...0210216175733_groups_confluence_active.yml | 1 + ...0216175734_templates_confluence_active.yml | 1 + ...0216175736_instances_confluence_active.yml | 1 + ..._projects_inheriting_confluence_active.yml | 1 + ...40_groups_inheriting_confluence_active.yml | 1 + ...2_projects_custom_issue_tracker_active.yml | 1 + ...744_groups_custom_issue_tracker_active.yml | 1 + ..._templates_custom_issue_tracker_active.yml | 1 + ..._instances_custom_issue_tracker_active.yml | 1 + ...inheriting_custom_issue_tracker_active.yml | 1 + ...inheriting_custom_issue_tracker_active.yml | 1 + ...20210216175753_projects_discord_active.yml | 1 + .../20210216175755_groups_discord_active.yml | 1 + ...0210216175756_templates_discord_active.yml | 1 + ...0210216175758_instances_discord_active.yml | 1 + ...800_projects_inheriting_discord_active.yml | 1 + ...75802_groups_inheriting_discord_active.yml | 1 + ...0210216175804_projects_drone_ci_active.yml | 1 + .../20210216175806_groups_drone_ci_active.yml | 1 + ...210216175807_templates_drone_ci_active.yml | 1 + ...210216175809_instances_drone_ci_active.yml | 1 + ...11_projects_inheriting_drone_ci_active.yml | 1 + ...5813_groups_inheriting_drone_ci_active.yml | 1 + ...6175815_projects_emails_on_push_active.yml | 1 + ...216175817_groups_emails_on_push_active.yml | 1 + ...175818_templates_emails_on_push_active.yml | 1 + ...175820_instances_emails_on_push_active.yml | 1 + ...jects_inheriting_emails_on_push_active.yml | 1 + ...roups_inheriting_emails_on_push_active.yml | 1 + ...16175826_projects_external_wiki_active.yml | 1 + ...0216175828_groups_external_wiki_active.yml | 1 + ...6175829_templates_external_wiki_active.yml | 1 + ...6175831_instances_external_wiki_active.yml | 1 + ...ojects_inheriting_external_wiki_active.yml | 1 + ...groups_inheriting_external_wiki_active.yml | 1 + ...0210216175837_projects_flowdock_active.yml | 1 + .../20210216175839_groups_flowdock_active.yml | 1 + ...210216175840_templates_flowdock_active.yml | 1 + ...210216175842_instances_flowdock_active.yml | 1 + ...44_projects_inheriting_flowdock_active.yml | 1 + ...5846_groups_inheriting_flowdock_active.yml | 1 + ...16175859_projects_hangouts_chat_active.yml | 1 + ...0216175901_groups_hangouts_chat_active.yml | 1 + ...6175902_templates_hangouts_chat_active.yml | 1 + ...6175904_instances_hangouts_chat_active.yml | 1 + ...ojects_inheriting_hangouts_chat_active.yml | 1 + ...groups_inheriting_hangouts_chat_active.yml | 1 + ...20210216175910_projects_hipchat_active.yml | 1 + .../20210216175912_groups_hipchat_active.yml | 1 + ...0210216175913_templates_hipchat_active.yml | 1 + ...0210216175915_instances_hipchat_active.yml | 1 + ...917_projects_inheriting_hipchat_active.yml | 1 + ...75919_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 + ...75928_projects_inheriting_irker_active.yml | 1 + ...6175930_groups_inheriting_irker_active.yml | 1 + ...20210216175932_projects_jenkins_active.yml | 1 + .../20210216175934_groups_jenkins_active.yml | 1 + ...0210216175935_templates_jenkins_active.yml | 1 + ...0210216175937_instances_jenkins_active.yml | 1 + ...939_projects_inheriting_jenkins_active.yml | 1 + ...75941_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 + ...175950_projects_inheriting_jira_active.yml | 1 + ...16175952_groups_inheriting_jira_active.yml | 1 + ...10216175954_projects_mattermost_active.yml | 1 + ...0210216175956_groups_mattermost_active.yml | 1 + ...0216175957_templates_mattermost_active.yml | 1 + ...0216175959_instances_mattermost_active.yml | 1 + ..._projects_inheriting_mattermost_active.yml | 1 + ...03_groups_inheriting_mattermost_active.yml | 1 + ...jects_mattermost_slash_commands_active.yml | 1 + ...roups_mattermost_slash_commands_active.yml | 1 + ...lates_mattermost_slash_commands_active.yml | 1 + ...ances_mattermost_slash_commands_active.yml | 1 + ...iting_mattermost_slash_commands_active.yml | 1 + ...iting_mattermost_slash_commands_active.yml | 1 + ...180016_projects_microsoft_teams_active.yml | 1 + ...16180018_groups_microsoft_teams_active.yml | 1 + ...80019_templates_microsoft_teams_active.yml | 1 + ...80021_instances_microsoft_teams_active.yml | 1 + ...ects_inheriting_microsoft_teams_active.yml | 1 + ...oups_inheriting_microsoft_teams_active.yml | 1 + ...210216180027_projects_packagist_active.yml | 1 + ...20210216180029_groups_packagist_active.yml | 1 + ...10216180030_templates_packagist_active.yml | 1 + ...10216180032_instances_packagist_active.yml | 1 + ...4_projects_inheriting_packagist_active.yml | 1 + ...036_groups_inheriting_packagist_active.yml | 1 + ...180038_projects_pipelines_email_active.yml | 1 + ...16180040_groups_pipelines_email_active.yml | 1 + ...80041_templates_pipelines_email_active.yml | 1 + ...80043_instances_pipelines_email_active.yml | 1 + ...ects_inheriting_pipelines_email_active.yml | 1 + ...oups_inheriting_pipelines_email_active.yml | 1 + ...6180049_projects_pivotaltracker_active.yml | 1 + ...216180051_groups_pivotaltracker_active.yml | 1 + ...180052_templates_pivotaltracker_active.yml | 1 + ...180054_instances_pivotaltracker_active.yml | 1 + ...jects_inheriting_pivotaltracker_active.yml | 1 + ...roups_inheriting_pivotaltracker_active.yml | 1 + ...0210216180100_projects_pushover_active.yml | 1 + .../20210216180102_groups_pushover_active.yml | 1 + ...210216180104_templates_pushover_active.yml | 1 + ...210216180105_instances_pushover_active.yml | 1 + ...07_projects_inheriting_pushover_active.yml | 1 + ...0109_groups_inheriting_pushover_active.yml | 1 + ...20210216180111_projects_redmine_active.yml | 1 + .../20210216180113_groups_redmine_active.yml | 1 + ...0210216180115_templates_redmine_active.yml | 1 + ...0210216180116_instances_redmine_active.yml | 1 + ...118_projects_inheriting_redmine_active.yml | 1 + ...80120_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 + ...80129_projects_inheriting_slack_active.yml | 1 + ...6180131_groups_inheriting_slack_active.yml | 1 + ...3_projects_slack_slash_commands_active.yml | 1 + ...135_groups_slack_slash_commands_active.yml | 1 + ..._templates_slack_slash_commands_active.yml | 1 + ..._instances_slack_slash_commands_active.yml | 1 + ...inheriting_slack_slash_commands_active.yml | 1 + ...inheriting_slack_slash_commands_active.yml | 1 + ...0210216180144_projects_teamcity_active.yml | 1 + .../20210216180146_groups_teamcity_active.yml | 1 + ...210216180148_templates_teamcity_active.yml | 1 + ...210216180149_instances_teamcity_active.yml | 1 + ...51_projects_inheriting_teamcity_active.yml | 1 + ...0153_groups_inheriting_teamcity_active.yml | 1 + ...16180155_projects_unify_circuit_active.yml | 1 + ...0216180157_groups_unify_circuit_active.yml | 1 + ...6180159_templates_unify_circuit_active.yml | 1 + ...6180201_instances_unify_circuit_active.yml | 1 + ...ojects_inheriting_unify_circuit_active.yml | 1 + ...groups_inheriting_unify_circuit_active.yml | 1 + ...0216180206_projects_webex_teams_active.yml | 1 + ...210216180208_groups_webex_teams_active.yml | 1 + ...216180210_templates_webex_teams_active.yml | 1 + ...216180212_instances_webex_teams_active.yml | 1 + ...projects_inheriting_webex_teams_active.yml | 1 + ...5_groups_inheriting_webex_teams_active.yml | 1 + ...0210216180217_projects_youtrack_active.yml | 1 + .../20210216180219_groups_youtrack_active.yml | 1 + ...210216180221_templates_youtrack_active.yml | 1 + ...210216180223_instances_youtrack_active.yml | 1 + ...25_projects_inheriting_youtrack_active.yml | 1 + ...0226_groups_inheriting_youtrack_active.yml | 1 + ...0216180228_projects_jira_server_active.yml | 1 + ...10216180230_projects_jira_cloud_active.yml | 1 + ...180232_projects_jira_dvcs_cloud_active.yml | 1 + ...80234_projects_jira_dvcs_server_active.yml | 1 + .../20210216180239_personal_snippets.yml | 1 + .../20210216180241_project_snippets.yml | 1 + .../20210216180242_web_ide_commits.yml | 1 + .../20210216180244_web_ide_views.yml | 1 + .../20210216180246_web_ide_merge_requests.yml | 1 + .../20210216180248_web_ide_previews.yml | 1 + .../20210216180250_web_ide_terminals.yml | 1 + .../20210216180252_web_ide_pipelines.yml | 1 + .../20210216180253_snippet_comment.yml | 1 + .../20210216180255_snippet_create.yml | 1 + .../20210216180257_snippet_update.yml | 1 + ...0210216180259_static_site_editor_views.yml | 1 + ...10216180301_static_site_editor_commits.yml | 1 + ...0303_static_site_editor_merge_requests.yml | 1 + ...4_user_preferences_user_gitpod_enabled.yml | 1 + .../counts_all/20210216180306_snippets.yml | 1 + .../counts_all/20210216180316_snippets.yml | 1 + .../20210216180344_api_fuzzing_jobs.yml | 1 + .../20210216180346_api_fuzzing_dnd_jobs.yml | 1 + .../20210216180348_user_api_fuzzing_jobs.yml | 1 + ...210216180350_user_api_fuzzing_dnd_jobs.yml | 1 + .../20210216180410_pool_repositories.yml | 1 + .../20210216180413_all_searches.yml | 1 + .../20210216180414_navbar_searches.yml | 1 + .../20210216180416_i_search_total.yml | 1 + ..._created_from_gitlab_error_tracking_ui.yml | 7 +- ...80436_issues_with_associated_zoom_link.yml | 4 +- ...180438_issues_using_zoom_quick_actions.yml | 4 +- ...es_with_embedded_grafana_charts_approx.yml | 4 +- ...10216180441_issues_created_from_alerts.yml | 4 +- ...216180443_issues_created_gitlab_alerts.yml | 4 +- ...45_issues_created_manually_from_alerts.yml | 4 +- .../20210216180447_incident_issues.yml | 4 +- ...210216180449_alert_bot_incident_issues.yml | 4 +- ...20210216180451_incident_labeled_issues.yml | 4 +- ...0216180453_projects_creating_incidents.yml | 7 +- ...4_projects_with_error_tracking_enabled.yml | 4 +- ...6_projects_with_alerts_service_enabled.yml | 4 +- ...216180458_projects_with_alerts_created.yml | 7 +- ...ojects_with_enabled_alert_integrations.yml | 7 +- ...6180502_status_page_incident_publishes.yml | 16 - ...80504_status_page_incident_unpublishes.yml | 16 - .../20210216180506_status_page_projects.yml | 16 - .../20210216180507_status_page_issues.yml | 16 - ...7_projects_with_error_tracking_enabled.yml | 9 +- ...20210216180518_projects_with_incidents.yml | 9 +- ...16180520_projects_with_alert_incidents.yml | 9 +- ...16180522_projects_incident_sla_enabled.yml | 16 - ...16180628_projects_imported_from_github.yml | 1 + ...16180630_projects_imported_from_github.yml | 1 + ...0210216180632_unique_users_all_imports.yml | 1 + .../counts_all/20210216180634_gitlab.yml | 1 + .../counts_all/20210216180636_gitlab_v1.yml | 1 + .../20210216180638_gitlab_project.yml | 1 + .../counts_all/20210216180639_gitlab.yml | 1 + .../counts_all/20210216180641_github.yml | 1 + .../counts_all/20210216180643_bitbucket.yml | 1 + .../20210216180645_bitbucket_server.yml | 1 + .../counts_all/20210216180647_gitea.yml | 1 + .../metrics/counts_all/20210216180649_git.yml | 1 + .../counts_all/20210216180650_manifest.yml | 1 + .../20210216180652_gitlab_migration.yml | 1 + .../counts_all/20210216180654_jira.yml | 1 + .../counts_all/20210216180656_fogbugz.yml | 1 + .../counts_all/20210216180658_phabricator.yml | 1 + .../metrics/counts_all/20210216180700_csv.yml | 1 + .../20210216180702_group_import.yml | 1 + .../20210216180703_gitlab_migration.yml | 1 + .../counts_all/20210216180705_total.yml | 1 + .../20210216180707_gitlab_project.yml | 1 + .../counts_all/20210216180709_gitlab.yml | 1 + .../counts_all/20210216180711_github.yml | 1 + .../counts_all/20210216180713_bitbucket.yml | 1 + .../20210216180715_bitbucket_server.yml | 1 + .../counts_all/20210216180716_gitea.yml | 1 + .../metrics/counts_all/20210216180718_git.yml | 1 + .../counts_all/20210216180720_manifest.yml | 1 + .../counts_all/20210216180722_jira.yml | 1 + .../counts_all/20210216180724_fogbugz.yml | 1 + .../counts_all/20210216180726_phabricator.yml | 1 + .../metrics/counts_all/20210216180727_csv.yml | 1 + .../20210216180729_groups_imported.yml | 1 + .../20210216180734_wiki_pages_create.yml | 1 + .../20210216180736_wiki_pages_update.yml | 1 + .../20210216180738_wiki_pages_delete.yml | 1 + ...80740_design_management_designs_create.yml | 1 + ...80741_design_management_designs_update.yml | 1 + ...80743_design_management_designs_delete.yml | 1 + .../counts_all/20210216180750_groups.yml | 1 + .../counts_all/20210216180752_keys.yml | 1 + .../counts_all/20210216180754_events.yml | 1 + .../counts_all/20210216180756_groups.yml | 1 + .../20210216180758_users_created.yml | 1 + ...0216180927_grafana_integrated_projects.yml | 1 + ...16180929_projects_with_tracing_enabled.yml | 1 + ...10216180931_projects_prometheus_active.yml | 1 + ...0210216180933_groups_prometheus_active.yml | 1 + ...0216180934_templates_prometheus_active.yml | 1 + ...0216180936_instances_prometheus_active.yml | 1 + ..._projects_inheriting_prometheus_active.yml | 1 + ...40_groups_inheriting_prometheus_active.yml | 1 + ...operations_dashboard_default_dashboard.yml | 1 + ...ns_dashboard_users_with_projects_added.yml | 1 + .../counts_all/20210216180945_clusters.yml | 1 + ...80947_clusters_applications_prometheus.yml | 1 + ...operations_dashboard_default_dashboard.yml | 1 + ...16180951_projects_with_tracing_enabled.yml | 1 + ...ns_dashboard_users_with_projects_added.yml | 1 + .../counts_all/20210216181009_lfs_objects.yml | 1 + .../20210216181011_projects_with_packages.yml | 1 + .../counts_all/20210216181012_packages.yml | 1 + ...ojects_with_expiration_policy_disabled.yml | 1 + ...rojects_with_expiration_policy_enabled.yml | 1 + ...on_policy_enabled_with_keep_n_set_to_1.yml | 1 + ...on_policy_enabled_with_keep_n_set_to_5.yml | 1 + ...n_policy_enabled_with_keep_n_set_to_10.yml | 1 + ...n_policy_enabled_with_keep_n_set_to_25.yml | 1 + ...n_policy_enabled_with_keep_n_set_to_50.yml | 1 + ..._policy_enabled_with_keep_n_set_to_100.yml | 1 + ..._policy_enabled_with_cadence_set_to_1d.yml | 1 + ..._policy_enabled_with_cadence_set_to_7d.yml | 1 + ...policy_enabled_with_cadence_set_to_14d.yml | 1 + ...icy_enabled_with_cadence_set_to_1month.yml | 1 + ...icy_enabled_with_cadence_set_to_3month.yml | 1 + ...licy_enabled_with_older_than_set_to_7d.yml | 1 + ...icy_enabled_with_older_than_set_to_14d.yml | 1 + ...icy_enabled_with_older_than_set_to_30d.yml | 1 + ...icy_enabled_with_older_than_set_to_90d.yml | 1 + ...ation_policy_enabled_with_keep_n_unset.yml | 1 + ...n_policy_enabled_with_older_than_unset.yml | 1 + .../counts_all/20210216181051_vendor.yml | 1 + .../20210216181055_projects_with_packages.yml | 1 + .../counts_all/20210216181102_issues.yml | 1 + .../counts_all/20210216181104_label_lists.yml | 1 + .../counts_all/20210216181108_milestones.yml | 1 + .../counts_all/20210216181109_uploads.yml | 1 + .../counts_all/20210216181111_labels.yml | 1 + .../counts_all/20210216181113_notes.yml | 1 + .../counts_all/20210216181115_issues.yml | 1 + .../counts_all/20210216181117_notes.yml | 1 + .../counts_all/20210216181119_projects.yml | 1 + .../counts_all/20210216181121_todos.yml | 1 + ...16181122_service_desk_enabled_projects.yml | 1 + .../20210216181124_service_desk_issues.yml | 1 + .../20210216181126_projects_jira_active.yml | 1 + ...181128_projects_jira_dvcs_cloud_active.yml | 1 + ...81130_projects_jira_dvcs_server_active.yml | 1 + .../counts_all/20210216181134_epics.yml | 1 + .../counts_all/20210216181135_label_lists.yml | 1 + .../20210216181249_feature_flags.yml | 1 + .../counts_all/20210216181252_boards.yml | 1 + .../counts_all/20210216181254_projects.yml | 1 + .../counts_all/20210216181256_todos.yml | 1 + ...1258_jira_imports_total_imported_count.yml | 1 + ...0216181259_jira_imports_projects_count.yml | 1 + ...ra_imports_total_imported_issues_count.yml | 1 + .../counts_all/20210216181908_deploy_keys.yml | 1 + .../20210216181911_successful_deployments.yml | 1 + .../20210216181912_failed_deployments.yml | 1 + .../20210216181914_environments.yml | 1 + .../20210216181916_in_review_folder.yml | 1 + .../counts_all/20210216181918_releases.yml | 1 + .../counts_all/20210216181926_deployments.yml | 1 + .../20210216181928_failed_deployments.yml | 1 + .../counts_all/20210216181930_releases.yml | 1 + .../20210216181932_successful_deployments.yml | 1 + .../20210216181946_pages_domains.yml | 1 + ...216181949_clusters_applications_runner.yml | 1 + ..._user_unique_users_all_secure_scanners.yml | 1 + .../20210216182002_remote_mirrors.yml | 1 + .../20210216182004_commit_comment.yml | 1 + .../20210216182006_source_code_pushes.yml | 1 + .../counts_all/20210216182010_deploy_keys.yml | 1 + .../counts_all/20210216182012_keys.yml | 1 + ...overriding_approvers_per_merge_request.yml | 1 + ...overriding_approvers_per_merge_request.yml | 1 + .../20210216182017_remote_mirrors.yml | 1 + .../counts_all/20210216182112_sast_jobs.yml | 2 +- .../20210216182114_secret_detection_jobs.yml | 4 +- .../20210216182116_user_sast_jobs.yml | 6 +- ...10216182118_user_secret_detection_jobs.yml | 6 +- ...2454_protected_branches_except_default.yml | 1 + ...20210216182547_projects_datadog_active.yml | 1 + .../20210216182549_groups_datadog_active.yml | 1 + ...0210216182551_templates_datadog_active.yml | 1 + ...0210216182553_instances_datadog_active.yml | 1 + ...555_projects_inheriting_datadog_active.yml | 1 + ...82557_groups_inheriting_datadog_active.yml | 1 + .../20210216182614_projects_ewm_active.yml | 1 + .../20210216182616_groups_ewm_active.yml | 1 + .../20210216182618_templates_ewm_active.yml | 1 + .../20210216182620_instances_ewm_active.yml | 1 + ...6182622_projects_inheriting_ewm_active.yml | 1 + ...216182623_groups_inheriting_ewm_active.yml | 1 + ...20210216182722_projects_mock_ci_active.yml | 1 + .../20210216182724_groups_mock_ci_active.yml | 1 + ...0210216182726_templates_mock_ci_active.yml | 1 + ...0210216182728_instances_mock_ci_active.yml | 1 + ...730_projects_inheriting_mock_ci_active.yml | 1 + ...82732_groups_inheriting_mock_ci_active.yml | 1 + ...182734_projects_mock_monitoring_active.yml | 1 + ...16182736_groups_mock_monitoring_active.yml | 1 + ...82738_templates_mock_monitoring_active.yml | 1 + ...82739_instances_mock_monitoring_active.yml | 1 + ...ects_inheriting_mock_monitoring_active.yml | 1 + ...oups_inheriting_mock_monitoring_active.yml | 1 + ...ents_i_package_composer_delete_package.yml | 1 + ...events_i_package_composer_pull_package.yml | 1 + ...events_i_package_composer_push_package.yml | 1 + ..._events_i_package_conan_delete_package.yml | 1 + ...ge_events_i_package_conan_pull_package.yml | 1 + ...ge_events_i_package_conan_push_package.yml | 1 + ...nts_i_package_container_delete_package.yml | 1 + ...vents_i_package_container_pull_package.yml | 1 + ...vents_i_package_container_push_package.yml | 1 + ...events_i_package_debian_delete_package.yml | 1 + ...e_events_i_package_debian_pull_package.yml | 1 + ...e_events_i_package_debian_push_package.yml | 1 + ...ackage_events_i_package_delete_package.yml | 1 + ...package_delete_package_by_deploy_token.yml | 1 + ...ents_i_package_delete_package_by_guest.yml | 1 + ...vents_i_package_delete_package_by_user.yml | 1 + ...vents_i_package_generic_delete_package.yml | 1 + ..._events_i_package_generic_pull_package.yml | 1 + ..._events_i_package_generic_push_package.yml | 1 + ...events_i_package_golang_delete_package.yml | 1 + ...e_events_i_package_golang_pull_package.yml | 1 + ...e_events_i_package_golang_push_package.yml | 1 + ..._events_i_package_maven_delete_package.yml | 1 + ...ge_events_i_package_maven_pull_package.yml | 1 + ...ge_events_i_package_maven_push_package.yml | 1 + ...ge_events_i_package_npm_delete_package.yml | 1 + ...kage_events_i_package_npm_pull_package.yml | 1 + ...kage_events_i_package_npm_push_package.yml | 1 + ..._events_i_package_nuget_delete_package.yml | 1 + ...ge_events_i_package_nuget_pull_package.yml | 1 + ...ge_events_i_package_nuget_push_package.yml | 1 + ..._package_events_i_package_pull_package.yml | 1 + ...i_package_pull_package_by_deploy_token.yml | 1 + ...events_i_package_pull_package_by_guest.yml | 1 + ..._events_i_package_pull_package_by_user.yml | 1 + ..._package_events_i_package_push_package.yml | 1 + ...i_package_push_package_by_deploy_token.yml | 1 + ...events_i_package_push_package_by_guest.yml | 1 + ..._events_i_package_push_package_by_user.yml | 1 + ...e_events_i_package_pypi_delete_package.yml | 1 + ...age_events_i_package_pypi_pull_package.yml | 1 + ...age_events_i_package_pypi_push_package.yml | 1 + ...ge_events_i_package_tag_delete_package.yml | 1 + ...kage_events_i_package_tag_pull_package.yml | 1 + ...kage_events_i_package_tag_push_package.yml | 1 + .../20210216183023_wiki_pages_view.yml | 1 + .../20210216183146_coverage_fuzzing_jobs.yml | 1 + ...0210216183149_dast_on_demand_pipelines.yml | 1 + .../20210216183400_omniauth_providers.yml | 1 + .../counts_all/20210216183402_two-factor.yml | 1 + ...210216183404_two-factor-via-u2f-device.yml | 1 + ...6183406_two-factor-via-webauthn-device.yml | 1 + .../counts_all/20210216183408_standard.yml | 1 + .../20210216183410_google_oauth2.yml | 1 + ...10216183514_user_coverage_fuzzing_jobs.yml | 1 + .../20210216183904_g_compliance_dashboard.yml | 16 - ...210216183906_g_compliance_audit_events.yml | 16 - ...210216183908_i_compliance_audit_events.yml | 16 - ...3910_i_compliance_credential_inventory.yml | 16 - ...16183912_a_compliance_audit_events_api.yml | 16 - ...ompliance_unique_visits_for_any_target.yml | 16 - ...ents_i_package_rubygems_delete_package.yml | 1 + ...events_i_package_rubygems_pull_package.yml | 1 + ...events_i_package_rubygems_push_package.yml | 1 + ...h_enabled_alert_integrations_histogram.yml | 1 + ...ackage_terraform_module_delete_package.yml | 1 + ..._package_terraform_module_pull_package.yml | 1 + ..._package_terraform_module_push_package.yml | 1 + ...423005644_i_analytics_dev_ops_adoption.yml | 1 + ...27212450_geo_secondary_web_oauth_users.yml | 1 + ...iewing_analytics_group_devops_adoption.yml | 1 + ...045402_ci_runners_instance_type_active.yml | 3 +- ...502050341_ci_runners_group_type_active.yml | 3 +- ...2050834_ci_runners_project_type_active.yml | 3 +- .../20210502050942_ci_runners_online.yml | 3 +- ...ci_runners_instance_type_active_online.yml | 3 +- ...22_ci_runners_group_type_active_online.yml | 3 +- ..._ci_runners_project_type_active_online.yml | 3 +- ..._product_marketing_email_create_0_sent.yml | 1 + ...t_marketing_email_create_0_cta_clicked.yml | 1 + ..._product_marketing_email_create_1_sent.yml | 1 + ...t_marketing_email_create_1_cta_clicked.yml | 1 + ..._product_marketing_email_create_2_sent.yml | 1 + ...t_marketing_email_create_2_cta_clicked.yml | 1 + ..._product_marketing_email_verify_0_sent.yml | 1 + ...t_marketing_email_verify_0_cta_clicked.yml | 1 + ..._product_marketing_email_verify_1_sent.yml | 1 + ...t_marketing_email_verify_1_cta_clicked.yml | 1 + ..._product_marketing_email_verify_2_sent.yml | 1 + ...t_marketing_email_verify_2_cta_clicked.yml | 1 + ...n_product_marketing_email_trial_0_sent.yml | 1 + ...ct_marketing_email_trial_0_cta_clicked.yml | 1 + ...n_product_marketing_email_trial_1_sent.yml | 1 + ...ct_marketing_email_trial_1_cta_clicked.yml | 1 + ...n_product_marketing_email_trial_2_sent.yml | 1 + ...ct_marketing_email_trial_2_cta_clicked.yml | 1 + ...in_product_marketing_email_team_0_sent.yml | 1 + ...uct_marketing_email_team_0_cta_clicked.yml | 1 + ...in_product_marketing_email_team_1_sent.yml | 1 + ...uct_marketing_email_team_1_cta_clicked.yml | 1 + ...in_product_marketing_email_team_2_sent.yml | 1 + ...uct_marketing_email_team_2_cta_clicked.yml | 1 + .../20210514141520_project_imports_total.yml | 1 + ...age_events_i_package_helm_pull_package.yml | 1 + ...duct_marketing_email_experience_0_sent.yml | 1 + ...age_events_i_package_helm_push_package.yml | 21 + ...ts_i_package_nuget_pull_symbol_package.yml | 22 + ...ts_i_package_nuget_push_symbol_package.yml | 22 + ...e_events_i_package_pull_symbol_package.yml | 22 + ...ge_pull_symbol_package_by_deploy_token.yml | 22 + ...i_package_pull_symbol_package_by_guest.yml | 22 + ..._i_package_pull_symbol_package_by_user.yml | 22 + ...e_events_i_package_push_symbol_package.yml | 22 + ...ge_push_symbol_package_by_deploy_token.yml | 22 + ...i_package_push_symbol_package_by_guest.yml | 22 + ..._i_package_push_symbol_package_by_user.yml | 22 + .../license/20210201124932_recorded_at.yml | 1 + .../metrics/license/20210201124933_uuid.yml | 1 + .../license/20210204124827_hostname.yml | 1 + .../20210204124829_active_user_count.yml | 1 + .../license/20210204124928_version.yml | 1 + .../license/20210204124936_version.yml | 1 + ...0210204124938_recording_ce_finished_at.yml | 1 + .../license/20210216175601_version.yml | 1 + .../20210216175602_installation_type.yml | 1 + .../license/20210216181053_version.yml | 1 + .../license/20210216183237_version.yml | 1 + .../collected_data_categories_schema.json | 7 + config/metrics/schema.json | 2 +- .../20210201124935_database_adapter.yml | 1 + ...204124856_instance_auto_devops_enabled.yml | 1 + ...10204124858_container_registry_enabled.yml | 1 + ...0210204124900_dependency_proxy_enabled.yml | 1 + ...04124902_gitlab_shared_runners_enabled.yml | 1 + .../20210204124904_gravatar_enabled.yml | 1 + .../settings/20210204124906_ldap_enabled.yml | 1 + .../20210204124908_mattermost_enabled.yml | 1 + .../20210204124910_omniauth_enabled.yml | 1 + .../20210204124912_prometheus_enabled.yml | 1 + ...10204124914_prometheus_metrics_enabled.yml | 1 + .../20210204124916_reply_by_email_enabled.yml | 1 + .../20210204124918_signup_enabled.yml | 1 + ...920_web_ide_clientside_preview_enabled.yml | 1 + .../20210204124922_grafana_link_enabled.yml | 1 + .../settings/20210204124934_enabled.yml | 1 + .../settings/20210216174829_smtp_server.yml | 1 + ...0216175459_ingress_modsecurity_enabled.yml | 1 + .../settings/20210216175604_edition.yml | 1 + ...6175606_ldap_encrypted_secrets_enabled.yml | 1 + .../settings/20210216175609_version.yml | 1 + .../20210216180314_gitpod_enabled.yml | 1 + .../settings/20210216180836_enabled.yml | 1 + .../settings/20210216180838_enabled.yml | 1 + .../settings/20210216180840_direct_upload.yml | 1 + .../20210216180841_background_upload.yml | 1 + .../settings/20210216180843_provider.yml | 1 + .../settings/20210216180845_enabled.yml | 1 + .../settings/20210216180847_enabled.yml | 1 + .../settings/20210216180849_direct_upload.yml | 1 + .../20210216180851_background_upload.yml | 1 + .../settings/20210216180852_provider.yml | 1 + .../settings/20210216180854_enabled.yml | 1 + .../settings/20210216180856_enabled.yml | 1 + .../settings/20210216180858_direct_upload.yml | 1 + .../20210216180900_background_upload.yml | 1 + .../settings/20210216180902_provider.yml | 1 + .../settings/20210216180903_enabled.yml | 1 + .../settings/20210216180905_enabled.yml | 1 + .../settings/20210216180907_direct_upload.yml | 1 + .../20210216180909_background_upload.yml | 1 + .../settings/20210216180911_provider.yml | 1 + .../settings/20210216180913_enabled.yml | 1 + .../settings/20210216180915_enabled.yml | 1 + .../settings/20210216180916_direct_upload.yml | 1 + .../20210216180918_background_upload.yml | 1 + .../settings/20210216180920_provider.yml | 1 + .../settings/20210216183241_filesystems.yml | 1 + .../settings/20210216183248_pg_system_id.yml | 1 + .../20210225045628_operating_system.yml | 1 + .../settings/20210321224827_gitaly_apdex.yml | 1 + .../settings/20210323120839_topology.yml | 1 + ...210702140138_collected_data_categories.yml | 23 + .../puma_actioncable.example.development.rb | 94 - config/routes.rb | 5 +- config/routes/admin.rb | 8 +- config/routes/project.rb | 28 +- config/routes/user.rb | 3 + config/settings.rb | 4 +- config/sidekiq_queues.yml | 6 + config/webpack.config.js | 26 +- danger/database/Dangerfile | 12 +- danger/datateam/Dangerfile | 18 +- danger/feature_flag/Dangerfile | 41 +- danger/gitaly/Dangerfile | 22 + danger/pajamas/Dangerfile | 1 - danger/specialization_labels/Dangerfile | 3 +- danger/vue_shared_documentation/Dangerfile | 22 + data/whats_new/202010230001_13_05.yml | 2 +- data/whats_new/202107220001_14_1.yml | 139 + ...1848_create_ci_instance_variables_on_ci.rb | 31 + db/ci_schema_migrations/20210617101848 | 1 + db/ci_structure.sql | 45 + db/fixtures/development/19_environments.rb | 2 +- db/gitlab_structure.sql | 3 - ...24144948_migrate_coverage_report_worker.rb | 4 +- ...10317210338_add_valid_runner_registrars.rb | 7 + ...ity_report_approval_rules_sidekiq_queue.rb | 4 +- ...tial_index_for_hashed_storage_migration.rb | 15 + ...056_add_merge_request_diff_commit_users.rb | 31 + ..._merge_request_diff_commit_user_columns.rb | 25 + ...032738_create_dast_site_profiles_builds.rb | 18 + ...uild_id_fk_to_dast_site_profiles_builds.rb | 19 + ...file_id_fk_to_dast_site_profiles_builds.rb | 19 + ...330_create_dast_scanner_profiles_builds.rb | 18 + ...d_id_fk_to_dast_scanner_profiles_builds.rb | 19 + ...e_id_fk_to_dast_scanner_profiles_builds.rb | 19 + ..._delete_legacy_operations_feature_flags.rb | 13 + ...611101034_add_devops_adoption_sast_dast.rb | 8 + ...tainer_scanning_max_size_to_plan_limits.rb | 7 + ...10615064342_add_issue_id_to_requirement.rb | 17 + ...16110748_add_issue_index_to_requirement.rb | 17 + ...11311_add_issue_requirement_foreign_key.rb | 19 + ...34905_add_timestamp_to_schema_migration.rb | 15 + ...6154808_remove_ci_build_protected_index.rb | 19 + ...mailgun_settings_to_application_setting.rb | 10 + ...nt_management_pending_alert_escalations.rb | 48 + ...617161348_cascade_delete_freeze_periods.rb | 23 + ...180131_migrate_usage_ping_sidekiq_queue.rb | 15 + ...1043337_rename_services_to_integrations.rb | 150 + ...rename_services_indexes_to_integrations.rb | 30 + .../20210621084632_add_summary_to_timelogs.rb | 10 + ...0030_add_text_limit_to_timelogs_summary.rb | 15 + ...s_adoption_snapshot_dependency_scanning.rb | 7 + ..._key_for_environment_id_to_environments.rb | 21 + ...eatures_enabled_to_application_settings.rb | 11 + ...nt_on_default_branch_to_vulnerabilities.rb | 17 + ...0623133635_create_error_tracking_errors.rb | 28 + ...ement_frameworks_pipeline_configuration.rb | 17 + ...21_add_devops_adoption_coverage_fuzzing.rb | 7 + ...24180613_add_last_synced_at_to_licenses.rb | 7 + ...4554_create_error_tracking_error_events.rb | 30 + ..._max_size_cluster_image_scanning_column.rb | 7 + ...t_entities_on_bulk_import_id_and_status.rb | 20 + ...339_add_invite_email_success_to_members.rb | 11 + ...10701111627_add_upvotes_count_to_issues.rb | 15 + ...42_add_ci_job_trace_size_to_plan_limits.rb | 7 + ...roject_settings_previous_default_branch.rb | 20 + ...anup_status_project_id_start_date_index.rb | 24 + ..._user_signups_cap_to_namespace_settings.rb | 17 + ...nce_runners_enabled_to_ci_pending_build.rb | 19 + ...713_add_devops_adoption_snapshots_index.rb | 17 + ...add_index_type_to_postgres_indexes_view.rb | 57 + ...37_add_premium_and_ultimate_plan_limits.rb | 40 + ...atus_to_merge_request_cleanup_schedules.rb | 25 + ..._vulnerability_finding_evidence_sources.rb | 26 + ...e_vulnerability_finding_evidence_assets.rb | 28 + ...210707171554_create_vulnerability_flags.rb | 30 + ...ings_previous_default_branch_text_limit.rb | 15 + ...ty_finding_evidence_supporting_messages.rb | 26 + ...ount_to_merge_request_cleanup_schedules.rb | 9 + ...229_add_security_scans_created_at_index.rb | 17 + ...131048_add_error_tracking_counter_cache.rb | 11 + ...6_remove_not_null_constraint_from_terms.rb | 11 + ...dex_batched_migration_jobs_by_max_value.rb | 17 + ..._change_default_job_token_scope_enabled.rb | 17 + ...st_cleanup_schedules_scheduled_at_index.rb | 20 + ...ion_vulnerability_management_used_count.rb | 7 + ...37_add_vulnerabilities_created_at_index.rb | 17 + ...0600_add_detected_at_to_vulnerabilities.rb | 18 + ...16074555_revert_default_job_token_scope.rb | 17 + ...ange_application_setting_terms_not_null.rb | 12 + ..._schedule_latest_pipeline_id_population.rb | 13 + ...request_diff_users_background_migration.rb | 11 + ...backfill_draft_status_on_merge_requests.rb | 32 + ...ove_clusters_applications_fluentd_table.rb | 26 + ...1_add_devops_adoption_sast_dast_indexes.rb | 20 + ...hed_migrations_old_format_job_arguments.rb | 32 + ...4_add_partial_index_for_ci_builds_token.rb | 17 + ..._add_ci_artifacts_devops_adoption_index.rb | 17 + ...project_authorizations_project_id_index.rb | 20 + ...164210_drop_remove_on_close_from_labels.rb | 19 + ...background_jobs_that_reference_services.rb | 14 + ...inalize_rename_services_to_integrations.rb | 13 + ...e_push_event_payloads_bigint_conversion.rb | 75 + ...48_schedule_delete_orphaned_deployments.rb | 26 + ...628124505_reset_job_token_scope_enabled.rb | 16 + ...2_remove_deprecated_modsecurity_columns.rb | 21 + ...04933_drop_index_on_ci_builds_for_token.rb | 17 + ...event_id_back_to_integer_for_gitlab_com.rb | 15 + ...701111909_backfill_issues_upvotes_count.rb | 26 + ...15312_add_upvotes_count_index_to_issues.rb | 17 + ...n_from_compliance_management_frameworks.rb | 7 + ..._schedule_latest_pipeline_id_population.rb | 28 + ...request_diff_users_background_migration.rb | 58 + ...0811122206_update_external_project_bots.rb | 2 +- ...10_cleanup_orphan_project_access_tokens.rb | 56 + db/schema_migrations/20210317210338 | 1 + db/schema_migrations/20210601132134 | 1 + db/schema_migrations/20210602155056 | 1 + db/schema_migrations/20210602155110 | 1 + db/schema_migrations/20210602164044 | 1 + db/schema_migrations/20210604032738 | 1 + db/schema_migrations/20210604034158 | 1 + db/schema_migrations/20210604034354 | 1 + db/schema_migrations/20210604051330 | 1 + db/schema_migrations/20210604051742 | 1 + db/schema_migrations/20210604051917 | 1 + db/schema_migrations/20210604133651 | 1 + db/schema_migrations/20210609202501 | 1 + db/schema_migrations/20210610042700 | 1 + db/schema_migrations/20210610153556 | 1 + db/schema_migrations/20210611101034 | 1 + db/schema_migrations/20210614124111 | 1 + db/schema_migrations/20210614142311 | 1 + db/schema_migrations/20210615064342 | 1 + db/schema_migrations/20210615234935 | 1 + db/schema_migrations/20210616110748 | 1 + db/schema_migrations/20210616111311 | 1 + db/schema_migrations/20210616134905 | 1 + db/schema_migrations/20210616145254 | 1 + db/schema_migrations/20210616154808 | 1 + db/schema_migrations/20210616185947 | 1 + db/schema_migrations/20210617022324 | 1 + db/schema_migrations/20210617161348 | 1 + db/schema_migrations/20210617180131 | 1 + db/schema_migrations/20210621043337 | 1 + db/schema_migrations/20210621044000 | 1 + db/schema_migrations/20210621084632 | 1 + db/schema_migrations/20210621090030 | 1 + db/schema_migrations/20210621091830 | 1 + db/schema_migrations/20210621111747 | 1 + db/schema_migrations/20210621155328 | 1 + db/schema_migrations/20210621164210 | 1 + db/schema_migrations/20210621223000 | 1 + db/schema_migrations/20210621223242 | 1 + db/schema_migrations/20210622041846 | 1 + db/schema_migrations/20210622135221 | 1 + db/schema_migrations/20210622141148 | 1 + db/schema_migrations/20210623074226 | 1 + db/schema_migrations/20210623123722 | 1 + db/schema_migrations/20210623133635 | 1 + db/schema_migrations/20210623163342 | 1 + db/schema_migrations/20210624112821 | 1 + db/schema_migrations/20210624180613 | 1 + db/schema_migrations/20210625094554 | 1 + db/schema_migrations/20210627204936 | 1 + db/schema_migrations/20210628124505 | 1 + db/schema_migrations/20210629101712 | 1 + db/schema_migrations/20210629104933 | 1 + db/schema_migrations/20210629153519 | 1 + db/schema_migrations/20210630025020 | 1 + db/schema_migrations/20210630144339 | 1 + db/schema_migrations/20210701111627 | 1 + db/schema_migrations/20210701111909 | 1 + db/schema_migrations/20210702124842 | 1 + db/schema_migrations/20210705124128 | 1 + db/schema_migrations/20210705130919 | 1 + db/schema_migrations/20210705132928 | 1 + db/schema_migrations/20210705144657 | 1 + db/schema_migrations/20210706084713 | 1 + db/schema_migrations/20210706115312 | 1 + db/schema_migrations/20210706120847 | 1 + db/schema_migrations/20210706142819 | 1 + db/schema_migrations/20210706152139 | 1 + db/schema_migrations/20210706213537 | 1 + db/schema_migrations/20210707095545 | 1 + db/schema_migrations/20210707151536 | 1 + db/schema_migrations/20210707171536 | 1 + db/schema_migrations/20210707171554 | 1 + db/schema_migrations/20210707173645 | 1 + db/schema_migrations/20210707181536 | 1 + db/schema_migrations/20210708063032 | 1 + db/schema_migrations/20210708124229 | 1 + db/schema_migrations/20210708130419 | 1 + db/schema_migrations/20210708131048 | 1 + db/schema_migrations/20210708134446 | 1 + db/schema_migrations/20210709085759 | 1 + db/schema_migrations/20210709132707 | 1 + db/schema_migrations/20210713070842 | 1 + db/schema_migrations/20210713135152 | 1 + db/schema_migrations/20210713144637 | 1 + db/schema_migrations/20210714120600 | 1 + db/schema_migrations/20210716074555 | 1 + db/schema_migrations/20210720083432 | 1 + db/schema_migrations/20210914095310 | 1 + db/structure.sql | 612 +- .../markdownlint-no-trailing-spaces.yml | 1 + doc/.vale/gitlab/Acronyms.yml | 2 + doc/.vale/gitlab/HeaderGerunds.yml | 14 + doc/.vale/gitlab/SubstitutionWarning.yml | 9 - doc/.vale/gitlab/Substitutions.yml | 9 + doc/.vale/gitlab/spelling-exceptions.txt | 3 + doc/README.md | 126 +- doc/administration/audit_events.md | 8 +- doc/administration/auth/README.md | 52 +- doc/administration/auth/atlassian.md | 2 +- doc/administration/auth/authentiq.md | 12 +- doc/administration/auth/index.md | 52 + doc/administration/auth/ldap/index.md | 1 + .../auth/ldap/ldap-troubleshooting.md | 2 +- doc/administration/auth/oidc.md | 272 +- doc/administration/auth/okta.md | 9 - doc/administration/compliance.md | 5 +- doc/administration/configure.md | 2 +- doc/administration/database_load_balancing.md | 45 +- .../external_pipeline_validation.md | 2 +- .../runbooks/planned_failover_multi_node.md | 22 +- .../runbooks/planned_failover_single_node.md | 22 +- doc/administration/geo/glossary.md | 4 +- .../geo/replication/configuration.md | 4 +- .../geo/replication/datatypes.md | 2 +- .../geo/replication/docker_registry.md | 12 +- doc/administration/geo/replication/faq.md | 8 +- .../geo/replication/location_aware_git_url.md | 2 +- .../geo/replication/remove_geo_node.md | 9 - .../geo/replication/security_review.md | 6 +- .../geo/replication/troubleshooting.md | 78 +- .../geo/replication/updating_the_geo_nodes.md | 4 +- doc/administration/geo/replication/usage.md | 2 +- .../replication/version_specific_updates.md | 20 +- doc/administration/geo/setup/database.md | 100 +- .../geo/setup/external_database.md | 6 +- doc/administration/geo/setup/index.md | 18 +- doc/administration/get_started.md | 291 + doc/administration/git_protocol.md | 2 +- doc/administration/gitaly/faq.md | 5 +- doc/administration/gitaly/index.md | 574 +- doc/administration/gitaly/praefect.md | 532 +- doc/administration/gitaly/troubleshooting.md | 372 + doc/administration/housekeeping.md | 72 +- .../repository_storages_admin_ui_v13_1.png | Bin 26234 -> 0 bytes doc/administration/incoming_email.md | 18 +- doc/administration/index.md | 12 +- doc/administration/instance_limits.md | 131 +- doc/administration/job_artifacts.md | 6 +- doc/administration/job_logs.md | 12 +- doc/administration/lfs/index.md | 72 +- doc/administration/logs.md | 458 +- doc/administration/maintenance_mode/index.md | 2 +- doc/administration/monitoring/ip_whitelist.md | 15 + .../performance/img/performance_bar.png | Bin 9926 -> 0 bytes .../performance/img/performance_bar_v14_0.png | Bin 0 -> 13115 bytes .../monitoring/performance/performance_bar.md | 2 +- .../monitoring/prometheus/gitlab_metrics.md | 18 +- doc/administration/nfs.md | 21 +- doc/administration/object_storage.md | 25 +- .../operations/extra_sidekiq_processes.md | 39 +- .../operations/extra_sidekiq_routing.md | 4 +- doc/administration/operations/puma.md | 150 +- .../operations/sidekiq_memory_killer.md | 4 +- .../operations/ssh_certificates.md | 16 +- .../packages/container_registry.md | 10 +- doc/administration/packages/index.md | 15 + doc/administration/pages/index.md | 194 +- doc/administration/pages/source.md | 13 +- doc/administration/polling.md | 2 +- doc/administration/postgresql/pgbouncer.md | 14 + .../postgresql/replication_and_failover.md | 250 +- doc/administration/raketasks/check.md | 4 +- doc/administration/raketasks/maintenance.md | 5 +- .../redis/replication_and_failover.md | 6 + .../replication_and_failover_external.md | 2 +- .../reference_architectures/10k_users.md | 39 +- .../reference_architectures/25k_users.md | 213 +- .../reference_architectures/2k_users.md | 13 +- .../reference_architectures/3k_users.md | 32 +- .../reference_architectures/50k_users.md | 213 +- .../reference_architectures/5k_users.md | 226 +- .../reference_architectures/index.md | 28 +- .../troubleshooting.md | 2 +- doc/administration/reply_by_email.md | 14 +- doc/administration/repository_checks.md | 71 +- .../repository_storage_paths.md | 10 +- doc/administration/restart_gitlab.md | 2 +- doc/administration/server_hooks.md | 4 +- doc/administration/troubleshooting/debug.md | 16 +- doc/administration/troubleshooting/defcon.md | 12 +- .../troubleshooting/elasticsearch.md | 6 +- .../gitlab_rails_cheat_sheet.md | 82 +- .../img/AzureAD-basic_SAML.png | Bin 30365 -> 101427 bytes .../troubleshooting/img/AzureAD-claims.png | Bin 14213 -> 13625 bytes .../img/azure_configure_group_claim.png | Bin 45870 -> 14833 bytes .../troubleshooting/postgresql.md | 2 +- .../troubleshooting/tracing_correlation_id.md | 2 +- doc/administration/whats-new.md | 2 +- doc/api/README.md | 781 +- doc/api/access_requests.md | 10 +- doc/api/api_resources.md | 8 +- doc/api/audit_events.md | 22 +- doc/api/award_emoji.md | 20 +- doc/api/boards.md | 24 +- doc/api/branches.md | 10 +- doc/api/bulk_imports.md | 193 + doc/api/commits.md | 36 +- doc/api/container_registry.md | 14 +- doc/api/dependencies.md | 12 +- doc/api/dependency_proxy.md | 2 +- doc/api/deploy_keys.md | 12 +- doc/api/deploy_tokens.md | 12 +- doc/api/deployments.md | 8 +- doc/api/discussions.md | 70 +- doc/api/dora/metrics.md | 4 +- doc/api/environments.md | 12 +- doc/api/epic_issues.md | 10 +- doc/api/epic_links.md | 10 +- doc/api/epics.md | 16 +- doc/api/error_tracking.md | 4 +- doc/api/events.md | 52 +- doc/api/feature_flag_user_lists.md | 12 +- doc/api/feature_flags.md | 14 +- doc/api/freeze_periods.md | 10 +- doc/api/geo_nodes.md | 2 +- doc/api/graphql/custom_emoji.md | 111 + doc/api/graphql/getting_started.md | 22 +- .../img/custom_emoji_query_example.png | Bin 0 -> 178815 bytes doc/api/graphql/index.md | 5 +- doc/api/graphql/reference/index.md | 438 +- doc/api/graphql/sample_issue_boards.md | 4 +- doc/api/group_badges.md | 12 +- doc/api/group_boards.md | 26 +- doc/api/group_clusters.md | 12 +- doc/api/group_iterations.md | 2 +- doc/api/group_labels.md | 24 +- doc/api/group_level_variables.md | 14 +- doc/api/group_milestones.md | 24 +- doc/api/group_protected_environments.md | 8 +- doc/api/group_repository_storage_moves.md | 20 +- doc/api/group_wikis.md | 12 +- doc/api/groups.md | 139 +- doc/api/import.md | 5 +- doc/api/index.md | 847 + doc/api/instance_clusters.md | 4 +- doc/api/invitations.md | 10 +- doc/api/issue_links.md | 8 +- doc/api/issues.md | 54 +- doc/api/issues_statistics.md | 8 +- doc/api/iterations.md | 2 +- doc/api/job_artifacts.md | 28 +- doc/api/jobs.md | 20 +- doc/api/labels.md | 26 +- doc/api/lint.md | 4 +- doc/api/managed_licenses.md | 10 +- doc/api/markdown.md | 4 +- doc/api/members.md | 50 +- doc/api/merge_request_approvals.md | 32 +- doc/api/merge_request_context_commits.md | 6 +- doc/api/merge_requests.md | 54 +- doc/api/merge_trains.md | 6 +- doc/api/metrics_user_starred_dashboards.md | 4 +- doc/api/milestones.md | 26 +- doc/api/namespaces.md | 11 +- doc/api/notes.md | 42 +- doc/api/notification_settings.md | 22 +- doc/api/oauth2.md | 2 +- doc/api/openapi/openapi.yaml | 2 +- doc/api/openapi/openapi_interactive.md | 2 +- doc/api/packages.md | 22 +- doc/api/packages/debian.md | 151 + .../packages/debian_group_distributions.md | 222 + .../packages/debian_project_distributions.md | 222 + doc/api/packages/helm.md | 96 + doc/api/packages/nuget.md | 29 + doc/api/packages/pypi.md | 2 +- doc/api/pages.md | 2 +- doc/api/pages_domains.md | 10 +- doc/api/pipeline_schedules.md | 20 +- doc/api/pipeline_triggers.md | 12 +- doc/api/pipelines.md | 20 +- doc/api/plan_limits.md | 10 +- doc/api/project_badges.md | 12 +- doc/api/project_clusters.md | 14 +- doc/api/project_import_export.md | 8 +- doc/api/project_level_variables.md | 10 +- doc/api/project_repository_storage_moves.md | 20 +- doc/api/project_snippets.md | 16 +- doc/api/project_statistics.md | 2 +- doc/api/project_templates.md | 4 +- doc/api/project_vulnerabilities.md | 8 +- doc/api/projects.md | 92 +- doc/api/protected_branches.md | 12 +- doc/api/protected_environments.md | 8 +- doc/api/protected_tags.md | 8 +- doc/api/releases/index.md | 14 +- doc/api/releases/links.md | 10 +- doc/api/remote_mirrors.md | 2 +- doc/api/repositories.md | 18 +- doc/api/repository_submodules.md | 2 +- doc/api/resource_access_tokens.md | 15 +- doc/api/resource_iteration_events.md | 4 +- doc/api/resource_label_events.md | 12 +- doc/api/resource_milestone_events.md | 14 +- doc/api/resource_state_events.md | 10 +- doc/api/resource_weight_events.md | 6 +- doc/api/runners.md | 10 +- doc/api/search.md | 4 +- doc/api/services.md | 35 +- doc/api/settings.md | 6 +- doc/api/snippet_repository_storage_moves.md | 20 +- doc/api/status_checks.md | 119 +- doc/api/tags.md | 8 +- doc/api/templates/gitlab_ci_ymls.md | 2 +- doc/api/todos.md | 18 +- doc/api/usage_data.md | 10 +- doc/api/users.md | 2 +- doc/api/v3_to_v4.md | 4 +- doc/api/visual_review_discussions.md | 2 +- doc/api/vulnerabilities.md | 2 +- doc/api/vulnerability_exports.md | 6 +- doc/api/vulnerability_findings.md | 6 +- doc/api/wikis.md | 12 +- .../index.md | 4 +- .../blueprints/database_testing/index.md | 6 +- .../blueprints/graphql_api/index.md | 2 +- .../blueprints/image_resizing/index.md | 2 +- doc/ci/README.md | 186 +- doc/ci/caching/img/clear_runners_cache.png | Bin 16020 -> 0 bytes doc/ci/caching/index.md | 385 +- doc/ci/chatops/README.md | 9 - doc/ci/chatops/index.md | 16 +- .../bitbucket_integration.md | 2 +- .../github_integration.md | 4 +- .../cloud_deployment/ecs/quick_start_guide.md | 4 +- doc/ci/cloud_deployment/index.md | 14 +- doc/ci/directed_acyclic_graph/index.md | 6 +- doc/ci/docker/README.md | 9 - doc/ci/docker/index.md | 4 +- doc/ci/docker/using_docker_build.md | 45 +- doc/ci/docker/using_docker_images.md | 16 +- doc/ci/docker/using_kaniko.md | 6 +- doc/ci/enable_or_disable_ci.md | 6 +- doc/ci/environments/deployment_safety.md | 13 +- doc/ci/environments/environments_dashboard.md | 2 +- doc/ci/environments/index.md | 34 +- doc/ci/environments/protected_environments.md | 4 +- doc/ci/examples/README.md | 182 +- .../index.md | 72 +- doc/ci/examples/deployment/README.md | 131 +- doc/ci/examples/deployment/index.md | 131 + .../end_to_end_testing_webdriverio/index.md | 8 +- doc/ci/examples/index.md | 182 + .../laravel_with_gitlab_and_envoy/index.md | 14 +- doc/ci/examples/php.md | 10 +- doc/ci/examples/semantic-release.md | 2 +- ...and-deploy-python-application-to-heroku.md | 9 - ...t-and-deploy-ruby-application-to-heroku.md | 9 - doc/ci/examples/test-clojure-application.md | 9 - doc/ci/git_submodules.md | 2 +- doc/ci/index.md | 186 + doc/ci/interactive_web_terminal/index.md | 2 +- doc/ci/introduction/index.md | 2 +- doc/ci/jobs/index.md | 14 +- doc/ci/jobs/job_control.md | 62 +- doc/ci/large_repositories/index.md | 2 +- doc/ci/lint.md | 2 +- .../img/merge_request.png | Bin 5292 -> 0 bytes doc/ci/merge_request_pipelines/index.md | 237 +- .../pipelines_for_merged_results/index.md | 135 +- .../merge_trains/index.md | 236 +- doc/ci/metrics_reports.md | 2 +- doc/ci/migration/circleci.md | 14 +- doc/ci/migration/jenkins.md | 62 +- doc/ci/multi_project_pipelines.md | 332 +- doc/ci/parent_child_pipelines.md | 189 +- doc/ci/pipeline_editor/index.md | 14 +- .../img/coverage_check_approval_rule_14_1.png | Bin 0 -> 116394 bytes .../img/merge_train_cancel_v12_0.png | Bin .../img/merge_train_failure.png | Bin .../img/merge_train_immediate_merge_v12_6.png | Bin .../img/merge_train_position_v12_0.png | Bin .../img/merge_train_start_v12_0.png | Bin ...ain_start_when_pipeline_succeeds_v12_0.png | Bin .../img/merged_result_pipeline.png | Bin .../img/multi_pipeline_mini_graph.gif | Bin .../img/multi_project_pipeline_graph.png | Bin .../parent_pipeline_graph_expanded_v12_6.png | Bin .../img/pipeline-fork_v13_7.png | Bin ...nes_graph_dependency_view_hover_v13_12.png | Bin 42573 -> 83953 bytes ...nes_graph_dependency_view_links_v13_12.png | Bin 37749 -> 81552 bytes ...pipelines_graph_dependency_view_v13_12.png | Bin 36039 -> 77811 bytes .../img/pipelines_graph_stage_view_v13_12.png | Bin 25969 -> 63697 bytes doc/ci/pipelines/index.md | 46 +- doc/ci/pipelines/job_artifacts.md | 8 +- doc/ci/pipelines/merge_request_pipelines.md | 215 + doc/ci/pipelines/merge_trains.md | 236 + doc/ci/pipelines/multi_project_pipelines.md | 329 + doc/ci/pipelines/parent_child_pipelines.md | 192 + doc/ci/pipelines/pipeline_architectures.md | 12 +- doc/ci/pipelines/pipeline_artifacts.md | 2 +- doc/ci/pipelines/pipeline_efficiency.md | 16 +- .../pipelines/pipelines_for_merged_results.md | 135 + doc/ci/pipelines/schedules.md | 4 +- doc/ci/pipelines/settings.md | 351 +- doc/ci/quick_start/README.md | 9 - doc/ci/quick_start/index.md | 2 +- doc/ci/review_apps/index.md | 8 +- doc/ci/runners/README.md | 289 +- .../runners/build_cloud/linux_build_cloud.md | 127 + .../build_cloud/windows_build_cloud.md | 156 + doc/ci/runners/configure_runners.md | 36 +- .../img/protected_runners_check_box.png | Bin 3963 -> 0 bytes .../img/protected_runners_check_box_v14_1.png | Bin 0 -> 3500 bytes .../runners/img/shared_runner_ip_address.png | Bin 20276 -> 0 bytes .../img/shared_runner_ip_address_14_1.png | Bin 0 -> 8577 bytes doc/ci/runners/index.md | 18 + doc/ci/secrets/index.md | 21 +- doc/ci/services/README.md | 9 - doc/ci/services/gitlab.md | 6 +- doc/ci/services/index.md | 6 +- doc/ci/services/mysql.md | 6 +- doc/ci/services/postgres.md | 6 +- doc/ci/services/redis.md | 4 +- doc/ci/ssh_keys/README.md | 9 - doc/ci/ssh_keys/index.md | 20 +- doc/ci/triggers/README.md | 288 +- doc/ci/triggers/index.md | 288 + doc/ci/troubleshooting.md | 54 +- doc/ci/unit_test_reports.md | 19 +- doc/ci/variables/README.md | 815 +- doc/ci/variables/index.md | 824 + doc/ci/variables/predefined_variables.md | 37 +- .../variables/where_variables_can_be_used.md | 4 +- doc/ci/yaml/README.md | 4874 +--- doc/ci/yaml/gitlab_ci_yaml.md | 8 +- doc/ci/yaml/includes.md | 6 +- doc/ci/yaml/index.md | 4935 ++++ doc/ci/yaml/script.md | 6 +- doc/development/README.md | 308 +- doc/development/agent/gitops.md | 149 +- doc/development/agent/identity.md | 107 +- doc/development/agent/index.md | 88 +- doc/development/agent/local.md | 156 +- doc/development/agent/repository_overview.md | 99 +- doc/development/agent/routing.md | 231 +- doc/development/agent/user_stories.md | 78 +- doc/development/api_graphql_styleguide.md | 156 +- doc/development/application_limits.md | 12 + doc/development/architecture.md | 245 +- doc/development/audit_event_guide/index.md | 17 +- doc/development/auto_devops.md | 2 +- .../avoiding_downtime_in_migrations.md | 4 - doc/development/background_migrations.md | 85 +- doc/development/bulk_import.md | 4 +- doc/development/cascading_settings.md | 27 +- doc/development/changelog.md | 5 +- doc/development/chatops_on_gitlabcom.md | 2 +- .../cicd_reference_documentation_guide.md | 4 +- doc/development/cicd/index.md | 20 +- doc/development/cicd/templates.md | 16 +- doc/development/code_review.md | 11 +- .../contributing/issue_workflow.md | 4 +- .../contributing/merge_request_workflow.md | 6 +- doc/development/contributing/style_guides.md | 28 + doc/development/dangerbot.md | 22 +- .../database/database_reviewer_guidelines.md | 3 + .../database/multiple_databases.md | 101 + .../database/not_null_constraints.md | 4 +- .../database/pagination_guidelines.md | 2 +- .../pagination_performance_guidelines.md | 2 +- .../database/rename_database_tables.md | 2 +- .../database/transaction_guidelines.md | 117 + doc/development/database_review.md | 11 +- .../deprecation_guidelines/index.md | 5 +- doc/development/documentation/index.md | 19 +- .../site_architecture/global_nav.md | 37 +- .../documentation/site_architecture/index.md | 4 +- doc/development/documentation/structure.md | 204 +- .../documentation/styleguide/index.md | 144 +- .../documentation/styleguide/word_list.md | 170 +- doc/development/documentation/testing.md | 14 + doc/development/documentation/workflow.md | 2 +- doc/development/emails.md | 2 +- .../experiment_guide/gitlab_experiment.md | 7 +- doc/development/fe_guide/accessibility.md | 2 +- doc/development/fe_guide/content_editor.md | 6 +- doc/development/fe_guide/editor_lite.md | 265 +- doc/development/fe_guide/frontend_faq.md | 2 +- doc/development/fe_guide/graphql.md | 29 + doc/development/fe_guide/index.md | 2 +- doc/development/fe_guide/performance.md | 18 +- doc/development/fe_guide/source_editor.md | 264 + doc/development/fe_guide/storybook.md | 51 + doc/development/fe_guide/style/html.md | 2 +- doc/development/fe_guide/style/scss.md | 4 +- doc/development/fe_guide/vue3_migration.md | 49 +- doc/development/fe_guide/vuex.md | 57 +- doc/development/feature_flags/controls.md | 4 +- doc/development/feature_flags/development.md | 9 - doc/development/feature_flags/index.md | 97 +- doc/development/feature_flags/process.md | 6 +- doc/development/features_inside_dot_gitlab.md | 2 +- doc/development/foreign_keys.md | 5 +- doc/development/geo.md | 13 +- doc/development/git_object_deduplication.md | 2 +- doc/development/gitaly.md | 4 +- doc/development/github_importer.md | 40 +- doc/development/go_guide/index.md | 10 +- doc/development/i18n/externalization.md | 4 +- doc/development/i18n/merging_translations.md | 2 +- doc/development/i18n/proofreader.md | 1 + ...age_group_dashboards_error_attribution.png | Bin 0 -> 166125 bytes ...ge_group_dashboards_service_sli_detail.png | Bin 0 -> 110562 bytes doc/development/index.md | 340 + doc/development/integrations/secure.md | 104 +- .../secure_partner_integration.md | 3 +- doc/development/internal_api.md | 135 +- .../iterating_tables_in_batches.md | 288 +- doc/development/jh_features_review.md | 7 +- doc/development/logging.md | 6 +- .../merge_request_performance_guidelines.md | 19 +- doc/development/migration_style_guide.md | 80 +- .../module_with_instance_variables.md | 4 +- .../multi_version_compatibility.md | 37 +- doc/development/new_fe_guide/dependencies.md | 9 - doc/development/omnibus.md | 2 +- doc/development/packages.md | 4 +- doc/development/performance.md | 2 +- doc/development/permissions.md | 5 +- doc/development/pipelines.md | 130 +- doc/development/policies.md | 4 +- doc/development/polymorphic_associations.md | 2 +- doc/development/profiling.md | 2 +- doc/development/pry_debugging.md | 2 +- doc/development/query_performance.md | 2 +- doc/development/query_recorder.md | 2 +- doc/development/rails_initializers.md | 2 +- doc/development/rake_tasks.md | 7 + doc/development/reactive_caching.md | 18 +- doc/development/redis.md | 1 - doc/development/refactoring_guide/index.md | 2 +- doc/development/renaming_features.md | 2 +- doc/development/repository_mirroring.md | 34 +- doc/development/reusing_abstractions.md | 2 +- doc/development/scalability.md | 8 +- doc/development/secure_coding_guidelines.md | 6 +- doc/development/serializing_data.md | 6 +- doc/development/service_ping/dictionary.md | 23249 ++++++++++++++++ doc/development/service_ping/index.md | 1707 ++ .../service_ping/metrics_dictionary.md | 237 + .../service_ping/metrics_instrumentation.md | 102 + .../service_ping/review_guidelines.md | 75 + .../shell_scripting_guide/index.md | 2 +- doc/development/sidekiq_style_guide.md | 38 +- doc/development/snowplow/index.md | 24 +- doc/development/snowplow/review_guidelines.md | 43 + doc/development/sql.md | 12 +- doc/development/stage_group_dashboards.md | 51 +- .../testing_guide/best_practices.md | 6 +- .../end_to_end/environment_selection.md | 68 +- .../end_to_end/execution_context_selection.md | 122 + .../testing_guide/end_to_end/index.md | 7 +- .../testing_guide/end_to_end/resources.md | 2 +- .../end_to_end/rspec_metadata_tests.md | 5 +- ...unning_tests_that_require_special_setup.md | 14 +- .../testing_guide/frontend_testing.md | 13 +- doc/development/testing_guide/index.md | 2 +- .../understanding_explain_plans.md | 2 + doc/development/usage_ping.md | 9 - doc/development/usage_ping/dictionary.md | 4258 ++- doc/development/usage_ping/index.md | 1580 +- .../usage_ping/metrics_dictionary.md | 238 +- .../usage_ping/metrics_instrumentation.md | 103 +- .../usage_ping/product_intelligence_review.md | 92 +- .../usage_ping/review_guidelines.md | 9 + doc/downgrade_ee_to_ce/README.md | 9 - doc/gitlab-basics/README.md | 9 - doc/gitlab-basics/create-project.md | 9 - doc/gitlab-basics/create-your-ssh-keys.md | 4 +- doc/gitlab-basics/fork-project.md | 9 - doc/gitlab-basics/index.md | 2 +- doc/gitlab-basics/start-using-git.md | 2 +- doc/index.md | 126 + doc/install/README.md | 9 - doc/install/aws/index.md | 4 +- doc/install/azure/index.md | 4 +- doc/install/docker.md | 635 +- doc/install/google_cloud_platform/index.md | 2 +- doc/install/index.md | 2 +- doc/install/installation.md | 11 + doc/install/next_steps.md | 2 +- doc/install/openshift_and_gitlab/index.md | 2 - doc/install/postgresql_extensions.md | 9 +- doc/install/requirements.md | 66 +- doc/integration/datadog.md | 32 + doc/integration/elasticsearch.md | 45 +- doc/integration/github.md | 2 +- doc/integration/google_workspace_saml.md | 9 - doc/integration/jenkins.md | 22 +- doc/integration/jira/connect-app.md | 19 +- doc/integration/jira/development_panel.md | 30 +- doc/integration/jira/dvcs.md | 15 +- doc/integration/jira/index.md | 42 +- doc/integration/jira/issues.md | 21 +- doc/integration/kerberos.md | 5 + doc/integration/saml.md | 5 +- doc/integration/security_partners/index.md | 6 + doc/integration/shibboleth.md | 152 +- doc/intro/README.md | 9 - doc/legal/README.md | 9 - doc/migrate_ci_to_ce/index.md | 9 + doc/operations/error_tracking.md | 2 +- doc/operations/feature_flags.md | 14 +- .../incident_management/alert_integrations.md | 9 - doc/operations/incident_management/alerts.md | 20 +- .../escalation_policies.md | 43 + .../img/escalation_policy_v14_1.png | Bin 0 -> 19996 bytes .../img/link_runbooks_to_alerts_v13_5.png | Bin 77748 -> 0 bytes .../incident_management/incidents.md | 2 +- .../incident_management/integrations.md | 4 +- doc/operations/metrics/alerts.md | 48 +- .../img/panel_context_menu_v13_3.png | Bin 14538 -> 0 bytes .../img/panel_context_menu_v14_0.png | Bin 0 -> 11084 bytes doc/operations/metrics/dashboards/index.md | 6 +- .../metrics/dashboards/variables.md | 2 +- ....png => prometheus_integration_alerts.png} | Bin doc/public_access/public_access.md | 82 +- doc/raketasks/README.md | 9 - doc/raketasks/backup_restore.md | 18 +- doc/raketasks/index.md | 2 +- doc/security/README.md | 32 +- doc/security/cicd_environment_variables.md | 9 - doc/security/cicd_variables.md | 4 +- doc/security/index.md | 32 + ...s_for_integrated_authentication_methods.md | 2 +- doc/security/token_overview.md | 10 +- doc/ssh/README.md | 385 +- doc/ssh/index.md | 385 + doc/subscriptions/bronze_starter.md | 10 +- doc/subscriptions/gitlab_com/index.md | 39 +- doc/subscriptions/index.md | 6 +- doc/subscriptions/self_managed/index.md | 2 +- doc/topics/authentication/index.md | 10 +- doc/topics/autodevops/customize.md | 39 +- doc/topics/autodevops/index.md | 84 +- doc/topics/autodevops/quick_start_guide.md | 16 +- doc/topics/autodevops/requirements.md | 4 +- doc/topics/autodevops/stages.md | 16 +- doc/topics/autodevops/troubleshooting.md | 2 +- .../upgrading_auto_deploy_dependencies.md | 8 +- doc/topics/autodevops/upgrading_postgresql.md | 4 +- doc/topics/build_your_application.md | 2 +- doc/topics/cron/index.md | 4 +- doc/topics/git/how_to_install_git/index.md | 6 +- doc/topics/git/index.md | 2 +- doc/topics/git/lfs/index.md | 43 - .../img/rebase_reset.png | Bin 33399 -> 17115 bytes .../img/revert.png | Bin 21473 -> 11230 bytes .../index.md | 2 +- doc/topics/git/troubleshooting_git.md | 2 +- doc/topics/gitlab_flow.md | 2 +- doc/topics/index.md | 2 +- doc/topics/set_up_organization.md | 7 +- doc/university/README.md | 9 - doc/university/training/gitlab_flow.md | 9 - .../training/topics/cherry_picking.md | 9 - doc/university/training/topics/tags.md | 9 - doc/update/README.md | 9 - doc/update/index.md | 111 +- doc/update/patch_versions.md | 5 + .../admin_area/analytics/dev_ops_report.md | 47 +- .../img/admin_devops_adoption_v14_0.png | Bin 52947 -> 0 bytes .../img/admin_devops_adoption_v14_1.png | Bin 0 -> 53453 bytes doc/user/admin_area/analytics/user_cohorts.md | 9 - doc/user/admin_area/approving_users.md | 3 +- doc/user/admin_area/credentials_inventory.md | 2 +- .../admin_area/custom_project_templates.md | 29 +- doc/user/admin_area/diff_limits.md | 11 +- .../img/index_runners_search_or_filter.png | Bin 22414 -> 0 bytes .../index_runners_search_or_filter_v14_1.png | Bin 0 -> 13248 bytes doc/user/admin_area/index.md | 15 +- doc/user/admin_area/license.md | 70 +- doc/user/admin_area/moderate_users.md | 32 +- .../monitoring/background_migrations.md | 45 +- ...hed_background_migrations_queued_v14_0.png | Bin 0 -> 11690 bytes doc/user/admin_area/review_abuse_reports.md | 2 +- .../settings/account_and_limit_settings.md | 9 +- .../settings/continuous_integration.md | 55 +- .../admin_area/settings/gitaly_timeouts.md | 19 +- doc/user/admin_area/settings/help_page.md | 52 +- .../admin_area/settings/img/enforce_terms.png | Bin 156968 -> 54958 bytes .../img/help_page_help_text_ex_v12_3.png | Bin 48882 -> 0 bytes .../img/help_page_help_text_v12_3.png | Bin 19190 -> 0 bytes doc/user/admin_area/settings/index.md | 4 +- .../settings/sign_in_restrictions.md | 2 +- .../admin_area/settings/third_party_offers.md | 7 +- .../admin_area/settings/usage_statistics.md | 10 +- .../visibility_and_access_controls.md | 15 +- doc/user/analytics/ci_cd_analytics.md | 4 +- doc/user/analytics/value_stream_analytics.md | 6 +- .../api_fuzzing/create_har_files.md | 2 +- .../application_security/api_fuzzing/index.md | 14 +- .../cluster_image_scanning/index.md | 281 + .../configuration/index.md | 79 + .../container_scanning/index.md | 34 +- .../coverage_fuzzing/index.md | 10 +- .../dast/browser_based.md | 6 +- .../img/dast_auth_browser_scan_highlight.png | Bin 203980 -> 62252 bytes ...dast_auth_browser_scan_search_elements.png | Bin 155046 -> 46272 bytes doc/user/application_security/dast/index.md | 199 +- .../application_security/dast_api/index.md | 16 +- .../dependency_list/index.md | 2 +- .../dependency_scanning/index.md | 82 +- doc/user/application_security/index.md | 44 +- .../offline_deployments/index.md | 4 +- .../application_security/policies/index.md | 4 + .../sast/img/sast_results_in_mr_v14_0.png | Bin 0 -> 38616 bytes doc/user/application_security/sast/index.md | 42 +- .../secret_detection/index.md | 62 +- .../security_dashboard/index.md | 5 +- .../application_security/terminology/index.md | 1 + .../threat_monitoring/index.md | 23 +- .../vulnerabilities/index.md | 2 +- .../vulnerability_report/index.md | 4 +- doc/user/clusters/agent/ci_cd_tunnel.md | 67 + doc/user/clusters/agent/index.md | 62 +- doc/user/clusters/agent/repository.md | 11 +- doc/user/clusters/applications.md | 16 +- doc/user/clusters/integrations.md | 6 +- doc/user/clusters/management_project.md | 15 +- .../clusters/management_project_template.md | 16 +- .../migrating_from_gma_to_project_template.md | 6 +- .../compliance/compliance_dashboard/index.md | 16 + .../img/policies_maintainer_edit_v13_2.png | Bin 20327 -> 0 bytes .../img/policies_maintainer_edit_v14_2.png | Bin 0 -> 49070 bytes .../compliance/license_compliance/index.md | 37 +- ...matically_resolve_outdated_discussions.png | Bin 21735 -> 0 bytes .../img/btn_new_issue_for_all_threads.png | Bin 6716 -> 12468 bytes .../discussions/img/comment_type_toggle.gif | Bin 70796 -> 0 bytes .../img/commit_comment_mr_context.png | Bin 103558 -> 0 bytes .../img/commit_comment_mr_discussions_tab.png | Bin 76927 -> 0 bytes .../img/discussion_lock_system_notes.png | Bin 14288 -> 0 bytes .../img/image_resolved_discussion.png | Bin 55713 -> 0 bytes doc/user/discussions/img/lock_form_member.png | Bin 23780 -> 0 bytes .../discussions/img/lock_form_non_member.png | Bin 8362 -> 0 bytes .../img/merge_request_commits_tab.png | Bin 54318 -> 0 bytes .../discussions/img/new_issue_for_thread.png | Bin 6725 -> 11820 bytes doc/user/discussions/img/onion_skin_view.png | Bin 29955 -> 0 bytes .../img/preview_issue_for_thread.png | Bin 33240 -> 0 bytes .../img/preview_issue_for_threads.png | Bin 36192 -> 0 bytes .../img/quickly_assign_commenter_v13_1.png | Bin 69299 -> 43849 bytes doc/user/discussions/img/reply_to_comment.gif | Bin 508115 -> 0 bytes .../img/resolve_comment_button.png | Bin 3784 -> 0 bytes .../img/resolve_thread_button_v13_3.png | Bin 10093 -> 0 bytes .../img/resolve_thread_issue_notice.png | Bin 13845 -> 0 bytes .../img/resolve_thread_open_issue_v13_9.png | Bin 13410 -> 0 bytes .../img/start_image_discussion.gif | Bin 146627 -> 208151 bytes doc/user/discussions/img/swipe_view.png | Bin 20840 -> 0 bytes doc/user/discussions/img/thread_view.png | Bin 162019 -> 0 bytes doc/user/discussions/img/turn_off_lock.png | Bin 9626 -> 0 bytes doc/user/discussions/img/turn_on_lock.png | Bin 10409 -> 0 bytes doc/user/discussions/img/two_up_view.png | Bin 34612 -> 0 bytes .../img/unresolved_threads_v14_1.png | Bin 0 -> 1540 bytes doc/user/discussions/index.md | 477 +- doc/user/gitlab_com/index.md | 69 +- doc/user/group/clusters/index.md | 10 +- .../group/contribution_analytics/index.md | 8 +- doc/user/group/custom_project_templates.md | 59 +- .../img/group_devops_adoption_v14_0.png | Bin 52890 -> 0 bytes .../img/group_devops_adoption_v14_1.png | Bin 0 -> 54919 bytes doc/user/group/devops_adoption/index.md | 53 +- doc/user/group/epics/epic_boards.md | 45 +- doc/user/group/epics/manage_epics.md | 4 +- .../group/import/img/bulk_imports_v13_8.png | Bin 22574 -> 0 bytes .../group/import/img/bulk_imports_v14_1.png | Bin 0 -> 24726 bytes .../group/import/img/import_panel_v13_8.png | Bin 39125 -> 0 bytes .../group/import/img/import_panel_v14_1.png | Bin 0 -> 42789 bytes doc/user/group/import/index.md | 9 +- doc/user/group/index.md | 15 + doc/user/group/iterations/index.md | 105 +- .../group/repositories_analytics/index.md | 2 +- .../saml_sso/img/saml_group_links_v13_9.png | Bin 162931 -> 45131 bytes doc/user/group/saml_sso/index.md | 6 +- .../group/settings/img/import_panel_v13_4.png | Bin 23373 -> 0 bytes .../group/settings/img/import_panel_v14_1.png | Bin 0 -> 42789 bytes doc/user/group/settings/import_export.md | 8 +- doc/user/group/subgroups/index.md | 2 +- .../group/value_stream_analytics/index.md | 41 +- doc/user/img/todos_add_todo_sidebar.png | Bin 17524 -> 0 bytes doc/user/img/todos_add_todo_sidebar_v14_1.png | Bin 0 -> 6554 bytes doc/user/img/todos_mark_done_sidebar.png | Bin 17619 -> 0 bytes .../img/todos_mark_done_sidebar_v14_1.png | Bin 0 -> 7055 bytes doc/user/index.md | 12 +- .../clusters/connect/new_gke_cluster.md | 94 + .../clusters/deploy/inventory_object.md | 69 + doc/user/infrastructure/index.md | 42 +- doc/user/infrastructure/mr_integration.md | 4 +- doc/user/infrastructure/terraform_state.md | 2 +- doc/user/markdown.md | 15 +- .../packages/composer_repository/index.md | 2 +- doc/user/packages/conan_repository/index.md | 2 +- doc/user/packages/container_registry/index.md | 42 +- doc/user/packages/debian_repository/index.md | 111 + doc/user/packages/dependency_proxy/index.md | 27 +- doc/user/packages/generic_packages/index.md | 18 +- doc/user/packages/go_proxy/index.md | 2 +- doc/user/packages/helm_repository/index.md | 89 + doc/user/packages/index.md | 2 +- .../packages/infrastructure_registry/index.md | 2 +- doc/user/packages/maven_repository/index.md | 21 +- doc/user/packages/npm_registry/index.md | 33 +- doc/user/packages/nuget_repository/index.md | 32 +- doc/user/packages/package_registry/index.md | 6 +- doc/user/packages/pypi_repository/index.md | 4 +- doc/user/packages/rubygems_registry/index.md | 2 +- .../terraform_module_registry/index.md | 12 +- doc/user/permissions.md | 76 +- .../account/two_factor_authentication.md | 10 +- .../img/unknown_sign_in_email_v14_0.png | Bin 68946 -> 21301 bytes doc/user/profile/index.md | 14 +- doc/user/profile/notifications.md | 10 +- doc/user/profile/personal_access_tokens.md | 27 +- doc/user/profile/preferences.md | 26 +- doc/user/project/canary_deployments.md | 2 +- doc/user/project/clusters/add_eks_clusters.md | 370 +- .../project/clusters/add_existing_cluster.md | 224 + doc/user/project/clusters/add_gke_clusters.md | 32 +- .../project/clusters/add_remove_clusters.md | 391 +- doc/user/project/clusters/cluster_access.md | 88 + .../project/clusters/deploy_to_cluster.md | 141 + .../clusters/gitlab_managed_clusters.md | 102 + doc/user/project/clusters/index.md | 417 +- .../clusters/multiple_kubernetes_clusters.md | 71 + .../quick_start_guide.md | 4 +- .../quick_start_guide.md | 121 +- doc/user/project/clusters/serverless/aws.md | 4 +- .../img/function-details-loaded.png | Bin 34302 -> 0 bytes .../img/function-details-loaded_v14_0.png | Bin 0 -> 21864 bytes .../serverless/img/serverless-page.png | Bin 50711 -> 0 bytes .../serverless/img/serverless-page_v14_0.png | Bin 0 -> 18188 bytes doc/user/project/clusters/serverless/index.md | 6 +- doc/user/project/code_owners.md | 101 +- doc/user/project/deploy_boards.md | 6 +- doc/user/project/deploy_keys/index.md | 7 +- doc/user/project/description_templates.md | 2 +- doc/user/project/file_lock.md | 2 +- .../project/img/protected_branches_delete.png | Bin 21507 -> 0 bytes .../protected_branches_deploy_keys_v13_5.png | Bin 16142 -> 0 bytes .../img/protected_branches_matches.png | Bin 12028 -> 0 bytes ...tected_branches_select_roles_and_users.png | Bin 7155 -> 0 bytes ...d_branches_select_roles_and_users_list.png | Bin 7408 -> 0 bytes doc/user/project/import/bitbucket_server.md | 4 +- doc/user/project/import/fogbugz.md | 37 +- doc/user/project/import/github.md | 10 +- doc/user/project/import/index.md | 6 +- doc/user/project/import/jira.md | 2 +- doc/user/project/index.md | 4 +- doc/user/project/integrations/github.md | 2 +- .../project/integrations/hangouts_chat.md | 2 +- .../img/project_integrations_v13_3.png | Bin 38249 -> 0 bytes .../integrations/jira_cloud_configuration.md | 9 - .../integrations/jira_server_configuration.md | 9 - .../integrations/mattermost_slash_commands.md | 2 +- doc/user/project/integrations/overview.md | 9 +- .../project/integrations/pivotal_tracker.md | 47 + .../integrations/prometheus_library/index.md | 2 +- .../prometheus_library/kubernetes.md | 2 +- doc/user/project/integrations/webex_teams.md | 2 +- doc/user/project/integrations/webhooks.md | 66 +- doc/user/project/issue_board.md | 8 +- .../project/issues/associate_zoom_meeting.md | 2 +- .../project/issues/confidential_issues.md | 6 +- .../project/issues/crosslinking_issues.md | 4 +- .../issues/img/issue_type_change_v13_12.png | Bin 52414 -> 16859 bytes .../project/issues/issue_data_and_actions.md | 6 +- doc/user/project/issues/managing_issues.md | 4 +- .../project/issues/sorting_issue_lists.md | 4 +- doc/user/project/labels.md | 10 +- doc/user/project/members/index.md | 8 +- .../merge_requests/accessibility_testing.md | 4 +- .../project/merge_requests/approvals/index.md | 21 +- .../project/merge_requests/approvals/rules.md | 11 +- .../merge_requests/approvals/settings.md | 12 +- .../authorization_for_merge_requests.md | 2 +- .../browser_performance_testing.md | 6 +- .../project/merge_requests/code_quality.md | 83 +- doc/user/project/merge_requests/commits.md | 59 + .../merge_requests/creating_merge_requests.md | 312 +- doc/user/project/merge_requests/drafts.md | 4 +- .../merge_requests/fail_fast_testing.md | 8 +- ...previously_merged_commits_button_v14_1.png | Bin 0 -> 19306 bytes .../img/code_quality_mr_diff_report_v14.png | Bin 54803 -> 13676 bytes .../merge_requests/img/create_from_email.png | Bin 69480 -> 0 bytes .../img/create_merge_request_button_v12_6.png | Bin 9428 -> 0 bytes .../img/new_merge_request_page_v12_6.png | Bin 81875 -> 0 bytes .../img/previously_merged_commits_v14_1.png | Bin 0 -> 26788 bytes .../img/status_checks_widget_passed_v14_0.png | Bin 0 -> 12850 bytes .../status_checks_widget_pending_v14_0.png | Bin 0 -> 12735 bytes doc/user/project/merge_requests/index.md | 6 +- .../load_performance_testing.md | 8 +- .../merge_request_dependencies.md | 2 +- .../merge_when_pipeline_succeeds.md | 8 +- .../project/merge_requests/reviews/index.md | 2 +- .../merge_requests/reviews/suggestions.md | 4 +- .../project/merge_requests/status_checks.md | 60 +- .../test_coverage_visualization.md | 16 +- .../testing_and_reports_in_merge_requests.md | 8 +- doc/user/project/merge_requests/widgets.md | 8 +- .../work_in_progress_merge_requests.md | 9 - .../project/new_ci_build_permissions_model.md | 9 - .../getting_started/pages_from_scratch.md | 145 +- doc/user/project/pages/index.md | 2 +- doc/user/project/pages/introduction.md | 4 +- .../pages/lets_encrypt_for_gitlab_pages.md | 2 +- doc/user/project/protected_branches.md | 290 +- doc/user/project/protected_tags.md | 19 +- doc/user/project/push_options.md | 3 +- doc/user/project/quick_actions.md | 4 +- doc/user/project/releases/index.md | 218 +- .../project/repository/branches/default.md | 41 +- doc/user/project/repository/csv.md | 24 + .../img/csv_file_rendered_as_table_v14_1.png | Bin 0 -> 39700 bytes ...pository_mirroring_pull_settings_lower.png | Bin 58056 -> 0 bytes ...pository_mirroring_pull_settings_upper.png | Bin 50084 -> 0 bytes .../repository_mirroring_push_settings.png | Bin 31174 -> 0 bytes doc/user/project/repository/index.md | 4 +- .../repository/repository_mirroring.md | 124 +- doc/user/project/requirements/index.md | 2 +- doc/user/project/service_desk.md | 71 +- doc/user/project/settings/import_export.md | 8 +- doc/user/project/settings/index.md | 61 +- .../project/settings/project_access_tokens.md | 20 +- doc/user/project/time_tracking.md | 61 +- doc/user/project/web_ide/index.md | 2 +- doc/user/project/wiki/index.md | 8 +- doc/user/project/working_with_projects.md | 11 +- doc/user/search/advanced_search.md | 6 + doc/user/search/index.md | 16 +- doc/user/snippets.md | 4 +- doc/user/todos.md | 14 +- .../workspace/img/1.1-Instance_overview.png | Bin 0 -> 30491 bytes .../workspace/img/1.2-Groups_overview.png | Bin 0 -> 24876 bytes doc/user/workspace/img/1.3-Admin.png | Bin 0 -> 32534 bytes doc/user/workspace/img/Admin_Settings.png | Bin 0 -> 519556 bytes doc/user/workspace/index.md | 34 + .../metric_definition.yml | 2 +- lefthook.yml | 6 + lib/api/admin/ci/variables.rb | 2 +- lib/api/admin/plan_limits.rb | 1 + lib/api/api.rb | 3 + lib/api/bulk_imports.rb | 91 + lib/api/ci/runner.rb | 18 +- lib/api/ci/runners.rb | 34 +- lib/api/commit_statuses.rb | 62 +- .../packages/debian_package_endpoints.rb | 41 +- lib/api/debian_group_packages.rb | 6 + lib/api/entities/basic_project_details.rb | 2 +- lib/api/entities/bulk_import.rb | 13 + lib/api/entities/bulk_imports/entity.rb | 22 + .../entities/bulk_imports/entity_failure.rb | 15 + lib/api/entities/ci/job.rb | 2 +- lib/api/entities/ci/job_request/artifacts.rb | 20 + lib/api/entities/ci/job_request/cache.rb | 13 + .../entities/ci/job_request/credentials.rb | 13 + lib/api/entities/ci/job_request/dependency.rb | 14 + lib/api/entities/ci/job_request/git_info.rb | 16 + lib/api/entities/ci/job_request/image.rb | 14 + lib/api/entities/ci/job_request/job_info.rb | 14 + lib/api/entities/ci/job_request/port.rb | 13 + lib/api/entities/ci/job_request/response.rb | 39 + .../entities/ci/job_request/runner_info.rb | 14 + lib/api/entities/ci/job_request/service.rb | 13 + lib/api/entities/ci/job_request/step.rb | 13 + lib/api/entities/ci/runner.rb | 19 + lib/api/entities/ci/runner_details.rb | 36 + .../ci/runner_registration_details.rb | 11 + lib/api/entities/group_detail.rb | 1 + lib/api/entities/helm/index.rb | 14 + lib/api/entities/job_request/artifacts.rb | 18 - lib/api/entities/job_request/cache.rb | 11 - lib/api/entities/job_request/credentials.rb | 11 - lib/api/entities/job_request/dependency.rb | 12 - lib/api/entities/job_request/git_info.rb | 14 - lib/api/entities/job_request/image.rb | 12 - lib/api/entities/job_request/job_info.rb | 12 - lib/api/entities/job_request/port.rb | 11 - lib/api/entities/job_request/response.rb | 37 - lib/api/entities/job_request/runner_info.rb | 12 - lib/api/entities/job_request/service.rb | 11 - lib/api/entities/job_request/step.rb | 11 - lib/api/entities/label.rb | 4 +- lib/api/entities/plan_limit.rb | 1 + lib/api/entities/project.rb | 8 +- lib/api/entities/project_integration.rb | 25 + ..._basic.rb => project_integration_basic.rb} | 6 +- lib/api/entities/project_service.rb | 17 - lib/api/entities/resource_access_token.rb | 11 + .../resource_access_token_with_token.rb | 9 + lib/api/entities/runner.rb | 17 - lib/api/entities/runner_details.rb | 34 - .../entities/runner_registration_details.rb | 9 - lib/api/entities/user.rb | 2 +- lib/api/error_tracking_collector.rb | 73 + lib/api/geo.rb | 29 + lib/api/group_avatar.rb | 22 +- lib/api/groups.rb | 25 +- lib/api/helm_packages.rb | 79 +- lib/api/helpers.rb | 4 - lib/api/helpers/caching.rb | 107 +- lib/api/helpers/groups_helpers.rb | 4 + ...ces_helpers.rb => integrations_helpers.rb} | 16 +- lib/api/helpers/projects_helpers.rb | 2 + lib/api/helpers/runner.rb | 4 + lib/api/helpers/snippets_helpers.rb | 18 +- lib/api/import_bitbucket_server.rb | 4 + lib/api/internal/base.rb | 11 - lib/api/internal/kubernetes.rb | 2 - lib/api/invitations.rb | 2 + lib/api/issues.rb | 10 +- lib/api/job_artifacts.rb | 2 +- lib/api/lint.rb | 6 +- lib/api/nuget_project_packages.rb | 124 +- lib/api/project_packages.rb | 4 +- lib/api/project_snippets.rb | 6 +- lib/api/projects.rb | 11 + lib/api/releases.rb | 4 +- lib/api/repositories.rb | 32 +- lib/api/resource_access_tokens.rb | 8 +- lib/api/services.rb | 97 +- lib/api/settings.rb | 4 + lib/api/snippets.rb | 6 +- lib/api/system_hooks.rb | 1 + lib/api/usage_data.rb | 2 +- lib/api/usage_data_non_sql_metrics.rb | 2 +- lib/api/usage_data_queries.rb | 2 +- lib/api/users.rb | 8 + lib/api/variables.rb | 2 +- lib/backup/database.rb | 40 +- lib/backup/gitaly_backup.rb | 18 +- lib/backup/gitaly_rpc_backup.rb | 4 + lib/backup/repositories.rb | 5 +- .../references/label_reference_filter.rb | 20 +- .../references/milestone_reference_filter.rb | 101 +- lib/banzai/filter/spaced_link_filter.rb | 21 +- lib/banzai/filter/upload_link_filter.rb | 19 +- lib/banzai/filter/wiki_link_filter.rb | 19 +- lib/banzai/reference_extractor.rb | 4 +- lib/banzai/reference_parser/base_parser.rb | 12 +- lib/banzai/reference_parser/commit_parser.rb | 2 +- .../reference_parser/commit_range_parser.rb | 2 +- .../reference_parser/external_issue_parser.rb | 2 +- .../reference_parser/issuable_parser.rb | 2 +- lib/banzai/reference_parser/user_parser.rb | 2 +- lib/bulk_imports/clients/graphql.rb | 27 +- lib/bulk_imports/clients/http.rb | 35 +- .../common/extractors/ndjson_extractor.rb | 6 +- .../common/extractors/rest_extractor.rb | 2 +- lib/bulk_imports/error.rb | 9 + .../groups/extractors/subgroups_extractor.rb | 2 +- .../groups/graphql/get_members_query.rb | 1 + .../groups/pipelines/group_avatar_pipeline.rb | 49 + .../groups/pipelines/members_pipeline.rb | 3 + .../member_attributes_transformer.rb | 16 +- lib/bulk_imports/ndjson_pipeline.rb | 6 +- lib/bulk_imports/stage.rb | 4 + lib/bulk_imports/users_mapper.rb | 51 + lib/container_registry/client.rb | 3 + .../collector/sentry_request_parser.rb | 38 + lib/extracts_path.rb | 46 +- lib/gitlab.rb | 1 + .../stage_events/stage_event.rb | 4 + lib/gitlab/analytics/unique_visits.rb | 4 - lib/gitlab/auth.rb | 10 +- lib/gitlab/auth/auth_finders.rb | 44 +- lib/gitlab/auth/ldap/adapter.rb | 16 +- lib/gitlab/auth/ldap/config.rb | 4 + lib/gitlab/auth/request_authenticator.rb | 25 +- lib/gitlab/auth/two_factor_auth_verifier.rb | 4 + lib/gitlab/auth/u2f_webauthn_converter.rb | 2 + ...backfill_draft_status_on_merge_requests.rb | 33 + .../backfill_upvotes_count_on_issues.rb | 40 + .../delete_orphaned_deployments.rb | 32 + ...migrate_merge_request_diff_commit_users.rb | 287 + .../migrate_u2f_webauthn.rb | 1 - .../populate_latest_pipeline_ids.rb | 27 + .../user_mentions/models/note.rb | 2 +- lib/gitlab/backup_logger.rb | 9 + lib/gitlab/bitbucket_import/importer.rb | 5 +- .../cache/ci/project_pipeline_status.rb | 8 +- lib/gitlab/cache/helpers.rb | 111 + lib/gitlab/cache/import/caching.rb | 28 + lib/gitlab/changelog/config.rb | 14 +- lib/gitlab/changelog/release.rb | 9 +- lib/gitlab/checks/container_moved.rb | 41 + lib/gitlab/checks/lfs_check.rb | 4 +- lib/gitlab/checks/post_push_message.rb | 23 +- lib/gitlab/checks/project_created.rb | 12 +- lib/gitlab/checks/project_moved.rb | 33 - lib/gitlab/ci/ansi2json/line.rb | 10 +- lib/gitlab/ci/config/entry/artifacts.rb | 7 +- lib/gitlab/ci/config/entry/reports.rb | 3 +- lib/gitlab/ci/features.rb | 16 - lib/gitlab/ci/matching/runner_matcher.rb | 1 + lib/gitlab/ci/pipeline/chain/seed.rb | 15 +- lib/gitlab/ci/pipeline/seed/build.rb | 36 +- lib/gitlab/ci/pipeline/seed/stage.rb | 2 +- lib/gitlab/ci/pipeline_object_hierarchy.rb | 14 +- lib/gitlab/ci/reports/security/analyzer.rb | 20 + .../concerns/fingerprint_path_from_file.rb | 19 + lib/gitlab/ci/reports/security/identifier.rb | 69 + lib/gitlab/ci/reports/security/link.rb | 25 + lib/gitlab/ci/reports/security/scan.rb | 29 + .../ci/reports/security/scanned_resource.rb | 25 + lib/gitlab/ci/reports/security/scanner.rb | 60 + lib/gitlab/ci/status/build/failed.rb | 3 +- lib/gitlab/ci/status/composite.rb | 6 +- lib/gitlab/ci/status/core.rb | 4 + .../5-Minute-Production-App.gitlab-ci.yml | 5 + .../CF-Provision-and-Deploy-EC2.gitlab-ci.yml | 5 + .../ci/templates/AWS/Deploy-ECS.gitlab-ci.yml | 5 + .../templates/Android-Fastlane.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Android.gitlab-ci.yml | 5 + .../ci/templates/Auto-DevOps.gitlab-ci.yml | 6 + lib/gitlab/ci/templates/Bash.gitlab-ci.yml | 7 +- lib/gitlab/ci/templates/C++.gitlab-ci.yml | 6 + lib/gitlab/ci/templates/Chef.gitlab-ci.yml | 7 +- lib/gitlab/ci/templates/Clojure.gitlab-ci.yml | 5 + .../ci/templates/Composer.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Crystal.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Dart.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Django.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Docker.gitlab-ci.yml | 6 + lib/gitlab/ci/templates/Elixir.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Flutter.gitlab-ci.yml | 5 + .../templates/Getting-Started.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Go.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Gradle.gitlab-ci.yml | 6 + lib/gitlab/ci/templates/Grails.gitlab-ci.yml | 5 + .../ci/templates/Hello-World.gitlab-ci.yml | 9 - .../ci/templates/Jobs/SAST.gitlab-ci.yml | 44 +- lib/gitlab/ci/templates/Julia.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/LaTeX.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Laravel.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Maven.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Mono.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Nodejs.gitlab-ci.yml | 5 + .../ci/templates/OpenShift.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/PHP.gitlab-ci.yml | 9 +- lib/gitlab/ci/templates/Packer.gitlab-ci.yml | 5 + .../ci/templates/Pages/Brunch.gitlab-ci.yml | 5 + .../ci/templates/Pages/Doxygen.gitlab-ci.yml | 5 + .../ci/templates/Pages/Gatsby.gitlab-ci.yml | 5 + .../ci/templates/Pages/HTML.gitlab-ci.yml | 5 + .../ci/templates/Pages/Harp.gitlab-ci.yml | 5 + .../ci/templates/Pages/Hexo.gitlab-ci.yml | 5 + .../ci/templates/Pages/Hugo.gitlab-ci.yml | 5 + .../ci/templates/Pages/Hyde.gitlab-ci.yml | 5 + .../ci/templates/Pages/JBake.gitlab-ci.yml | 5 + .../ci/templates/Pages/Jekyll.gitlab-ci.yml | 5 + .../ci/templates/Pages/Jigsaw.gitlab-ci.yml | 5 + .../ci/templates/Pages/Lektor.gitlab-ci.yml | 5 + .../templates/Pages/Metalsmith.gitlab-ci.yml | 5 + .../templates/Pages/Middleman.gitlab-ci.yml | 5 + .../ci/templates/Pages/Nanoc.gitlab-ci.yml | 5 + .../templates/Pages/Octopress.gitlab-ci.yml | 5 + .../ci/templates/Pages/Pelican.gitlab-ci.yml | 5 + .../templates/Pages/SwaggerUI.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Python.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Ruby.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Rust.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Scala.gitlab-ci.yml | 5 + .../Security/API-Fuzzing.gitlab-ci.yml | 9 +- .../Security/API-Fuzzing.latest.gitlab-ci.yml | 9 +- .../Cluster-Image-Scanning.gitlab-ci.yml | 34 + .../Security/Container-Scanning.gitlab-ci.yml | 7 +- .../Security/Coverage-Fuzzing.gitlab-ci.yml | 9 +- .../templates/Security/DAST-API.gitlab-ci.yml | 7 +- .../DAST-On-Demand-Scan.gitlab-ci.yml | 7 +- .../ci/templates/Security/DAST.gitlab-ci.yml | 20 +- .../Security/DAST.latest.gitlab-ci.yml | 7 +- .../Dependency-Scanning.gitlab-ci.yml | 7 +- .../Security/License-Scanning.gitlab-ci.yml | 7 +- .../Security/Secure-Binaries.gitlab-ci.yml | 14 +- .../ci/templates/Serverless.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/Swift.gitlab-ci.yml | 5 + .../ci/templates/Terraform.gitlab-ci.yml | 5 + .../templates/Terraform.latest.gitlab-ci.yml | 5 + .../Verify/Accessibility.gitlab-ci.yml | 5 + .../Verify/Browser-Performance.gitlab-ci.yml | 5 + .../Browser-Performance.latest.gitlab-ci.yml | 5 + .../templates/Verify/FailFast.gitlab-ci.yml | 5 + .../Load-Performance-Testing.gitlab-ci.yml | 5 + .../Workflows/Branch-Pipelines.gitlab-ci.yml | 5 + .../MergeRequest-Pipelines.gitlab-ci.yml | 5 + ...NET-Core.yml => dotNET-Core.gitlab-ci.yml} | 16 +- lib/gitlab/ci/templates/dotNET.gitlab-ci.yml | 6 +- .../ci/templates/iOS-Fastlane.gitlab-ci.yml | 5 + lib/gitlab/ci/templates/npm.gitlab-ci.yml | 5 + lib/gitlab/ci/trace.rb | 2 +- lib/gitlab/ci/yaml_processor.rb | 18 +- lib/gitlab/ci/yaml_processor/dag.rb | 42 + .../content_security_policy/config_loader.rb | 7 + lib/gitlab/database.rb | 35 +- lib/gitlab/database/as_with_materialized.rb | 2 + .../background_migration/batched_job.rb | 45 + .../background_migration/batched_migration.rb | 9 +- .../batched_migration_runner.rb | 45 +- lib/gitlab/database/batch_count.rb | 156 +- lib/gitlab/database/batch_counter.rb | 159 + lib/gitlab/database/custom_structure.rb | 43 - lib/gitlab/database/dynamic_model_helpers.rb | 6 +- lib/gitlab/database/load_balancing.rb | 1 - .../database/load_balancing/load_balancer.rb | 15 +- .../load_balancing/rack_middleware.rb | 2 + .../sidekiq_client_middleware.rb | 26 +- .../sidekiq_server_middleware.rb | 63 +- .../database/load_balancing/srv_resolver.rb | 2 + .../database/load_balancing/sticking.rb | 16 +- lib/gitlab/database/migration_helpers.rb | 30 +- .../background_migration_helpers.rb | 5 +- .../database/partitioning/monthly_strategy.rb | 29 +- ...tition_creator.rb => partition_manager.rb} | 47 +- .../partitioning/partition_monitoring.rb | 2 +- .../foreign_key_helpers.rb | 129 - .../partitioned_foreign_key.rb | 13 - .../partitioned_foreign_key_validator.rb | 28 - .../postgres_hll/batch_distinct_counter.rb | 8 +- lib/gitlab/database/postgres_index.rb | 20 +- .../dump_schema_versions_mixin.rb | 3 +- .../force_disconnectable_mixin.rb | 2 +- .../load_schema_versions_mixin.rb | 7 +- lib/gitlab/database/reindexing.rb | 8 +- .../database/reindexing/concurrent_reindex.rb | 154 - lib/gitlab/database/reindexing/coordinator.rb | 2 +- .../database/reindexing/index_selection.rb | 17 +- .../database/reindexing/reindex_action.rb | 2 +- .../reindexing/reindex_concurrently.rb | 138 + lib/gitlab/database/schema_cleaner.rb | 6 +- lib/gitlab/database/schema_migrations.rb | 19 + .../database/schema_migrations/context.rb | 41 + .../database/schema_migrations/migrations.rb | 52 + lib/gitlab/database/schema_version_files.rb | 64 - .../instance_administrators/create_group.rb | 2 +- .../self_monitoring/project/create_service.rb | 19 +- lib/gitlab/diff/file.rb | 2 +- lib/gitlab/diff/file_collection/base.rb | 10 +- lib/gitlab/diff/file_collection/commit.rb | 4 + lib/gitlab/diff/file_collection/compare.rb | 4 + .../merge_request_diff_base.rb | 8 +- .../merge_request_diff_batch.rb | 33 +- .../diff/position_tracer/line_strategy.rb | 21 +- .../email/handler/create_issue_handler.rb | 3 +- lib/gitlab/email/handler/reply_processing.rb | 16 +- .../email/handler/service_desk_handler.rb | 16 +- .../message/in_product_marketing/verify.rb | 2 +- lib/gitlab/email/receiver.rb | 9 +- .../processor/grpc_error_processor.rb | 7 +- lib/gitlab/experimentation.rb | 3 - .../experimentation/controller_concern.rb | 5 +- lib/gitlab/fogbugz_import.rb | 11 + lib/gitlab/fogbugz_import/client.rb | 2 - lib/gitlab/fogbugz_import/http_adapter.rb | 21 + lib/gitlab/git.rb | 2 +- lib/gitlab/git/repository.rb | 28 +- lib/gitlab/git/user.rb | 19 +- lib/gitlab/git/wiki.rb | 7 +- lib/gitlab/git_access.rb | 29 +- lib/gitlab/gitaly_client.rb | 2 +- lib/gitlab/gitaly_client/blob_service.rb | 19 + lib/gitlab/gitaly_client/blobs_stitcher.rb | 4 +- lib/gitlab/gitaly_client/commit_service.rb | 10 + lib/gitlab/gitaly_client/conflicts_service.rb | 2 +- .../gitaly_client/list_blobs_adapter.rb | 21 + .../gitaly_client/repository_service.rb | 17 - lib/gitlab/gitaly_client/storage_settings.rb | 2 +- .../importer/diff_notes_importer.rb | 4 + .../github_import/importer/issues_importer.rb | 4 + .../importer/lfs_objects_importer.rb | 6 + .../github_import/importer/notes_importer.rb | 4 + .../pull_request_merged_by_importer.rb | 2 +- .../importer/pull_request_review_importer.rb | 12 +- .../importer/pull_requests_importer.rb | 4 + .../pull_requests_merged_by_importer.rb | 6 + .../pull_requests_reviews_importer.rb | 8 + lib/gitlab/github_import/markdown_text.rb | 2 +- lib/gitlab/github_import/object_counter.rb | 84 + .../github_import/parallel_scheduling.rb | 6 + .../representation/pull_request_review.rb | 2 +- lib/gitlab/github_import/user_finder.rb | 2 +- lib/gitlab/gitlab_import/importer.rb | 4 +- lib/gitlab/global_id/deprecations.rb | 5 +- lib/gitlab/gon_helper.rb | 3 + .../keyset/generic_keyset_pagination.rb | 31 + lib/gitlab/highlight.rb | 16 +- lib/gitlab/hook_data/issue_builder.rb | 4 +- lib/gitlab/i18n.rb | 22 +- .../import_export/group/import_export.yml | 1 + .../import_export/project/import_export.yml | 11 +- .../import_export/project/object_builder.rb | 12 + .../import_export/project/relation_factory.rb | 5 +- .../import_export/relation_tree_restorer.rb | 2 +- .../instrumentation/redis_interceptor.rb | 10 +- lib/gitlab/instrumentation_helper.rb | 7 + lib/gitlab/integrations/sti_type.rb | 6 +- lib/gitlab/jira_import.rb | 6 +- lib/gitlab/jira_import/base_importer.rb | 2 +- lib/gitlab/json.rb | 8 + lib/gitlab/kas.rb | 6 - lib/gitlab/kas/client.rb | 8 +- .../kubernetes/cilium_network_policy.rb | 10 +- lib/gitlab/kubernetes/network_policy.rb | 12 +- .../kubernetes/network_policy_common.rb | 3 +- lib/gitlab/legacy_github_import/client.rb | 6 +- .../legacy_github_import/user_formatter.rb | 7 +- lib/gitlab/lograge/custom_options.rb | 1 - lib/gitlab/memory/instrumentation.rb | 19 +- lib/gitlab/metrics/dashboard/finder.rb | 17 +- lib/gitlab/metrics/exporter/base_exporter.rb | 3 + .../metrics/exporter/sidekiq_exporter.rb | 3 - lib/gitlab/metrics/exporter/web_exporter.rb | 3 - lib/gitlab/metrics/prometheus.rb | 2 - .../metrics/subscribers/action_cable.rb | 22 + .../metrics/subscribers/active_record.rb | 30 +- .../metrics/subscribers/load_balancing.rb | 70 + lib/gitlab/object_hierarchy.rb | 73 +- .../keyset/column_order_definition.rb | 4 +- lib/gitlab/pagination/keyset/iterator.rb | 8 +- lib/gitlab/pagination/keyset/order.rb | 24 + lib/gitlab/pagination/offset_pagination.rb | 15 +- lib/gitlab/patch/global_id.rb | 2 +- lib/gitlab/path_regex.rb | 4 + lib/gitlab/prometheus/adapter.rb | 2 +- lib/gitlab/push_options.rb | 1 + lib/gitlab/reactive_cache_set_cache.rb | 5 +- lib/gitlab/recaptcha.rb | 3 + lib/gitlab/reference_extractor.rb | 10 +- lib/gitlab/regex.rb | 6 +- lib/gitlab/repo_path.rb | 36 +- lib/gitlab/repository_set_cache.rb | 6 +- lib/gitlab/search/sort_options.rb | 4 + lib/gitlab/search_results.rb | 32 +- lib/gitlab/set_cache.rb | 8 +- lib/gitlab/sidekiq_config.rb | 15 + .../sidekiq_logging/structured_logger.rb | 2 +- lib/gitlab/sidekiq_middleware.rb | 8 +- .../sidekiq_middleware/client_metrics.rb | 1 + .../duplicate_jobs/duplicate_job.rb | 6 +- .../sidekiq_middleware/server_metrics.rb | 79 +- .../size_limiter/validator.rb | 4 + .../worker_context/client.rb | 7 +- lib/gitlab/sidekiq_queue.rb | 8 +- lib/gitlab/slash_commands/issue_new.rb | 2 +- lib/gitlab/spamcheck/client.rb | 17 +- lib/gitlab/string_regex_marker.rb | 10 +- lib/gitlab/template/gitlab_ci_yml_template.rb | 2 +- .../{changelog => template_parser}/ast.rb | 2 +- lib/gitlab/template_parser/error.rb | 8 + .../eval_state.rb | 2 +- .../{changelog => template_parser}/parser.rb | 6 +- lib/gitlab/tracking/destinations/snowplow.rb | 42 +- lib/gitlab/tracking/helpers.rb | 15 + lib/gitlab/usage/docs/helper.rb | 4 + .../usage/docs/templates/default.md.haml | 3 + .../collected_data_categories_metric.rb | 15 + .../instrumentations/database_metric.rb | 34 +- lib/gitlab/usage_data.rb | 17 +- .../counter_events/package_events.yml | 11 + .../usage_data_counters/hll_redis_counter.rb | 6 +- .../known_events/common.yml | 5 + lib/gitlab/usage_data_non_sql_metrics.rb | 2 +- lib/gitlab/usage_data_queries.rb | 2 +- lib/gitlab/utils.rb | 10 + lib/gitlab/utils/sanitize_node_link.rb | 2 +- lib/gitlab/utils/usage_data.rb | 2 +- lib/object_storage/direct_upload.rb | 1 - lib/quality/seeders/issues.rb | 2 +- .../ci_configuration/base_build_action.rb | 1 + .../dependency_scanning_build_action.rb | 19 + lib/serializers/symbolized_json.rb | 18 + lib/sidebars/groups/context.rb | 11 + lib/sidebars/groups/menus/scope_menu.rb | 34 + lib/sidebars/groups/panel.rb | 22 + lib/sidebars/projects/menus/analytics_menu.rb | 2 +- .../projects/menus/deployments_menu.rb | 2 - .../projects/menus/infrastructure_menu.rb | 3 +- lib/sidebars/projects/menus/issues_menu.rb | 14 - lib/sidebars/projects/menus/labels_menu.rb | 50 - lib/sidebars/projects/menus/members_menu.rb | 43 - lib/sidebars/projects/menus/monitor_menu.rb | 104 +- .../menus/project_information_menu.rb | 57 +- lib/sidebars/projects/menus/scope_menu.rb | 4 - lib/sidebars/projects/menus/settings_menu.rb | 4 +- lib/sidebars/projects/panel.rb | 2 - .../app/git_user_default_ssh_config_check.rb | 2 +- lib/tasks/gitlab/assets.rake | 4 +- lib/tasks/gitlab/background_migrations.rake | 23 + lib/tasks/gitlab/backup.rake | 5 +- lib/tasks/gitlab/db.rake | 58 +- lib/tasks/gitlab/helpers.rake | 4 +- lib/tasks/gitlab/sidekiq.rake | 25 +- lib/tasks/gitlab/usage_data.rake | 2 +- locale/am_ET/gitlab.po | 2007 +- locale/ar_SA/gitlab.po | 2025 +- locale/as_IN/gitlab.po | 2005 +- locale/az_AZ/gitlab.po | 2005 +- locale/ba_RU/gitlab.po | 2000 +- locale/bg/gitlab.po | 2007 +- locale/bn_BD/gitlab.po | 2005 +- locale/bn_IN/gitlab.po | 2005 +- locale/br_FR/gitlab.po | 2020 +- locale/bs_BA/gitlab.po | 2010 +- locale/ca_ES/gitlab.po | 2005 +- locale/cs_CZ/gitlab.po | 2015 +- locale/cy_GB/gitlab.po | 2025 +- locale/da_DK/gitlab.po | 2005 +- locale/de/gitlab.po | 2041 +- locale/el_GR/gitlab.po | 2005 +- locale/eo/gitlab.po | 2007 +- locale/es/gitlab.po | 2065 +- locale/et_EE/gitlab.po | 2005 +- locale/fa_IR/gitlab.po | 2005 +- locale/fi_FI/gitlab.po | 2005 +- locale/fil_PH/gitlab.po | 2005 +- locale/fr/gitlab.po | 2027 +- locale/gitlab.pot | 1979 +- locale/gl_ES/gitlab.po | 2005 +- locale/he_IL/gitlab.po | 2015 +- locale/hi_IN/gitlab.po | 2005 +- locale/hr_HR/gitlab.po | 2010 +- locale/hu_HU/gitlab.po | 2005 +- locale/hy_AM/gitlab.po | 2005 +- locale/id_ID/gitlab.po | 2000 +- locale/ig_NG/gitlab.po | 2000 +- locale/is_IS/gitlab.po | 2005 +- locale/it/gitlab.po | 2009 +- locale/ja/gitlab.po | 2060 +- locale/ka_GE/gitlab.po | 2005 +- locale/kab/gitlab.po | 2005 +- locale/ko/gitlab.po | 2028 +- locale/ku_TR/gitlab.po | 2005 +- locale/ky_KG/gitlab.po | 2005 +- locale/lt_LT/gitlab.po | 2015 +- locale/mk_MK/gitlab.po | 2005 +- locale/mn_MN/gitlab.po | 2005 +- locale/nb_NO/gitlab.po | 2031 +- locale/nl_NL/gitlab.po | 2005 +- locale/pa_IN/gitlab.po | 2005 +- locale/pl_PL/gitlab.po | 2855 +- locale/pt_BR/gitlab.po | 2299 +- locale/pt_PT/gitlab.po | 2023 +- locale/ro_RO/gitlab.po | 2010 +- locale/ru/gitlab.po | 2177 +- locale/si_LK/gitlab.po | 2005 +- locale/sk_SK/gitlab.po | 2015 +- locale/sl_SI/gitlab.po | 2015 +- locale/sq_AL/gitlab.po | 2005 +- locale/sr_CS/gitlab.po | 2010 +- locale/sr_SP/gitlab.po | 2010 +- locale/sv_SE/gitlab.po | 2359 +- locale/sw_KE/gitlab.po | 2005 +- locale/ta_IN/gitlab.po | 2005 +- locale/tr_TR/gitlab.po | 2017 +- locale/uk/gitlab.po | 2123 +- locale/ur_PK/gitlab.po | 2005 +- locale/uz_UZ/gitlab.po | 2005 +- locale/vi_VN/gitlab.po | 2000 +- locale/zh_CN/gitlab.po | 2076 +- locale/zh_HK/gitlab.po | 2002 +- locale/zh_TW/gitlab.po | 2022 +- package.json | 67 +- qa/Dockerfile | 46 +- qa/Gemfile | 7 +- qa/Gemfile.lock | 98 +- qa/Rakefile | 8 +- qa/qa.rb | 16 + qa/qa/fixtures/export.tar.gz | Bin 0 -> 306887 bytes qa/qa/page/admin/overview/users/show.rb | 30 +- qa/qa/page/base.rb | 6 +- qa/qa/page/component/import/gitlab.rb | 40 + qa/qa/page/component/import/selection.rb | 23 + qa/qa/page/component/invite_members_modal.rb | 6 +- qa/qa/page/component/issuable/sidebar.rb | 16 +- qa/qa/page/dashboard/snippet/edit.rb | 3 +- qa/qa/page/group/bulk_import.rb | 5 +- qa/qa/page/group/menu.rb | 2 +- qa/qa/page/group/new.rb | 6 +- qa/qa/page/group/settings/general.rb | 2 +- qa/qa/page/group/sub_menus/common.rb | 4 +- qa/qa/page/main/login.rb | 2 +- qa/qa/page/project/fork/new.rb | 8 +- qa/qa/page/project/import/github.rb | 30 +- qa/qa/page/project/import/repo_by_url.rb | 60 + .../project/infrastructure/kubernetes/show.rb | 43 - qa/qa/page/project/new.rb | 15 +- qa/qa/page/project/pipeline_editor/show.rb | 45 + qa/qa/page/project/settings/advanced.rb | 2 +- qa/qa/page/project/settings/default_branch.rb | 29 + qa/qa/page/project/settings/deploy_tokens.rb | 4 +- .../settings/mirroring_repositories.rb | 11 +- qa/qa/page/project/settings/repository.rb | 8 + qa/qa/page/project/sub_menus/ci_cd.rb | 18 + qa/qa/page/project/sub_menus/project.rb | 6 +- qa/qa/resource/base.rb | 228 +- qa/qa/resource/deploy_token.rb | 2 +- qa/qa/resource/group.rb | 4 +- qa/qa/resource/group_base.rb | 10 +- qa/qa/resource/import_project.rb | 35 + .../kubernetes_cluster/project_cluster.rb | 17 +- qa/qa/resource/merge_request.rb | 70 +- qa/qa/resource/package.rb | 7 +- qa/qa/resource/personal_access_token.rb | 24 +- qa/qa/resource/personal_access_token_cache.rb | 17 + qa/qa/resource/project.rb | 30 +- .../resource/project_imported_from_github.rb | 65 +- qa/qa/resource/project_imported_from_url.rb | 27 + qa/qa/resource/repository/wiki_push.rb | 1 - qa/qa/resource/user.rb | 2 +- qa/qa/runtime/allure_report.rb | 38 +- qa/qa/runtime/browser.rb | 80 +- qa/qa/runtime/env.rb | 25 +- qa/qa/scenario/test/integration/registry.rb | 13 + qa/qa/service/cluster_provider/k3s_cilium.rb | 93 + qa/qa/service/docker_run/gitlab_runner.rb | 16 +- qa/qa/service/docker_run/k3s.rb | 15 +- qa/qa/service/kubernetes_cluster.rb | 24 + .../api/1_manage/import_github_repo_spec.rb | 133 + .../3_create/gitaly/distributed_reads_spec.rb | 8 +- .../gitaly/praefect_replication_queue_spec.rb | 2 +- .../merge_request/push_options_mwps_spec.rb | 4 +- .../push_options_remove_source_branch_spec.rb | 2 +- .../push_options_target_branch_spec.rb | 2 +- .../push_options_title_description_spec.rb | 2 +- .../api/5_package/container_registry_spec.rb | 4 +- .../1_manage/group/bulk_import_group_spec.rb | 48 +- .../1_manage/login/register_spec.rb | 2 +- .../1_manage/project/create_project_spec.rb | 2 +- .../1_manage/project/dashboard_images_spec.rb | 2 +- .../project/import_github_repo_spec.rb | 87 +- .../email/trigger_email_notification_spec.rb | 2 +- .../2_plan/issue/create_issue_spec.rb | 13 +- .../merge_merge_request_from_fork_spec.rb | 2 +- .../revert/reverting_merge_request_spec.rb | 2 +- .../push_http_private_token_spec.rb | 2 +- .../pipeline_editor_branch_switcher_spec.rb | 90 + .../testing/view_code_coverage_spec.rb | 2 +- .../5_package/composer_registry_spec.rb | 4 +- .../5_package/conan_repository_spec.rb | 8 +- .../container_registry_omnibus_spec.rb | 88 + .../5_package/generic_repository_spec.rb | 4 +- .../5_package/maven_gradle_repository_spec.rb | 275 +- .../5_package/maven_repository_spec.rb | 4 +- .../browser_ui/5_package/npm_registry_spec.rb | 8 +- .../5_package/nuget_repository_spec.rb | 4 +- .../online_garbage_collection_spec.rb | 108 + .../5_package/pypi_repository_spec.rb | 4 +- .../5_package/rubygems_registry_spec.rb | 4 +- qa/qa/specs/helpers/context_selector.rb | 16 +- qa/qa/specs/runner.rb | 2 + qa/spec/runtime/env_spec.rb | 6 +- .../service/docker_run/gitlab_runner_spec.rb | 2 +- .../specs/helpers/context_selector_spec.rb | 253 +- qa/tasks/webdrivers.rake | 4 + rubocop/code_reuse_helpers.rb | 48 +- rubocop/cop/database/multiple_databases.rb | 32 + rubocop/cop/gitlab/duplicate_spec_location.rb | 2 +- rubocop/cop/gitlab/mark_used_feature_flags.rb | 265 + .../cop/migration/prevent_index_creation.rb | 41 + .../cop/migration/sidekiq_queue_migrate.rb | 29 + .../with_lock_retries_disallowed_method.rb | 1 + rubocop/cop/worker_data_consistency.rb | 63 + rubocop/rubocop-migrations.yml | 1 + scripts/build_assets_image | 7 +- scripts/frontend/extract_gettext_all.js | 2 +- .../startup_css/startup_css_changed.sh | 19 +- .../stylelint/stylelint-utility-classes.js | 2 +- scripts/lint-doc.sh | 4 +- scripts/merge-html-reports | 85 - scripts/review_apps/automated_cleanup.rb | 10 + scripts/review_apps/base-config.yaml | 1 + scripts/review_apps/review-apps.sh | 69 +- scripts/setup-test-env | 68 + scripts/static-analysis | 5 +- scripts/trigger-build | 27 +- scripts/used-feature-flags | 22 +- scripts/utils.sh | 9 +- scripts/verify-tff-mapping | 4 +- spec/config/settings_spec.rb | 6 +- .../abuse_reports_controller_spec.rb | 2 +- .../application_settings_controller_spec.rb | 7 + .../admin/impersonations_controller_spec.rb | 8 + .../admin/integrations_controller_spec.rb | 12 +- .../admin/services_controller_spec.rb | 4 +- .../admin/users_controller_spec.rb | 23 + .../concerns/routable_actions_spec.rb | 4 +- .../confirmations_controller_spec.rb | 2 + .../dashboard/projects_controller_spec.rb | 1 + .../groups/group_links_controller_spec.rb | 6 +- .../settings/integrations_controller_spec.rb | 14 +- spec/controllers/help_controller_spec.rb | 8 +- .../import/bulk_imports_controller_spec.rb | 4 +- .../import/gitea_controller_spec.rb | 42 + spec/controllers/invites_controller_spec.rb | 36 +- .../jira_connect/events_controller_spec.rb | 29 +- .../oauth/applications_controller_spec.rb | 63 +- .../profiles/emails_controller_spec.rb | 1 + .../personal_access_tokens_controller_spec.rb | 12 + .../two_factor_auths_controller_spec.rb | 44 +- .../projects/blob_controller_spec.rb | 17 +- .../projects/commit_controller_spec.rb | 22 +- .../designs/raw_images_controller_spec.rb | 4 +- .../projects/import/jira_controller_spec.rb | 12 +- .../projects/issues_controller_spec.rb | 14 +- .../merge_requests/diffs_controller_spec.rb | 16 +- .../merge_requests_controller_spec.rb | 14 + .../projects/pipelines_controller_spec.rb | 12 +- .../project_members_controller_spec.rb | 10 +- .../prometheus/metrics_controller_spec.rb | 4 +- .../projects/runners_controller_spec.rb | 2 +- .../service_hook_logs_controller_spec.rb | 18 + ...pec.rb => service_ping_controller_spec.rb} | 2 +- .../projects/services_controller_spec.rb | 153 +- .../settings/access_tokens_controller_spec.rb | 8 + .../projects/tree_controller_spec.rb | 19 +- spec/controllers/projects_controller_spec.rb | 76 +- .../experience_levels_controller_spec.rb | 2 +- .../registrations_controller_spec.rb | 32 - .../repositories/git_http_controller_spec.rb | 12 - spec/controllers/root_controller_spec.rb | 28 +- spec/controllers/uploads_controller_spec.rb | 2 +- .../users/terms_controller_spec.rb | 1 + .../users/unsubscribes_controller_spec.rb | 36 + spec/db/schema_spec.rb | 15 +- spec/deprecation_toolkit_env.rb | 5 +- .../application_experiment_spec.rb | 174 +- ..._project_readme_content_experiment_spec.rb | 36 + spec/factories/audit_events.rb | 1 + spec/factories/ci/builds.rb | 8 + spec/factories/ci/pending_builds.rb | 10 + .../ci/reports/security/identifiers.rb | 15 + spec/factories/ci/reports/security/links.rb | 14 + .../factories/ci/reports/security/scanners.rb | 29 + spec/factories/ci/running_builds.rb | 10 + spec/factories/events.rb | 1 - spec/factories/integration_data.rb | 2 +- spec/factories/integrations.rb | 15 +- .../merge_request_cleanup_schedules.rb | 15 +- .../merge_request_diff_commit_users.rb | 8 + spec/factories/packages.rb | 6 + .../factories/packages/helm/file_metadatum.rb | 2 +- spec/factories/packages/package_file.rb | 9 + spec/factories/projects.rb | 8 +- spec/factories/usage_data.rb | 10 +- spec/fast_spec_helper.rb | 10 + spec/features/admin/admin_appearance_spec.rb | 2 +- .../admin/admin_dev_ops_report_spec.rb | 2 +- spec/features/admin/admin_groups_spec.rb | 13 + .../features/admin/admin_mode/workers_spec.rb | 5 +- spec/features/admin/admin_projects_spec.rb | 11 + spec/features/admin/admin_runners_spec.rb | 274 +- .../admin_sees_background_migrations_spec.rb | 13 +- spec/features/admin/admin_settings_spec.rb | 113 +- .../admin_users_impersonation_tokens_spec.rb | 4 +- .../admin_visits_service_templates_spec.rb | 14 +- spec/features/admin/users/user_spec.rb | 78 +- spec/features/admin/users/users_spec.rb | 18 +- .../alert_management_list_spec.rb | 2 +- spec/features/boards/boards_spec.rb | 3 +- spec/features/boards/sidebar_spec.rb | 8 + spec/features/calendar_spec.rb | 4 +- spec/features/cycle_analytics_spec.rb | 1 + .../dashboard/datetime_on_tooltips_spec.rb | 1 + spec/features/dashboard/issues_filter_spec.rb | 4 +- .../features/dashboard/merge_requests_spec.rb | 2 + spec/features/dashboard/projects_spec.rb | 6 - spec/features/dashboard/root_spec.rb | 19 + .../file_uploads/group_import_spec.rb | 1 + .../file_uploads/project_import_spec.rb | 1 + .../features/file_uploads/user_avatar_spec.rb | 1 + .../import_export/connect_instance_spec.rb | 7 +- .../groups/import_export/import_file_spec.rb | 2 +- .../groups/members/manage_members_spec.rb | 4 +- spec/features/groups/merge_requests_spec.rb | 25 + spec/features/groups/navbar_spec.rb | 74 - spec/features/groups/packages_spec.rb | 22 +- .../groups/settings/repository_spec.rb | 2 +- .../user_searches_in_settings_spec.rb | 4 +- spec/features/groups/show_spec.rb | 8 +- .../user_browse_projects_group_page_spec.rb | 2 +- spec/features/groups_spec.rb | 33 +- spec/features/help_pages_spec.rb | 2 +- spec/features/invites_spec.rb | 51 +- .../markdown_references/jira_spec.rb | 8 +- .../filtered_search/dropdown_assignee_spec.rb | 7 +- .../filtered_search/dropdown_author_spec.rb | 7 +- .../filtered_search/dropdown_base_spec.rb | 7 +- .../filtered_search/dropdown_emoji_spec.rb | 9 +- .../filtered_search/dropdown_hint_spec.rb | 8 +- .../filtered_search/dropdown_label_spec.rb | 9 +- .../dropdown_milestone_spec.rb | 10 +- .../filtered_search/dropdown_release_spec.rb | 10 +- .../filtered_search/recent_searches_spec.rb | 9 +- .../issues/filtered_search/search_bar_spec.rb | 7 +- .../filtered_search/visual_tokens_spec.rb | 16 +- spec/features/issues/incident_issue_spec.rb | 49 +- spec/features/issues/issue_sidebar_spec.rb | 30 +- .../issues/user_bulk_edits_issues_spec.rb | 8 +- spec/features/issues/user_edits_issue_spec.rb | 40 +- .../issues/user_interacts_with_awards_spec.rb | 2 +- .../issues/user_sees_breadcrumb_links_spec.rb | 1 + .../features/issues/user_sorts_issues_spec.rb | 23 +- spec/features/markdown/metrics_spec.rb | 3 +- .../merge_request/batch_comments_spec.rb | 10 +- .../user_comments_on_diff_spec.rb | 8 +- ...er_interacts_with_batched_mr_diffs_spec.rb | 4 +- .../user_posts_diff_notes_spec.rb | 16 +- .../user_resolves_conflicts_spec.rb | 2 +- .../user_sees_merge_widget_spec.rb | 2 +- .../merge_request/user_sees_pipelines_spec.rb | 2 +- .../merge_request/user_sees_versions_spec.rb | 6 +- .../user_toggles_whitespace_changes_spec.rb | 2 +- .../merge_request/user_views_diffs_spec.rb | 6 +- .../user_lists_merge_requests_spec.rb | 16 +- .../merge_requests/user_mass_updates_spec.rb | 6 +- .../user_sorts_merge_requests_spec.rb | 2 +- spec/features/oauth_login_spec.rb | 2 +- .../participants_autocomplete_spec.rb | 1 + spec/features/profiles/password_spec.rb | 78 +- .../profiles/personal_access_tokens_spec.rb | 17 +- .../profiles/two_factor_auths_spec.rb | 88 + spec/features/projects/active_tabs_spec.rb | 34 +- .../user_sees_design_activity_spec.rb | 5 - spec/features/projects/ci/editor_spec.rb | 2 +- spec/features/projects/ci/lint_spec.rb | 2 +- spec/features/projects/clusters/gcp_spec.rb | 2 +- .../user_creates_feature_flag_spec.rb | 1 - .../user_deletes_feature_flag_spec.rb | 1 - .../user_sees_feature_flag_list_spec.rb | 72 +- .../user_updates_feature_flag_spec.rb | 3 - .../projects/features_visibility_spec.rb | 11 - .../files/dockerfile_dropdown_spec.rb | 2 +- .../projects/files/gitignore_dropdown_spec.rb | 2 +- .../files/gitlab_ci_yml_dropdown_spec.rb | 2 +- .../projects/files/undo_template_spec.rb | 4 +- .../import_export/import_file_spec.rb | 2 +- .../projects/infrastructure_registry_spec.rb | 19 +- .../integrations/user_activates_jira_spec.rb | 12 +- .../user_activates_pivotaltracker_spec.rb | 4 +- spec/features/projects/navbar_spec.rb | 170 +- spec/features/projects/new_project_spec.rb | 113 +- spec/features/projects/package_files_spec.rb | 14 +- spec/features/projects/packages_spec.rb | 14 +- .../projects/pipelines/pipeline_spec.rb | 70 +- .../projects/pipelines/pipelines_spec.rb | 2 +- .../releases/user_views_edit_release_spec.rb | 12 +- .../releases/user_views_releases_spec.rb | 45 +- .../prometheus_external_alerts_spec.rb | 2 +- .../user_activates_prometheus_spec.rb | 2 +- ...user_activates_slack_notifications_spec.rb | 10 +- .../projects/settings/access_tokens_spec.rb | 5 +- .../settings/monitor_settings_spec.rb | 13 +- .../settings/registry_settings_spec.rb | 178 +- .../user_searches_in_settings_spec.rb | 2 +- spec/features/projects/terraform_spec.rb | 2 +- .../projects/tree/create_directory_spec.rb | 2 +- .../projects/tree/create_file_spec.rb | 2 +- .../projects/user_creates_project_spec.rb | 6 +- .../projects/user_sees_user_popover_spec.rb | 6 +- .../projects/user_uses_shortcuts_spec.rb | 44 - .../projects/user_views_empty_project_spec.rb | 10 +- spec/features/projects_spec.rb | 4 +- .../search/user_searches_for_code_spec.rb | 8 +- .../search/user_searches_for_comments_spec.rb | 2 + .../search/user_searches_for_commits_spec.rb | 2 + .../search/user_searches_for_issues_spec.rb | 1 + .../user_searches_for_merge_requests_spec.rb | 1 + .../user_searches_for_milestones_spec.rb | 1 + .../search/user_searches_for_projects_spec.rb | 1 + .../search/user_searches_for_users_spec.rb | 2 + .../user_searches_for_wiki_pages_spec.rb | 1 + .../snippets/embedded_snippet_spec.rb | 5 +- spec/features/unsubscribe_links_spec.rb | 2 +- spec/features/usage_stats_consent_spec.rb | 2 +- spec/features/users/login_spec.rb | 19 +- ...user_browses_projects_on_user_page_spec.rb | 2 +- .../alert_management/alerts_finder_spec.rb | 1 + .../bulk_imports/entities_finder_spec.rb | 84 + .../bulk_imports/imports_finder_spec.rb | 34 + .../finders/ci/commit_statuses_finder_spec.rb | 2 + spec/finders/ci/runners_finder_spec.rb | 27 +- .../container_repositories_finder_spec.rb | 35 +- spec/finders/deployments_finder_spec.rb | 3 + .../environments/environments_finder_spec.rb | 31 +- spec/finders/events_finder_spec.rb | 1 + spec/finders/group_descendants_finder_spec.rb | 1 + spec/finders/groups_finder_spec.rb | 1 + spec/finders/merge_requests_finder_spec.rb | 38 + spec/finders/milestones_finder_spec.rb | 91 +- .../conan/package_file_finder_spec.rb | 1 + .../finders/packages/go/module_finder_spec.rb | 1 + .../packages/group_packages_finder_spec.rb | 1 + .../packages/nuget/package_finder_spec.rb | 2 + .../packages/package_file_finder_spec.rb | 1 + spec/finders/packages/package_finder_spec.rb | 1 + spec/finders/projects_finder_spec.rb | 34 +- spec/finders/template_finder_spec.rb | 2 + spec/finders/todos_finder_spec.rb | 2 + .../finders/user_recent_events_finder_spec.rb | 2 + spec/fixtures/api/schemas/cluster_status.json | 2 - .../admin_users_data_attributes_paths.json | 8 +- spec/fixtures/error_tracking/event.txt | 3 + .../fixtures/error_tracking/parsed_event.json | 1 + spec/fixtures/error_tracking/transaction.txt | 3 + spec/fixtures/error_tracking/unknown.txt | 3 + .../database/structure_example_cleaned.sql | 4 +- .../sample_metric_with_ee.yml | 2 +- .../sample_metric_with_name_suggestions.yml | 2 +- .../gitlab/import_export/complex/project.json | 787 +- .../tree/project/merge_requests.ndjson | 16 +- .../complex/tree/project/triggers.ndjson | 2 +- spec/fixtures/packages/nuget/package.snupkg | Bin 0 -> 4691 bytes .../packages/nuget/with_package_types.nuspec | 14 + .../__helpers__/dom_shims/inner_text.js | 2 +- .../add_context_commits_modal_spec.js.snap | 1 + .../users/components/actions/actions_spec.js | 29 +- .../delete_user_modal_spec.js.snap | 1 + .../modals}/delete_user_modal_spec.js | 2 +- .../components/modals}/stubs/modal_stub.js | 0 .../modals}/user_modal_manager_spec.js | 2 +- .../users/components/user_actions_spec.js | 62 +- spec/frontend/admin/users/constants.js | 16 +- spec/frontend/admin/users/index_spec.js | 36 +- spec/frontend/admin/users/mock_data.js | 4 + .../components/service_ping_disabled_spec.js | 61 + .../shared/components/daterange_spec.js | 120 + .../shared/components/metric_card_spec.js | 129 - .../projects_dropdown_filter_spec.js | 264 + spec/frontend/analytics/shared/utils_spec.js | 24 + ...ce_counts_spec.js => usage_counts_spec.js} | 22 +- spec/frontend/api_spec.js | 8 +- .../manage_two_factor_form_spec.js.snap | 99 + .../components/manage_two_factor_form_spec.js | 98 + .../components/draft_note_spec.js | 12 + .../blob_header_filepath_spec.js.snap | 2 +- .../blob/components/blob_edit_content_spec.js | 8 +- spec/frontend/blob/csv/csv_viewer_spec.js | 75 + spec/frontend/blob/utils_spec.js | 12 +- spec/frontend/blob/viewer/index_spec.js | 5 + spec/frontend/blob_edit/blob_bundle_spec.js | 10 +- spec/frontend/blob_edit/edit_blob_spec.js | 14 +- spec/frontend/boards/board_card_inner_spec.js | 124 +- spec/frontend/boards/board_list_helper.js | 95 +- spec/frontend/boards/board_list_spec.js | 96 +- spec/frontend/boards/boards_util_spec.js | 33 +- .../boards/components/board_column_spec.js | 37 +- .../components/board_content_sidebar_spec.js | 20 +- .../boards/components/board_content_spec.js | 7 +- .../boards/components/board_form_spec.js | 2 +- .../components/board_settings_sidebar_spec.js | 11 + .../issue_board_filtered_search_spec.js | 44 + spec/frontend/boards/mock_data.js | 47 +- spec/frontend/boards/stores/actions_spec.js | 88 +- spec/frontend/boards/stores/getters_spec.js | 2 +- spec/frontend/boards/stores/mutations_spec.js | 3 + .../components/delete_branch_button_spec.js | 6 +- .../captcha_modal_axios_interceptor_spec.js | 55 +- .../ci_lint/components/ci_lint_spec.js | 4 +- .../frontend/clusters/clusters_bundle_spec.js | 166 - .../__snapshots__/applications_spec.js.snap | 105 - .../remove_cluster_confirmation_spec.js.snap | 1 - .../components/application_row_spec.js | 505 - .../clusters/components/applications_spec.js | 510 - .../components/knative_domain_editor_spec.js | 179 - .../uninstall_application_button_spec.js | 39 - ...all_application_confirmation_modal_spec.js | 57 - ...ate_application_confirmation_modal_spec.js | 52 - .../application_state_machine_spec.js | 206 - .../crossplane_provider_stack_spec.js | 85 - spec/frontend/clusters/services/mock_data.js | 155 +- .../clusters/stores/clusters_store_spec.js | 192 - .../clusters_list/store/actions_spec.js | 6 +- .../__snapshots__/popover_spec.js.snap | 2 + .../components/step_spec.js | 6 +- spec/frontend/collapsed_sidebar_todo_spec.js | 171 - .../commit_pipeline_status_component_spec.js | 4 +- .../commit/pipelines/pipelines_table_spec.js | 4 +- .../components/content_editor_spec.js | 37 +- .../components/toolbar_button_spec.js | 34 +- .../components/toolbar_image_button_spec.js | 78 + .../components/toolbar_link_button_spec.js | 47 +- .../components/toolbar_table_button_spec.js | 109 + .../toolbar_text_style_dropdown_spec.js | 16 +- .../components/top_toolbar_spec.js | 24 +- .../components/wrappers/image_spec.js | 66 + .../extensions/hard_break_spec.js | 46 + .../extensions/horizontal_rule_spec.js | 20 + .../content_editor/extensions/image_spec.js | 193 + .../markdown_processing_examples.js | 3 +- .../markdown_processing_spec.js | 16 +- .../services/create_content_editor_spec.js | 12 +- .../track_input_rules_and_shortcuts_spec.js | 17 +- .../services/upload_file_spec.js | 46 + spec/frontend/content_editor/test_utils.js | 12 +- .../contributors/store/actions_spec.js | 6 +- .../cycle_analytics/filter_bar_spec.js | 224 + .../formatted_stage_count_spec.js | 34 + spec/frontend/cycle_analytics/mock_data.js | 41 +- .../cycle_analytics/store/actions_spec.js | 88 +- .../cycle_analytics/store/mutations_spec.js | 69 +- spec/frontend/cycle_analytics/utils_spec.js | 10 + .../value_stream_filters_spec.js | 91 + .../__snapshots__/design_note_spec.js.snap | 7 +- .../design_notes/design_note_spec.js | 3 +- .../components/design_todo_button_spec.js | 2 +- .../pages/design/index_spec.js | 8 +- spec/frontend/diffs/components/app_spec.js | 46 +- .../collapsed_files_warning_spec.js | 99 +- .../diffs/components/diff_content_spec.js | 17 - .../diffs/components/diff_file_spec.js | 5 +- .../diffs/components/diff_row_spec.js | 131 +- .../diffs/components/diff_row_utils_spec.js | 43 +- .../diffs/components/diff_view_spec.js | 18 +- .../components/inline_diff_table_row_spec.js | 325 - .../diffs/components/inline_diff_view_spec.js | 57 - .../parallel_diff_table_row_spec.js | 445 - .../components/parallel_diff_view_spec.js | 37 - spec/frontend/diffs/store/actions_spec.js | 31 +- .../store/getters_versions_dropdowns_spec.js | 2 +- ...js => source_editor_ci_schema_ext_spec.js} | 6 +- ...s => source_editor_extension_base_spec.js} | 62 +- ....js => source_editor_markdown_ext_spec.js} | 8 +- ...tor_lite_spec.js => source_editor_spec.js} | 36 +- .../emoji/awards_app/store/actions_spec.js | 1 + spec/frontend/environment.js | 21 + .../environments/environment_item_spec.js | 11 + .../environments/environments_app_spec.js | 16 + .../components/edit_feature_flag_spec.js | 73 +- .../components/feature_flags_table_spec.js | 190 +- .../feature_flags/components/form_spec.js | 338 +- .../components/new_feature_flag_spec.js | 15 - spec/frontend/feature_flags/mock_data.js | 88 +- .../feature_flags/store/edit/actions_spec.js | 45 +- .../feature_flags/store/helpers_spec.js | 360 +- .../feature_flags/store/index/actions_spec.js | 5 - .../store/index/mutations_spec.js | 17 - .../feature_flags/store/new/actions_spec.js | 85 +- .../feature_highlight_helper_spec.js | 9 +- .../filtered_search_manager_spec.js | 12 +- .../visual_token_value_spec.js | 8 +- spec/frontend/fixtures/api_markdown.rb | 36 +- spec/frontend/fixtures/api_markdown.yml | 33 + .../frontend/fixtures/application_settings.rb | 8 + spec/frontend/fixtures/pipelines.rb | 1 + spec/frontend/fixtures/projects.rb | 3 +- spec/frontend/fixtures/prometheus_service.rb | 4 +- spec/frontend/fixtures/releases.rb | 8 +- spec/frontend/fixtures/runner.rb | 9 +- spec/frontend/flash_spec.js | 115 - .../frequent_items_list_item_spec.js | 35 +- spec/frontend/gfm_auto_complete_spec.js | 37 +- spec/frontend/gpg_badges_spec.js | 50 +- .../components/grafana_integration_spec.js | 1 - spec/frontend/groups/components/app_spec.js | 17 +- .../groups/components/group_item_spec.js | 18 +- .../ide/components/ide_project_header_spec.js | 44 + .../ide/components/new_dropdown/modal_spec.js | 3 - .../ide/components/repo_editor_spec.js | 15 +- spec/frontend/ide/services/index_spec.js | 2 +- .../stores/modules/clientside/actions_spec.js | 2 +- spec/frontend/ide/stores/utils_spec.js | 6 +- .../components/group_dropdown_spec.js | 44 + .../components/import_table_row_spec.js | 6 +- .../components/import_projects_table_spec.js | 4 +- .../provider_repo_table_row_spec.js | 19 +- .../incidents_settings_tabs_spec.js.snap | 2 + .../incidents_settings_service_spec.js | 1 - .../components/jira_issues_fields_spec.js | 109 +- .../components/invite_members_modal_spec.js | 309 +- .../components/members_token_select_spec.js | 15 + .../invite_members/mock_data/api_responses.js | 74 + .../utils/response_message_parser_spec.js | 36 + .../components/issuable_by_email_spec.js | 5 +- .../components/status_select_spec.js | 77 + .../components/issuable_form_spec.js | 3 + .../components/issuable_show_root_spec.js | 8 - .../components/issuable_sidebar_root_spec.js | 228 +- spec/frontend/issuable_spec.js | 2 +- .../components/issuables_list_app_spec.js | 4 +- .../components/issues_list_app_spec.js | 74 +- spec/frontend/issues_list/mock_data.js | 77 +- spec/frontend/issues_list/utils_spec.js | 29 +- .../components/project_dropdown_spec.js | 180 + .../components/source_branch_dropdown_spec.js | 192 + .../components/groups_list_spec.js | 6 +- .../jira_import_form_spec.js.snap | 2 - .../jobs/components/empty_state_spec.js | 1 - spec/frontend/jobs/components/job_app_spec.js | 8 +- .../log/collapsible_section_spec.js | 9 + .../frontend/jobs/components/log/line_spec.js | 30 + spec/frontend/jobs/components/log/log_spec.js | 91 +- .../frontend/jobs/components/log/mock_data.js | 65 + .../components/manual_variables_form_spec.js | 15 +- .../components/sidebar_detail_row_spec.js | 2 +- spec/frontend/jobs/store/mutations_spec.js | 94 + spec/frontend/jobs/store/utils_spec.js | 95 +- spec/frontend/lib/dompurify_spec.js | 16 + spec/frontend/lib/graphql_spec.js | 54 + spec/frontend/lib/utils/common_utils_spec.js | 146 +- .../utils/datetime/timeago_utility_spec.js | 103 + .../lib/utils/datetime_utility_spec.js | 40 - .../lib/utils/finite_state_machine_spec.js | 293 + spec/frontend/lib/utils/text_markdown_spec.js | 2 +- spec/frontend/lib/utils/url_utility_spec.js | 115 +- spec/frontend/line_highlighter_spec.js | 9 + spec/frontend/locale/index_spec.js | 86 +- spec/frontend/logs/stores/actions_spec.js | 6 - spec/frontend/members/components/app_spec.js | 21 +- .../members_filtered_search_bar_spec.js | 12 + .../members/components/members_tabs_spec.js | 75 +- .../components/table/members_table_spec.js | 19 +- .../milestones/milestone_utils_spec.js | 47 + .../components/charts/time_series_spec.js | 4 +- .../components/dashboard_actions_menu_spec.js | 7 +- .../nav/components/top_nav_menu_item_spec.js | 2 +- .../notes/components/comment_form_spec.js | 14 +- .../notes/components/discussion_notes_spec.js | 14 +- .../notes/components/noteable_note_spec.js | 7 +- spec/frontend/notes/stores/actions_spec.js | 75 +- .../custom_notifications_modal_spec.js | 10 +- .../components/notifications_dropdown_spec.js | 5 +- .../components/metrics_settings_spec.js | 1 - .../packages_list_app_spec.js.snap | 1 + spec/frontend/packages/shared/utils_spec.js | 2 + .../components/details/app_spec.js | 35 + .../components/group_settings_app_spec.js | 6 +- .../settings/__snapshots__/utils_spec.js.snap | 8 + .../__snapshots__/settings_form_spec.js.snap | 4 +- .../settings/components/settings_form_spec.js | 20 +- .../settings/project/settings/utils_spec.js | 1 + spec/frontend/pager_spec.js | 1 + .../usage_statistics_spec.js | 57 + .../forks/new/components/fork_form_spec.js | 23 +- .../components/fork_groups_list_item_spec.js | 4 +- .../pages/projects/new/components/app_spec.js | 33 - .../components/settings_panel_spec.js | 25 + spec/frontend/persistent_user_callout_spec.js | 15 +- .../editor/ci_config_merged_preview_spec.js | 6 +- .../editor/ci_editor_header_spec.js | 53 + .../components/editor/text_editor_spec.js | 10 +- .../file-nav/branch_switcher_spec.js | 21 +- .../components/ui/editor_tab_spec.js | 6 +- .../pipeline_editor/graphql/resolvers_spec.js | 39 +- spec/frontend/pipeline_editor/mock_data.js | 46 + .../pipeline_editor_app_spec.js | 176 +- spec/frontend/pipelines/empty_state_spec.js | 30 +- spec/frontend/pipelines/graph/mock_data.js | 8 + .../graph/stage_column_component_spec.js | 64 +- .../__snapshots__/links_inner_spec.js.snap | 18 +- .../pipeline_graph/pipeline_graph_spec.js | 57 +- .../pipelines/pipelines_ci_templates_spec.js | 34 +- spec/frontend/pipelines/pipelines_spec.js | 89 +- .../components/profile_preferences_spec.js | 18 +- .../components/branches_dropdown_spec.js | 3 +- .../project_delete_button_spec.js.snap | 4 - .../ci_cd_analytics_area_chart_spec.js.snap | 6 +- .../components/shared_runners_toggle_spec.js | 1 + .../terraform_notification_spec.js | 62 + .../list_page/cleanup_status_spec.js | 87 + .../list_page/image_list_row_spec.js | 30 +- spec/frontend/registry/explorer/mock_data.js | 2 + .../releases/__snapshots__/util_spec.js.snap | 37 + .../app_index_apollo_client_spec.js | 8 +- .../releases/components/app_index_spec.js | 6 +- .../grouped_issues_list_spec.js.snap | 1 + .../grouped_test_reports_app_spec.js | 4 +- .../components/blob_button_group_spec.js | 117 + .../components/blob_content_viewer_spec.js | 171 +- ..._header_edit_spec.js => blob_edit_spec.js} | 6 +- .../components/blob_replace_spec.js | 67 - .../__snapshots__/empty_viewer_spec.js.snap | 9 + .../blob_viewers/download_viewer_spec.js | 70 + .../blob_viewers/empty_viewer_spec.js | 14 + .../blob_viewers/text_viewer_spec.js | 30 + .../components/delete_blob_modal_spec.js | 130 + .../table/__snapshots__/row_spec.js.snap | 3 + .../components/tree_content_spec.js | 63 +- .../components/upload_blob_modal_spec.js | 4 +- spec/frontend/repository/log_tree_spec.js | 51 +- spec/frontend/right_sidebar_spec.js | 16 - .../cells/runner_actions_cell_spec.js | 238 +- .../components/helpers/masked_value_spec.js | 51 + .../runner_filtered_search_bar_spec.js | 27 +- .../runner/components/runner_list_spec.js | 69 +- .../runner_manual_setup_help_spec.js | 9 +- .../runner_registration_token_reset_spec.js | 25 +- .../runner/components/runner_tag_spec.js | 45 + .../runner/components/runner_tags_spec.js | 12 +- .../components/runner_update_form_spec.js | 33 +- .../search_tokens/tag_token_spec.js | 188 + .../runner_detail/runner_details_app_spec.js | 27 +- .../runner_update_form_utils_spec.js | 96 + .../runner_list/runner_list_app_spec.js | 31 +- .../runner_list/runner_search_utils_spec.js | 39 +- spec/frontend/runner/sentry_utils_spec.js | 39 + spec/frontend/search/mock_data.js | 53 +- spec/frontend/search/store/actions_spec.js | 106 +- spec/frontend/search/store/getters_spec.js | 32 + spec/frontend/search/store/mutations_spec.js | 9 + spec/frontend/search/store/utils_spec.js | 197 + .../topbar/components/group_filter_spec.js | 56 +- .../topbar/components/project_filter_spec.js | 38 +- .../components/searchable_dropdown_spec.js | 87 +- spec/frontend/search_autocomplete_spec.js | 50 +- .../search_autocomplete_utils_spec.js | 114 + .../components/auto_dev_ops_alert_spec.js | 55 + .../components/feature_card_spec.js | 25 +- .../components/redesigned_app_spec.js | 82 +- .../security_configuration/utils_spec.js | 22 +- spec/frontend/sentry/index_spec.js | 4 + spec/frontend/sentry/sentry_config_spec.js | 8 +- .../__snapshots__/empty_state_spec.js.snap | 2 +- .../assignees/collapsed_assignee_spec.js | 8 +- .../sidebar_assignees_widget_spec.js | 44 +- .../assignees/user_name_with_status_spec.js | 44 +- .../sidebar_dropdown_widget_spec.js | 6 +- .../todo_toggle/sidebar_todo_widget_spec.js | 126 + .../sidebar/lock/edit_form_buttons_spec.js | 10 +- spec/frontend/sidebar/mock_data.js | 37 + .../sidebar/sidebar_move_issue_spec.js | 6 +- .../snippet_blob_edit_spec.js.snap | 2 +- .../frontend/snippets/components/edit_spec.js | 20 +- .../components/snippet_blob_edit_spec.js | 4 +- .../services/submit_content_changes_spec.js | 10 +- .../components/terraform_list_spec.js | 3 + spec/frontend/token_access/mock_data.js | 84 + .../token_access/token_access_spec.js | 218 + .../token_access/token_projects_table_spec.js | 51 + spec/frontend/tracking_spec.js | 46 + spec/frontend/users_select/index_spec.js | 16 + spec/frontend/vue_alerts_spec.js | 4 +- .../components/mr_widget_header_spec.js | 70 +- .../components/mr_widget_rebase_spec.js | 14 +- .../components/states/commit_edit_spec.js | 2 +- .../states/mr_widget_conflicts_spec.js | 2 +- .../states/mr_widget_merged_spec.js | 2 - .../states/mr_widget_ready_to_merge_spec.js | 3 + spec/frontend/vue_mr_widget/mock_data.js | 4 +- .../__snapshots__/awards_list_spec.js.snap | 14 +- ...pec.js.snap => source_editor_spec.js.snap} | 4 +- .../vue_shared/components/awards_list_spec.js | 18 +- .../blob_viewers/rich_viewer_spec.js | 9 +- .../blob_viewers/simple_viewer_spec.js | 16 +- .../viewers/image_diff_viewer_spec.js | 12 +- .../components/dismissible_alert_spec.js | 41 +- .../components/file_finder/index_spec.js | 12 +- .../filtered_search_utils_spec.js | 16 +- .../tokens/author_token_spec.js | 20 +- .../tokens/base_token_spec.js | 34 +- .../tokens/iteration_token_spec.js | 10 +- .../tokens/label_token_spec.js | 2 +- .../tokens/milestone_token_spec.js | 3 + .../placeholder_note_spec.js.snap | 2 + .../components/paginated_list_spec.js | 8 +- .../components/project_avatar/default_spec.js | 2 +- .../components/project_avatar_spec.js | 67 + .../project_list_item_spec.js | 3 +- .../resizable_chart_container_spec.js.snap | 30 +- .../resizable_chart_container_spec.js | 10 +- .../merge_request_artifact_download_spec.js | 4 +- .../components/sidebar/copyable_field_spec.js | 5 +- .../dropdown_contents_labels_view_spec.js | 10 +- .../labels_select_vue/store/actions_spec.js | 19 +- .../labels_select_vue/store/mutations_spec.js | 29 +- .../dropdown_value_spec.js | 121 +- .../labels_select_root_spec.js | 4 + .../store/actions_spec.js | 11 +- .../store/mutations_spec.js | 29 +- .../{ => sidebar}/todo_button_spec.js | 22 +- ...tor_lite_spec.js => source_editor_spec.js} | 16 +- .../user_popover/user_popover_spec.js | 20 +- .../vue_shared/components/user_select_spec.js | 44 - .../components/web_ide_link_spec.js | 8 +- .../new_namespace/components/welcome_spec.js | 26 +- .../new_namespace/new_namespace_page_spec.js | 7 - .../vue_shared/oncall_schedules_list_spec.js | 2 +- .../vue_shared/plugins/global_toast_spec.js | 9 +- .../components/manage_via_mr_spec.js | 24 + .../security_report_download_dropdown_spec.js | 37 +- .../vue_shared/security_reports/mock_data.js | 11 +- .../security_reports_app_spec.js | 10 +- spec/frontend/vuex_shared/bindings_spec.js | 10 +- .../diffs/diffs_interopability_spec.js | 80 +- .../ide/helpers/ide_helper.js | 10 +- .../test_helpers/mock_server/routes/diffs.js | 3 - .../test_helpers/setup/setup_mock_server.js | 10 + .../setup/setup_testing_library.js | 14 +- spec/graphql/features/authorization_spec.rb | 1 + spec/graphql/features/feature_flag_spec.rb | 21 +- spec/graphql/gitlab_schema_spec.rb | 1 + .../prometheus_integration/create_spec.rb | 4 +- .../reset_token_spec.rb | 2 +- .../prometheus_integration/update_spec.rb | 2 +- .../ci/job_token_scope/add_project_spec.rb | 65 + .../ci/job_token_scope/remove_project_spec.rb | 68 + .../mutations/custom_emoji/create_spec.rb | 1 + .../discussions/toggle_resolve_spec.rb | 2 + .../canary_ingress/update_spec.rb | 1 + spec/graphql/mutations/issues/create_spec.rb | 1 + .../mutations/issues/set_confidential_spec.rb | 4 + .../mutations/issues/set_severity_spec.rb | 3 +- spec/graphql/mutations/issues/update_spec.rb | 4 + spec/graphql/mutations/labels/create_spec.rb | 2 + .../notes/reposition_image_diff_note_spec.rb | 1 + .../release_asset_links/create_spec.rb | 18 + .../release_asset_links/delete_spec.rb | 25 +- .../release_asset_links/update_spec.rb | 20 + .../graphql/mutations/releases/create_spec.rb | 22 + .../graphql/mutations/releases/delete_spec.rb | 30 +- .../graphql/mutations/releases/update_spec.rb | 22 + .../base_security_analyzer_spec.rb | 14 + .../http_integrations_resolver_spec.rb | 2 +- .../integrations_resolver_spec.rb | 4 +- .../resolvers/ci/config_resolver_spec.rb | 20 +- .../ci/job_token_scope_resolver_spec.rb | 64 + .../group_milestones_resolver_spec.rb | 19 + .../graphql/resolvers/issues_resolver_spec.rb | 36 + .../project_milestones_resolver_spec.rb | 18 + .../projects/jira_projects_resolver_spec.rb | 6 +- .../projects/services_resolver_spec.rb | 2 +- .../resolvers/projects_resolver_spec.rb | 24 +- .../prometheus_integration_type_spec.rb | 4 +- spec/graphql/types/base_field_spec.rb | 67 +- .../types/ci/detailed_status_type_spec.rb | 16 +- spec/graphql/types/ci/group_type_spec.rb | 1 + .../types/ci/job_token_scope_type_spec.rb | 75 + spec/graphql/types/ci/pipeline_type_spec.rb | 2 +- spec/graphql/types/ci/runner_type_spec.rb | 1 + spec/graphql/types/ci/stage_type_spec.rb | 2 + .../types/ci/status_action_type_spec.rb | 20 + .../types/deployment_tier_enum_spec.rb | 15 + spec/graphql/types/global_id_type_spec.rb | 3 +- .../types/group_invitation_type_spec.rb | 2 +- .../issuable_searchable_field_enum_spec.rb | 13 + spec/graphql/types/issue_type_spec.rb | 4 +- spec/graphql/types/merge_request_type_spec.rb | 2 +- spec/graphql/types/milestone_type_spec.rb | 2 +- .../types/notes/discussion_type_spec.rb | 1 + ...ype_spec.rb => noteable_interface_spec.rb} | 2 +- .../types/project_invitation_type_spec.rb | 2 +- spec/graphql/types/project_type_spec.rb | 80 +- .../types/projects/service_type_spec.rb | 2 +- .../types/projects/services_enum_spec.rb | 2 +- .../types/query_complexity_type_spec.rb | 35 + .../types/release_asset_link_type_spec.rb | 2 +- spec/graphql/types/snippets/blob_type_spec.rb | 3 +- .../linter/documentation_links_spec.rb | 14 +- .../helpers/admin/user_actions_helper_spec.rb | 41 +- .../analytics/unique_visits_helper_spec.rb | 34 - .../application_settings_helper_spec.rb | 20 + spec/helpers/blob_helper_spec.rb | 16 +- .../helpers/ci/pipeline_editor_helper_spec.rb | 36 +- spec/helpers/ci/runners_helper_spec.rb | 16 +- spec/helpers/clusters_helper_spec.rb | 7 + spec/helpers/commits_helper_spec.rb | 9 + spec/helpers/diff_helper_spec.rb | 25 +- spec/helpers/emails_helper_spec.rb | 8 +- spec/helpers/environments_helper_spec.rb | 14 +- spec/helpers/external_link_helper_spec.rb | 8 +- spec/helpers/gitlab_routing_helper_spec.rb | 17 +- spec/helpers/icons_helper_spec.rb | 8 +- ...er_spec.rb => integrations_helper_spec.rb} | 28 +- spec/helpers/issues_helper_spec.rb | 3 - spec/helpers/namespaces_helper_spec.rb | 20 - spec/helpers/nav/new_dropdown_helper_spec.rb | 27 +- spec/helpers/nav/top_nav_helper_spec.rb | 13 +- spec/helpers/operations_helper_spec.rb | 24 +- spec/helpers/packages_helper_spec.rb | 4 +- .../projects/alert_management_helper_spec.rb | 14 +- spec/helpers/projects_helper_spec.rb | 33 +- spec/helpers/registrations_helper_spec.rb | 24 - spec/helpers/releases_helper_spec.rb | 50 +- spec/helpers/sessions_helper_spec.rb | 36 + spec/helpers/user_callouts_helper_spec.rb | 12 +- spec/helpers/users_helper_spec.rb | 50 + .../100_patch_omniauth_oauth2_spec.rb | 56 + .../100_patch_omniauth_saml_spec.rb | 5 +- .../attr_encrypted_no_db_connection_spec.rb | 20 +- spec/initializers/global_id_spec.rb | 4 +- spec/initializers/lograge_spec.rb | 2 + spec/initializers/mailer_retries_spec.rb | 18 +- spec/javascripts/lib/utils/mock_data.js | 2 +- .../entities/basic_project_details_spec.rb | 27 + spec/lib/api/entities/bulk_import_spec.rb | 19 + .../bulk_imports/entity_failure_spec.rb | 19 + .../api/entities/bulk_imports/entity_spec.rb | 26 + .../{ => ci}/job_request/image_spec.rb | 2 +- .../{ => ci}/job_request/port_spec.rb | 2 +- spec/lib/api/entities/group_detail_spec.rb | 19 + spec/lib/api/entities/plan_limit_spec.rb | 3 +- spec/lib/api/entities/user_spec.rb | 2 +- spec/lib/api/helpers/caching_spec.rb | 138 +- spec/lib/backup/database_spec.rb | 2 +- spec/lib/backup/gitaly_backup_spec.rb | 41 +- spec/lib/backup/repositories_spec.rb | 19 +- .../external_issue_reference_filter_spec.rb | 10 +- .../milestone_reference_filter_spec.rb | 73 + .../banzai/filter/spaced_link_filter_spec.rb | 10 + .../banzai/filter/upload_link_filter_spec.rb | 6 + .../banzai/filter/wiki_link_filter_spec.rb | 18 + .../reference_parser/base_parser_spec.rb | 33 +- spec/lib/bulk_imports/clients/graphql_spec.rb | 41 + spec/lib/bulk_imports/clients/http_spec.rb | 54 +- .../groups/loaders/group_loader_spec.rb | 1 + .../pipelines/group_avatar_pipeline_spec.rb | 77 + .../groups/pipelines/members_pipeline_spec.rb | 8 + .../member_attributes_transformer_spec.rb | 28 +- spec/lib/bulk_imports/ndjson_pipeline_spec.rb | 7 +- spec/lib/bulk_imports/stage_spec.rb | 1 + spec/lib/bulk_imports/users_mapper_spec.rb | 68 + .../collector/sentry_request_parser_spec.rb | 44 + spec/lib/extracts_path_spec.rb | 73 +- spec/lib/extracts_ref_spec.rb | 1 + .../gitlab/analytics/unique_visits_spec.rb | 81 - spec/lib/gitlab/auth/auth_finders_spec.rb | 140 +- spec/lib/gitlab/auth/ldap/adapter_spec.rb | 97 +- .../gitlab/auth/request_authenticator_spec.rb | 92 +- .../auth/two_factor_auth_verifier_spec.rb | 65 +- spec/lib/gitlab/auth_spec.rb | 55 +- ...ill_draft_status_on_merge_requests_spec.rb | 47 + ...fill_jira_tracker_deployment_type2_spec.rb | 6 +- .../backfill_upvotes_count_on_issues_spec.rb | 46 + .../delete_orphaned_deployments_spec.rb | 63 + ...rate_issue_trackers_sensitive_data_spec.rb | 22 +- ...te_merge_request_diff_commit_users_spec.rb | 400 + .../migrate_u2f_webauthn_spec.rb | 2 + ..._data_deployment_type_based_on_url_spec.rb | 2 +- .../cache/ci/project_pipeline_status_spec.rb | 41 +- spec/lib/gitlab/cache/helpers_spec.rb | 49 + spec/lib/gitlab/cache/import/caching_spec.rb | 24 + spec/lib/gitlab/changelog/config_spec.rb | 12 +- ..._moved_spec.rb => container_moved_spec.rb} | 44 +- .../lib/gitlab/checks/project_created_spec.rb | 31 +- spec/lib/gitlab/ci/ansi2json/line_spec.rb | 33 +- .../gitlab/ci/config/entry/artifacts_spec.rb | 51 +- .../gitlab/ci/config/entry/reports_spec.rb | 1 + spec/lib/gitlab/ci/lint_spec.rb | 2 +- .../gitlab/ci/matching/runner_matcher_spec.rb | 3 + .../lib/gitlab/ci/pipeline/chain/seed_spec.rb | 12 - .../lib/gitlab/ci/pipeline/seed/build_spec.rb | 54 +- .../gitlab/ci/pipeline/seed/pipeline_spec.rb | 6 +- .../ci/pipeline_object_hierarchy_spec.rb | 81 +- .../ci/reports/security/identifier_spec.rb | 125 + .../gitlab/ci/reports/security/link_spec.rb | 31 + .../gitlab/ci/reports/security/scan_spec.rb | 46 + .../reports/security/scanned_resource_spec.rb | 30 + .../ci/reports/security/scanner_spec.rb | 146 + spec/lib/gitlab/ci/reports/test_case_spec.rb | 2 +- spec/lib/gitlab/ci/status/composite_spec.rb | 19 - .../AWS/deploy_ecs_gitlab_ci_yaml_spec.rb | 4 +- ...luster_applications_gitlab_ci_yaml_spec.rb | 5 +- .../terraform_latest_gitlab_ci_yaml_spec.rb | 4 +- spec/lib/gitlab/ci/yaml_processor/dag_spec.rb | 41 + spec/lib/gitlab/ci/yaml_processor_spec.rb | 100 +- .../gitlab/closing_issue_extractor_spec.rb | 2 + spec/lib/gitlab/composer/cache_spec.rb | 1 + spec/lib/gitlab/consul/internal_spec.rb | 2 +- .../config_loader_spec.rb | 30 + .../background_migration/batched_job_spec.rb | 80 + .../batched_migration_runner_spec.rb | 148 + .../batched_migration_spec.rb | 26 +- .../gitlab/database/custom_structure_spec.rb | 65 - .../load_balancing/load_balancer_spec.rb | 22 +- .../load_balancing/rack_middleware_spec.rb | 5 + .../sidekiq_client_middleware_spec.rb | 61 +- .../sidekiq_server_middleware_spec.rb | 125 +- .../database/load_balancing/sticking_spec.rb | 87 +- .../gitlab/database/load_balancing_spec.rb | 16 +- .../gitlab/database/migration_helpers_spec.rb | 111 +- .../partitioning/monthly_strategy_spec.rb | 121 + .../partitioning/partition_creator_spec.rb | 96 - .../partitioning/partition_manager_spec.rb | 161 + .../foreign_key_helpers_spec.rb | 260 +- .../partitioned_foreign_key_spec.rb | 48 - .../gitlab/database/postgres_index_spec.rb | 48 +- .../dump_schema_versions_mixin_spec.rb | 38 +- .../force_disconnectable_mixin_spec.rb | 2 +- .../postgresql_adapter/type_map_cache_spec.rb | 2 +- .../load_schema_versions_mixin_spec.rb | 32 + .../reindexing/concurrent_reindex_spec.rb | 303 - .../database/reindexing/coordinator_spec.rb | 18 +- .../reindexing/index_selection_spec.rb | 57 +- .../reindexing/reindex_concurrently_spec.rb | 134 + spec/lib/gitlab/database/reindexing_spec.rb | 2 +- .../schema_migrations/context_spec.rb | 78 + .../migrations_spec.rb} | 41 +- ...h_lock_retries_outside_transaction_spec.rb | 4 +- .../gitlab/database/with_lock_retries_spec.rb | 4 +- .../create_group_spec.rb | 4 +- .../project/create_service_spec.rb | 34 +- spec/lib/gitlab/database_spec.rb | 90 + spec/lib/gitlab/deploy_key_access_spec.rb | 1 + .../gitlab/diff/file_collection/base_spec.rb | 27 + .../diff/file_collection/commit_spec.rb | 8 + .../diff/file_collection/compare_spec.rb | 35 +- .../merge_request_diff_base_spec.rb | 36 + .../merge_request_diff_batch_spec.rb | 34 +- .../position_tracer/line_strategy_spec.rb | 46 +- .../handler/service_desk_handler_spec.rb | 12 + spec/lib/gitlab/email/receiver_spec.rb | 115 +- .../processor/grpc_error_processor_spec.rb | 72 +- .../gitlab/fogbugz_import/importer_spec.rb | 80 +- spec/lib/gitlab/git/repository_spec.rb | 122 + spec/lib/gitlab/git/user_spec.rb | 43 +- spec/lib/gitlab/git_access_snippet_spec.rb | 31 +- spec/lib/gitlab/git_access_spec.rb | 33 +- .../gitlab/gitaly_client/blob_service_spec.rb | 100 + .../gitaly_client/commit_service_spec.rb | 33 + .../gitaly_client/operation_service_spec.rb | 1 + .../gitaly_client/repository_service_spec.rb | 13 - .../pull_request_merged_by_importer_spec.rb | 22 +- .../pull_request_review_importer_spec.rb | 27 +- .../github_import/markdown_text_spec.rb | 7 + .../github_import/object_counter_spec.rb | 36 + .../github_import/parallel_scheduling_spec.rb | 4 + .../pull_request_review_spec.rb | 6 + spec/lib/gitlab/github_import_spec.rb | 2 +- .../gitlab/gl_repository/repo_type_spec.rb | 1 + .../keyset/connection_generic_keyset_spec.rb | 420 + .../pagination/keyset/connection_spec.rb | 4 + spec/lib/gitlab/group_search_results_spec.rb | 1 + spec/lib/gitlab/highlight_spec.rb | 7 + .../gitlab/hook_data/issue_builder_spec.rb | 1 + spec/lib/gitlab/import_export/all_models.yml | 47 +- .../import_test_coverage_spec.rb | 4 +- .../project/object_builder_spec.rb | 26 + .../project/tree_restorer_spec.rb | 25 +- .../import_export/safe_model_attributes.yml | 15 +- spec/lib/gitlab/import_export/shared_spec.rb | 4 +- .../snippet_repo_restorer_spec.rb | 2 +- .../lib/gitlab/instrumentation_helper_spec.rb | 53 +- spec/lib/gitlab/integrations/sti_type_spec.rb | 8 +- .../gitlab/jira_import/base_importer_spec.rb | 4 +- .../jira_import/issues_importer_spec.rb | 4 +- .../jira_import/labels_importer_spec.rb | 4 +- spec/lib/gitlab/jira_import_spec.rb | 16 +- spec/lib/gitlab/json_cache_spec.rb | 1 + spec/lib/gitlab/kas/client_spec.rb | 19 +- spec/lib/gitlab/kas_spec.rb | 44 - spec/lib/gitlab/kroki_spec.rb | 2 +- .../kubernetes/cilium_network_policy_spec.rb | 8 + .../gitlab/kubernetes/network_policy_spec.rb | 8 + spec/lib/gitlab/language_detection_spec.rb | 1 + .../legacy_github_import/client_spec.rb | 9 + spec/lib/gitlab/lfs_token_spec.rb | 12 +- .../lib/gitlab/memory/instrumentation_spec.rb | 52 +- .../metrics/subscribers/action_cable_spec.rb | 13 +- .../metrics/subscribers/active_record_spec.rb | 4 +- .../subscribers/load_balancing_spec.rb | 115 + spec/lib/gitlab/object_hierarchy_spec.rb | 399 +- .../gitlab/pagination/keyset/iterator_spec.rb | 171 +- .../gitlab/pagination/keyset/order_spec.rb | 6 + .../pagination/offset_pagination_spec.rb | 74 + spec/lib/gitlab/path_regex_spec.rb | 10 + .../lib/gitlab/project_search_results_spec.rb | 7 +- spec/lib/gitlab/prometheus/adapter_spec.rb | 20 +- .../gitlab/prometheus/query_variables_spec.rb | 1 + spec/lib/gitlab/rate_limit_helpers_spec.rb | 2 +- .../gitlab/reactive_cache_set_cache_spec.rb | 1 + spec/lib/gitlab/reference_extractor_spec.rb | 3 +- spec/lib/gitlab/repo_path_spec.rb | 36 +- spec/lib/gitlab/repository_set_cache_spec.rb | 10 +- spec/lib/gitlab/search_results_spec.rb | 9 + spec/lib/gitlab/shell_spec.rb | 1 + spec/lib/gitlab/sidekiq_config_spec.rb | 39 + .../sidekiq_logging/structured_logger_spec.rb | 13 +- .../sidekiq_middleware/client_metrics_spec.rb | 36 +- .../duplicate_jobs/duplicate_job_spec.rb | 2 +- .../sidekiq_middleware/server_metrics_spec.rb | 211 +- .../size_limiter/validator_spec.rb | 21 +- .../worker_context/client_spec.rb | 36 + spec/lib/gitlab/sidekiq_queue_spec.rb | 2 +- spec/lib/gitlab/sidekiq_status_spec.rb | 16 +- spec/lib/gitlab/spamcheck/client_spec.rb | 9 +- spec/lib/gitlab/string_regex_marker_spec.rb | 12 +- .../ast_spec.rb | 60 +- .../parser_spec.rb | 6 +- .../tracking/destinations/snowplow_spec.rb | 56 +- spec/lib/gitlab/usage/docs/helper_spec.rb | 79 + .../gitlab/usage/metric_definition_spec.rb | 7 +- .../collected_data_categories_metric_spec.rb | 15 + .../instrumentations/database_metric_spec.rb | 75 + .../hll_redis_counter_spec.rb | 3 +- .../package_event_counter_spec.rb | 2 +- spec/lib/gitlab/usage_data_spec.rb | 16 +- spec/lib/gitlab/utils/usage_data_spec.rb | 8 +- spec/lib/gitlab/utils_spec.rb | 16 + spec/lib/gitlab/wiki_file_finder_spec.rb | 11 +- spec/lib/marginalia_spec.rb | 16 +- spec/lib/object_storage/direct_upload_spec.rb | 10 - .../sast_build_action_spec.rb | 9 + .../secret_detection_build_action_spec.rb | 4 + spec/lib/serializers/symbolized_json_spec.rb | 41 + .../projects/menus/deployments_menu_spec.rb | 11 - .../menus/infrastructure_menu_spec.rb | 93 + .../projects/menus/issues_menu_spec.rb | 18 - .../projects/menus/labels_menu_spec.rb | 61 - .../projects/menus/members_menu_spec.rb | 35 - .../projects/menus/monitor_menu_spec.rb | 107 +- .../menus/project_information_menu_spec.rb | 69 +- .../projects/menus/scope_menu_spec.rb | 8 - .../projects/menus/settings_menu_spec.rb | 16 - .../mailers/emails/admin_notification_spec.rb | 11 + spec/mailers/emails/releases_spec.rb | 2 +- spec/mailers/emails/service_desk_spec.rb | 14 +- spec/mailers/notify_spec.rb | 39 + ...152703_migrate_issue_trackers_data_spec.rb | 12 +- ...hedule_migrate_issue_trackers_data_spec.rb | 12 +- ...ue_index_on_cycle_analytics_stages_spec.rb | 2 +- ...te_legacy_operations_feature_flags_spec.rb | 45 + ...6138_cascade_delete_freeze_periods_spec.rb | 22 + ...st_diff_users_background_migration_spec.rb | 75 + ...eanup_orphan_project_access_tokens_spec.rb | 47 + spec/migrations/active_record/schema_spec.rb | 6 +- ...d_premium_and_ultimate_plan_limits_spec.rb | 86 + .../add_upvotes_count_index_to_issues_spec.rb | 22 + .../backfill_issues_upvotes_count_spec.rb | 35 + ...mplate_services_duplicated_by_type_spec.rb | 6 +- ...igrations_old_format_job_arguments_spec.rb | 63 + ...dule_latest_pipeline_id_population_spec.rb | 61 + .../rename_services_to_integrations_spec.rb | 255 + .../reset_job_token_scope_enabled_spec.rb | 25 + ...ill_draft_status_on_merge_requests_spec.rb | 59 + ...hedule_delete_orphaned_deployments_spec.rb | 48 + spec/models/ability_spec.rb | 63 + spec/models/abuse_report_spec.rb | 1 + spec/models/alert_management/alert_spec.rb | 1 + spec/models/application_setting/term_spec.rb | 4 +- spec/models/application_setting_spec.rb | 21 + spec/models/audit_event_spec.rb | 65 + spec/models/award_emoji_spec.rb | 69 + spec/models/blob_viewer/markup_spec.rb | 10 - spec/models/bulk_import_spec.rb | 6 + spec/models/bulk_imports/entity_spec.rb | 20 + .../file_transfer/group_config_spec.rb | 4 + .../file_transfer/project_config_spec.rb | 4 + spec/models/chat_name_spec.rb | 1 + spec/models/chat_team_spec.rb | 1 + spec/models/ci/build_dependencies_spec.rb | 18 + spec/models/ci/build_spec.rb | 92 +- spec/models/ci/build_trace_chunk_spec.rb | 8 - spec/models/ci/build_trace_chunks/fog_spec.rb | 51 + spec/models/ci/job_artifact_spec.rb | 23 + .../ci/job_token/project_scope_link_spec.rb | 18 + spec/models/ci/job_token/scope_spec.rb | 4 +- spec/models/ci/pending_build_spec.rb | 58 +- spec/models/ci/pipeline_schedule_spec.rb | 9 +- spec/models/ci/pipeline_spec.rb | 117 +- spec/models/ci/runner_spec.rb | 14 + spec/models/ci/running_build_spec.rb | 5 +- .../clusters/integrations/prometheus_spec.rb | 8 +- .../clusters/kubernetes_namespace_spec.rb | 1 + spec/models/commit_spec.rb | 1 + spec/models/compare_spec.rb | 10 +- spec/models/concerns/approvable_base_spec.rb | 21 + .../concerns/atomic_internal_id_spec.rb | 18 +- spec/models/concerns/awardable_spec.rb | 84 +- .../concerns/cache_markdown_field_spec.rb | 4 +- ...cading_namespace_setting_attribute_spec.rb | 22 - spec/models/concerns/has_integrations_spec.rb | 12 +- .../integrations/has_data_fields_spec.rb | 43 +- spec/models/concerns/issuable_spec.rb | 20 + .../models/concerns/partitioned_table_spec.rb | 12 +- .../concerns/prometheus_adapter_spec.rb | 36 +- spec/models/container_repository_spec.rb | 55 +- spec/models/deploy_token_spec.rb | 1 + spec/models/deployment_metrics_spec.rb | 22 +- spec/models/deployment_spec.rb | 3 + spec/models/diff_discussion_spec.rb | 9 + spec/models/diff_viewer/server_side_spec.rb | 1 + spec/models/discussion_spec.rb | 18 + spec/models/environment_spec.rb | 3 + .../models/error_tracking/error_event_spec.rb | 14 + spec/models/error_tracking/error_spec.rb | 16 + spec/models/event_collection_spec.rb | 1 + spec/models/event_spec.rb | 14 +- spec/models/group_spec.rb | 6 +- spec/models/integration_spec.rb | 305 +- spec/models/integrations/asana_spec.rb | 10 +- spec/models/integrations/assembla_spec.rb | 6 - spec/models/integrations/bamboo_spec.rb | 88 +- .../base_chat_notification_spec.rb | 107 +- .../integrations/base_issue_tracker_spec.rb | 12 +- spec/models/integrations/bugzilla_spec.rb | 15 +- spec/models/integrations/buildkite_spec.rb | 40 +- spec/models/integrations/campfire_spec.rb | 10 +- spec/models/integrations/confluence_spec.rb | 13 +- .../integrations/custom_issue_tracker_spec.rb | 15 +- spec/models/integrations/datadog_spec.rb | 20 +- spec/models/integrations/discord_spec.rb | 23 +- spec/models/integrations/drone_ci_spec.rb | 58 +- .../integrations/emails_on_push_spec.rb | 14 +- spec/models/integrations/ewm_spec.rb | 15 +- .../models/integrations/external_wiki_spec.rb | 11 +- spec/models/integrations/flowdock_spec.rb | 10 +- spec/models/integrations/irker_spec.rb | 10 +- spec/models/integrations/jenkins_spec.rb | 92 +- spec/models/integrations/jira_spec.rb | 304 +- .../mattermost_slash_commands_spec.rb | 30 +- .../integrations/microsoft_teams_spec.rb | 57 +- spec/models/integrations/open_project_spec.rb | 13 +- spec/models/integrations/packagist_spec.rb | 10 +- .../integrations/pipelines_email_spec.rb | 4 +- .../integrations/pivotaltracker_spec.rb | 31 +- .../prometheus_spec.rb} | 178 +- spec/models/integrations/pushover_spec.rb | 10 +- spec/models/integrations/redmine_spec.rb | 15 +- .../integrations/slack_slash_commands_spec.rb | 8 +- spec/models/integrations/slack_spec.rb | 8 +- spec/models/integrations/teamcity_spec.rb | 84 +- spec/models/integrations/youtrack_spec.rb | 13 +- spec/models/internal_id_spec.rb | 349 +- spec/models/issue_spec.rb | 70 +- spec/models/label_note_spec.rb | 1 + spec/models/lfs_file_lock_spec.rb | 1 + spec/models/member_spec.rb | 297 +- spec/models/members/group_member_spec.rb | 21 - spec/models/members/project_member_spec.rb | 13 - .../merge_request/cleanup_schedule_spec.rb | 131 +- .../merge_request/diff_commit_user_spec.rb | 127 + spec/models/merge_request_diff_commit_spec.rb | 50 + spec/models/merge_request_diff_spec.rb | 49 +- spec/models/merge_request_spec.rb | 40 +- spec/models/milestone_spec.rb | 73 +- .../namespace/root_storage_statistics_spec.rb | 1 + spec/models/namespace_spec.rb | 85 +- spec/models/note_spec.rb | 4 + spec/models/notification_setting_spec.rb | 1 + spec/models/operations/feature_flag_spec.rb | 1 + spec/models/packages/package_file_spec.rb | 7 + spec/models/packages/package_spec.rb | 33 - spec/models/plan_limits_spec.rb | 2 + spec/models/plan_spec.rb | 23 + spec/models/project_ci_cd_setting_spec.rb | 4 +- spec/models/project_spec.rb | 248 +- spec/models/prometheus_alert_spec.rb | 1 + .../push_access_level_spec.rb | 1 + spec/models/repository_spec.rb | 5 + spec/models/service_desk_setting_spec.rb | 2 +- spec/models/snippet_repository_spec.rb | 1 + spec/models/snippet_spec.rb | 9 +- spec/models/terraform/state_spec.rb | 1 + spec/models/timelog_spec.rb | 2 + spec/models/u2f_registration_spec.rb | 1 + spec/models/user_spec.rb | 111 +- spec/models/wiki_page_spec.rb | 5 +- spec/policies/global_policy_spec.rb | 12 +- spec/policies/integration_policy_spec.rb | 4 +- spec/policies/project_policy_spec.rb | 142 +- spec/policies/release_policy_spec.rb | 62 + spec/presenters/blob_presenter_spec.rb | 22 +- .../ci/build_runner_presenter_spec.rb | 32 +- .../merge_request_presenter_spec.rb | 10 +- .../nuget/package_metadata_presenter_spec.rb | 4 +- .../nuget/service_index_presenter_spec.rb | 13 +- .../presenters/snippet_blob_presenter_spec.rb | 21 + spec/requests/api/admin/plan_limits_spec.rb | 12 +- spec/requests/api/api_spec.rb | 2 + spec/requests/api/award_emoji_spec.rb | 1 + spec/requests/api/branches_spec.rb | 14 +- spec/requests/api/bulk_imports_spec.rb | 67 + spec/requests/api/ci/pipelines_spec.rb | 1 + .../api/ci/runner/jobs_request_post_spec.rb | 23 +- .../requests/api/ci/runner/jobs_trace_spec.rb | 16 +- .../api/ci/runner/runners_post_spec.rb | 56 + spec/requests/api/composer_packages_spec.rb | 1 + .../api/debian_group_packages_spec.rb | 10 +- .../api/debian_project_packages_spec.rb | 10 +- spec/requests/api/deploy_tokens_spec.rb | 1 + spec/requests/api/deployments_spec.rb | 1 + .../api/error_tracking_collector_spec.rb | 77 + spec/requests/api/error_tracking_spec.rb | 1 + spec/requests/api/feature_flags_spec.rb | 1 + spec/requests/api/freeze_periods_spec.rb | 1 + spec/requests/api/geo_spec.rb | 30 + .../graphql/boards/board_lists_query_spec.rb | 1 + spec/requests/api/graphql/ci/jobs_spec.rb | 6 + .../requests/api/graphql/ci/pipelines_spec.rb | 1 + spec/requests/api/graphql/ci/runner_spec.rb | 111 +- .../api/graphql/current_user_todos_spec.rb | 1 + .../api/graphql/issue_status_counts_spec.rb | 1 + .../graphql/metrics/dashboard_query_spec.rb | 1 + .../admin/sidekiq_queues/delete_jobs_spec.rb | 1 + .../alerts/set_assignees_spec.rb | 1 + .../alerts/todo/create_spec.rb | 1 + .../alerts/update_alert_status_spec.rb | 1 + .../http_integration/create_spec.rb | 1 + .../prometheus_integration/create_spec.rb | 3 +- .../reset_token_spec.rb | 2 +- .../prometheus_integration/update_spec.rb | 2 +- .../mutations/award_emojis/add_spec.rb | 1 + .../mutations/award_emojis/toggle_spec.rb | 1 + .../graphql/mutations/boards/create_spec.rb | 1 + .../graphql/mutations/branches/create_spec.rb | 4 +- .../ci/ci_cd_settings_update_spec.rb | 5 +- .../ci/job_token_scope/add_project_spec.rb | 78 + .../ci/job_token_scope/remove_project_spec.rb | 84 + .../graphql/mutations/commits/create_spec.rb | 1 + .../update_spec.rb | 1 + .../discussions/toggle_resolve_spec.rb | 1 + .../canary_ingress/update_spec.rb | 1 + .../mutations/issues/set_locked_spec.rb | 1 + .../mutations/issues/set_severity_spec.rb | 1 + .../graphql/mutations/issues/update_spec.rb | 1 + .../jira_import/import_users_spec.rb | 1 + .../mutations/jira_import/start_spec.rb | 9 +- .../graphql/mutations/labels/create_spec.rb | 2 + .../mutations/merge_requests/accept_spec.rb | 1 + .../mutations/merge_requests/create_spec.rb | 1 + .../merge_requests/set_assignees_spec.rb | 10 +- .../dashboard/annotations/create_spec.rb | 1 + .../namespace/package_settings/update_spec.rb | 1 + .../mutations/notes/create/diff_note_spec.rb | 1 + .../notes/create/image_diff_note_spec.rb | 1 + .../mutations/notes/create/note_spec.rb | 1 + .../notes/reposition_image_diff_note_spec.rb | 1 + .../notes/update/image_diff_note_spec.rb | 1 + .../mutations/packages/destroy_spec.rb | 93 + .../graphql/mutations/releases/delete_spec.rb | 8 +- .../graphql/mutations/snippets/create_spec.rb | 33 +- .../mutations/snippets/mark_as_spam_spec.rb | 1 + .../graphql/mutations/snippets/update_spec.rb | 29 +- .../mutations/user_callouts/create_spec.rb | 1 + .../namespace/package_settings_spec.rb | 1 + .../alert_management/alert/issue_spec.rb | 1 + .../alert_status_counts_spec.rb | 1 + .../alert_management/integrations_spec.rb | 24 +- .../api/graphql/project/base_service_spec.rb | 4 +- .../sentry_detailed_error_request_spec.rb | 1 + .../sentry_errors_request_spec.rb | 2 + .../project/issue/designs/designs_spec.rb | 3 + .../api/graphql/project/jira_service_spec.rb | 2 +- .../api/graphql/project/pipeline_spec.rb | 81 +- .../project_pipeline_statistics_spec.rb | 1 + .../api/graphql/project_query_spec.rb | 1 + spec/requests/api/graphql/query_spec.rb | 2 + .../user/starred_projects_query_spec.rb | 1 + spec/requests/api/graphql/user_query_spec.rb | 2 + spec/requests/api/graphql_spec.rb | 2 + spec/requests/api/group_avatar_spec.rb | 36 +- spec/requests/api/group_import_spec.rb | 1 + spec/requests/api/group_labels_spec.rb | 26 + spec/requests/api/group_milestones_spec.rb | 1 + spec/requests/api/group_packages_spec.rb | 2 + spec/requests/api/groups_spec.rb | 62 +- spec/requests/api/helm_packages_spec.rb | 176 +- spec/requests/api/helpers_spec.rb | 1 + .../api/import_bitbucket_server_spec.rb | 19 +- spec/requests/api/internal/base_spec.rb | 133 +- spec/requests/api/internal/kubernetes_spec.rb | 60 - spec/requests/api/invitations_spec.rb | 40 +- spec/requests/api/labels_spec.rb | 30 + spec/requests/api/lint_spec.rb | 2 + spec/requests/api/markdown_spec.rb | 1 + spec/requests/api/merge_requests_spec.rb | 18 +- .../api/metrics/dashboard/annotations_spec.rb | 1 + .../metrics/user_starred_dashboards_spec.rb | 1 + .../api/nuget_project_packages_spec.rb | 135 +- spec/requests/api/project_attributes.yml | 1 + spec/requests/api/project_clusters_spec.rb | 1 + .../project_container_repositories_spec.rb | 1 + spec/requests/api/project_milestones_spec.rb | 1 + spec/requests/api/project_snippets_spec.rb | 2 +- spec/requests/api/projects_spec.rb | 113 +- spec/requests/api/pypi_packages_spec.rb | 2 + spec/requests/api/release/links_spec.rb | 68 + spec/requests/api/releases_spec.rb | 82 +- spec/requests/api/repositories_spec.rb | 11 + .../api/resource_access_tokens_spec.rb | 20 +- spec/requests/api/rubygem_packages_spec.rb | 2 + spec/requests/api/services_spec.rb | 186 +- spec/requests/api/settings_spec.rb | 13 + spec/requests/api/snippets_spec.rb | 2 +- spec/requests/api/system_hooks_spec.rb | 5 +- spec/requests/api/unleash_spec.rb | 1 + spec/requests/api/users_spec.rb | 173 +- spec/requests/api/wikis_spec.rb | 3 +- spec/requests/git_http_spec.rb | 8 +- .../import/gitlab_groups_controller_spec.rb | 1 + spec/requests/invite_registration_spec.rb | 68 - spec/requests/jwt_controller_spec.rb | 1 + spec/requests/lfs_http_spec.rb | 12 +- .../product_analytics/collector_app_spec.rb | 1 + .../projects/merge_requests/diffs_spec.rb | 126 + .../merge_requests_discussions_spec.rb | 139 + spec/requests/rack_attack_global_spec.rb | 144 + spec/routing/project_routing_spec.rb | 10 +- spec/rubocop/code_reuse_helpers_spec.rb | 75 +- .../cop/database/multiple_databases_spec.rb | 15 + .../gitlab/mark_used_feature_flags_spec.rb | 233 + .../migration/prevent_index_creation_spec.rb | 50 + .../migration/sidekiq_queue_migrate_spec.rb | 47 + .../cop/worker_data_consistency_spec.rb | 50 + .../cycle_analytics/stage_entity_spec.rb | 8 + .../serializers/paginated_diff_entity_spec.rb | 11 +- spec/serializers/service_event_entity_spec.rb | 6 +- spec/serializers/service_field_entity_spec.rb | 19 +- .../propagate_integration_service_spec.rb | 14 +- .../admin/propagate_service_template_spec.rb | 1 + .../create_alert_issue_service_spec.rb | 1 + spec/services/audit_event_service_spec.rb | 10 +- ...er_registry_authentication_service_spec.rb | 92 + ...dency_proxy_authentication_service_spec.rb | 1 + spec/services/auto_merge_service_spec.rb | 1 + spec/services/branches/create_service_spec.rb | 15 +- .../bulk_create_integration_service_spec.rb | 17 +- .../file_download_service_spec.rb | 147 +- .../bulk_update_integration_service_spec.rb | 2 +- .../captcha_verification_service_spec.rb | 28 +- .../ci/after_requeue_job_service_spec.rb | 30 +- .../ci/append_build_trace_service_spec.rb | 44 +- .../services/ci/archive_trace_service_spec.rb | 46 +- .../ci/create_pipeline_service/cache_spec.rb | 42 +- .../creation_errors_and_warnings_spec.rb | 2 +- .../custom_yaml_tags_spec.rb | 4 +- .../create_pipeline_service/dry_run_spec.rb | 4 +- .../evaluate_runner_tags_spec.rb | 144 + .../ci/create_pipeline_service/needs_spec.rb | 4 +- .../parent_child_pipeline_spec.rb | 40 +- .../ci/create_pipeline_service/rules_spec.rb | 16 - .../ci/create_pipeline_service_spec.rb | 4 +- .../ci/destroy_pipeline_service_spec.rb | 24 + .../add_project_service_spec.rb | 39 + .../remove_project_service_spec.rb | 45 + .../shared_processing_service.rb | 14 - .../test_cases/dag_same_stages.yml | 47 + .../ci/pipelines/add_job_service_spec.rb | 72 + spec/services/ci/play_bridge_service_spec.rb | 10 - spec/services/ci/play_build_service_spec.rb | 10 - spec/services/ci/register_job_service_spec.rb | 63 +- spec/services/ci/retry_build_service_spec.rb | 15 +- .../ci/update_build_queue_service_spec.rb | 12 +- .../prometheus_health_check_service_spec.rb | 1 + .../commits/commit_patch_service_spec.rb | 2 +- ...ontainer_expiration_policy_service_spec.rb | 1 + .../find_or_create_manifest_service_spec.rb | 1 + .../copy_service_spec.rb | 6 +- .../queue_service_spec.rb | 2 +- .../save_designs_service_spec.rb | 14 +- .../discussions/resolve_service_spec.rb | 2 + .../discussions/unresolve_service_spec.rb | 1 + .../collect_error_service_spec.rb | 44 + spec/services/event_create_service_spec.rb | 18 +- spec/services/git/base_hooks_service_spec.rb | 22 +- spec/services/git/branch_push_service_spec.rb | 23 +- spec/services/git/wiki_push_service_spec.rb | 34 +- spec/services/groups/create_service_spec.rb | 6 +- .../group_links/destroy_service_spec.rb | 6 +- .../groups/group_links/update_service_spec.rb | 2 +- spec/services/groups/transfer_service_spec.rb | 8 +- .../import/bitbucket_server_service_spec.rb | 1 + .../incidents/create_service_spec.rb | 1 + .../incidents/update_severity_service_spec.rb | 86 - .../create_incident_issue_service_spec.rb | 1 + .../process_webhook_service_spec.rb | 1 + .../integrations/test/project_service_spec.rb | 11 +- .../issuable/bulk_update_service_spec.rb | 1 + spec/services/issues/close_service_spec.rb | 8 +- spec/services/issues/create_service_spec.rb | 86 +- spec/services/issues/move_service_spec.rb | 8 + spec/services/issues/reopen_service_spec.rb | 4 +- spec/services/issues/update_service_spec.rb | 162 +- .../requests/projects/list_service_spec.rb | 20 +- .../jira_connect/sync_service_spec.rb | 1 + .../destroy_service_spec.rb | 41 + .../jira_import/start_import_service_spec.rb | 5 +- .../jira_import/users_importer_spec.rb | 12 +- spec/services/keys/destroy_service_spec.rb | 2 +- .../markdown_content_rewriter_service_spec.rb | 2 + spec/services/members/create_service_spec.rb | 3 +- .../members/groups/creator_service_spec.rb | 16 + spec/services/members/invite_service_spec.rb | 1 + .../members/projects/creator_service_spec.rb | 16 + .../merge_requests/build_service_spec.rb | 12 +- .../handle_assignees_change_service_spec.rb | 4 +- .../merge_requests/merge_service_spec.rb | 6 +- .../push_options_handler_service_spec.rb | 101 +- .../merge_requests/rebase_service_spec.rb | 31 +- .../annotations/create_service_spec.rb | 1 + .../gitlab_alert_embed_service_spec.rb | 1 + .../create_service_spec.rb | 1 + .../namespace_settings/update_service_spec.rb | 67 +- ...n_product_marketing_emails_service_spec.rb | 46 - spec/services/notes/copy_service_spec.rb | 1 + spec/services/notes/create_service_spec.rb | 2 + spec/services/notes/destroy_service_spec.rb | 1 + .../notes/post_process_service_spec.rb | 10 +- .../notes/quick_actions_service_spec.rb | 1 + spec/services/notes/update_service_spec.rb | 1 + spec/services/notification_service_spec.rb | 77 +- .../composer/create_package_service_spec.rb | 1 + .../packages/conan/search_service_spec.rb | 1 + .../create_package_file_service_spec.rb | 1 + .../find_or_create_package_service_spec.rb | 1 + .../packages/destroy_package_service_spec.rb | 61 + .../find_or_create_package_service_spec.rb | 2 + .../nuget/metadata_extraction_service_spec.rb | 13 +- .../packages/nuget/search_service_spec.rb | 1 + ...date_package_from_metadata_service_spec.rb | 37 +- .../dependency_resolver_service_spec.rb | 1 + spec/services/pod_logs/base_service_spec.rb | 1 + .../pod_logs/elasticsearch_service_spec.rb | 1 + .../pod_logs/kubernetes_service_spec.rb | 1 + spec/services/post_receive_service_spec.rb | 2 +- spec/services/projects/create_service_spec.rb | 102 +- .../projects/destroy_rollback_service_spec.rb | 1 + .../services/projects/destroy_service_spec.rb | 11 + .../gitlab_projects_import_service_spec.rb | 1 + .../group_links/create_service_spec.rb | 5 +- .../group_links/destroy_service_spec.rb | 1 + .../group_links/update_service_spec.rb | 83 +- .../lfs_pointers/lfs_download_service_spec.rb | 32 + .../operations/update_service_spec.rb | 18 +- .../prometheus/alerts/notify_service_spec.rb | 6 +- .../protect_default_branch_service_spec.rb | 47 + .../projects/transfer_service_spec.rb | 89 +- .../projects/update_pages_service_spec.rb | 1 + .../update_repository_storage_service_spec.rb | 15 +- spec/services/projects/update_service_spec.rb | 55 +- .../create_default_alerts_service_spec.rb | 1 + .../services/prometheus/proxy_service_spec.rb | 2 +- .../quick_actions/interpret_service_spec.rb | 1 + .../releases/create_evidence_service_spec.rb | 1 + spec/services/releases/create_service_spec.rb | 15 + .../services/releases/destroy_service_spec.rb | 15 + spec/services/releases/update_service_spec.rb | 15 + .../repositories/changelog_service_spec.rb | 2 +- .../destroy_rollback_service_spec.rb | 1 + .../repositories/destroy_service_spec.rb | 1 + .../shell_destroy_service_spec.rb | 1 + .../create_service_spec.rb | 45 +- .../revoke_service_spec.rb | 2 + .../change_labels_service_spec.rb | 1 + .../merge_into_notes_service_spec.rb | 1 + .../sast_parser_service_spec.rb | 12 +- .../build_payload_service_spec.rb | 47 + .../permit_data_categories_service_spec.rb | 67 + .../submit_service_ping_service_spec.rb} | 86 +- .../snippets/bulk_destroy_service_spec.rb | 1 + spec/services/snippets/create_service_spec.rb | 8 +- .../update_repository_storage_service_spec.rb | 15 +- spec/services/snippets/update_service_spec.rb | 10 +- spec/services/spam/akismet_service_spec.rb | 2 +- spec/services/spam/ham_service_spec.rb | 1 + .../services/spam/spam_action_service_spec.rb | 139 +- spec/services/spam/spam_params_spec.rb | 40 + .../spam/spam_verdict_service_spec.rb | 5 +- spec/services/system_note_service_spec.rb | 7 +- .../system_notes/issuables_service_spec.rb | 3 +- .../test_hooks/project_service_spec.rb | 2 + .../test_hooks/system_service_spec.rb | 1 + ...ser_project_access_changed_service_spec.rb | 11 + spec/services/users/approve_service_spec.rb | 1 + spec/services/users/reject_service_spec.rb | 1 + .../users/validate_otp_service_spec.rb | 1 + spec/services/web_hook_service_spec.rb | 13 - .../wiki_pages/create_service_spec.rb | 20 + .../wiki_pages/event_create_service_spec.rb | 1 + .../wiki_pages/update_service_spec.rb | 22 + spec/spec_helper.rb | 21 +- spec/support/capybara.rb | 6 +- spec/support/gitlab_experiment.rb | 10 - spec/support/helpers/ci/template_helpers.rb | 11 + .../helpers/cycle_analytics_helpers.rb | 10 +- .../helpers/database/table_schema_helpers.rb | 20 + spec/support/helpers/feature_flag_helpers.rb | 6 + .../helpers/features/admin_users_helpers.rb | 25 + .../features/invite_members_modal_helper.rb | 2 +- .../helpers/features/snippet_helpers.rb | 11 +- ...lpers.rb => source_editor_spec_helpers.rb} | 4 +- .../helpers/features/top_nav_spec_helpers.rb | 2 +- spec/support/helpers/grafana_api_helpers.rb | 2 +- .../helpers/javascript_fixtures_helpers.rb | 14 +- spec/support/helpers/jira_service_helper.rb | 4 +- spec/support/helpers/live_debugger.rb | 12 +- .../helpers/merge_request_diff_helpers.rb | 4 +- spec/support/helpers/require_migration.rb | 4 +- spec/support/helpers/services_helper.rb | 11 - spec/support/helpers/stub_experiments.rb | 2 - spec/support/helpers/stub_spam_services.rb | 23 + spec/support/helpers/stubbed_feature.rb | 22 - spec/support/helpers/test_env.rb | 88 +- spec/support/matchers/be_executed.rb | 11 + spec/support/matchers/have_issuable_counts.rb | 2 +- .../support/matchers/usage_metric_matchers.rb | 21 + spec/support/omniauth_strategy.rb | 12 +- spec/support/redis/redis_helpers.rb | 8 +- ...able_import_csv_service_shared_examples.rb | 20 +- .../integrations_shared_context.rb | 62 +- .../navbar_structure_context.rb | 165 +- .../policies/project_policy_shared_context.rb | 4 +- .../jira_import/jira_projects_context.rb | 4 +- ...ping_metrics_definitions_shared_context.rb | 43 + .../unique_ip_check_shared_context.rb | 6 +- .../edit_job_token_scope_shared_examples.rb | 40 + ...ccess_tokens_controller_shared_examples.rb | 2 + .../uploads_actions_shared_examples.rb | 10 + .../wiki_actions_shared_examples.rb | 44 +- .../cascading_settings_shared_examples.rb | 18 +- .../features/packages_shared_examples.rb | 6 +- .../search/search_timeouts_shared_examples.rb | 21 + .../features/sidebar_shared_examples.rb | 8 - .../user_creates_wiki_page_shared_examples.rb | 11 - .../user_deletes_wiki_page_shared_examples.rb | 26 +- .../user_updates_wiki_page_shared_examples.rb | 13 - .../graphql/design_fields_shared_examples.rb | 1 + .../can_mutate_spammable_examples.rb | 12 +- .../spam_protection_shared_examples.rb | 2 +- .../lib/cache_helpers_shared_examples.rb | 101 + .../cycle_analytics/event_shared_examples.rb | 13 + .../relation_factory_shared_examples.rb | 2 +- .../network_policy_common_shared_examples.rb | 3 +- .../search_results_sorted_shared_examples.rb | 18 + ...ctive_record_subscriber_shared_examples.rb | 41 +- .../atomic_internal_id_shared_examples.rb | 6 +- .../chat_integration_shared_examples.rb | 4 +- ...ack_mattermost_notifier_shared_examples.rb | 4 +- .../cycle_analytics_stage_shared_examples.rb | 16 + .../base_slash_commands_shared_examples.rb | 6 +- .../has_web_hook_shared_examples.rb | 97 + .../issue_tracker_service_shared_examples.rb | 2 +- .../models/member_shared_examples.rb | 256 + .../project_ci_cd_settings_shared_examples.rb | 54 + .../models/wiki_shared_examples.rb | 95 + .../namespaces/traversal_examples.rb | 96 +- .../issuable_quick_actions_shared_examples.rb | 2 + ...e_tracking_quick_action_shared_examples.rb | 18 + .../api/debian_packages_shared_examples.rb | 13 +- .../api/graphql/noteable_shared_examples.rb | 22 + .../api/helm_packages_shared_examples.rb | 229 +- .../api/nuget_packages_shared_examples.rb | 136 +- .../requests/api/packages_shared_examples.rb | 10 +- .../alert_firing_shared_examples.rb | 4 +- .../incident_creation_shared_examples.rb | 2 +- ...r_registry_auth_service_shared_examples.rb | 25 + .../user_mapper_services_shared_examples.rb | 2 +- .../services/packages_shared_examples.rb | 1 + ...ository_storage_service_shared_examples.rb | 15 +- ...te_service_ping_payload_shared_examples.rb | 9 + ...th_all_expected_metrics_shared_examples.rb | 11 + ...hout_restricted_metrics_shared_examples.rb | 11 + .../services/snippets_shared_examples.rb | 74 +- ...eate_attachment_service_shared_examples.rb | 19 + ..._product_marketing_email_shared_example.rb | 15 - spec/support/sidekiq.rb | 21 + spec/tasks/cache/clear/redis_spec.rb | 2 - spec/tasks/gitlab/backup_rake_spec.rb | 23 + spec/tasks/gitlab/db_rake_spec.rb | 55 +- .../gitlab/packages/composer_rake_spec.rb | 1 + spec/tasks/gitlab/snippets_rake_spec.rb | 1 + spec/tooling/danger/feature_flag_spec.rb | 20 +- spec/tooling/danger/project_helper_spec.rb | 41 +- .../lib/tooling/kubernetes_client_spec.rb | 91 + spec/uploaders/content_type_whitelist_spec.rb | 1 + .../dependency_proxy/file_uploader_spec.rb | 2 + .../_eks.html.haml_spec.rb | 1 + .../_package_registry.html.haml_spec.rb | 1 + .../ci_cd.html.haml_spec.rb | 56 + .../repository.html.haml_spec.rb | 2 +- .../devise/sessions/new.html.haml_spec.rb | 26 + .../groups/_home_panel.html.haml_spec.rb | 26 + .../runners/_group_runners.html.haml_spec.rb | 43 + .../settings/_transfer.html.haml_spec.rb | 17 + spec/views/help/show.html.haml_spec.rb | 2 +- spec/views/layouts/_head.html.haml_spec.rb | 2 +- spec/views/layouts/_search.html.haml_spec.rb | 9 + .../nav/sidebar/_group.html.haml_spec.rb | 51 - .../nav/sidebar/_project.html.haml_spec.rb | 347 +- .../_flash_messages.html.haml_spec.rb | 69 + .../projects/_home_panel.html.haml_spec.rb | 32 + spec/views/projects/empty.html.haml_spec.rb | 1 + .../projects/pipelines/show.html.haml_spec.rb | 1 + .../_specific_runners.html.haml_spec.rb | 43 + .../projects/services/_form.haml_spec.rb | 2 +- .../operations/show.html.haml_spec.rb | 6 +- spec/views/search/_results.html.haml_spec.rb | 3 +- .../shared/_global_alert.html.haml_spec.rb | 85 + .../views/shared/_label_row.html.haml_spec.rb | 3 + .../shared/milestones/_top.html.haml_spec.rb | 1 + .../user_refresh_from_replica_worker_spec.rb | 65 +- spec/workers/build_finished_worker_spec.rb | 15 +- spec/workers/build_queue_worker_spec.rb | 1 - .../export_request_worker_spec.rb | 5 + spec/workers/ci/archive_trace_worker_spec.rb | 33 + spec/workers/ci/build_finished_worker_spec.rb | 76 + ...esource_from_resource_group_worker_spec.rb | 18 +- .../activate_service_worker_spec.rb | 22 +- .../deactivate_service_worker_spec.rb | 32 +- .../concerns/application_worker_spec.rb | 71 + .../github_import/object_importer_spec.rb | 33 +- spec/workers/concerns/waitable_worker_spec.rb | 6 + ...leanup_container_repository_worker_spec.rb | 45 +- ...container_expiration_policy_worker_spec.rb | 35 +- .../partition_management_worker_spec.rb | 29 + spec/workers/every_sidekiq_worker_spec.rb | 5 +- .../expire_pipeline_cache_worker_spec.rb | 1 - .../import_diff_note_worker_spec.rb | 2 +- .../github_import/import_issue_worker_spec.rb | 2 +- .../github_import/import_note_worker_spec.rb | 2 +- ...port_pull_request_merged_by_worker_spec.rb | 8 - .../import_pull_request_review_worker_spec.rb | 8 - .../import_pull_request_worker_spec.rb | 2 +- .../stage/finish_import_worker_spec.rb | 4 + .../stage/import_issues_worker_spec.rb | 4 +- .../stage/import_labels_worker_spec.rb | 4 +- ....rb => gitlab_service_ping_worker_spec.rb} | 14 +- .../jira_connect/forward_event_worker_spec.rb | 56 + .../jira_connect/sync_branch_worker_spec.rb | 80 +- .../jira_connect/sync_builds_worker_spec.rb | 5 +- .../sync_deployments_worker_spec.rb | 5 +- .../sync_feature_flags_worker_spec.rb | 5 +- .../sync_merge_request_worker_spec.rb | 35 +- .../jira_connect/sync_project_worker_spec.rb | 77 +- .../merge_request_cleanup_refs_worker_spec.rb | 85 +- ...in_product_marketing_emails_worker_spec.rb | 37 +- .../packages/helm/extraction_worker_spec.rb | 92 + .../workers/partition_creation_worker_spec.rb | 29 +- spec/workers/pipeline_hooks_worker_spec.rb | 1 - spec/workers/post_receive_spec.rb | 7 +- spec/workers/project_service_worker_spec.rb | 14 +- .../projects/post_creation_worker_spec.rb | 36 +- ...propagate_integration_group_worker_spec.rb | 4 +- ...egration_inherit_descendant_worker_spec.rb | 4 +- ...opagate_integration_inherit_worker_spec.rb | 6 +- ...opagate_integration_project_worker_spec.rb | 4 +- .../remove_expired_group_links_worker_spec.rb | 2 +- ..._merge_request_cleanup_refs_worker_spec.rb | 25 +- .../deactivate_dormant_users_worker_spec.rb | 12 +- storybook/.gitignore | 2 + storybook/config/main.js | 10 + storybook/config/preview.js | 7 + storybook/config/webpack.config.js | 104 + storybook/package.json | 20 + storybook/yarn.lock | 10766 +++++++ tooling/danger/feature_flag.rb | 11 +- tooling/danger/product_intelligence.rb | 5 +- tooling/danger/project_helper.rb | 10 +- tooling/lib/tooling/kubernetes_client.rb | 49 +- .../src/components/DynamicScroller.vue | 6 +- .../src/components/DynamicScrollerItem.vue | 9 +- .../src/components/RecycleScroller.vue | 53 +- .../cluster_management.tar.gz | Bin 12723 -> 12981 bytes workhorse/config_test.go | 32 + workhorse/internal/api/api.go | 46 + workhorse/internal/api/api_test.go | 74 + workhorse/internal/artifacts/entry.go | 3 +- workhorse/internal/upstream/routes.go | 7 +- workhorse/internal/upstream/upstream.go | 33 +- workhorse/main.go | 13 +- yarn.lock | 509 +- 6323 files changed, 197758 insertions(+), 132259 deletions(-) create mode 100644 .gitlab/issue_templates/Deprecations.md create mode 100644 app/assets/javascripts/admin/users/components/actions/ban.vue create mode 100644 app/assets/javascripts/admin/users/components/actions/unban.vue rename app/assets/javascripts/{pages/admin/users/components => admin/users/components/modals}/delete_user_modal.vue (96%) rename app/assets/javascripts/{pages/admin/users/components => admin/users/components/modals}/user_modal_manager.vue (100%) rename app/assets/javascripts/analytics/devops_report/components/{usage_ping_disabled.vue => service_ping_disabled.vue} (50%) rename app/assets/javascripts/analytics/devops_report/{devops_score_disabled_usage_ping.js => devops_score_disabled_service_ping.js} (50%) create mode 100644 app/assets/javascripts/analytics/shared/components/daterange.vue delete mode 100644 app/assets/javascripts/analytics/shared/components/metric_card.vue create mode 100644 app/assets/javascripts/analytics/shared/components/projects_dropdown_filter.vue create mode 100644 app/assets/javascripts/analytics/shared/constants.js create mode 100644 app/assets/javascripts/analytics/shared/graphql/projects.query.graphql create mode 100644 app/assets/javascripts/analytics/shared/utils.js delete mode 100644 app/assets/javascripts/api/constants.js create mode 100644 app/assets/javascripts/authentication/two_factor_auth/components/manage_two_factor_form.vue create mode 100644 app/assets/javascripts/blob/csv/csv_viewer.vue create mode 100644 app/assets/javascripts/blob/csv/index.js create mode 100644 app/assets/javascripts/blob/csv_viewer.js create mode 100644 app/assets/javascripts/boards/components/issue_board_filtered_search.vue create mode 100644 app/assets/javascripts/boards/issue_board_filters.js create mode 100644 app/assets/javascripts/boards/mount_filtered_search_issue_boards.js delete mode 100644 app/assets/javascripts/clusters/components/application_row.vue delete mode 100644 app/assets/javascripts/clusters/components/applications.vue delete mode 100644 app/assets/javascripts/clusters/components/crossplane_provider_stack.vue delete mode 100644 app/assets/javascripts/clusters/components/knative_domain_editor.vue delete mode 100644 app/assets/javascripts/clusters/components/uninstall_application_button.vue delete mode 100644 app/assets/javascripts/clusters/components/uninstall_application_confirmation_modal.vue delete mode 100644 app/assets/javascripts/clusters/components/update_application_confirmation_modal.vue delete mode 100644 app/assets/javascripts/clusters/services/application_state_machine.js create mode 100644 app/assets/javascripts/content_editor/components/toolbar_image_button.vue create mode 100644 app/assets/javascripts/content_editor/components/toolbar_table_button.vue create mode 100644 app/assets/javascripts/content_editor/components/wrappers/image.vue create mode 100644 app/assets/javascripts/content_editor/extensions/table.js create mode 100644 app/assets/javascripts/content_editor/extensions/table_cell.js create mode 100644 app/assets/javascripts/content_editor/extensions/table_header.js create mode 100644 app/assets/javascripts/content_editor/extensions/table_row.js create mode 100644 app/assets/javascripts/content_editor/services/upload_file.js create mode 100644 app/assets/javascripts/cycle_analytics/components/filter_bar.vue create mode 100644 app/assets/javascripts/cycle_analytics/components/formatted_stage_count.vue create mode 100644 app/assets/javascripts/cycle_analytics/components/value_stream_filters.vue delete mode 100644 app/assets/javascripts/diffs/components/inline_diff_table_row.vue delete mode 100644 app/assets/javascripts/diffs/components/inline_diff_view.vue delete mode 100644 app/assets/javascripts/diffs/components/parallel_diff_table_row.vue delete mode 100644 app/assets/javascripts/diffs/components/parallel_diff_view.vue create mode 100644 app/assets/javascripts/diffs/components/pre_renderer.vue create mode 100644 app/assets/javascripts/diffs/components/virtual_scroller_scroll_sync.js delete mode 100644 app/assets/javascripts/editor/extensions/editor_file_template_ext.js rename app/assets/javascripts/editor/extensions/{editor_ci_schema_ext.js => source_editor_ci_schema_ext.js} (90%) rename app/assets/javascripts/editor/extensions/{editor_lite_extension_base.js => source_editor_extension_base.js} (90%) create mode 100644 app/assets/javascripts/editor/extensions/source_editor_file_template_ext.js rename app/assets/javascripts/editor/extensions/{editor_markdown_ext.js => source_editor_markdown_ext.js} (96%) rename app/assets/javascripts/editor/extensions/{editor_lite_webide_ext.js => source_editor_webide_ext.js} (96%) rename app/assets/javascripts/editor/{editor_lite.js => source_editor.js} (84%) create mode 100644 app/assets/javascripts/import_entities/components/group_dropdown.vue create mode 100644 app/assets/javascripts/invite_members/utils/response_message_parser.js create mode 100644 app/assets/javascripts/issuable_bulk_update_sidebar/components/status_select.vue create mode 100644 app/assets/javascripts/issuable_bulk_update_sidebar/constants.js create mode 100644 app/assets/javascripts/issuable_bulk_update_sidebar/init_issue_status_select.js rename app/assets/javascripts/{ => issuable_bulk_update_sidebar}/issuable_bulk_update_actions.js (95%) rename app/assets/javascripts/{ => issuable_bulk_update_sidebar}/issuable_bulk_update_sidebar.js (94%) rename app/assets/javascripts/{ => issuable_bulk_update_sidebar}/issuable_init_bulk_update_sidebar.js (100%) rename app/assets/javascripts/{ => issuable_bulk_update_sidebar}/subscription_select.js (96%) create mode 100644 app/assets/javascripts/issuable_sidebar/constants.js delete mode 100644 app/assets/javascripts/issue_status_select.js create mode 100644 app/assets/javascripts/issues_list/queries/get_issues_count.query.graphql create mode 100644 app/assets/javascripts/issues_list/queries/search_iterations.query.graphql create mode 100644 app/assets/javascripts/issues_list/queries/search_labels.query.graphql create mode 100644 app/assets/javascripts/issues_list/queries/search_milestones.query.graphql create mode 100644 app/assets/javascripts/issues_list/queries/search_users.query.graphql create mode 100644 app/assets/javascripts/jira_connect/branches/components/project_dropdown.vue create mode 100644 app/assets/javascripts/jira_connect/branches/components/source_branch_dropdown.vue create mode 100644 app/assets/javascripts/jira_connect/branches/constants.js create mode 100644 app/assets/javascripts/jira_connect/branches/graphql/queries/get_project.query.graphql create mode 100644 app/assets/javascripts/jira_connect/branches/graphql/queries/get_projects.query.graphql create mode 100644 app/assets/javascripts/lib/utils/finite_state_machine.js create mode 100644 app/assets/javascripts/milestones/milestone_utils.js create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/components/details/app.vue create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/pages/details.js create mode 100644 app/assets/javascripts/pages/admin/application_settings/metrics_and_profiling/usage_statistics.js create mode 100644 app/assets/javascripts/pages/admin/identities/index.js delete mode 100644 app/assets/javascripts/pages/admin/users/keys/index.js create mode 100644 app/assets/javascripts/pipeline_editor/components/editor/ci_editor_header.vue create mode 100644 app/assets/javascripts/pipeline_editor/graphql/mutations/update_commit_sha.mutation.graphql create mode 100644 app/assets/javascripts/pipeline_editor/graphql/queries/latest_commit_sha.query.graphql rename app/assets/javascripts/pipelines/components/pipeline_graph/{stage_pill.vue => stage_name.vue} (55%) create mode 100644 app/assets/javascripts/projects/terraform_notification/components/terraform_notification.vue create mode 100644 app/assets/javascripts/projects/terraform_notification/index.js create mode 100644 app/assets/javascripts/registry/explorer/components/list_page/cleanup_status.vue rename app/assets/javascripts/repository/components/{blob_replace.vue => blob_button_group.vue} (53%) rename app/assets/javascripts/repository/components/{blob_header_edit.vue => blob_edit.vue} (100%) create mode 100644 app/assets/javascripts/repository/components/blob_viewers/download_viewer.vue create mode 100644 app/assets/javascripts/repository/components/blob_viewers/empty_viewer.vue create mode 100644 app/assets/javascripts/repository/components/blob_viewers/index.js create mode 100644 app/assets/javascripts/repository/components/blob_viewers/text_viewer.vue create mode 100644 app/assets/javascripts/repository/components/delete_blob_modal.vue create mode 100644 app/assets/javascripts/runner/components/helpers/masked_value.vue create mode 100644 app/assets/javascripts/runner/components/runner_tag.vue create mode 100644 app/assets/javascripts/runner/components/search_tokens/tag_token.vue rename app/assets/javascripts/runner/graphql/{delete_runner.mutation.graphql => runner_delete.mutation.graphql} (100%) create mode 100644 app/assets/javascripts/runner/graphql/runner_details_shared.fragment.graphql create mode 100644 app/assets/javascripts/runner/runner_details/runner_update_form_utils.js create mode 100644 app/assets/javascripts/runner/sentry_utils.js create mode 100644 app/assets/javascripts/search/store/constants.js create mode 100644 app/assets/javascripts/search/store/getters.js create mode 100644 app/assets/javascripts/search/store/utils.js create mode 100644 app/assets/javascripts/search_autocomplete_utils.js create mode 100644 app/assets/javascripts/security_configuration/components/auto_dev_ops_alert.vue create mode 100644 app/assets/javascripts/security_configuration/graphql/configure_secret_detection.mutation.graphql rename app/assets/javascripts/{usage_ping_consent.js => service_ping_consent.js} (54%) create mode 100644 app/assets/javascripts/sidebar/components/todo_toggle/sidebar_todo_widget.vue create mode 100644 app/assets/javascripts/sidebar/queries/epic_reference.query.graphql create mode 100644 app/assets/javascripts/sidebar/queries/epic_todo.query.graphql create mode 100644 app/assets/javascripts/sidebar/queries/issue_todo.query.graphql create mode 100644 app/assets/javascripts/sidebar/queries/merge_request_milestone.query.graphql create mode 100644 app/assets/javascripts/sidebar/queries/merge_request_todo.query.graphql create mode 100644 app/assets/javascripts/sidebar/queries/todo_create.mutation.graphql create mode 100644 app/assets/javascripts/sidebar/queries/todo_mark_done.mutation.graphql create mode 100644 app/assets/javascripts/sidebar/queries/update_merge_request_milestone.mutation.graphql create mode 100644 app/assets/javascripts/token_access/components/token_access.vue create mode 100644 app/assets/javascripts/token_access/components/token_projects_table.vue create mode 100644 app/assets/javascripts/token_access/graphql/mutations/add_project_ci_job_token_scope.mutation.graphql create mode 100644 app/assets/javascripts/token_access/graphql/mutations/remove_project_ci_job_token_scope.mutation.graphql create mode 100644 app/assets/javascripts/token_access/graphql/mutations/update_ci_job_token_scope.mutation.graphql create mode 100644 app/assets/javascripts/token_access/graphql/queries/get_ci_job_token_scope.query.graphql create mode 100644 app/assets/javascripts/token_access/graphql/queries/get_projects_with_ci_job_token_scope.query.graphql create mode 100644 app/assets/javascripts/token_access/index.js rename app/assets/javascripts/vue_shared/components/{project_avatar => deprecated_project_avatar}/default.vue (96%) rename app/assets/javascripts/vue_shared/components/{project_avatar => deprecated_project_avatar}/image.vue (100%) create mode 100644 app/assets/javascripts/vue_shared/components/project_avatar.stories.js create mode 100644 app/assets/javascripts/vue_shared/components/project_avatar.vue delete mode 100644 app/assets/javascripts/vue_shared/components/select2_select.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/graphql/issue_labels.query.graphql create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/todo_toggle/todo_button.stories.js create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/todo_toggle/todo_button.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/todo_toggle/utils.js rename app/assets/javascripts/vue_shared/components/{editor_lite.vue => source_editor.vue} (92%) delete mode 100644 app/assets/javascripts/vue_shared/components/todo_button.vue rename app/assets/stylesheets/framework/{contextual_sidebar_refactoring/contextual_sidebar_variant.scss => contextual_sidebar.scss} (71%) delete mode 100644 app/assets/stylesheets/framework/contextual_sidebar_refactoring/contextual_sidebar.scss delete mode 100644 app/assets/stylesheets/framework/contextual_sidebar_refactoring/contextual_sidebar_base.scss rename app/assets/stylesheets/framework/{editor-lite.scss => source_editor.scss} (96%) rename app/controllers/projects/{usage_ping_controller.rb => service_ping_controller.rb} (79%) delete mode 100644 app/controllers/registrations/invites_controller.rb create mode 100644 app/controllers/users/unsubscribes_controller.rb create mode 100644 app/experiments/new_project_readme_content_experiment.rb create mode 100644 app/experiments/templates/new_project_readme_content/readme_advanced.md.tt create mode 100644 app/experiments/templates/new_project_readme_content/readme_basic.md.tt create mode 100644 app/finders/bulk_imports/entities_finder.rb create mode 100644 app/finders/bulk_imports/imports_finder.rb create mode 100644 app/graphql/mutations/ci/job_token_scope/add_project.rb create mode 100644 app/graphql/mutations/ci/job_token_scope/remove_project.rb create mode 100644 app/graphql/mutations/packages/destroy.rb create mode 100644 app/graphql/mutations/security/ci_configuration/base_security_analyzer.rb create mode 100644 app/graphql/queries/releases/all_releases.query.graphql create mode 100644 app/graphql/resolvers/ci/job_token_scope_resolver.rb create mode 100644 app/graphql/types/ci/job_token_scope_type.rb create mode 100644 app/graphql/types/deployment_tier_enum.rb create mode 100644 app/graphql/types/issuable_searchable_field_enum.rb create mode 100644 app/graphql/types/milestone_sort_enum.rb create mode 100644 app/graphql/types/noteable_type.rb rename app/graphql/types/notes/{noteable_type.rb => noteable_interface.rb} (88%) create mode 100644 app/graphql/types/query_complexity_type.rb delete mode 100644 app/helpers/analytics/unique_visits_helper.rb rename app/helpers/{services_helper.rb => integrations_helper.rb} (77%) create mode 100644 app/helpers/personal_access_tokens_helper.rb create mode 100644 app/helpers/routing/artifacts_helper.rb create mode 100644 app/helpers/routing/graphql_helper.rb create mode 100644 app/helpers/routing/groups/members_helper.rb create mode 100644 app/helpers/routing/members_helper.rb create mode 100644 app/helpers/routing/pipeline_schedules_helper.rb create mode 100644 app/helpers/routing/projects/members_helper.rb create mode 100644 app/helpers/routing/projects_helper.rb create mode 100644 app/helpers/routing/snippets_helper.rb create mode 100644 app/helpers/routing/wiki_helper.rb create mode 100644 app/mailers/emails/admin_notification.rb create mode 100644 app/models/blob_viewer/csv.rb create mode 100644 app/models/ci/base_model.rb create mode 100644 app/models/concerns/any_field_validation.rb create mode 100644 app/models/concerns/integrations/has_web_hook.rb create mode 100644 app/models/error_tracking.rb create mode 100644 app/models/error_tracking/error.rb create mode 100644 app/models/error_tracking/error_event.rb create mode 100644 app/models/integrations/base_monitoring.rb create mode 100644 app/models/integrations/mock_monitoring.rb create mode 100644 app/models/integrations/prometheus.rb create mode 100644 app/models/merge_request/diff_commit_user.rb delete mode 100644 app/models/project_services/mock_monitoring_service.rb delete mode 100644 app/models/project_services/monitoring_service.rb delete mode 100644 app/models/project_services/prometheus_service.rb create mode 100644 app/presenters/packages/helm/index_presenter.rb create mode 100644 app/services/ci/job_token_scope/add_project_service.rb create mode 100644 app/services/ci/job_token_scope/remove_project_service.rb create mode 100644 app/services/ci/pipelines/add_job_service.rb create mode 100644 app/services/ci/queue/build_queue_service.rb create mode 100644 app/services/ci/queue/builds_table_strategy.rb create mode 100644 app/services/ci/queue/pending_builds_strategy.rb create mode 100644 app/services/concerns/ci/job_token_scope/edit_scope_validations.rb create mode 100644 app/services/error_tracking/collect_error_service.rb delete mode 100644 app/services/incident_management/incidents/update_severity_service.rb create mode 100644 app/services/jira_connect_installations/destroy_service.rb create mode 100644 app/services/members/creator_service.rb create mode 100644 app/services/members/groups/creator_service.rb create mode 100644 app/services/members/projects/creator_service.rb create mode 100644 app/services/packages/destroy_package_service.rb create mode 100644 app/services/security/ci_configuration/dependency_scanning_create_service.rb create mode 100644 app/services/service_ping/build_payload_service.rb create mode 100644 app/services/service_ping/permit_data_categories_service.rb create mode 100644 app/services/service_ping/submit_service.rb delete mode 100644 app/services/submit_usage_ping_service.rb create mode 100644 app/validators/json_schemas/error_tracking_event_payload.json create mode 100644 app/views/admin/application_settings/_mailgun.html.haml create mode 100644 app/views/admin/application_settings/_runner_registrars_form.html.haml delete mode 100644 app/views/admin/users/_approve_user.html.haml delete mode 100644 app/views/admin/users/_ban_user.html.haml delete mode 100644 app/views/admin/users/_block_user.html.haml delete mode 100644 app/views/admin/users/_reject_pending_user.html.haml delete mode 100644 app/views/admin/users/_user_activation_effects.html.haml delete mode 100644 app/views/admin/users/_user_approve_effects.html.haml delete mode 100644 app/views/admin/users/_user_reject_effects.html.haml create mode 100644 app/views/ci/token_access/_index.html.haml delete mode 100644 app/views/clusters/clusters/_applications.html.haml delete mode 100644 app/views/clusters/clusters/_applications_tab.html.haml create mode 100644 app/views/groups/_delete_project_button.html.haml create mode 100644 app/views/groups/_project_badges.html.haml rename app/views/groups/runners/{_index.html.haml => _settings.html.haml} (100%) create mode 100644 app/views/groups/settings/_transfer.html.haml create mode 100644 app/views/layouts/minimal.html.haml delete mode 100644 app/views/layouts/nav/sidebar/_context_menu_body.html.haml create mode 100644 app/views/layouts/nav/sidebar/_group_menus.html.haml delete mode 100644 app/views/layouts/welcome.html.haml create mode 100644 app/views/notify/send_admin_notification.html.haml create mode 100644 app/views/notify/send_admin_notification.text.haml create mode 100644 app/views/notify/send_unsubscribed_notification.html.haml create mode 100644 app/views/notify/send_unsubscribed_notification.text.haml create mode 100644 app/views/notify/user_deactivated_email.html.haml create mode 100644 app/views/notify/user_deactivated_email.text.erb rename app/views/projects/{_invite_members.html.haml => _invite_members_empty_project.html.haml} (82%) create mode 100644 app/views/projects/_terraform_banner.html.haml create mode 100644 app/views/projects/blob/viewers/_csv.html.haml delete mode 100644 app/views/projects/registry/settings/_index.haml rename app/views/projects/runners/{_index.html.haml => _settings.html.haml} (100%) delete mode 100644 app/views/registrations/invites/new.html.haml create mode 100644 app/views/root/index.html.haml create mode 100644 app/views/search/results/_timeout.html.haml create mode 100644 app/views/shared/_confirm_your_email_alert.html.haml rename app/views/shared/{_ping_consent.html.haml => _service_ping_consent.html.haml} (60%) delete mode 100644 app/views/shared/issuable/_invite_members_trigger.html.haml delete mode 100644 app/views/shared/issuable/_sidebar_todo.html.haml delete mode 100644 app/views/shared/members/_group.html.haml create mode 100644 app/views/shared/members/_manage_access_button.html.haml delete mode 100644 app/views/shared/members/_search_field.html.haml delete mode 100644 app/views/shared/members/_sort_dropdown.html.haml create mode 100644 app/views/shared/milestones/_milestone_complete_alert.html.haml delete mode 100644 app/views/shared/nav/_scope_menu_body.html.haml delete mode 100644 app/views/shared/nav/_sidebar_menu_collapsed.html.haml create mode 100644 app/views/users/unsubscribes/show.html.haml create mode 100644 app/workers/ci/archive_trace_worker.rb create mode 100644 app/workers/ci/build_finished_worker.rb create mode 100644 app/workers/database/partition_management_worker.rb rename app/workers/{gitlab_usage_ping_worker.rb => gitlab_service_ping_worker.rb} (73%) create mode 100644 app/workers/jira_connect/forward_event_worker.rb create mode 100644 app/workers/packages/helm/extraction_worker.rb delete mode 100755 bin/actioncable delete mode 100644 cable/config.ru create mode 100644 config/events/api__group_container_repositories_list_repositories.yml create mode 100644 config/events/api__project_container_repositories_delete_repository.yml create mode 100644 config/events/api__project_container_repositories_delete_tag.yml create mode 100644 config/events/api__project_container_repositories_delete_tag_bulk.yml create mode 100644 config/events/api__project_container_repositories_list_repositories.yml create mode 100644 config/events/api__project_container_repositories_list_tags.yml create mode 100644 config/events/api__pypi_packages_list_package.yml create mode 100644 config/events/cluster_applications_cluster_application_name.yml create mode 100644 config/events/cluster_services_prometheus_disabled_manual_prometheus.yml create mode 100644 config/events/cluster_services_prometheus_enabled_manual_prometheus.yml create mode 100644 config/events/container_registry_notification_create_repository.yml create mode 100644 config/events/container_registry_notification_delete_repository.yml create mode 100644 config/events/container_registry_notification_delete_tag.yml create mode 100644 config/events/container_registry_notification_push_repository.yml create mode 100644 config/events/container_registry_notification_push_tag.yml create mode 100644 config/events/delete_repository_container.yml create mode 100644 config/events/delete_tag_bulk_tag.yml create mode 100644 config/events/experiment_name_initial_write.yml create mode 100644 config/events/experiment_name_write.yml create mode 100644 config/events/groups__email_campaigns_controller_click.yml create mode 100644 config/events/groups__registry__repositories_controller_list_repositories.yml create mode 100644 config/events/incident_management__zoom_integration_add_zoom_meeting.yml create mode 100644 config/events/incident_management__zoom_integration_remove_zoom_meeting.yml create mode 100644 config/events/list_repositories_container.yml create mode 100644 config/events/notes__create_service_execute.yml create mode 100644 config/events/package_class_pull_package.yml create mode 100644 config/events/package_class_push_package.yml create mode 100644 config/events/projects__registry__repositories_controller_delete_repository.yml create mode 100644 config/events/projects__registry__repositories_controller_list_repositories.yml create mode 100644 config/events/projects__registry__tags_controller_delete_tag.yml create mode 100644 config/events/projects__registry__tags_controller_delete_tag_bulk.yml create mode 100644 config/events/projects__registry__tags_controller_list_tags.yml create mode 100644 config/feature_flags/development/add_timezone_to_web_operations.yml rename config/feature_flags/development/{feature_flag_permissions.yml => allow_archive_as_web_access_format.yml} (70%) rename config/feature_flags/development/{drag_comment_selection.yml => api_caching_rate_limit_repository_compare.yml} (68%) create mode 100644 config/feature_flags/development/cancel_pipelines_prior_to_destroy.yml delete mode 100644 config/feature_flags/development/cascading_namespace_settings.yml delete mode 100644 config/feature_flags/development/ci_artifacts_exclude.yml create mode 100644 config/feature_flags/development/ci_build_finished_worker_namespace_changed.yml delete mode 100644 config/feature_flags/development/ci_fix_pipeline_status_for_dag_needs_manual.yml rename config/feature_flags/development/{trace_memory_allocations.yml => ci_job_trace_force_encode.yml} (64%) rename config/feature_flags/development/{ci_drop_new_builds_when_ci_quota_exceeded.yml => ci_jobs_trace_size_limit.yml} (69%) create mode 100644 config/feature_flags/development/ci_pending_builds_maintain_shared_runners_data.yml create mode 100644 config/feature_flags/development/ci_pending_builds_queue_source.yml delete mode 100644 config/feature_flags/development/ci_pipeline_latest.yml delete mode 100644 config/feature_flags/development/ci_pipeline_status_omit_commit_sha_in_cache_key.yml delete mode 100644 config/feature_flags/development/ci_runners_tokens_optional_encryption.yml rename config/feature_flags/development/{pipeline_filter_jobs.yml => ci_same_stage_job_needs.yml} (74%) rename config/feature_flags/development/{disable_composer_callback.yml => container_registry_migration_phase1.yml} (70%) create mode 100644 config/feature_flags/development/container_registry_migration_phase1_allow.yml rename config/feature_flags/development/{read_container_registry_access_level.yml => container_registry_migration_phase1_deny.yml} (68%) rename config/feature_flags/development/{security_ci_lint_authorization.yml => diffs_batch_render_cached.yml} (59%) delete mode 100644 config/feature_flags/development/diffs_gradual_load.yml delete mode 100644 config/feature_flags/development/disable_service_templates.yml delete mode 100644 config/feature_flags/development/erase_traces_from_already_archived_jobs_when_archiving_again.yml rename config/feature_flags/development/{ci_workflow_rules_variables.yml => evalute_protected_tag_for_release_permissions.yml} (59%) create mode 100644 config/feature_flags/development/generate_iids_without_explicit_locking.yml create mode 100644 config/feature_flags/development/git_access_batched_changes_size.yml delete mode 100644 config/feature_flags/development/group_devops_adoption.yml rename config/feature_flags/development/{approvals_commented_by.yml => increase_page_size_exponentially.yml} (58%) create mode 100644 config/feature_flags/development/infinitely_collapsible_sections.yml rename config/feature_flags/development/{escalation_policies_mvc.yml => integrated_error_tracking.yml} (72%) create mode 100644 config/feature_flags/development/issue_boards_filtered_search.yml rename config/feature_flags/development/{web_hooks_rate_limit.yml => jira_issue_details_edit_labels.yml} (71%) rename config/feature_flags/development/{datadog_ci_integration.yml => jira_issue_details_edit_status.yml} (71%) delete mode 100644 config/feature_flags/development/kubernetes_agent_on_gitlab_com.yml rename config/feature_flags/development/{snippet_spam.yml => lfs_link_existing_object.yml} (68%) rename config/feature_flags/development/{codequality_mr_diff.yml => list_commits.yml} (66%) delete mode 100644 config/feature_flags/development/load_balancing_for_expire_pipeline_cache_worker.yml delete mode 100644 config/feature_flags/development/load_balancing_for_pipeline_hooks_worker.yml rename config/feature_flags/development/{cached_markdown_blob.yml => load_balancing_for_update_all_mirrors_worker.yml} (60%) rename config/feature_flags/development/{load_balancing_for_build_queue_worker.yml => load_balancing_refine_load_balancer_methods.yml} (68%) rename config/feature_flags/development/{ci_pending_builds_queue_join.yml => mailgun_events_receiver.yml} (55%) rename config/feature_flags/development/{codequality_mr_diff_annotations.yml => merge_request_discussion_cache.yml} (62%) create mode 100644 config/feature_flags/development/multiple_database_metrics.yml delete mode 100644 config/feature_flags/development/multiple_oncall_schedules.yml delete mode 100644 config/feature_flags/development/new_release_page.yml rename config/feature_flags/development/{unified_diff_components.yml => one_megabyte_file_size_limit.yml} (64%) rename config/feature_flags/development/{helm_packages.yml => package_details_apollo.yml} (73%) rename config/feature_flags/development/{use_distinct_for_all_object_hierarchy.yml => partition_pruning_dry_run.yml} (66%) delete mode 100644 config/feature_flags/development/project_finder_similarity_sort.yml delete mode 100644 config/feature_flags/development/project_statistics_sync.yml delete mode 100644 config/feature_flags/development/projects_post_creation_worker.yml create mode 100644 config/feature_flags/development/runner_registration_control.yml create mode 100644 config/feature_flags/development/search_sort_issues_by_popularity.yml create mode 100644 config/feature_flags/development/security_configuration_redesign_ee.yml delete mode 100644 config/feature_flags/development/sidebar_refactor.yml rename config/feature_flags/{ops/dedicated_redis_trace_chunks.yml => development/sidekiq_job_completion_metric_initialize.yml} (52%) delete mode 100644 config/feature_flags/development/sidekiq_load_balancing_rotate_up_to_date_replica.yml rename config/feature_flags/development/{use_distinct_in_object_hierarchy.yml => sort_by_project_users_by_project_authorizations_user_id.yml} (65%) create mode 100644 config/feature_flags/development/specialized_worker_for_project_share_update_auth_recalculation.yml create mode 100644 config/feature_flags/development/specialized_worker_for_project_transfer_auth_recalculation.yml delete mode 100644 config/feature_flags/development/usage_data_code_review_aggregation.yml delete mode 100644 config/feature_flags/development/use_distinct_in_shas_cte.yml delete mode 100644 config/feature_flags/development/use_workhorse_s3_client.yml create mode 100644 config/feature_flags/development/user_refresh_from_replica_worker_uses_replica_db.yml delete mode 100644 config/feature_flags/experiment/in_product_marketing_emails_experiment_percentage.yml delete mode 100644 config/feature_flags/experiment/invite_signup_page_interaction.yml create mode 100644 config/feature_flags/experiment/new_project_readme_content.yml delete mode 100644 config/feature_flags/experiment/pipeline_empty_state_templates.yml rename config/feature_flags/experiment/{new_repo.yml => redirect_trial_user_to_feature.yml} (62%) rename config/feature_flags/{development/use_distinct_in_register_job_object_hierarchy.yml => ops/ci_queueing_disaster_recovery_disable_fair_scheduling.yml} (57%) rename config/feature_flags/ops/{ci_queueing_disaster_recovery.yml => ci_queueing_disaster_recovery_disable_quota.yml} (78%) rename config/initializers/{0_post_deployment_migrations.rb => 0_migration_paths_additional.rb} (62%) rename config/initializers/{0_runtime_identify.rb => 9_runtime_identify.rb} (88%) delete mode 100644 config/initializers/asciidoctor_patch.rb create mode 100644 config/initializers/check_decomposition_database_config.rb create mode 100644 config/initializers_before_autoloader/004_zeitwerk.rb create mode 100644 config/metrics/counts_28d/20210216180603_incident_management_incident_zoom_meeting_monthly.yml delete mode 100644 config/metrics/counts_28d/20210216183201_compliance_features_track_unique_visits_union.yml delete mode 100644 config/metrics/counts_28d/20210216183916_compliance_unique_visits_for_any_target_monthly.yml delete mode 100644 config/metrics/counts_28d/20210216183926_g_compliance_dashboard_monthly.yml delete mode 100644 config/metrics/counts_28d/20210216183930_g_compliance_audit_events_monthly.yml delete mode 100644 config/metrics/counts_28d/20210216183934_i_compliance_audit_events_monthly.yml delete mode 100644 config/metrics/counts_28d/20210216183938_i_compliance_credential_inventory_monthly.yml delete mode 100644 config/metrics/counts_28d/20210216183942_a_compliance_audit_events_api_monthly.yml delete mode 100644 config/metrics/counts_28d/20210216183946_compliance_total_unique_counts_monthly.yml create mode 100644 config/metrics/counts_7d/20210216180513_incident_management_alerts_total_unique_counts.yml create mode 100644 config/metrics/counts_7d/20210216180515_incident_management_incidents_total_unique_counts.yml create mode 100644 config/metrics/counts_7d/20210216180528_incident_management_alert_status_changed_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180532_incident_management_alert_assigned_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180535_incident_management_alert_todo_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180539_incident_management_incident_created_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180543_incident_management_incident_reopened_weekly.yml rename config/metrics/{counts_28d/20210216180607_incident_management_incident_published_monthly.yml => counts_7d/20210216180546_incident_management_incident_closed_weekly.yml} (56%) create mode 100644 config/metrics/counts_7d/20210216180550_incident_management_incident_assigned_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180554_incident_management_incident_todo_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180558_incident_management_incident_comment_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180601_incident_management_incident_zoom_meeting_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180609_incident_management_incident_relate_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180612_incident_management_incident_unrelate_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180616_incident_management_incident_change_confidential_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180620_incident_management_total_unique_counts_weekly.yml create mode 100644 config/metrics/counts_7d/20210216180623_incident_management_alert_create_incident_weekly.yml delete mode 100644 config/metrics/counts_all/20210216180502_status_page_incident_publishes.yml delete mode 100644 config/metrics/counts_all/20210216180504_status_page_incident_unpublishes.yml delete mode 100644 config/metrics/counts_all/20210216180506_status_page_projects.yml delete mode 100644 config/metrics/counts_all/20210216180507_status_page_issues.yml delete mode 100644 config/metrics/counts_all/20210216180522_projects_incident_sla_enabled.yml delete mode 100644 config/metrics/counts_all/20210216183904_g_compliance_dashboard.yml delete mode 100644 config/metrics/counts_all/20210216183906_g_compliance_audit_events.yml delete mode 100644 config/metrics/counts_all/20210216183908_i_compliance_audit_events.yml delete mode 100644 config/metrics/counts_all/20210216183910_i_compliance_credential_inventory.yml delete mode 100644 config/metrics/counts_all/20210216183912_a_compliance_audit_events_api.yml delete mode 100644 config/metrics/counts_all/20210216183914_compliance_unique_visits_for_any_target.yml create mode 100644 config/metrics/counts_all/20210625095025_package_events_i_package_helm_push_package.yml create mode 100644 config/metrics/counts_all/20210709191135_package_events_i_package_nuget_pull_symbol_package.yml create mode 100644 config/metrics/counts_all/20210709191829_package_events_i_package_nuget_push_symbol_package.yml create mode 100644 config/metrics/counts_all/20210709210941_package_events_i_package_pull_symbol_package.yml create mode 100644 config/metrics/counts_all/20210709211058_package_events_i_package_pull_symbol_package_by_deploy_token.yml create mode 100644 config/metrics/counts_all/20210709211248_package_events_i_package_pull_symbol_package_by_guest.yml create mode 100644 config/metrics/counts_all/20210709211341_package_events_i_package_pull_symbol_package_by_user.yml create mode 100644 config/metrics/counts_all/20210709211439_package_events_i_package_push_symbol_package.yml create mode 100644 config/metrics/counts_all/20210709211636_package_events_i_package_push_symbol_package_by_deploy_token.yml create mode 100644 config/metrics/counts_all/20210709211731_package_events_i_package_push_symbol_package_by_guest.yml create mode 100644 config/metrics/counts_all/20210709211831_package_events_i_package_push_symbol_package_by_user.yml create mode 100644 config/metrics/objects_schemas/collected_data_categories_schema.json create mode 100644 config/metrics/settings/20210702140138_collected_data_categories.yml delete mode 100644 config/puma_actioncable.example.development.rb create mode 100644 danger/gitaly/Dangerfile create mode 100644 danger/vue_shared_documentation/Dangerfile create mode 100644 data/whats_new/202107220001_14_1.yml create mode 100644 db/ci_migrate/20210617101848_create_ci_instance_variables_on_ci.rb create mode 100644 db/ci_schema_migrations/20210617101848 create mode 100644 db/ci_structure.sql delete mode 100644 db/gitlab_structure.sql create mode 100644 db/migrate/20210317210338_add_valid_runner_registrars.rb create mode 100644 db/migrate/20210601132134_remove_partial_index_for_hashed_storage_migration.rb create mode 100644 db/migrate/20210602155056_add_merge_request_diff_commit_users.rb create mode 100644 db/migrate/20210602155110_add_merge_request_diff_commit_user_columns.rb create mode 100644 db/migrate/20210604032738_create_dast_site_profiles_builds.rb create mode 100644 db/migrate/20210604034158_add_ci_build_id_fk_to_dast_site_profiles_builds.rb create mode 100644 db/migrate/20210604034354_add_dast_site_profile_id_fk_to_dast_site_profiles_builds.rb create mode 100644 db/migrate/20210604051330_create_dast_scanner_profiles_builds.rb create mode 100644 db/migrate/20210604051742_add_ci_build_id_fk_to_dast_scanner_profiles_builds.rb create mode 100644 db/migrate/20210604051917_add_dast_scanner_profile_id_fk_to_dast_scanner_profiles_builds.rb create mode 100644 db/migrate/20210610153556_delete_legacy_operations_feature_flags.rb create mode 100644 db/migrate/20210611101034_add_devops_adoption_sast_dast.rb create mode 100644 db/migrate/20210614142311_add_running_container_scanning_max_size_to_plan_limits.rb create mode 100644 db/migrate/20210615064342_add_issue_id_to_requirement.rb create mode 100644 db/migrate/20210616110748_add_issue_index_to_requirement.rb create mode 100644 db/migrate/20210616111311_add_issue_requirement_foreign_key.rb create mode 100644 db/migrate/20210616134905_add_timestamp_to_schema_migration.rb create mode 100644 db/migrate/20210616154808_remove_ci_build_protected_index.rb create mode 100644 db/migrate/20210616185947_add_mailgun_settings_to_application_setting.rb create mode 100644 db/migrate/20210617022324_create_incident_management_pending_alert_escalations.rb create mode 100644 db/migrate/20210617161348_cascade_delete_freeze_periods.rb create mode 100644 db/migrate/20210617180131_migrate_usage_ping_sidekiq_queue.rb create mode 100644 db/migrate/20210621043337_rename_services_to_integrations.rb create mode 100644 db/migrate/20210621044000_rename_services_indexes_to_integrations.rb create mode 100644 db/migrate/20210621084632_add_summary_to_timelogs.rb create mode 100644 db/migrate/20210621090030_add_text_limit_to_timelogs_summary.rb create mode 100644 db/migrate/20210621091830_add_devops_adoption_snapshot_dependency_scanning.rb create mode 100644 db/migrate/20210622135221_add_foreign_key_for_environment_id_to_environments.rb create mode 100644 db/migrate/20210623074226_add_usage_ping_features_enabled_to_application_settings.rb create mode 100644 db/migrate/20210623123722_add_present_on_default_branch_to_vulnerabilities.rb create mode 100644 db/migrate/20210623133635_create_error_tracking_errors.rb create mode 100644 db/migrate/20210623163342_add_index_to_compliance_management_frameworks_pipeline_configuration.rb create mode 100644 db/migrate/20210624112821_add_devops_adoption_coverage_fuzzing.rb create mode 100644 db/migrate/20210624180613_add_last_synced_at_to_licenses.rb create mode 100644 db/migrate/20210625094554_create_error_tracking_error_events.rb create mode 100644 db/migrate/20210627204936_add_plan_limits_max_size_cluster_image_scanning_column.rb create mode 100644 db/migrate/20210629153519_add_index_to_bulk_import_entities_on_bulk_import_id_and_status.rb create mode 100644 db/migrate/20210630144339_add_invite_email_success_to_members.rb create mode 100644 db/migrate/20210701111627_add_upvotes_count_to_issues.rb create mode 100644 db/migrate/20210702124842_add_ci_job_trace_size_to_plan_limits.rb create mode 100644 db/migrate/20210705124128_add_project_settings_previous_default_branch.rb create mode 100644 db/migrate/20210705130919_create_container_repos_on_exp_cleanup_status_project_id_start_date_index.rb create mode 100644 db/migrate/20210705132928_add_new_user_signups_cap_to_namespace_settings.rb create mode 100644 db/migrate/20210705144657_add_instance_runners_enabled_to_ci_pending_build.rb create mode 100644 db/migrate/20210706084713_add_devops_adoption_snapshots_index.rb create mode 100644 db/migrate/20210706152139_add_index_type_to_postgres_indexes_view.rb create mode 100644 db/migrate/20210706213537_add_premium_and_ultimate_plan_limits.rb create mode 100644 db/migrate/20210707095545_add_status_to_merge_request_cleanup_schedules.rb create mode 100644 db/migrate/20210707151536_create_vulnerability_finding_evidence_sources.rb create mode 100644 db/migrate/20210707171536_create_vulnerability_finding_evidence_assets.rb create mode 100644 db/migrate/20210707171554_create_vulnerability_flags.rb create mode 100644 db/migrate/20210707173645_add_project_settings_previous_default_branch_text_limit.rb create mode 100644 db/migrate/20210707181536_create_vulnerability_finding_evidence_supporting_messages.rb create mode 100644 db/migrate/20210708063032_add_failed_count_to_merge_request_cleanup_schedules.rb create mode 100644 db/migrate/20210708124229_add_security_scans_created_at_index.rb create mode 100644 db/migrate/20210708131048_add_error_tracking_counter_cache.rb create mode 100644 db/migrate/20210708134446_remove_not_null_constraint_from_terms.rb create mode 100644 db/migrate/20210709085759_index_batched_migration_jobs_by_max_value.rb create mode 100644 db/migrate/20210709132707_change_default_job_token_scope_enabled.rb create mode 100644 db/migrate/20210713070842_update_merge_request_cleanup_schedules_scheduled_at_index.rb create mode 100644 db/migrate/20210713135152_add_devops_adoption_vulnerability_management_used_count.rb create mode 100644 db/migrate/20210713144637_add_vulnerabilities_created_at_index.rb create mode 100644 db/migrate/20210714120600_add_detected_at_to_vulnerabilities.rb create mode 100644 db/migrate/20210716074555_revert_default_job_token_scope.rb create mode 100644 db/migrate/20210720083432_change_application_setting_terms_not_null.rb create mode 100644 db/post_migrate/20210602164044_schedule_latest_pipeline_id_population.rb create mode 100644 db/post_migrate/20210604133651_schedule_merge_request_diff_users_background_migration.rb create mode 100644 db/post_migrate/20210609202501_schedule_backfill_draft_status_on_merge_requests.rb create mode 100644 db/post_migrate/20210610042700_remove_clusters_applications_fluentd_table.rb create mode 100644 db/post_migrate/20210614124111_add_devops_adoption_sast_dast_indexes.rb create mode 100644 db/post_migrate/20210615234935_fix_batched_migrations_old_format_job_arguments.rb create mode 100644 db/post_migrate/20210616145254_add_partial_index_for_ci_builds_token.rb create mode 100644 db/post_migrate/20210621111747_add_ci_artifacts_devops_adoption_index.rb create mode 100644 db/post_migrate/20210621155328_replace_project_authorizations_project_id_index.rb create mode 100644 db/post_migrate/20210621164210_drop_remove_on_close_from_labels.rb create mode 100644 db/post_migrate/20210621223000_steal_background_jobs_that_reference_services.rb create mode 100644 db/post_migrate/20210621223242_finalize_rename_services_to_integrations.rb create mode 100644 db/post_migrate/20210622041846_finalize_push_event_payloads_bigint_conversion.rb create mode 100644 db/post_migrate/20210622141148_schedule_delete_orphaned_deployments.rb create mode 100644 db/post_migrate/20210628124505_reset_job_token_scope_enabled.rb create mode 100644 db/post_migrate/20210629101712_remove_deprecated_modsecurity_columns.rb create mode 100644 db/post_migrate/20210629104933_drop_index_on_ci_builds_for_token.rb create mode 100644 db/post_migrate/20210630025020_migrate_push_event_payloads_event_id_back_to_integer_for_gitlab_com.rb create mode 100644 db/post_migrate/20210701111909_backfill_issues_upvotes_count.rb create mode 100644 db/post_migrate/20210706115312_add_upvotes_count_index_to_issues.rb create mode 100644 db/post_migrate/20210706120847_remove_framework_column_from_compliance_management_frameworks.rb create mode 100644 db/post_migrate/20210706142819_re_schedule_latest_pipeline_id_population.rb create mode 100644 db/post_migrate/20210708130419_reschedule_merge_request_diff_users_background_migration.rb create mode 100644 db/post_migrate/20210914095310_cleanup_orphan_project_access_tokens.rb create mode 100644 db/schema_migrations/20210317210338 create mode 100644 db/schema_migrations/20210601132134 create mode 100644 db/schema_migrations/20210602155056 create mode 100644 db/schema_migrations/20210602155110 create mode 100644 db/schema_migrations/20210602164044 create mode 100644 db/schema_migrations/20210604032738 create mode 100644 db/schema_migrations/20210604034158 create mode 100644 db/schema_migrations/20210604034354 create mode 100644 db/schema_migrations/20210604051330 create mode 100644 db/schema_migrations/20210604051742 create mode 100644 db/schema_migrations/20210604051917 create mode 100644 db/schema_migrations/20210604133651 create mode 100644 db/schema_migrations/20210609202501 create mode 100644 db/schema_migrations/20210610042700 create mode 100644 db/schema_migrations/20210610153556 create mode 100644 db/schema_migrations/20210611101034 create mode 100644 db/schema_migrations/20210614124111 create mode 100644 db/schema_migrations/20210614142311 create mode 100644 db/schema_migrations/20210615064342 create mode 100644 db/schema_migrations/20210615234935 create mode 100644 db/schema_migrations/20210616110748 create mode 100644 db/schema_migrations/20210616111311 create mode 100644 db/schema_migrations/20210616134905 create mode 100644 db/schema_migrations/20210616145254 create mode 100644 db/schema_migrations/20210616154808 create mode 100644 db/schema_migrations/20210616185947 create mode 100644 db/schema_migrations/20210617022324 create mode 100644 db/schema_migrations/20210617161348 create mode 100644 db/schema_migrations/20210617180131 create mode 100644 db/schema_migrations/20210621043337 create mode 100644 db/schema_migrations/20210621044000 create mode 100644 db/schema_migrations/20210621084632 create mode 100644 db/schema_migrations/20210621090030 create mode 100644 db/schema_migrations/20210621091830 create mode 100644 db/schema_migrations/20210621111747 create mode 100644 db/schema_migrations/20210621155328 create mode 100644 db/schema_migrations/20210621164210 create mode 100644 db/schema_migrations/20210621223000 create mode 100644 db/schema_migrations/20210621223242 create mode 100644 db/schema_migrations/20210622041846 create mode 100644 db/schema_migrations/20210622135221 create mode 100644 db/schema_migrations/20210622141148 create mode 100644 db/schema_migrations/20210623074226 create mode 100644 db/schema_migrations/20210623123722 create mode 100644 db/schema_migrations/20210623133635 create mode 100644 db/schema_migrations/20210623163342 create mode 100644 db/schema_migrations/20210624112821 create mode 100644 db/schema_migrations/20210624180613 create mode 100644 db/schema_migrations/20210625094554 create mode 100644 db/schema_migrations/20210627204936 create mode 100644 db/schema_migrations/20210628124505 create mode 100644 db/schema_migrations/20210629101712 create mode 100644 db/schema_migrations/20210629104933 create mode 100644 db/schema_migrations/20210629153519 create mode 100644 db/schema_migrations/20210630025020 create mode 100644 db/schema_migrations/20210630144339 create mode 100644 db/schema_migrations/20210701111627 create mode 100644 db/schema_migrations/20210701111909 create mode 100644 db/schema_migrations/20210702124842 create mode 100644 db/schema_migrations/20210705124128 create mode 100644 db/schema_migrations/20210705130919 create mode 100644 db/schema_migrations/20210705132928 create mode 100644 db/schema_migrations/20210705144657 create mode 100644 db/schema_migrations/20210706084713 create mode 100644 db/schema_migrations/20210706115312 create mode 100644 db/schema_migrations/20210706120847 create mode 100644 db/schema_migrations/20210706142819 create mode 100644 db/schema_migrations/20210706152139 create mode 100644 db/schema_migrations/20210706213537 create mode 100644 db/schema_migrations/20210707095545 create mode 100644 db/schema_migrations/20210707151536 create mode 100644 db/schema_migrations/20210707171536 create mode 100644 db/schema_migrations/20210707171554 create mode 100644 db/schema_migrations/20210707173645 create mode 100644 db/schema_migrations/20210707181536 create mode 100644 db/schema_migrations/20210708063032 create mode 100644 db/schema_migrations/20210708124229 create mode 100644 db/schema_migrations/20210708130419 create mode 100644 db/schema_migrations/20210708131048 create mode 100644 db/schema_migrations/20210708134446 create mode 100644 db/schema_migrations/20210709085759 create mode 100644 db/schema_migrations/20210709132707 create mode 100644 db/schema_migrations/20210713070842 create mode 100644 db/schema_migrations/20210713135152 create mode 100644 db/schema_migrations/20210713144637 create mode 100644 db/schema_migrations/20210714120600 create mode 100644 db/schema_migrations/20210716074555 create mode 100644 db/schema_migrations/20210720083432 create mode 100644 db/schema_migrations/20210914095310 create mode 100644 doc/.vale/gitlab/HeaderGerunds.yml create mode 100644 doc/administration/auth/index.md delete mode 100644 doc/administration/auth/okta.md delete mode 100644 doc/administration/geo/replication/remove_geo_node.md create mode 100644 doc/administration/get_started.md create mode 100644 doc/administration/gitaly/troubleshooting.md delete mode 100644 doc/administration/img/repository_storages_admin_ui_v13_1.png delete mode 100644 doc/administration/monitoring/performance/img/performance_bar.png create mode 100644 doc/administration/monitoring/performance/img/performance_bar_v14_0.png create mode 100644 doc/api/bulk_imports.md create mode 100644 doc/api/graphql/custom_emoji.md create mode 100644 doc/api/graphql/img/custom_emoji_query_example.png create mode 100644 doc/api/index.md create mode 100644 doc/api/packages/debian.md create mode 100644 doc/api/packages/debian_group_distributions.md create mode 100644 doc/api/packages/debian_project_distributions.md create mode 100644 doc/api/packages/helm.md delete mode 100644 doc/ci/caching/img/clear_runners_cache.png delete mode 100644 doc/ci/chatops/README.md delete mode 100644 doc/ci/docker/README.md create mode 100644 doc/ci/examples/deployment/index.md create mode 100644 doc/ci/examples/index.md delete mode 100644 doc/ci/examples/test-and-deploy-python-application-to-heroku.md delete mode 100644 doc/ci/examples/test-and-deploy-ruby-application-to-heroku.md delete mode 100644 doc/ci/examples/test-clojure-application.md create mode 100644 doc/ci/index.md delete mode 100644 doc/ci/merge_request_pipelines/img/merge_request.png create mode 100644 doc/ci/pipelines/img/coverage_check_approval_rule_14_1.png rename doc/ci/{merge_request_pipelines/pipelines_for_merged_results/merge_trains => pipelines}/img/merge_train_cancel_v12_0.png (100%) rename doc/ci/{merge_request_pipelines/pipelines_for_merged_results/merge_trains => pipelines}/img/merge_train_failure.png (100%) rename doc/ci/{merge_request_pipelines/pipelines_for_merged_results/merge_trains => pipelines}/img/merge_train_immediate_merge_v12_6.png (100%) rename doc/ci/{merge_request_pipelines/pipelines_for_merged_results/merge_trains => pipelines}/img/merge_train_position_v12_0.png (100%) rename doc/ci/{merge_request_pipelines/pipelines_for_merged_results/merge_trains => pipelines}/img/merge_train_start_v12_0.png (100%) rename doc/ci/{merge_request_pipelines/pipelines_for_merged_results/merge_trains => pipelines}/img/merge_train_start_when_pipeline_succeeds_v12_0.png (100%) rename doc/ci/{merge_request_pipelines/pipelines_for_merged_results => pipelines}/img/merged_result_pipeline.png (100%) rename doc/ci/{ => pipelines}/img/multi_pipeline_mini_graph.gif (100%) rename doc/ci/{ => pipelines}/img/multi_project_pipeline_graph.png (100%) rename doc/ci/{ => pipelines}/img/parent_pipeline_graph_expanded_v12_6.png (100%) rename doc/ci/{merge_request_pipelines => pipelines}/img/pipeline-fork_v13_7.png (100%) create mode 100644 doc/ci/pipelines/merge_request_pipelines.md create mode 100644 doc/ci/pipelines/merge_trains.md create mode 100644 doc/ci/pipelines/multi_project_pipelines.md create mode 100644 doc/ci/pipelines/parent_child_pipelines.md create mode 100644 doc/ci/pipelines/pipelines_for_merged_results.md delete mode 100644 doc/ci/quick_start/README.md create mode 100644 doc/ci/runners/build_cloud/linux_build_cloud.md create mode 100644 doc/ci/runners/build_cloud/windows_build_cloud.md delete mode 100644 doc/ci/runners/img/protected_runners_check_box.png create mode 100644 doc/ci/runners/img/protected_runners_check_box_v14_1.png delete mode 100644 doc/ci/runners/img/shared_runner_ip_address.png create mode 100644 doc/ci/runners/img/shared_runner_ip_address_14_1.png create mode 100644 doc/ci/runners/index.md delete mode 100644 doc/ci/services/README.md delete mode 100644 doc/ci/ssh_keys/README.md create mode 100644 doc/ci/triggers/index.md create mode 100644 doc/ci/variables/index.md create mode 100644 doc/ci/yaml/index.md create mode 100644 doc/development/database/multiple_databases.md create mode 100644 doc/development/database/transaction_guidelines.md create mode 100644 doc/development/fe_guide/source_editor.md create mode 100644 doc/development/fe_guide/storybook.md delete mode 100644 doc/development/feature_flags/development.md create mode 100644 doc/development/img/stage_group_dashboards_error_attribution.png create mode 100644 doc/development/img/stage_group_dashboards_service_sli_detail.png create mode 100644 doc/development/index.md delete mode 100644 doc/development/new_fe_guide/dependencies.md create mode 100644 doc/development/service_ping/dictionary.md create mode 100644 doc/development/service_ping/index.md create mode 100644 doc/development/service_ping/metrics_dictionary.md create mode 100644 doc/development/service_ping/metrics_instrumentation.md create mode 100644 doc/development/service_ping/review_guidelines.md create mode 100644 doc/development/snowplow/review_guidelines.md create mode 100644 doc/development/testing_guide/end_to_end/execution_context_selection.md delete mode 100644 doc/development/usage_ping.md create mode 100644 doc/development/usage_ping/review_guidelines.md delete mode 100644 doc/downgrade_ee_to_ce/README.md delete mode 100644 doc/gitlab-basics/README.md delete mode 100644 doc/gitlab-basics/create-project.md delete mode 100644 doc/gitlab-basics/fork-project.md create mode 100644 doc/index.md delete mode 100644 doc/install/README.md create mode 100644 doc/integration/datadog.md delete mode 100644 doc/integration/google_workspace_saml.md delete mode 100644 doc/intro/README.md delete mode 100644 doc/legal/README.md create mode 100644 doc/migrate_ci_to_ce/index.md delete mode 100644 doc/operations/incident_management/alert_integrations.md create mode 100644 doc/operations/incident_management/escalation_policies.md create mode 100644 doc/operations/incident_management/img/escalation_policy_v14_1.png delete mode 100644 doc/operations/incident_management/img/link_runbooks_to_alerts_v13_5.png delete mode 100644 doc/operations/metrics/dashboards/img/panel_context_menu_v13_3.png create mode 100644 doc/operations/metrics/dashboards/img/panel_context_menu_v14_0.png rename doc/operations/metrics/img/{prometheus_service_alerts.png => prometheus_integration_alerts.png} (100%) delete mode 100644 doc/raketasks/README.md delete mode 100644 doc/security/cicd_environment_variables.md create mode 100644 doc/security/index.md create mode 100644 doc/ssh/index.md delete mode 100644 doc/university/README.md delete mode 100644 doc/university/training/gitlab_flow.md delete mode 100644 doc/university/training/topics/cherry_picking.md delete mode 100644 doc/university/training/topics/tags.md delete mode 100644 doc/update/README.md delete mode 100644 doc/user/admin_area/analytics/img/admin_devops_adoption_v14_0.png create mode 100644 doc/user/admin_area/analytics/img/admin_devops_adoption_v14_1.png delete mode 100644 doc/user/admin_area/analytics/user_cohorts.md delete mode 100644 doc/user/admin_area/img/index_runners_search_or_filter.png create mode 100644 doc/user/admin_area/img/index_runners_search_or_filter_v14_1.png create mode 100644 doc/user/admin_area/monitoring/img/batched_background_migrations_queued_v14_0.png delete mode 100644 doc/user/admin_area/settings/img/help_page_help_text_ex_v12_3.png delete mode 100644 doc/user/admin_area/settings/img/help_page_help_text_v12_3.png create mode 100644 doc/user/application_security/cluster_image_scanning/index.md create mode 100644 doc/user/application_security/sast/img/sast_results_in_mr_v14_0.png create mode 100644 doc/user/clusters/agent/ci_cd_tunnel.md delete mode 100644 doc/user/compliance/license_compliance/img/policies_maintainer_edit_v13_2.png create mode 100644 doc/user/compliance/license_compliance/img/policies_maintainer_edit_v14_2.png delete mode 100644 doc/user/discussions/img/automatically_resolve_outdated_discussions.png delete mode 100644 doc/user/discussions/img/comment_type_toggle.gif delete mode 100644 doc/user/discussions/img/commit_comment_mr_context.png delete mode 100644 doc/user/discussions/img/commit_comment_mr_discussions_tab.png delete mode 100644 doc/user/discussions/img/discussion_lock_system_notes.png delete mode 100644 doc/user/discussions/img/image_resolved_discussion.png delete mode 100644 doc/user/discussions/img/lock_form_member.png delete mode 100644 doc/user/discussions/img/lock_form_non_member.png delete mode 100644 doc/user/discussions/img/merge_request_commits_tab.png delete mode 100644 doc/user/discussions/img/onion_skin_view.png delete mode 100644 doc/user/discussions/img/preview_issue_for_thread.png delete mode 100644 doc/user/discussions/img/preview_issue_for_threads.png delete mode 100644 doc/user/discussions/img/reply_to_comment.gif delete mode 100644 doc/user/discussions/img/resolve_comment_button.png delete mode 100644 doc/user/discussions/img/resolve_thread_button_v13_3.png delete mode 100644 doc/user/discussions/img/resolve_thread_issue_notice.png delete mode 100644 doc/user/discussions/img/resolve_thread_open_issue_v13_9.png delete mode 100644 doc/user/discussions/img/swipe_view.png delete mode 100644 doc/user/discussions/img/thread_view.png delete mode 100644 doc/user/discussions/img/turn_off_lock.png delete mode 100644 doc/user/discussions/img/turn_on_lock.png delete mode 100644 doc/user/discussions/img/two_up_view.png create mode 100644 doc/user/discussions/img/unresolved_threads_v14_1.png delete mode 100644 doc/user/group/devops_adoption/img/group_devops_adoption_v14_0.png create mode 100644 doc/user/group/devops_adoption/img/group_devops_adoption_v14_1.png delete mode 100644 doc/user/group/import/img/bulk_imports_v13_8.png create mode 100644 doc/user/group/import/img/bulk_imports_v14_1.png delete mode 100644 doc/user/group/import/img/import_panel_v13_8.png create mode 100644 doc/user/group/import/img/import_panel_v14_1.png delete mode 100644 doc/user/group/settings/img/import_panel_v13_4.png create mode 100644 doc/user/group/settings/img/import_panel_v14_1.png delete mode 100644 doc/user/img/todos_add_todo_sidebar.png create mode 100644 doc/user/img/todos_add_todo_sidebar_v14_1.png delete mode 100644 doc/user/img/todos_mark_done_sidebar.png create mode 100644 doc/user/img/todos_mark_done_sidebar_v14_1.png create mode 100644 doc/user/infrastructure/clusters/connect/new_gke_cluster.md create mode 100644 doc/user/infrastructure/clusters/deploy/inventory_object.md create mode 100644 doc/user/packages/debian_repository/index.md create mode 100644 doc/user/packages/helm_repository/index.md create mode 100644 doc/user/project/clusters/add_existing_cluster.md create mode 100644 doc/user/project/clusters/cluster_access.md create mode 100644 doc/user/project/clusters/deploy_to_cluster.md create mode 100644 doc/user/project/clusters/gitlab_managed_clusters.md create mode 100644 doc/user/project/clusters/multiple_kubernetes_clusters.md delete mode 100644 doc/user/project/clusters/serverless/img/function-details-loaded.png create mode 100644 doc/user/project/clusters/serverless/img/function-details-loaded_v14_0.png delete mode 100644 doc/user/project/clusters/serverless/img/serverless-page.png create mode 100644 doc/user/project/clusters/serverless/img/serverless-page_v14_0.png delete mode 100644 doc/user/project/img/protected_branches_delete.png delete mode 100644 doc/user/project/img/protected_branches_deploy_keys_v13_5.png delete mode 100644 doc/user/project/img/protected_branches_matches.png delete mode 100644 doc/user/project/img/protected_branches_select_roles_and_users.png delete mode 100644 doc/user/project/img/protected_branches_select_roles_and_users_list.png delete mode 100644 doc/user/project/integrations/img/project_integrations_v13_3.png delete mode 100644 doc/user/project/integrations/jira_cloud_configuration.md delete mode 100644 doc/user/project/integrations/jira_server_configuration.md create mode 100644 doc/user/project/integrations/pivotal_tracker.md create mode 100644 doc/user/project/merge_requests/img/add_previously_merged_commits_button_v14_1.png delete mode 100644 doc/user/project/merge_requests/img/create_from_email.png delete mode 100644 doc/user/project/merge_requests/img/create_merge_request_button_v12_6.png delete mode 100644 doc/user/project/merge_requests/img/new_merge_request_page_v12_6.png create mode 100644 doc/user/project/merge_requests/img/previously_merged_commits_v14_1.png create mode 100644 doc/user/project/merge_requests/img/status_checks_widget_passed_v14_0.png create mode 100644 doc/user/project/merge_requests/img/status_checks_widget_pending_v14_0.png delete mode 100644 doc/user/project/merge_requests/work_in_progress_merge_requests.md delete mode 100644 doc/user/project/new_ci_build_permissions_model.md create mode 100644 doc/user/project/repository/csv.md create mode 100644 doc/user/project/repository/img/csv_file_rendered_as_table_v14_1.png delete mode 100644 doc/user/project/repository/img/repository_mirroring_pull_settings_lower.png delete mode 100644 doc/user/project/repository/img/repository_mirroring_pull_settings_upper.png delete mode 100644 doc/user/project/repository/img/repository_mirroring_push_settings.png create mode 100644 doc/user/workspace/img/1.1-Instance_overview.png create mode 100644 doc/user/workspace/img/1.2-Groups_overview.png create mode 100644 doc/user/workspace/img/1.3-Admin.png create mode 100644 doc/user/workspace/img/Admin_Settings.png create mode 100644 doc/user/workspace/index.md create mode 100644 lib/api/bulk_imports.rb create mode 100644 lib/api/entities/bulk_import.rb create mode 100644 lib/api/entities/bulk_imports/entity.rb create mode 100644 lib/api/entities/bulk_imports/entity_failure.rb create mode 100644 lib/api/entities/ci/job_request/artifacts.rb create mode 100644 lib/api/entities/ci/job_request/cache.rb create mode 100644 lib/api/entities/ci/job_request/credentials.rb create mode 100644 lib/api/entities/ci/job_request/dependency.rb create mode 100644 lib/api/entities/ci/job_request/git_info.rb create mode 100644 lib/api/entities/ci/job_request/image.rb create mode 100644 lib/api/entities/ci/job_request/job_info.rb create mode 100644 lib/api/entities/ci/job_request/port.rb create mode 100644 lib/api/entities/ci/job_request/response.rb create mode 100644 lib/api/entities/ci/job_request/runner_info.rb create mode 100644 lib/api/entities/ci/job_request/service.rb create mode 100644 lib/api/entities/ci/job_request/step.rb create mode 100644 lib/api/entities/ci/runner.rb create mode 100644 lib/api/entities/ci/runner_details.rb create mode 100644 lib/api/entities/ci/runner_registration_details.rb create mode 100644 lib/api/entities/helm/index.rb delete mode 100644 lib/api/entities/job_request/artifacts.rb delete mode 100644 lib/api/entities/job_request/cache.rb delete mode 100644 lib/api/entities/job_request/credentials.rb delete mode 100644 lib/api/entities/job_request/dependency.rb delete mode 100644 lib/api/entities/job_request/git_info.rb delete mode 100644 lib/api/entities/job_request/image.rb delete mode 100644 lib/api/entities/job_request/job_info.rb delete mode 100644 lib/api/entities/job_request/port.rb delete mode 100644 lib/api/entities/job_request/response.rb delete mode 100644 lib/api/entities/job_request/runner_info.rb delete mode 100644 lib/api/entities/job_request/service.rb delete mode 100644 lib/api/entities/job_request/step.rb create mode 100644 lib/api/entities/project_integration.rb rename lib/api/entities/{project_service_basic.rb => project_integration_basic.rb} (77%) delete mode 100644 lib/api/entities/project_service.rb create mode 100644 lib/api/entities/resource_access_token.rb create mode 100644 lib/api/entities/resource_access_token_with_token.rb delete mode 100644 lib/api/entities/runner.rb delete mode 100644 lib/api/entities/runner_details.rb delete mode 100644 lib/api/entities/runner_registration_details.rb create mode 100644 lib/api/error_tracking_collector.rb create mode 100644 lib/api/geo.rb rename lib/api/helpers/{services_helpers.rb => integrations_helpers.rb} (98%) create mode 100644 lib/bulk_imports/error.rb create mode 100644 lib/bulk_imports/groups/pipelines/group_avatar_pipeline.rb create mode 100644 lib/bulk_imports/users_mapper.rb create mode 100644 lib/error_tracking/collector/sentry_request_parser.rb create mode 100644 lib/gitlab/background_migration/backfill_draft_status_on_merge_requests.rb create mode 100644 lib/gitlab/background_migration/backfill_upvotes_count_on_issues.rb create mode 100644 lib/gitlab/background_migration/delete_orphaned_deployments.rb create mode 100644 lib/gitlab/background_migration/migrate_merge_request_diff_commit_users.rb create mode 100644 lib/gitlab/background_migration/populate_latest_pipeline_ids.rb create mode 100644 lib/gitlab/backup_logger.rb create mode 100644 lib/gitlab/cache/helpers.rb create mode 100644 lib/gitlab/checks/container_moved.rb delete mode 100644 lib/gitlab/checks/project_moved.rb create mode 100644 lib/gitlab/ci/reports/security/analyzer.rb create mode 100644 lib/gitlab/ci/reports/security/concerns/fingerprint_path_from_file.rb create mode 100644 lib/gitlab/ci/reports/security/identifier.rb create mode 100644 lib/gitlab/ci/reports/security/link.rb create mode 100644 lib/gitlab/ci/reports/security/scan.rb create mode 100644 lib/gitlab/ci/reports/security/scanned_resource.rb create mode 100644 lib/gitlab/ci/reports/security/scanner.rb delete mode 100644 lib/gitlab/ci/templates/Hello-World.gitlab-ci.yml create mode 100644 lib/gitlab/ci/templates/Security/Cluster-Image-Scanning.gitlab-ci.yml rename lib/gitlab/ci/templates/{dotNET-Core.yml => dotNET-Core.gitlab-ci.yml} (94%) create mode 100644 lib/gitlab/ci/yaml_processor/dag.rb create mode 100644 lib/gitlab/database/batch_counter.rb delete mode 100644 lib/gitlab/database/custom_structure.rb rename lib/gitlab/database/partitioning/{partition_creator.rb => partition_manager.rb} (53%) delete mode 100644 lib/gitlab/database/partitioning_migration_helpers/partitioned_foreign_key.rb delete mode 100644 lib/gitlab/database/partitioning_migration_helpers/partitioned_foreign_key_validator.rb delete mode 100644 lib/gitlab/database/reindexing/concurrent_reindex.rb create mode 100644 lib/gitlab/database/reindexing/reindex_concurrently.rb create mode 100644 lib/gitlab/database/schema_migrations.rb create mode 100644 lib/gitlab/database/schema_migrations/context.rb create mode 100644 lib/gitlab/database/schema_migrations/migrations.rb delete mode 100644 lib/gitlab/database/schema_version_files.rb create mode 100644 lib/gitlab/fogbugz_import.rb create mode 100644 lib/gitlab/fogbugz_import/http_adapter.rb create mode 100644 lib/gitlab/gitaly_client/list_blobs_adapter.rb create mode 100644 lib/gitlab/github_import/object_counter.rb create mode 100644 lib/gitlab/metrics/subscribers/load_balancing.rb rename lib/gitlab/{changelog => template_parser}/ast.rb (99%) create mode 100644 lib/gitlab/template_parser/error.rb rename lib/gitlab/{changelog => template_parser}/eval_state.rb (94%) rename lib/gitlab/{changelog => template_parser}/parser.rb (97%) create mode 100644 lib/gitlab/tracking/helpers.rb create mode 100644 lib/gitlab/usage/metrics/instrumentations/collected_data_categories_metric.rb create mode 100644 lib/security/ci_configuration/dependency_scanning_build_action.rb create mode 100644 lib/serializers/symbolized_json.rb create mode 100644 lib/sidebars/groups/context.rb create mode 100644 lib/sidebars/groups/menus/scope_menu.rb create mode 100644 lib/sidebars/groups/panel.rb delete mode 100644 lib/sidebars/projects/menus/labels_menu.rb delete mode 100644 lib/sidebars/projects/menus/members_menu.rb create mode 100644 lib/tasks/gitlab/background_migrations.rake create mode 100644 qa/qa/fixtures/export.tar.gz create mode 100644 qa/qa/page/component/import/gitlab.rb create mode 100644 qa/qa/page/component/import/selection.rb create mode 100644 qa/qa/page/project/import/repo_by_url.rb create mode 100644 qa/qa/page/project/pipeline_editor/show.rb create mode 100644 qa/qa/page/project/settings/default_branch.rb create mode 100644 qa/qa/resource/import_project.rb create mode 100644 qa/qa/resource/personal_access_token_cache.rb create mode 100644 qa/qa/resource/project_imported_from_url.rb create mode 100644 qa/qa/scenario/test/integration/registry.rb create mode 100644 qa/qa/service/cluster_provider/k3s_cilium.rb create mode 100644 qa/qa/specs/features/api/1_manage/import_github_repo_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_editor_branch_switcher_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/5_package/container_registry_omnibus_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/5_package/online_garbage_collection_spec.rb create mode 100644 qa/tasks/webdrivers.rake create mode 100644 rubocop/cop/database/multiple_databases.rb create mode 100644 rubocop/cop/gitlab/mark_used_feature_flags.rb create mode 100644 rubocop/cop/migration/prevent_index_creation.rb create mode 100644 rubocop/cop/migration/sidekiq_queue_migrate.rb create mode 100644 rubocop/cop/worker_data_consistency.rb delete mode 100755 scripts/merge-html-reports create mode 100755 scripts/setup-test-env rename spec/controllers/projects/{usage_ping_controller_spec.rb => service_ping_controller_spec.rb} (97%) create mode 100644 spec/controllers/users/unsubscribes_controller_spec.rb create mode 100644 spec/experiments/new_project_readme_content_experiment_spec.rb create mode 100644 spec/factories/ci/pending_builds.rb create mode 100644 spec/factories/ci/reports/security/identifiers.rb create mode 100644 spec/factories/ci/reports/security/links.rb create mode 100644 spec/factories/ci/reports/security/scanners.rb create mode 100644 spec/factories/ci/running_builds.rb create mode 100644 spec/factories/merge_request_diff_commit_users.rb create mode 100644 spec/features/dashboard/root_spec.rb create mode 100644 spec/features/profiles/two_factor_auths_spec.rb create mode 100644 spec/finders/bulk_imports/entities_finder_spec.rb create mode 100644 spec/finders/bulk_imports/imports_finder_spec.rb create mode 100644 spec/fixtures/error_tracking/event.txt create mode 100644 spec/fixtures/error_tracking/parsed_event.json create mode 100644 spec/fixtures/error_tracking/transaction.txt create mode 100644 spec/fixtures/error_tracking/unknown.txt create mode 100644 spec/fixtures/packages/nuget/package.snupkg create mode 100644 spec/fixtures/packages/nuget/with_package_types.nuspec rename spec/frontend/{pages/admin/users/components => admin/users/components/modals}/__snapshots__/delete_user_modal_spec.js.snap (98%) rename spec/frontend/{pages/admin/users/components => admin/users/components/modals}/delete_user_modal_spec.js (98%) rename spec/frontend/{pages/admin/users/components => admin/users/components/modals}/stubs/modal_stub.js (100%) rename spec/frontend/{pages/admin/users/components => admin/users/components/modals}/user_modal_manager_spec.js (97%) create mode 100644 spec/frontend/analytics/devops_report/components/service_ping_disabled_spec.js create mode 100644 spec/frontend/analytics/shared/components/daterange_spec.js delete mode 100644 spec/frontend/analytics/shared/components/metric_card_spec.js create mode 100644 spec/frontend/analytics/shared/components/projects_dropdown_filter_spec.js create mode 100644 spec/frontend/analytics/shared/utils_spec.js rename spec/frontend/analytics/usage_trends/components/{instance_counts_spec.js => usage_counts_spec.js} (50%) create mode 100644 spec/frontend/authentication/two_factor_auth/components/__snapshots__/manage_two_factor_form_spec.js.snap create mode 100644 spec/frontend/authentication/two_factor_auth/components/manage_two_factor_form_spec.js create mode 100644 spec/frontend/blob/csv/csv_viewer_spec.js create mode 100644 spec/frontend/boards/components/issue_board_filtered_search_spec.js delete mode 100644 spec/frontend/clusters/components/__snapshots__/applications_spec.js.snap delete mode 100644 spec/frontend/clusters/components/application_row_spec.js delete mode 100644 spec/frontend/clusters/components/applications_spec.js delete mode 100644 spec/frontend/clusters/components/knative_domain_editor_spec.js delete mode 100644 spec/frontend/clusters/components/uninstall_application_button_spec.js delete mode 100644 spec/frontend/clusters/components/uninstall_application_confirmation_modal_spec.js delete mode 100644 spec/frontend/clusters/components/update_application_confirmation_modal_spec.js delete mode 100644 spec/frontend/clusters/services/application_state_machine_spec.js delete mode 100644 spec/frontend/clusters/services/crossplane_provider_stack_spec.js delete mode 100644 spec/frontend/collapsed_sidebar_todo_spec.js create mode 100644 spec/frontend/content_editor/components/toolbar_image_button_spec.js create mode 100644 spec/frontend/content_editor/components/toolbar_table_button_spec.js create mode 100644 spec/frontend/content_editor/components/wrappers/image_spec.js create mode 100644 spec/frontend/content_editor/extensions/hard_break_spec.js create mode 100644 spec/frontend/content_editor/extensions/horizontal_rule_spec.js create mode 100644 spec/frontend/content_editor/extensions/image_spec.js create mode 100644 spec/frontend/content_editor/services/upload_file_spec.js create mode 100644 spec/frontend/cycle_analytics/filter_bar_spec.js create mode 100644 spec/frontend/cycle_analytics/formatted_stage_count_spec.js create mode 100644 spec/frontend/cycle_analytics/value_stream_filters_spec.js delete mode 100644 spec/frontend/diffs/components/inline_diff_table_row_spec.js delete mode 100644 spec/frontend/diffs/components/inline_diff_view_spec.js delete mode 100644 spec/frontend/diffs/components/parallel_diff_table_row_spec.js delete mode 100644 spec/frontend/diffs/components/parallel_diff_view_spec.js rename spec/frontend/editor/{editor_ci_schema_ext_spec.js => source_editor_ci_schema_ext_spec.js} (94%) rename spec/frontend/editor/{editor_lite_extension_base_spec.js => source_editor_extension_base_spec.js} (82%) rename spec/frontend/editor/{editor_markdown_ext_spec.js => source_editor_markdown_ext_spec.js} (97%) rename spec/frontend/editor/{editor_lite_spec.js => source_editor_spec.js} (95%) create mode 100644 spec/frontend/ide/components/ide_project_header_spec.js create mode 100644 spec/frontend/import_entities/components/group_dropdown_spec.js create mode 100644 spec/frontend/invite_members/mock_data/api_responses.js create mode 100644 spec/frontend/invite_members/utils/response_message_parser_spec.js create mode 100644 spec/frontend/issuable_bulk_update_sidebar/components/status_select_spec.js create mode 100644 spec/frontend/jira_connect/branches/components/project_dropdown_spec.js create mode 100644 spec/frontend/jira_connect/branches/components/source_branch_dropdown_spec.js create mode 100644 spec/frontend/lib/graphql_spec.js create mode 100644 spec/frontend/lib/utils/datetime/timeago_utility_spec.js create mode 100644 spec/frontend/lib/utils/finite_state_machine_spec.js create mode 100644 spec/frontend/milestones/milestone_utils_spec.js create mode 100644 spec/frontend/packages_and_registries/package_registry/components/details/app_spec.js create mode 100644 spec/frontend/pages/admin/application_settings/metrics_and_profiling/usage_statistics_spec.js create mode 100644 spec/frontend/pipeline_editor/components/editor/ci_editor_header_spec.js create mode 100644 spec/frontend/projects/terraform_notification/terraform_notification_spec.js create mode 100644 spec/frontend/registry/explorer/components/list_page/cleanup_status_spec.js create mode 100644 spec/frontend/repository/components/blob_button_group_spec.js rename spec/frontend/repository/components/{blob_header_edit_spec.js => blob_edit_spec.js} (92%) delete mode 100644 spec/frontend/repository/components/blob_replace_spec.js create mode 100644 spec/frontend/repository/components/blob_viewers/__snapshots__/empty_viewer_spec.js.snap create mode 100644 spec/frontend/repository/components/blob_viewers/download_viewer_spec.js create mode 100644 spec/frontend/repository/components/blob_viewers/empty_viewer_spec.js create mode 100644 spec/frontend/repository/components/blob_viewers/text_viewer_spec.js create mode 100644 spec/frontend/repository/components/delete_blob_modal_spec.js create mode 100644 spec/frontend/runner/components/helpers/masked_value_spec.js create mode 100644 spec/frontend/runner/components/runner_tag_spec.js create mode 100644 spec/frontend/runner/components/search_tokens/tag_token_spec.js create mode 100644 spec/frontend/runner/runner_detail/runner_update_form_utils_spec.js create mode 100644 spec/frontend/runner/sentry_utils_spec.js create mode 100644 spec/frontend/search/store/getters_spec.js create mode 100644 spec/frontend/search/store/utils_spec.js create mode 100644 spec/frontend/search_autocomplete_utils_spec.js create mode 100644 spec/frontend/security_configuration/components/auto_dev_ops_alert_spec.js create mode 100644 spec/frontend/sidebar/components/todo_toggle/sidebar_todo_widget_spec.js create mode 100644 spec/frontend/token_access/mock_data.js create mode 100644 spec/frontend/token_access/token_access_spec.js create mode 100644 spec/frontend/token_access/token_projects_table_spec.js rename spec/frontend/vue_shared/components/__snapshots__/{editor_lite_spec.js.snap => source_editor_spec.js.snap} (65%) create mode 100644 spec/frontend/vue_shared/components/project_avatar_spec.js rename spec/frontend/vue_shared/components/{ => sidebar}/todo_button_spec.js (59%) rename spec/frontend/vue_shared/components/{editor_lite_spec.js => source_editor_spec.js} (89%) create mode 100644 spec/graphql/mutations/ci/job_token_scope/add_project_spec.rb create mode 100644 spec/graphql/mutations/ci/job_token_scope/remove_project_spec.rb create mode 100644 spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb create mode 100644 spec/graphql/resolvers/ci/job_token_scope_resolver_spec.rb create mode 100644 spec/graphql/types/ci/job_token_scope_type_spec.rb create mode 100644 spec/graphql/types/deployment_tier_enum_spec.rb create mode 100644 spec/graphql/types/issuable_searchable_field_enum_spec.rb rename spec/graphql/types/notes/{noteable_type_spec.rb => noteable_interface_spec.rb} (93%) create mode 100644 spec/graphql/types/query_complexity_type_spec.rb delete mode 100644 spec/helpers/analytics/unique_visits_helper_spec.rb rename spec/helpers/{services_helper_spec.rb => integrations_helper_spec.rb} (74%) create mode 100644 spec/initializers/100_patch_omniauth_oauth2_spec.rb create mode 100644 spec/lib/api/entities/basic_project_details_spec.rb create mode 100644 spec/lib/api/entities/bulk_import_spec.rb create mode 100644 spec/lib/api/entities/bulk_imports/entity_failure_spec.rb create mode 100644 spec/lib/api/entities/bulk_imports/entity_spec.rb rename spec/lib/api/entities/{ => ci}/job_request/image_spec.rb (92%) rename spec/lib/api/entities/{ => ci}/job_request/port_spec.rb (88%) create mode 100644 spec/lib/api/entities/group_detail_spec.rb create mode 100644 spec/lib/bulk_imports/clients/graphql_spec.rb create mode 100644 spec/lib/bulk_imports/groups/pipelines/group_avatar_pipeline_spec.rb create mode 100644 spec/lib/bulk_imports/users_mapper_spec.rb create mode 100644 spec/lib/error_tracking/collector/sentry_request_parser_spec.rb delete mode 100644 spec/lib/gitlab/analytics/unique_visits_spec.rb create mode 100644 spec/lib/gitlab/background_migration/backfill_draft_status_on_merge_requests_spec.rb create mode 100644 spec/lib/gitlab/background_migration/backfill_upvotes_count_on_issues_spec.rb create mode 100644 spec/lib/gitlab/background_migration/delete_orphaned_deployments_spec.rb create mode 100644 spec/lib/gitlab/background_migration/migrate_merge_request_diff_commit_users_spec.rb create mode 100644 spec/lib/gitlab/cache/helpers_spec.rb rename spec/lib/gitlab/checks/{project_moved_spec.rb => container_moved_spec.rb} (63%) create mode 100644 spec/lib/gitlab/ci/reports/security/identifier_spec.rb create mode 100644 spec/lib/gitlab/ci/reports/security/link_spec.rb create mode 100644 spec/lib/gitlab/ci/reports/security/scan_spec.rb create mode 100644 spec/lib/gitlab/ci/reports/security/scanned_resource_spec.rb create mode 100644 spec/lib/gitlab/ci/reports/security/scanner_spec.rb create mode 100644 spec/lib/gitlab/ci/yaml_processor/dag_spec.rb delete mode 100644 spec/lib/gitlab/database/custom_structure_spec.rb delete mode 100644 spec/lib/gitlab/database/partitioning/partition_creator_spec.rb create mode 100644 spec/lib/gitlab/database/partitioning/partition_manager_spec.rb delete mode 100644 spec/lib/gitlab/database/partitioning_migration_helpers/partitioned_foreign_key_spec.rb create mode 100644 spec/lib/gitlab/database/postgresql_database_tasks/load_schema_versions_mixin_spec.rb delete mode 100644 spec/lib/gitlab/database/reindexing/concurrent_reindex_spec.rb create mode 100644 spec/lib/gitlab/database/reindexing/reindex_concurrently_spec.rb create mode 100644 spec/lib/gitlab/database/schema_migrations/context_spec.rb rename spec/lib/gitlab/database/{schema_version_files_spec.rb => schema_migrations/migrations_spec.rb} (60%) create mode 100644 spec/lib/gitlab/diff/file_collection/base_spec.rb create mode 100644 spec/lib/gitlab/diff/file_collection/merge_request_diff_base_spec.rb create mode 100644 spec/lib/gitlab/github_import/object_counter_spec.rb create mode 100644 spec/lib/gitlab/graphql/pagination/keyset/connection_generic_keyset_spec.rb create mode 100644 spec/lib/gitlab/metrics/subscribers/load_balancing_spec.rb rename spec/lib/gitlab/{changelog => template_parser}/ast_spec.rb (75%) rename spec/lib/gitlab/{changelog => template_parser}/parser_spec.rb (91%) create mode 100644 spec/lib/gitlab/usage/docs/helper_spec.rb create mode 100644 spec/lib/gitlab/usage/metrics/instrumentations/collected_data_categories_metric_spec.rb create mode 100644 spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb create mode 100644 spec/lib/serializers/symbolized_json_spec.rb create mode 100644 spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb delete mode 100644 spec/lib/sidebars/projects/menus/labels_menu_spec.rb delete mode 100644 spec/lib/sidebars/projects/menus/members_menu_spec.rb create mode 100644 spec/mailers/emails/admin_notification_spec.rb create mode 100644 spec/migrations/20210610153556_delete_legacy_operations_feature_flags_spec.rb create mode 100644 spec/migrations/2021061716138_cascade_delete_freeze_periods_spec.rb create mode 100644 spec/migrations/20210708130419_reschedule_merge_request_diff_users_background_migration_spec.rb create mode 100644 spec/migrations/20210914095310_cleanup_orphan_project_access_tokens_spec.rb create mode 100644 spec/migrations/add_premium_and_ultimate_plan_limits_spec.rb create mode 100644 spec/migrations/add_upvotes_count_index_to_issues_spec.rb create mode 100644 spec/migrations/backfill_issues_upvotes_count_spec.rb create mode 100644 spec/migrations/fix_batched_migrations_old_format_job_arguments_spec.rb create mode 100644 spec/migrations/re_schedule_latest_pipeline_id_population_spec.rb create mode 100644 spec/migrations/rename_services_to_integrations_spec.rb create mode 100644 spec/migrations/reset_job_token_scope_enabled_spec.rb create mode 100644 spec/migrations/schedule_backfill_draft_status_on_merge_requests_spec.rb create mode 100644 spec/migrations/schedule_delete_orphaned_deployments_spec.rb create mode 100644 spec/models/error_tracking/error_event_spec.rb create mode 100644 spec/models/error_tracking/error_spec.rb rename spec/models/{project_services/prometheus_service_spec.rb => integrations/prometheus_spec.rb} (67%) create mode 100644 spec/models/merge_request/diff_commit_user_spec.rb create mode 100644 spec/policies/release_policy_spec.rb create mode 100644 spec/requests/api/bulk_imports_spec.rb create mode 100644 spec/requests/api/error_tracking_collector_spec.rb create mode 100644 spec/requests/api/geo_spec.rb create mode 100644 spec/requests/api/graphql/mutations/ci/job_token_scope/add_project_spec.rb create mode 100644 spec/requests/api/graphql/mutations/ci/job_token_scope/remove_project_spec.rb create mode 100644 spec/requests/api/graphql/mutations/packages/destroy_spec.rb delete mode 100644 spec/requests/invite_registration_spec.rb create mode 100644 spec/requests/projects/merge_requests/diffs_spec.rb create mode 100644 spec/rubocop/cop/database/multiple_databases_spec.rb create mode 100644 spec/rubocop/cop/gitlab/mark_used_feature_flags_spec.rb create mode 100644 spec/rubocop/cop/migration/prevent_index_creation_spec.rb create mode 100644 spec/rubocop/cop/migration/sidekiq_queue_migrate_spec.rb create mode 100644 spec/rubocop/cop/worker_data_consistency_spec.rb create mode 100644 spec/services/ci/create_pipeline_service/evaluate_runner_tags_spec.rb create mode 100644 spec/services/ci/job_token_scope/add_project_service_spec.rb create mode 100644 spec/services/ci/job_token_scope/remove_project_service_spec.rb create mode 100644 spec/services/ci/pipeline_processing/test_cases/dag_same_stages.yml create mode 100644 spec/services/ci/pipelines/add_job_service_spec.rb create mode 100644 spec/services/error_tracking/collect_error_service_spec.rb delete mode 100644 spec/services/incident_management/incidents/update_severity_service_spec.rb create mode 100644 spec/services/jira_connect_installations/destroy_service_spec.rb create mode 100644 spec/services/members/groups/creator_service_spec.rb create mode 100644 spec/services/members/projects/creator_service_spec.rb create mode 100644 spec/services/packages/destroy_package_service_spec.rb create mode 100644 spec/services/service_ping/build_payload_service_spec.rb create mode 100644 spec/services/service_ping/permit_data_categories_service_spec.rb rename spec/services/{submit_usage_ping_service_spec.rb => service_ping/submit_service_ping_service_spec.rb} (71%) create mode 100644 spec/services/spam/spam_params_spec.rb create mode 100644 spec/support/helpers/ci/template_helpers.rb create mode 100644 spec/support/helpers/features/admin_users_helpers.rb rename spec/support/helpers/features/{editor_lite_spec_helpers.rb => source_editor_spec_helpers.rb} (82%) delete mode 100644 spec/support/helpers/services_helper.rb create mode 100644 spec/support/helpers/stub_spam_services.rb create mode 100644 spec/support/matchers/be_executed.rb create mode 100644 spec/support/matchers/usage_metric_matchers.rb create mode 100644 spec/support/shared_contexts/services/service_ping/stubbed_service_ping_metrics_definitions_shared_context.rb create mode 100644 spec/support/shared_examples/ci/edit_job_token_scope_shared_examples.rb create mode 100644 spec/support/shared_examples/features/search/search_timeouts_shared_examples.rb create mode 100644 spec/support/shared_examples/lib/cache_helpers_shared_examples.rb create mode 100644 spec/support/shared_examples/models/integrations/has_web_hook_shared_examples.rb create mode 100644 spec/support/shared_examples/models/project_ci_cd_settings_shared_examples.rb create mode 100644 spec/support/shared_examples/services/service_ping/complete_service_ping_payload_shared_examples.rb create mode 100644 spec/support/shared_examples/services/service_ping/service_ping_payload_with_all_expected_metrics_shared_examples.rb create mode 100644 spec/support/shared_examples/services/service_ping/service_ping_payload_without_restricted_metrics_shared_examples.rb delete mode 100644 spec/support/shared_examples/workers/in_product_marketing_email_shared_example.rb create mode 100644 spec/views/admin/application_settings/ci_cd.html.haml_spec.rb create mode 100644 spec/views/groups/runners/_group_runners.html.haml_spec.rb create mode 100644 spec/views/groups/settings/_transfer.html.haml_spec.rb create mode 100644 spec/views/projects/_flash_messages.html.haml_spec.rb create mode 100644 spec/views/projects/runners/_specific_runners.html.haml_spec.rb create mode 100644 spec/views/shared/_global_alert.html.haml_spec.rb create mode 100644 spec/workers/ci/archive_trace_worker_spec.rb create mode 100644 spec/workers/ci/build_finished_worker_spec.rb create mode 100644 spec/workers/database/partition_management_worker_spec.rb rename spec/workers/{gitlab_usage_ping_worker_spec.rb => gitlab_service_ping_worker_spec.rb} (63%) create mode 100644 spec/workers/jira_connect/forward_event_worker_spec.rb create mode 100644 spec/workers/packages/helm/extraction_worker_spec.rb create mode 100644 storybook/.gitignore create mode 100644 storybook/config/main.js create mode 100644 storybook/config/preview.js create mode 100644 storybook/config/webpack.config.js create mode 100644 storybook/package.json create mode 100644 storybook/yarn.lock create mode 100644 workhorse/internal/api/api_test.go diff --git a/.browserslistrc b/.browserslistrc index 3ae7766c32..a608ac7c73 100644 --- a/.browserslistrc +++ b/.browserslistrc @@ -1,16 +1,16 @@ # -# This list of browsers is a conservative first definition, based on +# This list of browsers is a conservative definition, based on # https://docs.gitlab.com/ee/install/requirements.html#supported-web-browsers # with the following reasoning: # -# - Edge: Pick the last two major version before the Chrome switch -# - Rest: We should support the latest ESR of Firefox: 68, because it used quite a lot. -# For the rest, pick browser versions that have a similar age to Firefox 68. +# - We should support the latest ESR of Firefox: 78, because it used quite a lot. +# - We use Edge/Chrome >= 84 because 83 had an annoying bug which would mean we +# need to polyfill Array.reduce: https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +# - Safari 13.1 because it is the current minor version of the previous major version # -# See also this follow-up epic: -# https://gitlab.com/groups/gitlab-org/-/epics/3957 +# See also this epic: https://gitlab.com/groups/gitlab-org/-/epics/3957 # -chrome >= 73 -edge >= 17 -firefox >= 68 -safari >= 12 +chrome >= 84 +edge >= 84 +firefox >= 78 +safari >= 13.1 diff --git a/.eslintignore b/.eslintignore index 73e11dfd97..7ca5965467 100644 --- a/.eslintignore +++ b/.eslintignore @@ -7,3 +7,4 @@ /public/ /tmp/ /vendor/ +/sitespeed-result/ diff --git a/.eslintrc.yml b/.eslintrc.yml index b1a65df946..b6abb574e1 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -107,3 +107,7 @@ overrides: import/no-nodejs-modules: off filenames/match-regex: off no-console: off + - files: + - '*.stories.js' + rules: + filenames/match-regex: off diff --git a/.gitignore b/.gitignore index 323741575d..d1d2bfde1a 100644 --- a/.gitignore +++ b/.gitignore @@ -45,7 +45,6 @@ eslint-report.html /config/redis.trace_chunks.yml /config/unicorn.rb /config/puma.rb -/config/puma_actioncable.rb /config/secrets.yml /config/sidekiq.yml /config/registry.key diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index 361d1124a7..c7da1c5beb 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -18,6 +18,7 @@ /doc/administration/monitoring/ @ngaskill /doc/administration/operations/ @axil @eread @marcia /doc/administration/packages/ @ngaskill +/doc/administration/pages/ @axil @kpaizee /doc/administration/postgresql/ @marcia /doc/administration/raketasks/ @axil @eread /doc/administration/redis/ @axil @@ -213,17 +214,20 @@ Dangerfile @gl-quality/eng-prod # Secure & Threat Management ownership delineation # https://about.gitlab.com/handbook/engineering/development/threat-management/delineate-secure-threat-management.html#technical-boundaries [Threat Insights] +/app/finders/security/ @gitlab-org/secure/threat-insights-backend-team /app/models/vulnerability.rb @gitlab-org/secure/threat-insights-backend-team /ee/app/finders/security/ @gitlab-org/secure/threat-insights-backend-team /ee/app/models/security/ @gitlab-org/secure/threat-insights-backend-team /ee/app/models/vulnerabilities/ @gitlab-org/secure/threat-insights-backend-team /ee/app/policies/vulnerabilities/ @gitlab-org/secure/threat-insights-backend-team /ee/app/policies/vulnerability*.rb @gitlab-org/secure/threat-insights-backend-team +/ee/app/presenters/projects/security/ @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 +/ee/spec/presenters/projects/security/ @gitlab-org/secure/threat-insights-backend-team [Secure] /ee/lib/gitlab/ci/parsers/license_compliance/ @gitlab-org/secure/composition-analysis-be @@ -232,6 +236,7 @@ Dangerfile @gl-quality/eng-prod /ee/lib/gitlab/ci/reports/dependency_list/ @gitlab-org/secure/composition-analysis-be /ee/lib/gitlab/ci/reports/license_scanning/ @gitlab-org/secure/composition-analysis-be /ee/lib/gitlab/ci/reports/security/ @gitlab-org/secure/composition-analysis-be @gitlab-org/secure/dynamic-analysis-be @gitlab-org/secure/static-analysis-be @gitlab-org/secure/fuzzing-be +/ee/app/services/ci/run_dast_scan_service.rb @gitlab-org/secure/dynamic-analysis-be [Container Security] /ee/app/views/projects/threat_monitoring/** @gitlab-org/protect/container-security-frontend diff --git a/.gitlab/ci/build-images.gitlab-ci.yml b/.gitlab/ci/build-images.gitlab-ci.yml index ed1f71e27b..853f92ed98 100644 --- a/.gitlab/ci/build-images.gitlab-ci.yml +++ b/.gitlab/ci/build-images.gitlab-ci.yml @@ -1,43 +1,48 @@ -# This image is used by the `review-qa-*` jobs. The image name is also passed to the downstream `omnibus-gitlab-mirror` pipeline -# triggered by `package-and-qa` so that it doesn't have to rebuild it a second time. The downstream `omnibus-gitlab-mirror` pipeline -# itself passes the image name to the `gitlab-qa-mirror` pipeline so that it can use it instead of inferring an end-to-end image -# from the GitLab image built by the downstream `omnibus-gitlab-mirror` pipeline. +.base-image-build: + extends: .use-kaniko + script: + # With .git/hooks/post-checkout in place, Git tries to pull LFS objects, but the image doesn't have Git LFS, and we actually don't care about it for this specific so we just remove the file. + # Without removing the file, the error is as follows: "This repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/post-checkout." + - rm -f .git/hooks/post-checkout + - if [ -n "$CI_MERGE_REQUEST_SOURCE_BRANCH_SHA" ]; then + echo "Checking out \$CI_MERGE_REQUEST_SOURCE_BRANCH_SHA ($CI_MERGE_REQUEST_SOURCE_BRANCH_SHA) instead of \$CI_COMMIT_SHA (merge result commit $CI_COMMIT_SHA) so that GitLab image built in omnibus-gitlab-mirror and QA image are in sync."; + git checkout -f ${CI_MERGE_REQUEST_SOURCE_BRANCH_SHA}; + else + echo "Building the image from \$CI_COMMIT_SHA ($CI_COMMIT_SHA) for this non-merge result pipeline."; + fi; + - echo "See https://docs.gitlab.com/ee/development/testing_guide/end_to_end/index.html#with-pipeline-for-merged-results for more details."; + retry: 2 + +# This image is used by: +# - The `review-qa-*` jobs +# - The downstream `omnibus-gitlab-mirror` pipeline triggered by `package-and-qa` so that it doesn't have to rebuild it again. +# The downstream `omnibus-gitlab-mirror` pipeline itself passes the image name to the `gitlab-qa-mirror` pipeline so that +# it can use it instead of inferring an end-to-end imag from the GitLab image built by the downstream `omnibus-gitlab-mirror` pipeline. # See https://docs.gitlab.com/ee/development/testing_guide/end_to_end/index.html#testing-code-in-merge-requests for more details. build-qa-image: extends: - - .use-kaniko + - .base-image-build - .build-images:rules:build-qa-image stage: build-images needs: [] variables: QA_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_REF_SLUG}" script: - # With .git/hooks/post-checkout in place, Git tries to pull LFS objects, but the image doesn't have Git LFS, and we actually don't care about it for this specific so we just remove the file. - # Without removing the file, the error is as follows: "This repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/post-checkout." - - rm .git/hooks/post-checkout - # Use $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA so that GitLab image built in omnibus-gitlab-mirror and QA image are in sync. - # This falls back to $CI_COMMIT_SHA (the default checked out commit) for the non-merged result pipelines. - # See https://docs.gitlab.com/ee/development/testing_guide/end_to_end/index.html#with-pipeline-for-merged-results. - - if [ -n "$CI_MERGE_REQUEST_SOURCE_BRANCH_SHA" ]; then - git checkout -f ${CI_MERGE_REQUEST_SOURCE_BRANCH_SHA}; - fi + - !reference [.base-image-build, script] - /kaniko/executor --context=${CI_PROJECT_DIR} --dockerfile=${CI_PROJECT_DIR}/qa/Dockerfile --destination=${QA_IMAGE} --cache=true - retry: 2 # This image is used by: # - The `CNG` pipelines (via the `review-build-cng` job): https://gitlab.com/gitlab-org/build/CNG/-/blob/cfc67136d711e1c8c409bf8e57427a644393da2f/.gitlab-ci.yml#L335 # - The `omnibus-gitlab` pipelines (via the `package-and-qa` job): https://gitlab.com/gitlab-org/omnibus-gitlab/-/blob/dfd1ad475868fc84e91ab7b5706aa03e46dc3a86/.gitlab-ci.yml#L130 build-assets-image: extends: - - .use-kaniko + - .base-image-build - .build-images:rules:build-assets-image stage: build-images needs: ["compile-production-assets"] - variables: - GIT_DEPTH: "1" script: + - !reference [.base-image-build, script] # TODO: Change the image tag to be the MD5 of assets files and skip image building if the image exists # We'll also need to pass GITLAB_ASSETS_TAG to the trigerred omnibus-gitlab pipeline similarly to how we do it for trigerred CNG pipelines # https://gitlab.com/gitlab-org/gitlab/issues/208389 - run_timed_command "scripts/build_assets_image" - retry: 2 diff --git a/.gitlab/ci/docs.gitlab-ci.yml b/.gitlab/ci/docs.gitlab-ci.yml index a4317c7241..60025c244f 100644 --- a/.gitlab/ci/docs.gitlab-ci.yml +++ b/.gitlab/ci/docs.gitlab-ci.yml @@ -53,7 +53,7 @@ docs-lint markdown: 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 + image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-html:alpine-3.13-ruby-2.7.2-d2b92621 stage: test needs: [] script: diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index 72e38dba0a..318ac20435 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -2,6 +2,10 @@ - source scripts/utils.sh - run_timed_command "retry yarn install --frozen-lockfile" +.storybook-yarn-install: &storybook-yarn-install + - source scripts/utils.sh + - run_timed_command "retry yarn run storybook:install --frozen-lockfile" + .compile-assets-base: extends: - .default-retry @@ -38,6 +42,15 @@ compile-production-assets: - public/assets/ - webpack-report/ when: always + before_script: + - if [ -n "$CI_MERGE_REQUEST_SOURCE_BRANCH_SHA" ]; then + echo "Checking out \$CI_MERGE_REQUEST_SOURCE_BRANCH_SHA ($CI_MERGE_REQUEST_SOURCE_BRANCH_SHA) instead of \$CI_COMMIT_SHA (merge result commit $CI_COMMIT_SHA) so that GitLab assets image tag actually reflect the commit for which assets were compiled."; + git checkout -f ${CI_MERGE_REQUEST_SOURCE_BRANCH_SHA}; + else + echo "Building the image from \$CI_COMMIT_SHA ($CI_COMMIT_SHA) for this non-merge result pipeline."; + fi; + - echo "See https://docs.gitlab.com/ee/development/testing_guide/end_to_end/index.html#with-pipeline-for-merged-results for more details."; + - !reference [.default-before_script, before_script] after_script: - rm -f /etc/apt/sources.list.d/google*.list # We don't need to update Chrome here @@ -83,6 +96,15 @@ update-yarn-cache: script: - *yarn-install +update-storybook-yarn-cache: + extends: + - .default-retry + - .storybook-yarn-cache-push + - .shared:rules:update-cache + stage: prepare + script: + - *storybook-yarn-install + .frontend-fixtures-base: extends: - .default-retry @@ -97,7 +119,7 @@ update-yarn-cache: - run_timed_command "gem install knapsack --no-document" - run_timed_command "scripts/gitaly-test-spawn" - source ./scripts/rspec_helpers.sh - - rspec_paralellized_job "--tag frontend_fixture" + - rspec_paralellized_job artifacts: name: frontend-fixtures expire_in: 31d @@ -351,3 +373,29 @@ startup-css-check as-if-foss: needs: - job: "compile-test-assets as-if-foss" - job: "rspec frontend_fixture as-if-foss" + +.compile-storybook-base: + extends: + - .frontend-test-base + - .storybook-yarn-cache + script: + - *yarn-install # storybook depends on the global webpack config, so we must install global deps. + - *storybook-yarn-install + - yarn run storybook:build + +compile-storybook: + extends: + - .compile-storybook-base + - .frontend:rules:default-frontend-jobs + artifacts: + name: storybook + expire_in: 31d + when: always + paths: + - storybook/public + +compile-storybook as-if-foss: + extends: + - .compile-storybook-base + - .as-if-foss + - .frontend:rules:default-frontend-jobs-as-if-foss diff --git a/.gitlab/ci/global.gitlab-ci.yml b/.gitlab/ci/global.gitlab-ci.yml index ba49ddfce9..860397b943 100644 --- a/.gitlab/ci/global.gitlab-ci.yml +++ b/.gitlab/ci/global.gitlab-ci.yml @@ -75,7 +75,7 @@ policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up. .assets-cache: &assets-cache - key: "assets-${NODE_ENV}-v1" + key: "assets-${NODE_ENV}-v2" paths: - assets-hash.txt - public/assets/webpack/ @@ -88,6 +88,16 @@ <<: *assets-cache policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up. +.storybook-node-modules-cache: &storybook-node-modules-cache + key: "storybook-node-modules-${NODE_ENV}-v1" + paths: + - storybook/node_modules/ + policy: pull + +.storybook-node-modules-cache-push: &storybook-node-modules-cache-push + <<: *storybook-node-modules-cache + policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up. + .rubocop-cache: &rubocop-cache key: "rubocop-v1" paths: @@ -181,6 +191,14 @@ - *node-modules-cache-push - *assets-cache-push +.storybook-yarn-cache: + cache: + - *storybook-node-modules-cache + +.storybook-yarn-cache-push: + cache: + - *storybook-node-modules-cache-push + .use-pg11: 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: @@ -199,6 +217,15 @@ variables: POSTGRES_HOST_AUTH_METHOD: trust +.use-pg13: + 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-13-graphicsmagick-1.3.36" + services: + - name: postgres:13 + command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] + - name: redis:5.0-alpine + variables: + POSTGRES_HOST_AUTH_METHOD: trust + .use-pg11-ee: 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: @@ -221,6 +248,17 @@ variables: POSTGRES_HOST_AUTH_METHOD: trust +.use-pg13-ee: + 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-13-graphicsmagick-1.3.36" + services: + - name: postgres:13 + command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] + - name: redis:5.0-alpine + - name: elasticsearch:7.11.1 + command: ["elasticsearch", "-E", "discovery.type=single-node"] + variables: + POSTGRES_HOST_AUTH_METHOD: trust + .use-kaniko: image: name: registry.gitlab.com/gitlab-org/gitlab-build-images:kaniko diff --git a/.gitlab/ci/pages.gitlab-ci.yml b/.gitlab/ci/pages.gitlab-ci.yml index b6d4b0ef11..e75b0db907 100644 --- a/.gitlab/ci/pages.gitlab-ci.yml +++ b/.gitlab/ci/pages.gitlab-ci.yml @@ -1,3 +1,7 @@ +.compress-public: &compress-public + - find public -type f -regex '.*\.\(htm\|html\|txt\|text\|js\|json\|css\|svg\|xml\)$' -exec gzip -f -k {} \; + - find public -type f -regex '.*\.\(htm\|html\|txt\|text\|js\|json\|css\|svg\|xml\)$' -exec brotli -f -k {} \; + pages: extends: - .default-retry @@ -8,14 +12,18 @@ pages: - coverage-frontend - karma - compile-production-assets + - compile-storybook + before_script: + - apt-get update && apt-get -y install brotli gzip script: - mv public/ .public/ - mkdir public/ - mv coverage/ public/coverage-ruby/ || true - mv coverage-frontend/ public/coverage-frontend/ || true - mv coverage-javascript/ public/coverage-javascript/ || true + - mv storybook/public public/storybook || true - cp .public/assets/application-*.css public/application.css || true - - cp .public/assets/application-*.css.gz public/application.css.gz || true + - *compress-public artifacts: paths: - public diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml index 65eb4d1282..179c00b479 100644 --- a/.gitlab/ci/rails.gitlab-ci.yml +++ b/.gitlab/ci/rails.gitlab-ci.yml @@ -47,7 +47,6 @@ - rspec_profiling/ - tmp/capybara/ - tmp/memory_test/ - - tmp/feature_flags/ - log/*.log reports: junit: junit_rspec.xml @@ -75,6 +74,11 @@ - .use-pg12 needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets as-if-foss", "detect-tests"] +.rspec-base-pg13: + extends: + - .rspec-base + - .use-pg13 + .rspec-ee-base-pg11: extends: - .rspec-base @@ -85,6 +89,11 @@ - .rspec-base - .use-pg12-ee +.rspec-ee-base-pg13: + extends: + - .rspec-base + - .use-pg13-ee + .rspec-ee-base-geo: extends: .rspec-base script: @@ -101,6 +110,11 @@ - .rspec-ee-base-geo - .use-pg12-ee +.rspec-ee-base-geo-pg13: + extends: + - .rspec-ee-base-geo + - .use-pg13-ee + .db-job-base: extends: - .rails-job-base @@ -114,7 +128,7 @@ ############################ # rspec job parallel configs .rspec-migration-parallel: - parallel: 7 + parallel: 9 .rspec-ee-migration-parallel: parallel: 3 @@ -123,7 +137,7 @@ parallel: 20 .rspec-ee-unit-parallel: - parallel: 10 + parallel: 12 .rspec-ee-unit-geo-parallel: parallel: 2 @@ -149,13 +163,16 @@ setup-test-env: - .rails-job-base - .setup-test-env-cache - .rails:rules:code-backstage-qa - - .use-pg12 stage: prepare variables: GITLAB_TEST_EAGER_LOAD: "0" + SETUP_DB: "false" script: - - run_timed_command "bundle exec ruby -I. -e 'require \"config/environment\"; TestEnv.init'" + - run_timed_command "scripts/setup-test-env" + - echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-build[collapsed=true]\r\e[0KCompiling Gitaly binaries" - run_timed_command "scripts/gitaly-test-build" # Do not use 'bundle exec' here + - echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-build\r\e[0K" + artifacts: expire_in: 7d paths: @@ -240,6 +257,11 @@ static-analysis: script: - run_timed_command "retry yarn install --frozen-lockfile" - scripts/static-analysis + artifacts: + expire_in: 31d + when: always + paths: + - tmp/feature_flags/ static-analysis as-if-foss: extends: @@ -247,6 +269,22 @@ static-analysis as-if-foss: - .static-analysis:rules:as-if-foss - .as-if-foss +zeitwerk-check: + extends: + - .rails-cache + - .default-before_script + - .rails:rules:ee-and-foss-unit + variables: + BUNDLE_WITHOUT: "" + SETUP_DB: "false" + needs: [] + stage: test + script: + - sed -i -e "s/config\.autoloader = :classic/config\.autoloader = :zeitwerk/" config/application.rb + - RAILS_ENV=test bundle exec rake zeitwerk:check + - RAILS_ENV=development bundle exec rake zeitwerk:check + - RAILS_ENV=production bundle exec rake zeitwerk:check + rspec migration pg12: extends: - .rspec-base-pg12 @@ -358,11 +396,10 @@ db:migrate-from-previous-major-version: - sed -i -e "s/gem 'mimemagic', '~> 0.3.2'/gem 'ruby-magic', '~> 0.4.0'/" Gemfile - run_timed_command "gem install bundler:1.17.3" - run_timed_command "bundle update google-protobuf nokogiri grpc mimemagic bootsnap" - - run_timed_command "bundle install ${BUNDLE_INSTALL_FLAGS}" - - cp config/gitlab.yml.example config/gitlab.yml + - SETUP_DB=false USE_BUNDLE_INSTALL=true bash scripts/prepare_build.sh - run_timed_command "bundle exec rake db:drop db:create db:structure:load db:migrate db:seed_fu" - git checkout -f $CI_COMMIT_SHA - - run_timed_command "bundle install ${BUNDLE_INSTALL_FLAGS}" + - SETUP_DB=false USE_BUNDLE_INSTALL=true bash scripts/prepare_build.sh - run_timed_command "bundle exec rake db:migrate" db:rollback: @@ -490,23 +527,7 @@ rspec:feature-flags: - .coverage-base - .rails:rules:rspec-feature-flags stage: post-test - # We cannot use needs since it would mean needing 84 jobs (since most are parallelized) - # so we use `dependencies` here. - dependencies: - - setup-test-env - - rspec migration pg12 - - rspec unit pg12 - - rspec integration pg12 - - rspec system pg12 - - rspec-ee migration pg12 - - rspec-ee unit pg12 - - rspec-ee integration pg12 - - rspec-ee system pg12 - - rspec-ee unit pg12 geo - - rspec-ee integration pg12 geo - - rspec-ee system pg12 geo - - memory-static - - memory-on-boot + needs: ["static-analysis"] script: - !reference [.minimal-bundle-install, script] - if [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then @@ -667,6 +688,8 @@ db:rollback geo: ########################################## # EE/FOSS: default branch nightly scheduled jobs # + +# PG11 rspec migration pg11: extends: - .rspec-base-pg11 @@ -691,11 +714,40 @@ rspec system pg11: - .rspec-base-pg11 - .rails:rules:default-branch-schedule-nightly--code-backstage - .rspec-system-parallel + +# PG13 +rspec migration pg13: + extends: + - .rspec-base-pg13 + - .rspec-base-migration + - .rails:rules:default-branch-schedule-nightly--code-backstage + - .rspec-migration-parallel + +rspec unit pg13: + extends: + - .rspec-base-pg13 + - .rails:rules:default-branch-schedule-nightly--code-backstage + - .rspec-unit-parallel + +rspec integration pg13: + extends: + - .rspec-base-pg13 + - .rails:rules:default-branch-schedule-nightly--code-backstage + - .rspec-integration-parallel + +rspec system pg13: + extends: + - .rspec-base-pg13 + - .rails:rules:default-branch-schedule-nightly--code-backstage + - .rspec-system-parallel + # EE/FOSS: default branch nightly scheduled jobs # ########################################## ##################################### # EE: default branch nightly scheduled jobs # + +# PG11 rspec-ee migration pg11: extends: - .rspec-ee-base-pg11 @@ -736,6 +788,48 @@ rspec-ee system pg11 geo: extends: - .rspec-ee-base-geo-pg11 - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + +# PG13 +rspec-ee migration pg13: + extends: + - .rspec-ee-base-pg13 + - .rspec-base-migration + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + - .rspec-ee-migration-parallel + +rspec-ee unit pg13: + extends: + - .rspec-ee-base-pg13 + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + - .rspec-ee-unit-parallel + +rspec-ee integration pg13: + extends: + - .rspec-ee-base-pg13 + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + - .rspec-ee-integration-parallel + +rspec-ee system pg13: + extends: + - .rspec-ee-base-pg13 + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + - .rspec-ee-system-parallel + +rspec-ee unit pg13 geo: + extends: + - .rspec-ee-base-geo-pg13 + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + - .rspec-ee-unit-geo-parallel + +rspec-ee integration pg13 geo: + extends: + - .rspec-ee-base-geo-pg13 + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + +rspec-ee system pg13 geo: + extends: + - .rspec-ee-base-geo-pg13 + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only # EE: default branch nightly scheduled jobs # ##################################### diff --git a/.gitlab/ci/reports.gitlab-ci.yml b/.gitlab/ci/reports.gitlab-ci.yml index 4cc03fdb1a..690a971927 100644 --- a/.gitlab/ci/reports.gitlab-ci.yml +++ b/.gitlab/ci/reports.gitlab-ci.yml @@ -74,33 +74,35 @@ gemnasium-dependency_scanning: - apk add jq # Lower execa severity based on https://gitlab.com/gitlab-org/gitlab/-/issues/223859#note_452922390 - jq '(.vulnerabilities[] | select (.cve == "yarn.lock:execa:gemnasium:05cfa2e8-2d0c-42c1-8894-638e2f12ff3d")).severity = "Medium"' gl-dependency-scanning-report.json > temp.json && mv temp.json gl-dependency-scanning-report.json - rules: !reference [".reports:rules:dependency_scanning", rules] + rules: !reference [".reports:rules:gemnasium-dependency_scanning", rules] bundler-audit-dependency_scanning: - rules: !reference [".reports:rules:dependency_scanning", rules] + rules: !reference [".reports:rules:bundler-audit-dependency_scanning", rules] retire-js-dependency_scanning: - rules: !reference [".reports:rules:dependency_scanning", rules] + rules: !reference [".reports:rules:retire-js-dependency_scanning", rules] gemnasium-python-dependency_scanning: - rules: !reference [".reports:rules:dependency_scanning", rules] + rules: !reference [".reports:rules:gemnasium-python-dependency_scanning", rules] # Analyze dependencies for malicious behavior # See https://gitlab.com/gitlab-com/gl-security/security-research/package-hunter -package_hunter: +.package_hunter-base: extends: - .default-retry - - .reports:rules:package_hunter stage: test image: - name: registry.gitlab.com/gitlab-com/gl-security/security-research/package-hunter-cli:latest + name: registry.gitlab.com/gitlab-com/gl-security/security-research/package-hunter-cli:1.1.0 entrypoint: [""] + variables: + DEBUG: '*' + HTR_user: '$PACKAGE_HUNTER_USER' + HTR_pass: '$PACKAGE_HUNTER_PASS' needs: [] allow_failure: true - script: + before_script: - rm -r spec locale .git app/assets/images doc/ - cd .. && tar -I "gzip --best" -cf gitlab.tgz gitlab/ - - DEBUG=* HTR_user=$PACKAGE_HUNTER_USER HTR_pass=$PACKAGE_HUNTER_PASS node /usr/src/app/cli.js analyze --format gitlab gitlab.tgz | tee $CI_PROJECT_DIR/gl-dependency-scanning-report.json artifacts: paths: - gl-dependency-scanning-report.json @@ -108,6 +110,20 @@ package_hunter: dependency_scanning: gl-dependency-scanning-report.json expire_in: 1 week +package_hunter-yarn: + extends: + - .package_hunter-base + - .reports:rules:package_hunter-yarn + script: + - node /usr/src/app/cli.js analyze --format gitlab --manager yarn gitlab.tgz | tee $CI_PROJECT_DIR/gl-dependency-scanning-report.json + +package_hunter-bundler: + extends: + - .package_hunter-base + - .reports:rules:package_hunter-bundler + script: + - node /usr/src/app/cli.js analyze --format gitlab --manager bundler gitlab.tgz | tee $CI_PROJECT_DIR/gl-dependency-scanning-report.json + license_scanning: extends: .default-retry needs: [] diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml index cabeb0cc1a..38d59af5ae 100644 --- a/.gitlab/ci/review.gitlab-ci.yml +++ b/.gitlab/ci/review.gitlab-ci.yml @@ -2,7 +2,7 @@ review-cleanup: extends: - .default-retry - .review:rules:review-cleanup - 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 stage: prepare environment: name: review/auto-cleanup @@ -25,7 +25,7 @@ review-build-cng: extends: - .default-retry - .review:rules:review-build-cng - image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine + image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine3.13 stage: review-prepare before_script: - source ./scripts/utils.sh @@ -54,7 +54,6 @@ 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}" @@ -66,8 +65,6 @@ review-deploy: - *base-before_script script: - check_kube_domain - - "ensure_namespace ${KUBE_NAMESPACE}" - - install_external_dns - download_chart - date - deploy || (display_deployment_debug && exit 1) @@ -97,13 +94,13 @@ review-deploy: before_script: - *base-before_script -review-stop-failed-deployment: +review-delete-deployment: extends: - .review-stop-base - - .review:rules:review-stop-failed-deployment + - .review:rules:review-delete-deployment stage: prepare script: - - delete_failed_release + - delete_release review-stop: extends: @@ -111,18 +108,19 @@ review-stop: - .review:rules:review-stop stage: post-qa script: - - delete_release + - delete_k8s_release_namespace .review-qa-base: extends: - .use-docker-in-docker - image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-qa-alpine-ruby-2.7 + image: + name: ${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_REF_SLUG} + entrypoint: [""] stage: qa - needs: ["review-deploy"] + needs: ["build-qa-image", "review-deploy"] variables: - QA_ARTIFACTS_DIR: "${CI_PROJECT_DIR}/qa" - QA_CAN_TEST_GIT_PROTOCOL_V2: "false" QA_DEBUG: "true" + QA_CAN_TEST_GIT_PROTOCOL_V2: "false" QA_GENERATE_ALLURE_REPORT: "true" GITLAB_USERNAME: "root" GITLAB_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}" @@ -132,21 +130,22 @@ review-stop: EE_LICENSE: "${REVIEW_APPS_EE_LICENSE}" SIGNUP_DISABLED: "true" before_script: - - export QA_IMAGE="${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_REF_SLUG}" + # Use $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA so that GitLab image built in omnibus-gitlab-mirror and QA image are in sync. + - if [ -n "$CI_MERGE_REQUEST_SOURCE_BRANCH_SHA" ]; then + git checkout -f ${CI_MERGE_REQUEST_SOURCE_BRANCH_SHA}; + fi - export CI_ENVIRONMENT_URL="$(cat environment_url.txt)" - echo "${CI_ENVIRONMENT_URL}" - - echo "${QA_IMAGE}" - - *base-before_script - - gem install gitlab-qa --no-document ${GITLAB_QA_VERSION:+ --version ${GITLAB_QA_VERSION}} + - cd qa artifacts: paths: - - ./qa/gitlab-qa-run-* + - qa/tmp expire_in: 7 days when: always .allure-report-base: image: - name: ${GITLAB_DEPENDENCY_PROXY}andrcuns/allure-report-publisher:0.3.2 + name: ${GITLAB_DEPENDENCY_PROXY}andrcuns/allure-report-publisher:0.3.4 entrypoint: [""] stage: post-qa variables: @@ -157,7 +156,7 @@ review-stop: script: - | allure-report-publisher upload gcs \ - --results-glob="qa/gitlab-qa-run-*/**/allure-results/*" \ + --results-glob="qa/tmp/allure-results/*" \ --bucket="gitlab-qa-allure-reports" \ --prefix="$ALLURE_REPORT_PATH_PREFIX/$CI_COMMIT_REF_SLUG" \ --update-pr="comment" \ @@ -171,7 +170,7 @@ review-qa-smoke: - .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}" + - bin/test Test::Instance::Smoke "${CI_ENVIRONMENT_URL}" review-qa-all: extends: @@ -181,7 +180,14 @@ review-qa-all: script: - export KNAPSACK_REPORT_PATH=knapsack/master_report.json - export KNAPSACK_TEST_FILE_PATTERN=qa/specs/features/**/*_spec.rb - - gitlab-qa Test::Instance::Any "${QA_IMAGE}" "${CI_ENVIRONMENT_URL}" -- --format RspecJunitFormatter --out tmp/rspec-${CI_JOB_ID}.xml --format html --out tmp/rspec.htm --color --format documentation + - | + bin/test Test::Instance::All "${CI_ENVIRONMENT_URL}" \ + -- \ + --color --format documentation \ + --format RspecJunitFormatter --out tmp/rspec.xml + artifacts: + reports: + junit: qa/tmp/rspec.xml review-performance: extends: @@ -209,32 +215,6 @@ review-performance: performance: performance.json expire_in: 31d -parallel-spec-reports: - extends: - - .review:rules:review-qa-all - image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine - stage: post-qa - needs: ["review-qa-all"] - variables: - NEW_PARALLEL_SPECS_REPORT: qa/report-new.html - BASE_ARTIFACT_URL: "${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/file/qa/" - script: - - apk add --update build-base libxml2-dev libxslt-dev && rm -rf /var/cache/apk/* - - gem install nokogiri --no-document - - cd qa/gitlab-qa-run-*/gitlab-* - - ARTIFACT_DIRS=$(pwd |rev| awk -F / '{print $1,$2}' | rev | sed s_\ _/_) - - cd - - - '[[ -f $NEW_PARALLEL_SPECS_REPORT ]] || echo "{}" > ${NEW_PARALLEL_SPECS_REPORT}' - - scripts/merge-html-reports ${NEW_PARALLEL_SPECS_REPORT} ${BASE_ARTIFACT_URL}${ARTIFACT_DIRS} qa/gitlab-qa-run-*/**/rspec.htm - artifacts: - when: always - paths: - - qa/report-new.html - - qa/gitlab-qa-run-* - reports: - junit: qa/gitlab-qa-run-*/**/rspec-*.xml - expire_in: 31d - allure-report-qa-smoke: extends: - .allure-report-base @@ -267,10 +247,14 @@ danger-review: script: - > if [ -z "$DANGER_GITLAB_API_TOKEN" ]; then - # Force danger to skip CI source GitLab and fallback to "local only git repo". - unset GITLAB_CI - # We need to base SHA to help danger determine the base commit for this shallow clone. - run_timed_command "bundle exec danger dry_run --fail-on-errors=true --verbose --base='$CI_MERGE_REQUEST_DIFF_BASE_SHA'" + run_timed_command danger_as_local else run_timed_command "bundle exec danger --fail-on-errors=true --verbose" fi + +danger-review-local: + extends: + - danger-review + - .review:rules:danger-local + script: + - run_timed_command danger_as_local diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 8dd97c1fe6..c97ef4fc86 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -131,6 +131,30 @@ - ".markdownlint.yml" - "scripts/lint-doc.sh" +.bundler-patterns: &bundler-patterns + - '{Gemfile.lock,*/Gemfile.lock,*/*/Gemfile.lock}' + +.nodejs-patterns: &nodejs-patterns + - '{package.json,*/package.json,*/*/package.json}' + +.python-patterns: &python-patterns + - '{requirements.txt,*/requirements.txt,*/*/requirements.txt}' + - '{requirements.pip,*/requirements.pip,*/*/requirements.pip}' + - '{Pipfile,*/Pipfile,*/*/Pipfile}' + - '{requires.txt,*/requires.txt,*/*/requires.txt}' + - '{setup.py,*/setup.py,*/*/setup.py}' + +.dependency-patterns: &dependency-patterns + - '{Gemfile.lock,*/Gemfile.lock,*/*/Gemfile.lock}' + - '{composer.lock,*/composer.lock,*/*/composer.lock}' + - '{gems.locked,*/gems.locked,*/*/gems.locked}' + - '{go.sum,*/go.sum,*/*/go.sum}' + - '{npm-shrinkwrap.json,*/npm-shrinkwrap.json,*/*/npm-shrinkwrap.json}' + - '{package-lock.json,*/package-lock.json,*/*/package-lock.json}' + - '{yarn.lock,*/yarn.lock,*/*/yarn.lock}' + - '{packages.lock.json,*/packages.lock.json,*/*/packages.lock.json}' + - '{conan.lock,*/conan.lock,*/*/conan.lock}' + .frontend-dependency-patterns: &frontend-dependency-patterns - "{package.json,yarn.lock}" - "config/webpack.config.js" @@ -138,6 +162,7 @@ .frontend-build-patterns: &frontend-build-patterns - "{package.json,yarn.lock}" + - ".browserslistrc" - "babel.config.js" - "config/webpack.config.js" - "config/**/*.js" @@ -146,6 +171,7 @@ .frontend-patterns: &frontend-patterns - "{package.json,yarn.lock}" + - ".browserslistrc" - "babel.config.js" - "jest.config.{base,integration,unit}.js" - ".csscomb.json" @@ -163,7 +189,7 @@ - "config.ru" # List explicitly all the app/ dirs that are backend (i.e. all except app/assets). - "{,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/}{bin,cable,config,db,generator_templates,lib}/**/*" - "{,ee/,jh/}spec/**/*.rb" # CI changes - ".gitlab-ci.yml" @@ -198,6 +224,7 @@ .code-patterns: &code-patterns - "{package.json,yarn.lock}" + - ".browserslistrc" - "babel.config.js" - "jest.config.{base,integration,unit}.js" - ".csscomb.json" @@ -213,7 +240,7 @@ - "Rakefile" - "tests.yml" - "config.ru" - - "{,ee/,jh/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" + - "{,ee/,jh/}{app,bin,config,db,generator_templates,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" - "doc/api/graphql/reference/*" # Files in this folder are auto-generated - "data/whats_new/*.yml" @@ -223,6 +250,7 @@ .code-backstage-patterns: &code-backstage-patterns - "{package.json,yarn.lock}" + - ".browserslistrc" - "babel.config.js" - "jest.config.{base,integration,unit}.js" - ".csscomb.json" @@ -238,7 +266,7 @@ - "Rakefile" - "tests.yml" - "config.ru" - - "{,ee/,jh/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" + - "{,ee/,jh/}{app,bin,config,db,generator_templates,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 @@ -251,6 +279,7 @@ .code-qa-patterns: &code-qa-patterns - "{package.json,yarn.lock}" + - ".browserslistrc" - "babel.config.js" - "jest.config.{base,integration,unit}.js" - ".csscomb.json" @@ -266,7 +295,7 @@ - "Rakefile" - "tests.yml" - "config.ru" - - "{,ee/,jh/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" + - "{,ee/,jh/}{app,bin,config,db,generator_templates,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 @@ -275,6 +304,7 @@ .code-backstage-qa-patterns: &code-backstage-qa-patterns - "{package.json,yarn.lock}" + - ".browserslistrc" - "babel.config.js" - "jest.config.{base,integration,unit}.js" - ".csscomb.json" @@ -290,7 +320,7 @@ - "Rakefile" - "tests.yml" - "config.ru" - - "{,ee/,jh/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*" + - "{,ee/,jh/}{app,bin,config,db,generator_templates,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 @@ -304,6 +334,12 @@ - ".dockerignore" - "qa/**/*" +.code-backstage-danger-patterns: &code-backstage-danger-patterns + # Backstage changes + - "Dangerfile" + - "danger/**/*" + - "tooling/danger/**/*" + ################ # Shared rules # ################ @@ -932,14 +968,6 @@ - <<: *if-merge-request-title-run-all-rspec when: always -.rails:rules:rspec-feature-flags: - rules: - - <<: *if-not-ee - when: never - - <<: *if-default-branch-schedule-2-hourly - allow_failure: true - - <<: *if-merge-request-title-run-all-rspec - .rails:rules:default-branch-schedule-nightly--code-backstage: rules: - <<: *if-default-branch-schedule-nightly @@ -954,6 +982,12 @@ - <<: *if-merge-request changes: [".gitlab/ci/rails.gitlab-ci.yml"] +.rails:rules:rspec-feature-flags: + rules: + - <<: *if-not-ee + when: never + - changes: *code-backstage-patterns + ######################### # Static analysis rules # ######################### @@ -1005,7 +1039,6 @@ rules: - if: '$CODE_QUALITY_DISABLED' when: never - # - <<: *if-default-branch-refs # To be done in a later iteration: https://gitlab.com/gitlab-org/gitlab/issues/31160#note_278188255 - <<: *if-default-refs changes: *code-backstage-patterns allow_failure: true @@ -1014,7 +1047,6 @@ rules: - if: '$SAST_DISABLED || $GITLAB_FEATURES !~ /\bsast\b/' when: never - # - <<: *if-default-branch-refs # To be done in a later iteration: https://gitlab.com/gitlab-org/gitlab/issues/31160#note_278188255 - <<: *if-default-refs changes: *code-backstage-qa-patterns allow_failure: true @@ -1025,17 +1057,39 @@ when: never - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' # The Secret-Detection template already has a `secret_detection_default_branch` job when: never - # - <<: *if-default-branch-refs # To be done in a later iteration: https://gitlab.com/gitlab-org/gitlab/issues/31160#note_278188255 - changes: *code-backstage-qa-patterns allow_failure: true -.reports:rules:dependency_scanning: +.reports:rules:gemnasium-dependency_scanning: rules: - - if: '$DEPENDENCY_SCANNING_DISABLED || $GITLAB_FEATURES !~ /\bdependency_scanning\b/' + - if: '$DEPENDENCY_SCANNING_DISABLED || $GITLAB_FEATURES !~ /\bdependency_scanning\b/ || $DS_EXCLUDED_ANALYZERS =~ /gemnasium([^-]|$)/' when: never - # - <<: *if-default-branch-refs # To be done in a later iteration: https://gitlab.com/gitlab-org/gitlab/issues/31160#note_278188255 - <<: *if-default-refs - changes: *code-backstage-qa-patterns + changes: *dependency-patterns + allow_failure: true + +.reports:rules:bundler-audit-dependency_scanning: + rules: + - if: '$DEPENDENCY_SCANNING_DISABLED || $GITLAB_FEATURES !~ /\bdependency_scanning\b/ || $DS_EXCLUDED_ANALYZERS =~ /bundler-audit/' + when: never + - <<: *if-default-refs + changes: *bundler-patterns + allow_failure: true + +.reports:rules:retire-js-dependency_scanning: + rules: + - if: '$DEPENDENCY_SCANNING_DISABLED || $GITLAB_FEATURES !~ /\bdependency_scanning\b/ || $DS_EXCLUDED_ANALYZERS =~ /retire.js/' + when: never + - <<: *if-default-refs + changes: *nodejs-patterns + allow_failure: true + +.reports:rules:gemnasium-python-dependency_scanning: + rules: + - if: '$DEPENDENCY_SCANNING_DISABLED || $GITLAB_FEATURES !~ /\bdependency_scanning\b/ || $DS_EXCLUDED_ANALYZERS =~ /gemnasium-python/' + when: never + - <<: *if-default-refs + changes: *python-patterns allow_failure: true .reports:rules:dast: @@ -1057,12 +1111,22 @@ - <<: *if-default-branch-schedule-nightly allow_failure: true -.reports:rules:package_hunter: +.reports:rules:package_hunter-yarn: rules: + - if: "$PACKAGE_HUNTER_USER == null || $PACKAGE_HUNTER_USER == ''" + when: never - <<: *if-default-branch-schedule-2-hourly - <<: *if-merge-request changes: ["yarn.lock"] +.reports:rules:package_hunter-bundler: + rules: + - if: "$PACKAGE_HUNTER_USER == null || $PACKAGE_HUNTER_USER == ''" + when: never + - <<: *if-default-branch-schedule-2-hourly + - <<: *if-merge-request + changes: ["Gemfile.lock"] + .reports:rules:license_scanning: rules: - if: '$LICENSE_SCANNING_DISABLED || $GITLAB_FEATURES !~ /\blicense_scanning\b/' @@ -1126,7 +1190,7 @@ - <<: *if-dot-com-gitlab-org-schedule allow_failure: true -.review:rules:review-stop-failed-deployment: +.review:rules:review-delete-deployment: rules: - <<: *if-not-ee when: never @@ -1146,19 +1210,31 @@ changes: *code-qa-patterns allow_failure: true +# The rule needs to be duplicated between `on_success` and `on_failure` +# because the jobs `needs` the previous job to complete. +# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63844#note_599012559 .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 + when: on_success + - <<: *if-dot-com-gitlab-org-merge-request + changes: *ci-review-patterns + when: on_failure - <<: *if-dot-com-gitlab-org-merge-request changes: *frontend-patterns - when: always + when: on_success + - <<: *if-dot-com-gitlab-org-merge-request + changes: *frontend-patterns + when: on_failure - <<: *if-dot-com-gitlab-org-merge-request changes: *code-qa-patterns - when: always + when: on_success + - <<: *if-dot-com-gitlab-org-merge-request + changes: *code-qa-patterns + when: on_failure .review:rules:review-qa-all: rules: @@ -1172,6 +1248,9 @@ changes: *qa-patterns allow_failure: true +# The rule needs to be duplicated between `on_success` and `on_failure` +# because the jobs `needs` the previous job to complete. +# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63844#note_599012559 .review:rules:review-qa-all-report: rules: - <<: *if-not-ee @@ -1183,7 +1262,11 @@ - <<: *if-dot-com-gitlab-org-merge-request changes: *qa-patterns allow_failure: true - when: always + when: on_success + - <<: *if-dot-com-gitlab-org-merge-request + changes: *qa-patterns + allow_failure: true + when: on_failure .review:rules:review-cleanup: rules: @@ -1211,6 +1294,11 @@ rules: - if: '$CI_MERGE_REQUEST_IID' +.review:rules:danger-local: + rules: + - if: '$CI_MERGE_REQUEST_IID' + changes: *code-backstage-danger-patterns + ############### # Setup rules # ############### diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml index 27b68115ed..f2d5d872d6 100644 --- a/.gitlab/ci/setup.gitlab-ci.yml +++ b/.gitlab/ci/setup.gitlab-ci.yml @@ -52,7 +52,7 @@ no_ee_check: verify-tests-yml: extends: - .setup:rules:verify-tests-yml - image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine + image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine3.13 stage: test needs: [] script: diff --git a/.gitlab/issue_templates/Deprecations.md b/.gitlab/issue_templates/Deprecations.md new file mode 100644 index 0000000000..ff51699c6b --- /dev/null +++ b/.gitlab/issue_templates/Deprecations.md @@ -0,0 +1,50 @@ + + +### Deprecation Summary + + + +### Breaking Change + + +### Affected Topology + + + +### Affected Tier + + + +### Checklist + +- [ ] @mention your stage's stable counterparts on this issue. For example, Customer Support, Customer Success (Technical Account Manager), Product Marketing Manager. + - To see who the stable counterparts are for a product team visit [product categories](https://about.gitlab.com/handbook/product/categories/) + - If there is no stable counterpart listed for Sales/CS please mention `@timtams` + - If there is no stable counterpart listed for Support please @mention `@gitlab-com/support/managers` + - If there is no stable counterpart listed for Marketing please mention `@williamchia` + +- [ ] @mention your GPM so that they are aware of planned deprecations. The goal is to have reviews happen at least two releases before the final removal of the feature or introduction of a breaking change. + +### Deprecation Milestone + + + +### Links + + diff --git a/.gitlab/issue_templates/Design Sprint.md b/.gitlab/issue_templates/Design Sprint.md index 787c4469b8..06ef7dc9ab 100644 --- a/.gitlab/issue_templates/Design Sprint.md +++ b/.gitlab/issue_templates/Design Sprint.md @@ -98,6 +98,7 @@ If you enjoy taking notes using post-it notes make sure you have available some - [ ] Finalise participant list - `decider` and `facilitator` - [ ] Create [participation form](https://docs.google.com/forms/d/e/1FAIpQLSc0_BNltvRW8yXXaJd8sIKzgDmrSGqILMfkoCJrAj6sFcsMcg/viewform?usp=sf_link) and send to participants (**deadline**: [date]) - `facilitator` +- [ ] Create a dedicated Slack channel and add participants - `facilitator` - [ ] Promote this issue to an epic - `facilitator` - [ ] Create issues under the epic for the pre-workshop tasks: Expert interviews ([example](https://gitlab.com/groups/gitlab-org/configure/-/epics/3#note_332412524)), Lightning walkthroughs and How might we.. notetaking assignment ([example](https://gitlab.com/gitlab-org/configure/general/-/issues/52)), Voting How might we... notes assignment ([example](https://gitlab.com/gitlab-org/configure/general/-/issues/54)) - `facilitator` - [ ] Create sync meetings in calendar and invite all participants (**deadline**: [date]) - `decider` or `facilitator` diff --git a/.gitlab/issue_templates/Feature Flag Roll Out.md b/.gitlab/issue_templates/Feature Flag Roll Out.md index 424b752d1b..ec6e5dfd7d 100644 --- a/.gitlab/issue_templates/Feature Flag Roll Out.md +++ b/.gitlab/issue_templates/Feature Flag Roll Out.md @@ -78,6 +78,7 @@ Are there any other stages or teams involved that need to be kept in the loop? If a different developer will be covering, or an exception is needed, please inform the oncall SRE by using the `@sre-oncall` Slack alias. - [ ] Ensure that documentation has been updated ([More info](https://docs.gitlab.com/ee/development/documentation/feature_flags.html#features-that-became-enabled-by-default)). - [ ] Announce on [the feature issue](ISSUE LINK) an estimated time this will be enabled on GitLab.com. +- [ ] If the feature might impact the user experience, notify `#support_gitlab-com` and your team channel ([more guidance when this is necessary in the dev docs](https://docs.gitlab.com/ee/development/feature_flags/controls.html#communicate-the-change)). - [ ] If the feature flag in code has [an actor](https://docs.gitlab.com/ee/development/feature_flags/#feature-actors), enable it on GitLab.com for [testing groups/projects](#testing-groupsprojectsusers). - [ ] `/chatops run feature set --= true` - [ ] Verify that the feature works as expected. Posting the QA result in this issue is preferable. @@ -92,8 +93,6 @@ Are there any other stages or teams involved that need to be kept in the loop? - Enable the feature globally on production environment. - [ ] `/chatops run feature set true` - [ ] Announce on [the feature issue](ISSUE LINK) that the feature has been globally enabled. -- [ ] Cross-post chatops slack command to `#support_gitlab-com`. - ([more guidance when this is necessary in the dev docs](https://docs.gitlab.com/ee/development/feature_flags/controls.html#communicate-the-change)) and in your team channel - [ ] Wait for [at least one day for the verification term](https://about.gitlab.com/handbook/product-development-flow/feature-flag-lifecycle/#including-a-feature-behind-feature-flag-in-the-final-release). ### (Optional) Release the feature with the feature flag @@ -105,10 +104,10 @@ To do so, follow these steps: - [ ] Create a merge request with the following changes. Ask for review and merge it. - [ ] Set the `default_enabled` attribute in [the feature flag definition](https://docs.gitlab.com/ee/development/feature_flags/#feature-flag-definition-and-validation) to `true`. - [ ] Create [a changelog entry](https://docs.gitlab.com/ee/development/feature_flags/#changelog). -- [ ] Ensure that the above MR has been deployed to both production and canary. +- [ ] Ensure that the default-enabling MR has been deployed to both production and canary. If the merge request was deployed before [the code cutoff](https://about.gitlab.com/handbook/engineering/releases/#self-managed-releases-1), the feature can be officially announced in a release blog post. - - [ ] `/chatops run auto_deploy status ` + - [ ] `/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). @@ -136,10 +135,10 @@ codebase. - [ ] Remove all references to the feature flag from the codebase. - [ ] Remove the YAML definitions for the feature from the repository. - [ ] Create [a changelog entry](https://docs.gitlab.com/ee/development/feature_flags/#changelog). -- [ ] Ensure that the above MR has been deployed to both production and canary. +- [ ] Ensure that the cleanup MR has been deployed to both production and canary. If the merge request was deployed before [the code cutoff](https://about.gitlab.com/handbook/engineering/releases/#self-managed-releases-1), the feature can be officially announced in a release blog post. - - [ ] `/chatops run auto_deploy status ` + - [ ] `/chatops run auto_deploy status ` - [ ] Close [the feature issue](ISSUE LINK) to indicate the feature will be released in the current milestone. - [ ] Clean up the feature flag from all environments by running these chatops command in `#production` channel: - [ ] `/chatops run feature delete --dev` diff --git a/.gitlab/issue_templates/Feature Proposal - basic.md b/.gitlab/issue_templates/Feature Proposal - basic.md index 099243c05c..0c05b7a016 100644 --- a/.gitlab/issue_templates/Feature Proposal - basic.md +++ b/.gitlab/issue_templates/Feature Proposal - basic.md @@ -5,7 +5,6 @@ + +/label ~feature::addition ~"group::" ~"section::" ~"Category:" ~"GitLab Core"/~"GitLab Premium"/~"GitLab Ultimate" 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 be6fef40f3..560b172234 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 @@ -1,6 +1,6 @@ -## Author's checklist (required) +## Author's checklist - [ ] Follow the [Documentation Guidelines](https://docs.gitlab.com/ee/development/documentation/) and [Style Guide](https://docs.gitlab.com/ee/development/documentation/styleguide/). -- If you have **Developer** permissions or higher: - - [ ] Ensure that the [product tier badge](https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges) is added to doc's `h1`. - - [ ] Apply the ~documentation label, plus: - - The corresponding DevOps stage and group labels, if applicable. - - ~"development guidelines" when changing docs under `doc/development/*`, `CONTRIBUTING.md`, or `README.md`. - - ~"development guidelines" and ~"Documentation guidelines" when changing docs under `development/documentation/*`. - - ~"development guidelines" and ~"Description templates (.gitlab/\*)" when creating/updating issue and MR description templates. - - [ ] [Request a review](https://docs.gitlab.com/ee/development/code_review.html#dogfooding-the-reviewers-feature) - from the [designated Technical Writer](https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments). +- [ ] Ensure that the [product tier badge](https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges) is added to doc's `h1`. +- [ ] [Request a review](https://docs.gitlab.com/ee/development/code_review.html#dogfooding-the-reviewers-feature) based on the documentation page's metadata and [associated Technical Writer](https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments). -/label ~documentation -/assign me - -Do not add the ~"feature", ~"frontend", ~"backend", ~"bug", or ~"database" labels if you are only updating documentation. These labels will cause the MR to be added to code verification QA issues. - -When applicable: - -- [ ] Update the [permissions table](https://docs.gitlab.com/ee/user/permissions.html). -- [ ] Link docs to and from the higher-level index page, plus other related docs where helpful. -- [ ] Add the [product tier badge](https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges) accordingly. -- [ ] Add [GitLab's version history note(s)](https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#gitlab-versions). -- [ ] Add/update the [feature flag section](https://docs.gitlab.com/ee/development/documentation/feature_flags.html). +To avoid having this MR be added to code verification QA issues, don't add these labels: ~"feature", ~"frontend", ~"backend", ~"bug", or ~"database" ## Review checklist -All reviewers can help ensure accuracy, clarity, completeness, and adherence to the [Documentation Guidelines](https://docs.gitlab.com/ee/development/documentation/) and [Style Guide](https://docs.gitlab.com/ee/development/documentation/styleguide/). +Documentation-related MRs should be reviewed by a Technical Writer for a non-blocking review, based on [Documentation Guidelines](https://docs.gitlab.com/ee/development/documentation/) and the [Style Guide](https://docs.gitlab.com/ee/development/documentation/styleguide/). -**1. Primary Reviewer** +- [ ] If the content requires it, ensure the information is reviewed by a subject matter expert. +- Technical writer review items: + - [ ] Ensure docs metadata is present and up-to-date. + - [ ] Ensure the appropriate [labels](https://about.gitlab.com/handbook/engineering/ux/technical-writing/workflow/#labels) are added to this MR. + - If relevant to this MR, ensure [content topic type](https://docs.gitlab.com/ee/development/documentation/structure.html) principles are in use, including: + - [ ] The headings should be something you'd do a Google search for. Instead of `Default behavior`, say something like `Default behavior when you close an issue`. + - [ ] The headings (other than the page title) should be active. Instead of `Configuring GDK`, say something like `Configure GDK`. + - [ ] Any task steps should be written as a numbered list. + - If the content still needs to be edited for topic types, you can create a follow-up issue with the ~"docs-technical-debt" label. +- [ ] Review by assigned maintainer, who can always request/require the above reviews. Maintainer's review can occur before or after a technical writer review. +- [ ] Ensure a release milestone is set. -* [ ] Review by a code reviewer or other selected colleague to confirm accuracy, clarity, and completeness. This can be skipped for minor fixes without substantive content changes. - -**2. Technical Writer** - -- [ ] 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?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. - -For more information about labels, see [Technical Writing workflows - Labels](https://about.gitlab.com/handbook/engineering/ux/technical-writing/workflow/#labels). - -For suggestions that you are confident don't need to be reviewed, change them locally -and push a commit directly to save others from unneeded reviews. For example: - -- Clear typos, like `this is a typpo`. -- Minor issues, like single quotes instead of double quotes, Oxford commas, and periods. - -For more information, see our documentation on [Merging a merge request](https://docs.gitlab.com/ee/development/code_review.html#merging-a-merge-request). - -**3. Maintainer** - -1. [ ] Review by assigned maintainer, who can always request/require the above reviews. Maintainer's review can occur before or after a technical writer review. -1. [ ] Ensure a release milestone is set. -1. [ ] If there has not been a technical writer review, [create an issue for one using the Doc Review template](https://gitlab.com/gitlab-org/gitlab/issues/new?issuable_template=Doc%20Review). +/label ~documentation +/assign me diff --git a/.gitlab/merge_request_templates/Quarantine End to End Test.md b/.gitlab/merge_request_templates/Quarantine End to End Test.md index 5794a62df9..772167af3e 100644 --- a/.gitlab/merge_request_templates/Quarantine End to End Test.md +++ b/.gitlab/merge_request_templates/Quarantine End to End Test.md @@ -21,7 +21,7 @@ the noise (due to constantly failing tests, flaky tests, and so on) so that new - [ ] Quarantine test check-list - [ ] Follow the [Quarantining Tests guide](https://about.gitlab.com/handbook/engineering/quality/guidelines/debugging-qa-test-failures/#quarantining-tests). - [ ] Confirm the test has a [`quarantine:` tag with the specified quarantine type](https://about.gitlab.com/handbook/engineering/quality/guidelines/debugging-qa-test-failures/#quarantined-test-types). - - [ ] Note if the test should be [quarantined for a specific environment](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/environment_selection.html#quarantining-a-test-for-a-specific-environment). + - [ ] Note if the test should be [quarantined for a specific environment](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/execution_context_selection.html#quarantine-a-test-for-a-specific-environment). - [ ] Dequarantine test check-list - [ ] Follow the [Dequarantining Tests guide](https://about.gitlab.com/handbook/engineering/quality/guidelines/debugging-qa-test-failures/#dequarantining-tests). - [ ] Confirm the test consistently passes on the target GitLab environment(s). diff --git a/.gitlab/merge_request_templates/Security Release.md b/.gitlab/merge_request_templates/Security Release.md index 77e8718c34..33c0a5b98a 100644 --- a/.gitlab/merge_request_templates/Security Release.md +++ b/.gitlab/merge_request_templates/Security Release.md @@ -30,8 +30,8 @@ See [the general developer security release guidelines](https://gitlab.com/gitla ## Maintainer checklist -- [ ] Correct milestone is applied and the title is matching across all backports -- [ ] Assigned to `@gitlab-release-tools-bot` with passing CI pipelines and **when all backports including the MR targeting master are ready.** +- [ ] Correct milestone is applied and the title is matching across all backports. +- [ ] Assigned to `@gitlab-release-tools-bot` with passing CI pipelines. /label ~security diff --git a/.gitpod.yml b/.gitpod.yml index f6c1a60b03..0cb0e55c37 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -78,9 +78,9 @@ ports: vscode: extensions: - - rebornix.ruby@0.27.0:QyGBeRyslOfdRgOPRGm6PQ== - - wingrunr21.vscode-ruby@0.27.0:beIqQUhLRuJ5Vao4B2Lyng== - - karunamurti.haml@1.1.0:twCwOYt3/Ttfb3+iwblPDA== - - octref.vetur@0.25.0:UofirBhedyhdx/jCnPeJDg== - - dbaeumer.vscode-eslint@2.1.3:1NRvj3UKNTNwmYjptmUmIw== - - GitLab.gitlab-workflow@3.3.0:50q1byIi4M01G9qrTCCAYQ== + - rebornix.ruby@0.28.0 + - wingrunr21.vscode-ruby@0.27.0 + - karunamurti.haml@1.3.1 + - octref.vetur@0.34.1 + - dbaeumer.vscode-eslint@2.1.8 + - gitlab.gitlab-workflow@3.24.0 diff --git a/.markdownlint.yml b/.markdownlint.yml index dd04406f68..35e8ef119b 100644 --- a/.markdownlint.yml +++ b/.markdownlint.yml @@ -1,3 +1,4 @@ +--- # Base Markdownlint configuration # Extended Markdownlint configuration in doc/.markdownlint/ "default": true @@ -66,6 +67,7 @@ "Grafana", "Gzip", "Helm", + "HipChat", "ID", "Ingress", "jasmine-jquery", @@ -130,6 +132,7 @@ "Ubuntu", "Ultra Auth", "Unicorn", + "unicorn-worker-killer", "URL", "WebdriverIO", "YAML", diff --git a/.prettierignore b/.prettierignore index ea7e6268b9..2c5104fb1b 100644 --- a/.prettierignore +++ b/.prettierignore @@ -4,6 +4,7 @@ /public/ /vendor/ /tmp/ +/sitespeed-result/ # ignore stylesheets for now as this clashes with our linter *.css diff --git a/.rubocop.yml b/.rubocop.yml index a26e9ab986..657385ba66 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -123,6 +123,7 @@ Naming/FileName: - 'ee/lib/generators/**/*' - 'qa/qa/scenario/test/integration/ldap_no_tls.rb' - 'qa/qa/scenario/test/integration/ldap_tls.rb' + - 'qa/tasks/*' IgnoreExecutableScripts: true AllowedAcronyms: @@ -280,6 +281,22 @@ GitlabSecurity/PublicSend: - 'ee/lib/**/*.rake' - 'ee/spec/**/*' +Database/MultipleDatabases: + Enabled: true + Include: + - 'app/**/*.rb' + - 'ee/app/**/*.rb' + - 'lib/**/*.rb' + - 'ee/lib/**/*.rb' + - 'spec/**/*.rb' + - 'ee/spec/**/*.rb' + Exclude: + - 'ee/db/**/*.rb' + - 'spec/migrations/**/*.rb' + - 'lib/gitlab/background_migration/**/*.rb' + - 'spec/lib/gitlab/background_migration/**/*.rb' + - 'spec/lib/gitlab/database/**/*.rb' + Gitlab/DuplicateSpecLocation: Enabled: true @@ -607,6 +624,12 @@ Migration/CreateTableWithForeignKeys: Exclude: - !ruby/regexp /\Adb\/(?:post_)?migrate\/(?:201[0-9]\d+|20200[0-8][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])_.+\.rb\z/ +Migration/PreventIndexCreation: + Exclude: + - !ruby/regexp /\Adb\/(post_)?migrate\/201.*\.rb\z/ + - !ruby/regexp /\Adb\/(post_)?migrate\/2020.*\.rb\z/ + - !ruby/regexp /\Adb\/(post_)?migrate\/20210[1-6].*\.rb\z/ + Gitlab/RailsLogger: Exclude: - 'spec/**/*.rb' diff --git a/.rubocop_manual_todo.yml b/.rubocop_manual_todo.yml index dae8084b65..61593c3b46 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: - - 'ee/app/graphql/types/epic_state_enum.rb' - - 'ee/app/graphql/types/health_status_enum.rb' - 'ee/app/graphql/types/iteration_state_enum.rb' - 'ee/app/graphql/types/requirements_management/requirement_state_enum.rb' - 'ee/app/graphql/types/requirements_management/test_report_state_enum.rb' @@ -334,407 +332,6 @@ Rails/TimeZone: - 'spec/tooling/rspec_flaky/listener_spec.rb' - 'spec/tooling/rspec_flaky/report_spec.rb' -# WIP: https://gitlab.com/gitlab-org/gitlab/-/issues/325836 -RSpec/EmptyLineAfterFinalLetItBe: - Exclude: - - ee/spec/controllers/subscriptions_controller_spec.rb - - ee/spec/features/ci_shared_runner_warnings_spec.rb - - ee/spec/features/integrations/jira/jira_issues_list_spec.rb - - ee/spec/features/markdown/metrics_spec.rb - - ee/spec/features/registrations/group_invites_during_signup_flow_spec.rb - - ee/spec/features/subscriptions_spec.rb - - ee/spec/lib/ee/api/entities/user_with_admin_spec.rb - - ee/spec/lib/ee/api/entities/vulnerability_spec.rb - - ee/spec/lib/ee/event_filter_spec.rb - - ee/spec/lib/ee/gitlab/alert_management/payload/generic_spec.rb - - ee/spec/lib/ee/gitlab/alert_management/payload_spec.rb - - ee/spec/lib/ee/gitlab/ci/pipeline/chain/validate/external_spec.rb - - ee/spec/lib/ee/gitlab/ci/pipeline/quota/activity_spec.rb - - ee/spec/lib/ee/gitlab/ci/pipeline/quota/job_activity_spec.rb - - ee/spec/lib/ee/gitlab/ci/pipeline/quota/size_spec.rb - - ee/spec/lib/ee/gitlab/git_access_design_spec.rb - - ee/spec/lib/ee/gitlab/git_access_snippet_spec.rb - - ee/spec/lib/ee/gitlab/hook_data/issue_builder_spec.rb - - ee/spec/lib/ee/gitlab/import_export/project/tree_restorer_spec.rb - - ee/spec/lib/ee/gitlab/snippet_search_results_spec.rb - - ee/spec/lib/elastic/latest/git_class_proxy_spec.rb - - ee/spec/lib/gitlab/alert_management/payload/cilium_spec.rb - - ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_time_summary_spec.rb - - ee/spec/lib/gitlab/checks/diff_check_spec.rb - - ee/spec/lib/gitlab/code_owners/loader_spec.rb - - ee/spec/lib/gitlab/git_access_spec.rb - - ee/spec/lib/gitlab/git_access_wiki_spec.rb - - ee/spec/lib/gitlab/graphql/aggregations/vulnerability_statistics/lazy_aggregate_spec.rb - - ee/spec/lib/gitlab/insights/project_insights_config_spec.rb - - ee/spec/lib/gitlab/sitemaps/url_extractor_spec.rb - - ee/spec/requests/api/analytics/code_review_analytics_spec.rb - - ee/spec/requests/api/audit_events_spec.rb - - 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/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 - - ee/spec/requests/api/graphql/group/epic/epic_issues_spec.rb - - ee/spec/requests/api/graphql/group/epics_spec.rb - - ee/spec/requests/api/graphql/mutations/analytics/devops_adoption/segments/create_spec.rb - - ee/spec/requests/api/graphql/mutations/analytics/devops_adoption/segments/delete_spec.rb - - ee/spec/requests/api/graphql/mutations/boards/create_spec.rb - - ee/spec/requests/api/graphql/mutations/boards/epic_boards/create_spec.rb - - ee/spec/requests/api/graphql/mutations/boards/epic_boards/update_spec.rb - - ee/spec/requests/api/graphql/mutations/boards/issues/issue_move_list_spec.rb - - ee/spec/requests/api/graphql/mutations/boards/lists/update_limit_metrics_spec.rb - - ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/destroy_spec.rb - - ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/update_spec.rb - - ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/update_spec.rb - - ee/spec/requests/api/graphql/mutations/environments/canary_ingress/update_spec.rb - - ee/spec/requests/api/graphql/mutations/epics/add_issue_spec.rb - - ee/spec/requests/api/graphql/mutations/epics/set_subscription_spec.rb - - ee/spec/requests/api/graphql/mutations/epics/update_spec.rb - - ee/spec/requests/api/graphql/mutations/gitlab_subscriptions/activate_spec.rb - - ee/spec/requests/api/graphql/mutations/incident_management/oncall_rotation/create_spec.rb - - ee/spec/requests/api/graphql/mutations/incident_management/oncall_schedule/create_spec.rb - - ee/spec/requests/api/graphql/mutations/incident_management/oncall_schedule/destroy_spec.rb - - ee/spec/requests/api/graphql/mutations/incident_management/oncall_schedule/update_spec.rb - - ee/spec/requests/api/graphql/mutations/issues/promote_to_epic_spec.rb - - ee/spec/requests/api/graphql/mutations/issues/update_spec.rb - - ee/spec/requests/api/graphql/mutations/iterations/create_spec.rb - - ee/spec/requests/api/graphql/mutations/notes/create/note_spec.rb - - ee/spec/requests/api/graphql/mutations/quality_management/test_cases/create_spec.rb - - ee/spec/requests/api/graphql/namespace/compliance_frameworks_spec.rb - - ee/spec/requests/api/graphql/project/alert_management/payload_fields_spec.rb - - ee/spec/requests/api/graphql/project/requirements_management/requirements_spec.rb - - ee/spec/requests/api/graphql/projects/compliance_frameworks_spec.rb - - ee/spec/requests/api/groups_spec.rb - - ee/spec/requests/api/internal/base_spec.rb - - ee/spec/requests/api/issues_spec.rb - - ee/spec/requests/api/ldap_spec.rb - - ee/spec/requests/api/merge_request_approval_rules_spec.rb - - ee/spec/requests/api/merge_request_approvals_spec.rb - - ee/spec/requests/api/merge_requests_spec.rb - - ee/spec/requests/api/merge_trains_spec.rb - - ee/spec/requests/api/project_approval_rules_spec.rb - - ee/spec/requests/api/project_approval_settings_spec.rb - - ee/spec/requests/api/projects_spec.rb - - ee/spec/requests/api/todos_spec.rb - - ee/spec/requests/api/vulnerabilities_spec.rb - - ee/spec/requests/api/vulnerability_issue_links_spec.rb - - ee/spec/requests/api/wikis_spec.rb - - ee/spec/requests/callout_spec.rb - - ee/spec/requests/git_http_geo_spec.rb - - ee/spec/requests/repositories/git_http_controller_spec.rb - - ee/spec/services/alert_management/extract_alert_payload_fields_service_spec.rb - - ee/spec/services/alert_management/process_prometheus_alert_service_spec.rb - - ee/spec/services/approval_rules/create_service_spec.rb - - ee/spec/services/audit_event_service_spec.rb - - ee/spec/services/billable_members/destroy_service_spec.rb - - ee/spec/services/boards/epic_boards/destroy_service_spec.rb - - ee/spec/services/clusters/agent_tokens/create_service_spec.rb - - ee/spec/services/compliance_management/frameworks/create_service_spec.rb - - ee/spec/services/compliance_management/frameworks/update_service_spec.rb - - 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_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 - - ee/spec/services/incident_management/oncall_rotations/edit_service_spec.rb - - ee/spec/services/merge_request_approval_settings/update_service_spec.rb - - ee/spec/services/personal_access_tokens/create_service_audit_log_spec.rb - - ee/spec/services/personal_access_tokens/groups/update_lifetime_service_spec.rb - - ee/spec/services/push_rules/create_or_update_service_spec.rb - - ee/spec/services/quality_management/test_cases/create_service_spec.rb - - ee/spec/services/quick_actions/interpret_service_spec.rb - - ee/spec/services/requirements_management/create_requirement_service_spec.rb - - ee/spec/services/requirements_management/export_csv_service_spec.rb - - ee/spec/services/requirements_management/update_requirement_service_spec.rb - - ee/spec/services/resource_access_tokens/create_service_spec.rb - - ee/spec/services/resource_access_tokens/revoke_service_spec.rb - - spec/controllers/confirmations_controller_spec.rb - - spec/controllers/dashboard/projects_controller_spec.rb - - spec/controllers/invites_controller_spec.rb - - spec/controllers/profiles/emails_controller_spec.rb - - spec/controllers/users/terms_controller_spec.rb - - spec/features/cycle_analytics_spec.rb - - spec/features/dashboard/datetime_on_tooltips_spec.rb - - spec/features/dashboard/merge_requests_spec.rb - - spec/features/file_uploads/group_import_spec.rb - - spec/features/file_uploads/project_import_spec.rb - - spec/features/file_uploads/user_avatar_spec.rb - - spec/features/issues/user_sees_breadcrumb_links_spec.rb - - spec/features/markdown/metrics_spec.rb - - spec/features/operations_sidebar_link_spec.rb - - spec/features/participants_autocomplete_spec.rb - - spec/features/snippets/embedded_snippet_spec.rb - - spec/finders/alert_management/alerts_finder_spec.rb - - spec/finders/ci/commit_statuses_finder_spec.rb - - spec/finders/container_repositories_finder_spec.rb - - spec/finders/deployments_finder_spec.rb - - spec/finders/events_finder_spec.rb - - spec/finders/group_descendants_finder_spec.rb - - spec/finders/groups_finder_spec.rb - - spec/finders/packages/conan/package_file_finder_spec.rb - - spec/finders/packages/go/module_finder_spec.rb - - spec/finders/packages/group_packages_finder_spec.rb - - spec/finders/packages/nuget/package_finder_spec.rb - - spec/finders/packages/package_file_finder_spec.rb - - spec/finders/packages/package_finder_spec.rb - - spec/finders/template_finder_spec.rb - - spec/finders/todos_finder_spec.rb - - spec/finders/user_recent_events_finder_spec.rb - - spec/frontend/fixtures/pipelines.rb - - spec/graphql/features/authorization_spec.rb - - spec/graphql/gitlab_schema_spec.rb - - spec/graphql/mutations/boards/lists/update_spec.rb - - spec/graphql/mutations/custom_emoji/create_spec.rb - - spec/graphql/mutations/discussions/toggle_resolve_spec.rb - - spec/graphql/mutations/environments/canary_ingress/update_spec.rb - - spec/graphql/mutations/issues/set_severity_spec.rb - - spec/graphql/mutations/labels/create_spec.rb - - spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb - - spec/lib/bulk_imports/groups/loaders/group_loader_spec.rb - - spec/lib/extracts_path_spec.rb - - spec/lib/extracts_ref_spec.rb - - spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb - - spec/lib/gitlab/closing_issue_extractor_spec.rb - - spec/lib/gitlab/composer/cache_spec.rb - - spec/lib/gitlab/data_builder/wiki_page_spec.rb - - spec/lib/gitlab/deploy_key_access_spec.rb - - spec/lib/gitlab/email/handler/service_desk_handler_spec.rb - - spec/lib/gitlab/gitaly_client/operation_service_spec.rb - - spec/lib/gitlab/gl_repository/repo_type_spec.rb - - spec/lib/gitlab/group_search_results_spec.rb - - spec/lib/gitlab/json_cache_spec.rb - - spec/lib/gitlab/language_detection_spec.rb - - spec/lib/gitlab/project_search_results_spec.rb - - spec/lib/gitlab/prometheus/query_variables_spec.rb - - spec/lib/gitlab/reactive_cache_set_cache_spec.rb - - spec/lib/gitlab/reference_extractor_spec.rb - - spec/lib/gitlab/search_results_spec.rb - - spec/lib/gitlab/shell_spec.rb - - spec/models/abuse_report_spec.rb - - spec/models/alert_management/alert_spec.rb - - spec/models/audit_event_spec.rb - - spec/models/chat_name_spec.rb - - spec/models/chat_team_spec.rb - - spec/models/clusters/kubernetes_namespace_spec.rb - - spec/models/commit_spec.rb - - spec/models/deploy_token_spec.rb - - spec/models/deployment_spec.rb - - spec/models/diff_viewer/server_side_spec.rb - - spec/models/environment_spec.rb - - spec/models/event_collection_spec.rb - - spec/models/label_note_spec.rb - - spec/models/lfs_file_lock_spec.rb - - spec/models/member_spec.rb - - spec/models/merge_request_diff_spec.rb - - spec/models/namespace/root_storage_statistics_spec.rb - - spec/models/note_spec.rb - - spec/models/notification_setting_spec.rb - - spec/models/operations/feature_flag_spec.rb - - spec/models/plan_limits_spec.rb - - spec/models/prometheus_alert_spec.rb - - spec/models/protected_branch/push_access_level_spec.rb - - spec/models/repository_spec.rb - - spec/models/snippet_repository_spec.rb - - spec/models/snippet_spec.rb - - spec/models/terraform/state_spec.rb - - spec/models/u2f_registration_spec.rb - - spec/models/user_spec.rb - - spec/requests/api/api_spec.rb - - spec/requests/api/award_emoji_spec.rb - - spec/requests/api/branches_spec.rb - - spec/requests/api/ci/pipelines_spec.rb - - spec/requests/api/composer_packages_spec.rb - - spec/requests/api/deploy_tokens_spec.rb - - spec/requests/api/deployments_spec.rb - - spec/requests/api/error_tracking_spec.rb - - spec/requests/api/feature_flags_spec.rb - - spec/requests/api/freeze_periods_spec.rb - - spec/requests/api/generic_packages_spec.rb - - spec/requests/api/graphql/boards/board_lists_query_spec.rb - - spec/requests/api/graphql/ci/pipelines_spec.rb - - spec/requests/api/graphql/current_user_todos_spec.rb - - spec/requests/api/graphql/group/timelogs_spec.rb - - spec/requests/api/graphql/issue_status_counts_spec.rb - - spec/requests/api/graphql/metrics/dashboard_query_spec.rb - - spec/requests/api/graphql/mutations/admin/sidekiq_queues/delete_jobs_spec.rb - - spec/requests/api/graphql/mutations/alert_management/alerts/set_assignees_spec.rb - - spec/requests/api/graphql/mutations/alert_management/alerts/todo/create_spec.rb - - spec/requests/api/graphql/mutations/alert_management/alerts/update_alert_status_spec.rb - - spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb - - spec/requests/api/graphql/mutations/alert_management/prometheus_integration/create_spec.rb - - spec/requests/api/graphql/mutations/award_emojis/add_spec.rb - - spec/requests/api/graphql/mutations/award_emojis/toggle_spec.rb - - spec/requests/api/graphql/mutations/boards/create_spec.rb - - spec/requests/api/graphql/mutations/boards/destroy_spec.rb - - spec/requests/api/graphql/mutations/boards/lists/destroy_spec.rb - - spec/requests/api/graphql/mutations/boards/lists/update_spec.rb - - spec/requests/api/graphql/mutations/branches/create_spec.rb - - spec/requests/api/graphql/mutations/ci/ci_cd_settings_update_spec.rb - - spec/requests/api/graphql/mutations/commits/create_spec.rb - - spec/requests/api/graphql/mutations/container_expiration_policy/update_spec.rb - - spec/requests/api/graphql/mutations/discussions/toggle_resolve_spec.rb - - spec/requests/api/graphql/mutations/environments/canary_ingress/update_spec.rb - - spec/requests/api/graphql/mutations/issues/set_locked_spec.rb - - spec/requests/api/graphql/mutations/issues/set_severity_spec.rb - - spec/requests/api/graphql/mutations/issues/update_spec.rb - - spec/requests/api/graphql/mutations/jira_import/import_users_spec.rb - - spec/requests/api/graphql/mutations/jira_import/start_spec.rb - - spec/requests/api/graphql/mutations/labels/create_spec.rb - - spec/requests/api/graphql/mutations/merge_requests/accept_spec.rb - - spec/requests/api/graphql/mutations/merge_requests/create_spec.rb - - spec/requests/api/graphql/mutations/metrics/dashboard/annotations/create_spec.rb - - spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb - - spec/requests/api/graphql/mutations/notes/create/diff_note_spec.rb - - spec/requests/api/graphql/mutations/notes/create/image_diff_note_spec.rb - - spec/requests/api/graphql/mutations/notes/create/note_spec.rb - - spec/requests/api/graphql/mutations/notes/reposition_image_diff_note_spec.rb - - spec/requests/api/graphql/mutations/notes/update/image_diff_note_spec.rb - - spec/requests/api/graphql/mutations/snippets/mark_as_spam_spec.rb - - spec/requests/api/graphql/mutations/snippets/update_spec.rb - - spec/requests/api/graphql/mutations/user_callouts/create_spec.rb - - spec/requests/api/graphql/namespace/package_settings_spec.rb - - spec/requests/api/graphql/project/alert_management/alert/issue_spec.rb - - spec/requests/api/graphql/project/alert_management/alert_status_counts_spec.rb - - spec/requests/api/graphql/project/error_tracking/sentry_detailed_error_request_spec.rb - - spec/requests/api/graphql/project/error_tracking/sentry_errors_request_spec.rb - - spec/requests/api/graphql/project/issue/designs/designs_spec.rb - - spec/requests/api/graphql/project/project_pipeline_statistics_spec.rb - - spec/requests/api/graphql/project_query_spec.rb - - spec/requests/api/graphql/query_spec.rb - - spec/requests/api/graphql/user/starred_projects_query_spec.rb - - spec/requests/api/graphql/user_query_spec.rb - - spec/requests/api/graphql_spec.rb - - spec/requests/api/group_import_spec.rb - - spec/requests/api/group_milestones_spec.rb - - spec/requests/api/group_packages_spec.rb - - spec/requests/api/groups_spec.rb - - spec/requests/api/helpers_spec.rb - - spec/requests/api/import_bitbucket_server_spec.rb - - spec/requests/api/internal/base_spec.rb - - spec/requests/api/lint_spec.rb - - spec/requests/api/markdown_spec.rb - - spec/requests/api/merge_requests_spec.rb - - spec/requests/api/metrics/dashboard/annotations_spec.rb - - spec/requests/api/metrics/user_starred_dashboards_spec.rb - - spec/requests/api/nuget_project_packages_spec.rb - - spec/requests/api/project_clusters_spec.rb - - spec/requests/api/project_container_repositories_spec.rb - - spec/requests/api/project_milestones_spec.rb - - spec/requests/api/project_packages_spec.rb - - spec/requests/api/pypi_packages_spec.rb - - spec/requests/api/rubygem_packages_spec.rb - - spec/requests/api/unleash_spec.rb - - spec/requests/api/users_spec.rb - - spec/requests/groups/email_campaigns_controller_spec.rb - - spec/requests/import/gitlab_groups_controller_spec.rb - - spec/requests/jwt_controller_spec.rb - - spec/requests/lfs_http_spec.rb - - spec/requests/product_analytics/collector_app_spec.rb - - spec/requests/rack_attack_global_spec.rb - - spec/services/admin/propagate_service_template_spec.rb - - spec/services/alert_management/create_alert_issue_service_spec.rb - - spec/services/audit_event_service_spec.rb - - spec/services/auth/dependency_proxy_authentication_service_spec.rb - - spec/services/auto_merge_service_spec.rb - - spec/services/bulk_create_integration_service_spec.rb - - spec/services/clusters/applications/prometheus_health_check_service_spec.rb - - spec/services/container_expiration_policy_service_spec.rb - - spec/services/dependency_proxy/find_or_create_manifest_service_spec.rb - - spec/services/discussions/resolve_service_spec.rb - - spec/services/discussions/unresolve_service_spec.rb - - spec/services/git/branch_push_service_spec.rb - - spec/services/import/bitbucket_server_service_spec.rb - - spec/services/incident_management/incidents/create_service_spec.rb - - spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb - - spec/services/incident_management/pager_duty/process_webhook_service_spec.rb - - spec/services/integrations/test/project_service_spec.rb - - spec/services/issuable/bulk_update_service_spec.rb - - spec/services/jira_connect/sync_service_spec.rb - - spec/services/jira_import/start_import_service_spec.rb - - spec/services/jira_import/users_importer_spec.rb - - spec/services/markdown_content_rewriter_service_spec.rb - - spec/services/members/create_service_spec.rb - - spec/services/members/invite_service_spec.rb - - spec/services/metrics/dashboard/annotations/create_service_spec.rb - - spec/services/metrics/dashboard/gitlab_alert_embed_service_spec.rb - - spec/services/metrics/users_starred_dashboards/create_service_spec.rb - - spec/services/notes/copy_service_spec.rb - - spec/services/notes/create_service_spec.rb - - spec/services/notes/destroy_service_spec.rb - - spec/services/notes/quick_actions_service_spec.rb - - spec/services/notes/update_service_spec.rb - - spec/services/notification_service_spec.rb - - spec/services/packages/composer/create_package_service_spec.rb - - spec/services/packages/conan/search_service_spec.rb - - spec/services/packages/create_package_file_service_spec.rb - - spec/services/packages/debian/find_or_create_package_service_spec.rb - - spec/services/packages/generic/create_package_file_service_spec.rb - - spec/services/packages/maven/find_or_create_package_service_spec.rb - - spec/services/packages/nuget/search_service_spec.rb - - spec/services/packages/rubygems/dependency_resolver_service_spec.rb - - spec/services/pod_logs/base_service_spec.rb - - spec/services/pod_logs/elasticsearch_service_spec.rb - - spec/services/pod_logs/kubernetes_service_spec.rb - - spec/services/projects/alerting/notify_service_spec.rb - - spec/services/projects/create_service_spec.rb - - spec/services/projects/destroy_rollback_service_spec.rb - - spec/services/projects/destroy_service_spec.rb - - spec/services/projects/gitlab_projects_import_service_spec.rb - - spec/services/projects/group_links/create_service_spec.rb - - spec/services/projects/group_links/destroy_service_spec.rb - - spec/services/projects/group_links/update_service_spec.rb - - spec/services/projects/prometheus/alerts/notify_service_spec.rb - - spec/services/projects/transfer_service_spec.rb - - spec/services/projects/update_pages_service_spec.rb - - spec/services/prometheus/create_default_alerts_service_spec.rb - - spec/services/quick_actions/interpret_service_spec.rb - - spec/services/releases/create_evidence_service_spec.rb - - spec/services/repositories/destroy_rollback_service_spec.rb - - spec/services/repositories/destroy_service_spec.rb - - spec/services/repositories/shell_destroy_service_spec.rb - - spec/services/resource_access_tokens/create_service_spec.rb - - spec/services/resource_access_tokens/revoke_service_spec.rb - - spec/services/resource_events/change_labels_service_spec.rb - - spec/services/resource_events/merge_into_notes_service_spec.rb - - spec/services/security/ci_configuration/sast_create_service_spec.rb - - spec/services/snippets/bulk_destroy_service_spec.rb - - spec/services/snippets/create_service_spec.rb - - spec/services/snippets/update_service_spec.rb - - spec/services/spam/ham_service_spec.rb - - spec/services/spam/spam_action_service_spec.rb - - spec/services/spam/spam_verdict_service_spec.rb - - spec/services/system_note_service_spec.rb - - spec/services/system_notes/issuables_service_spec.rb - - spec/services/test_hooks/project_service_spec.rb - - spec/services/test_hooks/system_service_spec.rb - - spec/services/users/approve_service_spec.rb - - spec/services/users/reject_service_spec.rb - - spec/services/users/validate_otp_service_spec.rb - - 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/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 - - spec/tasks/gitlab/db_rake_spec.rb - - spec/tasks/gitlab/packages/composer_rake_spec.rb - - spec/tasks/gitlab/snippets_rake_spec.rb - - spec/uploaders/content_type_whitelist_spec.rb - - spec/uploaders/dependency_proxy/file_uploader_spec.rb - - spec/views/admin/application_settings/_eks.html.haml_spec.rb - - spec/views/admin/application_settings/_package_registry.html.haml_spec.rb - - spec/views/layouts/nav/sidebar/_project_security_link.html.haml_spec.rb - - spec/views/projects/pipelines/new.html.haml_spec.rb - - spec/views/projects/pipelines/show.html.haml_spec.rb - - spec/views/search/_results.html.haml_spec.rb - - spec/views/shared/_label_row.html.haml_spec.rb - - spec/views/shared/milestones/_top.html.haml_spec.rb - RSpec/TimecopFreeze: Exclude: - 'ee/spec/controllers/admin/application_settings_controller_spec.rb' @@ -857,7 +454,6 @@ RSpec/AnyInstanceOf: - 'ee/spec/features/admin/admin_audit_logs_spec.rb' - 'ee/spec/features/admin/admin_reset_pipeline_minutes_spec.rb' - 'ee/spec/features/admin/admin_users_spec.rb' - - 'ee/spec/features/admin/licenses/admin_views_license_spec.rb' - 'ee/spec/features/boards/scoped_issue_board_spec.rb' - 'ee/spec/features/ci_shared_runner_warnings_spec.rb' - 'ee/spec/features/groups/group_settings_spec.rb' @@ -1641,9 +1237,6 @@ Gitlab/NamespacedClass: - 'app/models/project_pages_metadatum.rb' - 'app/models/project_repository.rb' - 'app/models/project_repository_storage_move.rb' - - 'app/models/project_services/mock_monitoring_service.rb' - - 'app/models/project_services/monitoring_service.rb' - - 'app/models/project_services/prometheus_service.rb' - 'app/models/project_setting.rb' - 'app/models/project_snippet.rb' - 'app/models/project_statistics.rb' @@ -2161,6 +1754,7 @@ Gitlab/NamespacedClass: - 'app/workers/git_garbage_collect_worker.rb' - 'app/workers/gitlab_performance_bar_stats_worker.rb' - 'app/workers/gitlab_shell_worker.rb' + - 'app/workers/gitlab_service_ping_worker.rb' - 'app/workers/gitlab_usage_ping_worker.rb' - 'app/workers/group_destroy_worker.rb' - 'app/workers/group_export_worker.rb' @@ -2551,11 +2145,6 @@ Gitlab/NamespacedClass: - 'spec/tasks/gitlab/task_helpers_spec.rb' - 'spec/uploaders/object_storage_spec.rb' -Style/ClassEqualityComparison: - Exclude: - - spec/lib/peek/views/active_record_spec.rb - - ee/spec/lib/peek/views/active_record_spec.rb - # WIP See https://gitlab.com/gitlab-org/gitlab/-/issues/207950 Cop/UserAdmin: Exclude: @@ -2611,8 +2200,8 @@ Cop/UserAdmin: - 'ee/lib/ee/gitlab/git_access.rb' - 'lib/api/award_emoji.rb' - 'lib/api/ci/runners.rb' - - 'lib/api/entities/runner_details.rb' - - 'lib/api/entities/user_safe.rb' + - 'lib/api/entities/ci/runner_details.rb' + - 'lib/api/entities/ci/user_safe.rb' - 'lib/api/groups.rb' - 'lib/api/helpers.rb' - 'lib/api/personal_access_tokens.rb' @@ -2853,27 +2442,10 @@ Gitlab/FeatureAvailableUsage: # WIP See https://gitlab.com/gitlab-org/gitlab/-/issues/327490 Style/RegexpLiteralMixedPreserve: Exclude: - - 'app/controllers/projects/repositories_controller.rb' - - 'app/helpers/ci/variables_helper.rb' - - 'app/models/alert_management/alert.rb' - - 'app/models/application_setting.rb' - - 'app/models/blob_viewer/go_mod.rb' - - 'app/models/concerns/ci/maskable.rb' - - 'app/models/operations/feature_flag.rb' - - 'app/models/packages/go/module.rb' - - 'app/services/packages/conan/search_service.rb' - - 'app/services/projects/update_remote_mirror_service.rb' - - 'config/initializers/rspec_profiling.rb' - 'ee/app/models/status_page/project_setting.rb' - 'ee/app/presenters/vulnerability_presenter.rb' - 'ee/lib/api/geo_nodes.rb' - 'ee/lib/gitlab/vulnerabilities/standard_vulnerability.rb' - - 'ee/spec/controllers/concerns/ee/routable_actions/sso_enforcement_redirect_spec.rb' - - 'ee/spec/controllers/concerns/routable_actions_spec.rb' - - '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/services/jira/requests/issues/list_service_spec.rb' - 'lib/api/invitations.rb' - 'lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb' - 'lib/gitlab/metrics/requests_rack_middleware.rb' @@ -2902,3 +2474,543 @@ Style/RegexpLiteralMixedPreserve: - 'spec/support/helpers/query_recorder.rb' - 'spec/support/helpers/require_migration.rb' - 'spec/views/layouts/_head.html.haml_spec.rb' + +Database/MultipleDatabases: + Exclude: + - 'app/mailers/previews/notify_preview.rb' + - 'app/models/application_setting.rb' + - 'app/models/internal_id.rb' + - 'app/services/auto_merge/base_service.rb' + - 'app/services/ci/delete_unit_tests_service.rb' + - 'app/services/ci/unlock_artifacts_service.rb' + - 'app/services/deployments/update_environment_service.rb' + - 'app/services/design_management/copy_design_collection/copy_service.rb' + - 'app/services/feature_flags/create_service.rb' + - 'app/services/feature_flags/destroy_service.rb' + - 'app/services/feature_flags/update_service.rb' + - 'app/services/issuable/clone/base_service.rb' + - 'app/services/issuable/common_system_notes_service.rb' + - 'app/services/issuable/destroy_label_links_service.rb' + - 'app/services/packages/create_dependency_service.rb' + - 'app/services/packages/go/create_package_service.rb' + - 'app/services/packages/npm/create_package_service.rb' + - 'app/services/packages/terraform_module/create_package_service.rb' + - 'app/services/projects/cleanup_service.rb' + - 'app/services/projects/fetch_statistics_increment_service.rb' + - 'app/services/releases/update_service.rb' + - 'app/services/todos/destroy/destroyed_issuable_service.rb' + - 'ee/app/models/dora/daily_metrics.rb' + - 'ee/app/services/analytics/devops_adoption/enabled_namespaces/bulk_delete_service.rb' + - 'ee/app/services/approval_rules/finalize_service.rb' + - 'ee/app/services/approval_rules/project_rule_destroy_service.rb' + - 'ee/app/services/app_sec/dast/site_profiles/create_service.rb' + - 'ee/app/services/app_sec/dast/site_profiles/update_service.rb' + - 'ee/app/services/ci/minutes/update_build_minutes_service.rb' + - 'ee/app/services/ee/issuable/common_system_notes_service.rb' + - 'ee/app/services/group_saml/group_managed_accounts/transfer_membership_service.rb' + - 'ee/app/services/group_saml/sign_up_service.rb' + - 'ee/app/services/iterations/roll_over_issues_service.rb' + - 'ee/app/services/security/store_scan_service.rb' + - 'ee/app/services/timebox_report_service.rb' + - 'ee/app/services/vulnerability_feedback/create_service.rb' + - 'ee/lib/ee/gitlab/checks/push_rule_check.rb' + - 'ee/lib/ee/gitlab/database.rb' + - 'ee/lib/gitlab/geo/database_tasks.rb' + - 'ee/lib/gitlab/geo/geo_tasks.rb' + - 'ee/lib/gitlab/geo/health_check.rb' + - 'ee/lib/gitlab/geo/log_cursor/daemon.rb' + - 'ee/lib/pseudonymizer/dumper.rb' + - 'ee/lib/pseudonymizer/pager.rb' + - 'ee/lib/system_check/geo/geo_database_configured_check.rb' + - 'ee/spec/lib/pseudonymizer/dumper_spec.rb' + - 'ee/spec/models/pg_replication_slot_spec.rb' + - 'ee/spec/services/ee/merge_requests/update_service_spec.rb' + - 'lib/backup/database.rb' + - 'lib/after_commit_queue.rb' + - 'lib/api/rubygem_packages.rb' + - 'lib/backup/manager.rb' + - 'lib/gitlab/analytics/cycle_analytics/stage_query_helpers.rb' + - 'lib/gitlab/chaos.rb' + - 'lib/gitlab/current_settings.rb' + - 'lib/gitlab/database/batch_count.rb' + - 'lib/gitlab/database/batch_counter.rb' + - 'lib/gitlab/database/count/reltuples_count_strategy.rb' + - 'lib/gitlab/database/count/tablesample_count_strategy.rb' + - 'lib/gitlab/database/grant.rb' + - 'lib/gitlab/database/load_balancing/load_balancer.rb' + - 'lib/gitlab/database/load_balancing.rb' + - 'lib/gitlab/database/load_balancing/sticking.rb' + - 'lib/gitlab/database/migrations/observers/migration_observer.rb' + - 'lib/gitlab/database/migrations/observers/query_log.rb' + - 'lib/gitlab/database/multi_threaded_migration.rb' + - 'lib/gitlab/database/partitioning_migration_helpers/backfill_partitioned_table.rb' + - 'lib/gitlab/database/partitioning/monthly_strategy.rb' + - 'lib/gitlab/database/partitioning/partition_manager.rb' + - 'lib/gitlab/database/partitioning/partition_creator.rb' + - 'lib/gitlab/database/partitioning/replace_table.rb' + - 'lib/gitlab/database/partitioning/time_partition.rb' + - 'lib/gitlab/database/postgres_hll/batch_distinct_counter.rb' + - 'lib/gitlab/database/postgresql_adapter/dump_schema_versions_mixin.rb' + - 'lib/gitlab/database/postgresql_database_tasks/load_schema_versions_mixin.rb' + - 'lib/gitlab/database.rb' + - 'lib/gitlab/database/reindexing/concurrent_reindex.rb' + - 'lib/gitlab/database/reindexing/reindex_concurrently.rb' + - 'lib/gitlab/database/schema_cache_with_renamed_table.rb' + - 'lib/gitlab/database/schema_migrations/context.rb' + - 'lib/gitlab/database/schema_version_files.rb' + - 'lib/gitlab/database/similarity_score.rb' + - 'lib/gitlab/database/unidirectional_copy_trigger.rb' + - 'lib/gitlab/database/with_lock_retries.rb' + - 'lib/gitlab/gitlab_import/importer.rb' + - 'lib/gitlab/health_checks/db_check.rb' + - 'lib/gitlab/import_export/base/relation_factory.rb' + - 'lib/gitlab/import_export/relation_tree_restorer.rb' + - 'lib/gitlab/legacy_github_import/importer.rb' + - 'lib/gitlab/metrics/samplers/database_sampler.rb' + - 'lib/gitlab/optimistic_locking.rb' + - 'lib/gitlab/otp_key_rotator.rb' + - 'lib/gitlab/profiler.rb' + - 'lib/gitlab/seeder.rb' + - 'lib/gitlab/sherlock/query.rb' + - 'lib/gitlab/sql/glob.rb' + - 'lib/gitlab/sql/set_operator.rb' + - 'lib/system_check/orphans/repository_check.rb' + - 'spec/db/schema_spec.rb' + - 'spec/features/admin/dashboard_spec.rb' + - 'spec/initializers/database_config_spec.rb' + - 'spec/initializers/lograge_spec.rb' + - 'spec/lib/backup/manager_spec.rb' + - 'spec/lib/gitlab/current_settings_spec.rb' + - 'spec/lib/gitlab/database_spec.rb' + - 'spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb' + - 'spec/lib/gitlab/import_export/project/tree_saver_spec.rb' + - 'spec/lib/gitlab/metrics/subscribers/active_record_spec.rb' + - 'spec/lib/gitlab/pagination/keyset/order_spec.rb' + - 'spec/lib/gitlab/profiler_spec.rb' + - 'spec/lib/gitlab/query_limiting/active_support_subscriber_spec.rb' + - 'spec/lib/gitlab/sidekiq_logging/structured_logger_spec.rb' + - 'spec/lib/gitlab/sql/cte_spec.rb' + - 'spec/lib/gitlab/sql/glob_spec.rb' + - 'spec/lib/gitlab/sql/recursive_cte_spec.rb' + - 'spec/lib/gitlab/usage_data_metrics_spec.rb' + - 'spec/lib/gitlab/usage_data_queries_spec.rb' + - 'spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/constraints_spec.rb' + - 'spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/joins_spec.rb' + - 'spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb' + - 'spec/lib/gitlab/utils/usage_data_spec.rb' + - 'spec/models/application_setting_spec.rb' + - 'spec/models/concerns/case_sensitivity_spec.rb' + - 'spec/models/concerns/sortable_spec.rb' + - 'spec/models/concerns/where_composite_spec.rb' + - 'spec/models/experiment_spec.rb' + - 'spec/models/internal_id_spec.rb' + - 'spec/models/project_feature_usage_spec.rb' + - 'spec/models/users_statistics_spec.rb' + - 'spec/requests/api/statistics_spec.rb' + - 'spec/services/users/activity_service_spec.rb' + - 'spec/support/caching.rb' + - 'spec/support/gitlab/usage/metrics_instrumentation_shared_examples.rb' + - 'spec/support/helpers/database_connection_helpers.rb' + - 'spec/support/helpers/database/database_helpers.rb' + - 'spec/support/helpers/database/table_schema_helpers.rb' + - 'spec/support/helpers/migrations_helpers.rb' + - 'spec/support/helpers/query_recorder.rb' + - 'spec/support/helpers/usage_data_helpers.rb' + - 'spec/tasks/gitlab/backup_rake_spec.rb' + - 'spec/tasks/gitlab/db_rake_spec.rb' + - 'spec/workers/analytics/usage_trends/counter_job_worker_spec.rb' + - 'spec/workers/users/create_statistics_worker_spec.rb' + +# See https://gitlab.com/gitlab-org/gitlab/-/issues/335170 +Cop/WorkerDataConsistency: + Exclude: + - 'app/workers/admin_email_worker.rb' + - 'app/workers/analytics/usage_trends/count_job_trigger_worker.rb' + - 'app/workers/analytics/usage_trends/counter_job_worker.rb' + - 'app/workers/approve_blocked_pending_approval_users_worker.rb' + - 'app/workers/archive_trace_worker.rb' + - 'app/workers/authorized_keys_worker.rb' + - 'app/workers/authorized_project_update/periodic_recalculate_worker.rb' + - 'app/workers/authorized_project_update/project_create_worker.rb' + - 'app/workers/authorized_project_update/project_group_link_create_worker.rb' + - 'app/workers/authorized_project_update/project_recalculate_worker.rb' + - 'app/workers/authorized_project_update/user_refresh_from_replica_worker.rb' + - 'app/workers/authorized_projects_worker.rb' + - 'app/workers/auto_devops/disable_worker.rb' + - 'app/workers/auto_merge_process_worker.rb' + - 'app/workers/background_migration_worker.rb' + - 'app/workers/build_finished_worker.rb' + - 'app/workers/build_success_worker.rb' + - 'app/workers/bulk_import_worker.rb' + - 'app/workers/bulk_imports/entity_worker.rb' + - 'app/workers/bulk_imports/export_request_worker.rb' + - 'app/workers/bulk_imports/pipeline_worker.rb' + - 'app/workers/bulk_imports/relation_export_worker.rb' + - 'app/workers/chaos/cpu_spin_worker.rb' + - 'app/workers/chaos/db_spin_worker.rb' + - 'app/workers/chaos/kill_worker.rb' + - 'app/workers/chaos/leak_mem_worker.rb' + - 'app/workers/chaos/sleep_worker.rb' + - 'app/workers/chat_notification_worker.rb' + - 'app/workers/ci/archive_trace_worker.rb' + - 'app/workers/ci/archive_traces_cron_worker.rb' + - 'app/workers/ci/build_finished_worker.rb' + - 'app/workers/ci/build_prepare_worker.rb' + - 'app/workers/ci/build_schedule_worker.rb' + - 'app/workers/ci/build_trace_chunk_flush_worker.rb' + - 'app/workers/ci/daily_build_group_report_results_worker.rb' + - 'app/workers/ci/delete_objects_worker.rb' + - 'app/workers/ci/delete_unit_tests_worker.rb' + - 'app/workers/ci/drop_pipeline_worker.rb' + - 'app/workers/ci/initial_pipeline_process_worker.rb' + - 'app/workers/ci/merge_requests/add_todo_when_build_fails_worker.rb' + - 'app/workers/ci/pipeline_artifacts/coverage_report_worker.rb' + - 'app/workers/ci/pipeline_artifacts/create_quality_report_worker.rb' + - 'app/workers/ci/pipeline_artifacts/expire_artifacts_worker.rb' + - 'app/workers/ci/pipeline_success_unlock_artifacts_worker.rb' + - 'app/workers/ci/ref_delete_unlock_artifacts_worker.rb' + - 'app/workers/ci/resource_groups/assign_resource_from_resource_group_worker.rb' + - 'app/workers/ci/schedule_delete_objects_cron_worker.rb' + - 'app/workers/ci/test_failure_history_worker.rb' + - 'app/workers/ci_platform_metrics_update_cron_worker.rb' + - 'app/workers/cleanup_container_repository_worker.rb' + - 'app/workers/cluster_configure_istio_worker.rb' + - 'app/workers/cluster_install_app_worker.rb' + - 'app/workers/cluster_patch_app_worker.rb' + - 'app/workers/cluster_provision_worker.rb' + - 'app/workers/cluster_update_app_worker.rb' + - 'app/workers/cluster_upgrade_app_worker.rb' + - 'app/workers/cluster_wait_for_app_installation_worker.rb' + - 'app/workers/cluster_wait_for_app_update_worker.rb' + - 'app/workers/cluster_wait_for_ingress_ip_address_worker.rb' + - 'app/workers/clusters/applications/activate_service_worker.rb' + - 'app/workers/clusters/applications/check_prometheus_health_worker.rb' + - 'app/workers/clusters/applications/deactivate_service_worker.rb' + - 'app/workers/clusters/applications/uninstall_worker.rb' + - 'app/workers/clusters/applications/wait_for_uninstall_app_worker.rb' + - 'app/workers/container_expiration_policies/cleanup_container_repository_worker.rb' + - 'app/workers/container_expiration_policy_worker.rb' + - 'app/workers/create_commit_signature_worker.rb' + - 'app/workers/create_note_diff_file_worker.rb' + - 'app/workers/create_pipeline_worker.rb' + - 'app/workers/database/batched_background_migration_worker.rb' + - 'app/workers/database/partition_management_worker.rb' + - 'app/workers/delete_container_repository_worker.rb' + - 'app/workers/delete_diff_files_worker.rb' + - 'app/workers/delete_merged_branches_worker.rb' + - 'app/workers/delete_stored_files_worker.rb' + - 'app/workers/delete_user_worker.rb' + - 'app/workers/deployments/drop_older_deployments_worker.rb' + - 'app/workers/deployments/finished_worker.rb' + - 'app/workers/deployments/forward_deployment_worker.rb' + - 'app/workers/deployments/hooks_worker.rb' + - 'app/workers/deployments/link_merge_request_worker.rb' + - 'app/workers/deployments/success_worker.rb' + - 'app/workers/deployments/update_environment_worker.rb' + - 'app/workers/design_management/copy_design_collection_worker.rb' + - 'app/workers/design_management/new_version_worker.rb' + - 'app/workers/destroy_pages_deployments_worker.rb' + - 'app/workers/detect_repository_languages_worker.rb' + - 'app/workers/disallow_two_factor_for_group_worker.rb' + - 'app/workers/disallow_two_factor_for_subgroups_worker.rb' + - 'app/workers/email_receiver_worker.rb' + - 'app/workers/emails_on_push_worker.rb' + - 'app/workers/environments/auto_stop_cron_worker.rb' + - 'app/workers/environments/canary_ingress/update_worker.rb' + - 'app/workers/error_tracking_issue_link_worker.rb' + - 'app/workers/experiments/record_conversion_event_worker.rb' + - 'app/workers/expire_build_artifacts_worker.rb' + - 'app/workers/expire_build_instance_artifacts_worker.rb' + - 'app/workers/expire_job_cache_worker.rb' + - 'app/workers/export_csv_worker.rb' + - 'app/workers/file_hook_worker.rb' + - 'app/workers/flush_counter_increments_worker.rb' + - 'app/workers/gitlab/github_import/advance_stage_worker.rb' + - 'app/workers/gitlab/github_import/refresh_import_jid_worker.rb' + - 'app/workers/gitlab/github_import/stage/finish_import_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_base_data_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_notes_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_repository_worker.rb' + - 'app/workers/gitlab/jira_import/advance_stage_worker.rb' + - 'app/workers/gitlab/jira_import/import_issue_worker.rb' + - 'app/workers/gitlab/jira_import/stage/start_import_worker.rb' + - 'app/workers/gitlab/phabricator_import/import_tasks_worker.rb' + - 'app/workers/gitlab_performance_bar_stats_worker.rb' + - 'app/workers/gitlab_service_ping_worker.rb' + - 'app/workers/gitlab_shell_worker.rb' + - 'app/workers/group_destroy_worker.rb' + - 'app/workers/group_export_worker.rb' + - 'app/workers/group_import_worker.rb' + - 'app/workers/hashed_storage/migrator_worker.rb' + - 'app/workers/hashed_storage/project_migrate_worker.rb' + - 'app/workers/hashed_storage/project_rollback_worker.rb' + - 'app/workers/hashed_storage/rollbacker_worker.rb' + - 'app/workers/import_export_project_cleanup_worker.rb' + - 'app/workers/import_issues_csv_worker.rb' + - 'app/workers/incident_management/add_severity_system_note_worker.rb' + - 'app/workers/incident_management/pager_duty/process_incident_worker.rb' + - 'app/workers/incident_management/process_alert_worker_v2.rb' + - 'app/workers/invalid_gpg_signature_update_worker.rb' + - 'app/workers/irker_worker.rb' + - 'app/workers/issuable/label_links_destroy_worker.rb' + - 'app/workers/issuable_export_csv_worker.rb' + - 'app/workers/issuables/clear_groups_issue_counter_worker.rb' + - 'app/workers/issue_due_scheduler_worker.rb' + - 'app/workers/issue_placement_worker.rb' + - 'app/workers/issue_rebalancing_worker.rb' + - 'app/workers/jira_connect/forward_event_worker.rb' + - 'app/workers/jira_connect/sync_branch_worker.rb' + - 'app/workers/jira_connect/sync_builds_worker.rb' + - 'app/workers/jira_connect/sync_deployments_worker.rb' + - 'app/workers/jira_connect/sync_feature_flags_worker.rb' + - 'app/workers/jira_connect/sync_merge_request_worker.rb' + - 'app/workers/jira_connect/sync_project_worker.rb' + - 'app/workers/mail_scheduler/issue_due_worker.rb' + - 'app/workers/mail_scheduler/notification_service_worker.rb' + - 'app/workers/member_invitation_reminder_emails_worker.rb' + - 'app/workers/members_destroyer/unassign_issuables_worker.rb' + - 'app/workers/merge_request_cleanup_refs_worker.rb' + - 'app/workers/merge_request_mergeability_check_worker.rb' + - 'app/workers/merge_requests/create_pipeline_worker.rb' + - 'app/workers/merge_requests/delete_source_branch_worker.rb' + - 'app/workers/merge_requests/handle_assignees_change_worker.rb' + - 'app/workers/merge_requests/resolve_todos_worker.rb' + - 'app/workers/merge_worker.rb' + - 'app/workers/metrics/dashboard/prune_old_annotations_worker.rb' + - 'app/workers/metrics/dashboard/schedule_annotations_prune_worker.rb' + - 'app/workers/metrics/dashboard/sync_dashboards_worker.rb' + - 'app/workers/migrate_external_diffs_worker.rb' + - 'app/workers/namespaceless_project_destroy_worker.rb' + - 'app/workers/namespaces/in_product_marketing_emails_worker.rb' + - 'app/workers/namespaces/onboarding_issue_created_worker.rb' + - 'app/workers/namespaces/onboarding_pipeline_created_worker.rb' + - 'app/workers/namespaces/onboarding_progress_worker.rb' + - 'app/workers/namespaces/onboarding_user_added_worker.rb' + - 'app/workers/namespaces/prune_aggregation_schedules_worker.rb' + - 'app/workers/namespaces/root_statistics_worker.rb' + - 'app/workers/namespaces/schedule_aggregation_worker.rb' + - 'app/workers/new_issue_worker.rb' + - 'app/workers/new_merge_request_worker.rb' + - 'app/workers/new_note_worker.rb' + - 'app/workers/object_pool/create_worker.rb' + - 'app/workers/object_pool/destroy_worker.rb' + - 'app/workers/object_pool/join_worker.rb' + - 'app/workers/object_pool/schedule_join_worker.rb' + - 'app/workers/object_storage/background_move_worker.rb' + - 'app/workers/object_storage/migrate_uploads_worker.rb' + - 'app/workers/packages/composer/cache_cleanup_worker.rb' + - 'app/workers/packages/composer/cache_update_worker.rb' + - 'app/workers/packages/debian/generate_distribution_worker.rb' + - 'app/workers/packages/debian/process_changes_worker.rb' + - 'app/workers/packages/go/sync_packages_worker.rb' + - 'app/workers/packages/helm/extraction_worker.rb' + - 'app/workers/packages/maven/metadata/sync_worker.rb' + - 'app/workers/packages/nuget/extraction_worker.rb' + - 'app/workers/packages/rubygems/extraction_worker.rb' + - 'app/workers/pages_domain_removal_cron_worker.rb' + - 'app/workers/pages_domain_ssl_renewal_cron_worker.rb' + - 'app/workers/pages_domain_ssl_renewal_worker.rb' + - 'app/workers/pages_domain_verification_cron_worker.rb' + - 'app/workers/pages_domain_verification_worker.rb' + - 'app/workers/pages_remove_worker.rb' + - 'app/workers/pages_transfer_worker.rb' + - 'app/workers/pages_update_configuration_worker.rb' + - 'app/workers/pages_worker.rb' + - 'app/workers/partition_creation_worker.rb' + - 'app/workers/personal_access_tokens/expired_notification_worker.rb' + - 'app/workers/personal_access_tokens/expiring_worker.rb' + - 'app/workers/pipeline_metrics_worker.rb' + - 'app/workers/pipeline_notification_worker.rb' + - 'app/workers/pipeline_process_worker.rb' + - 'app/workers/pipeline_schedule_worker.rb' + - 'app/workers/post_receive.rb' + - 'app/workers/process_commit_worker.rb' + - 'app/workers/project_cache_worker.rb' + - 'app/workers/project_daily_statistics_worker.rb' + - 'app/workers/project_destroy_worker.rb' + - 'app/workers/project_export_worker.rb' + - 'app/workers/project_service_worker.rb' + - 'app/workers/projects/post_creation_worker.rb' + - 'app/workers/projects/schedule_bulk_repository_shard_moves_worker.rb' + - 'app/workers/prometheus/create_default_alerts_worker.rb' + - 'app/workers/propagate_integration_group_worker.rb' + - 'app/workers/propagate_integration_inherit_descendant_worker.rb' + - 'app/workers/propagate_integration_inherit_worker.rb' + - 'app/workers/propagate_integration_project_worker.rb' + - 'app/workers/propagate_integration_worker.rb' + - 'app/workers/propagate_service_template_worker.rb' + - 'app/workers/prune_old_events_worker.rb' + - 'app/workers/purge_dependency_proxy_cache_worker.rb' + - 'app/workers/rebase_worker.rb' + - 'app/workers/releases/create_evidence_worker.rb' + - 'app/workers/releases/manage_evidence_worker.rb' + - 'app/workers/remote_mirror_notification_worker.rb' + - 'app/workers/remove_expired_group_links_worker.rb' + - 'app/workers/remove_expired_members_worker.rb' + - 'app/workers/remove_unaccepted_member_invites_worker.rb' + - 'app/workers/remove_unreferenced_lfs_objects_worker.rb' + - 'app/workers/repository_archive_cache_worker.rb' + - 'app/workers/repository_check/batch_worker.rb' + - 'app/workers/repository_check/clear_worker.rb' + - 'app/workers/repository_check/dispatch_worker.rb' + - 'app/workers/repository_check/single_repository_worker.rb' + - 'app/workers/repository_cleanup_worker.rb' + - 'app/workers/repository_fork_worker.rb' + - 'app/workers/repository_import_worker.rb' + - 'app/workers/repository_remove_remote_worker.rb' + - 'app/workers/repository_update_remote_mirror_worker.rb' + - 'app/workers/requests_profiles_worker.rb' + - 'app/workers/run_pipeline_schedule_worker.rb' + - 'app/workers/schedule_merge_request_cleanup_refs_worker.rb' + - 'app/workers/schedule_migrate_external_diffs_worker.rb' + - 'app/workers/self_monitoring_project_create_worker.rb' + - 'app/workers/self_monitoring_project_delete_worker.rb' + - 'app/workers/service_desk_email_receiver_worker.rb' + - 'app/workers/snippets/schedule_bulk_repository_shard_moves_worker.rb' + - 'app/workers/ssh_keys/expired_notification_worker.rb' + - 'app/workers/ssh_keys/expiring_soon_notification_worker.rb' + - 'app/workers/stage_update_worker.rb' + - 'app/workers/stuck_ci_jobs_worker.rb' + - 'app/workers/stuck_export_jobs_worker.rb' + - 'app/workers/stuck_merge_jobs_worker.rb' + - 'app/workers/system_hook_push_worker.rb' + - 'app/workers/todos_destroyer/confidential_issue_worker.rb' + - 'app/workers/todos_destroyer/destroyed_issuable_worker.rb' + - 'app/workers/todos_destroyer/entity_leave_worker.rb' + - 'app/workers/todos_destroyer/group_private_worker.rb' + - 'app/workers/todos_destroyer/private_features_worker.rb' + - 'app/workers/todos_destroyer/project_private_worker.rb' + - 'app/workers/trending_projects_worker.rb' + - 'app/workers/update_container_registry_info_worker.rb' + - 'app/workers/update_external_pull_requests_worker.rb' + - 'app/workers/update_head_pipeline_for_merge_request_worker.rb' + - 'app/workers/update_highest_role_worker.rb' + - 'app/workers/update_merge_requests_worker.rb' + - 'app/workers/update_project_statistics_worker.rb' + - 'app/workers/upload_checksum_worker.rb' + - 'app/workers/user_status_cleanup/batch_worker.rb' + - 'app/workers/users/create_statistics_worker.rb' + - 'app/workers/users/deactivate_dormant_users_worker.rb' + - 'app/workers/wait_for_cluster_creation_worker.rb' + - 'app/workers/web_hooks/destroy_worker.rb' + - 'app/workers/web_hooks/log_execution_worker.rb' + - 'app/workers/x509_certificate_revoke_worker.rb' + - 'app/workers/x509_issuer_crl_check_worker.rb' + - 'ee/app/workers/active_user_count_threshold_worker.rb' + - 'ee/app/workers/adjourned_group_deletion_worker.rb' + - 'ee/app/workers/adjourned_project_deletion_worker.rb' + - 'ee/app/workers/adjourned_projects_deletion_cron_worker.rb' + - 'ee/app/workers/admin_emails_worker.rb' + - 'ee/app/workers/analytics/code_review_metrics_worker.rb' + - 'ee/app/workers/analytics/devops_adoption/create_all_snapshots_worker.rb' + - 'ee/app/workers/analytics/devops_adoption/create_snapshot_worker.rb' + - 'ee/app/workers/approval_rules/external_approval_rule_payload_worker.rb' + - 'ee/app/workers/ci/batch_reset_minutes_worker.rb' + - 'ee/app/workers/ci/sync_reports_to_report_approval_rules_worker.rb' + - 'ee/app/workers/clear_shared_runners_minutes_worker.rb' + - 'ee/app/workers/create_github_webhook_worker.rb' + - 'ee/app/workers/dast_site_validation_worker.rb' + - 'ee/app/workers/deployments/auto_rollback_worker.rb' + - 'ee/app/workers/dora/daily_metrics/refresh_worker.rb' + - 'ee/app/workers/dora/daily_metrics/refresh_worker.rb' + - 'ee/app/workers/elastic/migration_worker.rb' + - 'ee/app/workers/elastic_association_indexer_worker.rb' + - 'ee/app/workers/elastic_cluster_reindexing_cron_worker.rb' + - 'ee/app/workers/elastic_commit_indexer_worker.rb' + - 'ee/app/workers/elastic_delete_project_worker.rb' + - 'ee/app/workers/elastic_full_index_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' + - 'ee/app/workers/elastic_remove_expired_namespace_subscriptions_from_index_cron_worker.rb' + - 'ee/app/workers/epics/new_epic_issue_worker.rb' + - 'ee/app/workers/epics/update_epics_dates_worker.rb' + - 'ee/app/workers/geo/batch/project_registry_scheduler_worker.rb' + - 'ee/app/workers/geo/batch/project_registry_worker.rb' + - 'ee/app/workers/geo/container_repository_sync_worker.rb' + - 'ee/app/workers/geo/design_repository_sync_worker.rb' + - 'ee/app/workers/geo/destroy_worker.rb' + - 'ee/app/workers/geo/event_worker.rb' + - 'ee/app/workers/geo/file_download_worker.rb' + - 'ee/app/workers/geo/file_registry_removal_worker.rb' + - 'ee/app/workers/geo/file_removal_worker.rb' + - 'ee/app/workers/geo/hashed_storage_attachments_migration_worker.rb' + - 'ee/app/workers/geo/hashed_storage_migration_worker.rb' + - 'ee/app/workers/geo/metrics_update_worker.rb' + - 'ee/app/workers/geo/project_sync_worker.rb' + - 'ee/app/workers/geo/prune_event_log_worker.rb' + - 'ee/app/workers/geo/rename_repository_worker.rb' + - 'ee/app/workers/geo/repositories_clean_up_worker.rb' + - 'ee/app/workers/geo/repository_cleanup_worker.rb' + - 'ee/app/workers/geo/repository_verification/primary/single_worker.rb' + - 'ee/app/workers/geo/repository_verification/secondary/single_worker.rb' + - 'ee/app/workers/geo/reverification_batch_worker.rb' + - 'ee/app/workers/geo/scheduler/per_shard_scheduler_worker.rb' + - 'ee/app/workers/geo/scheduler/scheduler_worker.rb' + - 'ee/app/workers/geo/secondary/registry_consistency_worker.rb' + - 'ee/app/workers/geo/secondary_usage_data_cron_worker.rb' + - 'ee/app/workers/geo/sidekiq_cron_config_worker.rb' + - 'ee/app/workers/geo/sync_timeout_cron_worker.rb' + - 'ee/app/workers/geo/verification_batch_worker.rb' + - 'ee/app/workers/geo/verification_cron_worker.rb' + - 'ee/app/workers/geo/verification_timeout_worker.rb' + - 'ee/app/workers/geo/verification_worker.rb' + - 'ee/app/workers/geo_repository_destroy_worker.rb' + - 'ee/app/workers/group_saml_group_sync_worker.rb' + - 'ee/app/workers/groups/schedule_bulk_repository_shard_moves_worker.rb' + - 'ee/app/workers/groups/update_statistics_worker.rb' + - 'ee/app/workers/historical_data_worker.rb' + - 'ee/app/workers/import_software_licenses_worker.rb' + - 'ee/app/workers/incident_management/apply_incident_sla_exceeded_label_worker.rb' + - 'ee/app/workers/incident_management/incident_sla_exceeded_check_worker.rb' + - 'ee/app/workers/incident_management/oncall_rotations/persist_all_rotations_shifts_job.rb' + - 'ee/app/workers/incident_management/oncall_rotations/persist_shifts_job.rb' + - 'ee/app/workers/incident_management/pending_escalations/alert_check_worker.rb' + - 'ee/app/workers/incident_management/pending_escalations/alert_create_worker.rb' + - 'ee/app/workers/incident_management/pending_escalations/schedule_check_cron_worker.rb' + - 'ee/app/workers/iterations/cadences/create_iterations_worker.rb' + - 'ee/app/workers/iterations/cadences/schedule_create_iterations_worker.rb' + - 'ee/app/workers/iterations/roll_over_issues_worker.rb' + - 'ee/app/workers/iterations_update_status_worker.rb' + - 'ee/app/workers/ldap_all_groups_sync_worker.rb' + - 'ee/app/workers/ldap_group_sync_worker.rb' + - 'ee/app/workers/ldap_sync_worker.rb' + - 'ee/app/workers/merge_request_reset_approvals_worker.rb' + - 'ee/app/workers/merge_requests/sync_code_owner_approval_rules_worker.rb' + - 'ee/app/workers/merge_trains/refresh_worker.rb' + - 'ee/app/workers/network_policy_metrics_worker.rb' + - 'ee/app/workers/new_epic_worker.rb' + - 'ee/app/workers/personal_access_tokens/groups/policy_worker.rb' + - 'ee/app/workers/personal_access_tokens/instance/policy_worker.rb' + - 'ee/app/workers/project_import_schedule_worker.rb' + - 'ee/app/workers/pseudonymizer_worker.rb' + - 'ee/app/workers/refresh_license_compliance_checks_worker.rb' + - 'ee/app/workers/repository_push_audit_event_worker.rb' + - 'ee/app/workers/repository_update_mirror_worker.rb' + - 'ee/app/workers/requirements_management/import_requirements_csv_worker.rb' + - 'ee/app/workers/requirements_management/process_requirements_reports_worker.rb' + - 'ee/app/workers/scan_security_report_secrets_worker.rb' + - 'ee/app/workers/security/auto_fix_worker.rb' + - 'ee/app/workers/security/create_orchestration_policy_worker.rb' + - 'ee/app/workers/security/orchestration_policy_rule_schedule_worker.rb' + - 'ee/app/workers/security/store_scans_worker.rb' + - 'ee/app/workers/security/track_secure_scans_worker.rb' + - 'ee/app/workers/set_user_status_based_on_user_cap_setting_worker.rb' + - 'ee/app/workers/status_page/publish_worker.rb' + - 'ee/app/workers/store_security_reports_worker.rb' + - 'ee/app/workers/store_security_scans_worker.rb' + - 'ee/app/workers/sync_seat_link_request_worker.rb' + - 'ee/app/workers/sync_seat_link_worker.rb' + - 'ee/app/workers/todos_destroyer/confidential_epic_worker.rb' + - 'ee/app/workers/update_all_mirrors_worker.rb' + - 'ee/app/workers/update_max_seats_used_for_gitlab_com_subscriptions_worker.rb' + - 'ee/app/workers/vulnerabilities/historical_statistics/deletion_worker.rb' + - 'ee/app/workers/vulnerabilities/statistics/adjustment_worker.rb' + - 'ee/app/workers/vulnerabilities/statistics/schedule_worker.rb' + - 'ee/app/workers/vulnerability_exports/export_deletion_worker.rb' + - 'ee/app/workers/vulnerability_exports/export_worker.rb' diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index ad1f7afa45..09aa4471a4 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -440,7 +440,7 @@ Rails/ApplicationController: - 'app/controllers/health_controller.rb' - 'app/controllers/metrics_controller.rb' - 'ee/app/controllers/oauth/geo_auth_controller.rb' - - 'ee/spec/helpers/ee/services_helper_spec.rb' + - 'ee/spec/helpers/ee/integrations_helper_spec.rb' - 'lib/gitlab/base_doorkeeper_controller.rb' - 'lib/gitlab/request_forgery_protection.rb' - 'spec/controllers/concerns/continue_params_spec.rb' @@ -660,23 +660,6 @@ Style/BisectedAttrAccessor: Style/CaseLikeIf: Enabled: false -# Offense count: 10 -# Cop supports --auto-correct. -# Configuration parameters: IgnoredMethods. -# IgnoredMethods: ==, equal?, eql? -Style/ClassEqualityComparison: - Exclude: - - 'app/finders/security/jobs_finder.rb' - - 'app/services/projects/overwrite_project_service.rb' - - 'app/uploaders/dependency_proxy/file_uploader.rb' - - 'ee/app/graphql/resolvers/vulnerabilities/issue_links_resolver.rb' - - 'lib/gitlab/background_migration/user_mentions/models/note.rb' - - 'lib/gitlab/diff/file.rb' - - 'lib/gitlab/git.rb' - - 'lib/gitlab/import_export/relation_tree_restorer.rb' - - 'spec/requests/api/services_spec.rb' - - 'spec/support/shared_examples/lib/gitlab/import_export/relation_factory_shared_examples.rb' - # Offense count: 13 Style/CombinableLoops: Exclude: diff --git a/CHANGELOG.md b/CHANGELOG.md index 46d8c4a8ec..9582c660d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,69 +2,681 @@ documentation](doc/development/changelog.md) for instructions on adding your own entry. -## 14.0.10 (2021-09-02) +## 14.1.7 (2021-09-30) -No changes. +### Security (28 changes) -## 14.0.9 (2021-08-31) +- [Require password param for 2FA changes](gitlab-org/security/gitlab@4e16401a77264ef3127f0bb314fa0abab11216c7) ([merge request](gitlab-org/security/gitlab!1816)) +- [Fix permissions check on project members import](gitlab-org/security/gitlab@be54b3f4890fa89d58cb02be79c65025f606bd6c) ([merge request](gitlab-org/security/gitlab!1860)) +- [Respect disabled import sources when initiating import via API](gitlab-org/security/gitlab@b76b6229c93447954efc5719e6dd61eb601afdc4) ([merge request](gitlab-org/security/gitlab!1848)) +- [Return 404 if model id wasn't passed to UploadsController](gitlab-org/security/gitlab@8ab1cfaafba21a9e90ef41677993af2afdcd920a) ([merge request](gitlab-org/security/gitlab!1845)) +- [Scrub artifacts signed URL in SendEntry logs](gitlab-org/security/gitlab@5bae93b2f085d5dac58e411bffb5ca518fe7df98) ([merge request](gitlab-org/security/gitlab!1842)) +- [Prevent double-impersonation and impersonation breakout](gitlab-org/security/gitlab@7c82d0f2a1dbfb0a23d6a5cdaee448307ffc6972) ([merge request](gitlab-org/security/gitlab!1836)) +- [Clear session access tokens when starting/stopping impersonation](gitlab-org/security/gitlab@a4d529eb7c8eeb3e9c42ae3d81514d79a905cdb7) ([merge request](gitlab-org/security/gitlab!1833)) +- [Use validated URL when sending request to Gitea Importer](gitlab-org/security/gitlab@b30536e6c9aa969c76bcd167f00db5a0e07ace7a) ([merge request](gitlab-org/security/gitlab!1820)) +- [Fix XSS in Jira link](gitlab-org/security/gitlab@9ace10c46744ee220c649d2da0eeb3e99216ee7d) ([merge request](gitlab-org/security/gitlab!1625)) **GitLab Enterprise Edition** +- [Fix fogbugz importer DNS Rebind SSRF](gitlab-org/security/gitlab@9d7107665d6ed931ef4b2feeb0287bc71b89232c) ([merge request](gitlab-org/security/gitlab!1682)) +- [Remove related project access tokens when a project is deleted](gitlab-org/security/gitlab@b86096865949f07f6a2020603959117d9c84877b) ([merge request](gitlab-org/security/gitlab!1812)) +- [Require group admin access to list pending invites](gitlab-org/security/gitlab@404b344edd61b2f13c3498cd545c2b40165ee536) ([merge request](gitlab-org/security/gitlab!1721)) +- [Do not export and import repository_size_limit](gitlab-org/security/gitlab@56f563980f944f1a5e3935ad82070e6719cd5a0c) ([merge request](gitlab-org/security/gitlab!1768)) +- [Escapes MR approval rule names correctly](gitlab-org/security/gitlab@ea64f981ce70a0e1e6ee58e64a6007e82f48e071) ([merge request](gitlab-org/security/gitlab!1809)) +- [Filter shared groups autocomplete by permitted](gitlab-org/security/gitlab@59999ab27cba402589b27d204cf29678100e948b) ([merge request](gitlab-org/security/gitlab!1806)) **GitLab Enterprise Edition** +- [Require access token for git when 2fa is required](gitlab-org/security/gitlab@6a4a75efd7685a69ffa7cc4c027c7058013cca45) ([merge request](gitlab-org/security/gitlab!1796)) +- [Disable exporting pipeline triggers on project export](gitlab-org/security/gitlab@8a8c78ed054def210013a849195939d7888fcf65) ([merge request](gitlab-org/security/gitlab!1790)) +- [Add pagination to dependencies API](gitlab-org/security/gitlab@2a963ad670c60d1f3078fdf446ea755c5862fa26) ([merge request](gitlab-org/security/gitlab!1725)) **GitLab Enterprise Edition** +- [Permission check issuable template API data](gitlab-org/security/gitlab@9d95d13bc714e46b5e3697288c4b398cb5aee88b) ([merge request](gitlab-org/security/gitlab!1787)) **GitLab Enterprise Edition** +- [Apply account locking to password reset page](gitlab-org/security/gitlab@47ee79b1983de886f5ebe04b2975c2e37aa938ce) ([merge request](gitlab-org/security/gitlab!1784)) +- [Enforce configured scopes for Oauth applications](gitlab-org/security/gitlab@acf2d894c91aa7fb72ea32b10e50e94441885399) ([merge request](gitlab-org/security/gitlab!1781)) +- [Verify state before using errors from OAuth2 OmniAuth providers](gitlab-org/security/gitlab@20073576508aa239e52d8ff911c1dfd3df8af670) ([merge request](gitlab-org/security/gitlab!1778)) +- [Prevent moving epic issues to different group hierarchy](gitlab-org/security/gitlab@93c6ec69b7bc6c9124a2a5350cebebb57f63a28f) ([merge request](gitlab-org/security/gitlab!1774)) **GitLab Enterprise Edition** +- [Prevent showing not allowed subgroup epics](gitlab-org/security/gitlab@72a11e72425a033f3464d6ff12b4d06e12ec9faf) ([merge request](gitlab-org/security/gitlab!1766)) **GitLab Enterprise Edition** +- [Do not allow status checks to exist with external protected branches](gitlab-org/security/gitlab@8f96c013ccbbe9c52b3f03fb0d247debb1b157a8) ([merge request](gitlab-org/security/gitlab!1763)) **GitLab Enterprise Edition** +- [Fix GFM autocomplete xss](gitlab-org/security/gitlab@fd92dabddff5ae5d67a98aef5d858438520a2f06) ([merge request](gitlab-org/security/gitlab!1748)) +- [Prohibit anonymous access for specific user API endpoint](gitlab-org/security/gitlab@2e8a386430309a931dbbd47fba7540a53399ad64) ([merge request](gitlab-org/security/gitlab!1737)) +- [Fix denial-of-service attack in Markdown parser](gitlab-org/security/gitlab@5b6ed5212f880e2397dbea9ffc74cf0a35bd4411) ([merge request](gitlab-org/security/gitlab!1728)) -### Security (9 changes) - -- [Update apollo_upload_server dependency](gitlab-org/security/gitlab@ced741d93fa664f0c152f524949258bf969b7667) ([merge request](gitlab-org/security/gitlab!1701)) -- [Ensure shared group members lose project access after group deletion](gitlab-org/security/gitlab@3a41f4e29c01188aaaf01ab5e3deec2a9eeed18e) ([merge request](gitlab-org/security/gitlab!1685)) -- [Fix stored XSS vulnerability in Datadog settings form](gitlab-org/security/gitlab@269e5bf96b5e97c3b8e6f6b8b3f593d958de2ecb) ([merge request](gitlab-org/security/gitlab!1672)) -- [Inherit user external status while creating project bots](gitlab-org/security/gitlab@5bae4e53bd4c363270b2fc2e308b81d2a2a388a6) ([merge request](gitlab-org/security/gitlab!1666)) -- [Escape issue reference and title for Jira issues](gitlab-org/security/gitlab@0397f2b393d563559c49c39c0ba1d192d08a10d7) ([merge request](gitlab-org/security/gitlab!1663)) **GitLab Enterprise Edition** -- [Require sign in for .keys endpoint on non-public instances](gitlab-org/security/gitlab@13a7f6001f663b3745159fa37b518ba4a43355bd) ([merge request](gitlab-org/security/gitlab!1659)) -- [Update Import/Export to use public email when mapping users](gitlab-org/security/gitlab@f3d1b800af55986cef83aeaf4df1312e3070f0c5) ([merge request](gitlab-org/security/gitlab!1654)) **GitLab Enterprise Edition** -- [Only create jira connect NS subscriptions for admins](gitlab-org/security/gitlab@34bdcd45f24eaa051702834fb6c3568e45721004) ([merge request](gitlab-org/security/gitlab!1647)) -- [Prevent non-admins from configuring Jira connect app](gitlab-org/security/gitlab@4af692246224b1cd1e2fe3c6d0ac2613c0f8fe39) ([merge request](gitlab-org/security/gitlab!1643)) - -## 14.0.8 (2021-08-25) +## 14.1.6 (2021-09-27) ### Fixed (1 change) -- [Fix: Sidekiq workers delete each other's metrics](gitlab-org/gitlab@98a85fcbcdf2f8dfef83e552a850591e8952c057) ([merge request](gitlab-org/gitlab!68761)) +- [Fix Elastic::MigrationWorker current_migration (2nd attempt)](gitlab-org/gitlab@f07c7a5f173a2fc053247664f21c03d29df543a4) ([merge request](gitlab-org/gitlab!71187)) **GitLab Enterprise Edition** + +## 14.1.5 (2021-09-02) + +### Fixed (1 change) + +- [Geo: Replicate multi-arch containers](gitlab-org/gitlab@4f74fe9fb6f53cd877d8f793e2ef74c4177006d1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67624)) **GitLab Enterprise Edition** + +## 14.1.4 (2021-08-31) + +### Security (8 changes) + +- [Update apollo_upload_server dependency](gitlab-org/security/gitlab@34e7e3b7590fd76d0f618091551651e8065edfd2) ([merge request](gitlab-org/security/gitlab!1700)) +- [Ensure shared group members lose project access after group deletion](gitlab-org/security/gitlab@4a7b8203776b719c06186c1b189a8cf21572fcd4) ([merge request](gitlab-org/security/gitlab!1684)) +- [Fix stored XSS vulnerability in Datadog settings form](gitlab-org/security/gitlab@0906814af604e7fcab54a96bccadcba11207387d) ([merge request](gitlab-org/security/gitlab!1671)) +- [Inherit user external status while creating project bots](gitlab-org/security/gitlab@d5a26c4145d917b5b49e207e03669d2b7e4ee617) ([merge request](gitlab-org/security/gitlab!1665)) +- [Escape issue reference and title for Jira issues](gitlab-org/security/gitlab@4153444b76421ddf3a7fd21f1fc0500700a4e263) ([merge request](gitlab-org/security/gitlab!1662)) **GitLab Enterprise Edition** +- [Require sign in for .keys endpoint on non-public instances](gitlab-org/security/gitlab@b090b3f6dee6d21d93595c5e46e6c5c7fc30f1fb) ([merge request](gitlab-org/security/gitlab!1658)) +- [Only create jira connect NS subscriptions for admins](gitlab-org/security/gitlab@3f2040c0e2c90f3fcafdbf0f86bd2591bd458dff) ([merge request](gitlab-org/security/gitlab!1648)) +- [Prevent non-admins from configuring Jira connect app](gitlab-org/security/gitlab@fa864c0a2eaf450033f4c594cea07d9f24144cd6) ([merge request](gitlab-org/security/gitlab!1644)) + +## 14.1.3 (2021-08-17) + +### Fixed (2 changes) + +- [Geo 2.0 Regression - Add ability to remove primary](gitlab-org/gitlab@1635f3d07d421edd2a83be109d7c54635aa4f58c) ([merge request](gitlab-org/gitlab!68383)) **GitLab Enterprise Edition** +- [[RUN AS-IF-FOSS] AS Fix SAML SSO login redirects not working](gitlab-org/gitlab@7b551e3d2a4ba6127549c613ee95e2c12c014b90) ([merge request](gitlab-org/gitlab!68383)) **GitLab Enterprise Edition** ### Changed (1 change) -- [Resolve "operator does not exist: integer[] || bigint in...](gitlab-org/gitlab@273cc43f7928e89fd11237b58fdfdfb8a24e5493) ([merge request](gitlab-org/gitlab!68761)) +- [Resolve "operator does not exist: integer[] || bigint in...](gitlab-org/gitlab@99e6457b6d9d39805dc7758c47091cf6ad0f2bdd) ([merge request](gitlab-org/gitlab!68383)) + +## 14.1.2 (2021-08-03) + +### Security (19 changes) + +- [Add project member validation for domain limitation](gitlab-org/security/gitlab@d17016dde463811c81a22c07aeab817ff7b5757c) ([merge request](gitlab-org/security/gitlab!1564)) +- [Hide project-level CI/CD Analytics for Guests](gitlab-org/security/gitlab@ce3b41daadd795e906b5bbbec424a494c491a1d4) ([merge request](gitlab-org/security/gitlab!1600)) +- [Only allow invite to be accepted by user with matching email](gitlab-org/security/gitlab@9d9e439c6a923fa4791a056e599c7b7e76de59a1) ([merge request](gitlab-org/security/gitlab!1632)) +- [Add html escaping for default branch name](gitlab-org/security/gitlab@549101007452bd43d866d314b1c787120cfcb36a) ([merge request](gitlab-org/security/gitlab!1630)) +- [Configure OmniAuth to use GitLab AppLogger](gitlab-org/security/gitlab@0b234f0058bbaa0415ab43182761757c332764d1) ([merge request](gitlab-org/security/gitlab!1615)) +- [Add permissions check to pipelines#show action](gitlab-org/security/gitlab@6901d52d5265d126419e78848344ae9a886ee1a7) ([merge request](gitlab-org/security/gitlab!1612)) +- [Prevent impersonation in gitlab-shell SSH certs](gitlab-org/security/gitlab@82a878ba276c6500af5aa3d951819240535127de) ([merge request](gitlab-org/security/gitlab!1609)) +- [Fix Protected Environment Accesses Cleanup](gitlab-org/security/gitlab@0c954547dbdee6a47fc755eebef0882852080579) ([merge request](gitlab-org/security/gitlab!1606)) **GitLab Enterprise Edition** +- [Use oauth_app id instead of uid](gitlab-org/security/gitlab@9c49cbbbc730eb16ef109c1f1fc1b167768d5dd3) ([merge request](gitlab-org/security/gitlab!1603)) **GitLab Enterprise Edition** +- [Block impersonation token use if it is not permitted](gitlab-org/security/gitlab@1a73b228549dfe1fe98f44a8cee8e3ebcc36d841) ([merge request](gitlab-org/security/gitlab!1583)) +- [Fix XSS in Mermaid Markdown rendering](gitlab-org/security/gitlab@6bff57b10739c42d177371dbf44143d92de1e595) ([merge request](gitlab-org/security/gitlab!1488)) +- [Do not show email address in error message](gitlab-org/security/gitlab@fdee78b193d9744253c7b7d671247cc50175c643) ([merge request](gitlab-org/security/gitlab!1596)) **GitLab Enterprise Edition** +- [Updates oauth to 0.5.6](gitlab-org/security/gitlab@bfa3de880659b0156cf8c2a7085b1705596380a4) ([merge request](gitlab-org/security/gitlab!1592)) +- [Fix tag ref detection for pipelines](gitlab-org/security/gitlab@87a03ffd263ad153a911e14512cb7776b98a435d) ([merge request](gitlab-org/security/gitlab!1591)) +- [Disallow non-members to set issue metadata on issue create](gitlab-org/security/gitlab@abe9d660ce3314c1540ec20b3a0640e623c56ecc) ([merge request](gitlab-org/security/gitlab!1586)) +- [Prevent guests from linking issues with errors](gitlab-org/security/gitlab@4a74667407b725176c4722e86bba3f942ffc9487) ([merge request](gitlab-org/security/gitlab!1587)) +- [Filter todos whose target users no longer have access to](gitlab-org/security/gitlab@a05dd90c43ae84bb37956217d9cf4effd1edae50) ([merge request](gitlab-org/security/gitlab!1556)) +- [Remove impersonation token from api response for non-admin user](gitlab-org/security/gitlab@928eaf1b82d45fbfa0d82b6515d192453b944ab9) ([merge request](gitlab-org/security/gitlab!1565)) +- [Restrict access to instance-level security features for reporters](gitlab-org/security/gitlab@d4097341cede050e0066fa2a5445cbf51a1cc1bd) ([merge request](gitlab-org/security/gitlab!1561)) **GitLab Enterprise Edition** + +## 14.1.1 (2021-07-28) + +### Added (1 change) + +- [RackAttack: extend basic authentication detection for rate limiting](gitlab-org/gitlab@ad521c88bfa8da185380397aa2e6e8972a28b04e) ([merge request](gitlab-org/gitlab!66726)) + +### Fixed (3 changes) + +- [Prevent terms from being created if blank](gitlab-org/gitlab@29e5ebe23869cfe1325d8f7ab2ec17a3a8670f61) ([merge request](gitlab-org/gitlab!66726)) +- [Fix: Sidekiq workers delete each other's metrics](gitlab-org/gitlab@d6d8ed55392a90cc55aa6213ebae80008d0df3e0) ([merge request](gitlab-org/gitlab!66726)) +- [Resolve "Bulk dismissal checkboxes don't appear on group vulnerability report"](gitlab-org/gitlab@77b2cf8b935aba08f23c00cf5fdc746849a65e74) ([merge request](gitlab-org/gitlab!66726)) **GitLab Enterprise Edition** ### Other (1 change) -- [Revert backfill on ci_build_trace_sections](gitlab-org/gitlab@10a5ad9dce9014eb8af6493402dcdd1658dbd62a) ([merge request](gitlab-org/gitlab!68761)) +- [Revert backfill on ci_build_trace_sections](gitlab-org/gitlab@a67a8d734440d50c5fdbb0c559b5d2a2f6e48fae) ([merge request](gitlab-org/gitlab!66726)) -## 14.0.7 (2021-08-03) +## 14.1.0 (2021-07-21) -### Security (18 changes) +### Added (123 changes) -- [Add project member validation for domain limitation](gitlab-org/security/gitlab@f9a0e78111cbbfe93b6f8ca27bd9f064e146d005) ([merge request](gitlab-org/security/gitlab!1563)) -- [Hide project-level CI/CD Analytics for Guests](gitlab-org/security/gitlab@56a17ae80c1f179bcdf939d6b8e71737f9501949) ([merge request](gitlab-org/security/gitlab!1574)) -- [Only allow invite to be accepted by user with matching email](gitlab-org/security/gitlab@a79d0e6dbbc32247c10c4928a04f0149071eb5fe) ([merge request](gitlab-org/security/gitlab!1633)) -- [Add html escaping for default branch name](gitlab-org/security/gitlab@d26f0c4d5ef386100d40e92f815b7e754fccacc3) ([merge request](gitlab-org/security/gitlab!1631)) -- [Configure OmniAuth to use GitLab AppLogger](gitlab-org/security/gitlab@dfcff90cb86fac0dff05d8bd5f25f46da2cc8ce0) ([merge request](gitlab-org/security/gitlab!1616)) -- [Add permissions check to pipelines#show action](gitlab-org/security/gitlab@c611a8154dc5776a0767b4153ff8963d46e7f39a) ([merge request](gitlab-org/security/gitlab!1613)) -- [Prevent impersonation in gitlab-shell SSH certs](gitlab-org/security/gitlab@320457b16cbfd5dec4e05937c4d61b96aba4c290) ([merge request](gitlab-org/security/gitlab!1610)) -- [Fix Protected Environment Accesses Cleanup](gitlab-org/security/gitlab@99846cdeda6acf6223fb0ee5364e375765d3cbb1) ([merge request](gitlab-org/security/gitlab!1607)) **GitLab Enterprise Edition** -- [Do not show email address in error message](gitlab-org/security/gitlab@5c4adf419e38f0fd9d540d2f7cd9d14888bc6b96) ([merge request](gitlab-org/security/gitlab!1597)) **GitLab Enterprise Edition** -- [Disallow non-members to set issue metadata on issue create](gitlab-org/security/gitlab@0bb4499e5f4514beb647d0e6ac3f9b15720c42ce) ([merge request](gitlab-org/security/gitlab!1581)) -- [Prevent guests from linking issues with errors](gitlab-org/security/gitlab@94462a56e9490ddd85ec7d1d869b6fda2042fb99) ([merge request](gitlab-org/security/gitlab!1588)) -- [Block impersonation token use if it is not permitted](gitlab-org/security/gitlab@31b8bc506dd89a576a2cda094c711c22be764398) ([merge request](gitlab-org/security/gitlab!1584)) -- [Updates oauth to 0.5.6](gitlab-org/security/gitlab@c839b6107c41bcd02e048d0ae0499c140bfbec1c) ([merge request](gitlab-org/security/gitlab!1568)) -- [Remove impersonation token from api response for non-admin user](gitlab-org/security/gitlab@845dc284cc8ee8736e4f65740d61ffeb197f7b7c) ([merge request](gitlab-org/security/gitlab!1566)) -- [Filter todos whose target users no longer have access to](gitlab-org/security/gitlab@a6c81e5cadb277f80d1b9565700f8b1f201cfb05) ([merge request](gitlab-org/security/gitlab!1554)) -- [Fix tag ref detection for pipelines](gitlab-org/security/gitlab@cd5f61dc50c44d69896b38f3bd44129a8f1f01d8) ([merge request](gitlab-org/security/gitlab!1548)) -- [Restrict access to instance-level security features for reporters](gitlab-org/security/gitlab@c8a75e8032c68065524a85f7030960b614a915bd) ([merge request](gitlab-org/security/gitlab!1539)) **GitLab Enterprise Edition** -- [Fix XSS in Mermaid Markdown rendering](gitlab-org/security/gitlab@86139e79c13cf87183cdec9f84ec114cdfc6d215) ([merge request](gitlab-org/security/gitlab!1489)) +- [Add ability to set `squash_option` in the Project API](gitlab-org/gitlab@0cd893d72f410351411563e54af9e1d3f6fd789f) ([merge request](gitlab-org/gitlab!66122)) +- [Add ref to pipeline graphql schema](gitlab-org/gitlab@4f4f2ec9adf86f841828b87f39639684ee2051f0) ([merge request](gitlab-org/gitlab!66241)) +- [Upsell the GitLab Managed Terraform state if the repo contains `.tf` files](gitlab-org/gitlab@e2763f345fde0232092e6b099550c715c503e03e) ([merge request](gitlab-org/gitlab!65870)) +- [Add mailgun endpoint for receiveing permanent failures](gitlab-org/gitlab@af2a6a81b92110c27da08528c5ed5dfe1ebf3f7d) ([merge request](gitlab-org/gitlab!65078)) +- [Add error tracking collector](gitlab-org/gitlab@90e16440fc02e74d426a8c023a2e6a0f9d430990) ([merge request](gitlab-org/gitlab!65767)) +- [Add Vulnerability Management metric for Devops Adoption API](gitlab-org/gitlab@4ef341255b5620a68a9ee3b4f8a570bac0bb1202) ([merge request](gitlab-org/gitlab!66081)) +- [Allow immediate deletion of projects](gitlab-org/gitlab@1752841832fcbe88bd9da3b3720697bcce2be9dc) ([merge request](gitlab-org/gitlab!65522)) **GitLab Enterprise Edition** +- [Make database changes to persist false_positive information](gitlab-org/gitlab@10ff49e8bca5a0510fc2599bf378f1aecbe16394) ([merge request](gitlab-org/gitlab!65573)) +- [Added user_cap to setting update service](gitlab-org/gitlab@f88b2f61621c4177adbd3ac68fa7e53f95aab811) ([merge request](gitlab-org/gitlab!65542)) +- [Audit successful GPG key creation and removal](gitlab-org/gitlab@f32cc873fac3b730af86bb8095862190770174ff) ([merge request](gitlab-org/gitlab!65973)) **GitLab Enterprise Edition** +- [Enable sidekiq load balancing by default](gitlab-org/gitlab@a36a0b84264738c942363798a9dab3a6b51895a7) ([merge request](gitlab-org/gitlab!65669)) +- [Add Pipeline Editor branch selector](gitlab-org/gitlab@13b69f776686e98fa0752c303aebb8c64320c264) ([merge request](gitlab-org/gitlab!61793)) +- [Introduce multiple oncall schedules feature](gitlab-org/gitlab@643a821b2314347b6932a36642ab9a77271652e8) ([merge request](gitlab-org/gitlab!65827)) **GitLab Enterprise Edition** +- [Track secure scans](gitlab-org/gitlab@4e38000304a5f900bf9049fdf5e5a4de488f8bfb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64578)) **GitLab Enterprise Edition** +- [Redirect to the new default branch from a deleted default branch](gitlab-org/gitlab@3ab93d237c5ef8bf9be2a17d7b177dcf9aaca674) ([merge request](gitlab-org/gitlab!65469)) +- [Add button to insert images in content editor](gitlab-org/gitlab@359961ca833e3b0f1f31b03dec68ab5efb2dfabe) ([merge request](gitlab-org/gitlab!63939)) +- [Add support for rendering tables in content editor](gitlab-org/gitlab@51035cfad7a5b51427b4bf7f9d8398049f473dee) ([merge request](gitlab-org/gitlab!63945)) +- [Release the Helm charts registry](gitlab-org/gitlab@ff3de432b40b91173490084c56092fe0178736c9) ([merge request](gitlab-org/gitlab!65768)) +- [Allow configuring Redis trace chunks instance](gitlab-org/gitlab@607f6703c5136d9684a9d7176eba85bf7b3d5f19) ([merge request](gitlab-org/gitlab!65871)) +- [Add warning when import url does not ends with .git](gitlab-org/gitlab@2d909b1b1477bdb5228576d46fdc4eccb0afd61b) ([merge request](gitlab-org/gitlab!65739)) +- [Adds ID to group, stage, and detailed status](gitlab-org/gitlab@326a4a9d21de0ac4b29225d86f793452d7168057) ([merge request](gitlab-org/gitlab!64630)) +- [Removed the compliance_dashboard_drawer feature flag](gitlab-org/gitlab@0351c9db623f5965d2015091b7bcde902c8fd740) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65943)) **GitLab Enterprise Edition** +- [Upgrade GitLab Pages to 1.41.0](gitlab-org/gitlab@18c7524a21e8abf53f59d39aa333a6e67e5e13f5) ([merge request](gitlab-org/gitlab!66033)) +- [Enable GraphQL Runner API](gitlab-org/gitlab@e6d9456e6730b21bb167b52f736a7026ba906ee5) ([merge request](gitlab-org/gitlab!65942)) +- [Add Collected Data Categories Service Ping metric](gitlab-org/gitlab@ff900fe685fae48c77174598cc98247c9c144057) ([merge request](gitlab-org/gitlab!65336)) +- [Show progress of an epic on epic board cards](gitlab-org/gitlab@788e814331973744e48862b4f8878b4f63dc5bf8) ([merge request](gitlab-org/gitlab!64622)) **GitLab Enterprise Edition** +- [Add graphql mutation to enable dependency scanning](gitlab-org/gitlab@b342443ef2e9cd11ca258d335f7cc12a1877d30e) ([merge request](gitlab-org/gitlab!64710)) **GitLab Enterprise Edition** +- [Enable sec_dependency_scanning_ui_enable by default](gitlab-org/gitlab@132a5d6fdb71921733d6bd0c08a2dc3d577398af) ([merge request](gitlab-org/gitlab!58363)) **GitLab Enterprise Edition** +- [Add policy type filter](gitlab-org/gitlab@2a791915afc4afe061f1be42c5f7bb3386c1f0fc) ([merge request](gitlab-org/gitlab!65500)) **GitLab Enterprise Edition** +- [Adds audit event when compliance framework changed](gitlab-org/gitlab@6f7186c52af863637d445ac3c8f8f3005622effb) ([merge request](gitlab-org/gitlab!65343)) **GitLab Enterprise Edition** +- [Allow copying Epic reference from sidebar](gitlab-org/gitlab@442aa2b51b46490ccfd6cb0bd2b8c133da5d48b7) ([merge request](gitlab-org/gitlab!65550)) **GitLab Enterprise Edition** +- [Audit successful key destroy action](gitlab-org/gitlab@e2943e7199d3139f8d279c95a21ed5621412480d) ([merge request](gitlab-org/gitlab!65615)) **GitLab Enterprise Edition** +- [Add observability to Snowplow tracking](gitlab-org/gitlab@fd135d450a1b9a2bbc56ae7f0383605975010574) ([merge request](gitlab-org/gitlab!65664)) +- [Support providing kind to internal Network Policies edit API](gitlab-org/gitlab@b007a9ba5311b27983f34db9e1ac9122b7e223bf) ([merge request](gitlab-org/gitlab!65476)) **GitLab Enterprise Edition** +- [Add Running Container Scanning CI Template](gitlab-org/gitlab@f22a8edfe14d47597e02e42dca095356805e007a) ([merge request](gitlab-org/gitlab!64220)) **GitLab Enterprise Edition** +- [Add pause and resume to background migrations](gitlab-org/gitlab@32f6ba0477c42e5ec7acb47c137c2170440a7abf) ([merge request](gitlab-org/gitlab!65512)) +- [Display Helm packages in the package registry](gitlab-org/gitlab@e14e343debcc31ab0a8258fd986fae9f766b7377) ([merge request](gitlab-org/gitlab!65688)) +- [Feat(Blob): Add CSV render support for Blob Viewer](gitlab-org/gitlab@ccc0d8ae4892f8ee87e9ba2ae5ff91d7fab70f43) ([merge request](gitlab-org/gitlab!65050)) +- [Added user_cap column to namespace_settings](gitlab-org/gitlab@672c54a0b6b49f2aa49bd5af9837ae0156f1f2b8) ([merge request](gitlab-org/gitlab!65470)) +- [Wiki repositories use default branch when creating the repo](gitlab-org/gitlab@e1743a5e79b1c1e43390a4794f4ee1a817dacd22) ([merge request](gitlab-org/gitlab!65221)) +- [Allow sort by popularity for issues via GraphQL](gitlab-org/gitlab@89de38a6bbb8efdb4ec088782c885b3027ea05f7) ([merge request](gitlab-org/gitlab!65323)) +- [Allow sort by blocking issues via GraphQL](gitlab-org/gitlab@552576ffe9659ce790f8e10f8423b5adba7e1234) ([merge request](gitlab-org/gitlab!65323)) **GitLab Enterprise Edition** +- [Expose GraphQL query complexity score](gitlab-org/gitlab@8eefd99c0ae9d9fdc94148a090695fb2458bd4b8) ([merge request](gitlab-org/gitlab!52448)) +- [Extend NetworkPolicy GraphQL API with `Environments` field](gitlab-org/gitlab@77a1cab8963fbfbcfc9cca2837800c021e2f0b29) ([merge request](gitlab-org/gitlab!65314)) **GitLab Enterprise Edition** +- [Remove ff_external_status_checks feature flag](gitlab-org/gitlab@22cccda58751a0e3aad78ee2fbe4bb43927fbce7) ([merge request](gitlab-org/gitlab!65053)) **GitLab Enterprise Edition** +- [Accept GitHub source highlight URL argument format](gitlab-org/gitlab@c87dfa3fcf89f23f756a18fd178c9bde82169e19) ([merge request](gitlab-org/gitlab!65453)) +- [Add emoji name to tooltip](gitlab-org/gitlab@9022559ef4a0465c51d67175d3f61ddd02f19f8b) ([merge request](gitlab-org/gitlab!65439)) +- [Do not export certain models when using Relations Export API](gitlab-org/gitlab@7c5cef46687ec0fb2a4344509d393c46399b52c4) ([merge request](gitlab-org/gitlab!65347)) +- [Add Coverage fuzzing to DevopsAdoption API](gitlab-org/gitlab@f1d4e0c5dde9a8b6934e61f527227746d2c314c4) ([merge request](gitlab-org/gitlab!65253)) +- [Extend Plan limits API with `terraform_module_max_file_size`](gitlab-org/gitlab@07804f5472e897ae7d70465b33e2a0282d42f5b0) ([merge request](gitlab-org/gitlab!65425)) +- [Add dependency scanning to DevopsAdoption API](gitlab-org/gitlab@0b0198255f3b10606458f4d0996c1550b9d4a790) ([merge request](gitlab-org/gitlab!64624)) +- [Add Bulk Imports API to view user initiated imports](gitlab-org/gitlab@c10058e690c2de140805baa4a08a15c47e5a381a) ([merge request](gitlab-org/gitlab!64335)) +- [Allow sort and expose expired field for milestones](gitlab-org/gitlab@771d9576f5dc27e30fbc2df990b22764bfb028f8) ([merge request](gitlab-org/gitlab!64572)) +- [Add group-level DORA metrics to GraphQL endpoint](gitlab-org/gitlab@b23f814969a4691a3651030483558d334641f0bc) ([merge request](gitlab-org/gitlab!65279)) **GitLab Enterprise Edition** +- [Make the variable type for the GitLab CI secret configurable](gitlab-org/gitlab@0ff59c782a585ad3a2b9a2bdf6626a31c5ea145b) ([merge request](gitlab-org/gitlab!54858)) **GitLab Enterprise Edition** +- [Add GitLab revision to Prometheus metric](gitlab-org/gitlab@36046c63b2dea241070c91a07a7650a3b65bec55) ([merge request](gitlab-org/gitlab!65276)) +- [Add project-level DORA metrics to GraphQL endpoint](gitlab-org/gitlab@ef0cffc8119734c6639e2ab8d8671e019b508d50) ([merge request](gitlab-org/gitlab!64961)) **GitLab Enterprise Edition** +- [Remove project from Job Token Scope via GraphQL](gitlab-org/gitlab@c20de7a97f482e312ddf842e45a5098f8455a4f3) ([merge request](gitlab-org/gitlab!64522)) +- [Add timezone to web operations](gitlab-org/gitlab@868f0c45a9dbdd6d110f9f7d637946981971aa6d) ([merge request](gitlab-org/gitlab!64084)) +- [Add CIJobToken project allow list resolver](gitlab-org/gitlab@08e8188af04a8f2fafe86190a7dc90a252d23ad1) ([merge request](gitlab-org/gitlab!64095)) +- [Add ability to search for cluster image scanning jobs](gitlab-org/gitlab@3579088ee97b2d1a26e3d2dbba726c3a9b7f61a6) ([merge request](gitlab-org/gitlab!64616)) **GitLab Enterprise Edition** +- [Add target branch in pipeline editor for blank projects](gitlab-org/gitlab@c9e9a6254dc35cd5892a3885c1284f0f0fa06fa2) ([merge request](gitlab-org/gitlab!64575)) +- [Add jobCount and projectCount to GraphQL CiRunner](gitlab-org/gitlab@af9e0ea5e9a532b373d89db29edf5899eaec88e6) ([merge request](gitlab-org/gitlab!64117)) +- [Remove gitlab_experiment_middleware feature flag](gitlab-org/gitlab@62d5345c70cad5a2db32042d1898716e611d8dcd) ([merge request](gitlab-org/gitlab!65081)) +- [Add instance-level audit event when admin status changes](gitlab-org/gitlab@6724b3e03cc3a9aca261cec28b9e3db92a1517a6) ([merge request](gitlab-org/gitlab!65168)) **GitLab Enterprise Edition** +- [Add link to admin area on project view and group view](gitlab-org/gitlab@ded9a9d5716f3e1c63f39f2d73ca16134ed0210e) ([merge request](gitlab-org/gitlab!63410)) +- [Add support for legacy blob viewers](gitlab-org/gitlab@440dd4f481a2a52776a04f263d1c49822e633890) ([merge request](gitlab-org/gitlab!64839)) +- [Preserve user authorship during bulk imports](gitlab-org/gitlab@31245e13593a3e57385e3384877c0aa3696372ad) ([merge request](gitlab-org/gitlab!64908)) +- [Add usage ping features frontend checkboxes](gitlab-org/gitlab@295bd62308977822e2fecdf6e5d518f5bcb99024) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64186)) +- [Remove kubernetes_agent_on_gitlab_com feature flag](gitlab-org/gitlab@dfdf249cb7943bcbbbf7e03983253554960812e1) ([merge request](gitlab-org/gitlab!60081)) +- [Add system note when escalating to users](gitlab-org/gitlab@6bd709f4a1e4bc674d095c6b7941bc93bd323b3e) ([merge request](gitlab-org/gitlab!64899)) **GitLab Enterprise Edition** +- [Remove project_finder_similarity_sort feature flag](gitlab-org/gitlab@abb677ddbe651da7d04c876cc9a4667ca94b58e3) ([merge request](gitlab-org/gitlab!64361)) +- [Track usage data for Network Policies UI](gitlab-org/gitlab@4a15309619053a4e20f2f32003d6a8444e9821ba) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64731)) **GitLab Enterprise Edition** +- [Add compliance_frameworks_with_pipeline to usage ping](gitlab-org/gitlab@fd420b4799d32066d0896a5f6e3747a60b3c0958) ([merge request](gitlab-org/gitlab!64601)) **GitLab Enterprise Edition** +- [Remove ci_quota_check_on_retries feature flag](gitlab-org/gitlab@0ab0678dc1a0a1a934b66948770d49b725511b5b) ([merge request](gitlab-org/gitlab!65044)) **GitLab Enterprise Edition** +- [Add scan execution policies to the policy list](gitlab-org/gitlab@aa2cf5e2afd6c23a37aa9340b82dc4312007b80f) ([merge request](gitlab-org/gitlab!64783)) **GitLab Enterprise Edition** +- [Allow passing PAT name and scopes via the URL](gitlab-org/gitlab@e4e1292d8cd4c38fa0e5332ed7debdf7b7639b74) ([merge request](gitlab-org/gitlab!64897)) +- [Add summary to timelogs](gitlab-org/gitlab@3f649999296a6314aadd99676ea324b2063f3225) ([merge request](gitlab-org/gitlab!64552)) +- [Allow specifying an access level for Project Access Tokens](gitlab-org/gitlab@962c6b39c32a86ef4896112e5b47886747a14708) ([merge request](gitlab-org/gitlab!63725)) +- [Send purchase source to customers API](gitlab-org/gitlab@49237198c8a72abf679ceda15b1608434bb78e7e) ([merge request](gitlab-org/gitlab!64905)) **GitLab Enterprise Edition** +- [Sync destruction between requirements and issues](gitlab-org/gitlab@1c18084384954d6d3bdf1a41a9424d94a1896a09) ([merge request](gitlab-org/gitlab!64291)) **GitLab Enterprise Edition** +- [Add CI/CD templates picker for empty pipelines page](gitlab-org/gitlab@7aefdbc42ce4c10a9c1cbaf1d7584ebaa4a074a0) ([merge request](gitlab-org/gitlab!64200)) +- [Save last_synced_at on licenses table](gitlab-org/gitlab@116158c93f8839688cb2f69b1f4c606d1e91cbfa) ([merge request](gitlab-org/gitlab!64656)) +- [Add validate account button on CI/CD shared runners page](gitlab-org/gitlab@1ac97dcf31f72a3e8cbb4b3e5c01d87beea798cc) ([merge request](gitlab-org/gitlab!64861)) **GitLab Enterprise Edition** +- [Relate issues and requirements](gitlab-org/gitlab@a9c39abbf219cc0d73676df316e94ee299c581ae) ([merge request](gitlab-org/gitlab!64189)) +- [Add present_on_default_branch to Vulnerabilites](gitlab-org/gitlab@8f7c762b0e153438459bf8299db7fa4277e1b47d) ([merge request](gitlab-org/gitlab!64704)) +- [Helm charts index API endpoint](gitlab-org/gitlab@6fd633c24f7d7e8a79e57439ab6056afb22db39a) ([merge request](gitlab-org/gitlab!62757)) +- [Add backup logger class](gitlab-org/gitlab@820d264e8d0a7ae564ad825ccd4442ade5242a17) ([merge request](gitlab-org/gitlab!63832)) +- [Add configuration for locating gitaly-backup](gitlab-org/gitlab@abc8d061a375e268805df27c2e8a1cc0693f9ecb) ([merge request](gitlab-org/gitlab!64834)) +- [Adding raw_plain_data type to snippets](gitlab-org/gitlab@d7cb66c01ddfd22f9962cca5402addd230367451) ([merge request](gitlab-org/gitlab!64243)) +- [Allow to query discussion design on GraphQL](gitlab-org/gitlab@25613d74ac74a9f1b697e00d89499fe2f21e746c) ([merge request](gitlab-org/gitlab!64550)) +- [Converts the diff row component into a functional component](gitlab-org/gitlab@61b90085ef4d39c5280cc7939c0e5f0c83e281e4) ([merge request](gitlab-org/gitlab!63854)) +- [Add `state` argument for the PipelineSecurityReportFindingsResolver](gitlab-org/gitlab@d550e65acc7526ad94938ac329f07991d58f9f1c) ([merge request](gitlab-org/gitlab!64762)) **GitLab Enterprise Edition** +- [Add NOT filtering to epic roadmap filtered search](gitlab-org/gitlab@8b62510509261edf35725d114b7003bc9e426a85) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64483)) **GitLab Enterprise Edition** +- [Show access level of Project Access Token in UI and API](gitlab-org/gitlab@1df3db0851c333b055deca10079a721265ee2763) ([merge request](gitlab-org/gitlab!64681)) +- [Add CI variable CI_MERGE_REQUEST_APPROVED](gitlab-org/gitlab@dff9601fa5b641831d266ffa8a299d5ac8f4057f) ([merge request](gitlab-org/gitlab!64677)) **GitLab Enterprise Edition** +- [Add compliance framework label to compliance dashboard](gitlab-org/gitlab@83d33fe5b54ce5c03d21db49a08ff3f6eefeda89) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64283)) **GitLab Enterprise Edition** +- [Display Feature Flags Related to Issues](gitlab-org/gitlab@5b79efa72311d3846f003566123115d71e61369c) ([merge request](gitlab-org/gitlab!64538)) **GitLab Enterprise Edition** +- [Update styling on policy editor page](gitlab-org/gitlab@5a8461052e305484920e2a349f1385215bba0c96) ([merge request](gitlab-org/gitlab!62970)) **GitLab Enterprise Edition** +- [Remove ci_drop_new_builds_when_ci_quota_exceeded feature flag](gitlab-org/gitlab@9dcfedfe8dc97531a67b203e70d5f146f70c8e62) ([merge request](gitlab-org/gitlab!64709)) **GitLab Enterprise Edition** +- [Adds sha argument to lint](gitlab-org/gitlab@a728acee92cfb89945b3255230016045dd39cc95) ([merge request](gitlab-org/gitlab!64415)) +- [Add Debian API endpoint for Packages files](gitlab-org/gitlab@8d33f75e2554b550be04ca646fcfbee55a30278d) ([merge request](gitlab-org/gitlab!64068)) +- [Add option to order epics by title on list page](gitlab-org/gitlab@4474d1a6fba3efcc4374509eff072b4c3ad351d5) ([merge request](gitlab-org/gitlab!63767)) **GitLab Enterprise Edition** +- [Add wal cached counter metric](gitlab-org/gitlab@a146fc0dba73b3b193dc484c7ee43de7b8ec620f) ([merge request](gitlab-org/gitlab!64210)) +- [Accept repository_update_events in SystemHooks API](gitlab-org/gitlab@d629b1a2556d73a9bbc7d6dd8149028d202041df) ([merge request](gitlab-org/gitlab!64670)) +- [Added omniauth_user check when verifying user cap](gitlab-org/gitlab@21cafcbdcce25424cfcaca5356fa1fef3d43a902) **GitLab Enterprise Edition** +- [Add the ability to deep link into group/project member tabs](gitlab-org/gitlab@db589f28af5f997068da2a6f75e27b3cf9611298) ([merge request](gitlab-org/gitlab!64365)) +- [Allow changing AdditionalPack namespace](gitlab-org/gitlab@d8d3b217f72f75a3332163d2ac4a90be00621492) ([merge request](gitlab-org/gitlab!64212)) **GitLab Enterprise Edition** +- [BulkImports: Import Group Avatar](gitlab-org/gitlab@0f1d882377147e1977beceb34f19cfee42f9acea) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62714)) +- [Allow admins to limit registration of project and group runners](gitlab-org/gitlab@6309e13bdbb8fbe42849a8e2f78012944302f45a) ([merge request](gitlab-org/gitlab!61407)) +- [Populate `latest_pipeline_id` values for `vulnerability_statistics`](gitlab-org/gitlab@917d469e906ff2d050048005d90341b17b0e49a8) ([merge request](gitlab-org/gitlab!63451)) **GitLab Enterprise Edition** +- [Add support for horizontal rule in content editor](gitlab-org/gitlab@d4b66969d6dcc52d8adbdb574c03120faee45602) ([merge request](gitlab-org/gitlab!63943)) +- [Add state of merge request diff to the entity](gitlab-org/gitlab@ac2e38224f0b67684d3ddf5f35de041f815e4ef8) ([merge request](gitlab-org/gitlab!64195)) +- [Associate Build with DAST Site and Scanner profile](gitlab-org/gitlab@0c8757624e68fd90c25f1e1b26152c1f4d2c25a7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63362)) +- [Show pronouns in user popover](gitlab-org/gitlab@7513e38b8badcf14d5a40252895e64a3dfb6c0b0) ([merge request](gitlab-org/gitlab!63611)) +- [Create API to update upcoming reconciliations](gitlab-org/gitlab@217e570c5691f683171e55fa17edaba1a4b3618b) ([merge request](gitlab-org/gitlab!63047)) **GitLab Enterprise Edition** +- [Add layout for "first mile"](gitlab-org/gitlab@82d09f270836a2cb843cfa2694bcfaa5317bbefe) ([merge request](gitlab-org/gitlab!62965)) +- [Adds status to StageType in gql](gitlab-org/gitlab@ce690aaf94132b3f584cc2de892b2af684d797a9) ([merge request](gitlab-org/gitlab!61177)) +- [Expose SAST & DAST devops adoption metrics](gitlab-org/gitlab@430037a8ebe2104000c7c2b1a24127e1227a17f9) ([merge request](gitlab-org/gitlab!63868)) **GitLab Enterprise Edition** +- [Allow sorting by title in REST/GraphQL API](gitlab-org/gitlab@cec733fe115b2a8ee3479ea0195b20e677741e2a) ([merge request](gitlab-org/gitlab!63756)) **GitLab Enterprise Edition** +- [Add in-product marketing emails](gitlab-org/gitlab@bf1b79e99157adfec0e605654700ad8db43afc71) ([merge request](gitlab-org/gitlab!64109)) +- [Commit registration invite page to product](gitlab-org/gitlab@9fef92d31c71a2711b3a47c419339447591866dd) ([merge request](gitlab-org/gitlab!64001)) +- [Support specifying a milestone for MR via push options](gitlab-org/gitlab@be94b8a3c57405115802cfc8cec71a6eacf9ca3c) ([merge request](gitlab-org/gitlab!63960)) -## 14.0.6 (2021-07-20) +### Fixed (150 changes) -### Fixed (4 changes) +- [Fix error when creating or deleting a board list](gitlab-org/gitlab@5b348fb06bd81719629b2a960addce38334ac15b) ([merge request](gitlab-org/gitlab!66297)) +- [Skip LFS fragment on redirect](gitlab-org/gitlab@559e7a5c1ce499eb98e1ec183159b13d0437d2fe) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65751)) +- [Fix scanner comparison error](gitlab-org/gitlab@e582ef4f33fcdab9e133e1cc42e4677534b688c4) ([merge request](gitlab-org/gitlab!66322)) +- [Fix background color of markdown code in dark mode](gitlab-org/gitlab@fc328c70613f849a27cec7b3ac4ea0611d4fdb19) ([merge request](gitlab-org/gitlab!66254)) +- [Fix transposed rows and cols](gitlab-org/gitlab@a1f3afb43df702a4040604e1930f9110ccd2854b) ([merge request](gitlab-org/gitlab!66287)) +- [Fix wiki repositories with wrong HEAD](gitlab-org/gitlab@4bb1d0e17713c993594882f1cf15c31838a83b06) ([merge request](gitlab-org/gitlab!66232)) +- [Fix public selection of pages permissions](gitlab-org/gitlab@3333b06161a9200ecc8d0af9ee8b0ecf8939f833) ([merge request](gitlab-org/gitlab!66238)) +- [Geo: Replicate the HEAD ref](gitlab-org/gitlab@30667e5d9ca4b83916ad539e0c2dc5245637d2d1) ([merge request](gitlab-org/gitlab!65783)) **GitLab Enterprise Edition** +- [Remove useless delete button in group settings](gitlab-org/gitlab@feaf24e7c656c7ef418f0ec478f8401e4acfcd0a) ([merge request](gitlab-org/gitlab!66067)) **GitLab Enterprise Edition** +- [Allow cleartext communication with KAS in production](gitlab-org/gitlab@81c5fdae75585897b1a3c8a6b9da55363a2c3c23) ([merge request](gitlab-org/gitlab!66135)) +- [Automatically create integration webhooks when missing](gitlab-org/gitlab@c2259e5e3129e0e9dc9c00a996f4fa956596c8cb) ([merge request](gitlab-org/gitlab!65577)) +- [Fix snippet url helper when repository is not present](gitlab-org/gitlab@e702e4c91d836e331dc0022d319159c0448609e6) ([merge request](gitlab-org/gitlab!66149)) +- [Adjust Groups API call used in Search Group Projects select](gitlab-org/gitlab@4bb8c88e894d16ef69fb30bf894964aaeee5926d) ([merge request](gitlab-org/gitlab!66172)) +- [Fix snippets display issues on mobile devices](gitlab-org/gitlab@8986231996e52334eb913d9b7ab05b255cf729e4) ([merge request](gitlab-org/gitlab!65685)) +- [Fixed the header color in fly-outs for Dark mode](gitlab-org/gitlab@c0f932411ac4c537e5c6c8165a2585f305f3e619) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66138)) +- [Fixed association between Finding, Finding Links](gitlab-org/gitlab@2b5ac0a8d5e242c03ac0eafc76e59ea8383a32ca) ([merge request](gitlab-org/gitlab!66103)) **GitLab Enterprise Edition** +- [Correct check for displaying SubEpic counts on boards](gitlab-org/gitlab@b9f4933910b5cce9ace8b0b99e6e415505608b5f) ([merge request](gitlab-org/gitlab!65756)) **GitLab Enterprise Edition** +- [Preload correct latest test report for requirements](gitlab-org/gitlab@d7f4636639c122ab5e6ac1f8eac5bdded22e1d76) ([merge request](gitlab-org/gitlab!66091)) +- [Fix "Confirm user" button on tabs other than "Account"](gitlab-org/gitlab@d1f311c119f92222af88e2867736df78a93cb5b1) ([merge request](gitlab-org/gitlab!66004)) +- [Add trigger_source for empty page tracking event](gitlab-org/gitlab@938003e8e271b3769ca03dd8e75ca8da00c43d81) ([merge request](gitlab-org/gitlab!66083)) +- [Fix GET requests from graphql client when using relative url](gitlab-org/gitlab@19ec2c8da4c92a1354701e58b86947d57b1e844e) ([merge request](gitlab-org/gitlab!66053)) +- [Ensure pages visibility levels are correct](gitlab-org/gitlab@0e5493b618f12b243a90725423447ec40c376fe9) ([merge request](gitlab-org/gitlab!65723)) +- [Fix the write permission of the Releases with Protected Tag](gitlab-org/gitlab@229009d4bf23bab1b8b8972757952edaf945900a) ([merge request](gitlab-org/gitlab!66042)) +- [Fix labelFilterParam value in issuable_list_root](gitlab-org/gitlab@a683a0f82816c70b911ccdb7d03c6b89cd1ac81a) ([merge request](gitlab-org/gitlab!65949)) **GitLab Enterprise Edition** +- [Fix filePath not being stored in GraphQL log tree cache](gitlab-org/gitlab@f8d175ef7a6384d1a424ecde786ae8b0798e4804) ([merge request](gitlab-org/gitlab!66029)) +- [Fix user popovers in design management discussions](gitlab-org/gitlab@61b5dce3aef97fa46b063b971e53881925301633) ([merge request](gitlab-org/gitlab!66027)) +- [Update confirmation button text in edit modals](gitlab-org/gitlab@2f159fd7180d248b17608ce4d81c6f3028fed6f4) ([merge request](gitlab-org/gitlab!65991)) **GitLab Enterprise Edition** +- [Revert to use merge requests count for group view](gitlab-org/gitlab@6ac1224121cd58599735b9ef9578ce0285d9508c) ([merge request](gitlab-org/gitlab!64640)) +- [Remove transaction when migrating diff commits](gitlab-org/gitlab@650a6dee0aab0fa76fa19d0ba4f9ac67682e2772) ([merge request](gitlab-org/gitlab!65746)) +- [Replace `deprecated_project_avatar` in `create_issue_form.vue`](gitlab-org/gitlab@2423c5c2f745e5eeacca9903d9029c04738c8d02) ([merge request](gitlab-org/gitlab!65842)) **GitLab Enterprise Edition** +- [Fix validation method regarding MIME type keys](gitlab-org/gitlab@0b4e1788d14edaf16e3ce999fd0520b3d2467e01) ([merge request](gitlab-org/gitlab!65954)) +- [Replace the success btn to the confirm btn in the preferences page](gitlab-org/gitlab@4958268382f93f78e0e3afaa0d3934d59739fba2) ([merge request](gitlab-org/gitlab!65836)) +- [Use ProjectAvatar in `frequent_items_list_item.vue`](gitlab-org/gitlab@651b52efc70d761c95e465ad8ac1712177b3fb98) ([merge request](gitlab-org/gitlab!65857)) +- [Strip whitespace from GraphQL queries using GET](gitlab-org/gitlab@d88abce55e9cc61f531e77aa3a6d6930d052c767) ([merge request](gitlab-org/gitlab!65564)) +- [Make job_token_scope_enabled project setting false by default](gitlab-org/gitlab@024ec9e077cc26a58b3ef1c5ad8fc5d1f0b941b4) ([merge request](gitlab-org/gitlab!64962)) +- [Use namespaced security report type for Cluster Image Scanning](gitlab-org/gitlab@9e4b3bc018fa7d27ab2e1eaca9bda4fd687a9237) ([merge request](gitlab-org/gitlab!65802)) **GitLab Enterprise Edition** +- [Fix race condition on container repository create](gitlab-org/gitlab@f8ae33ca2ae2f15b2e78b4d29329700f733304b4) ([merge request](gitlab-org/gitlab!65358)) +- [Fix WebIDE image being base64](gitlab-org/gitlab@89256d4df66e1cc34ad6b4c5789b7e2dd59da329) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65165)) +- [Fix Issue check_for_spam? for bots](gitlab-org/gitlab@bf0bad9d9f9f403b79676cf77f7a2b3fbe7bc716) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65661)) +- [Fix scan execution policy selection](gitlab-org/gitlab@203618037e1ed848cb0b912fd03c0dbf1f38d71a) ([merge request](gitlab-org/gitlab!65553)) **GitLab Enterprise Edition** +- [Advanced Search: Fix inaccessible ES server error](gitlab-org/gitlab@31e6e995a6f287ea08e12d18c933dcebef223cc7) ([merge request](gitlab-org/gitlab!65731)) **GitLab Enterprise Edition** +- [Migrate drawer titles to title slot](gitlab-org/gitlab@efc552c893c919234f6a8018d9f50f08572cde2f) ([merge request](gitlab-org/gitlab!65587)) +- [Fix timebox charts events computing](gitlab-org/gitlab@d6d9c48b8e2d88545c7cd885eb0c88788ecb4f78) ([merge request](gitlab-org/gitlab!65737)) **GitLab Enterprise Edition** +- [Fix bug in DORA GraphQL endpoint](gitlab-org/gitlab@5d6ad2c0624e1a59e6670d9648a4de5c34bb2cd2) ([merge request](gitlab-org/gitlab!65653)) **GitLab Enterprise Edition** +- [Correctly positioned the is-above flyouts](gitlab-org/gitlab@8d11496482852aa16c0d3bfa95a466fe13111eaf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65735)) +- [Add another guard clause to password_expired_if_applicable](gitlab-org/gitlab@366b1d7457e12f1454c1001f93d7d43330ddd59d) ([merge request](gitlab-org/gitlab!65575)) +- [Allow Bulk Import to use relative GitLab URL](gitlab-org/gitlab@8b871c337bcbebff0924ca80ec4a8ec71fd1dadb) ([merge request](gitlab-org/gitlab!65444)) +- [Hide Renew button if less than 15 days for term end date](gitlab-org/gitlab@2fbdc5f2e88d9d1a0049c8f4acec8da2689d9d89) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65070)) **GitLab Enterprise Edition** +- [Fix default url for Monitor sidebar menu](gitlab-org/gitlab@9129adb35ffe0f88c2dc3732f7547fd0cf2fb849) ([merge request](gitlab-org/gitlab!65639)) +- [Fix vulnerability report filter dropdown button text truncation](gitlab-org/gitlab@a65218b7f710868aca5cf21d87b38532315a8681) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65634)) **GitLab Enterprise Edition** +- [Fixed broken ui link](gitlab-org/gitlab@991e9149b59a1490d18f673c15a90c7526bece85) ([merge request](gitlab-org/gitlab!65682)) +- [Fix icon size for usage quotas and billing](gitlab-org/gitlab@0eb1ddd005256befb5d5a7f46c3fca81c011d452) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65650)) **GitLab Enterprise Edition** +- [Fix LFS objects not downloading from Bitbucket](gitlab-org/gitlab@e2268e41fd457672a85722cde3b914088726fa47) ([merge request](gitlab-org/gitlab!65380)) +- [Fix CAPTCHA modal for setting issue non-confidential](gitlab-org/gitlab@07416fdf1a8013fa57b25bee26a375a9814a5a84) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65659)) +- [Fix typo for dismissible](gitlab-org/gitlab@a218ceaf110acf2787d1a389059aa3625ca4141c) ([merge request](gitlab-org/gitlab!65656)) +- [Display correct label for named-list report types](gitlab-org/gitlab@648dc48a87804e5127e2d696a229851e13fa1c60) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65507)) **GitLab Enterprise Edition** +- [Handle git exceptions in wiki create and update services](gitlab-org/gitlab@1dd451933d9304cb3eb1b8a33f2e2a6b6520257b) ([merge request](gitlab-org/gitlab!64873)) +- [Do not create audit event for failed logins on read-only DB](gitlab-org/gitlab@d073e7326aeaadfa8b38cdc170cb5ae6a8d48696) ([merge request](gitlab-org/gitlab!65504)) **GitLab Enterprise Edition** +- [Fix git clone for projects with a trailing dot over HTTP](gitlab-org/gitlab@0391bf572fb12d1c54aa155d529d7dc6fa5a1653) ([merge request](gitlab-org/gitlab!65489)) +- [Always encode group path for labels API](gitlab-org/gitlab@ec59ce97c3d334ad359e460857c8c2db3293159e) ([merge request](gitlab-org/gitlab!65350)) **GitLab Enterprise Edition** +- [Return empty strings for Jira links when URL is not set](gitlab-org/gitlab@746cfabfb414ce349d36ee9b6a7127bd2c26adee) ([merge request](gitlab-org/gitlab!65547)) +- [Fix pipeline count on merge request tab](gitlab-org/gitlab@014927f06255b3ea0d34f97eeef2ca6ce30b2628) ([merge request](gitlab-org/gitlab!65536)) +- [Define deduplication strategy in Resource Group Worker](gitlab-org/gitlab@d26139b3d2f13a508ab9bc137031bf090513cd50) ([merge request](gitlab-org/gitlab!65233)) +- [Allow users to setup Jenkins without username](gitlab-org/gitlab@9213f4935c1617e94dff360cf63397ac9ff4b18f) ([merge request](gitlab-org/gitlab!65525)) +- [Hide group-level DORA charts if not licensed](gitlab-org/gitlab@672747385fb4dcbe3e522187ec72c1e4cf1d5ddd) ([merge request](gitlab-org/gitlab!65478)) **GitLab Enterprise Edition** +- [Fix uninitialized constant Audit::UpdateService](gitlab-org/gitlab@38c9fb90a4b0505aaa78e0360d7cdeadfaa810b8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65519)) **GitLab Enterprise Edition** +- [Add prefix to autocomplete path](gitlab-org/gitlab@c4c246d18d2c982d3327bcb811572ec2fdbaf829) ([merge request](gitlab-org/gitlab!65508)) +- [Fix cache update for schedules and policies](gitlab-org/gitlab@16e8c26103334a40e5fc9224bbe3eb23fc48ceba) ([merge request](gitlab-org/gitlab!65491)) **GitLab Enterprise Edition** +- [Fix WebIDE dropdown background color](gitlab-org/gitlab@c484c192754076e904958c656160dfd80abce1ca) ([merge request](gitlab-org/gitlab!65412)) +- [Add option to force notification on expired subscriptions](gitlab-org/gitlab@5a6b865695b51492bfb965564502b826b17fc16c) ([merge request](gitlab-org/gitlab!64838)) **GitLab Enterprise Edition** +- [Fix alignment issues](gitlab-org/gitlab@27b7fca56e1103adf5208024af5317f1ea8252d8) ([merge request](gitlab-org/gitlab!65351)) +- [Reduce noisy code quality diff errors on MR page](gitlab-org/gitlab@f3e0148b42e448151fa56694f77c7bce96dec40a) ([merge request](gitlab-org/gitlab!64661)) **GitLab Enterprise Edition** +- [Only disable pause indexing when migration running needs indexing paused](gitlab-org/gitlab@879558dca6bb050b2381088b4a7fc577c95263b6) ([merge request](gitlab-org/gitlab!65281)) **GitLab Enterprise Edition** +- [Fix caching for pagination headers](gitlab-org/gitlab@3f4b3514cb915b3cc70b4029c312e5835f0f651c) ([merge request](gitlab-org/gitlab!64723)) +- [Catch Git::CommandError in Branches::CreateService](gitlab-org/gitlab@f0e2eef5f5d58450d1b240b74fe867939b5bc9c2) ([merge request](gitlab-org/gitlab!64727)) +- [Bugfix: Disable the ability from the FE to use Approver != in MR search](gitlab-org/gitlab@a85a5f55194767b064821c6979f21356bd910e7c) ([merge request](gitlab-org/gitlab!56310)) +- [Raise the error when repository storage move fails](gitlab-org/gitlab@8f5a54736cc0fa0840972bcfee955e7c36c2d794) ([merge request](gitlab-org/gitlab!65292)) +- [Fix PopulateLatestPipelineIds background migration](gitlab-org/gitlab@81d14eacc2fc154e7ca0df6312fd407d912c1e61) ([merge request](gitlab-org/gitlab!65280)) **GitLab Enterprise Edition** +- [Add license check to status checks rendering](gitlab-org/gitlab@f9f6f513d4defce5230be28425efb4614658b67d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65246)) **GitLab Enterprise Edition** +- [Fix create issue dropdown button wrapping](gitlab-org/gitlab@2e7de65c66e7dd47d1c0973d3cf7865ecabbc23c) ([merge request](gitlab-org/gitlab!65254)) +- [Fix plans cards width on lg screens](gitlab-org/gitlab@77aabb5c924888ffca0b5228a21093c71218d1a9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65222)) **GitLab Enterprise Edition** +- [Return issue feedback from loader when there is no issue link](gitlab-org/gitlab@b8f44623bc55a3ed1abf2e6144c467e457452896) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65191)) **GitLab Enterprise Edition** +- [Fix deploy keys not working with LFS auth check](gitlab-org/gitlab@3e4a574906486e7a9fb6fd119296810d5994a8fe) ([merge request](gitlab-org/gitlab!65205)) +- [Fix review-bar-component height](gitlab-org/gitlab@1386605add9adb7a01d4c7933b4ee5e36c38c120) ([merge request](gitlab-org/gitlab!64668)) +- [Use small ellipsis button in DAST saved scans and profiles](gitlab-org/gitlab@6f2f61393c1da1f06caf4bffdbede325819f5342) ([merge request](gitlab-org/gitlab!65176)) **GitLab Enterprise Edition** +- [Update a user highest role when removed from group](gitlab-org/gitlab@e443da4b8611b9cb2bd1b2f37e6c33a68b9612db) ([merge request](gitlab-org/gitlab!65164)) +- [Fix wiki encoding error creating event](gitlab-org/gitlab@1d35b844bed585a3c6fcc54271c5bc86ea3446e9) ([merge request](gitlab-org/gitlab!65132)) +- [Update connect_instance_spec.rb](gitlab-org/gitlab@0f88d420a65757fe5c126d2aa94bcf3d5dbf3506) ([merge request](gitlab-org/gitlab!65153)) +- [Default cableBackend to authBackend](gitlab-org/gitlab@ff9bd308ebece371baef1387d4bd6aebe91af9d1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65068)) +- [Fix double scrollbar in some dropdowns](gitlab-org/gitlab@ad8c22de839212158e6f2345437ea0bee19ff557) ([merge request](gitlab-org/gitlab!64969)) +- [Wrap Labels and Members menu items with access levels checks](gitlab-org/gitlab@e3165a4d998af0717e8c00795aee6c26389770f0) ([merge request](gitlab-org/gitlab!65005)) +- [Takes per page setting into account when paginate](gitlab-org/gitlab@c5c32ad2c8c52294a651de664ec93d0b0797a2c7) ([merge request](gitlab-org/gitlab!64285)) +- [Show create-jira-issue when gitlab issues disabled](gitlab-org/gitlab@bcee661f9e770517ec72334d5b9e4c107e9163ca) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64889)) **GitLab Enterprise Edition** +- [Guard Compliance CI evaluation against blank path](gitlab-org/gitlab@9706ba3a371b53958995863080b727824ac0430c) ([merge request](gitlab-org/gitlab!64994)) **GitLab Enterprise Edition** +- [Skip saving the diffs whitespace setting if the user isn't logged in](gitlab-org/gitlab@e07458f045b32dbf8a11ee11a9e749a4966d69e7) ([merge request](gitlab-org/gitlab!65094)) +- [Fix Group avatar API endpoint](gitlab-org/gitlab@ea3f7bd4dcf20cedbdc2ca2543f99fc5f02fa1f1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64804)) +- [Allow nil for remaining ci cd settings](gitlab-org/gitlab@672fc080709f158b05a7ed5a1dce4aabac12d7dd) ([merge request](gitlab-org/gitlab!64472)) +- [Fix 2FA Download codes button](gitlab-org/gitlab@24fa6d1f1a2eca571362a03ed56a2ee9c1fe6760) ([merge request](gitlab-org/gitlab!64963)) +- [Fix breadcrumbs and page title for 2FA page](gitlab-org/gitlab@bcabebbcb56707c30b4bbcb035b70f13adf3ef03) ([merge request](gitlab-org/gitlab!64938)) +- [Fix return codes for getting an inexisting release](gitlab-org/gitlab@8e011e6674cd6d4fbb7b820aaa89baaac439352f) ([merge request](gitlab-org/gitlab!64591)) +- [Show the default "default branch" in the API for empty projects](gitlab-org/gitlab@5ce07d4974b068499c85d159de2513aac3dde6be) ([merge request](gitlab-org/gitlab!64944)) +- [Persist Direct Asset Path on Release Updates](gitlab-org/gitlab@6c29da3eb6b515c3d8f7ea19188b1f881f48a2f0) ([merge request](gitlab-org/gitlab!64719)) +- [Fix svg logos for empty pipeline templates](gitlab-org/gitlab@d07e2ab050f4eedea6da75e618309fb98248a25f) ([merge request](gitlab-org/gitlab!64428)) +- [Ensure displayNamespaceID is included](gitlab-org/gitlab@ff142eadadabf9050451f925276ea5482bf470ae) ([merge request](gitlab-org/gitlab!64904)) **GitLab Enterprise Edition** +- [Drone hook API endpoint](gitlab-org/gitlab@dd42fd2957fb10afcf10c24c0e2254dc103454fa) ([merge request](gitlab-org/gitlab!64871)) +- [Fix NuGet installs with symbol packages](gitlab-org/gitlab@246b31a94ddf1ad7be87510f7b30efa3ec532e89) ([merge request](gitlab-org/gitlab!64803)) +- [Change PHP template for PHP 8](gitlab-org/gitlab@c4b5950da351aad479f9515e8699eca9257f1f07) ([merge request](gitlab-org/gitlab!64863)) +- [Update embedded snippet file links to open in new tab](gitlab-org/gitlab@55c6def595b1ecc640c6b713db24ebdd13277bc4) ([merge request](gitlab-org/gitlab!64219)) +- [Fix typo with credit card](gitlab-org/gitlab@ac0b29c6cca7ab912460e95e1fd8f8991772f58e) ([merge request](gitlab-org/gitlab!64817)) **GitLab Enterprise Edition** +- [Fix error when loading incident issue with alert](gitlab-org/gitlab@0678a49a0cff494370d631a5f53629566ac69fcd) ([merge request](gitlab-org/gitlab!64827)) +- [Fix state value in the lfs_object_registry table](gitlab-org/gitlab@6231e52db37818f56efa1f0aa19153da39ffbb14) ([merge request](gitlab-org/gitlab!64801)) **GitLab Enterprise Edition** +- [Fix broken Time Tracking Reports on Issuables](gitlab-org/gitlab@d69d0f9ceaa5589bed4f00eacbff43db2521b204) ([merge request](gitlab-org/gitlab!64797)) +- [Fix frequent items timestamps not updated](gitlab-org/gitlab@2a3335566b6b3c65f92508cf3ec2b8ee5ac34256) ([merge request](gitlab-org/gitlab!64737)) +- [Fix bug where Milestone page led to console error](gitlab-org/gitlab@e720e677d008a006292040d026a4393a89fc2471) ([merge request](gitlab-org/gitlab!64775)) +- [Include hours into elapsed time in jobs](gitlab-org/gitlab@280ab3a2e66429105788d55e0fd430efd6a8cc8a) ([merge request](gitlab-org/gitlab!64721)) +- [Fix retry-lock problem on pipeline cancel](gitlab-org/gitlab@85c299819121e6f3d372d3685a83df05455c6e41) ([merge request](gitlab-org/gitlab!63080)) +- [Fix link for commit-type security report items](gitlab-org/gitlab@a7098dbbb6f271f1a3168d0b539424578d798fad) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64565)) **GitLab Enterprise Edition** +- [Fix submit button not being clickable](gitlab-org/gitlab@845cb6473e3e187c6c880cf42a73426821044253) ([merge request](gitlab-org/gitlab!64315)) **GitLab Enterprise Edition** +- [Fix top position on board sidebar](gitlab-org/gitlab@52d8c768af4cf9a6b6e2d84cca4eb989bb912bd3) ([merge request](gitlab-org/gitlab!62051)) +- [Carry line_range info forward on unchanged positions](gitlab-org/gitlab@1e5301204e3fc236d4dc11cfc14f8dc06d5999a7) ([merge request](gitlab-org/gitlab!64267)) +- [Force ASCII-8BIT encodings in CI job trace](gitlab-org/gitlab@f0d3c6905e029ac55b2aff4cf860c63522afecd0) ([merge request](gitlab-org/gitlab!64631)) +- [Fix pages deployment storage migration](gitlab-org/gitlab@55f8b0129d8e54a532e93881fe1a29eebfc51131) ([merge request](gitlab-org/gitlab!64697)) +- [Show warning when files are hidden in an MR](gitlab-org/gitlab@791e1975def8bf2ddee6bdb42b3f868cbcb0a688) ([merge request](gitlab-org/gitlab!64515)) +- [Allow ancestor milestones to be set to an MR via push options](gitlab-org/gitlab@dd36ee326c16a8c1e1648b17142d6e695663f0f5) ([merge request](gitlab-org/gitlab!64678)) +- [Group Avatar API: ensure to send the remote filename](gitlab-org/gitlab@7edcf42a53212b94195ff1c6d9c6749342cc510c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64650)) +- [Bump the sys-filesystem version to prevent errors in System Info](gitlab-org/gitlab@613ee9051f5128de85fda5c35c0b047a4e5a81f2) ([merge request](gitlab-org/gitlab!64638)) +- [Fix missing attributes on token audit events](gitlab-org/gitlab@a7713e44271e3f0c0c0073414febbafc77fcf48c) ([merge request](gitlab-org/gitlab!63958)) **GitLab Enterprise Edition** +- [Fix Zuora frame size after client-side error](gitlab-org/gitlab@1dc1e3e5cb9947480488655f311172a362dd2c55) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64595)) **GitLab Enterprise Edition** +- [Fix infrastructure menu link to the first visible menu item](gitlab-org/gitlab@2ed7e99ebd4d44d8b628975314aa21bd332361bc) ([merge request](gitlab-org/gitlab!64592)) +- [Upgrade omniauth-azure-activedirectory-v2 to v1.0.0](gitlab-org/gitlab@eee74a26887ebfd52049fae0637b4eac784673b5) ([merge request](gitlab-org/gitlab!64559)) +- [GithubImporter: Avoid failing when PullRequest has empty body](gitlab-org/gitlab@2e5585ac07d4064ca955646b6cef391215ecf6d3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64558)) +- [Update margin-left on widget attachment to match content start](gitlab-org/gitlab@b054719340ce39346d0d967f974d66b35f6092ec) ([merge request](gitlab-org/gitlab!64079)) +- [Allow Projects with Freeze Periods to be Deleted](gitlab-org/gitlab@a9a9f0b6cf5093d896bacf09596c902a5a9195ed) ([merge request](gitlab-org/gitlab!64338)) +- [Fix expiring subscription message on subgroups](gitlab-org/gitlab@5627974d0a0aa4313550cf078d24632e5d3b5fe9) ([merge request](gitlab-org/gitlab!64507)) **GitLab Enterprise Edition** +- [Constraint status checks to protected branches](gitlab-org/gitlab@bb838dc6ecb580e632f991c6e80ad6e9c7e56e25) ([merge request](gitlab-org/gitlab!63422)) **GitLab Enterprise Edition** +- [Enable deep linking on environments page for tabs](gitlab-org/gitlab@d905945c9bc9f919b7282cc01d95a15ad1c5de98) ([merge request](gitlab-org/gitlab!64331)) +- [Fix sidekiq:migrate_jobs tasks in production mode](gitlab-org/gitlab@9971da5d6ae65e98e403ff429e6bc91ec6bcb88d) ([merge request](gitlab-org/gitlab!64414)) +- [Fix a bug where the displayNamespaceId](gitlab-org/gitlab@0b8959670bf6c061199c9c077407fd5a057d6b0a) ([merge request](gitlab-org/gitlab!64397)) **GitLab Enterprise Edition** +- [Remove add button from Devops Adoption](gitlab-org/gitlab@7c30991b53efb1478c06cbcee1ea80625a2d3449) ([merge request](gitlab-org/gitlab!64400)) **GitLab Enterprise Edition** +- [Create close issue event on issue move](gitlab-org/gitlab@46d221927ce4c28df467b0c13f5fc9b16eea3200) ([merge request](gitlab-org/gitlab!64197)) **GitLab Enterprise Edition** +- [Fix missing "Clear" button on namespace search](gitlab-org/gitlab@a0596df386c4878ae90c59fc6809c7a5336e7073) ([merge request](gitlab-org/gitlab!64378)) +- [Remove disable_composer_callback feature flag](gitlab-org/gitlab@99c36e440b29f3e23a2b707d39ac49aafef21679) ([merge request](gitlab-org/gitlab!64336)) +- [Fix group avatar API](gitlab-org/gitlab@f8573b56c4cdfa6a4733311f6c495b7be707e899) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63934)) +- [Fix environment folder broken layout](gitlab-org/gitlab@6b8fe36c6b4dfbfa97bca39f86a9be312f637caa) ([merge request](gitlab-org/gitlab!64280)) +- [Fix redirection for DAST Scanner Profile](gitlab-org/gitlab@d6dbe84562f0da1b5056acf3ce3dea10bbcd2a4b) ([merge request](gitlab-org/gitlab!64175)) **GitLab Enterprise Edition** +- [Fix visibility of issue enforcement setting](gitlab-org/gitlab@4f99af95dee23e1d07dd7af73f6c77ac1729f1d6) ([merge request](gitlab-org/gitlab!64073)) **GitLab Enterprise Edition** +- [Fix too many redirects during Geo check task](gitlab-org/gitlab@6d80e6a82454f6cd4626b60f16cdad605ec7089f) ([merge request](gitlab-org/gitlab!64265)) **GitLab Enterprise Edition** +- [Format network policies update time](gitlab-org/gitlab@6020f38c9561bc8e5aa1758ebd7075370205c3f6) ([merge request](gitlab-org/gitlab!64205)) **GitLab Enterprise Edition** +- [Use user permissions](gitlab-org/gitlab@ad434a48ea74a065b53d390077d720c7cdf607b6) ([merge request](gitlab-org/gitlab!64125)) +- [Display license start date without special format](gitlab-org/gitlab@64e34537ac84713eacc823da4f048bc90e395906) ([merge request](gitlab-org/gitlab!64022)) **GitLab Enterprise Edition** -- [Fix validation method regarding MIME type keys](gitlab-org/gitlab@2cc6d89cc77368b9472c8ec22e97bb3481409fb3) ([merge request](gitlab-org/gitlab!66403)) -- [Geo: Fix snippet verification by replicating the HEAD ref](gitlab-org/gitlab@4dbf36af8553775603c170784ad8bfcdc436a669) ([merge request](gitlab-org/gitlab!66403)) **GitLab Enterprise Edition** -- [Fix LFS objects not downloading with Bitbucket](gitlab-org/gitlab@161776f9a4975dfeb2760b06e83160def902c61f) ([merge request](gitlab-org/gitlab!66403)) -- [Replace Excon with Faraday for requesting object storage](gitlab-org/gitlab@a223d526d5b97f248c8810ef0b968d2c3b0323e0) ([merge request](gitlab-org/gitlab!66403)) +### Changed (137 changes) + +- [Move admin user actions from cards to a dropdown](gitlab-org/gitlab@f77a237d60114f95777c7b01060708c4a3b6a680) ([merge request](gitlab-org/gitlab!64648)) +- [Use configured browser locales for date formatting](gitlab-org/gitlab@ce46da1b791f930ac8e7d7780d2cc4678eec1532) ([merge request](gitlab-org/gitlab!65740)) +- [Update GraphQL project type field container_registry_enabled](gitlab-org/gitlab@5370ae995cc2c6ffea5e15b39a8ef7b2af1fdc9b) ([merge request](gitlab-org/gitlab!66059)) +- [Enable load balancing for Jira Connect workers](gitlab-org/gitlab@299b7e29da831829630dacedac5d1e66bfdc3172) ([merge request](gitlab-org/gitlab!66286)) +- [ContainerRepositoriesFinder now checks container registry visibility](gitlab-org/gitlab@383359466c4c9519ea9f5f9bb3df7130db9c5f90) ([merge request](gitlab-org/gitlab!66157)) +- [Drop support for Safari 13.0](gitlab-org/gitlab@a66265a17f695dd480128e7b927cdbe86b53497d) ([merge request](gitlab-org/gitlab!66231)) +- [Add Finding Evidence Assets](gitlab-org/gitlab@54b0a25e55ccc7ce5a6d395dd063214d837abfa5) ([merge request](gitlab-org/gitlab!65675)) +- [Search epic by title in issues](gitlab-org/gitlab@2f08c27c220e3720c7afb429a233f93b01460d13) ([merge request](gitlab-org/gitlab!66024)) +- [Migrate Add To Do button to widget](gitlab-org/gitlab@6cfa6b8ee1537695d5751f6f23d262613937d1b1) ([merge request](gitlab-org/gitlab!65709)) +- [Makes the feature_name field for UserCallout nullable](gitlab-org/gitlab@69a1222205f74507d6bccbfaaacd7242ad18ed3b) ([merge request](gitlab-org/gitlab!66237)) +- [Add a runner cost factor for new public projects](gitlab-org/gitlab@6ef0fa86a39dc5f768797b5fcec9dd142dd6fdc0) ([merge request](gitlab-org/gitlab!65155)) **GitLab Enterprise Edition** +- [Create environment column in policies list](gitlab-org/gitlab@8054ddac18be39a7425069f9a66b557d7f752a9e) ([merge request](gitlab-org/gitlab!65866)) **GitLab Enterprise Edition** +- [Filter service ping payload by category](gitlab-org/gitlab@8406a84441ee33bc8e61d3f339c24a8fdc25a7bb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65944)) +- [Schedule MergeRequestCleanupRefsWorker more efficiently](gitlab-org/gitlab@0080186adfc96a196ba259b619e7dac23aff395b) ([merge request](gitlab-org/gitlab!65647)) +- [Update urlParams on Jira issues list page](gitlab-org/gitlab@5179afecaea91a7e68b5b8994dd9c98340cbba02) ([merge request](gitlab-org/gitlab!66054)) **GitLab Enterprise Edition** +- [Remove snippet_spam feature flag](gitlab-org/gitlab@1304f57ca84fdc8edad1aec76e612f892ad6f3d5) ([merge request](gitlab-org/gitlab!66118)) +- [Update DevOps Score doc and callout](gitlab-org/gitlab@a9079bb147f6d0851367f03850eb623db5ae63c6) ([merge request](gitlab-org/gitlab!64786)) +- [Add sort by popularity to issues](gitlab-org/gitlab@5cc63c5d58c342e4722ea933bf04760630a8cac1) ([merge request](gitlab-org/gitlab!65452)) +- [Rename project / group removal to deletion](gitlab-org/gitlab@b45cf6ff0e738fcfadd3162388b15a8e7dd98d3e) ([merge request](gitlab-org/gitlab!66064)) **GitLab Enterprise Edition** +- [Swimlanes - Fetch more epics button](gitlab-org/gitlab@0b9519b3be30a595ae39e73f2ea9d61a7ac23cf1) ([merge request](gitlab-org/gitlab!65121)) +- [Change style of add button on License Compliance page](gitlab-org/gitlab@f4ee8502ad77b0cacbaa80b09cba81e74b42823f) ([merge request](gitlab-org/gitlab!66000)) **GitLab Enterprise Edition** +- [Change success color](gitlab-org/gitlab@40a54471a3c56151bed5428eaae8442b6832dcea) ([merge request](gitlab-org/gitlab!65987)) +- [Optimized blob view loading in repository](gitlab-org/gitlab@d1e175f89a1eb8fec9c9bc18dccb4e80c3cf24d6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65859)) +- [Require encryption on builds tokens](gitlab-org/gitlab@e704102921ad3c0248044d678003dc8452482782) ([merge request](gitlab-org/gitlab!65166)) +- [GithubImporter: Count fetched/import objects globally and by project](gitlab-org/gitlab@de4fd2ce3825ac6d2fe7adc4bbbfe86251d4aa93) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65700)) +- [Improve Error Tracking models](gitlab-org/gitlab@a92eb02c4e577cf94af8e2a415d11d0512f887a6) ([merge request](gitlab-org/gitlab!65753)) +- [Ignore cloud_license_enabled in ApplicationSetting](gitlab-org/gitlab@d3b0239ff0430f3638db9958ac4131b2f83ca0a8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65951)) **GitLab Enterprise Edition** +- [Extracted Admin E-mail notification code from EE to core](gitlab-org/gitlab@181ebaa8e5ee94f80a7d26a9166f1e1b008a1c6c) ([merge request](gitlab-org/gitlab!64931)) +- [Update Admin Area's Runner Details Page UI](gitlab-org/gitlab@4b18738e2749db8d9ee1a223ca6a05f8055bf820) ([merge request](gitlab-org/gitlab!65948)) +- [Add upvotes_count to issues](gitlab-org/gitlab@aeaf3eb433412915fc4b57516a69159446b1102c) ([merge request](gitlab-org/gitlab!65250)) +- [Update Admin Area's Runners Page UI](gitlab-org/gitlab@f3ef2a3257da0f7eb6316f969fee1bffb34b3b78) ([merge request](gitlab-org/gitlab!65901)) +- [Increment DAST_VERSION in on-demand DAST template](gitlab-org/gitlab@672757e51ea8f739b7b55a3b3c16bd2f2d662e1d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65218)) **GitLab Enterprise Edition** +- [Update the Discord integration embed](gitlab-org/gitlab@e4f38f3f72a46c19a4917b59f71b9f5251060153) ([merge request](gitlab-org/gitlab!65893)) +- [Update UI text for CI token scope setting](gitlab-org/gitlab@cdd383041e09c4947489c5f6d8597636c34b7508) ([merge request](gitlab-org/gitlab!65744)) +- [Optimised the hash retrieval from URL](gitlab-org/gitlab@e76fa57d5022012fa27f6e16c94047f66eadd3e8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65854)) +- [Update warnings for ci minute quotas](gitlab-org/gitlab@de82b75a26d21d96384398844741bab8608edbf3) ([merge request](gitlab-org/gitlab!65818)) **GitLab Enterprise Edition** +- [Update gitlab-labkit to v0.20.0](gitlab-org/gitlab@e22930f32a5aca7b77d224b1e4862df14161b128) ([merge request](gitlab-org/gitlab!65809)) +- [Update requirement import modal to show focus](gitlab-org/gitlab@ab161f59d6fffa59882c80e79ca1597f4b474c38) ([merge request](gitlab-org/gitlab!65447)) **GitLab Enterprise Edition** +- [Mask runner registration](gitlab-org/gitlab@ddc541bb444ccdba4be077211609c603f57eda61) ([merge request](gitlab-org/gitlab!65551)) +- [Update DAST version for offline environments](gitlab-org/gitlab@11eac5eb81936bb248db227f8da5f05d69d9bc39) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65603)) **GitLab Enterprise Edition** +- [Add Finding Evidence Supporting Messages](gitlab-org/gitlab@065416b87421ea3e276b95d95677b820ce582c18) ([merge request](gitlab-org/gitlab!65686)) +- [Update buildkite.rb](gitlab-org/gitlab@2425955cfe720955f481917a825d25f3345ab8ba) ([merge request](gitlab-org/gitlab!65658)) +- [Use load balancing for Jira Connect workers](gitlab-org/gitlab@1b0b3d253d44f15ad519e492e646bc6e98f967d0) ([merge request](gitlab-org/gitlab!64715)) +- [Start reading project_features.container_registry_access_level](gitlab-org/gitlab@aeff2cf9f841076ee6a1e2bb3d45a1689e38205a) ([merge request](gitlab-org/gitlab!65540)) +- [Rearrange milestone form](gitlab-org/gitlab@36542b1d528d8c9fd8f0164279d092007025bd99) ([merge request](gitlab-org/gitlab!65718)) +- [Update license compliance icons](gitlab-org/gitlab@d75c43ee01d86d169ffb4cee50f47289075848d2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64584)) **GitLab Enterprise Edition** +- [Improve consistency of admin user dropdown actions](gitlab-org/gitlab@5547886a61bb2330139446bbc68e6ce098f8674c) ([merge request](gitlab-org/gitlab!65668)) +- [Remove cloud_license_enabled application setting](gitlab-org/gitlab@d598d2a85a7e262f1f0a25ef7e6566d9de3cde37) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65538)) **GitLab Enterprise Edition** +- [Remove date from Seat Link data fields](gitlab-org/gitlab@8fa98066bdc82e3b9039029fac7e0fe2fbdc2105) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65190)) **GitLab Enterprise Edition** +- [Update dot style for DORA lead time graphs](gitlab-org/gitlab@b7d5c68c51d93b9681647fa21710617349b1856c) ([merge request](gitlab-org/gitlab!65555)) **GitLab Enterprise Edition** +- [Schedule devops adoption calculation only for pending namespaces](gitlab-org/gitlab@9193e19ed055814b3ab6df4aa6b2ed83d64be70c) ([merge request](gitlab-org/gitlab!65443)) **GitLab Enterprise Edition** +- [Move "Show latest version" button to the left](gitlab-org/gitlab@d1c4e90e3d8588693178122ab10a3438d52f1e46) ([merge request](gitlab-org/gitlab!65338)) +- [Allow wiki pages to be empty](gitlab-org/gitlab@2bc6eefbedc3015d9b49e34e20fdb2d3be1f7ec7) ([merge request](gitlab-org/gitlab!65521)) +- [Bump Nokogiri from v1.11.4 to v1.11.5](gitlab-org/gitlab@4c49f6980fd1aadfe622fa7a13db3ffe487be591) ([merge request](gitlab-org/gitlab!65597)) +- [Log and advise about push-rule-rejected commit](gitlab-org/gitlab@ae30a545cd7fcd34c59531bccf3ebbaaf9e2ec09) ([merge request](gitlab-org/gitlab!64933)) **GitLab Enterprise Edition** +- [Update supported browser versions](gitlab-org/gitlab@0849d34993c01805e794a64f2d1e4bde15d8f788) ([merge request](gitlab-org/gitlab!63994)) +- [Merge branch '334976-fix-misleading-upgrade-cta-jira-issues' into 'master'](gitlab-org/gitlab@b7a38de74932e04248ec77d0bd750433acf3d312) ([merge request](gitlab-org/gitlab!65302)) +- [Update timestamp fields to Standard](gitlab-org/gitlab@28d9eb2afd64e7fd1d0cd211c48a28a47eec562b) ([merge request](gitlab-org/gitlab!65523)) +- [Update copy and type for sync subscription banner](gitlab-org/gitlab@36474d85fc9a6f0bdaa5f77bd27d852f43c3c63e) ([merge request](gitlab-org/gitlab!65316)) +- [Upgraded Monaco to 0.25.2](gitlab-org/gitlab@281b581885f23e7e311c7ca19f7bc140acbedb7a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63400)) **GitLab Enterprise Edition** +- [Reintroduce lfs_link_existing_object feature flag](gitlab-org/gitlab@b9bd7169450001edde4946f48c90446965e6c34b) ([merge request](gitlab-org/gitlab!65437)) +- [Show 'Delete' button to developers in Wiki](gitlab-org/gitlab@8babca59505c323ad739f335a337fa1a71f8f003) ([merge request](gitlab-org/gitlab!65420)) +- [Switch back to pg_query](gitlab-org/gitlab@5a6b009504317c6bcbd4c36171cd74f961ed63a9) ([merge request](gitlab-org/gitlab!65416)) +- [Use Gitaly long timeout for resolving conflicts](gitlab-org/gitlab@2afa172683dc8257e2f28d70ecaf3ffadfdfece2) ([merge request](gitlab-org/gitlab!65394)) +- [Add upvotes field to issues index](gitlab-org/gitlab@3431b3ef3df2a214a773b449cc7b8de284ca228c) ([merge request](gitlab-org/gitlab!64683)) **GitLab Enterprise Edition** +- [Identicon - Align GitLab UI Colors](gitlab-org/gitlab@b05e2e2b0a4aee57d968b90737b69a2ae31c5c6f) ([merge request](gitlab-org/gitlab!65058)) **GitLab Enterprise Edition** +- [Update color scheme of createFlash](gitlab-org/gitlab@355659cf1ef25465edb5228d6bac7c147f193719) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65315)) +- [Fix misleading upgrade CTA in Jira configuration](gitlab-org/gitlab@703c55429e659a4ecdf50864fa1e9adc62e39a95) ([merge request](gitlab-org/gitlab!65302)) +- [Sort fork form namespaces alphabetically](gitlab-org/gitlab@727106f000c40f0963cb2549ecb45260222720fa) ([merge request](gitlab-org/gitlab!65178)) +- [Present error when DAST profile not found](gitlab-org/gitlab@d6d35d573136eacad2775825ca5a60d221b79dc0) ([merge request](gitlab-org/gitlab!64679)) +- [Add selected to description](gitlab-org/gitlab@650eac6656704667e62253164957aecb967a7775) ([merge request](gitlab-org/gitlab!65184)) +- [Remove the sec_secret_detection_ui_enable feature flag](gitlab-org/gitlab@7d3cb546730fd644ec5e14a0a9aa712cc11f5f19) ([merge request](gitlab-org/gitlab!65055)) **GitLab Enterprise Edition** +- [Block external pull mirrors for forks](gitlab-org/gitlab@ea13d159356916dfc8c37a9c8fb06104d396f327) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60735)) +- [DRY deactivate dormant user worker spec](gitlab-org/gitlab@826f278a7918d1cc24a390f5c2ffcc4a5844f3c7) ([merge request](gitlab-org/gitlab!65226)) +- [Fix sorting bug in dependency list](gitlab-org/gitlab@bf0849ac3290e747e4c3d8efbf806f60ce9ed954) ([merge request](gitlab-org/gitlab!63500)) **GitLab Enterprise Edition** +- [Create or update a cloud license on sync/activate](gitlab-org/gitlab@ab3dd3913695945b49e920e3c86f32ffdd2a5c20) ([merge request](gitlab-org/gitlab!64825)) **GitLab Enterprise Edition** +- [Truncate body length](gitlab-org/gitlab@fd3480dec9e5dd28e4b813168a1bac635a83bb35) ([merge request](gitlab-org/gitlab!65195)) **GitLab Enterprise Edition** +- [Update dictionary renderer to include data category](gitlab-org/gitlab@b4559327085e3e2b5a8ccdcdd9656c99d26bb55c) ([merge request](gitlab-org/gitlab!64641)) +- [Add policy type column](gitlab-org/gitlab@b7d8ca57f8bc7114e578f9b90e31f4ef861b609d) ([merge request](gitlab-org/gitlab!65075)) **GitLab Enterprise Edition** +- [Trial CTA source split](gitlab-org/gitlab@dd7cde6028eaed91abcadc0ace40c4d4f8e1f56f) ([merge request](gitlab-org/gitlab!64848)) **GitLab Enterprise Edition** +- [Change the number of pipelines per page to 15](gitlab-org/gitlab@02da71f3cd22173c65d1063f0a87a1bce1f12443) ([merge request](gitlab-org/gitlab!64285)) +- [Revise the navbar to use sentence case](gitlab-org/gitlab@9e677ac05dc994bdcc5eb3a2e44e056bfccee85b) ([merge request](gitlab-org/gitlab!60324)) +- [Update status column in Threat Monitoring](gitlab-org/gitlab@4c6499712f26ea649b8fbfa1644adf40f73a2eb6) ([merge request](gitlab-org/gitlab!64959)) **GitLab Enterprise Edition** +- [Bump import job status expiration to 24h](gitlab-org/gitlab@d6c0b2a55518c490782468d3f7170c4bca52c622) ([merge request](gitlab-org/gitlab!65066)) +- [Promote new_repo experiment](gitlab-org/gitlab@06da8d4cdc98f71311d419f6c986a6e739fedc9b) ([merge request](gitlab-org/gitlab!64651)) +- [Re-named the remaining EditorLite files](gitlab-org/gitlab@00c3f33effc2cf40dbea42ec94ede1e432d3f98d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64909)) +- [Update compliance dashboard empty state](gitlab-org/gitlab@92278867fb87c9d65329a9f9f9a6d9cdb68c36ab) ([merge request](gitlab-org/gitlab!64936)) **GitLab Enterprise Edition** +- [Polish formatted_stage_count for analytics](gitlab-org/gitlab@035db94f1193130c304e8fb73bfe8c578b48e174) ([merge request](gitlab-org/gitlab!64960)) +- [VSA: Change item count to 1000+](gitlab-org/gitlab@4af12b457c1a7a7ea2bb60a56ae54409bd52539c) ([merge request](gitlab-org/gitlab!64789)) **GitLab Enterprise Edition** +- [Move Scan PORO to CE [RUN AS-IF-FOSS]](gitlab-org/gitlab@bd817787d1dc88e45526b92c3e48e1a6a34da6d7) ([merge request](gitlab-org/gitlab!64790)) +- [Enable ci_job_trace_force_encode feature flag by default](gitlab-org/gitlab@3b2396ddb1de8504e8611741a4c9c6cdd1c903a8) ([merge request](gitlab-org/gitlab!64955)) +- [Move migration to a pre-deployment migration](gitlab-org/gitlab@2050852f3f5adcf252c81c606f5e2de5dee85b03) ([merge request](gitlab-org/gitlab!64948)) **GitLab Enterprise Edition** +- [Remove access request controls in admin area](gitlab-org/gitlab@b7faa327eb8553d04366f3f3e4a9297d3131461c) ([merge request](gitlab-org/gitlab!64659)) +- [Revise UI text for third-party offers](gitlab-org/gitlab@294b85eb7c83cdff3950322ee7a06c68b9523651) ([merge request](gitlab-org/gitlab!64943)) +- [Add documentation for billable member sorting](gitlab-org/gitlab@c3487a06ac93454040f385692c4b3e61bddda11e) ([merge request](gitlab-org/gitlab!64911)) +- [Add confirmation modal to "Sync now" LDAP button](gitlab-org/gitlab@9c316cc35879410a2c4d75ae9c545d67393a5bc1) ([merge request](gitlab-org/gitlab!64555)) **GitLab Enterprise Edition** +- [Add correct extension to dotnet CI template](gitlab-org/gitlab@ab15294353a6b78de99153e1a8cab108c63e32d9) ([merge request](gitlab-org/gitlab!64901)) +- [Rename ci examples readmes to index](gitlab-org/gitlab@c9a96e20dbf3aa2aeaec5f027ce3e3d4d2e31429) ([merge request](gitlab-org/gitlab!64885)) +- [Update copy for DAST code snippet modal](gitlab-org/gitlab@9e782ede13a2cd78ea15fcc986e9aa1284455e3e) ([merge request](gitlab-org/gitlab!64788)) **GitLab Enterprise Edition** +- [Add source version check to Bulk Import](gitlab-org/gitlab@80c22fd67bd8e60babd3752f91de8f618f578320) ([merge request](gitlab-org/gitlab!63886)) +- [Fix deprecated GlIcon size and property](gitlab-org/gitlab@72163f87f634b33195258a7a5b1435c31ba3493a) ([merge request](gitlab-org/gitlab!63003)) +- [Rename usage ping to service ping](gitlab-org/gitlab@db8e2c3ba5c829c83b993616b07c21ab908fde2c) ([merge request](gitlab-org/gitlab!64732)) +- [Use minimal layout in trial flow](gitlab-org/gitlab@c0ba92fa4fa40de6f85a25edd2179d635ab14117) ([merge request](gitlab-org/gitlab!63588)) +- [Fix admin mode when authenticating with LDAP](gitlab-org/gitlab@a87172353c8c7aa688f1895222ee6b652908b02c) ([merge request](gitlab-org/gitlab!64823)) +- [Simplify the sign in page after confirmation](gitlab-org/gitlab@8c7d3a45e8001eef9f0c7be75ce5534624a8a99d) ([merge request](gitlab-org/gitlab!64370)) +- [Enable FF ci_reset_bridge_with_subsequent_jobs by default](gitlab-org/gitlab@838875292f010d00f1bbaad631ec3b95069c73ad) ([merge request](gitlab-org/gitlab!64778)) +- [Sort milestones by due date in filtered search](gitlab-org/gitlab@df5f2741a53123e05445e42cf076996f9383d211) ([merge request](gitlab-org/gitlab!64617)) +- [Add searchability to ci template dropdown](gitlab-org/gitlab@361633ca1410e044b708de9fec0f039e9f080b50) ([merge request](gitlab-org/gitlab!63268)) **GitLab Enterprise Edition** +- [Remove deprecated API elements](gitlab-org/gitlab@0d4615ce2287429dd06770d6d13939a5d6628fcf) ([merge request](gitlab-org/gitlab!64752)) +- [Remove unncessary type options](gitlab-org/gitlab@0d97d1e9e28a271c15bbfbd009a23309d3fb099f) ([merge request](gitlab-org/gitlab!63919)) +- [Migrate top-centered toasts to bottom-left](gitlab-org/gitlab@b74175ca02761751e7f18c3936eb4d571a9d2a71) ([merge request](gitlab-org/gitlab!63919)) **GitLab Enterprise Edition** +- [Upgrade @gitlab/ui to v30.0.0](gitlab-org/gitlab@39b9d1c9d0b155fbcb86690d2402d3e568db9585) ([merge request](gitlab-org/gitlab!63919)) +- [Remove web_hooks_rate_limit feature flag](gitlab-org/gitlab@9bd9d414afe3cae800ba0b93a5ffa91891809a11) ([merge request](gitlab-org/gitlab!64708)) +- [Default-enable :update_remote_mirror_inmemory feature flag](gitlab-org/gitlab@bfdf0dc256aa0e747e94b09a12f1f2d8b5ab6a75) ([merge request](gitlab-org/gitlab!64702)) +- [Default-enable :fetch_remote_params feature flag](gitlab-org/gitlab@877a101ac6fcf924b2428fd256bed3982854c4b2) ([merge request](gitlab-org/gitlab!64701)) +- [Remove the regulated tab from compliance frameworks list](gitlab-org/gitlab@d1d9cdb68ae7732dbdb67008db724ba95f95b57d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64690)) **GitLab Enterprise Edition** +- [Move Debian regexp to ::Packages::Debian](gitlab-org/gitlab@f836ae221c5eff7dc77be2d6663643daa1638784) ([merge request](gitlab-org/gitlab!64068)) +- [Add Pending Alert Escalations table](gitlab-org/gitlab@e5cc867503dfbd54f99df90cce6be39bc4fde712) ([merge request](gitlab-org/gitlab!64274)) +- [Add parameters to in app purchase links](gitlab-org/gitlab@07533e376295cbfc8dcfe529cc1ef5ea5ce87a3f) ([merge request](gitlab-org/gitlab!64395)) +- [Search: add ability to sort epics](gitlab-org/gitlab@df6a2a949e84896af9d32aa5558ad5fe387d25de) ([merge request](gitlab-org/gitlab!64402)) **GitLab Enterprise Edition** +- [Support repository moved message with all container types](gitlab-org/gitlab@6c612d69bb26d51a0decb830add384161844cc28) ([merge request](gitlab-org/gitlab!64012)) +- [Allow billable member sorting by last activity](gitlab-org/gitlab@fb491cef0630d0da90f6ff1c3a613d465a95b153) ([merge request](gitlab-org/gitlab!64620)) **GitLab Enterprise Edition** +- [Render confidential icon in epic tree for epics](gitlab-org/gitlab@df4415158e06a4e827cf9c417c8848000a8d91e6) ([merge request](gitlab-org/gitlab!64567)) +- [Sort epic list in issue sidebar by title](gitlab-org/gitlab@3dc5b05e4fc541471d77026983a7ddc3ee977770) ([merge request](gitlab-org/gitlab!63730)) **GitLab Enterprise Edition** +- [GithubImporter: Count and log each object imported](gitlab-org/gitlab@decb7bfb0aac26dc5d5c2f7e15421302c57a2cf6) ([merge request](gitlab-org/gitlab!64256)) +- [Standardize UI text for protected branches and protected tags](gitlab-org/gitlab@9134784ebd9ac61665ed38f525c662b62e21964b) ([merge request](gitlab-org/gitlab!63959)) +- [Allow to promote confidential issues into confidential epics](gitlab-org/gitlab@aa8034b927f3ca8dd3c69626b8fa05318b930a92) ([merge request](gitlab-org/gitlab!64253)) +- [Sort by similarity in Search Group's Project dropdown](gitlab-org/gitlab@dd4b1a1b5963d3c13026804ce6ee00d53b5f90a3) ([merge request](gitlab-org/gitlab!64241)) +- [Refactor db selection in SidekiqServerMiddleware](gitlab-org/gitlab@18501e372c2dd3bd0c4d43120afd756aed04bcff) ([merge request](gitlab-org/gitlab!63304)) +- [Renamed EditorLite to SourceEditor](gitlab-org/gitlab@849b4aac6e7d7a228d383f2042f9496c5365528f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64302)) **GitLab Enterprise Edition** +- [Remove job dependency for Vulnerability-Check](gitlab-org/gitlab@76551c13ead5ae01be2f2118f07fde6d2e2db558) ([merge request](gitlab-org/gitlab!64333)) **GitLab Enterprise Edition** +- [Reduce horizontal padding in new top nav](gitlab-org/gitlab@400b4200940d13049a0dbc040ebd0f3b725d3b6b) ([merge request](gitlab-org/gitlab!64357)) +- [Add descriptions for EpicStateEnum](gitlab-org/gitlab@6a5b63e4c9405d744abda67ac1e6e54ca56e9a15) ([merge request](gitlab-org/gitlab!63915)) **GitLab Enterprise Edition** +- [Relabel access token fields](gitlab-org/gitlab@53180d13efd7411ec8194a25b4e8578bed5e8353) ([merge request](gitlab-org/gitlab!62616)) +- [Pajamas-compliant dismiss button for HAML alerts](gitlab-org/gitlab@edf4fec49d8bc6d4c12fb1a3b6a73720693996d2) ([merge request](gitlab-org/gitlab!63792)) +- [Add validation to additional pack purchase_xid](gitlab-org/gitlab@1647549088bed44b12388deb82828695dc290c7a) ([merge request](gitlab-org/gitlab!63866)) **GitLab Enterprise Edition** +- [Use standard filter for scanner filter on non-project level vuln report](gitlab-org/gitlab@f5d989895af22827c7f4be3e1d2cef3e552f8d41) ([merge request](gitlab-org/gitlab!63940)) **GitLab Enterprise Edition** + +### Deprecated (1 change) + +- [Deprecate GraphQL PrometheusServiceID argument](gitlab-org/gitlab@b86b6f90fad607ac058bec59e40568752a724ca9) ([merge request](gitlab-org/gitlab!62645)) + +### Removed (24 changes) + +- [Remove securityScansSucceeded from DevOps Adoption](gitlab-org/gitlab@eac43a025ccb01b1502dad2542985686cdada1de) ([merge request](gitlab-org/gitlab!66291)) **GitLab Enterprise Edition** +- [Remove old license page logic](gitlab-org/gitlab@a90ec139423285cd8046a6373603c4b79d85e46d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65978)) **GitLab Enterprise Edition** +- [Remove trace_memory_allocations FF](gitlab-org/gitlab@aac6b96b7e46895e4221bae2033c7686ba3c9926) ([merge request](gitlab-org/gitlab!66022)) +- [Undo CTE fix for PG11](gitlab-org/gitlab@d8daab8c792e4c1b4cdbd166414ceeebd85a23ca) ([merge request](gitlab-org/gitlab!58499)) +- [Delete framework column from project_compliance_framework_settings](gitlab-org/gitlab@89dbf6592975fc8cec8949669a0f63a7083dd891) ([merge request](gitlab-org/gitlab!65546)) +- [Removed ff sidebar_refactor from views](gitlab-org/gitlab@6c3da94333ca25b629fd2d259249386a5ee1d842) ([merge request](gitlab-org/gitlab!64384)) +- [Remove productivity_analytics_scatterplot flag](gitlab-org/gitlab@86047a245f868867b27830ea4dae0c7a2ee20650) ([merge request](gitlab-org/gitlab!65456)) **GitLab Enterprise Edition** +- [Remove cycle analytics scatterplot ff](gitlab-org/gitlab@12d74f0e309488e057e9a091215be0e8fddf7c89) ([merge request](gitlab-org/gitlab!65515)) **GitLab Enterprise Edition** +- [Remove the approvals_commented_by feature flag](gitlab-org/gitlab@7e1715d0b857c638756fb851d5e78ca258ae2f47) ([merge request](gitlab-org/gitlab!65319)) +- [Remove the use_workhorse_s3_client feature flag](gitlab-org/gitlab@152f6ad7ede46eb0fc7205b921ae290be174c4e3) ([merge request](gitlab-org/gitlab!65321)) +- [Remove the use_distinct_in_shas_cte FF](gitlab-org/gitlab@4068bbd9b0e5f219444fa3bfe63c75b468b081f4) ([merge request](gitlab-org/gitlab!65027)) +- [Remove un-used Event archived action](gitlab-org/gitlab@3351661fd57e704d89602b789948bf801fb252d4) ([merge request](gitlab-org/gitlab!64543)) +- [Remove Frontend to Edit Legacy Flags](gitlab-org/gitlab@21c7e932706643c2d768fa7f6cec991a13c01e6e) ([merge request](gitlab-org/gitlab!64005)) +- [Removes pipeline_filter_jobs feature flag](gitlab-org/gitlab@34b1a2285b84be61bf61f4dd7d932150322b1c24) ([merge request](gitlab-org/gitlab!64919)) +- [Remove Clusters Applications Fluentd Table](gitlab-org/gitlab@6d6e6cf4a9eb6c7ab9bd47c453a05676217c30d9) ([merge request](gitlab-org/gitlab!63758)) +- [Drop deprecated Prometheus settings in gitlab.yml](gitlab-org/gitlab@0e3e4062ee5db1d09f6929883aa9f86204184d77) ([merge request](gitlab-org/gitlab!64264)) +- [Remove ability to enable/disable seat link from settings](gitlab-org/gitlab@ae9b4072befbb882cb75afdbead5b96d013625d3) ([merge request](gitlab-org/gitlab!64160)) **GitLab Enterprise Edition** +- [Drop index_ci_builds_on_protected index](gitlab-org/gitlab@baa41860d52495b7f35e5b49025b55b0c5147f5d) ([merge request](gitlab-org/gitlab!64229)) +- [Remove Legacy Flags from Feature Flag Table](gitlab-org/gitlab@f7097cf1c1b3dd6d3bec67a4e3717ae32defc5e8) ([merge request](gitlab-org/gitlab!64007)) +- [Enable the new project sidebar](gitlab-org/gitlab@8aafc4b18bc42628aa8f19552dae811f0d5eaef6) ([merge request](gitlab-org/gitlab!63850)) +- [Remove omit_commit_sha feature flag](gitlab-org/gitlab@05b4762c3a36fd1b457f79e587ee9218dcdcc5a3) ([merge request](gitlab-org/gitlab!64421)) +- [Drop LB FF for ExpirePipelineCacheWorker](gitlab-org/gitlab@170984c79395707ab9cd4dfc060ff83d8efe3ca6) ([merge request](gitlab-org/gitlab!64181)) +- [Remove new_release_page feature flag](gitlab-org/gitlab@abc9814684792e8f8d62846b36f46e4622906487) ([merge request](gitlab-org/gitlab!64153)) +- [Drop load-balancing FF in PipelineHooksWorker](gitlab-org/gitlab@eae1cf34cb6e58393d6f74caf9b9541e5e29fcfc) ([merge request](gitlab-org/gitlab!64107)) + +### Security (17 changes) + +- [Update addressable gem to v2.8.0](gitlab-org/gitlab@62b7b1d3f28a98019fde619bde4e0e0530e821ef) ([merge request](gitlab-org/gitlab!66202)) +- [Disable file and network premailer strategies](gitlab-org/gitlab@c194597ae04e812f3b5be7339412413a04703ae4) +- [Add total http read timeout](gitlab-org/gitlab@5d7b5696955c2928d82adaf50ed73f53cb1939bf) +- [Update rdoc to 6.3.1](gitlab-org/gitlab@20d56f81f9aa282cb2e195a916f4c5e0fcb8084d) +- [Forbid GET requests with mutations](gitlab-org/gitlab@7d16feb31fb360123c4b8ddaa85de6ddb5ddf119) +- [Prevent GraphQL API access by deactivated users](gitlab-org/gitlab@414b5fb0b34fd6640369314013924c5524aa16a5) +- [Add sanitizing for name field](gitlab-org/gitlab@5fee1e3d52934f770e6f0334a0fbee5b891de5b6) +- [Fix XSS on audit log for feature flag actions](gitlab-org/gitlab@70e0b2630f5e439017931b196e5ebcf2ff4e9cdb) +- [Copy feature visibility settings to a fork](gitlab-org/gitlab@c2ef1c24770b024e0cb5a1d3346b8743aec28e47) +- [Avoid disclosing project in web IDE](gitlab-org/gitlab@09324e21488351e0c09806ad727b4c1e957ad288) +- [Allow only same-origin URLs for Edit Release Cancel button](gitlab-org/gitlab@cfff402646e95d30183168efdbda8d114c5f89c0) +- [Add new username validation](gitlab-org/gitlab@b14210fd775c1f384191410bd327a318a5293ffb) +- [Removes security_ci_lint_authorization code](gitlab-org/gitlab@8a69d1f03947e3f85f48dd920c1bff3639609875) ([merge request](gitlab-org/gitlab!64092)) +- [Update Nokogiri to 1.11.4](gitlab-org/gitlab@dcf26b79caa46ee31bd5e3ad7ca95bec7e59e5be) +- [Fix deploy key fallback issue in protected branch](gitlab-org/gitlab@58d1df0c6a3149c5c07825036be5e8fe3f1edd1c) +- [Sanitize input on pasteGFM](gitlab-org/gitlab@a5fcd806ff4e6e7510f9981c5d8eacab571a64d7) +- [Fix merge request diff display issue with unsupported encoding](gitlab-org/gitlab@7fa23a8854aed205af22fc904db117dbecec389f) + +### Performance (31 changes) + +- [Update anscestor deduplication in pipeline graph](gitlab-org/gitlab@12790c458eac27bda671e609ca9b07d2bb6cad4e) ([merge request](gitlab-org/gitlab!66283)) +- [Enqueue async, non-blocking jobs for group-group share actions](gitlab-org/gitlab@dc475336c83a324eaafe105864cb8b569a307447) ([merge request](gitlab-org/gitlab!66349)) +- [Immediately show parent row](gitlab-org/gitlab@f5f66238b66656138f6411b8af43d978a192b0dd) ([merge request](gitlab-org/gitlab!66176)) +- [Improve sort by popularity for issues board](gitlab-org/gitlab@e87edb6bccd20d37b4f424ca195aad3f57017d51) ([merge request](gitlab-org/gitlab!66140)) +- [Adjustments to compare caching](gitlab-org/gitlab@9b2f6917b7512720897c2a1f7b4c18945c75dc2d) ([merge request](gitlab-org/gitlab!65839)) +- [Move link icon to CSS](gitlab-org/gitlab@9fb7127e8dfd351652d5c3a5930c7fbfd9da04b5) ([merge request](gitlab-org/gitlab!65835)) +- [Lazy load avatars](gitlab-org/gitlab@b8efcdf7cf3ec9760c1ff468549de5982bcbe284) ([merge request](gitlab-org/gitlab!65745)) +- [Increase page size exponentially](gitlab-org/gitlab@0175d9c776f3c6890fe87e807882a19adc32c9ae) ([merge request](gitlab-org/gitlab!65654)) +- [Reduce space needed for merge request diff commits](gitlab-org/gitlab@43a3ce63af857909f3dd6051ca686e3254613086) ([merge request](gitlab-org/gitlab!63669)) +- [Preload project user authorizations on REST API](gitlab-org/gitlab@f0b0358b27cc9a153d0a6452bf37ab456b51d003) ([merge request](gitlab-org/gitlab!65602)) +- [Remove replica selection change FF](gitlab-org/gitlab@3848ff313b41e52d5ab2ad3c47f4d91a9c352a57) ([merge request](gitlab-org/gitlab!65545)) +- [Remove redundant call to RenderService](gitlab-org/gitlab@9b8af9c7505aea0442ba87ab170f0a43ca4fc378) ([merge request](gitlab-org/gitlab!65494)) +- [Cache rendered compare entity](gitlab-org/gitlab@b49afc54b836ce9fc053a34a9d931b17872b14a9) ([merge request](gitlab-org/gitlab!64418)) +- [Use linear root_ancestor when possible](gitlab-org/gitlab@0b1bd65439992857c5725425f0d44668fdd93887) ([merge request](gitlab-org/gitlab!65401)) +- [Schedule requirements processing conditionally](gitlab-org/gitlab@b1ba1aa7a945226a3d24dc96371686bd9381a27f) ([merge request](gitlab-org/gitlab!65322)) **GitLab Enterprise Edition** +- [Fix Namespace#all_projects performance](gitlab-org/gitlab@e0cc0fc67ca41caa9e0b7f67814414f56ad51a2c) ([merge request](gitlab-org/gitlab!65296)) +- [Improve LoadBalancer#all_caught_up? logic](gitlab-org/gitlab@c5dd0858774a712ab4ea2f7f039530c013d8e4f8) ([merge request](gitlab-org/gitlab!65248)) +- [Drop full index on ci_builds.token](gitlab-org/gitlab@e7f43db607d70b4cb3c042cb84d671ee0fc29287) ([merge request](gitlab-org/gitlab!65025)) +- [Linear traversal query for Namespace#self_and_ancestors](gitlab-org/gitlab@c26e1ae1bebbe31ed47d5e16bdfe0f348b17c41a) ([merge request](gitlab-org/gitlab!61163)) +- [Use async job when creating/updating EpicIssue](gitlab-org/gitlab@03c651f6b0a7d714e0f267302d39313161d9f709) ([merge request](gitlab-org/gitlab!64524)) **GitLab Enterprise Edition** +- [Enable milestone reference caching](gitlab-org/gitlab@619c21e3b02f526c19ebb59df1596f6598a67c71) ([merge request](gitlab-org/gitlab!62742)) +- [git_access: Use batched new blobs check](gitlab-org/gitlab@f73f0c7bfb080384d2f9f8f4a139f353a62a0830) ([merge request](gitlab-org/gitlab!64503)) +- [Eliminate some N+1 queries on project-pipeline GraphQL endpoint](gitlab-org/gitlab@82099148697c6d2de854d5af1df58dfb29551c8a) ([merge request](gitlab-org/gitlab!64700)) +- [Improve the performance of project/users API](gitlab-org/gitlab@5b7f3608c191fcaece081d3e67b4f128cb4d848a) ([merge request](gitlab-org/gitlab!64528)) +- [Replacement partial index for ci_builds.token](gitlab-org/gitlab@0205c7d01c192235447b3fe4ccf0a99eb34a5c26) ([merge request](gitlab-org/gitlab!64221)) +- [Use materialied CTE to improve builds fair scheduling](gitlab-org/gitlab@8fbbcb87137f7693ecd9833fa5df238af35a1436) ([merge request](gitlab-org/gitlab!64605)) +- [Speed up initial page load on Releases page](gitlab-org/gitlab@efb7212fa71ad570bd3e32b5c7374efc54228f34) ([merge request](gitlab-org/gitlab!63914)) +- [Remove replica selection change FF for LB](gitlab-org/gitlab@cb8d9048ea5e7da265941e2702ed945182e4e1ec) ([merge request](gitlab-org/gitlab!64300)) +- [Remove duplicate where condition](gitlab-org/gitlab@f968729aee1dc062161247df05786a98a5f5e4c2) ([merge request](gitlab-org/gitlab!64214)) +- [Implement pending builds queue builder in a separate class](gitlab-org/gitlab@e9368df2d44c54ef965bac6d37c4d5b35c86e024) ([merge request](gitlab-org/gitlab!64093)) +- [Utilize load balancing for BuildQueueWorker](gitlab-org/gitlab@57a35133e18c43c0c110371c4b3e6012af215a11) ([merge request](gitlab-org/gitlab!64180)) + +### Other (58 changes) + +- [Support reindexing unique indexes](gitlab-org/gitlab@982f22573b9975f6097834ecf76c62915f68dda6) ([merge request](gitlab-org/gitlab!65966)) +- [Revise group Pages size UI text](gitlab-org/gitlab@526a8ca626c063a32b8d9fd0d9abba5b22be9535) ([merge request](gitlab-org/gitlab!65862)) **GitLab Enterprise Edition** +- [First run for events dictionary for backend](gitlab-org/gitlab@2f2e27cb53a3509387216d7fc99e0bf35501524f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62422)) **GitLab Enterprise Edition** +- [Record message size transmitted over action cable](gitlab-org/gitlab@31407b25c1f77ab57b4e000e4f82ae4d6d8cdf0a) ([merge request](gitlab-org/gitlab!65286)) +- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@8c321d20d47230e9925abb1e151c9e6006a5440f) ([merge request](gitlab-org/gitlab!65898)) **GitLab Enterprise Edition** +- [Rename License.usage_ping to License.customer_service_enabled](gitlab-org/gitlab@63ed6908275668d2aeb48328b5dfec121b15442a) ([merge request](gitlab-org/gitlab!65834)) **GitLab Enterprise Edition** +- [Remove codequality_mr_diff_annotations flag](gitlab-org/gitlab@74b47ffe5bb656af9cd4acc4be23d218c634f6e7) ([merge request](gitlab-org/gitlab!65960)) **GitLab Enterprise Edition** +- [Remove temporary feature flags](gitlab-org/gitlab@d7049bc4e817a07b64659469dd48e6a6894610e7) ([merge request](gitlab-org/gitlab!65544)) +- [Remove the codequality_mr_diff feature flag](gitlab-org/gitlab@3d29d6688ea82163c93a198071d15a4c206ee604) ([merge request](gitlab-org/gitlab!63461)) **GitLab Enterprise Edition** +- [Add troubleshooting section to batched migrations docs](gitlab-org/gitlab@354021bcf53db7148e2a809e1e5c5de5596683e4) ([merge request](gitlab-org/gitlab!65513)) +- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@b09ea9f2ce741f1c716bbd26a329b57bb22cfee1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65894)) +- [Fix security scan query timeout](gitlab-org/gitlab@bda826eb4191b728b8a5e1066992df1cff7bd7fd) ([merge request](gitlab-org/gitlab!65742)) +- [Index batched migration jobs by max value](gitlab-org/gitlab@2d5ef1590c5838288c49098916c38ddc8d5d51fa) ([merge request](gitlab-org/gitlab!65838)) +- [Delete legacy operations feature flags](gitlab-org/gitlab@f8b0938512861b3587cd4d3f639497b61ca9403d) ([merge request](gitlab-org/gitlab!63742)) +- [Avoid splitting strings in repository maintenance UI](gitlab-org/gitlab@9991ad6bb0c1c9695815cb30268f19c3fd375ebd) ([merge request](gitlab-org/gitlab!65717)) +- [Fix GLIcon size property](gitlab-org/gitlab@4db2830055a87cfad119b81f25feb85c09557843) ([merge request](gitlab-org/gitlab!63014)) +- [Only reindex btree and gist indexes](gitlab-org/gitlab@ef4d7992c7499a741cc1c06ae19da8fec04d7e23) ([merge request](gitlab-org/gitlab!65655)) +- [Refactoring string literals used for snowplow tracking in the sidebar](gitlab-org/gitlab@de218bbea3ae074b02600e92b6afdb7890a8cbee) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65646)) **GitLab Enterprise Edition** +- [Refactor health status widget to use Apollo](gitlab-org/gitlab@90a2f8c15e10e97e7d20159e3a4647e4c81ec33a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6498)) **GitLab Enterprise Edition** +- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@5c8c65cff8402a001374d29ef36d4cfca52df374) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65398)) +- [Improve gradle QA scenario](gitlab-org/gitlab@85558babfcd274db51c001a64e24c55966b4a69b) ([merge request](gitlab-org/gitlab!64419)) +- [Update help for renamed documentation index](gitlab-org/gitlab@5a633772d51cdd7b9ece984a65a3601ef1cb5e2a) ([merge request](gitlab-org/gitlab!65624)) +- [Improves repository storage-related UI and documentation](gitlab-org/gitlab@c75a61989f1460e871e0b6a8a55ee5946e84fd4f) ([merge request](gitlab-org/gitlab!65424)) +- [Refactor health status widget to use Apollo](gitlab-org/gitlab@7374bf930c60c135909c26a4c8a839a89d003d8e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6498)) **GitLab Enterprise Edition** +- [Add rel property to help link](gitlab-org/gitlab@5e190f2f014ceb1ca00ae4963edc5a12cb50c6f5) ([merge request](gitlab-org/gitlab!65428)) +- [Initialize conversion of ci_builds_metadata.id for bigint migration](gitlab-org/gitlab@af8c85075ce35cfe6578b1f761f11aec4c05693c) ([merge request](gitlab-org/gitlab!65477)) +- [Remove project_statistics_sync feature flag](gitlab-org/gitlab@bc97e4b4a9f55a8826cc0f918a4d208cca0364d6) ([merge request](gitlab-org/gitlab!65435)) +- [Improve repository maintenance UI and documentation](gitlab-org/gitlab@17a8bd10cb78fd7116eaf80c76d766175f1714ba) ([merge request](gitlab-org/gitlab!65117)) +- [Migrate push_event_payloads.event_id back to integer (GitLab.com only)](gitlab-org/gitlab@dff68f62feebeffad35cf0f91b4e38f605495c79) ([merge request](gitlab-org/gitlab!65112)) +- [Remove cached_markdown_blob feature flag](gitlab-org/gitlab@6d73a189cda67eaab7e2c78b5d730bbaabf06f69) ([merge request](gitlab-org/gitlab!65306)) +- [Remove sort_dependency_vulnerabilities feature flag](gitlab-org/gitlab@b9e6510d14a92c76f1957a3f21976edb75285563) ([merge request](gitlab-org/gitlab!65295)) **GitLab Enterprise Edition** +- [Move prometheus service creation to the background job](gitlab-org/gitlab@a17b3d270c481dad35fe63905fa45f5f97845bbc) ([merge request](gitlab-org/gitlab!63539)) +- [Add BG migration to delete orphaned deployments](gitlab-org/gitlab@098dd2f613346a189b25e56a4c1331bb536e7b6d) ([merge request](gitlab-org/gitlab!64588)) +- [Remove by default enabled feature flag](gitlab-org/gitlab@41863bad8f0d0364d0caaa2b04d59dc1cfc85cdd) ([merge request](gitlab-org/gitlab!65151)) +- [Enable new Rails connection handling](gitlab-org/gitlab@bbd1d564f971d749e89feabbfb3cc957f26cae92) ([merge request](gitlab-org/gitlab!65107)) +- [Review and revise Audit Events UI text](gitlab-org/gitlab@4e4d6ecb6e3a9c5257a268e5f6efcdf83c6a1b36) ([merge request](gitlab-org/gitlab!60703)) **GitLab Enterprise Edition** +- [Add service desk project key validation error message](gitlab-org/gitlab@e022f59bf66e29724914cc65ad188a8b6ff424b8) ([merge request](gitlab-org/gitlab!64352)) +- [Remove FF ci_fix_pipeline_status_for_dag_needs_manual](gitlab-org/gitlab@9dd55ed41f256b63c265d08506dfe8e6cdb6a3ef) ([merge request](gitlab-org/gitlab!64777)) +- [Add FK for deployments.environment_id to environments table](gitlab-org/gitlab@343591ed3e8c304062ce0551699d2bfad25a33bf) ([merge request](gitlab-org/gitlab!64585)) +- [Remove ci_artifacts_exclude feature flag](gitlab-org/gitlab@703711e4f5d097c00ca9cb13a5d1d41dc388a89b) ([merge request](gitlab-org/gitlab!64227)) +- [Finalize conversion to bigint for push_event_payloads](gitlab-org/gitlab@b4def6d47dfb2648851f31d2ab83f1310a4628ef) ([merge request](gitlab-org/gitlab!64577)) +- [Log WaitableWorker inline job executions](gitlab-org/gitlab@91ec53627907303b69951fc30cbe615da5c1494d) ([merge request](gitlab-org/gitlab!63997)) +- [Remove default-enabled cascading_namespace_settings feature flag](gitlab-org/gitlab@ef2c2c8d1b68eff57a2b3ceea27bb265502ae645) ([merge request](gitlab-org/gitlab!64347)) +- [Track finished_at timestamp for schema migrations](gitlab-org/gitlab@be15d17a8c84e7f09d5f413c43a177b679e08b0a) ([merge request](gitlab-org/gitlab!64204)) +- [Drop remove_on_close column from labels table in envs where it exists](gitlab-org/gitlab@5fdca55006f089a4f01c1cf74f4c81e299e4e89e) ([merge request](gitlab-org/gitlab!62839)) +- [Toggle codequality diff annotations flag](gitlab-org/gitlab@ba8277b89ffd762aa3cf368b893e6656e9f1e68e) ([merge request](gitlab-org/gitlab!64536)) +- [Remove usage_data_code_review_aggregation feature flag](gitlab-org/gitlab@a7413e4284216cda36e26c90edcf6ab8c9a00521) ([merge request](gitlab-org/gitlab!64626)) +- [Remove FF ci_workflow_rules_variables](gitlab-org/gitlab@3e25217fa3ce91da557275df41f4124dd7142e63) ([merge request](gitlab-org/gitlab!64557)) +- [Cleanup group_devops_adoption feature flag](gitlab-org/gitlab@0783e2984f62fbc74612257bb44fb00d6959e510) ([merge request](gitlab-org/gitlab!64498)) **GitLab Enterprise Edition** +- [Remove ci_pipeline_latest feature flag](gitlab-org/gitlab@196edc110bb973cb29cc933e0343bba3326271d4) ([merge request](gitlab-org/gitlab!64423)) +- [Remove ci_runners_tokens_optional_encryption ff](gitlab-org/gitlab@66c514ec56a1ffeba6a3a999c1cfb9bcfdc4ca5a) ([merge request](gitlab-org/gitlab!64425)) +- [Update GitLab Runner Helm Chart to 0.30.0](gitlab-org/gitlab@d6bc1474cb288b8a234cda55ec427f831ce31bda) ([merge request](gitlab-org/gitlab!64462)) +- [Decrease epic issues and child epics page size](gitlab-org/gitlab@4542ea3217d257a1f5c26cda5f2ee8d607950e86) ([merge request](gitlab-org/gitlab!63563)) **GitLab Enterprise Edition** +- [Remove invite_signup_page_interaction experiment](gitlab-org/gitlab@9fa990747351f1f8fbd1d323fe48c67c5e783735) ([merge request](gitlab-org/gitlab!63798)) +- [Add internal docs for changing CI minute namespace](gitlab-org/gitlab@50d5ecf1dc2ebb9f6c2a3b6dcd5aa4b8161561de) ([merge request](gitlab-org/gitlab!64409)) **GitLab Enterprise Edition** +- [Add more logging to track encoding errors appending CI traces](gitlab-org/gitlab@6f240a53fe0d56910347a0615d575ac8c3e7215e) ([merge request](gitlab-org/gitlab!63920)) +- [Remove diffs gradual load feature flag](gitlab-org/gitlab@027d7c4327b5b6205a84281239027273517bf81b) ([merge request](gitlab-org/gitlab!55478)) +- [Remove partial index for Hashed Storage migration](gitlab-org/gitlab@3ed017a1023d7b0941a7606b69e6caee8d22f15c) ([merge request](gitlab-org/gitlab!62920)) ## 14.0.5 (2021-07-08) @@ -767,6 +1379,54 @@ No changes. - [Add missing metrics information](gitlab-org/gitlab@89cd7fe3b95323e635b2d73e08549b2e6153dc4d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61772/edit)) - [Track usage of the resolve UI](gitlab-org/gitlab@35c8e30fce288cecefcf2f7c0077d4608e696519) ([merge request](gitlab-org/gitlab!61654)) +## 13.12.8 (2021-07-07) + +### Security (1 change) + +- [Disable file and network premailer strategies](gitlab-org/security/gitlab@ee69d6d6950bb116cb31523ca805e78af431c25c) ([merge request](gitlab-org/security/gitlab!1545)) + +## 13.12.7 (2021-07-05) + +### Fixed (2 changes) + +- [Fix state value in the lfs_object_registry table](gitlab-org/gitlab@feca70558108299a9b7b499e4461b59b7c140ef7) ([merge request](gitlab-org/gitlab!65466)) **GitLab Enterprise Edition** +- [Fix pages deployment storage migration](gitlab-org/gitlab@4e806a7b5e0eef8d88bcdb68724c6b7bf3c08293) ([merge request](gitlab-org/gitlab!65366)) + +### Changed (1 change) + +- [Move migration to a pre-deployment migration](gitlab-org/gitlab@d02fcd44b3dd797e18221e4e91ab913372bdf18a) ([merge request](gitlab-org/gitlab!65466)) **GitLab Enterprise Edition** + +## 13.12.6 (2021-07-01) + +### Added (1 change) + +- [Added omniauth_user check when verifying user cap](gitlab-org/security/gitlab@a61062501630c35820301e9f79a036219d1e3074) ([merge request](gitlab-org/security/gitlab!1502)) **GitLab Enterprise Edition** + +### Security (14 changes) + +- [Bump rails gem version to 6.0.3.7](gitlab-org/security/gitlab@58d27ba819867baadf535e0d8d91d0cb818dc8b6) ([merge request](gitlab-org/security/gitlab!1515)) +- [Update rdoc to 6.3.1](gitlab-org/security/gitlab@ead11a6974576b0b1a974985493c75143e3bd575) ([merge request](gitlab-org/security/gitlab!1534)) +- [Add sanitizing for name field](gitlab-org/security/gitlab@2c5672eae4323c2682245485b327850e68e7e5b4) ([merge request](gitlab-org/security/gitlab!1490)) +- [Forbid GET requests with mutations](gitlab-org/security/gitlab@2b01d6dc310451fa3022f1865470ca004bbd4c33) ([merge request](gitlab-org/security/gitlab!1529)) +- [Copy feature visibility settings to a fork](gitlab-org/security/gitlab@5ee923ba64fb34fc38f831fc206a153d8f7eae91) ([merge request](gitlab-org/security/gitlab!1523)) +- [Avoid disclosing project in web IDE](gitlab-org/security/gitlab@759d1361e7f359d681c4f55ea2b6f7e1d0bb1e53) ([merge request](gitlab-org/security/gitlab!1512)) +- [Add new username validation](gitlab-org/security/gitlab@e79625541d04b0d6c94614f2afc6aaeb2ef40083) ([merge request](gitlab-org/security/gitlab!1495)) +- [Allow only same-origin URLs for Edit Release Cancel button](gitlab-org/security/gitlab@e5bda0a7e03978afee494616e2054b8650b61d3e) ([merge request](gitlab-org/security/gitlab!1486)) +- [Update Nokogiri to 1.11.4](gitlab-org/security/gitlab@d71973da1850df059b1ec1422d50bbccace21ff2) ([merge request](gitlab-org/security/gitlab!1479)) +- [Fix deploy key fallback issue in protected branch](gitlab-org/security/gitlab@0411bc45885e1122c06dbff084b48bf03d78c6a8) ([merge request](gitlab-org/security/gitlab!1478)) +- [Fix XSS on audit log for feature flag actions](gitlab-org/security/gitlab@22e2f903c821e54ce6d4b4b749a009d14abc4a13) ([merge request](gitlab-org/security/gitlab!1474)) +- [Sanitize input on pasteGFM](gitlab-org/security/gitlab@7dc511ebc2e77c3d22cd34ca87449f32120a5229) ([merge request](gitlab-org/security/gitlab!1453)) +- [Add total http read timeout](gitlab-org/security/gitlab@37c24c82d5dfa57fad03f265e7ba92f6ef250c30) ([merge request](gitlab-org/security/gitlab!1427)) +- [Fix merge request diff display issue with unsupported encoding](gitlab-org/security/gitlab@7d05892daa6aaf951b941628e2af41e17977b140) ([merge request](gitlab-org/security/gitlab!1424)) + +## 13.12.5 (2021-06-21) + +### Fixed (3 changes) + +- [Fix failing spec](gitlab-org/gitlab@7d1a9b0155195eb082f5b33ba1310deed742a7a4) ([merge request](gitlab-org/gitlab!64488)) +- [Advanced Search Settings page does not load if the ES url is unreachable](gitlab-org/gitlab@80b262f0e79f02a89724ed4e3988e686f53c959c) ([merge request](gitlab-org/gitlab!64488)) **GitLab Enterprise Edition** +- [Fix Password expired error on git fetch via SSH for LDAP user](gitlab-org/gitlab@19a7d7a6d3cd43f1c7559c729532ad3b9dafb75c) ([merge request](gitlab-org/gitlab!64488)) + ## 13.12.4 (2021-06-14) ### Fixed (3 changes) @@ -1398,6 +2058,36 @@ No changes. - Change wording for design management upload. !61782 +## 13.11.7 (2021-07-07) + +### Security (1 change) + +- [Disable file and network premailer strategies](gitlab-org/security/gitlab@511ed3746b48a26e95c851f76ac6fdcd44c28fd8) ([merge request](gitlab-org/security/gitlab!1546)) + +## 13.11.6 (2021-07-01) + +### Added (1 change) + +- [Added omniauth_user check when verifying user cap](gitlab-org/security/gitlab@60bc8ff36c41871271dbd4e07db960d09204607d) ([merge request](gitlab-org/security/gitlab!1503)) **GitLab Enterprise Edition** + +### Security (15 changes) + +- [Bump rails gem version to 6.0.3.7](gitlab-org/security/gitlab@23e4317622532de2564b7a7b0efb0812e5601a2e) ([merge request](gitlab-org/security/gitlab!1516)) +- [Update rdoc to 6.3.1](gitlab-org/security/gitlab@452f9c7370c844ea728cda7ae96f990d10c32ca2) ([merge request](gitlab-org/security/gitlab!1535)) +- [Prevent GraphQL API access by deactivated users](gitlab-org/security/gitlab@fdedb77bc2190dd87988171396bbb335fd8c47cd) ([merge request](gitlab-org/security/gitlab!1527)) +- [Add sanitizing for name field](gitlab-org/security/gitlab@d49da0e57d91fcc59f0732eb978f68b68619a761) ([merge request](gitlab-org/security/gitlab!1491)) +- [Copy feature visibility settings to a fork](gitlab-org/security/gitlab@5fd56f01c69edaefb64143ea593d680a0477cb28) ([merge request](gitlab-org/security/gitlab!1524)) +- [Avoid disclosing project in web IDE](gitlab-org/security/gitlab@6cba97cef6fa1ab0808db98c64baa33597e54979) ([merge request](gitlab-org/security/gitlab!1513)) +- [Add new username validation](gitlab-org/security/gitlab@9a5f5264f4c30248e83747e4ac79e2c2396461dd) ([merge request](gitlab-org/security/gitlab!1497)) +- [Allow only same-origin URLs for Edit Release Cancel button](gitlab-org/security/gitlab@b959550cf4cd057d42b4a1ae76aee968cc9133b4) ([merge request](gitlab-org/security/gitlab!1485)) +- [Limit creation of issues based on issue type](gitlab-org/security/gitlab@e8713df5341a6c54a4607d6eef0fbb70f93a375f) ([merge request](gitlab-org/security/gitlab!1481)) +- [Update Nokogiri to 1.11.4](gitlab-org/security/gitlab@ac29afd195e19cd5c38d9030ecf7fabdea9214d1) ([merge request](gitlab-org/security/gitlab!1480)) +- [Fix deploy key fallback issue in protected branch](gitlab-org/security/gitlab@bb0c95595c2b0db98af1feb882aa09870cee3600) ([merge request](gitlab-org/security/gitlab!1477)) +- [Fix XSS on audit log for feature flag actions](gitlab-org/security/gitlab@e0140c81b2d7eea963248f2c2bd103b1b5a908ee) ([merge request](gitlab-org/security/gitlab!1475)) +- [Sanitize input on pasteGFM](gitlab-org/security/gitlab@b47f364dfe82e59d480bb42adccc24ce691b18b1) ([merge request](gitlab-org/security/gitlab!1452)) +- [Add total http read timeout](gitlab-org/security/gitlab@2179f835eadec3afa3233d649fbcdad6125a92c5) ([merge request](gitlab-org/security/gitlab!1393)) +- [Fix merge request diff display issue with unsupported encoding](gitlab-org/security/gitlab@33971ea6fba1c493b2d8da4a82c8a0af71ef7e0f) ([merge request](gitlab-org/security/gitlab!1425)) + ## 13.11.4 (2021-05-14) ### Fixed (3 changes) diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index 150937ce05..8898bdd490 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -14.0.10 \ No newline at end of file +14.1.7 \ No newline at end of file diff --git a/GITLAB_KAS_VERSION b/GITLAB_KAS_VERSION index 63dba868a0..26f2bbc197 100644 --- a/GITLAB_KAS_VERSION +++ b/GITLAB_KAS_VERSION @@ -1 +1 @@ -14.0.1 +14.1.1 diff --git a/GITLAB_PAGES_VERSION b/GITLAB_PAGES_VERSION index 32b7211cb6..7d47e59980 100644 --- a/GITLAB_PAGES_VERSION +++ b/GITLAB_PAGES_VERSION @@ -1 +1 @@ -1.40.0 +1.41.0 diff --git a/Gemfile b/Gemfile index 6d296a4c25..1f23c76586 100644 --- a/Gemfile +++ b/Gemfile @@ -35,7 +35,7 @@ gem 'rexml', '~> 3.2.5' gem 'ruby-saml', '~> 1.12.1' gem 'omniauth', '~> 1.8' gem 'omniauth-auth0', '~> 2.0.0' -gem 'omniauth-azure-activedirectory-v2', '~> 0.1' +gem 'omniauth-azure-activedirectory-v2', '~> 1.0' gem 'omniauth-azure-oauth2', '~> 0.0.9' # Deprecated v1 version gem 'omniauth-cas3', '~> 1.1.4' gem 'omniauth-facebook', '~> 4.0.0' @@ -124,7 +124,7 @@ gem 'fog-aws', '~> 3.9' # Locked until fog-google resolves https://github.com/fog/fog-google/issues/421. # Also see config/initializers/fog_core_patch.rb. gem 'fog-core', '= 2.1.0' -gem 'gitlab-fog-google', '~> 1.13', require: 'fog/google' +gem 'fog-google', '~> 1.15', require: 'fog/google' gem 'fog-local', '~> 0.6' gem 'fog-openstack', '~> 1.0' gem 'fog-rackspace', '~> 0.1.1' @@ -157,14 +157,14 @@ gem 'github-markup', '~> 1.7.0', require: 'github/markup' gem 'commonmarker', '~> 0.21' gem 'kramdown', '~> 2.3.1' gem 'RedCloth', '~> 4.3.2' -gem 'gitlab-rdoc', '~> 6.3.2', require: 'rdoc' # We need this fork until rdoc releases a new version. See https://gitlab.com/gitlab-org/gitlab/-/issues/334695 +gem 'rdoc', '~> 6.3.2' gem 'org-ruby', '~> 0.9.12' gem 'creole', '~> 0.5.0' gem 'wikicloth', '0.8.1' gem 'asciidoctor', '~> 2.0.10' gem 'asciidoctor-include-ext', '~> 0.3.1', require: false gem 'asciidoctor-plantuml', '~> 0.0.12' -gem 'asciidoctor-kroki', '~> 0.4.0', require: false +gem 'asciidoctor-kroki', '~> 0.5.0', require: false gem 'rouge', '~> 3.26.0' gem 'truncato', '~> 0.7.11' gem 'bootstrap_form', '~> 4.2.0' @@ -197,7 +197,7 @@ gem 'acts-as-taggable-on', '~> 7.0' # Background jobs gem 'sidekiq', '~> 5.2.7' gem 'sidekiq-cron', '~> 1.0' -gem 'redis-namespace', '~> 1.7.0' +gem 'redis-namespace', '~> 1.8.1' gem 'gitlab-sidekiq-fetcher', '0.5.6', require: 'sidekiq-reliable-fetch' # Cron Parser @@ -229,7 +229,7 @@ gem 'js_regex', '~> 3.4' gem 'device_detector' # Redis -gem 'redis', '~> 4.0' +gem 'redis', '~> 4.1.4' gem 'connection_pool', '~> 2.0' # Redis session store @@ -258,7 +258,7 @@ gem 'asana', '~> 0.10.3' gem 'ruby-fogbugz', '~> 0.2.1' # Kubernetes integration -gem 'kubeclient', '~> 4.9.1' +gem 'kubeclient', '~> 4.9.2' # Sanitize user input gem 'sanitize', '~> 5.2.1' @@ -286,16 +286,16 @@ gem 'gitlab_chronic_duration', '~> 0.10.6.2' gem 'rack-proxy', '~> 0.6.0' gem 'sassc-rails', '~> 2.1.0' -gem 'autoprefixer-rails', '10.2.0.0' +gem 'autoprefixer-rails', '10.2.5.1' gem 'terser', '1.0.2' -gem 'addressable', '~> 2.7' +gem 'addressable', '~> 2.8' gem 'gemojione', '~> 3.3' gem 'gon', '~> 6.4.0' gem 'request_store', '~> 1.5' gem 'base32', '~> 0.3.0' -gem 'gitlab-license', '~> 1.5' +gem 'gitlab-license', '~> 2.0' # Protect against bruteforcing gem 'rack-attack', '~> 6.3.0' @@ -305,16 +305,12 @@ gem 'sentry-raven', '~> 3.1' # PostgreSQL query parsing # -# 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 'pg_query', '~> 2.1' gem 'premailer-rails', '~> 1.10.3' # LabKit: Tracing and Correlation -gem 'gitlab-labkit', '~> 0.18.0' +gem 'gitlab-labkit', '~> 0.20.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' @@ -335,13 +331,9 @@ gem 'peek', '~> 1.1' gem 'snowplow-tracker', '~> 0.6.1' # Metrics -group :metrics do - gem 'method_source', '~> 1.0', require: false - gem 'webrick', '~> 1.6.1', require: false - - # Prometheus - gem 'prometheus-client-mmap', '~> 0.12.0' -end +gem 'method_source', '~> 1.0', require: false +gem 'webrick', '~> 1.6.1', require: false +gem 'prometheus-client-mmap', '~> 0.12.0', require: 'prometheus/client' group :development do gem 'lefthook', '~> 0.7.0', require: false @@ -402,7 +394,7 @@ group :development, :test do end group :development, :test, :danger do - gem 'gitlab-dangerfiles', '~> 2.1.2', require: false + gem 'gitlab-dangerfiles', '~> 2.2.2', require: false end group :development, :test, :coverage do @@ -480,7 +472,7 @@ end gem 'spamcheck', '~> 0.1.0' # Gitaly GRPC protocol definitions -gem 'gitaly', '~> 14.0.0.pre.rc2' +gem 'gitaly', '~> 14.1.0.pre.rc3' # KAS GRPC protocol definitions gem 'kas-grpc', '~> 0.0.2' @@ -489,14 +481,14 @@ gem 'grpc', '~> 1.30.2' gem 'google-protobuf', '~> 3.17.1' -gem 'toml-rb', '~> 1.0.0' +gem 'toml-rb', '~> 2.0' # Feature toggles 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' +gem 'gitlab-experiment', '~> 0.6.1' # Structured logging gem 'lograge', '~> 0.5' diff --git a/Gemfile.lock b/Gemfile.lock index 60b9be01b3..815096c227 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -79,7 +79,7 @@ GEM adamantium (0.2.0) ice_nine (~> 0.11.0) memoizable (~> 0.4.0) - addressable (2.7.0) + addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) aes_key_wrap (1.1.0) akismet (3.0.0) @@ -92,10 +92,10 @@ GEM faraday_middleware (~> 1.0) faraday_middleware-multi_json (~> 0.0) oauth2 (~> 1.4) - asciidoctor (2.0.12) + asciidoctor (2.0.15) asciidoctor-include-ext (0.3.1) asciidoctor (>= 1.5.6, < 3.0.0) - asciidoctor-kroki (0.4.0) + asciidoctor-kroki (0.5.0) asciidoctor (~> 2.0) asciidoctor-plantuml (0.0.12) asciidoctor (>= 1.5.6, < 3.0.0) @@ -105,9 +105,9 @@ GEM attr_encrypted (3.1.0) encryptor (~> 3.0.0) attr_required (1.0.1) - autoprefixer-rails (10.2.0.0) - execjs - awesome_print (1.8.0) + autoprefixer-rails (10.2.5.1) + execjs (> 0) + awesome_print (1.9.2) awrence (1.1.1) aws-eventstream (1.1.0) aws-partitions (1.345.0) @@ -229,7 +229,7 @@ GEM css_parser (1.7.0) addressable daemons (1.3.1) - danger (8.2.3) + danger (8.3.1) claide (~> 1.0) claide-plugins (>= 0.9.2) colored2 (~> 3.1) @@ -343,7 +343,7 @@ GEM tzinfo eventmachine (1.2.7) excon (0.71.1) - execjs (2.7.0) + execjs (2.8.1) expression_parser (0.9.0) extended-markdown-filter (0.6.0) html-pipeline (~> 2.0) @@ -381,7 +381,7 @@ GEM fast_blank (1.0.0) fast_gettext (1.6.0) ffaker (2.10.0) - ffi (1.15.1) + ffi (1.15.3) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake @@ -412,6 +412,12 @@ GEM excon (~> 0.58) formatador (~> 0.2) mime-types + fog-google (1.15.0) + fog-core (<= 2.1.0) + fog-json (~> 1.2) + fog-xml (~> 0.1.0) + google-api-client (>= 0.44.2, < 0.51) + google-cloud-env (~> 1.2) fog-json (1.2.0) fog-core multi_json (~> 1.10) @@ -454,7 +460,7 @@ GEM rails (>= 3.2.0) git (1.7.0) rchardet (~> 1.8) - gitaly (14.0.0.pre.rc2) + gitaly (14.1.0.pre.rc3) grpc (~> 1.0) github-markup (1.7.0) gitlab (4.16.1) @@ -462,9 +468,10 @@ GEM terminal-table (~> 1.5, >= 1.5.1) gitlab-chronic (0.10.5) numerizer (~> 0.2) - gitlab-dangerfiles (2.1.2) - danger-gitlab - gitlab-experiment (0.5.4) + gitlab-dangerfiles (2.2.2) + danger (>= 8.3.1) + danger-gitlab (>= 8.0.0) + gitlab-experiment (0.6.1) activesupport (>= 3.0) request_store (>= 1.0) scientist (~> 1.6, >= 1.6.0) @@ -475,22 +482,15 @@ GEM fog-json (~> 1.2.0) mime-types ms_rest_azure (~> 0.12.0) - gitlab-fog-google (1.13.0) - addressable (>= 2.7.0) - fog-core (<= 2.1.0) - fog-json (~> 1.2) - fog-xml (~> 0.1.0) - google-api-client (>= 0.44.2, < 0.51) - google-cloud-env (~> 1.2) - gitlab-labkit (0.18.0) + gitlab-labkit (0.20.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 (~> 2.1) redis (> 3.0.0, < 5.0.0) - gitlab-license (1.5.0) + gitlab-license (2.0.0) gitlab-mail_room (0.0.9) gitlab-markup (1.7.1) gitlab-net-dns (0.9.1) @@ -498,9 +498,6 @@ GEM addressable (~> 2.7) omniauth (~> 1.9) openid_connect (~> 1.2) - gitlab-pg_query (2.0.4) - google-protobuf (>= 3.17.1) - gitlab-rdoc (6.3.2) gitlab-sidekiq-fetcher (0.5.6) sidekiq (~> 5) gitlab-styles (6.2.0) @@ -532,7 +529,7 @@ GEM retriable (>= 2.0, < 4.0) rexml signet (~> 0.12) - google-cloud-env (1.4.0) + google-cloud-env (1.5.0) faraday (>= 0.17.3, < 2.0) google-protobuf (3.17.1) googleapis-common-protos-types (1.0.6) @@ -618,7 +615,7 @@ GEM hana (1.3.6) hangouts-chat (0.0.5) hashdiff (1.0.1) - hashie (3.6.0) + hashie (4.1.0) hashie-forbidden_attributes (0.1.1) hashie (>= 3.0) health_check (3.0.0) @@ -678,9 +675,8 @@ GEM hana (~> 1.3) regexp_parser (~> 1.5) uri_template (~> 0.7) - jsonpath (1.0.5) + jsonpath (1.1.0) multi_json - to_regexp (~> 0.2.1) jwt (2.1.0) kaminari (1.2.1) activesupport (>= 4.1.0) @@ -702,7 +698,7 @@ GEM rexml kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) - kubeclient (4.9.1) + kubeclient (4.9.2) http (>= 3.0, < 5.0) jsonpath (~> 1.0) recursive-open-struct (~> 1.1, >= 1.1.1) @@ -762,7 +758,7 @@ GEM mini_histogram (0.3.1) mini_magick (4.10.1) mini_mime (1.0.2) - mini_portile2 (2.5.0) + mini_portile2 (2.5.1) minitest (5.11.3) mixlib-cli (2.1.8) mixlib-config (3.0.9) @@ -800,7 +796,7 @@ GEM netrc (0.11.0) nio4r (2.5.4) no_proxy_fix (0.1.2) - nokogiri (1.11.4) + nokogiri (1.11.5) mini_portile2 (~> 2.5.0) racc (~> 1.4) nokogumbo (2.0.2) @@ -810,7 +806,7 @@ GEM shellany (~> 0.0) numerizer (0.2.0) oauth (0.5.6) - oauth2 (1.4.4) + oauth2 (1.4.7) faraday (>= 0.8, < 2.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) @@ -833,8 +829,8 @@ GEM train-core wmi-lite (~> 1.0) oj (3.10.6) - omniauth (1.9.0) - hashie (>= 3.4.6, < 3.7.0) + omniauth (1.9.1) + hashie (>= 3.4.6) rack (>= 1.6.2, < 3) omniauth-atlassian-oauth2 (0.2.0) omniauth (>= 1.1.1) @@ -844,8 +840,8 @@ GEM omniauth-authentiq (0.3.3) jwt (>= 1.5) omniauth-oauth2 (>= 1.5) - omniauth-azure-activedirectory-v2 (0.1.1) - omniauth-oauth2 + omniauth-azure-activedirectory-v2 (1.0.0) + omniauth-oauth2 (~> 1.7) omniauth-azure-oauth2 (0.0.10) jwt (>= 1.0, < 3.0) omniauth (~> 1.0) @@ -874,9 +870,9 @@ GEM omniauth-oauth (1.1.0) oauth omniauth (~> 1.0) - omniauth-oauth2 (1.6.0) - oauth2 (~> 1.1) - omniauth (~> 1.9) + omniauth-oauth2 (1.7.1) + oauth2 (~> 1.4) + omniauth (>= 1.9, < 3) omniauth-oauth2-generic (0.2.2) omniauth-oauth2 (~> 1.0) omniauth-salesforce (1.0.5) @@ -922,6 +918,8 @@ GEM peek (1.1.0) railties (>= 4.0.0) pg (1.2.3) + pg_query (2.1.0) + google-protobuf (>= 3.17.1) plist (3.6.0) png_quantizator (0.2.1) po_to_json (1.0.1) @@ -1025,11 +1023,12 @@ GEM msgpack (>= 0.4.3) optimist (>= 3.0.0) rchardet (1.8.0) + rdoc (6.3.2) re2 (1.2.0) recaptcha (4.13.1) json - recursive-open-struct (1.1.2) - redis (4.1.3) + recursive-open-struct (1.1.3) + redis (4.1.4) redis-actionpack (5.2.0) actionpack (>= 5, < 7) redis-rack (>= 2.1.0, < 3) @@ -1037,7 +1036,7 @@ GEM redis-activesupport (5.2.0) activesupport (>= 3, < 7) redis-store (>= 1.3, < 2) - redis-namespace (1.7.0) + redis-namespace (1.8.1) redis (>= 3.0.4) redis-rack (2.1.2) rack (>= 2.0.8, < 3) @@ -1263,7 +1262,7 @@ GEM activesupport (>= 3) attr_required (>= 0.0.5) httpclient (>= 2.4) - sys-filesystem (1.1.6) + sys-filesystem (1.1.9) ffi sysexits (1.2.0) temple (0.8.2) @@ -1286,10 +1285,9 @@ GEM timecop (0.9.1) timeliness (0.3.10) timfel-krb5-auth (0.8.3) - to_regexp (0.2.1) toml (0.2.0) parslet (~> 1.8.0) - toml-rb (1.0.0) + toml-rb (2.0.1) citrus (~> 3.0, > 3.0) tomlrb (1.3.0) tpm-key_attestation (0.9.0) @@ -1402,17 +1400,17 @@ DEPENDENCIES acme-client (~> 2.0, >= 2.0.6) activerecord-explain-analyze (~> 0.1) acts-as-taggable-on (~> 7.0) - addressable (~> 2.7) + addressable (~> 2.8) akismet (~> 3.0) apollo_upload_server (~> 2.1.0) asana (~> 0.10.3) asciidoctor (~> 2.0.10) asciidoctor-include-ext (~> 0.3.1) - asciidoctor-kroki (~> 0.4.0) + asciidoctor-kroki (~> 0.5.0) asciidoctor-plantuml (~> 0.0.12) atlassian-jwt (~> 0.2.0) attr_encrypted (~> 3.1.0) - autoprefixer-rails (= 10.2.0.0) + autoprefixer-rails (= 10.2.5.1) awesome_print aws-sdk-cloudformation (~> 1) aws-sdk-core (~> 3) @@ -1474,6 +1472,7 @@ DEPENDENCIES fog-aliyun (~> 0.3) fog-aws (~> 3.9) fog-core (= 2.1.0) + fog-google (~> 1.15) fog-local (~> 0.6) fog-openstack (~> 1.0) fog-rackspace (~> 0.1.1) @@ -1483,21 +1482,18 @@ DEPENDENCIES gettext (~> 3.3) gettext_i18n_rails (~> 1.8.0) gettext_i18n_rails_js (~> 1.3) - gitaly (~> 14.0.0.pre.rc2) + gitaly (~> 14.1.0.pre.rc3) github-markup (~> 1.7.0) gitlab-chronic (~> 0.10.5) - gitlab-dangerfiles (~> 2.1.2) - gitlab-experiment (~> 0.5.4) + gitlab-dangerfiles (~> 2.2.2) + gitlab-experiment (~> 0.6.1) gitlab-fog-azure-rm (~> 1.1.1) - gitlab-fog-google (~> 1.13) - gitlab-labkit (~> 0.18.0) - gitlab-license (~> 1.5) + gitlab-labkit (~> 0.20.0) + gitlab-license (~> 2.0) 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-rdoc (~> 6.3.2) gitlab-sidekiq-fetcher (= 0.5.6) gitlab-styles (~> 6.2.0) gitlab_chronic_duration (~> 0.10.6.2) @@ -1538,7 +1534,7 @@ DEPENDENCIES kas-grpc (~> 0.0.2) knapsack (~> 1.21.1) kramdown (~> 2.3.1) - kubeclient (~> 4.9.1) + kubeclient (~> 4.9.2) lefthook (~> 0.7.0) letter_opener_web (~> 1.4.0) license_finder (~> 6.0) @@ -1567,7 +1563,7 @@ DEPENDENCIES omniauth-atlassian-oauth2 (~> 0.2.0) omniauth-auth0 (~> 2.0.0) omniauth-authentiq (~> 0.3.3) - omniauth-azure-activedirectory-v2 (~> 0.1) + omniauth-azure-activedirectory-v2 (~> 1.0) omniauth-azure-oauth2 (~> 0.0.9) omniauth-cas3 (~> 1.1.4) omniauth-facebook (~> 4.0.0) @@ -1586,6 +1582,7 @@ DEPENDENCIES parslet (~> 1.8) peek (~> 1.1) pg (~> 1.1) + pg_query (~> 2.1) png_quantizator (~> 0.2.1) premailer-rails (~> 1.10.3) prometheus-client-mmap (~> 0.12.0) @@ -1606,10 +1603,11 @@ DEPENDENCIES rainbow (~> 3.0) rblineprof (~> 0.3.6) rbtrace (~> 0.4) + rdoc (~> 6.3.2) re2 (~> 1.2.0) recaptcha (~> 4.11) - redis (~> 4.0) - redis-namespace (~> 1.7.0) + redis (~> 4.1.4) + redis-namespace (~> 1.8.1) redis-rails (~> 5.0.2) request_store (~> 1.5) responders (~> 3.0) @@ -1659,7 +1657,7 @@ DEPENDENCIES thin (~> 1.8.0) thrift (>= 0.14.0) timecop (~> 0.9.1) - toml-rb (~> 1.0.0) + toml-rb (~> 2.0) truncato (~> 0.7.11) u2f (~> 0.2.1) unf (~> 0.1.4) diff --git a/LICENSE b/LICENSE index 216125d93c..690a9a3966 100644 --- a/LICENSE +++ b/LICENSE @@ -4,6 +4,7 @@ Portions of this software are licensed as follows: * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE". +* All content that resides under the "jh/" directory of this repository, if that directory exists, is licensed under the license defined in "jh/LICENSE". * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license. * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component. * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below. diff --git a/README.md b/README.md index 05193e71c7..f8eb17cf85 100644 --- a/README.md +++ b/README.md @@ -23,10 +23,11 @@ To see how GitLab looks please see the [features page on our website](https://ab ## Editions -There are two editions of GitLab: +There are three editions of GitLab: - GitLab Community Edition (CE) is available freely under the MIT Expat license. - GitLab Enterprise Edition (EE) includes [extra features](https://about.gitlab.com/pricing/#compare-options) that are more useful for organizations with more than 100 users. To use EE and get official support please [become a subscriber](https://about.gitlab.com/pricing/). +- JiHu Edition (JH) tailored specifically for the [Chinese market](https://about.gitlab.cn/). ## Licensing diff --git a/VERSION b/VERSION index 150937ce05..8898bdd490 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -14.0.10 \ No newline at end of file +14.1.7 \ No newline at end of file diff --git a/app/assets/javascripts/activities.js b/app/assets/javascripts/activities.js index b671d038ce..f45af5fe08 100644 --- a/app/assets/javascripts/activities.js +++ b/app/assets/javascripts/activities.js @@ -42,7 +42,7 @@ export default class Activities { } updateTooltips() { - localTimeAgo($('.js-timeago', '.content_list')); + localTimeAgo(document.querySelectorAll('.content_list .js-timeago')); } reloadActivities() { diff --git a/app/assets/javascripts/admin/application_settings/setup_metrics_and_profiling.js b/app/assets/javascripts/admin/application_settings/setup_metrics_and_profiling.js index a357d5d2f1..cfa2f4b876 100644 --- a/app/assets/javascripts/admin/application_settings/setup_metrics_and_profiling.js +++ b/app/assets/javascripts/admin/application_settings/setup_metrics_and_profiling.js @@ -1,3 +1,4 @@ +import initSetHelperText from '~/pages/admin/application_settings/metrics_and_profiling/usage_statistics'; import PayloadPreviewer from '~/pages/admin/application_settings/payload_previewer'; export default () => { @@ -5,3 +6,5 @@ export default () => { new PayloadPreviewer(trigger).init(); }); }; + +initSetHelperText(); diff --git a/app/assets/javascripts/admin/users/components/actions/activate.vue b/app/assets/javascripts/admin/users/components/actions/activate.vue index 99c260bf11..74e9c60a57 100644 --- a/app/assets/javascripts/admin/users/components/actions/activate.vue +++ b/app/assets/javascripts/admin/users/components/actions/activate.vue @@ -1,6 +1,16 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/approve.vue b/app/assets/javascripts/admin/users/components/actions/approve.vue index 6fc43c246e..77a9be8eec 100644 --- a/app/assets/javascripts/admin/users/components/actions/approve.vue +++ b/app/assets/javascripts/admin/users/components/actions/approve.vue @@ -1,21 +1,60 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/ban.vue b/app/assets/javascripts/admin/users/components/actions/ban.vue new file mode 100644 index 0000000000..4e9cefbfdd --- /dev/null +++ b/app/assets/javascripts/admin/users/components/actions/ban.vue @@ -0,0 +1,69 @@ + + + diff --git a/app/assets/javascripts/admin/users/components/actions/block.vue b/app/assets/javascripts/admin/users/components/actions/block.vue index 68dfefe14c..03557008a8 100644 --- a/app/assets/javascripts/admin/users/components/actions/block.vue +++ b/app/assets/javascripts/admin/users/components/actions/block.vue @@ -1,6 +1,7 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/deactivate.vue b/app/assets/javascripts/admin/users/components/actions/deactivate.vue index 7e0c17ba29..640c8fefc2 100644 --- a/app/assets/javascripts/admin/users/components/actions/deactivate.vue +++ b/app/assets/javascripts/admin/users/components/actions/deactivate.vue @@ -1,6 +1,7 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/index.js b/app/assets/javascripts/admin/users/components/actions/index.js index e34b01346b..4e63a85df8 100644 --- a/app/assets/javascripts/admin/users/components/actions/index.js +++ b/app/assets/javascripts/admin/users/components/actions/index.js @@ -1,20 +1,24 @@ import Activate from './activate.vue'; import Approve from './approve.vue'; +import Ban from './ban.vue'; import Block from './block.vue'; import Deactivate from './deactivate.vue'; import Delete from './delete.vue'; import DeleteWithContributions from './delete_with_contributions.vue'; import Reject from './reject.vue'; +import Unban from './unban.vue'; import Unblock from './unblock.vue'; import Unlock from './unlock.vue'; export default { Activate, Approve, + Ban, Block, Deactivate, Delete, DeleteWithContributions, + Unban, Unblock, Unlock, Reject, diff --git a/app/assets/javascripts/admin/users/components/actions/reject.vue b/app/assets/javascripts/admin/users/components/actions/reject.vue index a80c1ff545..901306455f 100644 --- a/app/assets/javascripts/admin/users/components/actions/reject.vue +++ b/app/assets/javascripts/admin/users/components/actions/reject.vue @@ -1,21 +1,70 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/unban.vue b/app/assets/javascripts/admin/users/components/actions/unban.vue new file mode 100644 index 0000000000..8083e26177 --- /dev/null +++ b/app/assets/javascripts/admin/users/components/actions/unban.vue @@ -0,0 +1,53 @@ + + + diff --git a/app/assets/javascripts/admin/users/components/actions/unblock.vue b/app/assets/javascripts/admin/users/components/actions/unblock.vue index d4c0f900c9..7de6653e0c 100644 --- a/app/assets/javascripts/admin/users/components/actions/unblock.vue +++ b/app/assets/javascripts/admin/users/components/actions/unblock.vue @@ -1,6 +1,7 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/unlock.vue b/app/assets/javascripts/admin/users/components/actions/unlock.vue index 294aaade7c..10d4fb06d6 100644 --- a/app/assets/javascripts/admin/users/components/actions/unlock.vue +++ b/app/assets/javascripts/admin/users/components/actions/unlock.vue @@ -1,6 +1,7 @@ diff --git a/app/assets/javascripts/pages/admin/users/components/delete_user_modal.vue b/app/assets/javascripts/admin/users/components/modals/delete_user_modal.vue similarity index 96% rename from app/assets/javascripts/pages/admin/users/components/delete_user_modal.vue rename to app/assets/javascripts/admin/users/components/modals/delete_user_modal.vue index a3b78da6ef..413163c853 100644 --- a/app/assets/javascripts/pages/admin/users/components/delete_user_modal.vue +++ b/app/assets/javascripts/admin/users/components/modals/delete_user_modal.vue @@ -58,7 +58,7 @@ export default { }, computed: { modalTitle() { - return sprintf(this.title, { username: this.username }); + return sprintf(this.title, { username: this.username }, false); }, secondaryButtonLabel() { return s__('AdminUsers|Block user'); @@ -112,7 +112,7 @@ export default {

- +

diff --git a/app/assets/javascripts/pages/admin/users/components/user_modal_manager.vue b/app/assets/javascripts/admin/users/components/modals/user_modal_manager.vue similarity index 100% rename from app/assets/javascripts/pages/admin/users/components/user_modal_manager.vue rename to app/assets/javascripts/admin/users/components/modals/user_modal_manager.vue diff --git a/app/assets/javascripts/admin/users/components/user_actions.vue b/app/assets/javascripts/admin/users/components/user_actions.vue index b782526e6b..c076e0bedf 100644 --- a/app/assets/javascripts/admin/users/components/user_actions.vue +++ b/app/assets/javascripts/admin/users/components/user_actions.vue @@ -5,6 +5,7 @@ import { GlDropdownItem, GlDropdownSectionHeader, GlDropdownDivider, + GlTooltipDirective, } from '@gitlab/ui'; import { convertArrayToCamelCase } from '~/lib/utils/common_utils'; import { capitalizeFirstCharacter } from '~/lib/utils/text_utility'; @@ -21,6 +22,9 @@ export default { GlDropdownDivider, ...Actions, }, + directives: { + GlTooltip: GlTooltipDirective, + }, props: { user: { type: Object, @@ -30,6 +34,11 @@ export default { type: Object, required: true, }, + showButtonLabels: { + type: Boolean, + required: false, + default: false, + }, }, computed: { userActions() { @@ -56,6 +65,13 @@ export default { userPaths() { return generateUserPaths(this.paths, this.user.username); }, + editButtonAttrs() { + return { + 'data-testid': 'edit', + icon: 'pencil-square', + href: this.userPaths.edit, + }; + }, }, methods: { isLdapAction(action) { @@ -70,51 +86,68 @@ export default { diff --git a/app/assets/javascripts/admin/users/constants.js b/app/assets/javascripts/admin/users/constants.js index c55edefe60..4636c8705a 100644 --- a/app/assets/javascripts/admin/users/constants.js +++ b/app/assets/javascripts/admin/users/constants.js @@ -6,7 +6,7 @@ export const LENGTH_OF_USER_NOTE_TOOLTIP = 100; export const I18N_USER_ACTIONS = { edit: __('Edit'), - settings: __('Settings'), + userAdministration: s__('AdminUsers|User administration'), unlock: __('Unlock'), block: s__('AdminUsers|Block'), unblock: s__('AdminUsers|Unblock'), @@ -17,4 +17,12 @@ export const I18N_USER_ACTIONS = { ldapBlocked: s__('AdminUsers|Cannot unblock LDAP blocked users'), delete: s__('AdminUsers|Delete user'), deleteWithContributions: s__('AdminUsers|Delete user and contributions'), + ban: s__('AdminUsers|Ban user'), + unban: s__('AdminUsers|Unban user'), }; + +export const CONFIRM_DELETE_BUTTON_SELECTOR = '.js-delete-user-modal-button'; + +export const MODAL_TEXTS_CONTAINER_SELECTOR = '#js-modal-texts'; + +export const MODAL_MANAGER_SELECTOR = '#js-delete-user-modal'; diff --git a/app/assets/javascripts/admin/users/index.js b/app/assets/javascripts/admin/users/index.js index 54c8edc080..852b253d25 100644 --- a/app/assets/javascripts/admin/users/index.js +++ b/app/assets/javascripts/admin/users/index.js @@ -2,7 +2,15 @@ import Vue from 'vue'; import VueApollo from 'vue-apollo'; import createDefaultClient from '~/lib/graphql'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; +import csrf from '~/lib/utils/csrf'; import AdminUsersApp from './components/app.vue'; +import ModalManager from './components/modals/user_modal_manager.vue'; +import UserActions from './components/user_actions.vue'; +import { + CONFIRM_DELETE_BUTTON_SELECTOR, + MODAL_TEXTS_CONTAINER_SELECTOR, + MODAL_MANAGER_SELECTOR, +} from './constants'; Vue.use(VueApollo); @@ -10,22 +18,71 @@ const apolloProvider = new VueApollo({ defaultClient: createDefaultClient({}, { assumeImmutableResults: true }), }); -export const initAdminUsersApp = (el = document.querySelector('#js-admin-users-app')) => { +const initApp = (el, component, userPropKey, props = {}) => { if (!el) { return false; } - const { users, paths } = el.dataset; + const { [userPropKey]: user, paths } = el.dataset; return new Vue({ el, apolloProvider, render: (createElement) => - createElement(AdminUsersApp, { + createElement(component, { props: { - users: convertObjectPropsToCamelCase(JSON.parse(users), { deep: true }), + [userPropKey]: convertObjectPropsToCamelCase(JSON.parse(user), { deep: true }), paths: convertObjectPropsToCamelCase(JSON.parse(paths)), + ...props, }, }), }); }; + +export const initAdminUsersApp = (el = document.querySelector('#js-admin-users-app')) => + initApp(el, AdminUsersApp, 'users'); + +export const initAdminUserActions = (el = document.querySelector('#js-admin-user-actions')) => + initApp(el, UserActions, 'user', { showButtonLabels: true }); + +export const initDeleteUserModals = () => { + const modalsMountElement = document.querySelector(MODAL_TEXTS_CONTAINER_SELECTOR); + + if (!modalsMountElement) { + return; + } + + const modalConfiguration = Array.from(modalsMountElement.children).reduce((accumulator, node) => { + const { modal, ...config } = node.dataset; + + return { + ...accumulator, + [modal]: { + title: node.dataset.title, + ...config, + content: node.innerHTML, + }, + }; + }, {}); + + // eslint-disable-next-line no-new + new Vue({ + el: MODAL_MANAGER_SELECTOR, + functional: true, + methods: { + show(...args) { + this.$refs.manager.show(...args); + }, + }, + render(h) { + return h(ModalManager, { + ref: 'manager', + props: { + selector: CONFIRM_DELETE_BUTTON_SELECTOR, + modalConfiguration, + csrfToken: csrf.token, + }, + }); + }, + }); +}; diff --git a/app/assets/javascripts/analytics/devops_report/components/usage_ping_disabled.vue b/app/assets/javascripts/analytics/devops_report/components/service_ping_disabled.vue similarity index 50% rename from app/assets/javascripts/analytics/devops_report/components/usage_ping_disabled.vue rename to app/assets/javascripts/analytics/devops_report/components/service_ping_disabled.vue index c0ad814172..7c14cf3767 100644 --- a/app/assets/javascripts/analytics/devops_report/components/usage_ping_disabled.vue +++ b/app/assets/javascripts/analytics/devops_report/components/service_ping_disabled.vue @@ -25,28 +25,33 @@ export default { };