From 09bec643e8bdbf8b39c7517854ffdca9a490c6f1 Mon Sep 17 00:00:00 2001 From: Pirate Praveen Date: Wed, 26 Jan 2022 12:08:38 +0530 Subject: [PATCH 1/6] New upstream version 14.6.3+ds1 --- .eslintrc.yml | 23 +- .gitignore | 1 - .gitlab-ci.yml | 6 +- .gitlab/CODEOWNERS | 34 +- .gitlab/ci/docs.gitlab-ci.yml | 2 +- .gitlab/ci/frontend.gitlab-ci.yml | 4 +- .gitlab/ci/global.gitlab-ci.yml | 14 +- .gitlab/ci/qa-report.gitlab-ci.yml | 15 - .gitlab/ci/qa.gitlab-ci.yml | 21 +- .gitlab/ci/rails.gitlab-ci.yml | 96 +- .gitlab/ci/reports.gitlab-ci.yml | 2 +- .gitlab/ci/review-apps/main.gitlab-ci.yml | 7 +- .gitlab/ci/review-apps/qa.gitlab-ci.yml | 47 +- .gitlab/ci/review.gitlab-ci.yml | 9 +- .gitlab/ci/rules.gitlab-ci.yml | 283 +- .gitlab/ci/setup.gitlab-ci.yml | 24 +- .gitlab/ci/static-analysis.gitlab-ci.yml | 24 +- .gitlab/ci/test-metadata.gitlab-ci.yml | 3 +- .gitlab/ci/workhorse.gitlab-ci.yml | 4 +- .gitlab/issue_templates/Deprecations.md | 22 +- .../Experiment Implementation.md | 4 +- .gitlab/issue_templates/Experiment Rollout.md | 2 +- .../issue_templates/Feature Flag Roll Out.md | 5 +- .../Feature Proposal - basic.md | 4 +- .../Feature Proposal - lean.md | 7 +- .../Feature proposal - detailed.md | 4 +- .../Fulfillment Group UX Issue.md | 58 + ...Geo Replicate a new Git repository type.md | 56 +- .../Geo Replicate a new blob type.md | 110 +- .../Snowplow event tracking.md | 2 +- .../Change Documentation Location.md | 2 +- .../merge_request_templates/Deprecations.md | 6 +- .../merge_request_templates/Documentation.md | 7 +- .../New End To End Test.md | 4 +- .../New Static Analysis Check.md | 18 +- .../Pipeline Configuration.md | 2 +- .../Quarantine End to End Test.md | 8 +- .../Security Release.md | 7 +- .gitpod.yml | 2 + .markdownlint.yml | 48 +- .projections.json.example | 8 + .rubocop.yml | 4 +- .rubocop_manual_todo.yml | 2618 -------- .rubocop_todo.yml | 18 +- .rubocop_todo/cop/user_admin.yml | 70 + .rubocop_todo/database/multiple_databases.yml | 60 + .../gitlab/delegate_predicate_methods.yml | 10 + .../gitlab/feature_available_usage.yml | 189 + .rubocop_todo/gitlab/namespaced_class.yml | 1198 ++++ .rubocop_todo/graphql/argument_name.yml | 4 + .rubocop_todo/graphql/field_definitions.yml | 16 + .rubocop_todo/graphql/field_hash_key.yml | 7 + .rubocop_todo/graphql/field_method.yml | 12 + .rubocop_todo/graphql/ordered_arguments.yml | 20 + .rubocop_todo/graphql/ordered_fields.yml | 89 + .../graphql/resolver_method_length.yml | 7 + .../active_record_subtransaction_methods.yml | 62 + .rubocop_todo/performance/rubyzip.yml | 5 + .rubocop_todo/rails/include_url_helper.yml | 38 + .rubocop_todo/rails/save_bang.yml | 98 + .rubocop_todo/rails/time_zone.yml | 154 + .rubocop_todo/rspec/any_instance_of.yml | 508 ++ .rubocop_todo/rspec/timecop_freeze.yml | 29 + .rubocop_todo/rspec/timecop_travel.yml | 21 + .rubocop_todo/style/open_struct_use.yml | 45 + .ruby-version | 2 +- CHANGELOG.md | 441 +- Dangerfile | 22 +- GITALY_SERVER_VERSION | 2 +- GITLAB_ELASTICSEARCH_INDEXER_VERSION | 2 +- GITLAB_PAGES_VERSION | 2 +- Gemfile | 27 +- Gemfile.lock | 82 +- VERSION | 2 +- app/assets/images/logos/jira-gray.svg | 1 - app/assets/images/logos/shimo.svg | 1 + .../access_tokens/components/token.vue | 55 + .../access_tokens/components/tokens_app.vue | 111 + .../javascripts/access_tokens/constants.js | 4 + app/assets/javascripts/access_tokens/index.js | 30 + .../admin/deploy_keys/components/table.vue | 213 +- .../users/components/actions/activate.vue | 21 +- .../users/components/actions/approve.vue | 20 +- .../admin/users/components/actions/ban.vue | 19 +- .../admin/users/components/actions/block.vue | 19 +- .../users/components/actions/deactivate.vue | 19 +- .../admin/users/components/actions/reject.vue | 19 +- .../admin/users/components/actions/unban.vue | 19 +- .../users/components/actions/unblock.vue | 20 +- .../admin/users/components/actions/unlock.vue | 19 +- .../components/modals/delete_user_modal.vue | 13 +- .../admin/users/components/user_actions.vue | 2 +- .../queries/get_count_by_status.query.graphql | 1 + .../create_http_integration.mutation.graphql | 2 + .../destroy_http_integration.mutation.graphql | 2 + .../reset_http_token.mutation.graphql | 2 + .../update_http_integration.mutation.graphql | 2 + .../get_http_integration.query.graphql | 1 + .../queries/get_integrations.query.graphql | 1 + .../parse_sample_payload.query.graphql | 1 + .../components/devops_score.vue | 8 +- .../shared/graphql/projects.query.graphql | 1 + app/assets/javascripts/api.js | 7 + app/assets/javascripts/api/packages_api.js | 32 + ...est_artifact_project_setting.query.graphql | 1 + .../batch_comments/components/draft_note.vue | 2 +- app/assets/javascripts/behaviors/copy_code.js | 66 + app/assets/javascripts/behaviors/gl_emoji.js | 2 +- app/assets/javascripts/behaviors/index.js | 1 - .../behaviors/shortcuts/shortcuts_issuable.js | 9 + .../blob/components/blob_content.vue | 2 +- .../javascripts/blob/pdf/pdf_viewer.vue | 8 +- .../blob/pipeline_tour_success_modal.vue | 2 +- app/assets/javascripts/blob_edit/edit_blob.js | 43 +- app/assets/javascripts/boards/boards_util.js | 12 +- .../boards/components/board_card_inner.vue | 2 +- .../components/board_content_sidebar.vue | 4 - .../components/board_filtered_search.vue | 103 +- .../boards/components/board_list.vue | 16 +- .../boards/components/board_list_header.vue | 39 +- .../boards/components/boards_selector.vue | 3 + .../issue_board_filtered_search.vue | 85 +- .../sidebar/board_sidebar_labels_select.vue | 173 - .../sidebar/board_sidebar_subscription.vue | 75 - app/assets/javascripts/boards/constants.js | 14 + .../boards/graphql/board_labels.query.graphql | 2 + .../board_list_create.mutation.graphql | 2 + .../board_list_shared.fragment.graphql | 1 - .../board_list_update.mutation.graphql | 2 + .../boards/graphql/board_lists.query.graphql | 8 + .../board_lists_deferred.query.graphql | 6 + .../boards/graphql/group_board.query.graphql | 1 + .../graphql/group_board_members.query.graphql | 1 + .../group_board_milestones.query.graphql | 1 + .../boards/graphql/group_boards.query.graphql | 1 + .../graphql/group_projects.query.graphql | 1 + .../graphql/issue_set_labels.mutation.graphql | 11 +- .../issue_set_subscription.mutation.graphql | 1 + .../graphql/issue_set_title.mutation.graphql | 1 + .../boards/graphql/lists_issues.query.graphql | 6 +- .../graphql/project_board.query.graphql | 1 + .../project_board_members.query.graphql | 1 + .../project_board_milestones.query.graphql | 1 + .../graphql/project_boards.query.graphql | 1 + .../graphql/project_milestones.query.graphql | 1 + app/assets/javascripts/boards/index.js | 3 +- .../mount_filtered_search_issue_boards.js | 3 +- .../javascripts/boards/stores/actions.js | 133 +- .../ci_lint/components/ci_lint.vue | 2 +- .../components/triggers_list.vue | 2 +- .../components/ci_variable_modal.vue | 42 +- .../components/ci_variable_table.vue | 48 +- .../javascripts/ci_variable_list/constants.js | 3 + .../components/activity_events_list.vue | 176 + .../components/activity_history_item.vue | 79 + .../clusters/agents/components/show.vue | 16 +- .../agents/components/token_table.vue | 13 +- .../javascripts/clusters/agents/constants.js | 37 + .../cluster_agent_token.fragment.graphql | 2 +- .../get_agent_activity_events.query.graphql | 25 + .../queries/get_cluster_agent.query.graphql | 2 + .../javascripts/clusters/agents/index.js | 3 +- .../components/agent_empty_state.vue | 67 +- .../clusters_list/components/agents.vue | 9 +- .../components/available_agents_dropdown.vue | 30 +- .../components/clusters_empty_state.vue | 89 +- .../components/clusters_main_view.vue | 19 +- .../components/clusters_view_all.vue | 33 +- .../components/install_agent_modal.vue | 327 +- .../javascripts/clusters_list/constants.js | 145 +- .../clusters_list/graphql/cache_update.js | 78 +- .../fragments/cluster_agent.fragment.graphql | 1 + .../agent_configurations.query.graphql | 2 + .../graphql/queries/get_agents.query.graphql | 2 + .../code_navigation/components/doc_line.vue | 1 + .../content_editor/extensions/attachment.js | 8 +- .../content_editor/extensions/audio.js | 8 +- .../extensions/code_block_highlight.js | 4 +- .../content_editor/extensions/division.js | 14 + .../extensions/footnote_definition.js | 21 + .../extensions/footnote_reference.js | 37 + .../extensions/footnotes_section.js | 19 + .../content_editor/extensions/html_marks.js | 9 +- .../content_editor/extensions/image.js | 8 +- .../content_editor/extensions/inline_diff.js | 6 +- .../content_editor/extensions/link.js | 9 +- .../content_editor/extensions/task_item.js | 8 +- .../content_editor/extensions/video.js | 10 +- .../content_editor/extensions/word_break.js | 10 +- .../services/create_content_editor.js | 6 + .../services/markdown_serializer.js | 23 +- .../crm/components/contact_form.vue | 224 + .../crm/components/contacts_root.vue | 129 +- .../crm/components/new_organization_form.vue | 164 + .../crm/components/organizations_root.vue | 91 +- .../queries/create_contact.mutation.graphql | 10 + .../create_organization.mutation.graphql | 10 + .../crm_contact_fields.fragment.graphql | 14 + .../crm_organization_fields.fragment.graphql | 7 + .../queries/get_group_contacts.query.graphql | 15 +- .../get_group_organizations.query.graphql | 8 +- .../queries/update_contact.mutation.graphql | 10 + app/assets/javascripts/crm/constants.js | 3 + app/assets/javascripts/crm/contacts_bundle.js | 16 +- .../javascripts/crm/organizations_bundle.js | 16 +- app/assets/javascripts/crm/routes.js | 16 + app/assets/javascripts/delete_label_modal.js | 16 - .../design_notes/design_discussion.vue | 12 +- .../components/design_overlay.vue | 8 +- ...iscussion_resolved_status.fragment.graphql | 2 + .../mutations/upload_design.mutation.graphql | 2 + .../graphql/queries/get_design.query.graphql | 2 + .../javascripts/diffs/components/app.vue | 4 - .../diffs/components/diff_file.vue | 2 +- .../javascripts/diffs/components/diff_row.vue | 10 +- .../diffs/components/diff_view.vue | 3 +- .../diffs/store/modules/diff_state.js | 1 + .../javascripts/diffs/store/mutations.js | 2 +- .../javascripts/diffs/utils/discussions.js | 76 - app/assets/javascripts/dropzone_input.js | 8 +- app/assets/javascripts/editor/constants.js | 4 + .../example_source_editor_extension.js | 14 +- .../extensions/source_editor_ci_schema_ext.js | 47 +- .../source_editor_extension_base.js | 115 +- .../source_editor_file_template_ext.js | 16 +- .../extensions/source_editor_markdown_ext.js | 326 +- .../source_editor_markdown_livepreview_ext.js | 167 + .../extensions/source_editor_webide_ext.js | 294 +- .../extensions/source_editor_yaml_ext.js | 279 +- .../javascripts/editor/source_editor.js | 179 +- .../editor/source_editor_extension.js | 2 +- .../editor/source_editor_instance.js | 84 +- app/assets/javascripts/emoji/constants.js | 3 + app/assets/javascripts/emoji/index.js | 44 +- .../components/confirm_rollback_modal.vue | 41 +- .../components/delete_environment_modal.vue | 31 +- .../components/enable_review_app_modal.vue | 12 + .../components/environment_delete.vue | 23 +- .../components/environment_item.vue | 2 +- .../components/environment_rollback.vue | 34 +- .../components/new_environment_folder.vue | 27 +- .../components/new_environments_app.vue | 180 +- .../environments/graphql/client.js | 16 +- ...set_environment_to_delete.mutation.graphql | 3 + ...t_environment_to_rollback.mutation.graphql | 3 + .../queries/environmentApp.query.graphql | 8 - .../queries/environment_app.query.graphql | 9 + .../environment_to_delete.query.graphql | 7 + .../environment_to_rollback.query.graphql | 7 + .../graphql/queries/page_info.query.graphql | 8 + .../queries/poll_interval.query.graphql | 3 + .../environments/graphql/resolvers.js | 123 +- .../environments/graphql/typedefs.graphql | 46 + .../components/error_details.vue | 2 +- .../queries/details.query.graphql | 1 + .../javascripts/experimentation/utils.js | 27 +- .../feature_flags/components/form.vue | 7 + .../available_dropdown_mappings.js | 2 +- .../javascripts/filtered_search/constants.js | 7 + app/assets/javascripts/flash.js | 8 +- .../google_cloud/components/app.vue | 55 +- .../components/errors/gcp_error.vue | 29 + .../components/errors/no_gcp_projects.vue | 26 + .../google_cloud/components/home.vue | 41 + .../components/service_accounts_form.vue | 70 + ...accounts.vue => service_accounts_list.vue} | 0 app/assets/javascripts/google_cloud/index.js | 13 +- .../javascripts/graphql_shared/constants.js | 6 +- .../fragments/alert.fragment.graphql | 1 + .../alert_detail_item.fragment.graphql | 1 + .../issuable_timelogs.fragment.graphql | 2 + .../user_availability.fragment.graphql | 1 + .../create_merge_request.mutation.graphql | 1 + .../queries/alert_details.query.graphql | 1 + .../queries/get_alerts.query.graphql | 1 + .../queries/group_users_search.query.graphql | 1 + .../project_user_members_search.query.graphql | 1 + .../queries/users_search.query.graphql | 2 + .../header_search/components/app.vue | 138 +- .../header_search_autocomplete_items.vue | 31 +- .../header_search_default_items.vue | 24 +- .../components/header_search_scoped_items.vue | 38 +- .../javascripts/header_search/constants.js | 26 +- .../header_search/store/actions.js | 4 + .../header_search/store/getters.js | 107 +- .../header_search/store/mutation_types.js | 1 + .../header_search/store/mutations.js | 7 +- .../ide/components/activity_bar.vue | 2 +- .../ide/components/ide_tree_list.vue | 14 +- .../ide/components/new_dropdown/index.vue | 2 +- .../ide/components/pipelines/empty_state.vue | 35 + .../ide/components/pipelines/list.vue | 28 +- .../ide/components/repo_editor.vue | 39 +- app/assets/javascripts/ide/constants.js | 6 +- app/assets/javascripts/ide/ide_router.js | 69 +- app/assets/javascripts/ide/index.js | 11 +- .../javascripts/ide/lib/themes/monokai.js | 2 +- app/assets/javascripts/ide/lib/themes/none.js | 1 + .../ide/lib/themes/solarized_dark.js | 2 +- .../ide/lib/themes/solarized_light.js | 2 +- .../javascripts/ide/lib/themes/white.js | 1 + .../ide/queries/ide_project.fragment.graphql | 1 + app/assets/javascripts/ide/services/index.js | 34 +- .../javascripts/ide/stores/actions/project.js | 57 +- .../javascripts/ide/stores/mutation_types.js | 1 + .../ide/stores/mutations/project.js | 12 + .../components/import_actions_cell.vue | 2 +- .../import_groups/components/import_table.vue | 135 +- .../components/import_target_cell.vue | 128 +- .../import_groups/constants.js | 4 + .../import_groups/graphql/client_factory.js | 31 +- ...ort_source_group_progress.fragment.graphql | 1 + .../mutations/import_groups.mutation.graphql | 1 + .../bulk_import_source_groups.query.graphql | 9 + .../graphql/services/local_storage_cache.js | 9 +- .../import_groups/graphql/typedefs.graphql | 16 + .../incident_fields.fragment.graphql | 1 + .../queries/get_count_by_status.query.graphql | 1 + .../queries/get_incidents.query.graphql | 4 + app/assets/javascripts/init_confirm_danger.js | 2 + .../javascripts/init_issuable_sidebar.js | 16 - app/assets/javascripts/init_labels.js | 19 - .../javascripts/integrations/constants.js | 4 - .../javascripts/integrations/edit/api.js | 9 + .../edit/components/active_checkbox.vue | 11 +- .../edit/components/confirmation_modal.vue | 9 +- .../edit/components/integration_form.vue | 129 +- .../edit/components/jira_issues_fields.vue | 17 +- .../components/reset_confirmation_modal.vue | 8 +- .../javascripts/integrations/edit/index.js | 22 +- .../integrations/edit/store/actions.js | 29 +- .../integrations/edit/store/getters.js | 2 - .../integrations/edit/store/mutation_types.js | 2 - .../integrations/edit/store/mutations.js | 6 - .../integrations/edit/store/state.js | 1 - .../integrations/integration_settings_form.js | 151 - .../components/integration_overrides.vue | 40 +- .../components/invite_members_modal.vue | 69 +- .../components/invite_members_trigger.vue | 15 - .../javascripts/invite_members/constants.js | 12 +- .../init_invite_members_modal.js | 2 - .../components/status_select.vue | 0 .../bulk_update_sidebar}/constants.js | 0 .../init_issue_status_select.js | 0 .../issuable_bulk_update_actions.js | 2 +- .../issuable_bulk_update_sidebar.js | 12 +- .../issuable_init_bulk_update_sidebar.js | 0 .../subscription_select.js | 0 .../issuable/components/issuable_by_email.vue | 3 +- .../components}/issuable_header_warnings.vue | 0 .../components}/issue_assignees.vue | 0 .../components}/issue_milestone.vue | 0 .../components}/related_issuable_item.vue | 4 +- app/assets/javascripts/issuable/constants.js | 5 + app/assets/javascripts/issuable/index.js | 116 + .../init_csv_import_export_buttons.js | 48 - .../issuable/init_issuable_by_email.js | 35 - .../{ => issuable}/issuable_context.js | 4 +- .../{ => issuable}/issuable_form.js | 16 +- .../issuable_template_selector.js | 6 +- .../issuable_template_selectors.js | 5 +- .../mixins/related_issuable_mixin.js | 0 app/assets/javascripts/issuable_index.js | 7 - .../issuable_type_selector/index.js | 16 - app/assets/javascripts/issues/constants.js | 25 + .../filtered_search_service_desk.js} | 0 .../{pages/projects => }/issues/form.js | 15 +- .../init_filtered_search_service_desk.js | 11 + app/assets/javascripts/{ => issues}/issue.js | 12 +- .../{ => issues}/manual_ordering.js | 0 .../new/components/title_suggestions.vue} | 8 +- .../components/title_suggestions_item.vue} | 0 .../new/components/type_popover.vue} | 4 +- .../new}/index.js | 32 +- .../new}/queries/issues.query.graphql | 3 + .../components/related_merge_requests.vue | 4 +- .../related_merge_requests/index.js | 0 .../related_merge_requests/store/actions.js | 0 .../related_merge_requests/store/index.js | 0 .../store/mutation_types.js | 0 .../related_merge_requests/store/mutations.js | 0 .../related_merge_requests/store/state.js | 0 .../components/sentry_error_stack_trace.vue | 0 .../sentry_error_stack_trace/index.js | 0 .../{pages/projects => }/issues/show.js | 19 +- .../show}/components/app.vue | 33 +- .../show/components/delete_issue_modal.vue | 71 + .../show}/components/description.vue | 4 +- .../show}/components/edit_actions.vue | 53 +- .../show}/components/edited.vue | 2 +- .../show}/components/fields/description.vue | 0 .../fields/description_template.vue | 2 +- .../show}/components/fields/title.vue | 0 .../show}/components/fields/type.vue | 0 .../show}/components/form.vue | 7 +- .../show}/components/header_actions.vue | 96 +- .../graphql/queries/get_alert.graphql | 1 + .../components/incidents/highlight_bar.vue | 2 +- .../components/incidents/incident_tabs.vue | 2 +- .../show}/components/locked_warning.vue | 0 .../show}/components/pinned_links.vue | 0 .../show}/components/title.vue | 0 .../{issue_show => issues/show}/constants.js | 24 - .../show}/event_hub.js | 0 .../{issue_show => issues/show}/graphql.js | 0 .../{issue_show => issues/show}/incident.js | 2 + .../{issue_show => issues/show}/issue.js | 3 + .../show}/mixins/animate.js | 0 .../show}/mixins/update.js | 0 .../queries/get_issue_state.query.graphql | 0 .../queries/promote_to_epic.mutation.graphql | 1 + .../queries/update_issue.mutation.graphql | 0 .../update_issue_state.mutation.graphql | 0 .../show}/services/index.js | 2 +- .../show}/stores/index.js | 0 .../show}/utils/parse_data.js | 0 .../show}/utils/update_description.js | 0 .../issues_list/components/issuable.vue | 2 +- .../components/issuables_list_app.vue | 12 +- .../components/issue_card_time_info.vue | 18 +- .../components/issues_list_app.vue | 171 +- .../javascripts/issues_list/constants.js | 59 +- app/assets/javascripts/issues_list/index.js | 6 +- .../queries/get_issues.query.graphql | 2 + .../queries/get_issues_counts.query.graphql | 2 + .../get_issues_list_details.query.graphql | 3 + .../queries/issue.fragment.graphql | 1 + .../queries/iteration.fragment.graphql | 10 - .../queries/search_iterations.query.graphql | 18 - .../queries/search_labels.query.graphql | 2 + .../queries/search_milestones.query.graphql | 2 + .../queries/search_projects.query.graphql | 1 + .../queries/search_users.query.graphql | 4 + app/assets/javascripts/issues_list/utils.js | 3 +- .../graphql/queries/get_project.query.graphql | 1 + .../jira_connect/branches/index.js | 2 +- .../subscriptions/components/app.vue | 4 + .../subscriptions/components/user_link.vue | 67 + .../jira_connect/subscriptions/index.js | 21 +- .../get_jira_import_details.query.graphql | 1 + .../queries/jira_import.fragment.graphql | 1 + .../search_project_members.query.graphql | 2 + app/assets/javascripts/jobs/bridge/app.vue | 20 + .../jobs/bridge/components/constants.js | 1 + .../jobs/bridge/components/empty_state.vue | 45 + .../jobs/bridge/components/sidebar.vue | 98 + .../jobs/components/job_log_controllers.vue | 2 +- .../javascripts/jobs/components/sidebar.vue | 2 +- .../sidebar_job_details_container.vue | 5 +- .../components/table/cells/actions_cell.vue | 16 +- .../components/table/cells/pipeline_cell.vue | 10 +- .../jobs/components/table/constants.js | 67 + .../graphql/queries/get_jobs.query.graphql | 7 + .../jobs/components/table/jobs_table.vue | 69 +- app/assets/javascripts/jobs/index.js | 39 +- .../components/delete_label_modal.vue | 0 .../labels/components/promote_label_modal.vue | 0 .../create_label_dropdown.js} | 4 +- .../{issue_show => labels}/event_hub.js | 0 .../{ => labels}/group_label_subscription.js | 4 +- app/assets/javascripts/labels/index.js | 137 + .../javascripts/{ => labels}/label_manager.js | 6 +- app/assets/javascripts/{ => labels}/labels.js | 0 .../javascripts/{ => labels}/labels_select.js | 12 +- .../project_label_subscription.js | 6 +- app/assets/javascripts/lib/dompurify.js | 2 +- .../javascripts/lib/utils/common_utils.js | 11 + app/assets/javascripts/lib/utils/constants.js | 1 + app/assets/javascripts/lib/utils/dom_utils.js | 14 + .../lib/utils/intersection_observer.js | 28 + .../lib/utils/navigation_utility.js | 39 + .../javascripts/lib/utils/url_utility.js | 2 +- app/assets/javascripts/main.js | 38 +- .../access_request_action_buttons.vue | 1 + .../action_buttons/invite_action_buttons.vue | 2 + .../action_buttons/remove_member_button.vue | 16 +- .../action_buttons/user_action_buttons.vue | 18 +- .../table/member_action_buttons.vue | 5 + .../components/table/members_table.vue | 5 + .../merge_conflicts/merge_conflicts_bundle.js | 2 +- app/assets/javascripts/milestone.js | 49 - .../components/delete_milestone_modal.vue | 0 .../components/promote_milestone_modal.vue | 0 .../shared => milestones}/event_hub.js | 0 .../index.js} | 52 +- .../javascripts/milestones/milestone.js | 49 + .../{ => milestones}/milestone_select.js | 6 +- .../{milestone_utils.js => utils.js} | 0 ...tDashboardValidationWarnings.query.graphql | 1 + .../mr_popover/components/mr_popover.vue | 11 +- .../queries/merge_request.query.graphql | 5 + .../javascripts/network/branch_graph.js | 10 +- .../notes/components/comment_form.vue | 26 +- .../notes/components/diff_with_note.vue | 14 +- .../notes/components/discussion_filter.vue | 3 +- .../components/discussion_locked_widget.vue | 12 +- .../notes/components/discussion_notes.vue | 90 +- .../notes/components/note_body.vue | 2 +- .../notes/components/noteable_discussion.vue | 18 +- .../notes/components/noteable_note.vue | 15 +- .../notes/components/notes_app.vue | 8 +- .../notes/components/sidebar_subscription.vue | 2 +- app/assets/javascripts/notes/i18n.js | 16 +- .../javascripts/notes/stores/actions.js | 3 +- .../notes/stores/mutation_types.js | 1 + .../javascripts/notes/stores/mutations.js | 4 + .../packages/list/packages_list_app_bundle.js | 23 - .../javascripts/packages/shared/constants.js | 49 - .../javascripts/packages/shared/utils.js | 43 - .../components/details_page/delete_modal.vue | 1 + .../details_page/details_header.vue | 1 - .../components/details_page/tags_list.vue | 86 +- ...ntainer_repositories_details.query.graphql | 2 + ...container_repository_details.query.graphql | 1 + ...et_container_repository_tags.query.graphql | 1 + .../explorer/pages/details.vue | 6 +- .../explorer/pages/list.vue | 1 + .../dependency_proxy/app.vue | 17 +- ...get_dependency_proxy_details.query.graphql | 2 + .../details/components/app.vue | 23 +- .../details/store/actions.js | 2 +- .../components/infrastructure_search.vue | 4 +- .../components/infrastructure_title.vue | 0 .../list/components/packages_list.vue | 20 +- .../list/components/packages_list_app.vue | 15 +- .../list/constants.js | 50 +- .../list/stores/actions.js | 2 +- .../list/stores/getters.js | 2 +- .../list/stores/index.js | 0 .../list/stores/mutation_types.js | 0 .../list/stores/mutations.js | 0 .../list/stores/state.js | 0 .../infrastructure_registry}/list/utils.js | 0 .../list_app_bundle.js | 7 +- .../shared/constants.js | 1 + .../infrastructure_icon_and_name.vue | 0 .../shared}/package_list_row.vue | 33 +- .../components/details/app.vue | 4 +- .../components/details/package_title.vue | 2 +- .../components/details/version_row.vue | 4 +- .../components/list/package_list_row.vue | 17 +- .../components/list/packages_list.vue | 3 +- .../package_registry/constants.js | 24 +- .../fragments/package_data.fragment.graphql | 6 +- .../queries/get_package_details.query.graphql | 7 + .../queries/get_packages.query.graphql | 2 + .../package_registry/index.js | 30 + .../package_registry/pages/index.vue | 5 + .../package_registry/pages/list.js | 24 - .../list/app.vue => pages/list.vue} | 28 +- .../package_registry/router.js | 21 + .../settings/group/bundle.js | 3 +- .../components/dependency_proxy_settings.vue | 123 +- .../group/components/group_settings_app.vue | 4 + .../group/components/settings_titles.vue | 7 +- ...xy_image_ttl_group_policy.mutation.graphql | 11 + .../get_group_packages_settings.query.graphql | 5 + .../group/graphql/utils/cache_update.js | 5 + .../graphql/utils/optimistic_responses.js | 12 + .../get_expiration_policy.query.graphql | 1 + .../components/package_icon_and_name.vue | 0 .../shared/components/package_path.vue | 0 .../shared/components/package_tags.vue | 0 .../components/packages_list_loader.vue | 0 .../shared/components/publish_method.vue | 0 .../shared/components/registry_list.vue | 124 + .../shared/constants.js | 36 + .../packages_and_registries/shared/utils.js | 10 + .../pages/admin/integrations/edit/index.js | 18 +- .../pages/admin/labels/edit/index.js | 2 +- .../pages/admin/labels/index/index.js | 24 +- .../pages/admin/labels/new/index.js | 2 +- .../pages/admin/services/edit/index.js | 4 - .../pages/admin/services/index/index.js | 4 - app/assets/javascripts/pages/constants.js | 6 - .../pages/dashboard/issues/index.js | 4 +- .../pages/dashboard/merge_requests/index.js | 2 +- .../pages/dashboard/milestones/show/index.js | 2 +- .../components/customize_homepage_banner.vue | 102 - .../pages/dashboard/projects/index/index.js | 2 - .../index/init_customize_homepage_banner.js | 16 - .../javascripts/pages/groups/issues/index.js | 6 +- .../pages/groups/labels/edit/index.js | 2 +- .../pages/groups/labels/index/index.js | 3 +- .../pages/groups/labels/new/index.js | 2 +- .../pages/groups/merge_requests/index.js | 4 +- .../pages/groups/milestones/edit/index.js | 2 +- .../pages/groups/milestones/new/index.js | 2 +- .../pages/groups/milestones/show/index.js | 5 +- .../pages/groups/packages/index/index.js | 4 +- .../pages/groups/settings/ci_cd/show/index.js | 2 +- .../settings/integrations/edit/index.js | 10 +- app/assets/javascripts/pages/help/ui/index.js | 3 - .../components/bulk_imports_history_app.vue | 3 +- .../pages/milestones/shared/index.js | 7 - .../milestones/shared/init_milestones_show.js | 11 - .../shared/promote_milestone_modal_init.js | 19 - .../profiles/personal_access_tokens/index.js | 3 +- .../javascripts/pages/projects/constants.js | 4 - .../javascripts/pages/projects/edit/index.js | 6 +- .../pages/projects/incidents/show/index.js | 2 +- .../pages/projects/issues/edit/index.js | 2 +- .../pages/projects/issues/index/index.js | 13 +- .../pages/projects/issues/new/index.js | 2 +- .../projects/issues/service_desk/index.js | 11 +- .../pages/projects/issues/show/index.js | 2 +- .../pages/projects/labels/edit/index.js | 2 +- .../pages/projects/labels/index/index.js | 82 +- .../pages/projects/labels/new/index.js | 2 +- .../learn_gitlab/components/learn_gitlab.vue | 53 +- .../components/learn_gitlab_section_link.vue | 49 +- .../projects/learn_gitlab/index/index.js | 5 +- .../projects/merge_requests/index/index.js | 12 +- .../merge_requests/init_merge_request.js | 8 +- .../merge_requests/init_merge_request_show.js | 2 +- .../queries/get_state.query.graphql | 2 + .../projects/merge_requests/show/index.js | 4 +- .../pages/projects/milestones/edit/index.js | 2 +- .../pages/projects/milestones/index/index.js | 5 +- .../pages/projects/milestones/new/index.js | 2 +- .../pages/projects/milestones/show/index.js | 8 +- .../projects/packages/packages/index/index.js | 4 +- .../pages/projects/path_locks/index.js | 3 - .../pages/projects/services/edit/index.js | 5 +- .../pages/projects/usage_quotas/index.js | 23 - .../shared/wikis/components/wiki_form.vue | 70 +- app/assets/javascripts/pdf/index.vue | 2 +- .../components/commit/commit_form.vue | 6 +- .../components/commit/commit_section.vue | 30 +- .../drawer/pipeline_editor_drawer.vue | 10 +- .../components/editor/text_editor.vue | 2 +- .../components/file_nav/branch_switcher.vue | 41 +- .../components/header/pipeline_status.vue | 28 +- .../components/header/validation_segment.vue | 7 +- .../components/lint/ci_lint_results.vue | 8 +- .../components/pipeline_editor_tabs.vue | 5 +- .../{ => client}/lint_ci.mutation.graphql | 0 .../update_app_status.mutation.graphql | 0 .../update_current_branch.mutation.graphql | 0 ...update_last_commit_branch.mutation.graphql | 0 .../update_pipeline_etag.mutation.graphql | 0 .../mutations/commit_ci_file.mutation.graphql | 3 + ...aphql => available_branches.query.graphql} | 1 + ...ent.graphql => blob_content.query.graphql} | 2 + ...config.graphql => ci_config.query.graphql} | 0 .../graphql/queries/client/app_status.graphql | 3 - .../queries/client/app_status.query.graphql | 5 + .../queries/client/current_branch.graphql | 3 - .../client/current_branch.query.graphql | 7 + .../client/last_commit_branch.query.graphql | 6 +- .../queries/client/pipeline_etag.graphql | 3 - .../client/pipeline_etag.query.graphql | 5 + .../get_starter_template.query.graphql | 1 + .../queries/latest_commit_sha.query.graphql | 2 + ...ipeline.graphql => pipeline.query.graphql} | 3 + .../pipeline_editor/graphql/resolvers.js | 46 +- .../pipeline_editor/graphql/typedefs.graphql | 22 +- .../javascripts/pipeline_editor/index.js | 46 +- .../pipeline_editor/pipeline_editor_app.vue | 67 +- .../components/graph/graph_view_selector.vue | 39 +- .../components/graph/job_group_dropdown.vue | 2 +- .../pipelines/components/graph/job_item.vue | 8 +- .../components/graph/linked_pipeline.vue | 8 +- .../pipelines/components/jobs/jobs_app.vue | 121 + .../components/pipeline_graph/job_pill.vue | 2 +- .../pipeline_graph/pipeline_graph.vue | 2 +- .../components/pipeline_graph/stage_name.vue | 2 +- .../pipelines_list/pipeline_stage.vue | 8 +- .../queries/get_dag_vis_data.query.graphql | 5 + .../get_pipeline_header_data.query.graphql | 2 + .../queries/get_pipeline_jobs.query.graphql | 70 + .../pipelines/pipeline_details_bundle.js | 12 + .../pipelines/pipeline_details_jobs.js | 34 + .../javascripts/projects/commit/constants.js | 2 +- .../get_linked_pipelines.query.graphql | 6 + .../new/components/new_project_url_select.vue | 34 +- ...ere_user_can_create_projects.query.graphql | 1 + .../pipelines/charts/components/app.vue | 25 +- .../charts/components/statistics_list.vue | 17 +- ...get_pipeline_count_by_status.query.graphql | 1 + ..._project_pipeline_statistics.query.graphql | 1 + .../projects/pipelines/charts/index.js | 5 +- .../components/transfer_project_form.vue | 63 + .../settings/init_transfer_project_form.js | 53 + .../components/service_desk_setting.vue | 201 +- .../storage_counter/components/app.vue | 106 - .../components/storage_table.vue | 88 - .../components/storage_type_icon.vue | 35 - .../projects/storage_counter/constants.js | 61 - .../projects/storage_counter/index.js | 51 - .../queries/project_storage.query.graphql | 16 - .../projects/storage_counter/utils.js | 36 - .../related_issues/components/issue_token.vue | 2 +- .../components/related_issues_list.vue | 2 +- .../fragments/release.fragment.graphql | 3 + .../release_for_editing.fragment.graphql | 1 + .../queries/all_releases.query.graphql | 1 + .../graphql/queries/one_release.query.graphql | 1 + .../one_release_for_editing.query.graphql | 1 + .../javascripts/repository/commits_service.js | 11 +- .../components/blob_button_group.vue | 9 + .../components/blob_content_viewer.vue | 15 +- .../components/blob_viewers/index.js | 16 +- .../components/blob_viewers/pdf_viewer.vue | 50 + .../components/blob_viewers/text_viewer.vue | 25 - .../components/delete_blob_modal.vue | 14 +- .../repository/components/last_commit.vue | 2 +- .../repository/components/table/row.vue | 16 +- .../repository/components/tree_content.vue | 21 +- .../components/upload_blob_modal.vue | 4 +- .../javascripts/repository/constants.js | 7 +- app/assets/javascripts/repository/index.js | 2 +- .../mutations/lock_path.mutation.graphql | 1 + .../javascripts/repository/pages/tree.vue | 2 +- .../queries/blob_info.query.graphql | 7 + app/assets/javascripts/right_sidebar.js | 9 - .../admin_runners/admin_runners_app.vue | 18 +- .../components/cells/runner_actions_cell.vue | 83 +- .../components/cells/runner_status_cell.vue | 12 +- .../components/cells/runner_summary_cell.vue | 2 +- .../runner/components/runner_delete_modal.vue | 51 + .../components/runner_filtered_search_bar.vue | 32 +- .../runner/components/runner_list.vue | 36 +- ...tate_badge.vue => runner_status_badge.vue} | 35 +- .../search_tokens/status_token_config.js | 2 + .../components/search_tokens/tag_token.vue | 1 - .../components/stat/runner_online_stat.vue | 17 + app/assets/javascripts/runner/constants.js | 17 +- .../graphql/get_group_runners.query.graphql | 1 + .../runner/graphql/get_runner.query.graphql | 2 + .../graphql/runner_node.fragment.graphql | 3 +- .../graphql/runner_update.mutation.graphql | 2 + .../group_runners/group_runners_app.vue | 10 +- .../security_configuration/components/app.vue | 17 + .../components/constants.js | 71 +- .../components/training_provider_list.vue | 61 + .../security_training_providers.query.graphql | 9 + .../security_configuration/index.js | 31 +- .../security_configuration/utils.js | 11 + .../set_status_modal_wrapper.vue | 11 +- .../javascripts/shared/milestones/form.js | 22 - .../assignees/assignees_realtime.vue | 2 +- .../assignees/collapsed_assignee_list.vue | 2 +- .../assignees/sidebar_assignees_widget.vue | 2 +- .../assignees/uncollapsed_assignee_list.vue | 2 +- .../components/attention_requested_toggle.vue | 2 +- .../sidebar_confidentiality_form.vue | 2 +- .../components/crm_contacts/crm_contacts.vue | 131 + .../get_issue_crm_contacts.query.graphql | 7 + .../issue_crm_contacts.fragment.graphql | 17 + .../issue_crm_contacts.subscription.graphql | 9 + .../components/date/sidebar_date_widget.vue | 13 +- .../components/date/sidebar_inherit_date.vue | 4 +- .../components/labels/sidebar_labels.vue | 192 - .../update_issue_lock.mutation.graphql | 1 + ...update_merge_request_lock.mutation.graphql | 1 + .../reviewers/collapsed_reviewer_list.vue | 2 +- .../update_issuable_severity.mutation.graphql | 1 + .../components/severity/sidebar_severity.vue | 14 +- .../components/sidebar_dropdown_widget.vue | 71 +- .../sidebar_subscriptions_widget.vue | 2 +- .../components/time_tracking/time_tracker.vue | 2 +- app/assets/javascripts/sidebar/constants.js | 35 +- app/assets/javascripts/sidebar/graphql.js | 2 +- .../sidebar/mount_milestone_sidebar.js | 2 +- .../javascripts/sidebar/mount_sidebar.js | 70 +- .../queries/epic_confidential.query.graphql | 1 + .../queries/epic_due_date.query.graphql | 1 + .../queries/epic_participants.query.graphql | 1 + .../queries/epic_reference.query.graphql | 1 + .../queries/epic_start_date.query.graphql | 1 + .../queries/epic_subscribed.query.graphql | 1 + .../sidebar/queries/epic_todo.query.graphql | 1 + .../issuable_assignees.subscription.graphql | 1 + .../queries/issue_confidential.query.graphql | 1 + .../queries/issue_due_date.query.graphql | 1 + .../queries/issue_reference.query.graphql | 1 + .../queries/issue_subscribed.query.graphql | 1 + .../queries/issue_time_tracking.query.graphql | 1 + .../sidebar/queries/issue_todo.query.graphql | 1 + .../merge_request_milestone.query.graphql | 1 + .../merge_request_reference.query.graphql | 1 + .../merge_request_subscribed.query.graphql | 1 + .../merge_request_time_tracking.query.graphql | 1 + .../queries/merge_request_todo.query.graphql | 1 + .../project_issue_milestone.query.graphql | 1 + .../queries/project_milestones.query.graphql | 1 + .../queries/sidebarDetails.query.graphql | 2 + .../queries/sidebarDetailsMR.query.graphql | 2 + .../update_epic_title.mutation.graphql | 1 + ...date_merge_request_labels.mutation.graphql | 4 +- .../javascripts/sidebar/sidebar_mediator.js | 14 + .../javascripts/snippets/components/edit.vue | 2 +- .../snippets/components/snippet_blob_view.vue | 4 +- .../snippets/components/snippet_header.vue | 2 +- .../fragments/project.fragment.graphql | 6 - .../mutations/createSnippet.mutation.graphql | 1 + .../mutations/updateSnippet.mutation.graphql | 1 + .../queries/source_content.query.graphql | 1 + app/assets/javascripts/tabs/constants.js | 20 + app/assets/javascripts/tabs/index.js | 239 + .../fragments/state_version.fragment.graphql | 6 +- .../graphql/queries/get_states.query.graphql | 3 +- .../javascripts/test_utils/simulate_drag.js | 42 +- .../get_ci_job_token_scope.query.graphql | 1 + ...ects_with_ci_job_token_scope.query.graphql | 2 + app/assets/javascripts/ui_development_kit.js | 28 - .../user_lists/components/add_user_modal.vue | 2 +- .../user_lists/components/user_list.vue | 2 +- app/assets/javascripts/vue_alerts.js | 28 +- .../components/deployment/deployment_info.vue | 2 +- .../components/extensions/base.vue | 171 +- .../components/extensions/utils.js | 62 + .../components/mr_widget_header.vue | 2 +- .../components/mr_widget_pipeline.vue | 2 +- .../components/mr_widget_related_links.vue | 8 +- .../components/states/commit_edit.vue | 1 - .../components/states/merge_checks_failed.vue | 2 +- .../components/states/mr_widget_archived.vue | 2 +- .../components/states/mr_widget_conflicts.vue | 7 +- .../components/states/mr_widget_rebase.vue | 3 - .../components/states/ready_to_merge.vue | 87 +- .../components/states/work_in_progress.vue | 9 +- .../components/terraform/terraform_plan.vue | 4 +- .../vue_merge_request_widget/constants.js | 15 + .../extensions/issues.js | 18 +- .../extensions/issues.query.graphql | 1 + .../extensions/issues_collapsed.query.graphql | 1 + .../mixins/ready_to_merge.js | 4 +- .../queries/get_state.query.graphql | 2 + .../queries/permissions.query.graphql | 2 + .../auto_merge_enabled.fragment.graphql | 1 + .../states/auto_merge_enabled.query.graphql | 1 + .../states/auto_merge_failed.query.graphql | 2 + .../queries/states/conflicts.query.graphql | 2 + .../queries/states/draft.query.graphql | 2 + .../states/missing_branch.query.graphql | 2 + .../states/new_ready_to_merge.query.graphql | 2 + .../states/ready_to_merge.fragment.graphql | 3 + .../queries/states/rebase.query.graphql | 2 + .../queries/toggle_draft.mutation.graphql | 1 + .../stores/mr_widget_store.js | 1 - .../components/sidebar/sidebar_assignees.vue | 9 +- .../components/sidebar/sidebar_status.vue | 3 +- .../alert_issue_create.mutation.graphql | 1 + .../alert_sidebar_details.query.graphql | 1 + .../components/chronic_duration_input.vue | 133 + .../components/clipboard_button.vue | 6 + .../vue_shared/components/commit.vue | 2 +- .../confirm_danger/confirm_danger.vue | 7 +- .../confirm_danger/confirm_danger_modal.vue | 4 +- .../vue_shared/components/confirm_modal.vue | 72 +- .../components/confirm_modal_eventhub.js | 5 + .../date_time_picker/date_time_picker.vue | 2 +- .../design_management}/design_note_pin.vue | 22 +- .../components/dismissible_alert.vue | 1 + .../components/dom_element_listener.vue | 28 + .../components/file_icon/file_icon_map.js | 113 +- .../vue_shared/components/file_row.vue | 1 + .../filtered_search_bar/constants.js | 15 - .../queries/epic.fragment.graphql | 15 - .../queries/search_epics.query.graphql | 16 - .../tokens/author_token.vue | 1 - .../filtered_search_bar/tokens/base_token.vue | 42 +- .../filtered_search_bar/tokens/epic_token.vue | 129 - .../tokens/iteration_token.vue | 138 - .../tokens/label_token.vue | 1 - .../tokens/milestone_token.vue | 2 +- .../tokens/weight_token.vue | 66 - .../input_copy_toggle_visibility.stories.js | 27 + .../form/input_copy_toggle_visibility.vue | 127 + .../components/header_ci_component.vue | 2 + .../issuable/init_issuable_header_warning.js | 22 - .../vue_shared/components/line_numbers.vue | 57 + .../components/markdown/suggestions.vue | 2 +- .../components/markdown/toolbar.vue | 18 - .../namespace_select/namespace_select.vue | 93 + .../components/notes/placeholder_note.vue | 10 +- .../components/notes/system_note.vue | 2 + .../pagination_bar/pagination_bar.stories.js | 40 + .../pagination_bar}/pagination_bar.vue | 29 +- .../components/registry/list_item.vue | 6 +- .../components/registry/metadata_item.vue | 2 +- .../sidebar/collapsed_grouped_date_picker.vue | 101 - .../labels_select_vue/labels_select_root.vue | 2 + .../dropdown_contents.vue | 12 +- .../labels_select_widget/dropdown_header.vue | 14 +- .../labels_select_widget/dropdown_value.vue | 45 +- .../dropdown_value_collapsed.vue | 55 - .../graphql/epic_labels.query.graphql | 1 + .../epic_update_labels.mutation.graphql | 4 +- .../graphql/issue_labels.query.graphql | 1 + .../merge_request_labels.query.graphql | 1 + .../labels_select_root.vue | 21 +- .../queries/get_alert_assignees.query.graphql | 1 + .../queries/get_issue_assignees.query.graphql | 1 + .../get_issue_participants.query.graphql | 1 + .../queries/get_mr_assignees.query.graphql | 1 + .../queries/get_mr_participants.query.graphql | 1 + .../vue_shared/components/source_editor.vue | 1 + .../vue_shared/components/source_viewer.vue | 88 + .../storage_counter/usage_graph.stories.js | 38 - .../storage_counter/usage_graph.vue | 148 - .../components/tooltip_on_truncate.vue | 69 - .../tooltip_on_truncate.stories.js | 88 + .../tooltip_on_truncate.vue | 85 + .../components/issuable_create_root.vue | 0 .../create}/components/issuable_form.vue | 0 .../components/issuable_bulk_edit_sidebar.vue | 0 .../list}/components/issuable_item.vue | 12 +- .../list}/components/issuable_list_root.vue | 12 +- .../list}/components/issuable_tabs.vue | 4 +- .../issuable/list}/constants.js | 0 .../show}/components/issuable_body.vue | 0 .../show}/components/issuable_description.vue | 0 .../show}/components/issuable_discussion.vue | 0 .../show}/components/issuable_edit_form.vue | 0 .../show}/components/issuable_header.vue | 0 .../show}/components/issuable_show_root.vue | 4 +- .../show}/components/issuable_title.vue | 0 .../issuable/show}/constants.js | 0 .../issuable/show}/event_hub.js | 0 .../components/issuable_sidebar_root.vue | 0 .../issuable/sidebar}/constants.js | 0 .../javascripts/vue_shared/mixins/issuable.js | 14 - .../components/manage_via_mr.vue | 2 +- .../fragments/job_artifacts.fragment.graphql | 2 + ...merge_request_download_paths.query.graphql | 3 + ...port_pipeline_download_paths.query.graphql | 2 +- .../work_items/components/item_title.vue | 71 + .../graphql/create_work_item.mutation.graphql | 18 + .../work_items/graphql/fragmentTypes.json | 2 +- .../work_items/graphql/provider.js | 20 +- .../work_items/graphql/resolvers.js | 58 + .../work_items/graphql/typedefs.graphql | 52 +- .../graphql/update_work_item.mutation.graphql | 18 + .../graphql/widget.fragment.graphql | 2 +- .../graphql/work_item.query.graphql | 2 +- .../work_items/pages/create_work_item.vue | 71 + .../work_items/pages/work_item_root.vue | 38 +- .../javascripts/work_items/router/routes.js | 7 +- .../components/design_management/design.scss | 9 +- app/assets/stylesheets/framework/buttons.scss | 14 + app/assets/stylesheets/framework/common.scss | 7 + .../framework/contextual_sidebar.scss | 17 +- app/assets/stylesheets/framework/files.scss | 33 +- app/assets/stylesheets/framework/header.scss | 2 +- app/assets/stylesheets/framework/layout.scss | 27 + .../stylesheets/framework/markdown_area.scss | 4 + .../stylesheets/framework/snippets.scss | 5 + .../stylesheets/framework/typography.scss | 6 + app/assets/stylesheets/highlight/common.scss | 8 +- .../stylesheets/highlight/themes/dark.scss | 13 +- .../stylesheets/highlight/themes/monokai.scss | 11 +- .../stylesheets/highlight/themes/none.scss | 11 +- .../highlight/themes/solarized-dark.scss | 11 +- .../highlight/themes/solarized-light.scss | 11 +- .../stylesheets/highlight/white_base.scss | 11 +- .../lazy_bundles/select2_overrides.scss | 4 - .../page_bundles/_pipeline_mixins.scss | 6 +- app/assets/stylesheets/page_bundles/ide.scss | 5 + .../stylesheets/page_bundles/import.scss | 35 +- .../page_bundles/merge_requests.scss | 2 +- .../stylesheets/page_bundles/pipeline.scss | 11 +- app/assets/stylesheets/pages/clusters.scss | 26 +- app/assets/stylesheets/pages/commits.scss | 1 - app/assets/stylesheets/pages/issuable.scss | 10 - .../stylesheets/pages/merge_requests.scss | 13 - app/assets/stylesheets/pages/profile.scss | 10 - app/assets/stylesheets/pages/search.scss | 45 + .../stylesheets/startup/startup-dark.scss | 71 +- .../stylesheets/startup/startup-general.scss | 67 +- .../themes/dark_mode_overrides.scss | 4 + .../stylesheets/themes/theme_helper.scss | 1 + app/assets/stylesheets/utilities.scss | 18 +- .../admin/plan_limits_controller.rb | 1 + .../admin/version_check_controller.rb | 12 + app/controllers/application_controller.rb | 18 +- app/controllers/autocomplete_controller.rb | 2 + .../clusters/clusters_controller.rb | 8 +- .../concerns/authenticates_with_two_factor.rb | 4 +- ...nticates_with_two_factor_for_admin_mode.rb | 2 +- app/controllers/concerns/check_rate_limit.rb | 22 +- .../concerns/cycle_analytics_params.rb | 1 + .../concerns/dependency_proxy/group_access.rb | 4 +- .../concerns/integrations/actions.rb | 2 +- .../concerns/integrations/hooks_execution.rb | 12 - app/controllers/concerns/issuable_actions.rb | 1 + .../concerns/membership_actions.rb | 1 - app/controllers/concerns/notes_actions.rb | 9 +- app/controllers/concerns/one_trust_csp.rb | 4 +- app/controllers/concerns/preview_markdown.rb | 2 +- .../concerns/snippets/blobs_actions.rb | 2 + .../concerns/sourcegraph_decorator.rb | 2 +- app/controllers/concerns/wiki_actions.rb | 13 +- app/controllers/confirmations_controller.rb | 1 + app/controllers/dashboard_controller.rb | 2 + .../google_api/authorizations_controller.rb | 33 +- app/controllers/graphql_controller.rb | 6 +- .../groups/autocomplete_sources_controller.rb | 2 + app/controllers/groups/boards_controller.rb | 1 - .../groups/crm/contacts_controller.rb | 21 + .../groups/crm/organizations_controller.rb | 17 + app/controllers/groups/crm_controller.rb | 30 - .../groups/dependency_proxies_controller.rb | 19 +- ...endency_proxy_for_containers_controller.rb | 2 +- .../groups/variables_controller.rb | 2 + app/controllers/groups_controller.rb | 21 +- app/controllers/help_controller.rb | 4 - app/controllers/import/base_controller.rb | 16 +- .../import/bulk_imports_controller.rb | 8 +- .../import/gitlab_groups_controller.rb | 11 +- app/controllers/invites_controller.rb | 7 - .../omniauth_callbacks_controller.rb | 10 +- app/controllers/profiles/emails_controller.rb | 16 +- .../profiles/two_factor_auths_controller.rb | 6 +- app/controllers/profiles_controller.rb | 2 +- .../autocomplete_sources_controller.rb | 2 + app/controllers/projects/blame_controller.rb | 2 + app/controllers/projects/blob_controller.rb | 6 +- app/controllers/projects/boards_controller.rb | 1 - .../projects/ci/lints_controller.rb | 1 + .../projects/ci/pipeline_editor_controller.rb | 4 +- app/controllers/projects/forks_controller.rb | 2 + .../projects/google_cloud/base_controller.rb | 26 + .../service_accounts_controller.rb | 85 + .../projects/google_cloud_controller.rb | 28 +- app/controllers/projects/hooks_controller.rb | 2 +- .../integrations/shimos_controller.rb | 19 + app/controllers/projects/issues_controller.rb | 34 +- app/controllers/projects/jobs_controller.rb | 8 +- .../projects/learn_gitlab_controller.rb | 10 + .../merge_requests/conflicts_controller.rb | 6 + .../merge_requests/content_controller.rb | 5 + .../merge_requests/creations_controller.rb | 9 + .../merge_requests/diffs_controller.rb | 8 + .../merge_requests/drafts_controller.rb | 9 +- .../projects/merge_requests_controller.rb | 35 +- app/controllers/projects/notes_controller.rb | 2 +- .../projects/pipeline_schedules_controller.rb | 10 +- .../projects/pipelines_controller.rb | 25 +- .../projects/prometheus/alerts_controller.rb | 6 +- app/controllers/projects/raw_controller.rb | 20 +- .../projects/repositories_controller.rb | 16 +- .../projects/runners_controller.rb | 2 - .../projects/settings/ci_cd_controller.rb | 2 +- app/controllers/projects/tree_controller.rb | 2 + .../projects/usage_quotas_controller.rb | 9 - .../projects/variables_controller.rb | 2 + app/controllers/projects_controller.rb | 25 +- .../registrations/welcome_controller.rb | 6 - app/controllers/registrations_controller.rb | 3 - .../git_http_client_controller.rb | 13 +- .../repositories/lfs_api_controller.rb | 33 +- app/controllers/search_controller.rb | 35 +- app/controllers/sessions_controller.rb | 8 +- app/controllers/user_callouts_controller.rb | 29 - app/controllers/users/callouts_controller.rb | 31 + .../users/group_callouts_controller.rb | 2 +- app/controllers/users/terms_controller.rb | 1 + app/experiments/application_experiment.rb | 32 +- .../combined_registration_experiment.rb | 6 +- .../new_project_readme_content_experiment.rb | 2 +- .../new_project_sast_enabled_experiment.rb | 3 + app/finders/ci/auth_job_finder.rb | 2 +- app/finders/ci/runners_finder.rb | 5 + .../environments_by_deployments_finder.rb | 21 +- app/finders/group_descendants_finder.rb | 18 +- app/finders/groups_finder.rb | 21 +- app/finders/issuable_finder.rb | 16 +- app/finders/issuables/crm_contact_filter.rb | 20 + .../issuables/crm_organization_filter.rb | 21 + app/finders/merge_requests_finder.rb | 11 +- app/finders/packages/build_infos_finder.rb | 68 + app/finders/packages/group_packages_finder.rb | 12 +- app/finders/personal_projects_finder.rb | 1 + ...user_group_notification_settings_finder.rb | 7 +- app/graphql/graphql_triggers.rb | 4 + .../mutations/issues/set_crm_contacts.rb | 18 +- app/graphql/mutations/jira_import/start.rb | 6 +- .../mutations/merge_requests/accept.rb | 6 +- app/graphql/mutations/user_callouts/create.rb | 2 +- .../get_container_repositories.query.graphql | 2 + .../design_permissions.query.graphql | 1 + .../get_design_list.query.graphql | 1 + .../queries/epic/epic_children.query.graphql | 132 - .../queries/epic/epic_details.query.graphql | 3 + .../get_pipeline_details.query.graphql | 13 + .../releases/all_releases.query.graphql | 4 + .../repository/path_last_commit.query.graphql | 6 +- .../snippet/project_permissions.query.graphql | 1 + .../queries/snippet/snippet.query.graphql | 1 + .../snippet/user_permissions.query.graphql | 1 + app/graphql/resolvers/base_issues_resolver.rb | 6 +- app/graphql/resolvers/ci/jobs_resolver.rb | 2 +- .../resolvers/ci/runner_status_resolver.rb | 24 + app/graphql/resolvers/ci/runners_resolver.rb | 5 + .../agent_activity_events_resolver.rb | 25 + .../resolvers/clusters/agents_resolver.rb | 5 +- .../container_repository_tags_resolver.rb | 49 + .../design_management/designs_resolver.rb | 12 +- .../version/design_at_version_resolver.rb | 8 +- .../kas/agent_configurations_resolver.rb | 2 +- .../resolvers/package_pipelines_resolver.rb | 57 + .../resolvers/project_jobs_resolver.rb | 1 + .../resolvers/project_pipeline_resolver.rb | 7 +- .../resolvers/project_pipelines_resolver.rb | 2 +- .../resolvers/snippets/blobs_resolver.rb | 2 + .../resolvers/users/participants_resolver.rb | 13 + app/graphql/types/base_edge.rb | 7 + app/graphql/types/base_field.rb | 2 + app/graphql/types/base_object.rb | 1 + .../types/boards/board_issue_input_type.rb | 4 + app/graphql/types/ci/build_need_type.rb | 2 +- app/graphql/types/ci/job_need_union.rb | 21 + app/graphql/types/ci/job_type.rb | 28 +- app/graphql/types/ci/pipeline_type.rb | 10 +- app/graphql/types/ci/runner_status_enum.rb | 47 +- app/graphql/types/ci/runner_type.rb | 9 +- app/graphql/types/ci/runner_web_url_edge.rb | 2 +- app/graphql/types/ci/stage_type.rb | 7 +- app/graphql/types/ci/test_case_type.rb | 2 +- .../types/ci/test_report_total_type.rb | 2 +- .../types/ci/test_suite_summary_type.rb | 2 +- app/graphql/types/ci/test_suite_type.rb | 2 +- .../clusters/agent_activity_event_type.rb | 38 + app/graphql/types/clusters/agent_type.rb | 6 + .../container_repository_details_type.rb | 9 +- .../container_repository_tags_sort_enum.rb | 11 + app/graphql/types/issue_type.rb | 3 +- app/graphql/types/issue_type_enum.rb | 2 +- .../types/merge_request_connection_type.rb | 2 +- app/graphql/types/merge_request_type.rb | 10 +- app/graphql/types/namespace_type.rb | 3 +- app/graphql/types/notes/note_type.rb | 4 +- .../types/packages/package_details_type.rb | 7 + app/graphql/types/packages/package_type.rb | 3 +- app/graphql/types/project_statistics_type.rb | 20 +- app/graphql/types/project_type.rb | 7 +- app/graphql/types/repository/blob_type.rb | 9 + .../types/root_storage_statistics_type.rb | 18 +- app/graphql/types/subscription_type.rb | 3 + .../types/user_callout_feature_name_enum.rb | 2 +- app/helpers/access_tokens_helper.rb | 23 + app/helpers/application_helper.rb | 4 - app/helpers/auth_helper.rb | 34 +- app/helpers/badges_helper.rb | 99 + app/helpers/blame_helper.rb | 15 + app/helpers/boards_helper.rb | 9 + app/helpers/ci/jobs_helper.rb | 7 + app/helpers/ci/runners_helper.rb | 2 +- app/helpers/diff_helper.rb | 2 +- app/helpers/export_helper.rb | 2 +- app/helpers/form_helper.rb | 8 +- app/helpers/ide_helper.rb | 2 +- app/helpers/integrations_helper.rb | 54 +- app/helpers/invite_members_helper.rb | 36 +- .../issuables_description_templates_helper.rb | 2 +- app/helpers/issuables_helper.rb | 11 +- app/helpers/issues_helper.rb | 4 + app/helpers/jira_connect_helper.rb | 3 +- app/helpers/learn_gitlab_helper.rb | 7 +- app/helpers/markup_helper.rb | 2 +- app/helpers/merge_requests_helper.rb | 2 +- app/helpers/namespaces_helper.rb | 18 + app/helpers/nav/new_dropdown_helper.rb | 11 +- app/helpers/notifications_helper.rb | 1 - app/helpers/notify_helper.rb | 17 - app/helpers/operations_helper.rb | 2 +- app/helpers/packages_helper.rb | 11 - app/helpers/profiles_helper.rb | 5 + app/helpers/projects/cluster_agents_helper.rb | 3 +- app/helpers/projects_helper.rb | 19 + app/helpers/routing/graphql_helper.rb | 4 + .../routing/pseudonymization_helper.rb | 11 +- app/helpers/sorting_helper.rb | 25 + app/helpers/system_note_helper.rb | 4 +- app/helpers/tab_helper.rb | 36 +- app/helpers/time_zone_helper.rb | 5 +- app/helpers/tree_helper.rb | 2 +- app/helpers/user_callouts_helper.rb | 98 - app/helpers/users/callouts_helper.rb | 71 + app/helpers/users/group_callouts_helper.rb | 32 + app/helpers/version_check_helper.rb | 2 +- app/helpers/x509_helper.rb | 2 +- app/mailers/emails/in_product_marketing.rb | 4 +- app/mailers/emails/issues.rb | 28 +- app/mailers/emails/members.rb | 29 +- app/mailers/emails/merge_requests.rb | 47 +- app/mailers/emails/notes.rb | 15 +- app/mailers/emails/projects.rb | 8 +- app/mailers/emails/releases.rb | 5 +- app/models/active_session.rb | 188 +- .../cycle_analytics/project_stage.rb | 6 + app/models/application_record.rb | 4 + app/models/application_setting.rb | 8 +- .../application_setting_implementation.rb | 8 + app/models/bulk_imports/entity.rb | 30 +- .../bulk_imports/file_transfer/base_config.rb | 23 +- .../file_transfer/project_config.rb | 6 - app/models/bulk_imports/tracker.rb | 13 +- app/models/chat_name.rb | 4 - app/models/ci/build.rb | 27 +- app/models/ci/job_artifact.rb | 9 + app/models/ci/namespace_mirror.rb | 37 + app/models/ci/pending_build.rb | 12 +- app/models/ci/pipeline.rb | 62 +- app/models/ci/project_mirror.rb | 16 + app/models/ci/runner.rb | 77 +- app/models/ci/runner_namespace.rb | 1 - app/models/ci/runner_project.rb | 1 - app/models/ci/stage.rb | 1 + app/models/clusters/agent.rb | 8 + app/models/clusters/agent_token.rb | 17 +- app/models/clusters/agents/activity_event.rb | 37 + app/models/clusters/applications/runner.rb | 31 +- app/models/clusters/platforms/kubernetes.rb | 19 +- app/models/commit.rb | 38 +- app/models/commit_signatures/gpg_signature.rb | 53 + .../x509_commit_signature.rb | 16 + app/models/commit_status.rb | 26 +- .../models/concerns}/after_commit_queue.rb | 4 +- app/models/concerns/calloutable.rb | 15 - app/models/concerns/ci/contextable.rb | 27 - app/models/concerns/commit_signature.rb | 50 + app/models/concerns/diff_positionable_note.rb | 9 +- app/models/concerns/enums/ci/commit_status.rb | 1 + .../import_state/sidekiq_job_tracker.rb | 2 +- .../incident_management/escalatable.rb | 2 + app/models/concerns/issuable.rb | 18 +- app/models/concerns/loose_foreign_key.rb | 79 - .../concerns/merge_request_reviewer_state.rb | 6 - .../packages/debian/component_file.rb | 8 +- app/models/concerns/participable.rb | 18 +- app/models/concerns/partitioned_table.rb | 3 +- app/models/concerns/relative_positioning.rb | 18 + app/models/concerns/resolvable_discussion.rb | 5 +- app/models/concerns/sha_attribute.rb | 5 +- .../encryption_helper.rb | 2 +- app/models/concerns/transactions.rb | 12 +- app/models/container_repository.rb | 11 +- app/models/context_commits_diff.rb | 1 + app/models/customer_relations/contact.rb | 7 + .../customer_relations/issue_contact.rb | 8 + app/models/deployment.rb | 16 +- app/models/dev_ops_report/metric.rb | 14 + app/models/environment.rb | 2 +- app/models/error_tracking/error_event.rb | 3 + app/models/event.rb | 9 +- app/models/gpg_key.rb | 6 +- app/models/gpg_signature.rb | 86 - app/models/group.rb | 10 +- app/models/hooks/project_hook.rb | 11 +- app/models/hooks/web_hook.rb | 32 +- .../issuable_escalation_status.rb | 3 + app/models/instance_configuration.rb | 1 + app/models/integration.rb | 6 +- app/models/integrations/base_issue_tracker.rb | 2 +- app/models/integrations/jira.rb | 54 +- app/models/integrations/shimo.rb | 13 + app/models/issue.rb | 43 +- app/models/issue/email.rb | 10 + app/models/lfs_object.rb | 1 + app/models/lfs_objects_project.rb | 12 +- .../loose_foreign_keys/deleted_record.rb | 36 +- app/models/member.rb | 17 +- app/models/members/group_member.rb | 11 +- app/models/members/project_member.rb | 11 +- app/models/members_preloader.rb | 2 +- app/models/merge_request.rb | 39 +- app/models/merge_request_assignee.rb | 6 + app/models/merge_request_diff.rb | 2 +- app/models/merge_request_reviewer.rb | 6 + app/models/namespace.rb | 26 +- app/models/namespaces/project_namespace.rb | 4 + app/models/namespaces/sync_event.rb | 16 + app/models/namespaces/traversal/linear.rb | 38 +- .../namespaces/traversal/linear_scopes.rb | 29 +- app/models/namespaces/traversal/recursive.rb | 1 + app/models/namespaces/user_namespace.rb | 2 - app/models/note.rb | 11 +- app/models/notification_reason.rb | 2 + app/models/packages/build_info.rb | 6 + app/models/packages/conan/metadatum.rb | 27 +- app/models/postgresql/replication_slot.rb | 2 +- .../preloaders/group_policy_preloader.rb | 7 +- .../group_root_ancestor_preloader.rb | 32 - app/models/project.rb | 75 +- app/models/project_authorization.rb | 20 +- app/models/project_feature.rb | 46 + app/models/project_setting.rb | 1 + app/models/projects/sync_event.rb | 16 + app/models/repository.rb | 2 + app/models/serverless/domain.rb | 2 +- app/models/snippet.rb | 187 +- app/models/system_note_metadata.rb | 1 + app/models/todo.rb | 1 + app/models/u2f_registration.rb | 6 +- app/models/user.rb | 54 +- app/models/user_callout.rb | 47 - app/models/user_detail.rb | 3 - app/models/users/callout.rb | 51 + app/models/users/calloutable.rb | 17 + app/models/users/group_callout.rb | 2 +- app/models/wiki_page.rb | 2 +- app/models/work_item/type.rb | 7 +- app/models/x509_certificate.rb | 2 +- app/models/x509_commit_signature.rb | 48 - .../clusters/agents/activity_event_policy.rb | 11 + app/policies/group_policy.rb | 16 +- app/policies/namespace_policy.rb | 3 +- .../group_project_namespace_shared_policy.rb | 9 + .../namespaces/project_namespace_policy.rb | 2 +- .../namespaces/user_namespace_policy.rb | 5 +- app/presenters/blob_presenter.rb | 53 +- app/presenters/ci/pipeline_presenter.rb | 16 +- app/presenters/commit_status_presenter.rb | 3 +- app/presenters/merge_request_presenter.rb | 11 +- .../packages/npm/package_presenter.rb | 10 +- .../security/configuration_presenter.rb | 98 + app/presenters/prometheus_alert_presenter.rb | 2 - app/presenters/snippet_blob_presenter.rb | 2 + .../analytics/cycle_analytics/stage_entity.rb | 16 +- app/serializers/build_details_entity.rb | 6 +- app/serializers/build_serializer.rb | 10 - app/serializers/ci/job_entity.rb | 96 + app/serializers/ci/job_serializer.rb | 12 + app/serializers/ci/pipeline_entity.rb | 4 +- app/serializers/deployment_entity.rb | 10 +- app/serializers/deployment_serializer.rb | 2 +- app/serializers/diff_file_entity.rb | 2 + app/serializers/job_entity.rb | 94 - app/serializers/job_group_entity.rb | 2 +- app/serializers/member_entity.rb | 6 + .../merge_request_widget_entity.rb | 2 +- .../merge_requests/pipeline_entity.rb | 4 +- app/serializers/note_entity.rb | 2 +- app/serializers/stage_entity.rb | 4 +- .../admin/propagate_service_template.rb | 11 - app/services/audit_event_service.rb | 11 +- ...ntainer_registry_authentication_service.rb | 2 +- .../find_records_due_for_refresh_service.rb | 6 +- .../project_group_link_create_service.rb | 12 +- .../project_recalculate_service.rb | 12 +- app/services/auto_merge/base_service.rb | 2 +- .../archive_extraction_service.rb | 74 + app/services/bulk_imports/create_service.rb | 2 +- .../bulk_imports/relation_export_service.rb | 2 +- .../bulk_imports/tree_export_service.rb | 8 + .../bulk_imports/uploads_export_service.rb | 3 +- app/services/ci/after_requeue_job_service.rb | 45 +- app/services/ci/create_pipeline_service.rb | 40 +- .../ci/expire_pipeline_cache_service.rb | 27 +- .../destroy_all_expired_service.rb | 40 +- .../ci/parse_dotenv_artifact_service.rb | 8 +- .../atomic_processing_service.rb | 4 + app/services/ci/play_build_service.rb | 2 +- .../ci/process_sync_events_service.rb | 58 + app/services/ci/queue/build_queue_service.rb | 10 +- .../ci/queue/builds_table_strategy.rb | 10 +- .../ci/queue/pending_builds_strategy.rb | 18 +- app/services/ci/register_job_service.rb | 9 +- app/services/ci/retry_build_service.rb | 38 +- .../ci/stuck_builds/drop_pending_service.rb | 11 +- app/services/ci/update_build_queue_service.rb | 12 +- app/services/ci/update_build_state_service.rb | 5 +- .../ci/update_pending_build_service.rb | 4 +- .../clusters/agent_tokens/create_service.rb | 12 + .../cleanup/project_namespace_service.rb | 6 +- .../cleanup/service_account_service.rb | 4 + app/services/cohorts_service.rb | 2 +- .../concerns/admin/propagate_service.rb | 37 - .../concerns/audit_event_save_type.rb | 26 + .../concerns/protected_ref_name_sanitizer.rb | 12 + ...ice.rb => find_cached_manifest_service.rb} | 27 +- .../dependency_proxy/pull_manifest_service.rb | 47 - .../older_deployments_drop_service.rb | 2 + app/services/events/destroy_service.rb | 21 + app/services/feature_flags/base_service.rb | 1 + app/services/git/branch_hooks_service.rb | 4 +- app/services/git/branch_push_service.rb | 8 - .../git/process_ref_changes_service.rb | 9 + .../google_cloud/service_accounts_service.rb | 25 + app/services/gravatar_service.rb | 2 +- app/services/groups/transfer_service.rb | 12 +- .../groups/update_shared_runners_service.rb | 16 +- app/services/import/github_service.rb | 11 +- .../create_service.rb | 36 + .../propagate_service.rb} | 30 +- .../propagate_template_service.rb | 10 + app/services/issuable_base_service.rb | 19 + app/services/issues/base_service.rb | 2 +- app/services/issues/create_service.rb | 7 +- .../issues/set_crm_contacts_service.rb | 81 +- .../batch_cleaner_service.rb | 41 +- .../loose_foreign_keys/cleaner_service.rb | 30 +- .../process_deleted_records_service.rb | 33 +- app/services/members/create_service.rb | 12 - app/services/members/creator_service.rb | 1 - .../merge_requests/after_create_service.rb | 27 +- .../merge_requests/approval_service.rb | 1 + app/services/merge_requests/base_service.rb | 14 + ...bulk_remove_attention_requested_service.rb | 22 + app/services/merge_requests/close_service.rb | 1 + .../merge_requests/create_pipeline_service.rb | 2 +- .../handle_assignees_change_service.rb | 2 + .../outdated_discussion_diff_lines_service.rb | 22 +- .../merge_requests/post_merge_service.rb | 1 + app/services/merge_requests/rebase_service.rb | 18 +- .../remove_attention_requested_service.rb | 41 + ...esolved_discussion_notification_service.rb | 1 + app/services/merge_requests/squash_service.rb | 6 +- .../toggle_attention_requested_service.rb | 16 + .../namespaces/invite_team_email_service.rb | 3 +- .../notification_recipients/build_service.rb | 4 + .../builder/attention_requested.rb | 23 + app/services/notification_service.rb | 8 + .../debian/generate_distribution_service.rb | 2 +- .../packages/npm/create_package_service.rb | 4 +- app/services/pages/zip_directory_service.rb | 4 +- app/services/projects/destroy_service.rb | 26 +- .../prometheus/alerts/create_service.rb | 2 +- .../prometheus/alerts/destroy_service.rb | 2 +- .../prometheus/alerts/update_service.rb | 2 +- app/services/projects/transfer_service.rb | 14 +- .../protected_branches/base_service.rb | 17 +- app/services/protected_tags/base_service.rb | 16 + app/services/protected_tags/create_service.rb | 4 +- app/services/protected_tags/update_service.rb | 4 +- .../repositories/changelog_service.rb | 12 +- app/services/search_service.rb | 62 +- .../service_ping/devops_report_service.rb | 26 + app/services/service_ping/submit_service.rb | 40 +- app/services/system_note_service.rb | 20 +- .../system_notes/issuables_service.rb | 115 +- .../todos/destroy/private_features_service.rb | 46 - .../destroy/unauthorized_features_service.rb | 43 + ..._service.rb => dismiss_callout_service.rb} | 2 +- .../users/dismiss_group_callout_service.rb | 2 +- .../refresh_authorized_projects_service.rb | 8 +- app/services/verify_pages_domain_service.rb | 3 +- app/uploaders/lfs_object_uploader.rb | 2 +- .../error_tracking_event_payload.json | 2 +- .../_account_and_limit.html.haml | 1 + .../_package_registry.html.haml | 3 + .../application_settings/_snowplow.html.haml | 6 +- .../application_settings/network.html.haml | 21 +- .../_security_newsletter_callout.html.haml | 2 +- app/views/admin/dashboard/index.html.haml | 2 + app/views/admin/groups/show.html.haml | 14 +- app/views/admin/hooks/edit.html.haml | 2 + app/views/admin/labels/index.html.haml | 24 +- app/views/admin/projects/_archived.html.haml | 3 +- app/views/admin/projects/_projects.html.haml | 3 +- app/views/admin/projects/show.html.haml | 4 +- .../admin/users/_access_levels.html.haml | 5 +- app/views/admin/users/_user_detail.html.haml | 20 - app/views/admin/users/projects.html.haml | 4 +- app/views/admin/users/show.html.haml | 2 +- .../_gcp_signup_offer_banner.html.haml | 2 +- app/views/clusters/clusters/show.html.haml | 5 +- .../devise/confirmations/almost_there.haml | 2 + app/views/devise/sessions/new.html.haml | 2 - app/views/devise/shared/_tab_single.html.haml | 5 +- .../_import_group_from_file_panel.html.haml | 14 +- .../_invite_members_side_nav_link.html.haml | 1 - app/views/groups/_personalize.html.haml | 2 +- app/views/groups/_project_badges.html.haml | 2 +- app/views/groups/crm/contacts.html.haml | 4 - app/views/groups/crm/contacts/index.html.haml | 4 + app/views/groups/crm/organizations.html.haml | 4 - .../groups/crm/organizations/index.html.haml | 4 + app/views/groups/packages/index.html.haml | 6 +- app/views/groups/projects.html.haml | 5 +- .../registry/repositories/index.html.haml | 4 +- .../groups/runners/_group_runners.html.haml | 2 +- app/views/groups/settings/_advanced.html.haml | 5 +- app/views/groups/settings/_export.html.haml | 14 +- app/views/groups/settings/_transfer.html.haml | 11 +- .../ci_cd/_auto_devops_form.html.haml | 2 +- .../packages_and_registries/show.html.haml | 3 +- app/views/groups/show.html.haml | 2 +- .../_package_registry.html.haml | 4 + app/views/import/bitbucket/deploy_key.js.haml | 3 - .../subscriptions/index.html.haml | 7 - app/views/layouts/_flash.html.haml | 4 +- .../_google_tag_manager_body.html.haml | 2 +- .../_google_tag_manager_head.html.haml | 15 +- app/views/layouts/_page.html.haml | 2 +- app/views/layouts/_snowplow.html.haml | 6 +- .../header/_current_user_dropdown.html.haml | 2 +- app/views/layouts/header/_default.html.haml | 16 +- .../layouts/header/_help_dropdown.html.haml | 2 +- .../_registration_enabled_callout.html.haml | 2 +- .../in_product_marketing_mailer.html.haml | 194 + app/views/notify/_note_email.html.haml | 2 +- .../notify/account_validation_email.html.haml | 16 + .../notify/account_validation_email.text.erb | 15 + ...on_requested_merge_request_email.html.haml | 2 + ...ion_requested_merge_request_email.text.erb | 1 + .../in_product_marketing_email.html.haml | 286 +- app/views/notify/issue_due_email.html.haml | 2 +- .../notify/member_invited_email.html.haml | 20 +- app/views/notify/new_issue_email.html.haml | 2 +- .../notify/new_merge_request_email.html.haml | 2 +- app/views/notify/new_release_email.html.haml | 2 +- .../service_desk_new_note_email.html.haml | 2 +- .../profiles/accounts/_providers.html.haml | 7 +- app/views/profiles/keys/_form.html.haml | 5 +- .../notifications/_group_settings.html.haml | 2 +- .../personal_access_tokens/index.html.haml | 116 +- app/views/profiles/show.html.haml | 2 +- .../profiles/two_factor_auths/show.html.haml | 2 +- app/views/projects/_files.html.haml | 5 +- .../_invite_members_side_nav_link.html.haml | 1 - ...ge_request_merge_commit_template.html.haml | 4 +- .../_merge_request_settings.html.haml | 2 + ...e_request_squash_commit_template.html.haml | 16 + .../projects/_new_project_fields.html.haml | 23 +- .../projects/_project_templates.html.haml | 2 +- app/views/projects/_remove_fork.html.haml | 5 +- app/views/projects/_transfer.html.haml | 10 +- app/views/projects/blame/show.html.haml | 2 +- app/views/projects/blob/_content.html.haml | 1 + app/views/projects/blob/_header.html.haml | 1 + app/views/projects/blob/show.html.haml | 4 +- app/views/projects/branches/index.html.haml | 2 +- .../projects/buttons/_dropdown.html.haml | 42 - app/views/projects/buttons/_fork.html.haml | 14 +- app/views/projects/ci/builds/_build.html.haml | 11 +- app/views/projects/commit/pipelines.html.haml | 1 + app/views/projects/compare/index.html.haml | 2 +- .../projects/default_branch/_show.html.haml | 2 +- app/views/projects/diffs/_content.html.haml | 1 + app/views/projects/diffs/_text_file.html.haml | 2 +- .../projects/feature_flags/new.html.haml | 4 +- app/views/projects/forks/index.html.haml | 44 +- .../_generic_commit_status.html.haml | 6 +- .../google_cloud/errors/gcp_error.html.haml | 6 + .../errors/no_gcp_projects.html.haml | 6 + .../service_accounts/index.html.haml | 8 + app/views/projects/hooks/edit.html.haml | 4 +- .../integrations/shimos/show.html.haml | 10 + app/views/projects/issues/_issue.html.haml | 8 +- .../projects/issues/_new_branch.html.haml | 2 +- .../issues/_related_branches.html.haml | 2 +- app/views/projects/issues/index.html.haml | 2 +- app/views/projects/jobs/show.html.haml | 5 +- .../projects/learn_gitlab/index.html.haml | 3 +- .../merge_requests/_merge_request.html.haml | 5 +- .../merge_requests/_mr_title.html.haml | 2 +- .../creations/_new_submit.html.haml | 6 +- .../projects/merge_requests/index.html.haml | 2 +- .../projects/merge_requests/invalid.html.haml | 29 +- .../projects/merge_requests/show.html.haml | 8 +- .../mirrors/_disabled_mirror_badge.html.haml | 3 +- ...ate_public_ssh_key_confirm_modal.html.haml | 13 - app/views/projects/network/show.json.erb | 2 +- .../packages/packages/index.html.haml | 6 +- .../projects/pages_domains/_dns.html.haml | 2 +- .../pipeline_schedules/edit.html.haml | 2 +- .../projects/pipelines/_with_tabs.html.haml | 31 +- app/views/projects/pipelines/charts.html.haml | 5 +- app/views/projects/pipelines/show.html.haml | 3 +- .../shared/_matching_branch.html.haml | 2 +- .../shared/_matching_tag.html.haml | 2 +- .../shared/_protected_tag.html.haml | 2 +- .../registry/repositories/index.html.haml | 4 +- app/views/projects/remove_fork.js.haml | 2 - .../projects/runners/_group_runners.html.haml | 2 +- app/views/projects/runners/_runner.html.haml | 3 +- app/views/projects/services/_form.html.haml | 2 +- .../prometheus/_custom_metrics.html.haml | 4 +- .../services/prometheus/_metrics.html.haml | 4 +- .../settings/access_tokens/index.html.haml | 2 +- .../settings/ci_cd/_autodevops_form.html.haml | 2 +- .../projects/settings/ci_cd/show.html.haml | 23 +- app/views/projects/show.html.haml | 1 - .../projects/starrers/_starrer.html.haml | 2 +- app/views/projects/tags/_tag.html.haml | 13 +- app/views/projects/tags/show.html.haml | 3 +- app/views/projects/tracings/show.html.haml | 10 +- app/views/projects/transfer.js.haml | 2 - .../projects/usage_quotas/index.html.haml | 2 +- app/views/root/index.html.haml | 10 - app/views/search/results/_blob.html.haml | 3 +- app/views/search/results/_blob_data.html.haml | 2 +- .../search/results/_blob_highlight.html.haml | 22 + app/views/search/results/_issuable.html.haml | 2 +- app/views/shared/_email_with_badge.html.haml | 9 +- .../shared/_flash_user_callout.html.haml | 2 +- app/views/shared/_milestone_expired.html.haml | 6 +- app/views/shared/_milestones_filter.html.haml | 11 +- ...ation_features_discovery_message.html.haml | 9 + app/views/shared/_service_settings.html.haml | 4 +- ...tor_auth_recovery_settings_check.html.haml | 2 +- app/views/shared/builds/_tabs.html.haml | 14 +- .../doorkeeper/applications/_form.html.haml | 5 +- .../doorkeeper/applications/_index.html.haml | 2 +- .../form_elements/_description.html.haml | 2 +- app/views/shared/integrations/_form.html.haml | 2 +- .../shared/integrations/_index.html.haml | 2 +- app/views/shared/integrations/_tabs.html.haml | 2 +- app/views/shared/integrations/edit.html.haml | 2 +- .../shared/integrations/overrides.html.haml | 2 +- app/views/shared/issuable/_form.html.haml | 2 +- .../issuable/_milestone_dropdown.html.haml | 12 +- app/views/shared/issuable/_sidebar.html.haml | 6 +- .../form/_default_templates.html.haml | 7 +- .../shared/issuable/form/_metadata.html.haml | 12 +- .../_metadata_issuable_assignee.html.haml | 2 +- .../shared/issuable/form/_title.html.haml | 2 +- .../issuable/form/_type_selector.html.haml | 2 +- .../members/_filter_2fa_dropdown.html.haml | 11 - app/views/shared/members/_requests.html.haml | 2 +- .../shared/milestones/_milestone.html.haml | 6 +- .../shared/milestones/_sidebar.html.haml | 4 +- app/views/shared/milestones/_tabs.html.haml | 30 +- app/views/shared/nav/_scope_menu.html.haml | 2 +- .../nav/_sidebar_hidden_menu_item.html.haml | 2 +- app/views/shared/nav/_sidebar_menu.html.haml | 2 +- .../shared/nav/_sidebar_menu_item.html.haml | 2 +- app/views/shared/projects/_archived.html.haml | 3 +- app/views/shared/projects/_project.html.haml | 2 +- app/views/shared/projects/_topics.html.haml | 17 +- .../runners/_runner_description.html.haml | 4 +- .../shared/runners/_runner_details.html.haml | 3 +- .../runners/_runner_type_badge.html.haml | 9 +- app/views/shared/snippets/_embed.html.haml | 2 +- app/views/shared/web_hooks/_hook.html.haml | 10 +- .../shared/web_hooks/_hook_errors.html.haml | 41 + .../web_hooks/_title_and_docs.html.haml | 2 +- .../shared/wikis/_wiki_content.html.haml | 2 + app/views/shared/wikis/show.html.haml | 3 +- .../snippets/_snippets_scope_menu.html.haml | 41 +- app/views/users/_overview.html.haml | 4 +- app/views/users/calendar_activities.html.haml | 2 +- app/views/users/show.html.haml | 3 +- app/views/users/terms/index.html.haml | 27 +- app/workers/all_queues.yml | 51 +- .../single_database_worker.rb | 148 + app/workers/background_migration_worker.rb | 117 +- app/workers/bulk_imports/entity_worker.rb | 5 +- app/workers/bulk_imports/pipeline_worker.rb | 4 +- .../ci/create_downstream_pipeline_worker.rb | 1 + .../ci/pending_builds/update_group_worker.rb | 19 + .../pending_builds/update_project_worker.rb | 19 + .../create_quality_report_worker.rb | 2 +- app/workers/concerns/application_worker.rb | 4 +- app/workers/expire_job_cache_worker.rb | 15 +- app/workers/issuable_export_csv_worker.rb | 2 +- app/workers/issue_placement_worker.rb | 7 +- app/workers/issue_rebalancing_worker.rb | 3 + app/workers/issues/rebalancing_worker.rb | 1 + ...eschedule_stuck_issue_rebalances_worker.rb | 4 +- .../namespaces/process_sync_events_worker.rb | 22 + .../projects/process_sync_events_worker.rb | 22 + app/workers/propagate_integration_worker.rb | 2 +- .../propagate_service_template_worker.rb | 29 - .../private_features_worker.rb | 2 +- bin/metrics-server | 12 + config/apollo.config.js | 10 + ...figuration__sast_create_service_create.yml | 21 + ...figuration__sast_create_service_update.yml | 21 + ...secret_detection_create_service_create.yml | 21 + ...secret_detection_create_service_update.yml | 21 + ...tainer_repositories_list_repositories.yml} | 5 +- ...tainer_repositories_delete_repository.yml} | 5 +- ...ect_container_repositories_delete_tag.yml} | 5 +- ...ontainer_repositories_delete_tag_bulk.yml} | 5 +- ...tainer_repositories_list_repositories.yml} | 5 +- ...ject_container_repositories_list_tags.yml} | 5 +- ...51015_api__pypi_packages_list_package.yml} | 5 +- ...applications_cluster_application_name.yml} | 5 +- ...prometheus_disabled_manual_prometheus.yml} | 3 + ..._prometheus_enabled_manual_prometheus.yml} | 3 + ...gistry_notification_create_repository.yml} | 5 +- ...gistry_notification_delete_repository.yml} | 5 +- ...iner_registry_notification_delete_tag.yml} | 5 +- ...registry_notification_push_repository.yml} | 5 +- ...tainer_registry_notification_push_tag.yml} | 5 +- ...109151015_delete_repository_container.yml} | 5 +- ...l => 202109151015_delete_tag_bulk_tag.yml} | 5 +- ...9151015_experiment_name_initial_write.yml} | 5 +- ...=> 202109151015_experiment_name_write.yml} | 5 +- ...ups__email_campaigns_controller_click.yml} | 5 +- ...sitories_controller_list_repositories.yml} | 5 +- ...nt__zoom_integration_add_zoom_meeting.yml} | 5 +- ..._zoom_integration_remove_zoom_meeting.yml} | 5 +- ...109151015_list_repositories_container.yml} | 5 +- ...9151015_notes__create_service_execute.yml} | 5 +- ...2109151015_package_class_pull_package.yml} | 5 +- ...2109151015_package_class_push_package.yml} | 5 +- ...sitories_controller_delete_repository.yml} | 5 +- ...sitories_controller_list_repositories.yml} | 5 +- ..._registry__tags_controller_delete_tag.yml} | 5 +- ...stry__tags_controller_delete_tag_bulk.yml} | 5 +- ...__registry__tags_controller_list_tags.yml} | 5 +- .../20211215022206_default_click_button.yml | 21 + .../20211215022206_default_click_link.yml | 21 + .../20211215022206_default_click_menu.yml | 25 + ...20211215022206_default_click_menu_item.yml | 25 + ...mment_button_title_button_click_button.yml | 21 + ...ngratulate_first_pipeline_click_button.yml | 21 + ...eate_or_import_a_repository_click_link.yml | 21 + ...te_value_stream_form_open_click_button.yml | 21 + ..._value_stream_form_open_click_dropdown.yml | 21 + ..._value_stream_form_open_click_dropdown.yml | 21 + ...ile_path_button_click_copy_file_button.yml | 21 + ...al_button_click_toggle_external_button.yml | 21 + ...ult_edit_assignee_click_invite_members.yml | 21 + ...6_default_edit_click_consolidated_edit.yml | 21 + ...ult_edit_reviewer_click_invite_members.yml | 21 + ...it_value_stream_form_open_click_button.yml | 21 + ...ult_environment_actions_click_dropdown.yml | 21 + ...efault_environment_delete_click_button.yml | 21 + ...lt_environment_monitoring_click_button.yml | 21 + ...6_default_environment_pin_click_button.yml | 21 + ...ault_environment_rollback_click_button.yml | 21 + ..._default_environment_stop_click_button.yml | 21 + ...ault_environment_terminal_click_button.yml | 21 + ...6_default_environment_url_click_button.yml | 21 + ..._export_issuable_type_csv_click_button.yml | 21 + ...fault_feature_flag_toggle_click_button.yml | 21 + ...ult_feature_title_click_whats_new_item.yml | 21 + ...ault_home_page_click_go_to_preferences.yml | 21 + ...mr_next_unresolved_thread_click_button.yml | 21 + ..._button_click_terraform_mr_plan_button.yml | 21 + ...fault_no_pipeline_noticed_click_button.yml | 21 + ...ault_reply_comment_button_click_button.yml | 21 + ...206_default_review_app_open_review_app.yml | 21 + ...efault_right_sidebar_click_edit_button.yml | 21 + ...rch_autocomplete_suggestion_click_text.yml | 21 + ...11215022206_default_show_labels_toggle.yml | 21 + ...ult_slugged_stream_name_click_dropdown.yml | 21 + ...st_project_gitlab_ci_yml__click_button.yml | 21 + ...lt_web_ide_click_consolidated_edit_ide.yml | 21 + config/feature_categories.yml | 10 +- .../abort_deleted_project_pipelines.yml | 8 - .../development/admin_deploy_keys_vue.yml | 2 +- ...ions.yml => automated_email_provision.yml} | 10 +- .../branches_pagination_without_count.yml | 8 - ...e_maintain.yml => ci_bulk_insert_tags.yml} | 8 +- ...e.yml => ci_namespace_project_mirrors.yml} | 10 +- ...i_optimize_project_records_destruction.yml | 8 - .../ci_order_subsequent_jobs_by_stage.yml | 8 + ...ending_builds_maintain_ci_minutes_data.yml | 8 - ...ing_builds_maintain_denormalized_data.yml} | 8 +- ...uilds_maintain_namespace_traversal_ids.yml | 8 - ...ng_builds_maintain_shared_runners_data.yml | 8 - .../ci_pending_builds_maintain_tags_data.yml | 8 - ...ding_builds_project_runners_decoupling.yml | 8 - ...ing_denormalize_ci_minutes_information.yml | 8 - ...ng_denormalize_namespace_traversal_ids.yml | 8 - ...denormalize_shared_runners_information.yml | 8 - ..._queueing_denormalize_tags_information.yml | 8 - ...ueuing_use_denormalized_data_strategy.yml} | 8 +- .../ci_require_credit_card_on_free_plan.yml | 4 +- .../ci_require_credit_card_on_trial_plan.yml | 4 +- ...r.yml => ci_retry_downstream_pipeline.yml} | 8 +- .../ci_store_trace_outside_transaction.yml | 4 +- .../ci_track_shared_runner_builds.yml | 8 - .../ci_untrack_shared_runner_builds.yml | 8 - .../development/ci_yaml_limit_size.yml | 2 +- ...te_deployment_in_separate_transaction.yml} | 8 +- .../create_vulnerabilities_via_api.yml | 8 - .../development/customer_relations.yml | 2 +- .../dependency_proxy_manifest_workhorse.yml | 8 - ...scendants.yml => deployment_approvals.yml} | 8 +- .../development/deployments_archive.yml | 2 +- .../display_outdated_line_diff.yml | 4 +- ...yml => early_prepare_for_mergeability.yml} | 8 +- ...deployments_finder_exists_optimization.yml | 8 - ...e_job_and_pipeline_cache_synchronously.yml | 8 + .../development/find_tag_via_gitaly.yml | 2 +- ...parent_type.yml => hide_access_tokens.yml} | 8 +- .../{cached_mr_title.yml => highlight_js.yml} | 8 +- ...l => improved_container_scan_matching.yml} | 10 +- ..._activity.yml => incident_escalations.yml} | 10 +- .../development/increased_diff_limits.yml | 8 - .../development/jira_use_first_ref_by_oid.yml | 2 +- ...ds_enabled_checks.yml => jobs_tab_vue.yml} | 8 +- .../lfk_automatic_partition_creation.yml | 8 + .../lfk_automatic_partition_dropping.yml | 8 + ...ling.yml => lfs_auto_link_fork_source.yml} | 8 +- ...ml => linear_group_descendants_finder.yml} | 8 +- ..._template_finder_extended_group_search.yml | 8 - ...tion_settings_finder_ancestors_scopes.yml} | 8 +- ...th_developer_maintainer_project_access.yml | 8 - ... => log_implicit_sidekiq_status_calls.yml} | 10 +- .../development/migrate_user_mentions.yml | 11 - .../development/multiple_gpg_signatures.yml | 2 +- .../new_route_ci_minutes_purchase.yml | 2 +- .../operational_vulnerabilities.yml | 2 +- ...l => optimized_issue_neighbor_queries.yml} | 8 +- .../packages_npm_abbreviated_metadata.yml | 8 - ...mespace_drop_down_for_project_creation.yml | 2 +- ...test_wal_locations_for_idempotent_jobs.yml | 2 +- .../development/prevent_abusive_searches.yml | 8 + .../reference_cache_memoization.yml | 8 - .../development/s3_multithreaded_uploads.yml | 2 +- ...{partition_pruning.yml => sbom_survey.yml} | 10 +- ...ff_highlighting.yml => scim_token_vue.yml} | 10 +- .../secure_vulnerability_training.yml | 8 + ...p_diff_files.yml => shimo_integration.yml} | 8 +- ... skip_scheduling_workers_for_replicas.yml} | 6 +- .../surface_environment_creation_failure.yml | 8 - .../development/terms_of_service_vue.yml | 8 - .../usage_data_instrumentation.yml | 8 - .../development/use_cmark_renderer.yml | 2 +- .../use_optimized_group_labels_query.yml | 2 +- ...mary_and_secondary_stores_for_sessions.yml | 8 + ...primary_store_as_default_for_sessions.yml} | 6 +- ... use_traversal_ids_for_ancestors_upto.yml} | 8 +- ...ml => use_traversal_ids_groups_finder.yml} | 8 +- .../use_upsert_query_for_mr_metrics.yml | 8 - ...ker.yml => verify_participants_access.yml} | 8 +- .../vuln_report_new_project_filter.yml | 8 - .../vulnerability_location_image_filter.yml | 2 +- config/feature_flags/development/webauthn.yml | 2 +- ...ch_between_content_editor_raw_markdown.yml | 8 + .../experiment/invite_email_from.yml | 8 - .../experiment/invite_email_preview_text.yml | 8 - ...invite_for_help_continuous_onboarding.yml} | 6 +- .../experiment/invite_members_in_comment.yml | 8 - ...ers_new_dropdown_experiment_percentage.yml | 8 - .../experiment/member_areas_of_focus.yml | 8 - .../ci_pipeline_creation_logger.yml} | 10 +- .../database_async_index_creation.yml} | 10 +- .../feature_flag_state_logs.yml} | 12 +- ...tion_max_count_limit.yml => gtm_nonce.yml} | 8 +- config/gitlab.yml.example | 6 + config/initializers/1_settings.rb | 14 +- config/initializers/7_prometheus_metrics.rb | 20 +- .../active_record_database_tasks.rb | 7 + .../active_record_transaction_observer.rb | 4 +- config/initializers/backtrace_silencers.rb | 4 +- config/initializers/database_config.rb | 8 +- .../initializers/doorkeeper_openid_connect.rb | 9 + .../forbid_sidekiq_in_transactions.rb | 8 +- config/initializers/gitlab_experiment.rb | 2 +- ...tive_record_relation_methods_with_limit.rb | 4 +- config/initializers/postgres_partitioning.rb | 3 +- config/initializers/session_store.rb | 45 +- config/initializers/sidekiq.rb | 5 +- .../initializers/validate_database_config.rb | 4 +- config/initializers/wikicloth_patch.rb | 159 + ..._analytics_total_unique_counts_monthly.yml | 49 +- .../20210216175101_merge_requests_users.yml | 2 +- .../counts_28d/20210216175542_ci_builds.yml | 2 +- .../20210216175546_ci_internal_pipelines.yml | 2 +- ...16175550_ci_pipeline_config_repository.yml | 2 +- .../20210216175554_ci_pipelines.yml | 2 +- ...monthly_active_users_design_management.yml | 2 +- .../counts_28d/20210216181050_packages.yml | 2 +- .../counts_28d/20210216181139_issues.yml | 2 +- .../counts_28d/20210216181158_epics.yml | 6 +- ...gement_issue_milestone_changed_monthly.yml | 2 +- .../counts_28d/20210216181935_deployments.yml | 2 +- .../counts_28d/20210216181939_releases.yml | 2 +- ...tion_monthly_active_users_project_repo.yml | 2 +- .../counts_28d/20210216183701_jira.yml | 2 +- ..._i_code_review_user_approve_mr_monthly.yml | 2 +- ...tes_implicit_auto_devops_build_monthly.yml | 3 +- ...es_implicit_auto_devops_deploy_monthly.yml | 3 +- ...templates_5_min_production_app_monthly.yml | 3 +- ...ci_templates_aws_cf_deploy_ec2_monthly.yml | 3 +- ...ci_templates_auto_devops_build_monthly.yml | 3 +- ...i_templates_auto_devops_deploy_monthly.yml | 3 +- ...ates_auto_devops_deploy_latest_monthly.yml | 3 +- ..._templates_total_unique_counts_monthly.yml | 4 +- ...e_review_category_monthly_active_users.yml | 4 +- ...icit_auto_devops_deploy_latest_monthly.yml | 3 +- ...t_nothing_merge_click_new_file_monthly.yml | 2 +- ...53_i_quickactions_add_contacts_monthly.yml | 25 + ...i_quickactions_remove_contacts_monthly.yml | 25 + ...licit_security_dast_api_latest_monthly.yml | 25 + ...46_p_analytics_ci_cd_pipelines_monthly.yml | 26 + ...ics_ci_cd_deployment_frequency_monthly.yml | 26 + ...06_p_analytics_ci_cd_lead_time_monthly.yml | 26 + ...ting_license_compliance_report_monthly.yml | 25 + ...license_compliance_full_report_monthly.yml | 25 + ...lates_security_dast_api_latest_monthly.yml | 25 + ...ting_manage_license_compliance_monthly.yml | 25 + ...4_analytics_total_unique_counts_weekly.yml | 49 +- ...ates_implicit_auto_devops_build_weekly.yml | 3 +- ...tes_implicit_auto_devops_deploy_weekly.yml | 3 +- ..._templates_5_min_production_app_weekly.yml | 3 +- ..._ci_templates_aws_cf_deploy_ec2_weekly.yml | 3 +- ...ci_templates_auto_devops_deploy_weekly.yml | 3 +- ...lates_auto_devops_deploy_latest_weekly.yml | 3 +- ...i_templates_total_unique_counts_weekly.yml | 2 + ...licit_auto_devops_deploy_latest_weekly.yml | 3 +- ...et_nothing_merge_click_new_file_weekly.yml | 2 +- ...948_i_quickactions_add_contacts_weekly.yml | 25 + ..._i_quickactions_remove_contacts_weekly.yml | 25 + ...plicit_security_dast_api_latest_weekly.yml | 25 + ...441_p_analytics_ci_cd_pipelines_weekly.yml | 26 + ...tics_ci_cd_deployment_frequency_weekly.yml | 26 + ...200_p_analytics_ci_cd_lead_time_weekly.yml | 26 + ...sting_license_compliance_report_weekly.yml | 25 + ..._license_compliance_full_report_weekly.yml | 25 + ...plates_security_dast_api_latest_weekly.yml | 25 + ...iting_manage_license_compliance_weekly.yml | 25 + .../20210216175229_auto_devops_enabled.yml | 2 +- .../counts_all/20210216175520_ci_runners.yml | 2 +- .../20210216175537_ci_pipelines.yml | 2 +- .../20210216181011_projects_with_packages.yml | 2 +- .../20210216182004_commit_comment.yml | 2 +- .../20210216182006_source_code_pushes.yml | 2 +- ...1126090001_p_analytics_ci_cd_pipelines.yml | 21 + ...p_analytics_ci_cd_deployment_frequency.yml | 21 + ...1126090003_p_analytics_ci_cd_lead_time.yml | 21 + .../license/20210204124936_pages_version.yml | 2 +- ...204124856_instance_auto_devops_enabled.yml | 2 +- ...10204124858_container_registry_enabled.yml | 2 +- ...04124902_gitlab_shared_runners_enabled.yml | 2 +- ...10204124914_prometheus_metrics_enabled.yml | 2 +- .../settings/20210204124934_pages_enabled.yml | 2 +- .../settings/20210216180913_enabled.yml | 2 +- .../20211124061450_snowplow_enabled.yml | 24 + ...onfigured_to_gitlab_collector_hostname.yml | 24 + config/routes.rb | 3 +- config/routes/admin.rb | 2 + config/routes/group.rb | 8 +- config/routes/profile.rb | 9 +- config/routes/project.rb | 8 + config/routes/user.rb | 1 + config/sidekiq_queues.yml | 10 +- config/webpack.config.js | 8 + danger/ci_config/Dangerfile | 20 + danger/ci_templates/Dangerfile | 2 +- danger/database/Dangerfile | 2 +- danger/documentation/Dangerfile | 2 +- danger/product_intelligence/Dangerfile | 8 +- danger/roulette/Dangerfile | 12 +- danger/specialization_labels/Dangerfile | 2 +- danger/specs/Dangerfile | 2 +- ...iontype-nonexplicit-config-deprecation.yml | 5 +- .../14-0-nfs-fot-git-repository-storage.yml | 2 +- .../14-2-deprecation-task-runner.yml | 2 +- ...atabase-deprecate-legacy-database-conf.yml | 1 + .../14-3-deprecation-release-cli.yml | 2 +- ...ge-container-registry-api-group-update.yml | 1 + .../14-3-repository-push-audit-events.yml | 1 + ...cate-based-integration-with-kubernetes.yml | 2 +- ...ate-convert-instance-runner-to-project.yml | 1 + .../14-5-deprecate-opensuse-15-2.yml | 1 + ...precation-of-vsa-filtering-calculation.yml | 3 +- ...-runner-api-status-does-contain-paused.yml | 10 +- data/deprecations/14-6-deprecate-types.yml | 14 + ...precation-license-compliance-api-terms.yml | 16 + ...cure-dependency-scanning-bundler-audit.yml | 16 + ...-6-pipeline-fields-package-deprecation.yml | 12 + ...zzing-ci-configuration-create-mutation.yml | 13 + ...unner-api-status-renames-not_connected.yml | 14 + .../15-0-deprecate-sles-12sp2.yml | 1 + .../15-0-deprecation-versions-packagetype.yml | 1 + ...move-dependency-proxy-permissions-flag.yml | 1 + .../15-0-remove-package-pipelines-api.yml | 1 + ...-0-remove-pipelines-from-version-field.yml | 1 + ...geCommitMessageWithDescription-graphql.yml | 4 +- .../deprecation_omniauth-kerberos_gem.yml | 1 + .../disable_strict_host_key_checking.yml | 1 + data/deprecations/job_char_limit.yml | 26 + ...r_api_new_stale_status_breaking_change.yml | 13 + data/deprecations/serverless.yml | 1 + .../templates/_deprecation_template.md.erb | 1 + data/deprecations/templates/example.yml | 2 +- data/whats_new/202112200001_14_06.yml | 57 + db/fixtures/development/02_users.rb | 5 +- db/fixtures/development/32_crm.rb | 47 + ...211008043855_remove_notes_trigram_index.rb | 15 + ...11011140930_create_ci_namespace_mirrors.rb | 15 + ...0211011140931_create_ci_project_mirrors.rb | 12 + ...011140932_create_namespaces_sync_events.rb | 9 + ...11011141239_create_projects_sync_events.rb | 9 + ...11141242_create_namespaces_sync_trigger.rb | 37 + ...1011141243_create_projects_sync_trigger.rb | 37 + .../20211101165656_create_upload_states.rb | 32 + ...add_policy_idx_to_approval_project_rule.rb | 9 + ...1110014701_create_agent_activity_events.rb | 22 + ..._add_agent_activity_events_foreign_keys.rb | 35 + .../20211110092710_create_issue_emails.rb | 21 + ...te_merge_requests_compliance_violations.rb | 13 + ..._fk_compliance_violations_merge_request.rb | 18 + ...fk_compliance_violations_violating_user.rb | 18 + ...ash_commit_template_to_project_settings.rb | 9 + ...mmit_template_limit_to_project_settings.rb | 13 + ...12073413_change_package_index_on_corpus.rb | 19 + ...ate_incident_management_timeline_events.rb | 30 + ...t_management_timeline_events_on_project.rb | 15 + ...dent_management_timeline_events_on_user.rb | 15 + ...ent_management_timeline_events_on_issue.rb | 15 + ..._created_at_to_namespace_monthly_usages.rb | 17 + ...add_created_at_to_project_monthly_usage.rb | 17 + ...ment_timeline_events_on_updated_by_user.rb | 15 + ...211117174209_create_vulnerability_reads.rb | 24 + ...e_of_loose_fk_deleted_records_partition.rb | 9 + ...artition_from_loose_fk_trigger_function.rb | 40 + ...sh_key_lifetime_to_application_settings.rb | 7 + ...to_vulnerability_reads_on_vulnerability.rb | 15 + ...n_key_to_vulnerability_reads_on_project.rb | 15 + ...n_key_to_vulnerability_reads_on_scanner.rb | 15 + ...add_orignal_filename_to_ci_job_artifact.rb | 16 + ...19154221_create_pages_deployment_states.rb | 38 + ...est_report_requirement_issue_constraint.rb | 16 + ...pproval_count_to_protected_environments.rb | 7 + ...11119195201_create_deployment_approvals.rb | 13 + ...licy_idx_to_approval_merge_request_rule.rb | 9 + ...ser_foreign_key_to_deployment_approvals.rb | 15 + ..._iteration_cadences_start_date_nullable.rb | 7 + ...tic_objects_external_storage_auth_token.rb | 14 + ...35_add_sequence_column_to_sprints_table.rb | 14 + ...tic_objects_external_storage_auth_token.rb | 12 + ...tic_objects_external_storage_auth_token.rb | 31 + ...42200_add_encrypted_static_object_token.rb | 16 + ..._limit_to_encrypted_static_object_token.rb | 13 + ...11126204445_add_task_to_work_item_types.rb | 31 + ...ure_column_to_vulnerability_occurrences.rb | 7 + ...rences_migrated_to_new_structure_column.rb | 15 + ...dent_management_timeline_events_on_note.rb | 15 + ...d_uniqueness_for_evidence_occurrence_id.rb | 18 + ...e_subscriptions_to_application_settings.rb | 7 + ...20211201143042_create_lfs_object_states.rb | 32 + ...ent_foreign_key_to_deployment_approvals.rb | 15 + ...se_fk_deleted_records_to_dynamic_schema.rb | 17 + ...ages_build_infos_package_id_pipeline_id.rb | 18 + ..._index_snippets_on_project_id_and_title.rb | 15 + ...dex_on_created_at_where_active_is_false.rb | 15 + ...x_on_contacted_at_where_active_is_false.rb | 15 + ...equired_approval_count_check_constraint.rb | 15 + ..._add_executor_type_column_to_ci_runners.rb | 7 + ...130324_update_timelogs_spent_at_default.rb | 7 + ...mp_index_from_vulnerability_occurrences.rb | 15 + ...00_fix_ci_sources_pipelines_index_names.rb | 59 + ...ability_finding_signatures_for_findings.rb | 25 + ...243_schedule_delete_invalid_epic_issues.rb | 14 + ...11027043206_track_ci_pipeline_deletions.rb | 15 + ...20211027043229_track_ci_build_deletions.rb | 15 + ...4_consume_remaining_user_namespace_jobs.rb | 26 + ...emove_propagate_service_template_worker.rb | 11 + ...5220_remove_vulnerability_finding_links.rb | 21 + ...ll_constraint_to_security_findings_uuid.rb | 20 + ...mporary_index_on_security_findings_uuid.rb | 23 + ...schedule_drop_invalid_security_findings.rb | 25 + ...1_change_namespace_type_default_to_user.rb | 17 + ..._and_duplicate_vulnerabilities_findings.rb | 23 + ...814_migrate_remaining_u2f_registrations.rb | 26 + ...130836_drop_pages_deployments_builds_fk.rb | 22 + ...0211118194239_drop_invalid_remediations.rb | 25 + ...limit_to_job_artifact_original_filename.rb | 13 + ...01_improve_index_on_events_for_calendar.rb | 13 + ...migration_of_requirements_to_work_items.rb | 17 + ...2705_change_index_users_on_public_email.rb | 22 + ...0444_add_index_todos_project_id_user_id.rb | 15 + ...kfill_sequence_column_for_sprints_table.rb | 24 + ...130201100_track_deletions_in_namespaces.rb | 15 + ...11130201101_track_deletions_in_projects.rb | 15 + ...ters_applications_runners_ci_runners_fk.rb | 15 + ...02145237_add_todos_project_and_id_index.rb | 32 + ...x_to_projects_on_marked_for_deletion_at.rb | 15 + ...ate_calendar_events_index_synchronously.rb | 15 + ...074547_remove_old_calendar_events_index.rb | 18 + ..._cleanup_first_mentioned_in_commit_jobs.rb | 22 + ...ability_finding_signatures_for_findings.rb | 27 + ...09093636_track_ci_job_artifacts_deletes.rb | 15 + .../20211209093828_track_users_deletes.rb | 15 + ...23_track_external_pull_requests_deletes.rb | 15 + ...1209094222_track_merge_requests_deletes.rb | 15 + ...emove_vulnerability_finding_links_again.rb | 21 + ...tion_index_to_vulnerability_occurrences.rb | 18 + ...3102111_drop_ci_pipelines_mr_metrics_fk.rb | 15 + ..._schedule_update_timelogs_null_spent_at.rb | 23 + db/schema_migrations/20210713042000 | 1 + db/schema_migrations/20211008043855 | 1 + db/schema_migrations/20211011140930 | 1 + db/schema_migrations/20211011140931 | 1 + db/schema_migrations/20211011140932 | 1 + db/schema_migrations/20211011141239 | 1 + db/schema_migrations/20211011141242 | 1 + db/schema_migrations/20211011141243 | 1 + db/schema_migrations/20211022214523 | 1 + db/schema_migrations/20211023102243 | 1 + db/schema_migrations/20211027043206 | 1 + db/schema_migrations/20211027043229 | 1 + db/schema_migrations/20211101165656 | 1 + db/schema_migrations/20211101222614 | 1 + db/schema_migrations/20211103141403 | 1 + db/schema_migrations/20211104165220 | 1 + db/schema_migrations/20211108204736 | 1 + db/schema_migrations/20211110014701 | 1 + db/schema_migrations/20211110015252 | 1 + db/schema_migrations/20211110092710 | 1 + db/schema_migrations/20211110143306 | 1 + db/schema_migrations/20211110151320 | 1 + db/schema_migrations/20211110151350 | 1 + db/schema_migrations/20211111112425 | 1 + db/schema_migrations/20211111112639 | 1 + db/schema_migrations/20211111112713 | 1 + db/schema_migrations/20211111164025 | 1 + db/schema_migrations/20211111164047 | 1 + db/schema_migrations/20211112073413 | 1 + db/schema_migrations/20211115132613 | 1 + db/schema_migrations/20211115142803 | 1 + db/schema_migrations/20211115142847 | 1 + db/schema_migrations/20211115142911 | 1 + db/schema_migrations/20211115145107 | 1 + db/schema_migrations/20211115154103 | 1 + db/schema_migrations/20211116091751 | 1 + db/schema_migrations/20211116093739 | 1 + db/schema_migrations/20211116111644 | 1 + db/schema_migrations/20211117084814 | 1 + db/schema_migrations/20211117174209 | 1 + db/schema_migrations/20211118100959 | 1 + db/schema_migrations/20211118103439 | 1 + db/schema_migrations/20211118114228 | 1 + db/schema_migrations/20211118124537 | 1 + db/schema_migrations/20211118124628 | 1 + db/schema_migrations/20211118124650 | 1 + db/schema_migrations/20211118130836 | 1 + db/schema_migrations/20211118194239 | 1 + db/schema_migrations/20211119085015 | 1 + db/schema_migrations/20211119085036 | 1 + db/schema_migrations/20211119154221 | 1 + db/schema_migrations/20211119170805 | 1 + db/schema_migrations/20211119194024 | 1 + db/schema_migrations/20211119195201 | 1 + db/schema_migrations/20211122033501 | 1 + db/schema_migrations/20211122193948 | 1 + db/schema_migrations/20211122215001 | 1 + db/schema_migrations/20211123181236 | 1 + db/schema_migrations/20211123182614 | 1 + db/schema_migrations/20211124132319 | 1 + db/schema_migrations/20211124132705 | 1 + db/schema_migrations/20211125120444 | 1 + db/schema_migrations/20211126042235 | 1 + db/schema_migrations/20211126113029 | 1 + db/schema_migrations/20211126115449 | 1 + db/schema_migrations/20211126142200 | 1 + db/schema_migrations/20211126142354 | 1 + db/schema_migrations/20211126204445 | 1 + db/schema_migrations/20211129151155 | 1 + db/schema_migrations/20211129151832 | 1 + db/schema_migrations/20211130151724 | 1 + db/schema_migrations/20211130165043 | 1 + db/schema_migrations/20211130201100 | 1 + db/schema_migrations/20211130201101 | 1 + db/schema_migrations/20211130205719 | 1 + db/schema_migrations/20211201061733 | 1 + db/schema_migrations/20211201101541 | 1 + db/schema_migrations/20211201143042 | 1 + db/schema_migrations/20211202041233 | 1 + db/schema_migrations/20211202094944 | 1 + db/schema_migrations/20211202135508 | 1 + db/schema_migrations/20211202145237 | 1 + db/schema_migrations/20211203091642 | 1 + db/schema_migrations/20211204010826 | 1 + db/schema_migrations/20211206073851 | 1 + db/schema_migrations/20211206074547 | 1 + db/schema_migrations/20211207090503 | 1 + db/schema_migrations/20211207154413 | 1 + db/schema_migrations/20211207154414 | 1 + db/schema_migrations/20211207165508 | 1 + db/schema_migrations/20211208111425 | 1 + db/schema_migrations/20211208171402 | 1 + db/schema_migrations/20211209093636 | 1 + db/schema_migrations/20211209093828 | 1 + db/schema_migrations/20211209093923 | 1 + db/schema_migrations/20211209094222 | 1 + db/schema_migrations/20211210173137 | 1 + db/schema_migrations/20211213064821 | 1 + db/schema_migrations/20211213102111 | 1 + db/schema_migrations/20211213130324 | 1 + db/schema_migrations/20211214110307 | 1 + db/schema_migrations/20211215090620 | 1 + db/structure.sql | 681 ++- .../markdownlint-no-trailing-spaces.yml | 4 +- doc/.vale/gitlab/Dropdown.yml | 14 + doc/.vale/gitlab/ElementDescriptors.yml | 3 +- doc/.vale/gitlab/SubstitutionWarning.yml | 6 +- .../gitlab/{Acronyms.yml => Uppercase.yml} | 8 +- doc/.vale/gitlab/spelling-exceptions.txt | 2 +- doc/administration/audit_events.md | 17 +- doc/administration/auth/atlassian.md | 13 +- doc/administration/auth/authentiq.md | 14 +- doc/administration/auth/cognito.md | 28 +- doc/administration/auth/crowd.md | 12 +- doc/administration/auth/jwt.md | 22 +- doc/administration/auth/ldap/index.md | 102 +- .../auth/ldap/ldap-troubleshooting.md | 25 +- .../auth/ldap/ldap_synchronization.md | 4 +- doc/administration/auth/oidc.md | 179 +- doc/administration/cicd.md | 4 +- doc/administration/clusters/kas.md | 12 +- doc/administration/compliance.md | 2 +- doc/administration/database_load_balancing.md | 273 +- doc/administration/environment_variables.md | 1 + .../runbooks/planned_failover_multi_node.md | 18 +- .../runbooks/planned_failover_single_node.md | 6 +- doc/administration/geo/index.md | 33 +- .../geo/replication/configuration.md | 2 +- .../geo/replication/datatypes.md | 100 +- .../geo/replication/disable_geo.md | 2 +- doc/administration/geo/replication/faq.md | 2 + .../geo/replication/troubleshooting.md | 2 +- .../geo/replication/updating_the_geo_nodes.md | 9 - .../replication/version_specific_updates.md | 22 +- .../geo/secondary_proxy/index.md | 59 +- doc/administration/geo/setup/index.md | 1 + doc/administration/gitaly/configure_gitaly.md | 20 +- doc/administration/gitaly/index.md | 38 +- doc/administration/gitaly/praefect.md | 458 +- doc/administration/gitaly/recovery.md | 418 ++ doc/administration/gitaly/troubleshooting.md | 214 +- .../img/db_load_balancing_postgres_stats.png | Bin 21543 -> 0 bytes doc/administration/incoming_email.md | 20 +- doc/administration/index.md | 6 +- doc/administration/instance_limits.md | 44 +- doc/administration/instance_review.md | 2 +- doc/administration/integration/terminal.md | 2 +- doc/administration/job_artifacts.md | 164 +- doc/administration/lfs/index.md | 129 +- doc/administration/logs.md | 18 +- .../gitlab_self_monitoring_project/index.md | 5 +- .../monitoring/performance/performance_bar.md | 9 +- .../monitoring/prometheus/gitlab_metrics.md | 35 +- .../monitoring/prometheus/index.md | 8 +- doc/administration/nfs.md | 18 +- doc/administration/object_storage.md | 7 +- .../operations/extra_sidekiq_processes.md | 6 +- .../operations/moving_repositories.md | 7 +- doc/administration/operations/puma.md | 2 +- .../package_information/deprecated_os.md | 84 +- .../package_information/deprecation_policy.md | 26 +- .../package_information/index.md | 10 +- .../package_information/supported_os.md | 90 + .../packages/container_registry.md | 69 +- doc/administration/packages/index.md | 20 +- doc/administration/pages/index.md | 29 +- doc/administration/pages/source.md | 4 +- .../postgresql/database_load_balancing.md | 234 + .../postgresql/img/pg_ha_architecture.png | Bin 18308 -> 0 bytes doc/administration/postgresql/pgbouncer.md | 2 +- .../postgresql/replication_and_failover.md | 216 +- doc/administration/raketasks/maintenance.md | 2 +- doc/administration/raketasks/storage.md | 12 +- .../raketasks/uploads/migrate.md | 22 + doc/administration/read_only_gitlab.md | 8 +- doc/administration/redis/troubleshooting.md | 12 + .../reference_architectures/10k_users.md | 158 +- .../reference_architectures/1k_users.md | 53 +- .../reference_architectures/25k_users.md | 160 +- .../reference_architectures/2k_users.md | 56 +- .../reference_architectures/3k_users.md | 195 +- .../reference_architectures/50k_users.md | 162 +- .../reference_architectures/5k_users.md | 183 +- .../reference_architectures/index.md | 35 +- .../troubleshooting.md | 13 +- .../repository_storage_types.md | 4 +- doc/administration/terraform_state.md | 34 +- .../troubleshooting/elasticsearch.md | 2 +- .../gitlab_rails_cheat_sheet.md | 68 +- .../troubleshooting/group_saml_scim.md | 4 + .../img/okta_setting_username.png | Bin 0 -> 69815 bytes .../img/sidekiq_flamegraph.png | Bin 0 -> 54473 bytes .../navigating_gitlab_via_rails_console.md | 22 +- doc/administration/troubleshooting/sidekiq.md | 35 + .../troubleshooting/tracing_correlation_id.md | 7 +- doc/administration/uploads.md | 74 +- doc/api/api_resources.md | 281 +- doc/api/audit_events.md | 6 +- doc/api/branches.md | 10 +- doc/api/deploy_tokens.md | 4 +- doc/api/discussions.md | 2 +- doc/api/dora4_project_analytics.md | 3 - doc/api/epics.md | 35 +- doc/api/error_tracking.md | 8 +- doc/api/feature_flag_user_lists.md | 4 +- doc/api/geo_nodes.md | 76 +- doc/api/graphql/index.md | 239 +- doc/api/graphql/reference/index.md | 240 +- doc/api/graphql/removed_items.md | 8 +- doc/api/group_import_export.md | 2 +- doc/api/group_labels.md | 10 +- doc/api/groups.md | 166 +- doc/api/import.md | 2 +- doc/api/index.md | 17 +- doc/api/instance_clusters.md | 4 - doc/api/invitations.md | 5 +- doc/api/issues_statistics.md | 6 +- doc/api/job_artifacts.md | 1 + doc/api/jobs.md | 15 +- doc/api/labels.md | 12 +- doc/api/managed_licenses.md | 11 +- doc/api/members.md | 94 +- doc/api/merge_request_approvals.md | 13 +- doc/api/merge_request_context_commits.md | 23 +- doc/api/merge_requests.md | 22 +- doc/api/milestones.md | 66 +- doc/api/namespaces.md | 2 +- doc/api/notes.md | 110 +- doc/api/oauth2.md | 10 +- doc/api/packages/nuget.md | 9 +- doc/api/personal_access_tokens.md | 6 +- doc/api/pipelines.md | 14 +- doc/api/project_badges.md | 2 +- doc/api/project_clusters.md | 1 - doc/api/project_import_export.md | 54 +- doc/api/project_level_variables.md | 10 +- doc/api/project_snippets.md | 44 +- doc/api/project_statistics.md | 2 +- doc/api/project_templates.md | 4 +- doc/api/project_vulnerabilities.md | 6 +- doc/api/projects.md | 48 +- doc/api/protected_branches.md | 38 +- doc/api/protected_environments.md | 12 +- doc/api/repositories.md | 60 +- doc/api/repository_files.md | 102 +- doc/api/resource_access_tokens.md | 2 +- doc/api/resource_groups.md | 5 +- doc/api/services.md | 9 - doc/api/settings.md | 93 +- doc/api/status_checks.md | 2 +- doc/api/topics.md | 17 +- doc/api/users.md | 127 +- doc/api/v3_to_v4.md | 2 +- doc/architecture/blueprints/ci_scale/index.md | 69 +- .../cloud_native_gitlab_pages/index.md | 2 +- .../index.md | 2 +- .../index.md | 4 +- .../index.md | 8 +- .../blueprints/object_storage/index.md | 220 + doc/ci/caching/index.md | 2 +- doc/ci/ci_cd_for_external_repos/index.md | 17 +- doc/ci/directed_acyclic_graph/index.md | 6 +- doc/ci/docker/using_docker_build.md | 2 +- doc/ci/environments/deployment_safety.md | 8 +- doc/ci/environments/index.md | 73 +- doc/ci/environments/protected_environments.md | 19 +- .../index.md | 3 +- doc/ci/examples/semantic-release.md | 2 +- doc/ci/git_submodules.md | 2 +- doc/ci/jobs/ci_job_token.md | 12 +- doc/ci/jobs/job_control.md | 14 +- doc/ci/large_repositories/index.md | 4 +- doc/ci/metrics_reports.md | 2 +- doc/ci/migration/jenkins.md | 12 +- doc/ci/pipelines/job_artifacts.md | 206 +- doc/ci/pipelines/merge_request_pipelines.md | 4 +- doc/ci/pipelines/merge_trains.md | 7 +- doc/ci/pipelines/multi_project_pipelines.md | 2 +- doc/ci/pipelines/parent_child_pipelines.md | 7 +- doc/ci/pipelines/pipeline_architectures.md | 4 +- .../pipelines/pipelines_for_merged_results.md | 4 + doc/ci/pipelines/settings.md | 4 +- doc/ci/resource_groups/index.md | 2 +- .../runners/build_cloud/linux_build_cloud.md | 4 +- .../runners/build_cloud/macos/environment.md | 4 +- .../runners/build_cloud/macos_build_cloud.md | 4 +- .../build_cloud/windows_build_cloud.md | 4 +- doc/ci/runners/configure_runners.md | 10 +- doc/ci/runners/index.md | 6 +- .../runner_cloud/linux_runner_cloud.md | 187 +- .../runners/runner_cloud/macos/environment.md | 44 +- .../runner_cloud/macos_runner_cloud.md | 63 +- .../runner_cloud/windows_runner_cloud.md | 156 +- doc/ci/runners/saas/linux_saas_runner.md | 188 + doc/ci/runners/saas/macos/environment.md | 43 + doc/ci/runners/saas/macos_saas_runner.md | 63 + doc/ci/runners/saas/windows_saas_runner.md | 155 + doc/ci/secrets/index.md | 5 +- doc/ci/services/gitlab.md | 2 +- doc/ci/test_cases/index.md | 4 + doc/ci/triggers/img/triggers_page.png | Bin 20857 -> 0 bytes doc/ci/triggers/index.md | 268 +- doc/ci/troubleshooting.md | 2 +- doc/ci/unit_test_reports.md | 6 +- doc/ci/variables/index.md | 27 +- doc/ci/variables/predefined_variables.md | 8 +- doc/ci/yaml/artifacts_reports.md | 304 + doc/ci/yaml/includes.md | 2 +- doc/ci/yaml/index.md | 5419 ++++++++--------- doc/ci/yaml/script.md | 4 +- doc/ci/yaml/workflow.md | 2 +- doc/development/adding_database_indexes.md | 4 +- doc/development/api_graphql_styleguide.md | 15 +- doc/development/application_slis/index.md | 2 +- doc/development/architecture.md | 10 +- doc/development/audit_event_guide/index.md | 11 + doc/development/backend/ruby_style_guide.md | 2 +- doc/development/background_migrations.md | 13 +- doc/development/cascading_settings.md | 2 +- doc/development/changelog.md | 2 +- .../cicd_reference_documentation_guide.md | 223 +- doc/development/cicd/templates.md | 2 +- doc/development/code_review.md | 2 +- doc/development/contributing/index.md | 2 +- .../contributing/merge_request_workflow.md | 2 +- doc/development/contributing/style_guides.md | 13 +- doc/development/dangerbot.md | 2 +- .../database/loose_foreign_keys.md | 139 +- .../database/multiple_databases.md | 106 +- doc/development/database_debugging.md | 2 +- .../deprecation_guidelines/index.md | 4 +- .../documentation/feature_flags.md | 4 +- .../img/manual_build_docs_v14_3.png | Bin 14855 -> 0 bytes .../img/manual_build_docs_v14_6.png | Bin 0 -> 26853 bytes .../documentation/restful_api_styleguide.md | 45 +- doc/development/documentation/review_apps.md | 2 +- .../site_architecture/deployment_process.md | 8 +- doc/development/documentation/structure.md | 2 +- .../documentation/styleguide/img/callouts.png | Bin 0 -> 4875 bytes .../documentation/styleguide/index.md | 56 +- .../documentation/styleguide/word_list.md | 311 +- doc/development/documentation/workflow.md | 96 +- doc/development/ee_features.md | 42 + doc/development/event_tracking/backend.md | 9 - doc/development/event_tracking/frontend.md | 9 - doc/development/event_tracking/index.md | 9 - .../experiment_guide/gitlab_experiment.md | 22 +- doc/development/experiment_guide/index.md | 8 +- doc/development/fe_guide/event_tracking.md | 9 - doc/development/fe_guide/graphql.md | 113 +- doc/development/fe_guide/haml.md | 8 + doc/development/fe_guide/vue.md | 6 +- doc/development/fe_guide/vue3_migration.md | 2 +- doc/development/feature_flags/controls.md | 24 +- doc/development/features_inside_dot_gitlab.md | 2 +- doc/development/filtering_by_label.md | 6 +- doc/development/go_guide/go_upgrade.md | 8 +- doc/development/go_guide/index.md | 12 +- .../graphql_guide/authorization.md | 5 + doc/development/graphql_guide/index.md | 1 + doc/development/graphql_guide/monitoring.md | 89 + doc/development/i18n/externalization.md | 12 +- doc/development/i18n/index.md | 6 +- doc/development/i18n/merging_translations.md | 32 +- doc/development/i18n/translation.md | 10 +- doc/development/image_scaling.md | 4 +- doc/development/index.md | 5 +- doc/development/integrations/codesandbox.md | 2 +- doc/development/integrations/secure.md | 2 +- doc/development/interacting_components.md | 2 +- doc/development/internal_api/index.md | 26 +- .../licensed_feature_availability.md | 2 +- .../merge_request_performance_guidelines.md | 8 +- .../multi_version_compatibility.md | 6 +- .../new_fe_guide/modules/widget_extensions.md | 23 + doc/development/performance.md | 4 +- doc/development/pipelines.md | 18 +- doc/development/policies.md | 4 +- .../product_analytics/event_dictionary.md | 9 - doc/development/product_analytics/index.md | 9 - doc/development/rails_update.md | 2 +- doc/development/reactive_caching.md | 2 +- doc/development/ruby_upgrade.md | 6 +- doc/development/scalability.md | 3 +- doc/development/secure_coding_guidelines.md | 4 +- doc/development/service_ping/dictionary.md | 4 - doc/development/service_ping/implement.md | 6 +- doc/development/service_ping/index.md | 122 +- .../service_ping/metrics_dictionary.md | 16 +- .../service_ping/metrics_lifecycle.md | 86 +- doc/development/session.md | 6 +- .../shell_scripting_guide/index.md | 2 +- doc/development/sidekiq_style_guide.md | 15 +- doc/development/snowplow/implementation.md | 49 +- doc/development/snowplow/index.md | 15 +- doc/development/snowplow/schemas.md | 1 + doc/development/sql.md | 3 + doc/development/stage_group_dashboards.md | 4 +- .../testing_guide/best_practices.md | 79 +- .../end_to_end/best_practices.md | 18 +- .../testing_guide/end_to_end/feature_flags.md | 51 + .../testing_guide/end_to_end/resources.md | 105 +- .../end_to_end/rspec_metadata_tests.md | 3 +- ...unning_tests_that_require_special_setup.md | 6 +- doc/development/testing_guide/flaky_tests.md | 25 +- .../testing_guide/frontend_testing.md | 39 +- .../img/review-app-parent-pipeline.png | Bin 136842 -> 42721 bytes doc/development/testing_guide/review_apps.md | 50 +- .../testing_guide/testing_levels.md | 10 +- doc/development/usage_ping/dictionary.md | 4 - doc/development/work_items_widgets.md | 114 + doc/gitlab-basics/index.md | 4 +- doc/install/aws/gitlab_hybrid_on_aws.md | 54 +- doc/install/aws/gitlab_sre_for_aws.md | 6 +- doc/install/aws/index.md | 36 + doc/install/aws/manual_install_aws.md | 32 +- doc/install/digitaloceandocker.md | 5 +- doc/install/docker.md | 17 +- doc/install/index.md | 1 + doc/install/installation.md | 8 +- doc/install/openshift_and_gitlab/index.md | 2 +- doc/install/pivotal/index.md | 19 +- doc/install/relative_url.md | 2 +- doc/install/requirements.md | 7 +- doc/integration/akismet.md | 8 +- doc/integration/auth0.md | 15 +- doc/integration/azure.md | 26 +- doc/integration/bitbucket.md | 12 +- doc/integration/cas.md | 18 +- doc/integration/datadog.md | 10 +- doc/integration/ding_talk.md | 10 +- doc/integration/elasticsearch.md | 58 +- doc/integration/facebook.md | 11 +- doc/integration/github.md | 39 +- doc/integration/gitlab.md | 20 +- doc/integration/gitpod.md | 8 +- doc/integration/google.md | 10 +- doc/integration/img/ding_talk_menu.png | Bin 66465 -> 22685 bytes .../img/omniauth_providers_v_14_6.png | Bin 0 -> 12165 bytes doc/integration/index.md | 2 +- doc/integration/jenkins.md | 11 + doc/integration/jira/connect-app.md | 2 +- doc/integration/jira/dvcs.md | 19 + .../jira/img/open_jira_issues_list_v13.2.png | Bin 90251 -> 0 bytes .../jira/img/open_jira_issues_list_v14_6.png | Bin 0 -> 89984 bytes doc/integration/jira/issues.md | 6 +- .../mattermost/gitlab-mattermost.msc | 28 - .../mattermost/img/gitlab-mattermost.png | Bin 26656 -> 0 bytes doc/integration/mattermost/index.md | 62 +- doc/integration/oauth2_generic.md | 119 +- doc/integration/omniauth.md | 88 +- doc/integration/openid_connect_provider.md | 11 + doc/integration/recaptcha.md | 21 +- doc/integration/salesforce.md | 8 +- doc/integration/saml.md | 117 +- doc/integration/twitter.md | 8 +- doc/integration/vault.md | 4 +- doc/intro/index.md | 9 - doc/operations/error_tracking.md | 2 +- doc/operations/feature_flags.md | 16 +- .../incident_management/integrations.md | 6 +- .../metrics/dashboards/yaml_number_format.md | 2 +- doc/policy/maintenance.md | 17 +- doc/push_rules/push_rules.md | 22 +- doc/raketasks/backup_restore.md | 20 +- doc/raketasks/index.md | 1 + doc/raketasks/user_management.md | 4 + doc/security/asset_proxy.md | 2 +- doc/security/reset_user_password.md | 153 +- doc/security/webhooks.md | 8 +- doc/subscriptions/bronze_starter.md | 4 +- doc/subscriptions/gitlab_com/index.md | 102 +- doc/subscriptions/index.md | 9 +- doc/subscriptions/self_managed/index.md | 24 + doc/system_hooks/system_hooks.md | 6 +- doc/topics/autodevops/customize.md | 6 +- doc/topics/autodevops/index.md | 3 +- .../multiple_clusters_auto_devops.md | 2 +- doc/topics/autodevops/stages.md | 2 +- doc/topics/autodevops/upgrading_postgresql.md | 2 +- doc/topics/cron/index.md | 7 +- doc/topics/git/cherry_picking.md | 2 +- doc/topics/git/lfs/index.md | 2 +- doc/topics/plan_and_track.md | 17 +- doc/update/deprecations.md | 125 +- doc/update/index.md | 171 +- doc/update/package/index.md | 4 +- doc/update/plan_your_upgrade.md | 8 +- doc/update/upgrading_from_source.md | 2 +- .../upgrading_postgresql_using_slony.md | 6 +- doc/update/zero_downtime.md | 80 +- .../admin_area/analytics/dev_ops_report.md | 42 +- doc/user/admin_area/analytics/usage_trends.md | 5 +- doc/user/admin_area/approving_users.md | 9 - doc/user/admin_area/index.md | 12 +- doc/user/admin_area/moderate_users.md | 14 +- .../settings/account_and_limit_settings.md | 111 +- .../settings/continuous_integration.md | 9 +- .../settings/files_api_rate_limits.md | 12 +- .../admin_area/settings/gitaly_timeouts.md | 2 +- .../visibility_and_access_controls.md | 7 +- doc/user/analytics/ci_cd_analytics.md | 2 +- ...product_analytics_commits_per_mr_v14_4.png | Bin 135480 -> 35894 bytes ...uctivity_analytics_time_to_merge_v14_4.png | Bin 96144 -> 21953 bytes ...productivity_analytics_trendline_v14_4.png | Bin 47250 -> 13089 bytes doc/user/analytics/index.md | 28 +- doc/user/analytics/productivity_analytics.md | 14 +- doc/user/analytics/value_stream_analytics.md | 14 + .../application_security/api_fuzzing/index.md | 25 +- .../cluster_image_scanning/index.md | 19 +- .../configuration/index.md | 4 +- .../container_scanning/index.md | 203 +- .../coverage_fuzzing/index.md | 2 +- .../dast/browser_based.md | 19 +- .../dast/checks/1004.1.md | 4 +- .../application_security/dast/checks/16.1.md | 2 +- .../application_security/dast/checks/16.3.md | 4 +- .../application_security/dast/checks/16.4.md | 2 +- .../application_security/dast/checks/16.5.md | 4 +- .../application_security/dast/checks/16.6.md | 37 + .../application_security/dast/checks/614.1.md | 2 +- .../application_security/dast/checks/693.1.md | 4 +- .../application_security/dast/checks/index.md | 3 +- doc/user/application_security/dast/index.md | 56 +- .../application_security/dast_api/index.md | 21 +- .../dependency_list/index.md | 13 +- .../dependency_scanning/analyzers.md | 9 +- .../dependency_scanning/index.md | 81 +- .../iac_scanning/index.md | 14 +- doc/user/application_security/index.md | 6 +- .../img/security_policy_project_v14_3.png | Bin 29763 -> 0 bytes .../img/security_policy_project_v14_6.png | Bin 0 -> 5574 bytes .../application_security/policies/index.md | 44 +- .../application_security/sast/analyzers.md | 2 +- doc/user/application_security/sast/index.md | 392 +- .../secret_detection/index.md | 44 +- .../img/pipeline_security_dashboard_v14_4.png | Bin 126412 -> 44152 bytes .../security_dashboard/index.md | 4 + .../operational_vulnerability_tab_v14_6.png | Bin 0 -> 20742 bytes .../vulnerability_report/index.md | 12 +- doc/user/asciidoc.md | 7 +- doc/user/award_emojis.md | 12 +- doc/user/clusters/agent/ci_cd_tunnel.md | 8 +- doc/user/clusters/agent/index.md | 54 +- doc/user/clusters/agent/install/index.md | 97 +- doc/user/clusters/agent/repository.md | 22 +- doc/user/clusters/cost_management.md | 3 +- doc/user/clusters/environments.md | 4 +- .../gitlab_agent_activity_events_v14_6.png | Bin 0 -> 56049 bytes doc/user/clusters/integrations.md | 6 +- doc/user/clusters/management_project.md | 2 +- .../clusters/management_project_template.md | 6 +- .../migrating_from_gma_to_project_template.md | 2 +- .../compliance/compliance_dashboard/index.md | 9 - .../img/policies_maintainer_edit_v14_3.png | Bin 25383 -> 26480 bytes .../compliance/license_compliance/index.md | 32 +- doc/user/crm/crm_contacts_v14_6.png | Bin 0 -> 19864 bytes doc/user/crm/crm_organizations_v14_6.png | Bin 0 -> 8244 bytes doc/user/crm/index.md | 141 + doc/user/crm/issue_crm_contacts_v14_6.png | Bin 0 -> 6703 bytes doc/user/discussions/index.md | 41 +- doc/user/gitlab_com/index.md | 27 +- doc/user/group/clusters/index.md | 2 +- doc/user/group/custom_project_templates.md | 52 +- doc/user/group/devops_adoption/index.md | 123 +- doc/user/group/epics/epic_boards.md | 4 + doc/user/group/epics/index.md | 12 +- doc/user/group/epics/manage_epics.md | 2 +- doc/user/group/index.md | 42 +- doc/user/group/iterations/index.md | 36 +- .../epic-view-ancestors-in-sidebar_v14_6.png | Bin 0 -> 24780 bytes .../img/hierarchy_with_multi_level_epics.png | Bin 0 -> 9342 bytes ...ssue-view-parent-epic-in-sidebar_v14_6.png | Bin 0 -> 25077 bytes doc/user/group/planning_hierarchy/index.md | 67 + doc/user/group/roadmap/index.md | 2 +- doc/user/group/saml_sso/index.md | 59 +- doc/user/group/saml_sso/scim_setup.md | 27 +- doc/user/group/settings/import_export.md | 28 +- .../group/value_stream_analytics/index.md | 6 +- doc/user/img/award_emoji_comment_awarded.png | Bin 19159 -> 0 bytes doc/user/img/award_emoji_comment_picker.png | Bin 72847 -> 0 bytes doc/user/img/award_emoji_select.png | Bin 17554 -> 0 bytes doc/user/img/award_emoji_select_v14_6.png | Bin 0 -> 17252 bytes .../infrastructure/clusters/connect/index.md | 2 +- .../clusters/deploy/inventory_object.md | 14 +- doc/user/infrastructure/clusters/index.md | 9 +- doc/user/infrastructure/iac/index.md | 9 +- doc/user/infrastructure/iac/mr_integration.md | 4 +- .../infrastructure/iac/terraform_state.md | 8 +- doc/user/infrastructure/index.md | 4 +- doc/user/infrastructure/mr_integration.md | 9 - doc/user/infrastructure/terraform_state.md | 9 - doc/user/instance/clusters/index.md | 2 +- doc/user/markdown.md | 65 +- doc/user/operations_dashboard/index.md | 4 +- .../packages/composer_repository/index.md | 73 +- doc/user/packages/conan_repository/index.md | 23 + doc/user/packages/container_registry/index.md | 15 +- doc/user/packages/dependency_proxy/index.md | 19 +- doc/user/packages/go_proxy/index.md | 4 +- doc/user/packages/helm_repository/index.md | 22 +- doc/user/packages/npm_registry/index.md | 14 +- doc/user/packages/nuget_repository/index.md | 68 +- doc/user/packages/package_registry/index.md | 2 +- .../terraform_module_registry/index.md | 10 +- doc/user/permissions.md | 4 +- doc/user/profile/account/delete_account.md | 13 +- .../account/two_factor_authentication.md | 53 +- doc/user/profile/active_sessions.md | 8 +- doc/user/profile/index.md | 34 +- doc/user/profile/notifications.md | 32 +- doc/user/profile/personal_access_tokens.md | 8 +- doc/user/profile/preferences.md | 6 +- .../profile/unknown_sign_in_notification.md | 3 +- doc/user/project/clusters/add_eks_clusters.md | 6 +- .../project/clusters/add_existing_cluster.md | 2 +- doc/user/project/clusters/add_gke_clusters.md | 4 +- .../project/clusters/add_remove_clusters.md | 8 +- doc/user/project/clusters/cluster_access.md | 2 +- .../project/clusters/deploy_to_cluster.md | 2 +- .../clusters/gitlab_managed_clusters.md | 2 +- doc/user/project/clusters/index.md | 2 +- .../clusters/multiple_kubernetes_clusters.md | 2 +- .../protect/container_host_security/index.md | 2 +- .../container_network_security/index.md | 2 +- .../quick_start_guide.md | 5 +- doc/user/project/clusters/serverless/aws.md | 2 +- doc/user/project/clusters/serverless/index.md | 2 +- doc/user/project/code_owners.md | 24 +- doc/user/project/description_templates.md | 2 +- doc/user/project/import/github.md | 7 +- doc/user/project/import/index.md | 2 +- doc/user/project/index.md | 2 +- doc/user/project/insights/index.md | 2 +- doc/user/project/integrations/asana.md | 2 +- doc/user/project/integrations/bamboo.md | 85 +- doc/user/project/integrations/github.md | 50 +- .../project/integrations/hangouts_chat.md | 4 +- .../integrations/img/webhook_testing.png | Bin 96374 -> 30732 bytes doc/user/project/integrations/irker.md | 2 +- doc/user/project/integrations/mattermost.md | 4 +- .../project/integrations/pivotal_tracker.md | 2 +- doc/user/project/integrations/slack.md | 4 +- doc/user/project/issue_board.md | 112 +- .../project/issues/confidential_issues.md | 7 +- doc/user/project/issues/csv_import.md | 4 +- doc/user/project/issues/design_management.md | 2 +- .../issues/img/button_close_issue_v13_6.png | Bin 23033 -> 0 bytes .../issues/img/comment-or-discussion.png | Bin 4530 -> 0 bytes .../issues/img/create_mr_from_issue.png | Bin 8632 -> 0 bytes .../issues/img/delete_issue_v13_11.png | Bin 38915 -> 0 bytes .../issues/img/disable_issue_auto_close.png | Bin 15119 -> 0 bytes .../img/issue_activity_sort_order_v12_10.png | Bin 11646 -> 0 bytes .../issues/img/issue_type_change_v13_12.png | Bin 16859 -> 0 bytes .../issues/img/issues_main_view_numbered.png | Bin 107528 -> 0 bytes .../img/merge_request_closes_issue_v13_11.png | Bin 15436 -> 0 bytes .../issues/img/new_issue_from_email.png | Bin 4259 -> 0 bytes .../issues/img/new_issue_from_issue_board.png | Bin 20063 -> 0 bytes .../img/new_issue_from_open_issue_v13_6.png | Bin 25667 -> 0 bytes .../img/new_issue_from_projects_dashboard.png | Bin 9674 -> 0 bytes .../img/new_issue_from_tracker_list.png | Bin 19632 -> 0 bytes .../project/issues/img/new_issue_v13_1.png | Bin 69721 -> 0 bytes ..._from_group_level_issue_tracker_v13_11.png | Bin 8863 -> 0 bytes .../project/issues/img/show-all-activity.png | Bin 4501 -> 0 bytes .../project/issues/img/sidebar_move_issue.png | Bin 50003 -> 0 bytes .../project/issues/img/similar_issues.png | Bin 25390 -> 0 bytes doc/user/project/issues/index.md | 13 +- .../project/issues/issue_data_and_actions.md | 316 +- doc/user/project/issues/managing_issues.md | 683 ++- .../issues/multiple_assignees_for_issues.md | 3 +- doc/user/project/issues/related_issues.md | 2 +- .../project/issues/sorting_issue_lists.md | 2 +- doc/user/project/labels.md | 14 +- doc/user/project/members/index.md | 25 +- .../members/share_project_with_groups.md | 24 +- .../project/merge_requests/approvals/index.md | 2 +- .../project/merge_requests/approvals/rules.md | 2 +- .../merge_requests/approvals/settings.md | 2 +- .../browser_performance_testing.md | 4 +- .../merge_requests/cherry_pick_changes.md | 4 +- .../project/merge_requests/code_quality.md | 4 +- .../merge_requests/commit_templates.md | 81 +- .../project/merge_requests/confidential.md | 2 +- .../merge_requests/creating_merge_requests.md | 6 + .../project/merge_requests/getting_started.md | 18 +- .../merge_commit_message_template_v14_5.png | Bin 19690 -> 0 bytes doc/user/project/merge_requests/index.md | 2 +- .../load_performance_testing.md | 6 +- .../project/merge_requests/reviews/index.md | 4 +- .../merge_requests/reviews/suggestions.md | 2 +- .../merge_requests/squash_and_merge.md | 10 +- .../project/merge_requests/status_checks.md | 2 +- .../test_coverage_visualization.md | 9 +- doc/user/project/merge_requests/versions.md | 3 +- doc/user/project/milestones/index.md | 2 +- .../dns_concepts.md | 3 + .../index.md | 23 +- .../lets_encrypt_integration.md | 2 +- .../pages_forked_sample_project.md | 10 +- .../getting_started/pages_from_scratch.md | 2 +- .../pages/lets_encrypt_for_gitlab_pages.md | 166 +- doc/user/project/pages/redirects.md | 33 +- doc/user/project/quick_actions.md | 14 +- .../releases/img/feature_count_v14_6.png | Bin 0 -> 24569 bytes doc/user/project/releases/index.md | 177 +- doc/user/project/releases/release_cli.md | 3 +- .../project/repository/branches/default.md | 4 +- .../project/repository/forking_workflow.md | 10 +- .../repository/gpg_signed_commits/index.md | 17 +- doc/user/project/repository/index.md | 27 +- .../img/jupyter_notebook_diff_v14_5.png | Bin 249380 -> 71585 bytes doc/user/project/repository/web_editor.md | 10 +- .../repository/x509_signed_commits/index.md | 2 +- doc/user/project/requirements/index.md | 6 +- doc/user/project/service_desk.md | 7 +- doc/user/project/settings/import_export.md | 5 +- doc/user/project/settings/index.md | 37 +- .../project/settings/project_access_tokens.md | 224 +- doc/user/project/static_site_editor/index.md | 28 +- doc/user/project/time_tracking.md | 2 +- doc/user/project/web_ide/index.md | 2 +- .../project/wiki/img/content_editor_v14.0.png | Bin 13771 -> 0 bytes .../project/wiki/img/content_editor_v14.6.png | Bin 0 -> 15534 bytes .../wiki/img/use_new_editor_button_v14.0.png | Bin 16719 -> 0 bytes .../wiki/img/use_new_editor_button_v14.6.png | Bin 0 -> 11192 bytes doc/user/project/wiki/index.md | 19 +- doc/user/project/working_with_projects.md | 597 +- doc/user/report_abuse.md | 57 +- doc/user/search/advanced_search.md | 16 +- .../search/img/dashboard_links_v13_11.png | Bin 2798 -> 0 bytes doc/user/search/img/dashboard_links_v14_6.png | Bin 0 -> 1792 bytes ...ilter_approved_by_merge_requests_v13_0.png | Bin 31363 -> 0 bytes ...ilter_approved_by_merge_requests_v14_6.png | Bin 0 -> 8326 bytes .../img/filter_approver_merge_requests.png | Bin 30525 -> 0 bytes .../filter_approver_merge_requests_v14_6.png | Bin 0 -> 7841 bytes ...filtering_merge_requests_by_date_v13_6.png | Bin 33790 -> 0 bytes ...filtering_merge_requests_by_date_v14_6.png | Bin 0 -> 4318 bytes ...ng_merge_requests_by_environment_v13_6.png | Bin 22802 -> 0 bytes ...ng_merge_requests_by_environment_v14_6.png | Bin 0 -> 8053 bytes doc/user/search/img/issue_search_by_term.png | Bin 35648 -> 0 bytes .../search/img/issue_search_filter_v12_7.png | Bin 64161 -> 0 bytes .../search/img/issues_assigned_to_you.png | Bin 19706 -> 0 bytes .../search/img/issues_filter_none_any.png | Bin 27717 -> 0 bytes .../search/img/issues_mrs_shortcut_v14_4.png | Bin 6741 -> 0 bytes .../search/img/issues_mrs_shortcut_v14_6.png | Bin 0 -> 5535 bytes doc/user/search/img/project_search.png | Bin 42139 -> 0 bytes doc/user/search/index.md | 63 +- doc/user/snippets.md | 2 +- doc/user/tasks.md | 9 +- doc/user/todos.md | 2 +- doc/user/workspace/index.md | 8 + fixtures/emojis/aliases.json | 2 + .../metric_definition.yml | 1 + jest.config.base.js | 8 +- jest.config.integration.js | 1 + lib/api/admin/plan_limits.rb | 1 + lib/api/ci/helpers/runner.rb | 16 +- lib/api/ci/pipelines.rb | 2 +- lib/api/ci/runner.rb | 4 +- lib/api/commit_statuses.rb | 5 +- lib/api/composer_packages.rb | 10 +- lib/api/concerns/packages/conan_endpoints.rb | 17 +- lib/api/concerns/packages/npm_endpoints.rb | 4 +- lib/api/discussions.rb | 7 + lib/api/entities/changelog.rb | 9 + lib/api/entities/ci/job_basic.rb | 1 + lib/api/entities/ci/pipeline.rb | 4 +- lib/api/entities/ci/pipeline_basic.rb | 2 +- lib/api/entities/ci/runner.rb | 2 +- lib/api/entities/commit_signature.rb | 4 +- lib/api/entities/issue_basic.rb | 2 +- lib/api/entities/personal_access_token.rb | 2 +- lib/api/entities/plan_limit.rb | 1 + lib/api/entities/project.rb | 1 + .../project_import_failed_relation.rb | 1 + lib/api/entities/project_import_status.rb | 7 + lib/api/group_export.rb | 4 +- lib/api/groups.rb | 24 +- lib/api/helpers/label_helpers.rb | 6 +- lib/api/helpers/members_helpers.rb | 3 + lib/api/helpers/packages/conan/api_helpers.rb | 15 + lib/api/helpers/projects_helpers.rb | 7 +- lib/api/helpers/rate_limiter.rb | 27 +- lib/api/invitations.rb | 1 - lib/api/issues.rb | 8 +- lib/api/lint.rb | 4 +- lib/api/members.rb | 2 +- lib/api/merge_request_diffs.rb | 2 +- lib/api/merge_requests.rb | 30 +- lib/api/notes.rb | 7 +- lib/api/project_export.rb | 4 +- lib/api/project_import.rb | 6 +- lib/api/projects.rb | 2 +- lib/api/repositories.rb | 77 +- lib/api/resource_label_events.rb | 2 +- lib/api/resource_milestone_events.rb | 2 +- lib/api/resource_state_events.rb | 2 +- lib/api/search.rb | 4 + lib/api/settings.rb | 1 - lib/api/suggestions.rb | 4 +- lib/api/terraform/state.rb | 7 + lib/api/topics.rb | 2 + lib/api/v3/github.rb | 2 - lib/api/validations/types/workhorse_file.rb | 1 + lib/banzai/filter/base_sanitization_filter.rb | 6 +- lib/banzai/filter/external_link_filter.rb | 2 + lib/banzai/filter/footnote_filter.rb | 37 +- .../issuable_reference_expansion_filter.rb | 92 + lib/banzai/filter/issuable_state_filter.rb | 66 - .../filter/markdown_engines/common_mark.rb | 8 +- .../filter/markdown_post_escape_filter.rb | 2 +- lib/banzai/filter/math_filter.rb | 2 +- lib/banzai/filter/plantuml_filter.rb | 2 +- .../references/abstract_reference_filter.rb | 2 + .../filter/references/reference_cache.rb | 14 +- .../filter/references/reference_filter.rb | 4 +- lib/banzai/filter/repository_link_filter.rb | 2 +- lib/banzai/filter/sanitization_filter.rb | 9 +- lib/banzai/filter/syntax_highlight_filter.rb | 8 +- lib/banzai/pipeline/post_process_pipeline.rb | 2 +- lib/bulk_imports/clients/http.rb | 2 +- .../common/pipelines/badges_pipeline.rb | 44 + .../common/pipelines/uploads_pipeline.rb | 68 +- .../common/pipelines/wiki_pipeline.rb | 21 +- .../rest/get_badges_query.rb | 5 +- .../groups/pipelines/badges_pipeline.rb | 32 - .../groups/pipelines/group_avatar_pipeline.rb | 49 - lib/bulk_imports/groups/stage.rb | 10 +- lib/bulk_imports/ndjson_pipeline.rb | 9 +- .../projects/graphql/get_project_query.rb | 17 +- .../projects/graphql/get_repository_query.rb | 17 +- .../graphql/get_snippet_repository_query.rb | 48 + .../projects/graphql/queryable.rb | 25 + .../pipelines/auto_devops_pipeline.rb | 15 + .../pipelines/ci_pipelines_pipeline.rb | 15 + .../container_expiration_policy_pipeline.rb | 15 + .../pipelines/pipeline_schedules_pipeline.rb | 15 + .../pipelines/project_attributes_pipeline.rb | 85 + .../pipelines/project_feature_pipeline.rb | 15 + .../projects/pipelines/repository_pipeline.rb | 2 + .../service_desk_setting_pipeline.rb | 15 + .../projects/pipelines/snippets_pipeline.rb | 15 + .../pipelines/snippets_repository_pipeline.rb | 69 + lib/bulk_imports/projects/stage.rb | 40 + lib/extracts_ref.rb | 2 +- lib/feature.rb | 19 +- lib/feature/definition.rb | 18 + lib/feature/shared.rb | 1 + lib/flowdock/git/builder.rb | 2 +- .../redis_hll_generator.rb | 4 +- .../usage_metric_definition_generator.rb | 5 + .../gitlab/usage_metric_generator.rb | 4 +- lib/gitlab/abuse.rb | 18 + .../aggregated/data_collector.rb | 2 + .../cycle_analytics/aggregated/median.rb | 2 +- .../aggregated/records_fetcher.rb | 2 +- .../aggregated/stage_query_helpers.rb | 8 +- .../stage_events/stage_event.rb | 2 +- lib/gitlab/anonymous_session.rb | 16 +- lib/gitlab/application_context.rb | 7 +- lib/gitlab/application_rate_limiter.rb | 102 +- .../html_pipeline_adapter.rb | 2 +- lib/gitlab/auth.rb | 4 +- lib/gitlab/auth/user_access_denied_reason.rb | 2 +- lib/gitlab/background_migration.rb | 14 +- .../add_merge_request_diff_commits_count.rb | 25 - ...modified_to_approval_merge_request_rule.rb | 73 - ...ll_deployment_clusters_from_deployments.rb | 19 - ...nvironment_id_deployment_merge_requests.rb | 47 - ...ackfill_merge_request_cleanup_schedules.rb | 40 - .../backfill_namespace_settings.rb | 18 - .../backfill_project_settings.rb | 18 - .../backfill_push_rules_id_in_projects.rb | 27 - .../drop_invalid_remediations.rb | 14 + .../drop_invalid_security_findings.rb | 47 + .../fix_promoted_epics_discussion_ids.rb | 22 - .../fix_user_namespace_names.rb | 68 - .../fix_user_project_route_names.rb | 38 - .../background_migration/job_coordinator.rb | 40 +- .../link_lfs_objects_projects.rb | 82 - .../migrate_fingerprint_sha256_within_keys.rb | 61 - .../migrate_pages_metadata.rb | 38 - .../migrate_to_hashed_storage.rb | 61 - .../move_epic_issues_after_epics.rb | 13 - ...te_any_approval_rule_for_merge_requests.rb | 14 - ...populate_any_approval_rule_for_projects.rb | 14 - .../populate_canonical_emails.rb | 28 - ...ate_dismissed_state_for_vulnerabilities.rb | 17 - .../populate_has_vulnerabilities.rb | 64 - .../populate_merge_request_assignees_table.rb | 44 - ...ing_vulnerability_dismissal_information.rb | 89 - .../populate_personal_snippet_statistics.rb | 49 - .../populate_project_snippet_statistics.rb | 61 - ...late_vulnerability_feedback_pipeline_id.rb | 13 - ...ate_vulnerability_historical_statistics.rb | 14 - .../prune_orphaned_geo_events.rb | 17 - ...ect_authorizations_with_min_max_user_id.rb | 38 - ...bility_finding_signatures_for_findings.rb} | 4 +- .../remove_duplicate_cs_findings.rb | 13 - ...ed_cs_findings_without_vulnerability_id.rb | 13 - .../remove_inaccessible_epic_todos.rb | 13 - ..._and_duplicate_vulnerabilities_findings.rb | 59 + ...ndefined_vulnerability_confidence_level.rb | 13 - .../remove_vulnerability_finding_links.rb | 17 + .../replace_blocked_by_links.rb | 34 - .../reset_merge_status.rb | 17 - ...shared_runners_for_transferred_projects.rb | 30 - .../set_merge_request_diff_files_count.rb | 33 - ...oup_to_match_visibility_level_of_parent.rb | 21 - ...ting_users_that_require_two_factor_auth.rb | 110 - ...erprint_for_container_scanning_findings.rb | 13 - .../update_timelogs_null_spent_at.rb | 34 + ...vulnerabilities_from_dismissal_feedback.rb | 13 - .../create_resource_user_mention.rb | 36 - .../lib/banzai/reference_parser.rb | 25 - .../isolated_mentioned_group_parser.rb | 25 - .../isolated_mentioned_project_parser.rb | 25 - .../isolated_mentioned_user_parser.rb | 25 - .../gitlab/isolated_reference_extractor.rb | 30 - .../lib/gitlab/isolated_visibility_level.rb | 60 - .../user_mentions/models/commit.rb | 36 - .../models/commit_user_mention.rb | 19 - .../models/concerns/isolated_feature_gate.rb | 20 - .../models/concerns/isolated_mentionable.rb | 104 - .../concerns/mentionable_migration_methods.rb | 26 - .../concerns/namespace/recursive_traversal.rb | 74 - .../models/design_management/design.rb | 36 - .../models/design_user_mention.rb | 19 - .../user_mentions/models/epic.rb | 52 - .../user_mentions/models/epic_user_mention.rb | 19 - .../user_mentions/models/group.rb | 97 - .../user_mentions/models/merge_request.rb | 47 - .../models/merge_request_user_mention.rb | 19 - .../user_mentions/models/namespace.rb | 41 - .../user_mentions/models/note.rb | 72 - .../user_mentions/models/project.rb | 48 - .../user_mentions/models/user.rb | 37 - .../bitbucket_server_import/importer.rb | 7 +- lib/gitlab/chat/output.rb | 4 +- lib/gitlab/ci/badge/coverage/report.rb | 2 +- lib/gitlab/ci/badge/metadata.rb | 3 +- lib/gitlab/ci/build/context/base.rb | 6 + lib/gitlab/ci/build/policy/variables.rb | 2 +- .../ci/build/rules/rule/clause/changes.rb | 2 +- lib/gitlab/ci/build/rules/rule/clause/if.rb | 2 +- lib/gitlab/ci/config.rb | 56 +- lib/gitlab/ci/config/entry/processable.rb | 2 +- lib/gitlab/ci/config/entry/tags.rb | 2 - lib/gitlab/ci/config/external/context.rb | 22 +- lib/gitlab/ci/config/external/mapper.rb | 56 +- lib/gitlab/ci/config/external/processor.rb | 11 +- lib/gitlab/ci/features.rb | 30 - .../security/validators/schema_validator.rb | 2 +- lib/gitlab/ci/parsers/terraform/tfplan.rb | 2 +- lib/gitlab/ci/pipeline/chain/base.rb | 2 +- lib/gitlab/ci/pipeline/chain/build.rb | 4 + lib/gitlab/ci/pipeline/chain/command.rb | 13 +- .../ci/pipeline/chain/config/process.rb | 25 +- lib/gitlab/ci/pipeline/chain/create.rb | 43 +- .../ci/pipeline/chain/create_deployments.rb | 44 + .../ci/pipeline/chain/ensure_environments.rb | 36 + .../pipeline/chain/ensure_resource_groups.rb | 34 + lib/gitlab/ci/pipeline/chain/seed.rb | 29 +- lib/gitlab/ci/pipeline/chain/sequence.rb | 14 +- .../ci/pipeline/chain/validate/external.rb | 10 +- .../ci/pipeline/expression/lexeme/variable.rb | 6 +- .../ci/pipeline/expression/statement.rb | 4 +- lib/gitlab/ci/pipeline/logger.rb | 103 + lib/gitlab/ci/pipeline/seed/build.rb | 33 +- lib/gitlab/ci/reports/security/report.rb | 2 +- lib/gitlab/ci/status/bridge/common.rb | 6 +- lib/gitlab/ci/status/build/failed.rb | 3 +- lib/gitlab/ci/tags/bulk_insert.rb | 90 + .../ci/templates/Auto-DevOps.gitlab-ci.yml | 3 + .../Jobs/SAST-IaC.latest.gitlab-ci.yml | 2 +- .../ci/templates/Pages/HTML.gitlab-ci.yml | 1 + lib/gitlab/ci/templates/Python.gitlab-ci.yml | 2 +- lib/gitlab/ci/templates/Scala.gitlab-ci.yml | 6 +- .../Security/API-Fuzzing.latest.gitlab-ci.yml | 4 +- .../Security/Container-Scanning.gitlab-ci.yml | 3 +- .../Security/DAST-API.latest.gitlab-ci.yml | 52 + .../Verify/Accessibility.gitlab-ci.yml | 2 +- .../ci/templates/dotNET-Core.gitlab-ci.yml | 6 +- lib/gitlab/ci/variables/builder.rb | 2 +- lib/gitlab/ci/yaml_processor.rb | 2 - lib/gitlab/ci/yaml_processor/result.rb | 1 + lib/gitlab/config/entry/undefined.rb | 4 + .../content_security_policy/config_loader.rb | 11 +- .../content_security_policy/directives.rb | 2 +- lib/gitlab/contributions_calendar.rb | 72 +- lib/gitlab/daemon.rb | 15 +- lib/gitlab/database.rb | 13 + .../database/async_indexes/index_creator.rb | 4 + .../background_migration/batched_job.rb | 1 + .../background_migration/batched_migration.rb | 12 +- .../count/reltuples_count_strategy.rb | 37 +- .../count/tablesample_count_strategy.rb | 2 +- .../database/gitlab_loose_foreign_keys.yml | 69 + lib/gitlab/database/gitlab_schemas.yml | 13 + lib/gitlab/database/load_balancing.rb | 4 + .../database/load_balancing/configuration.rb | 4 + .../sidekiq_server_middleware.rb | 31 +- .../database/load_balancing/sticking.rb | 9 +- lib/gitlab/database/loose_foreign_keys.rb | 38 + lib/gitlab/database/migration_helpers.rb | 1 + .../background_migration_helpers.rb | 148 +- .../batched_background_migration_helpers.rb | 118 + .../database/migrations/instrumentation.rb | 4 +- .../observers/migration_observer.rb | 4 +- lib/gitlab/database/migrations/runner.rb | 2 +- .../detached_partition_dropper.rb | 2 - .../database/partitioning/monthly_strategy.rb | 4 + .../partitioning/partition_manager.rb | 8 +- .../single_numeric_list_partition.rb | 76 + .../partitioning/sliding_list_strategy.rb | 75 + lib/gitlab/database/pg_class.rb | 2 +- lib/gitlab/database/postgres_hll/buckets.rb | 3 +- lib/gitlab/database/query_analyzer.rb | 12 +- lib/gitlab/database/query_analyzers/base.rb | 7 + .../prevent_cross_database_modification.rb | 67 +- lib/gitlab/database/reindexing.rb | 20 + lib/gitlab/database/reindexing/coordinator.rb | 4 + .../schema_cache_with_renamed_table.rb | 2 +- lib/gitlab/database/schema_helpers.rb | 1 + lib/gitlab/database/shared_model.rb | 4 + lib/gitlab/database/type/json_pg_safe.rb | 24 + lib/gitlab/diff/custom_diff.rb | 58 + lib/gitlab/diff/file.rb | 33 +- .../merge_request_diff_base.rb | 9 +- lib/gitlab/diff/highlight.rb | 3 - lib/gitlab/diff/inline_diff.rb | 4 +- .../email/handler/create_issue_handler.rb | 2 +- lib/gitlab/email/handler/reply_processing.rb | 4 + .../email/handler/service_desk_handler.rb | 56 +- .../email/hook/smime_signature_interceptor.rb | 1 - .../in_product_marketing/admin_verify.rb | 2 +- .../message/in_product_marketing/base.rb | 33 - .../message/in_product_marketing/create.rb | 2 +- .../message/in_product_marketing/helper.rb | 23 + .../message/in_product_marketing/verify.rb | 2 +- lib/gitlab/email/receiver.rb | 14 +- lib/gitlab/email/service_desk_receiver.rb | 17 +- lib/gitlab/emoji.rb | 2 +- lib/gitlab/empty_search_results.rb | 28 + lib/gitlab/error_tracking.rb | 9 +- lib/gitlab/etag_caching/router/graphql.rb | 5 + lib/gitlab/etag_caching/store.rb | 12 +- lib/gitlab/exception_log_formatter.rb | 43 +- lib/gitlab/experimentation.rb | 3 - .../experimentation/controller_concern.rb | 2 +- lib/gitlab/gfm/reference_rewriter.rb | 2 +- lib/gitlab/git/blob.rb | 3 +- lib/gitlab/git/diff_collection.rb | 6 +- lib/gitlab/git/diff_stats_collection.rb | 4 +- lib/gitlab/git/repository.rb | 2 + lib/gitlab/git/rugged_impl/commit.rb | 3 + lib/gitlab/gitaly_client/commit_service.rb | 13 - lib/gitlab/github_import/client.rb | 26 +- .../importer/diff_note_importer.rb | 4 + .../github_import/importer/note_importer.rb | 1 + lib/gitlab/github_import/parallel_importer.rb | 2 + .../github_import/representation/diff_note.rb | 21 +- .../github_import/representation/note.rb | 8 + lib/gitlab/gon_helper.rb | 1 - lib/gitlab/gpg.rb | 2 +- lib/gitlab/gpg/commit.rb | 6 +- .../gpg/invalid_gpg_signature_updater.rb | 4 +- lib/gitlab/graphql/tracers/logger_tracer.rb | 13 +- lib/gitlab/graphql/tracers/timer_tracer.rb | 10 +- lib/gitlab/hook_data/merge_request_builder.rb | 4 +- lib/gitlab/i18n.rb | 18 +- lib/gitlab/import/import_failure_service.rb | 27 +- lib/gitlab/import/set_async_jid.rb | 2 +- lib/gitlab/import_export/command_line_util.rb | 4 + .../group/relation_tree_restorer.rb | 26 +- .../json/streaming_serializer.rb | 13 +- .../import_export/project/import_export.yml | 77 +- .../import_export/project/relation_factory.rb | 4 +- lib/gitlab/lograge/custom_options.rb | 4 + ...message.rb => commit_message_generator.rb} | 48 +- .../mergeability/redis_interface.rb | 4 +- lib/gitlab/metrics/exporter/base_exporter.rb | 12 +- .../metrics/exporter/sidekiq_exporter.rb | 27 - lib/gitlab/metrics/exporter/web_exporter.rb | 6 +- .../metrics/samplers/database_sampler.rb | 32 +- .../metrics/subscribers/active_record.rb | 34 +- lib/gitlab/pagination/keyset/iterator.rb | 2 +- lib/gitlab/pagination/keyset/order.rb | 2 +- lib/gitlab/pagination/offset_pagination.rb | 10 +- lib/gitlab/patch/legacy_database_config.rb | 44 + lib/gitlab/patch/sidekiq_client.rb | 22 - ...dekiq_cron_poller.rb => sidekiq_poller.rb} | 2 +- lib/gitlab/process_management.rb | 85 + lib/gitlab/quick_actions/issue_actions.rb | 34 +- lib/gitlab/rack_attack/request.rb | 2 - lib/gitlab/rate_limit_helpers.rb | 35 - lib/gitlab/redis/multi_store.rb | 52 +- lib/gitlab/redis/sessions.rb | 42 +- lib/gitlab/redis/sessions_store_helper.rb | 27 + lib/gitlab/redis/shared_state.rb | 4 - lib/gitlab/redis/wrapper.rb | 12 +- lib/gitlab/regex.rb | 21 +- .../relative_positioning/item_context.rb | 22 +- lib/gitlab/repository_archive_rate_limiter.rb | 13 + lib/gitlab/saas.rb | 4 + lib/gitlab/search/abuse_detection.rb | 81 + ..._abusive_coercion_from_string_validator.rb | 15 + .../no_abusive_term_length_validator.rb | 36 + lib/gitlab/search/params.rb | 89 + lib/gitlab/search/query.rb | 2 +- lib/gitlab/security/scan_configuration.rb | 47 + lib/gitlab/sherlock/line_profiler.rb | 2 +- lib/gitlab/sidekiq_config.rb | 11 +- lib/gitlab/sidekiq_enq.rb | 111 - lib/gitlab/sidekiq_status.rb | 24 +- .../sidekiq_status/client_middleware.rb | 3 +- lib/gitlab/spamcheck/client.rb | 18 +- lib/gitlab/string_range_marker.rb | 2 +- lib/gitlab/subscription_portal.rb | 14 + lib/gitlab/task_helpers.rb | 3 + lib/gitlab/tracking.rb | 12 +- lib/gitlab/tracking/destinations/snowplow.rb | 14 +- .../tracking/destinations/snowplow_micro.rb | 11 +- ...w_configured_to_gitlab_collector_metric.rb | 17 + .../snowplow_enabled_metric.rb | 15 + .../metrics/names_suggestions/generator.rb | 4 - lib/gitlab/usage_data.rb | 26 +- .../known_events/analytics.yml | 12 + .../known_events/ci_templates.yml | 8 + .../known_events/common.yml | 13 + .../known_events/importer_events.yml | 3 - .../known_events/quickactions.yml | 8 + lib/gitlab/usage_data_non_sql_metrics.rb | 13 - lib/gitlab/usage_data_queries.rb | 13 - lib/gitlab/utils.rb | 16 +- lib/gitlab/utils/nokogiri.rb | 2 +- lib/gitlab/utils/strong_memoize.rb | 2 - lib/gitlab/utils/usage_data.rb | 20 +- lib/gitlab/x509/commit.rb | 6 +- lib/google_api/cloud_platform/client.rb | 47 + lib/safe_zip/extract.rb | 2 +- .../concerns/container_with_html_options.rb | 2 + .../concerns/link_with_html_options.rb | 14 + lib/sidebars/concerns/positionable_list.rb | 8 + .../groups/menus/customer_relations_menu.rb | 4 +- .../groups/menus/packages_registries_menu.rb | 18 +- lib/sidebars/menu_item.rb | 2 + lib/sidebars/panel.rb | 4 + lib/sidebars/projects/menus/analytics_menu.rb | 2 +- .../projects/menus/infrastructure_menu.rb | 10 +- lib/sidebars/projects/menus/shimo_menu.rb | 41 + lib/sidebars/projects/panel.rb | 15 +- lib/tasks/gettext.rake | 13 +- lib/tasks/gitlab/background_migrations.rake | 19 + lib/tasks/gitlab/cleanup.rake | 29 +- lib/tasks/gitlab/db.rake | 49 +- lib/tasks/gitlab/gitaly.rake | 9 +- lib/tasks/gitlab/seed/group_seed.rake | 2 +- lib/tasks/gitlab/sidekiq.rake | 5 + lib/tasks/gitlab/update_templates.rake | 2 +- lib/tasks/gitlab/x509/update.rake | 4 +- lib/version_check.rb | 44 +- locale/am_ET/gitlab.po | 1694 ++++-- locale/ar_SA/gitlab.po | 1718 ++++-- locale/as_IN/gitlab.po | 1694 ++++-- locale/az_AZ/gitlab.po | 1694 ++++-- locale/ba_RU/gitlab.po | 1688 +++-- locale/bg/gitlab.po | 1696 ++++-- locale/bn_BD/gitlab.po | 1694 ++++-- locale/bn_IN/gitlab.po | 1694 ++++-- locale/br_FR/gitlab.po | 1712 ++++-- locale/bs_BA/gitlab.po | 1784 ++++-- locale/ca_ES/gitlab.po | 1694 ++++-- locale/cs_CZ/gitlab.po | 1706 ++++-- locale/cy_GB/gitlab.po | 1718 ++++-- locale/da_DK/gitlab.po | 1878 ++++-- locale/de/gitlab.po | 1824 ++++-- locale/el_GR/gitlab.po | 1694 ++++-- locale/eo/gitlab.po | 1696 ++++-- locale/es/gitlab.po | 1754 ++++-- locale/et_EE/gitlab.po | 1694 ++++-- locale/fa_IR/gitlab.po | 1694 ++++-- locale/fi_FI/gitlab.po | 1694 ++++-- locale/fil_PH/gitlab.po | 1694 ++++-- locale/fr/gitlab.po | 2078 ++++--- locale/gitlab.pot | 1569 +++-- locale/gl_ES/gitlab.po | 1694 ++++-- locale/he_IL/gitlab.po | 1706 ++++-- locale/hi_IN/gitlab.po | 1694 ++++-- locale/hr_HR/gitlab.po | 1700 ++++-- locale/hu_HU/gitlab.po | 1694 ++++-- locale/hy_AM/gitlab.po | 1694 ++++-- locale/id_ID/gitlab.po | 1688 +++-- locale/ig_NG/gitlab.po | 1688 +++-- locale/is_IS/gitlab.po | 1694 ++++-- locale/it/gitlab.po | 1696 ++++-- locale/ja/gitlab.po | 1712 ++++-- locale/ka_GE/gitlab.po | 1694 ++++-- locale/kab/gitlab.po | 1694 ++++-- locale/ko/gitlab.po | 1696 ++++-- locale/ku_TR/gitlab.po | 1694 ++++-- locale/ky_KG/gitlab.po | 1694 ++++-- locale/lt_LT/gitlab.po | 1706 ++++-- locale/mk_MK/gitlab.po | 1694 ++++-- locale/mn_MN/gitlab.po | 1694 ++++-- locale/nb_NO/gitlab.po | 1734 ++++-- locale/nl_NL/gitlab.po | 1694 ++++-- locale/pa_IN/gitlab.po | 1694 ++++-- locale/pl_PL/gitlab.po | 1708 ++++-- locale/pt_BR/gitlab.po | 2530 +++++--- locale/pt_PT/gitlab.po | 1698 ++++-- locale/ro_RO/gitlab.po | 1758 ++++-- locale/ru/gitlab.po | 1732 ++++-- locale/si_LK/gitlab.po | 1694 ++++-- locale/sk_SK/gitlab.po | 1706 ++++-- locale/sl_SI/gitlab.po | 1706 ++++-- locale/sq_AL/gitlab.po | 1694 ++++-- locale/sr_CS/gitlab.po | 1700 ++++-- locale/sr_SP/gitlab.po | 1700 ++++-- locale/sv_SE/gitlab.po | 1694 ++++-- locale/sw_KE/gitlab.po | 1694 ++++-- locale/ta_IN/gitlab.po | 1694 ++++-- locale/tr_TR/gitlab.po | 1706 ++++-- locale/uk/gitlab.po | 3628 ++++++----- locale/ur_PK/gitlab.po | 1694 ++++-- locale/uz_UZ/gitlab.po | 1694 ++++-- locale/vi_VN/gitlab.po | 1688 +++-- locale/zh_CN/gitlab.po | 2574 +++++--- locale/zh_HK/gitlab.po | 1690 +++-- locale/zh_TW/gitlab.po | 1690 +++-- metrics_server/dependencies.rb | 27 + metrics_server/metrics_server.rb | 59 + metrics_server/override_rails_constants.rb | 20 + metrics_server/settings_overrides.rb | 14 + package.json | 79 +- qa/Gemfile | 3 +- qa/Gemfile.lock | 84 +- qa/README.md | 10 + qa/Rakefile | 3 +- qa/knapsack/gcs/.gitignore | 3 + .../page/group/settings/usage_quotas.rb | 34 +- qa/qa/flow/purchase.rb | 107 + qa/qa/flow/settings.rb | 25 + qa/qa/mobile/page/project/issue/show.rb | 2 +- qa/qa/page/admin/overview/users/index.rb | 4 - .../page/admin/settings/component/snowplow.rb | 49 + .../settings/component/usage_statistics.rb | 21 + .../admin/settings/metrics_and_profiling.rb | 7 + qa/qa/page/base.rb | 23 + qa/qa/page/component/blob_content.rb | 86 + qa/qa/page/component/issuable/common.rb | 8 +- qa/qa/page/component/issuable/sidebar.rb | 11 +- qa/qa/page/component/snippet.rb | 12 +- qa/qa/page/component/wiki.rb | 5 +- qa/qa/page/component/wiki_page_form.rb | 21 +- qa/qa/page/dashboard/snippet/show.rb | 1 + qa/qa/page/file/shared/commit_message.rb | 4 + qa/qa/page/file/show.rb | 33 +- qa/qa/page/main/terms.rb | 2 +- .../infrastructure/kubernetes/add_existing.rb | 2 +- qa/qa/page/project/issue/index.rb | 26 +- qa/qa/page/project/issue/show.rb | 4 +- qa/qa/page/project/packages/index.rb | 4 +- qa/qa/page/project/pipeline/show.rb | 5 +- qa/qa/page/project/pipeline_editor/show.rb | 60 +- qa/qa/page/project/settings/advanced.rb | 19 +- qa/qa/page/project/settings/services/jira.rb | 15 + qa/qa/page/project/show.rb | 4 - qa/qa/page/project/snippet/index.rb | 1 + qa/qa/page/project/snippet/show.rb | 1 + qa/qa/page/project/sub_menus/issues.rb | 8 + qa/qa/resource/api_fabricator.rb | 9 +- qa/qa/resource/base.rb | 14 + qa/qa/resource/errors.rb | 15 + qa/qa/resource/events/base.rb | 2 +- qa/qa/resource/events/project.rb | 4 + qa/qa/resource/file.rb | 5 +- qa/qa/resource/group.rb | 3 +- qa/qa/resource/group_base.rb | 2 +- qa/qa/resource/group_deploy_token.rb | 47 +- qa/qa/resource/merge_request.rb | 35 + qa/qa/resource/project.rb | 26 +- ...eploy_token.rb => project_deploy_token.rb} | 49 +- qa/qa/resource/project_milestone.rb | 4 + qa/qa/resource/reusable.rb | 63 + qa/qa/resource/reusable_project.rb | 45 + qa/qa/resource/runner.rb | 2 +- qa/qa/resource/sandbox.rb | 3 +- qa/qa/runtime/env.rb | 6 +- qa/qa/scenario/test/integration/kubernetes.rb | 13 - .../test/integration/service_ping_disabled.rb | 16 + qa/qa/scenario/test/integration/ssh_tunnel.rb | 13 - qa/qa/service/kubernetes_cluster.rb | 2 +- qa/qa/service/praefect_manager.rb | 50 +- .../api/1_manage/bulk_import_group_spec.rb | 31 +- .../api/1_manage/bulk_import_project_spec.rb | 134 - .../api/1_manage/import_github_repo_spec.rb | 2 +- .../1_manage/import_large_github_repo_spec.rb | 2 +- .../api/1_manage/project_access_token_spec.rb | 21 +- .../features/api/1_manage/rate_limits_spec.rb | 2 +- .../1_manage/user_access_termination_spec.rb | 6 +- .../specs/features/api/1_manage/users_spec.rb | 6 +- .../closes_issue_via_pushing_a_commit_spec.rb | 2 +- .../automatic_failover_and_recovery_spec.rb | 13 +- .../gitaly/backend_node_recovery_spec.rb | 4 +- .../changing_repository_storage_spec.rb | 4 +- .../3_create/gitaly/distributed_reads_spec.rb | 5 +- .../api/3_create/gitaly/gitaly_mtls_spec.rb | 2 +- .../gitaly/praefect_replication_queue_spec.rb | 14 +- .../gitaly/praefect_repo_sync_spec.rb | 6 +- .../merge_request/push_options_labels_spec.rb | 11 +- .../merge_request/push_options_mwps_spec.rb | 28 +- .../push_options_remove_source_branch_spec.rb | 2 +- .../push_options_target_branch_spec.rb | 2 +- .../push_options_title_description_spec.rb | 2 +- .../default_branch_name_setting_spec.rb | 4 +- .../api/3_create/repository/files_spec.rb | 4 +- .../project_archive_compare_spec.rb | 2 +- .../push_postreceive_idempotent_spec.rb | 4 +- .../snippet_repository_storage_move_spec.rb | 2 +- .../cancel_pipeline_when_block_user_spec.rb | 2 +- .../api/5_package/container_registry_spec.rb | 20 +- .../performance_bar_spec.rb | 2 +- .../service_ping_default_enabled_spec.rb | 22 + .../service_ping_disabled_spec.rb | 22 + .../1_manage/group/bulk_import_group_spec.rb | 2 +- .../create_group_with_mattermost_team_spec.rb | 2 +- .../1_manage/group/transfer_group_spec.rb | 2 +- .../1_manage/group/transfer_project_spec.rb | 2 +- .../1_manage/login/2fa_recovery_spec.rb | 2 +- .../1_manage/login/2fa_ssh_recovery_spec.rb | 2 +- .../browser_ui/1_manage/login/log_in_spec.rb | 2 +- .../1_manage/login/log_in_with_2fa_spec.rb | 2 +- .../login/log_into_gitlab_via_ldap_spec.rb | 2 +- .../log_into_mattermost_via_gitlab_spec.rb | 2 +- .../login_via_instance_wide_saml_sso_spec.rb | 2 +- .../login/maintain_log_in_mixed_env_spec.rb | 2 +- .../1_manage/login/register_spec.rb | 8 +- .../project/add_project_member_spec.rb | 2 +- .../1_manage/project/create_project_spec.rb | 4 +- .../1_manage/project/dashboard_images_spec.rb | 4 +- .../project/import_github_repo_spec.rb | 2 +- .../project/project_access_token_spec.rb | 2 +- .../project/view_project_activity_spec.rb | 2 +- .../user/follow_user_activity_spec.rb | 2 +- .../user/user_access_termination_spec.rb | 2 +- .../email/trigger_email_notification_spec.rb | 2 +- .../issue/check_mentions_for_xss_spec.rb | 2 +- .../collapse_comments_in_discussions_spec.rb | 2 +- .../2_plan/issue/comment_issue_spec.rb | 2 +- .../2_plan/issue/create_issue_spec.rb | 27 +- .../issue/custom_issue_template_spec.rb | 2 +- .../2_plan/issue/export_as_csv_spec.rb | 2 +- .../issue/filter_issue_comments_spec.rb | 2 +- .../2_plan/issue/issue_suggestions_spec.rb | 2 +- .../2_plan/issue/jira_issue_import_spec.rb | 2 +- .../browser_ui/2_plan/issue/mentions_spec.rb | 2 +- .../2_plan/issue/real_time_assignee_spec.rb | 2 +- .../2_plan/issue_boards/focus_mode_spec.rb | 2 +- .../milestone/create_group_milestone_spec.rb | 2 +- .../create_project_milestone_spec.rb | 2 +- .../related_issues/related_issues_spec.rb | 2 +- .../transient/comment_on_discussion_spec.rb | 2 +- .../add_design_content_spec.rb | 2 +- .../archive_design_content_spec.rb | 2 +- .../modify_design_content_spec.rb | 2 +- .../jenkins/jenkins_build_status_spec.rb | 2 +- .../jira/jira_basic_integration_spec.rb | 4 +- .../cherry_pick/cherry_pick_a_merge_spec.rb | 2 +- .../cherry_pick/cherry_pick_commit_spec.rb | 2 +- .../create_merge_request_spec.rb | 4 +- .../create_merge_request_via_template_spec.rb | 2 +- .../merge_merge_request_from_fork_spec.rb | 2 +- .../merge_when_pipeline_succeeds_spec.rb | 4 +- .../rebase_merge_request_spec.rb | 2 +- .../revert/revert_commit_spec.rb | 2 +- .../revert/reverting_merge_request_spec.rb | 2 +- .../squash_merge_request_spec.rb | 2 +- .../suggestions/batch_suggestion_spec.rb | 2 +- .../custom_commit_suggestion_spec.rb | 2 +- .../view_merge_request_diff_patch_spec.rb | 4 +- .../view_merge_request_merge_ref_diff_spec.rb | 4 +- .../add_list_delete_branches_spec.rb | 2 +- .../branch_with_unusual_name_spec.rb | 2 +- .../3_create/repository/clone_spec.rb | 4 +- .../file/create_file_via_web_spec.rb | 2 +- .../file/delete_file_via_web_spec.rb | 2 +- .../repository/file/edit_file_via_web_spec.rb | 2 +- .../file/file_with_unusual_name_spec.rb | 2 +- .../move_project_create_fork_spec.rb | 2 +- .../repository/protocol_v2_push_http_spec.rb | 2 +- .../repository/protocol_v2_push_ssh_spec.rb | 2 +- .../push_http_private_token_spec.rb | 2 +- .../push_mirroring_lfs_over_http_spec.rb | 4 +- .../push_mirroring_over_http_spec.rb | 4 +- .../push_over_http_file_size_spec.rb | 4 +- .../repository/push_over_http_spec.rb | 4 +- .../3_create/repository/push_over_ssh_spec.rb | 4 +- .../repository/push_protected_branch_spec.rb | 4 +- .../repository/ssh_key_support_spec.rb | 4 +- .../user_views_commit_diff_patch_spec.rb | 4 +- .../clone_push_pull_personal_snippet_spec.rb | 4 +- .../clone_push_pull_project_snippet_spec.rb | 4 +- .../snippet/create_personal_snippet_spec.rb | 2 +- ...rsonal_snippet_with_multiple_files_spec.rb | 2 +- .../snippet/create_project_snippet_spec.rb | 2 +- ...roject_snippet_with_multiple_files_spec.rb | 2 +- .../3_create/snippet/share_snippet_spec.rb | 4 +- .../add_new_directory_in_web_ide_spec.rb | 4 +- .../create_first_file_in_web_ide_spec.rb | 2 +- .../web_ide/link_to_line_in_web_ide_spec.rb | 2 +- .../web_ide/open_fork_in_web_ide_spec.rb | 4 +- .../open_web_ide_from_diff_tab_spec.rb | 2 +- .../web_ide/review_merge_request_spec.rb | 2 +- .../upload_new_file_in_web_ide_spec.rb | 8 +- .../3_create/web_ide/web_terminal_spec.rb | 14 +- .../3_create/wiki/content_editor_spec.rb | 7 +- .../project_based_content_creation_spec.rb | 8 +- ...project_based_content_manipulation_spec.rb | 4 +- ...project_based_directory_management_spec.rb | 2 +- .../3_create/wiki/project_based_list_spec.rb | 4 +- .../wiki/project_based_page_deletion_spec.rb | 2 +- .../add_remove_ci_variable_spec.rb | 4 +- .../pipeline_with_protected_variable_spec.rb | 4 +- .../create_and_process_pipeline_spec.rb | 2 +- ...al_config_file_paths_with_wildcard_spec.rb | 2 +- ...lude_multiple_files_from_a_project_spec.rb | 2 +- .../pipeline/locked_artifacts_spec.rb | 2 +- .../merge_mr_when_pipline_is_blocked_spec.rb | 2 +- .../pipeline/mr_event_rule_pipeline_spec.rb | 2 +- ...variables_to_downstream_via_bridge_spec.rb | 2 +- .../pipeline_editor_branch_switcher_spec.rb | 87 +- .../run_pipeline_via_web_only_spec.rb | 2 +- ...trigger_child_pipeline_with_manual_spec.rb | 2 +- .../4_verify/pipeline/trigger_matrix_spec.rb | 2 +- .../4_verify/runner/register_runner_spec.rb | 2 +- .../testing/view_code_coverage_spec.rb | 2 +- .../container_registry_omnibus_spec.rb | 199 +- .../container_registry_spec.rb | 18 +- .../online_garbage_collection_spec.rb | 20 +- .../dependency_proxy/dependency_proxy_spec.rb | 54 +- .../composer_registry_spec.rb | 29 +- .../package_registry/conan_repository_spec.rb | 44 +- .../generic_repository_spec.rb | 28 +- .../package_registry/helm_registry_spec.rb | 24 +- .../maven_gradle_repository_spec.rb | 24 +- .../package_registry/maven_repository_spec.rb | 58 +- .../npm/npm_instance_level_spec.rb | 44 +- .../npm/npm_project_level_spec.rb | 18 +- .../package_registry/nuget_repository_spec.rb | 148 +- .../package_registry/pypi_repository_spec.rb | 102 +- .../rubygems_registry_spec.rb | 158 +- .../deploy_key/add_deploy_key_spec.rb | 2 +- .../deploy_token/add_deploy_token_spec.rb | 8 +- .../6_release/pages/pages_pipeline_spec.rb | 2 +- ...d_pipelines_dependent_relationship_spec.rb | 4 +- ...pipelines_independent_relationship_spec.rb | 4 +- .../create_project_with_auto_devops_spec.rb | 2 +- .../kubernetes/kubernetes_integration_spec.rb | 2 +- .../all_monitor_core_features_spec.rb | 12 +- .../formatters/test_stats_formatter.rb | 2 +- qa/qa/tools/knapsack_report.rb | 88 + qa/qa/tools/reliable_report.rb | 315 +- qa/qa/vendor/jira/jira_api.rb | 48 +- qa/spec/resource/base_spec.rb | 11 +- qa/spec/runtime/env_spec.rb | 25 +- ..._spec.rb => service_ping_disabled_spec.rb} | 4 +- qa/spec/spec_helper.rb | 7 + .../formatters/test_stats_formatter_spec.rb | 2 +- .../packages_registry_shared_context.rb | 10 +- qa/spec/tools/reliable_report_spec.rb | 242 +- qa/tasks/knapsack.rake | 17 + qa/tasks/reliable_report.rake | 17 +- rubocop/code_reuse_helpers.rb | 8 + rubocop/cop/gitlab/mark_used_feature_flags.rb | 6 +- rubocop/cop/graphql/authorize_types.rb | 4 +- rubocop/cop/graphql/old_types.rb | 3 +- rubocop/cop/migration/schedule_async.rb | 2 +- rubocop/cop/project_path_helper.rb | 2 +- rubocop/cop/qa/testcase_link_format.rb | 45 + rubocop/cop/static_translation_definition.rb | 10 +- scripts/api/get_job_id.rb | 16 +- scripts/db_tasks | 12 + .../frontend/startup_css/get_startup_css.js | 4 +- scripts/lib/gitlab.rb | 13 + scripts/review_apps/base-config.yaml | 4 +- scripts/review_apps/review-apps.sh | 58 +- scripts/rspec_bisect_flaky | 29 + scripts/rspec_helpers.sh | 96 +- scripts/trigger-build | 4 +- scripts/undercoverage | 3 + scripts/used-feature-flags | 7 +- scripts/validate_migration_schema | 6 +- sidekiq_cluster/cli.rb | 92 +- sidekiq_cluster/dependencies.rb | 6 - sidekiq_cluster/sidekiq_cluster.rb | 104 +- spec/bin/feature_flag_spec.rb | 4 +- .../application_cable/connection_spec.rb | 4 +- .../metrics_server/metrics_server_spec.rb | 73 + spec/commands/sidekiq_cluster/cli_spec.rb | 213 +- spec/config/mail_room_spec.rb | 10 +- .../abuse_reports_controller_spec.rb | 2 +- .../admin/clusters_controller_spec.rb | 3 +- .../admin/integrations_controller_spec.rb | 36 - .../application_controller_spec.rb | 9 - .../boards/issues_controller_spec.rb | 2 +- .../authorizations_controller_spec.rb | 21 + spec/controllers/graphql_controller_spec.rb | 11 + .../dependency_proxies_controller_spec.rb | 78 +- ...cy_proxy_for_containers_controller_spec.rb | 2 +- .../groups/group_members_controller_spec.rb | 1 - spec/controllers/groups_controller_spec.rb | 10 - .../import/bulk_imports_controller_spec.rb | 32 +- .../import/fogbugz_controller_spec.rb | 11 +- spec/controllers/invites_controller_spec.rb | 55 - .../omniauth_callbacks_controller_spec.rb | 13 + .../profiles/emails_controller_spec.rb | 2 +- .../projects/issues_controller_spec.rb | 35 +- .../projects/learn_gitlab_controller_spec.rb | 9 +- .../merge_requests/diffs_controller_spec.rb | 3 +- .../merge_requests_controller_spec.rb | 31 +- .../projects/pipelines_controller_spec.rb | 25 +- .../project_members_controller_spec.rb | 1 - .../projects/repositories_controller_spec.rb | 2 +- .../serverless/functions_controller_spec.rb | 4 +- .../settings/ci_cd_controller_spec.rb | 11 + spec/controllers/projects_controller_spec.rb | 55 +- .../registrations/welcome_controller_spec.rb | 4 - .../registrations_controller_spec.rb | 71 +- .../repositories/git_http_controller_spec.rb | 8 + spec/controllers/root_controller_spec.rb | 24 +- spec/controllers/search_controller_spec.rb | 109 +- .../sent_notifications_controller_spec.rb | 8 +- spec/controllers/sessions_controller_spec.rb | 2 +- .../callouts_controller_spec.rb} | 10 +- spec/db/schema_spec.rb | 16 +- spec/dependencies/omniauth_saml_spec.rb | 2 +- .../application_experiment_spec.rb | 217 +- ...ew_project_sast_enabled_experiment_spec.rb | 2 +- spec/factories/ci/builds.rb | 3 + spec/factories/ci/pipelines.rb | 6 +- .../clusters/agents/activity_events.rb | 13 + .../{ => commit_signature}/gpg_signature.rb | 2 +- .../x509_commit_signature.rb | 2 +- spec/factories/customer_relations/contacts.rb | 1 + spec/factories/deployments.rb | 4 + .../batched_migrations.rb | 8 + spec/factories/import_failures.rb | 2 + spec/factories/issue_emails.rb | 8 + spec/factories/namespaces.rb | 8 +- spec/factories/notes.rb | 1 + .../packages/debian/component_file.rb | 4 +- spec/factories/packages/package_files.rb | 8 + spec/factories/packages/packages.rb | 6 + spec/factories/plan_limits.rb | 1 + spec/factories/projects.rb | 2 +- spec/factories/protected_branches.rb | 16 +- spec/factories/sequences.rb | 3 +- .../{user_callouts.rb => users/callouts.rb} | 2 +- spec/features/action_cable_logging_spec.rb | 2 +- spec/features/admin/admin_deploy_keys_spec.rb | 148 +- spec/features/admin/admin_labels_spec.rb | 2 +- spec/features/admin/admin_projects_spec.rb | 5 +- spec/features/admin/admin_runners_spec.rb | 56 +- spec/features/admin/admin_settings_spec.rb | 18 + spec/features/admin/users/user_spec.rb | 5 +- .../alert_management/alert_details_spec.rb | 4 +- spec/features/boards/board_filters_spec.rb | 197 + spec/features/boards/sidebar_due_date_spec.rb | 46 - .../boards/sidebar_milestones_spec.rb | 65 - spec/features/clusters/create_agent_spec.rb | 8 +- spec/features/commits_spec.rb | 11 +- spec/features/dashboard/issues_spec.rb | 4 +- .../features/dashboard/merge_requests_spec.rb | 2 +- spec/features/dashboard/milestones_spec.rb | 2 +- spec/features/dashboard/root_spec.rb | 19 - spec/features/expand_collapse_diffs_spec.rb | 1 - spec/features/gitlab_experiments_spec.rb | 3 +- spec/features/global_search_spec.rb | 16 + .../groups/container_registry_spec.rb | 2 +- spec/features/groups/empty_states_spec.rb | 2 +- spec/features/groups/issues_spec.rb | 12 +- .../groups/members/manage_groups_spec.rb | 3 +- .../groups/members/manage_members_spec.rb | 57 +- spec/features/groups/navbar_spec.rb | 1 - spec/features/help_pages_spec.rb | 2 +- .../ide/clientside_preview_csp_spec.rb | 4 +- ...static_object_external_storage_csp_spec.rb | 4 +- spec/features/invites_spec.rb | 28 - .../issuables/shortcuts_issuable_spec.rb | 86 + spec/features/issuables/sorting_list_spec.rb | 12 +- spec/features/issues/csv_spec.rb | 22 +- spec/features/issues/gfm_autocomplete_spec.rb | 2 +- spec/features/issues/issue_header_spec.rb | 9 +- spec/features/issues/issue_sidebar_spec.rb | 59 +- .../user_bulk_edits_issues_labels_spec.rb | 143 +- spec/features/issues/user_edits_issue_spec.rb | 9 +- .../user_invites_from_a_comment_spec.rb | 25 - spec/features/labels_hierarchy_spec.rb | 26 +- ...er_customizes_merge_commit_message_spec.rb | 51 +- .../merge_request/user_expands_diff_spec.rb | 1 - .../user_invites_from_a_comment_spec.rb | 25 - .../user_posts_diff_notes_spec.rb | 7 +- .../user_resolves_wip_mr_spec.rb | 4 +- .../user_sees_wip_help_message_spec.rb | 4 +- .../user_squashes_merge_request_spec.rb | 38 +- .../user_views_open_merge_request_spec.rb | 2 +- spec/features/one_trust_spec.rb | 23 + spec/features/profile_spec.rb | 37 +- .../profiles/personal_access_tokens_spec.rb | 24 +- .../profiles/two_factor_auths_spec.rb | 8 +- .../profiles/user_visits_profile_spec.rb | 18 + spec/features/projects/ci/editor_spec.rb | 60 + spec/features/projects/cluster_agents_spec.rb | 13 +- spec/features/projects/clusters/eks_spec.rb | 2 +- spec/features/projects/clusters/gcp_spec.rb | 15 +- spec/features/projects/clusters/user_spec.rb | 4 +- spec/features/projects/clusters_spec.rb | 22 +- .../projects/container_registry_spec.rb | 2 +- .../projects/files/user_creates_files_spec.rb | 2 +- spec/features/projects/fork_spec.rb | 11 +- .../integrations/user_activates_jira_spec.rb | 3 +- .../user_uploads_designs_spec.rb | 21 +- .../projects/jobs/user_browses_jobs_spec.rb | 2 +- .../labels/issues_sorted_by_priority_spec.rb | 2 +- .../members/groups_with_access_list_spec.rb | 3 +- spec/features/projects/members/list_spec.rb | 3 +- .../projects/milestones/milestone_spec.rb | 39 +- .../projects/pages/user_adds_domain_spec.rb | 4 +- .../projects/pipeline_schedules_spec.rb | 2 +- .../projects/pipelines/pipeline_spec.rb | 4 +- .../projects/pipelines/pipelines_spec.rb | 2 +- .../settings/forked_project_settings_spec.rb | 2 +- .../user_manages_project_members_spec.rb | 3 +- .../settings/user_transfers_a_project_spec.rb | 8 +- .../features/projects/sourcegraph_csp_spec.rb | 5 +- .../projects/tags/user_edits_tags_spec.rb | 3 +- .../projects/user_creates_project_spec.rb | 25 + .../search/user_searches_for_code_spec.rb | 19 +- spec/features/snippets/user_snippets_spec.rb | 6 +- spec/features/users/active_sessions_spec.rb | 10 +- spec/features/users/login_spec.rb | 6 +- spec/features/users/one_trust_csp_spec.rb | 17 + spec/features/users/show_spec.rb | 24 +- spec/features/webauthn_spec.rb | 164 +- spec/finders/ci/auth_job_finder_spec.rb | 11 - spec/finders/ci/runners_finder_spec.rb | 28 +- ...environments_by_deployments_finder_spec.rb | 14 +- spec/finders/group_descendants_finder_spec.rb | 417 +- spec/finders/groups_finder_spec.rb | 15 +- .../issuables/crm_contact_filter_spec.rb | 45 + .../issuables/crm_organization_filter_spec.rb | 48 + spec/finders/issues_finder_spec.rb | 39 + spec/finders/merge_requests_finder_spec.rb | 24 + .../packages/build_infos_finder_spec.rb | 64 + .../packages/group_packages_finder_spec.rb | 22 + .../packages/nuget/package_finder_spec.rb | 2 +- spec/finders/personal_projects_finder_spec.rb | 34 +- ...group_notification_settings_finder_spec.rb | 266 +- spec/fixtures/api/schemas/deployment.json | 2 + .../api/schemas/pipeline_schedule.json | 1 + ...ervice_desk_custom_address_envelope_to.eml | 24 + .../service_desk_custom_address_reply.eml | 24 + ...vice_desk_custom_address_x_envelope_to.eml | 24 + .../emails/service_desk_forwarded.eml | 2 +- spec/fixtures/emails/service_desk_reply.eml | 23 + .../valid_new_issue_with_only_quotes.eml | 23 + .../parsed_event_nullbytes.json | 175 + .../error_tracking/python_event_repl.json | 1 + .../sample_metric.yml | 1 + .../sample_metric_with_ee.yml | 1 + .../sample_metric_with_name_suggestions.yml | 1 + .../markdown_golden_master_examples.yml | 840 +++ spec/fixtures/packages/generic/myfile.zip | Bin 0 -> 3989 bytes spec/fixtures/symlink_export.tar | Bin 0 -> 10240 bytes spec/frontend/__helpers__/emoji.js | 50 +- .../__helpers__/experimentation_helper.js | 2 +- spec/frontend/{ => __helpers__}/matchers.js | 0 .../{ => __helpers__}/matchers_spec.js | 0 .../__helpers__/mock_apollo_helper.js | 4 +- .../mocks}/axios_utils.js | 0 .../frontend/__helpers__/shared_test_setup.js | 90 + .../access_tokens/components/token_spec.js | 65 + .../components/tokens_app_spec.js | 148 + .../components/devops_score_spec.js | 10 +- .../deploy_keys/components/table_spec.js | 211 +- .../statistics_panel/components/app_spec.js | 7 +- .../users/components/actions/actions_spec.js | 7 +- .../delete_user_modal_spec.js.snap | 80 + .../modals/delete_user_modal_spec.js | 29 +- .../users/components/users_table_spec.js | 6 +- .../__snapshots__/alerts_form_spec.js.snap | 4 + .../components/mocks/apollo_mock.js | 1 + .../usage_trends_count_chart_spec.js | 7 +- .../components/users_chart_spec.js | 7 +- spec/frontend/api/packages_api_spec.js | 53 + spec/frontend/api_spec.js | 47 +- .../keep_latest_artifact_checkbox_spec.js | 1 + spec/frontend/awards_handler_spec.js | 10 +- spec/frontend/behaviors/gl_emoji_spec.js | 17 +- .../blob_header_filepath_spec.js.snap | 1 + spec/frontend/blob/viewer/index_spec.js | 2 +- spec/frontend/blob_edit/edit_blob_spec.js | 35 +- spec/frontend/boards/board_list_helper.js | 24 +- spec/frontend/boards/board_list_spec.js | 30 +- .../components/board_content_sidebar_spec.js | 9 +- .../components/board_filtered_search_spec.js | 24 +- .../components/board_list_header_spec.js | 20 +- .../issue_board_filtered_search_spec.js | 4 +- .../board_sidebar_labels_select_spec.js | 168 - .../board_sidebar_subscription_spec.js | 163 - spec/frontend/boards/mock_data.js | 60 +- spec/frontend/boards/stores/actions_spec.js | 95 +- .../ci_lint/components/ci_lint_spec.js | 2 +- .../components/ci_variable_modal_spec.js | 55 +- .../components/activity_events_list_spec.js | 102 + .../components/activity_history_item_spec.js | 56 + .../clusters/agents/components/show_spec.js | 10 +- spec/frontend/clusters/mock_data.js | 165 + .../components/agent_empty_state_spec.js | 59 +- .../clusters_list/components/agents_spec.js | 22 +- .../available_agents_dropwdown_spec.js | 71 +- .../components/clusters_empty_state_spec.js | 54 +- .../components/clusters_main_view_spec.js | 22 +- .../components/install_agent_modal_spec.js | 283 +- spec/frontend/clusters_list/mocks/apollo.js | 1 + .../__snapshots__/popover_spec.js.snap | 4 + .../toolbar_link_button_spec.js.snap | 2 +- .../markdown_processing_examples.js | 27 - .../markdown_processing_spec.js | 28 +- .../markdown_processing_spec_helper.js | 86 + .../services/markdown_serializer_spec.js | 33 +- spec/frontend/crm/contact_form_spec.js | 157 + spec/frontend/crm/contacts_root_spec.js | 150 +- spec/frontend/crm/mock_data.js | 82 +- .../crm/new_organization_form_spec.js | 109 + spec/frontend/crm/organizations_root_spec.js | 109 +- .../design_note_pin_spec.js.snap | 28 - .../mock_data/apollo_mock.js | 2 + .../diffs/components/diff_discussions_spec.js | 4 - .../diffs/components/diff_file_spec.js | 2 +- .../diffs/components/diff_row_spec.js | 33 + spec/frontend/diffs/store/mutations_spec.js | 1 + spec/frontend/diffs/utils/discussions_spec.js | 133 - spec/frontend/dropzone_input_spec.js | 29 +- spec/frontend/editor/helpers.js | 57 +- .../source_editor_ci_schema_ext_spec.js | 2 +- .../source_editor_extension_base_spec.js | 161 +- .../editor/source_editor_extension_spec.js | 26 +- .../editor/source_editor_instance_spec.js | 192 +- .../editor/source_editor_markdown_ext_spec.js | 368 +- ...ce_editor_markdown_livepreview_ext_spec.js | 421 ++ spec/frontend/editor/source_editor_spec.js | 396 +- .../editor/source_editor_yaml_ext_spec.js | 76 +- spec/frontend/emoji/index_spec.js | 108 +- .../confirm_rollback_modal_spec.js | 134 +- .../delete_environment_modal_spec.js | 64 + .../enable_review_app_modal_spec.js | 15 + .../environments/environment_delete_spec.js | 64 +- .../environments/environment_rollback_spec.js | 29 + .../environments/graphql/mock_data.js | 27 + .../environments/graphql/resolvers_spec.js | 136 +- .../new_environment_folder_spec.js | 7 +- .../environments/new_environments_app_spec.js | 243 +- spec/frontend/experimentation/utils_spec.js | 49 +- spec/frontend/fixtures/api_deploy_keys.rb | 24 + spec/frontend/fixtures/api_markdown.rb | 65 - spec/frontend/fixtures/api_markdown.yml | 289 - spec/frontend/fixtures/blob.rb | 2 +- spec/frontend/fixtures/projects.rb | 26 - spec/frontend/fixtures/raw.rb | 22 +- spec/frontend/fixtures/tabs.rb | 26 + spec/frontend/fixtures/timezones.rb | 10 +- spec/frontend/flash_spec.js | 191 +- spec/frontend/gfm_auto_complete_spec.js | 8 +- .../google_cloud/components/app_spec.js | 86 +- .../components/errors/gcp_error_spec.js | 34 + .../components/errors/no_gcp_projects_spec.js | 33 + .../google_cloud/components/home_spec.js | 61 + .../components/service_accounts_form_spec.js | 59 + ..._spec.js => service_accounts_list_spec.js} | 6 +- .../grafana_integration_spec.js.snap | 3 + .../header_search/components/app_spec.js | 252 +- .../header_search_autocomplete_items_spec.js | 55 +- .../header_search_default_items_spec.js | 27 +- .../header_search_scoped_items_spec.js | 36 +- spec/frontend/header_search/mock_data.js | 90 +- .../header_search/store/actions_spec.js | 18 +- .../header_search/store/getters_spec.js | 127 +- .../header_search/store/mutations_spec.js | 18 +- .../ide/components/ide_tree_list_spec.js | 13 + .../pipelines/__snapshots__/list_spec.js.snap | 10 +- .../components/pipelines/empty_state_spec.js | 44 + .../ide/components/pipelines/list_spec.js | 8 +- .../ide/components/repo_editor_spec.js | 85 +- spec/frontend/ide/ide_router_spec.js | 59 +- spec/frontend/ide/services/index_spec.js | 59 +- .../ide/stores/actions/project_spec.js | 93 + .../ide/stores/mutations/project_spec.js | 37 +- .../components/import_table_spec.js | 107 +- .../components/import_target_cell_spec.js | 11 +- .../graphql/client_factory_spec.js | 59 +- .../import_groups/graphql/fixtures.js | 9 +- .../__snapshots__/pagerduty_form_spec.js.snap | 3 + .../edit/components/active_checkbox_spec.js | 23 +- .../edit/components/integration_form_spec.js | 314 +- .../components/jira_issues_fields_spec.js | 13 +- spec/frontend/integrations/edit/mock_data.js | 6 + .../integrations/edit/store/actions_spec.js | 51 +- .../integrations/edit/store/getters_spec.js | 32 +- .../integrations/edit/store/mutations_spec.js | 16 - .../integrations/edit/store/state_spec.js | 1 - .../integration_settings_form_spec.js | 248 - .../components/integration_overrides_spec.js | 63 +- .../components/invite_members_modal_spec.js | 156 +- .../components/invite_members_trigger_spec.js | 14 - .../components/status_select_spec.js | 4 +- .../issuable_header_warnings_spec.js | 8 +- .../components}/issue_assignees_spec.js | 2 +- .../components}/issue_milestone_spec.js | 2 +- .../components}/related_issuable_item_spec.js | 2 +- .../components}/related_issuable_mock_data.js | 0 .../{ => issuable}/issuable_form_spec.js | 2 +- .../components/related_issues_block_spec.js | 2 +- .../components/related_issues_list_spec.js | 2 +- .../components/related_issues_root_spec.js | 2 +- .../stores/related_issues_store_spec.js | 2 +- spec/frontend/issuable_spec.js | 22 - spec/frontend/{ => issues}/issue_spec.js | 2 +- .../__snapshots__/type_popover_spec.js.snap} | 6 +- .../title_suggestions_item_spec.js} | 6 +- .../new/components/title_suggestions_spec.js} | 10 +- .../new/components/type_popover_spec.js} | 6 +- .../new}/mock_data.js | 0 .../components/related_merge_requests_spec.js | 6 +- .../store/actions_spec.js | 4 +- .../store/mutations_spec.js | 4 +- .../sentry_error_stack_trace_spec.js | 2 +- .../show}/components/app_spec.js | 53 +- .../components/delete_issue_modal_spec.js | 108 + .../show}/components/description_spec.js | 2 +- .../show}/components/edit_actions_spec.js | 54 +- .../show}/components/edited_spec.js | 2 +- .../components/fields/description_spec.js | 4 +- .../fields/description_template_spec.js | 2 +- .../show}/components/fields/title_spec.js | 4 +- .../show}/components/fields/type_spec.js | 4 +- .../show}/components/form_spec.js | 11 +- .../show}/components/header_actions_spec.js | 98 +- .../incidents/highlight_bar_spec.js | 2 +- .../incidents/incident_tabs_spec.js | 6 +- .../show}/components/pinned_links_spec.js | 4 +- .../show}/components/title_spec.js | 6 +- .../{issue_show => issues/show}/issue_spec.js | 6 +- .../show}/mock_data/apollo_mock.js | 0 .../show}/mock_data/mock_data.js | 0 .../{issue_show => issues/show}/store_spec.js | 6 +- .../show}/utils/update_description_spec.js | 2 +- .../issues_list/components/issuable_spec.js | 2 +- .../components/issuables_list_app_spec.js | 22 +- .../components/issue_card_time_info_spec.js | 2 +- .../components/issues_list_app_spec.js | 229 +- spec/frontend/issues_list/mock_data.js | 5 + .../subscriptions/components/app_spec.js | 18 + .../components/user_link_spec.js | 91 + .../jira_connect/subscriptions/index_spec.js | 36 - .../jira_import_form_spec.js.snap | 4 +- spec/frontend/jobs/bridge/app_spec.js | 33 + .../bridge/components/empty_state_spec.js | 59 + .../jobs/bridge/components/sidebar_spec.js | 76 + spec/frontend/jobs/bridge/mock_data.js | 3 + .../job_sidebar_details_container_spec.js | 11 +- .../table/cells/actions_cell_spec.js | 28 +- spec/frontend/jobs/mock_data.js | 70 +- .../components/delete_label_modal_spec.js | 4 +- .../components/promote_label_modal_spec.js | 4 +- .../{ => labels}/delete_label_modal_spec.js | 2 +- .../{ => labels}/labels_select_spec.js | 2 +- spec/frontend/lib/utils/common_utils_spec.js | 11 + spec/frontend/lib/utils/dom_utils_spec.js | 12 + .../lib/utils/intersection_observer_spec.js | 86 + .../lib/utils/navigation_utility_spec.js | 89 + .../remove_member_button_spec.js | 19 +- .../user_action_buttons_spec.js | 31 +- .../table/member_action_buttons_spec.js | 1 + .../components/delete_milestone_modal_spec.js | 4 +- .../milestone_combobox_spec.js | 2 +- .../promote_milestone_modal_spec.js | 2 +- ...{milestone_utils_spec.js => utils_spec.js} | 2 +- spec/frontend/mocks/mocks_helper.js | 58 - spec/frontend/mocks/mocks_helper_spec.js | 131 - .../__snapshots__/mr_popover_spec.js.snap | 14 +- spec/frontend/mr_popover/mr_popover_spec.js | 15 +- .../__snapshots__/notes_app_spec.js.snap | 17 + .../components/discussion_filter_spec.js | 7 + .../notes/components/discussion_notes_spec.js | 4 - .../components/noteable_discussion_spec.js | 10 - .../notes/components/notes_app_spec.js | 18 +- spec/frontend/notes/stores/actions_spec.js | 10 +- spec/frontend/notes/stores/mutation_spec.js | 12 + spec/frontend/packages/shared/utils_spec.js | 69 - .../components/details_page/tags_list_spec.js | 216 +- .../project_empty_state_spec.js.snap | 3 + .../container_registry/explorer/mock_data.js | 8 +- .../explorer/pages/details_spec.js | 38 +- .../dependency_proxy/app_spec.js | 23 - .../dependency_proxy/mock_data.js | 5 +- .../components/details/components/app_spec.js | 55 +- .../details/components/details_title_spec.js | 2 +- .../details/components/package_files_spec.js | 2 +- .../components/package_history_spec.js | 2 +- .../components/terraform_installation_spec.js | 2 +- .../components/details/store/actions_spec.js | 4 +- .../components/details/store/getters_spec.js | 2 +- .../details/store/mutations_spec.js | 2 +- .../packages_list_app_spec.js.snap | 10 +- .../components}/infrastructure_search_spec.js | 2 +- .../components}/infrastructure_title_spec.js | 2 +- .../list/components/packages_list_app_spec.js | 13 +- .../list/components/packages_list_spec.js | 22 +- .../components}/list/stores/actions_spec.js | 8 +- .../components}/list/stores/getters_spec.js | 2 +- .../components}/list/stores/mutations_spec.js | 6 +- .../components}/list/utils_spec.js | 7 +- .../components}/mock_data.js | 0 .../package_list_row_spec.js.snap | 4 +- .../infrastructure_icon_and_name_spec.js | 2 +- .../shared}/package_list_row_spec.js | 38 +- .../__snapshots__/version_row_spec.js.snap | 2 +- .../components/details/package_title_spec.js | 2 +- .../components/details/version_row_spec.js | 4 +- .../package_list_row_spec.js.snap | 8 +- .../__snapshots__/publish_method_spec.js.snap | 1 + .../components/list/package_list_row_spec.js | 30 +- .../components/list/packages_list_spec.js | 4 +- .../package_registry/mock_data.js | 6 + .../__snapshots__/list_spec.js.snap} | 14 +- .../list/app_spec.js => pages/list_spec.js} | 23 +- .../settings_titles_spec.js.snap | 2 +- .../dependency_proxy_settings_spec.js | 184 +- .../components/group_settings_app_spec.js | 23 +- .../group/components/settings_titles_spec.js | 20 +- .../group/graphl/utils/cache_update_spec.js | 37 +- .../graphl/utils/optimistic_responses_spec.js | 19 + .../settings/group/mock_data.js | 24 +- .../settings/project/settings/mock_data.js | 1 + .../__snapshots__/publish_method_spec.js.snap | 1 + .../shared/components/registry_list_spec.js | 199 + .../shared}/package_icon_and_name_spec.js | 2 +- .../shared}/package_path_spec.js | 2 +- .../shared}/package_tags_spec.js | 4 +- .../shared}/packages_list_loader_spec.js | 2 +- .../shared}/publish_method_spec.js | 4 +- .../shared/utils_spec.js | 30 + .../customize_homepage_banner_spec.js | 108 - .../bulk_imports_history_app_spec.js | 2 +- .../__snapshots__/learn_gitlab_spec.js.snap | 212 +- .../learn_gitlab_section_link_spec.js | 56 + .../components/learn_gitlab_spec.js | 44 +- .../learn_gitlab/components/mock_data.js | 4 + .../shared/wikis/components/wiki_form_spec.js | 172 +- .../components/commit/commit_form_spec.js | 6 +- .../components/commit/commit_section_spec.js | 149 +- .../components/editor/text_editor_spec.js | 5 - .../file-nav/branch_switcher_spec.js | 103 +- .../components/header/pipeline_status_spec.js | 24 +- .../components/lint/ci_lint_results_spec.js | 4 +- spec/frontend/pipeline_editor/mock_data.js | 54 +- .../pipeline_editor_app_spec.js | 97 +- .../__snapshots__/utils_spec.js.snap | 47 + .../components/jobs/jobs_app_spec.js | 106 + .../graph/graph_component_wrapper_spec.js | 44 +- .../graph/graph_view_selector_spec.js | 36 +- spec/frontend/pipelines/graph/mock_data.js | 81 + spec/frontend/pipelines/mock_data.js | 141 + .../components/new_project_url_select_spec.js | 83 +- .../statistics_list_spec.js.snap | 10 +- .../pipelines/charts/components/app_spec.js | 22 +- .../charts/components/statistics_list_spec.js | 13 +- .../projects/pipelines/charts/mock_data.js | 2 + .../components/transfer_project_form_spec.js | 68 + .../components/service_desk_setting_spec.js | 13 +- .../storage_counter/components/app_spec.js | 150 - .../components/storage_table_spec.js | 63 - .../components/storage_type_icon_spec.js | 41 - .../projects/storage_counter/mock_data.js | 92 - .../projects/storage_counter/utils_spec.js | 34 - .../releases/__snapshots__/util_spec.js.snap | 7 + .../releases/components/app_show_spec.js | 1 - spec/frontend/releases/util_spec.js | 23 +- .../repository/commits_service_spec.js | 7 - .../__snapshots__/last_commit_spec.js.snap | 6 +- .../components/blob_button_group_spec.js | 1 + .../components/blob_content_viewer_spec.js | 50 +- .../blob_viewers/pdf_viewer_spec.js | 59 + .../blob_viewers/text_viewer_spec.js | 30 - .../components/delete_blob_modal_spec.js | 26 +- .../repository/components/table/row_spec.js | 25 +- .../components/tree_content_spec.js | 28 +- .../components/upload_blob_modal_spec.js | 4 +- spec/frontend/repository/mock_data.js | 10 +- .../admin_runners/admin_runners_app_spec.js | 6 +- .../cells/runner_actions_cell_spec.js | 364 +- .../runner_contacted_state_badge_spec.js | 86 - .../components/runner_delete_modal_spec.js | 60 + .../runner_filtered_search_bar_spec.js | 11 - .../runner/components/runner_list_spec.js | 44 + .../components/runner_status_badge_spec.js | 130 + .../search_tokens/tag_token_spec.js | 2 +- .../stat/runner_online_stat_spec.js | 34 + .../group_runners/group_runners_app_spec.js | 10 +- .../components/app_spec.js | 55 +- .../components/training_provider_list_spec.js | 88 + .../security_configuration/mock_data.js | 30 + .../security_configuration/utils_spec.js | 189 +- .../self_monitor_form_spec.js.snap | 1 + .../__snapshots__/empty_state_spec.js.snap | 6 +- .../set_status_modal_wrapper_spec.js | 39 +- spec/frontend/shortcuts_spec.js | 9 + .../sidebar_assignees_widget_spec.js | 2 +- ....js => attention_requested_toggle_spec.js} | 4 +- .../sidebar/components/crm_contacts_spec.js | 87 + .../date/sidebar_date_widget_spec.js | 9 +- .../date/sidebar_inherit_date_spec.js | 12 +- spec/frontend/sidebar/components/mock_data.js | 56 + .../sidebar_reference_widget_spec.js | 2 +- .../sidebar_dropdown_widget_spec.js | 16 +- .../components/time_tracking/mock_data.js | 10 + spec/frontend/sidebar/mock_data.js | 31 +- spec/frontend/sidebar/sidebar_labels_spec.js | 190 - .../snippet_visibility_edit_spec.js.snap | 1 + .../frontend/snippets/components/edit_spec.js | 1 + .../components/snippet_header_spec.js | 2 +- spec/frontend/snippets/test_utils.js | 1 + spec/frontend/tabs/index_spec.js | 260 + .../components/terraform_list_spec.js | 1 + spec/frontend/test_setup.js | 98 +- spec/frontend/token_access/mock_data.js | 13 +- spec/frontend/transfer_edit_spec.js | 10 +- .../components/extensions/utils_spec.js | 18 + .../components/states/commit_edit_spec.js | 9 - .../states/mr_widget_archived_spec.js | 2 +- .../states/mr_widget_conflicts_spec.js | 42 +- .../states/mr_widget_ready_to_merge_spec.js | 12 +- .../components/states/mr_widget_wip_spec.js | 4 +- .../terraform/terraform_plan_spec.js | 6 +- spec/frontend/vue_mr_widget/mock_data.js | 2 - .../vue_mr_widget/mr_widget_options_spec.js | 60 +- spec/frontend/vue_mr_widget/test_extension.js | 39 - .../frontend/vue_mr_widget/test_extensions.js | 99 + .../__snapshots__/source_editor_spec.js.snap | 1 + .../components/chronic_duration_input_spec.js | 390 ++ .../components/clipboard_button_spec.js | 10 + .../confirm_danger/confirm_danger_spec.js | 6 + .../components/confirm_modal_spec.js | 63 +- .../design_note_pin_spec.js.snap | 55 + .../design_note_pin_spec.js | 12 +- .../diff_viewer/viewers/renamed_spec.js | 7 +- .../components/dismissible_alert_spec.js | 4 + .../components/dom_element_listener_spec.js | 116 + .../vue_shared/components/file_icon_spec.js | 2 +- .../filtered_search_bar/mock_data.js | 104 - .../tokens/base_token_spec.js | 57 +- .../tokens/epic_token_spec.js | 169 - .../tokens/iteration_token_spec.js | 116 - .../tokens/milestone_token_spec.js | 13 +- .../tokens/release_token_spec.js | 2 +- .../tokens/weight_token_spec.js | 38 - .../form/__snapshots__/title_spec.js.snap | 1 + .../form/input_copy_toggle_visibility_spec.js | 231 + .../components/gl_modal_vuex_spec.js | 7 +- .../components/header_ci_component_spec.js | 18 +- .../components/line_numbers_spec.js | 71 + .../components/markdown/toolbar_spec.js | 39 - .../components/namespace_select/mock_data.js | 11 + .../namespace_select/namespace_select_spec.js | 86 + .../components/notes/placeholder_note_spec.js | 24 +- .../pagination_bar}/pagination_bar_spec.js | 11 +- .../project_list_item_spec.js | 8 +- .../project_selector/project_selector_spec.js | 5 +- .../components/registry/metadata_item_spec.js | 2 +- .../runner_instructions_modal_spec.js | 10 +- .../collapsed_grouped_date_picker_spec.js | 103 - .../labels_select_vue/dropdown_button_spec.js | 7 +- .../dropdown_contents_create_view_spec.js | 7 +- .../dropdown_contents_labels_view_spec.js | 7 +- .../dropdown_contents_spec.js | 7 +- .../labels_select_vue/dropdown_title_spec.js | 7 +- .../labels_select_vue/dropdown_value_spec.js | 7 +- .../labels_select_root_spec.js | 7 +- .../sidebar/labels_select_vue/mock_data.js | 2 +- .../dropdown_contents_create_view_spec.js | 8 +- .../dropdown_contents_labels_view_spec.js | 8 +- .../dropdown_contents_spec.js | 41 +- .../dropdown_header_spec.js | 17 + .../dropdown_value_spec.js | 5 + .../labels_select_root_spec.js | 77 +- .../sidebar/labels_select_widget/mock_data.js | 17 + .../components/source_viewer_spec.js | 59 + .../storage_counter/usage_graph_spec.js | 137 - .../components/tooltip_on_truncate_spec.js | 237 +- .../vue_shared/components/user_select_spec.js | 8 +- .../components/vuex_module_provider_spec.js | 7 +- .../gl_feature_flags_plugin_spec.js | 11 +- .../components/issuable_create_root_spec.js | 4 +- .../create}/components/issuable_form_spec.js | 2 +- .../issuable_bulk_edit_sidebar_spec.js | 2 +- .../list}/components/issuable_item_spec.js | 109 +- .../components/issuable_list_root_spec.js | 33 +- .../list}/components/issuable_tabs_spec.js | 2 +- .../issuable/list}/mock_data.js | 0 .../show}/components/issuable_body_spec.js | 8 +- .../components/issuable_description_spec.js | 2 +- .../components/issuable_edit_form_spec.js | 4 +- .../show}/components/issuable_header_spec.js | 2 +- .../components/issuable_show_root_spec.js | 8 +- .../show}/components/issuable_title_spec.js | 2 +- .../issuable/show}/mock_data.js | 2 +- .../components/issuable_sidebar_root_spec.js | 4 +- .../vue_shared/security_reports/mock_data.js | 11 + spec/frontend/vue_shared/translate_spec.js | 87 +- .../work_items/components/item_title_spec.js | 56 + spec/frontend/work_items/mock_data.js | 25 +- .../work_items/pages/create_work_item_spec.js | 94 + .../work_items/pages/work_item_root_spec.js | 38 +- spec/frontend/work_items/router_spec.js | 7 + .../ide/helpers/ide_helper.js | 14 +- .../frontend_integration/ide/helpers/start.js | 4 +- .../ide/user_opens_ide_spec.js | 6 +- .../test_helpers/setup/index.js | 2 +- .../test_helpers/setup/setup_globals.js | 11 +- .../mutations/merge_requests/accept_spec.rb | 10 +- .../mutations/merge_requests/create_spec.rb | 5 +- .../mutations/user_callouts/create_spec.rb | 6 +- .../board_list_issues_resolver_spec.rb | 12 +- .../ci/runner_status_resolver_spec.rb | 40 + .../resolvers/ci/runners_resolver_spec.rb | 2 + .../agent_activity_events_resolver_spec.rb | 34 + ...container_repository_tags_resolver_spec.rb | 54 + .../package_pipelines_resolver_spec.rb | 84 + .../users/participants_resolver_spec.rb | 83 + .../usage_trends/measurement_type_spec.rb | 12 +- spec/graphql/types/base_edge_spec.rb | 76 + .../boards/board_issue_input_type_spec.rb | 2 +- spec/graphql/types/ci/job_need_union_spec.rb | 43 + .../types/ci/job_token_scope_type_spec.rb | 8 +- spec/graphql/types/ci/job_type_spec.rb | 1 + .../agent_activity_event_type_spec.rb | 11 + .../graphql/types/clusters/agent_type_spec.rb | 2 +- ...ntainer_respository_tags_sort_enum_spec.rb | 13 + spec/graphql/types/issue_type_enum_spec.rb | 6 +- spec/graphql/types/issue_type_spec.rb | 10 +- .../packages/package_details_type_spec.rb | 9 + spec/graphql/types/project_type_spec.rb | 2 +- spec/graphql/types/range_input_type_spec.rb | 2 +- .../types/repository/blob_type_spec.rb | 2 + spec/graphql/types/subscription_type_spec.rb | 1 + .../user_callout_feature_name_enum_spec.rb | 2 +- spec/helpers/access_tokens_helper_spec.rb | 49 + spec/helpers/application_helper_spec.rb | 14 - spec/helpers/auth_helper_spec.rb | 239 +- spec/helpers/badges_helper_spec.rb | 129 + spec/helpers/ci/jobs_helper_spec.rb | 25 + spec/helpers/ide_helper_spec.rb | 4 +- spec/helpers/invite_members_helper_spec.rb | 172 +- spec/helpers/issues_helper_spec.rb | 9 + spec/helpers/jira_connect_helper_spec.rb | 12 +- spec/helpers/learn_gitlab_helper_spec.rb | 6 + spec/helpers/markup_helper_spec.rb | 6 +- spec/helpers/namespaces_helper_spec.rb | 33 + spec/helpers/nav/new_dropdown_helper_spec.rb | 30 +- spec/helpers/notify_helper_spec.rb | 49 - spec/helpers/numbers_helper_spec.rb | 31 + spec/helpers/packages_helper_spec.rb | 30 - spec/helpers/projects_helper_spec.rb | 27 + .../routing/pseudonymization_helper_spec.rb | 22 +- spec/helpers/sorting_helper_spec.rb | 73 + spec/helpers/tab_helper_spec.rb | 83 +- spec/helpers/time_zone_helper_spec.rb | 36 +- .../callouts_helper_spec.rb} | 111 +- .../users/group_callouts_helper_spec.rb | 87 + spec/helpers/version_check_helper_spec.rb | 4 +- ...le_subscription_adapter_identifier_spec.rb | 6 + .../forbid_sidekiq_in_transactions_spec.rb | 38 + spec/initializers/lograge_spec.rb | 10 + spec/initializers/session_store_spec.rb | 24 +- .../validate_database_config_spec.rb | 3 + spec/lib/after_commit_queue_spec.rb | 17 - .../lib/api/ci/helpers/runner_helpers_spec.rb | 5 +- spec/lib/api/entities/changelog_spec.rb | 17 + spec/lib/api/entities/ci/pipeline_spec.rb | 16 + .../entities/personal_access_token_spec.rb | 26 + spec/lib/api/entities/plan_limit_spec.rb | 1 + .../project_import_failed_relation_spec.rb | 3 +- .../entities/project_import_status_spec.rb | 60 +- .../filter/external_link_filter_spec.rb | 11 + .../lib/banzai/filter/footnote_filter_spec.rb | 45 +- ...suable_reference_expansion_filter_spec.rb} | 66 +- .../lib/banzai/filter/markdown_filter_spec.rb | 8 +- .../lib/banzai/filter/plantuml_filter_spec.rb | 6 +- .../references/issue_reference_filter_spec.rb | 16 + .../merge_request_reference_filter_spec.rb | 16 + .../filter/references/reference_cache_spec.rb | 12 - .../banzai/filter/sanitization_filter_spec.rb | 5 + .../filter/syntax_highlight_filter_spec.rb | 42 +- .../lib/banzai/pipeline/full_pipeline_spec.rb | 17 +- .../pipeline/plain_markdown_pipeline_spec.rb | 2 +- .../reference_parser/base_parser_spec.rb | 8 +- spec/lib/banzai/render_context_spec.rb | 10 +- spec/lib/bulk_imports/clients/http_spec.rb | 4 +- .../common/pipelines/badges_pipeline_spec.rb | 96 + .../common/pipelines/labels_pipeline_spec.rb | 10 - .../pipelines/milestones_pipeline_spec.rb | 10 - .../common/pipelines/uploads_pipeline_spec.rb | 145 +- .../common/rest/get_badges_query_spec.rb | 36 + .../groups/pipelines/badges_pipeline_spec.rb | 116 - .../pipelines/group_avatar_pipeline_spec.rb | 77 - .../groups/rest/get_badges_query_spec.rb | 22 - spec/lib/bulk_imports/groups/stage_spec.rb | 8 +- spec/lib/bulk_imports/ndjson_pipeline_spec.rb | 26 +- .../get_snippet_repository_query_spec.rb | 58 + .../pipelines/auto_devops_pipeline_spec.rb | 52 + .../pipelines/ci_pipelines_pipeline_spec.rb | 176 + ...ntainer_expiration_policy_pipeline_spec.rb | 40 + .../pipeline_schedules_pipeline_spec.rb | 64 + .../project_attributes_pipeline_spec.rb | 159 + .../project_feature_pipeline_spec.rb | 45 + .../pipelines/repository_pipeline_spec.rb | 11 + .../service_desk_setting_pipeline_spec.rb | 27 + .../pipelines/snippets_pipeline_spec.rb | 119 + .../snippets_repository_pipeline_spec.rb | 168 + spec/lib/bulk_imports/projects/stage_spec.rb | 12 + .../collector/payload_validator_spec.rb | 16 +- spec/lib/feature/definition_spec.rb | 72 +- spec/lib/feature_spec.rb | 109 + .../redis_hll_generator_spec.rb | 12 +- .../usage_metric_definition_generator_spec.rb | 11 +- .../aggregated/records_fetcher_spec.rb | 13 + spec/lib/gitlab/anonymous_session_spec.rb | 14 +- spec/lib/gitlab/application_context_spec.rb | 32 + .../gitlab/application_rate_limiter_spec.rb | 67 +- spec/lib/gitlab/asciidoc_spec.rb | 12 +- .../auth/user_access_denied_reason_spec.rb | 1 + spec/lib/gitlab/auth_spec.rb | 36 +- ...d_merge_request_diff_commits_count_spec.rb | 66 - ...ied_to_approval_merge_request_rule_spec.rb | 61 - ...ployment_clusters_from_deployments_spec.rb | 44 - ...nment_id_deployment_merge_requests_spec.rb | 46 - ...ll_merge_request_cleanup_schedules_spec.rb | 53 - .../backfill_namespace_settings_spec.rb | 23 - .../backfill_project_settings_spec.rb | 24 - ...backfill_push_rules_id_in_projects_spec.rb | 32 - .../drop_invalid_security_findings_spec.rb | 56 + .../fix_promoted_epics_discussion_ids_spec.rb | 49 - .../fix_user_namespace_names_spec.rb | 104 - .../fix_user_project_route_names_spec.rb | 98 - .../job_coordinator_spec.rb | 22 +- .../link_lfs_objects_projects_spec.rb | 113 - ...ate_fingerprint_sha256_within_keys_spec.rb | 93 - .../migrate_pages_metadata_spec.rb | 36 - .../migrate_to_hashed_storage_spec.rb | 43 - .../populate_canonical_emails_spec.rb | 94 - ...ismissed_state_for_vulnerabilities_spec.rb | 44 - .../populate_has_vulnerabilities_spec.rb | 63 - ...late_merge_request_assignees_table_spec.rb | 70 - ...ulnerability_dismissal_information_spec.rb | 65 - ...pulate_personal_snippet_statistics_spec.rb | 141 - ...opulate_project_snippet_statistics_spec.rb | 224 - ...uthorizations_with_min_max_user_id_spec.rb | 38 - ...duplicate_vulnerabilities_findings_spec.rb | 175 + ...remove_vulnerability_finding_links_spec.rb | 66 + .../replace_blocked_by_links_spec.rb | 42 - .../reset_merge_status_spec.rb | 48 - ...d_runners_for_transferred_projects_spec.rb | 35 - ...set_merge_request_diff_files_count_spec.rb | 51 - ...o_match_visibility_level_of_parent_spec.rb | 46 - ...users_that_require_two_factor_auth_spec.rb | 74 - .../update_timelogs_null_spent_at_spec.rb | 40 + .../create_resource_user_mention_spec.rb | 15 - spec/lib/gitlab/background_migration_spec.rb | 5 +- .../bitbucket_server_import/importer_spec.rb | 16 +- .../lib/gitlab/ci/build/context/build_spec.rb | 22 +- .../gitlab/ci/build/context/global_spec.rb | 22 +- .../gitlab/ci/build/policy/variables_spec.rb | 4 +- .../build/rules/rule/clause/changes_spec.rb | 8 +- spec/lib/gitlab/ci/build/rules/rule_spec.rb | 2 +- spec/lib/gitlab/ci/build/rules_spec.rb | 6 +- .../lib/gitlab/ci/config/entry/bridge_spec.rb | 2 +- spec/lib/gitlab/ci/config/entry/job_spec.rb | 29 +- .../ci/config/entry/processable_spec.rb | 29 +- spec/lib/gitlab/ci/config/entry/tags_spec.rb | 22 +- .../gitlab/ci/config/external/context_spec.rb | 18 +- .../ci/config/external/processor_spec.rb | 13 +- .../gitlab/ci/config/external/rules_spec.rb | 6 +- .../ci/parsers/terraform/tfplan_spec.rb | 4 +- .../pipeline/chain/create_deployments_spec.rb | 97 + .../gitlab/ci/pipeline/chain/create_spec.rb | 70 + .../chain/ensure_environments_spec.rb | 94 + .../chain/ensure_resource_groups_spec.rb | 85 + .../pipeline/chain/validate/external_spec.rb | 18 + .../expression/lexeme/variable_spec.rb | 25 +- .../ci/pipeline/expression/statement_spec.rb | 1 + spec/lib/gitlab/ci/pipeline/logger_spec.rb | 132 + .../lib/gitlab/ci/pipeline/seed/build_spec.rb | 83 +- .../gitlab/ci/status/bridge/common_spec.rb | 10 +- spec/lib/gitlab/ci/tags/bulk_insert_spec.rb | 39 + spec/lib/gitlab/ci/variables/builder_spec.rb | 10 - spec/lib/gitlab/ci/yaml_processor_spec.rb | 6 +- .../orphan_lfs_file_references_spec.rb | 2 +- .../lib/gitlab/config/entry/undefined_spec.rb | 6 + .../config_loader_spec.rb | 48 +- .../lib/gitlab/contributions_calendar_spec.rb | 38 +- spec/lib/gitlab/daemon_spec.rb | 24 + .../async_indexes/index_creator_spec.rb | 17 +- .../background_migration/batched_job_spec.rb | 12 +- .../batched_migration_spec.rb | 38 +- .../count/reltuples_count_strategy_spec.rb | 16 +- .../count/tablesample_count_strategy_spec.rb | 8 +- .../load_balancing/configuration_spec.rb | 9 + .../load_balancing/load_balancer_spec.rb | 18 +- .../load_balancing/service_discovery_spec.rb | 8 +- .../sidekiq_server_middleware_spec.rb | 117 +- .../database/load_balancing/sticking_spec.rb | 17 - .../gitlab/database/load_balancing_spec.rb | 18 + .../database/loose_foreign_keys_spec.rb | 45 + .../loose_foreign_key_helpers_spec.rb | 9 +- .../gitlab/database/migration_helpers_spec.rb | 2 +- .../background_migration_helpers_spec.rb | 231 +- ...tched_background_migration_helpers_spec.rb | 164 + .../migrations/instrumentation_spec.rb | 17 +- .../observers/query_details_spec.rb | 4 +- .../migrations/observers/query_log_spec.rb | 4 +- .../observers/query_statistics_spec.rb | 4 +- .../total_database_size_change_spec.rb | 4 +- .../observers/transaction_duration_spec.rb | 9 +- .../gitlab/database/migrations/runner_spec.rb | 4 +- .../detached_partition_dropper_spec.rb | 12 - .../partitioning/partition_manager_spec.rb | 28 +- .../single_numeric_list_partition_spec.rb | 50 + .../sliding_list_strategy_spec.rb | 214 + .../gitlab/database/query_analyzer_spec.rb | 9 + .../gitlab_schemas_metrics_spec.rb | 2 +- ...revent_cross_database_modification_spec.rb | 62 + .../database/reindexing/coordinator_spec.rb | 10 +- spec/lib/gitlab/database/reindexing_spec.rb | 74 +- spec/lib/gitlab/database/shared_model_spec.rb | 12 + .../gitlab/database/type/json_pg_safe_spec.rb | 26 + spec/lib/gitlab/diff/custom_diff_spec.rb | 62 + spec/lib/gitlab/diff/file_spec.rb | 6 +- spec/lib/gitlab/diff/highlight_spec.rb | 14 - .../handler/create_issue_handler_spec.rb | 11 + .../handler/service_desk_handler_spec.rb | 127 +- .../hook/smime_signature_interceptor_spec.rb | 1 + .../email/service_desk_receiver_spec.rb | 34 +- spec/lib/gitlab/empty_search_results_spec.rb | 31 + spec/lib/gitlab/error_tracking_spec.rb | 10 - spec/lib/gitlab/etag_caching/store_spec.rb | 14 + .../gitlab/exception_log_formatter_spec.rb | 57 + .../controller_concern_spec.rb | 2 +- .../gitlab/experimentation/experiment_spec.rb | 1 + spec/lib/gitlab/git/commit_spec.rb | 10 + .../gitlab/git/diff_stats_collection_spec.rb | 2 +- .../gitlab/git/rugged_impl/use_rugged_spec.rb | 2 +- spec/lib/gitlab/git/tree_spec.rb | 10 +- .../gitaly_client/commit_service_spec.rb | 43 - .../conflict_files_stitcher_spec.rb | 4 +- .../gitaly_client/diff_stitcher_spec.rb | 2 +- spec/lib/gitlab/github_import/client_spec.rb | 71 + .../importer/diff_note_importer_spec.rb | 27 +- .../importer/note_importer_spec.rb | 2 + .../github_import/parallel_importer_spec.rb | 5 + spec/lib/gitlab/gon_helper_spec.rb | 2 +- .../gpg/invalid_gpg_signature_updater_spec.rb | 2 +- .../loggers/exception_logger_spec.rb | 4 +- .../keyset/connection_generic_keyset_spec.rb | 6 +- .../pagination/keyset/connection_spec.rb | 6 +- .../graphql/tracers/logger_tracer_spec.rb | 14 +- .../graphql/tracers/metrics_tracer_spec.rb | 12 +- .../graphql/tracers/timer_tracer_spec.rb | 13 + .../hook_data/merge_request_builder_spec.rb | 1 + .../import/import_failure_service_spec.rb | 83 +- spec/lib/gitlab/import/set_async_jid_spec.rb | 2 +- spec/lib/gitlab/import_export/all_models.yml | 5 + .../attributes_permitter_spec.rb | 7 +- .../import_export/command_line_util_spec.rb | 35 + .../project/tree_restorer_spec.rb | 6 +- .../import_export/safe_model_attributes.yml | 2 + spec/lib/gitlab/lets_encrypt/client_spec.rb | 4 +- .../lib/gitlab/lograge/custom_options_spec.rb | 50 + .../commit_message_generator_spec.rb | 290 + .../merge_commit_message_spec.rb | 219 - .../mergeability/redis_interface_spec.rb | 8 +- .../metrics/exporter/base_exporter_spec.rb | 4 +- .../metrics/exporter/sidekiq_exporter_spec.rb | 38 +- .../metrics/samplers/database_sampler_spec.rb | 167 +- .../metrics/subscribers/active_record_spec.rb | 1 + .../gitlab/multi_collection_paginator_spec.rb | 2 +- .../gitlab/pagination/keyset/order_spec.rb | 2 +- .../pagination/offset_pagination_spec.rb | 37 +- .../patch/legacy_database_config_spec.rb | 3 + spec/lib/gitlab/process_management_spec.rb | 144 + spec/lib/gitlab/quick_actions/dsl_spec.rb | 4 +- spec/lib/gitlab/rack_attack_spec.rb | 12 +- spec/lib/gitlab/rate_limit_helpers_spec.rb | 50 - spec/lib/gitlab/redis/multi_store_spec.rb | 268 +- spec/lib/gitlab/redis/sessions_spec.rb | 87 +- spec/lib/gitlab/regex_spec.rb | 44 +- .../gitlab/relative_positioning/range_spec.rb | 18 +- .../repository_archive_rate_limiter_spec.rb | 56 + spec/lib/gitlab/saas_spec.rb | 13 + .../lib/gitlab/search/abuse_detection_spec.rb | 114 + ...ive_coercion_from_string_validator_spec.rb | 35 + .../no_abusive_term_length_validator_spec.rb | 71 + spec/lib/gitlab/search/params_spec.rb | 136 + .../security/scan_configuration_spec.rb | 64 + spec/lib/gitlab/sidekiq_enq_spec.rb | 93 - .../sidekiq_logging/structured_logger_spec.rb | 6 +- .../sidekiq_middleware/server_metrics_spec.rb | 2 + .../sidekiq_status/client_middleware_spec.rb | 21 +- spec/lib/gitlab/sidekiq_status_spec.rb | 69 +- spec/lib/gitlab/spamcheck/client_spec.rb | 24 + spec/lib/gitlab/subscription_portal_spec.rb | 2 + .../destinations/snowplow_micro_spec.rb | 20 + .../tracking/destinations/snowplow_spec.rb | 2 +- spec/lib/gitlab/tracking_spec.rb | 6 +- .../aggregates/sources/postgres_hll_spec.rb | 9 +- ...figured_to_gitlab_collector_metric_spec.rb | 22 + .../snowplow_enabled_metric_spec.rb | 22 + .../names_suggestions/generator_spec.rb | 28 +- spec/lib/gitlab/usage_data_spec.rb | 368 +- spec/lib/gitlab/utils/usage_data_spec.rb | 157 +- spec/lib/gitlab/utils_spec.rb | 12 +- .../google_api/cloud_platform/client_spec.rb | 43 + .../concerns/link_with_html_options_spec.rb | 39 + .../menus/packages_registries_menu_spec.rb | 59 +- spec/lib/sidebars/menu_spec.rb | 19 + .../projects/menus/shimo_menu_spec.rb | 44 + spec/lib/version_check_spec.rb | 60 +- .../emails/in_product_marketing_spec.rb | 47 +- spec/mailers/notify_spec.rb | 68 +- spec/metrics_server/metrics_server_spec.rb | 109 + ...x_ci_sources_pipelines_index_names_spec.rb | 67 + ...150320_create_base_work_item_types_spec.rb | 22 +- ...203408_upsert_base_work_item_types_spec.rb | 31 +- ...sume_remaining_user_namespace_jobs_spec.rb | 21 + ...nstraint_to_security_findings_uuid_spec.rb | 23 + ...ule_drop_invalid_security_findings_spec.rb | 71 + ...nge_namespace_type_default_to_user_spec.rb | 5 + ...duplicate_vulnerabilities_findings_spec.rb | 191 + ...igrate_remaining_u2f_registrations_spec.rb | 43 + ...bjects_external_storage_auth_token_spec.rb | 78 + ...204445_add_task_to_work_item_types_spec.rb | 54 + ..._sequence_column_for_sprints_table_spec.rb | 42 + ...projects_on_marked_for_deletion_at_spec.rb | 18 + ...ty_finding_signatures_for_findings_spec.rb | 88 + ...dule_update_timelogs_null_spent_at_spec.rb | 44 + spec/models/active_session_spec.rb | 591 +- .../cycle_analytics/project_stage_spec.rb | 25 + spec/models/application_setting_spec.rb | 28 + spec/models/bulk_imports/entity_spec.rb | 56 + spec/models/chat_name_spec.rb | 4 - spec/models/ci/build_spec.rb | 49 +- spec/models/ci/job_artifact_spec.rb | 4 + spec/models/ci/namespace_mirror_spec.rb | 94 + spec/models/ci/pending_build_spec.rb | 12 +- spec/models/ci/pipeline_spec.rb | 96 +- spec/models/ci/project_mirror_spec.rb | 36 + spec/models/ci/runner_namespace_spec.rb | 6 - spec/models/ci/runner_project_spec.rb | 6 - spec/models/ci/runner_spec.rb | 275 +- spec/models/ci/stage_spec.rb | 12 + spec/models/clusters/agent_spec.rb | 33 + spec/models/clusters/agent_token_spec.rb | 32 +- .../clusters/agents/activity_event_spec.rb | 32 + .../clusters/applications/runner_spec.rb | 57 - .../gpg_signature_spec.rb | 4 +- .../x509_commit_signature_spec.rb | 2 +- spec/models/commit_spec.rb | 62 +- spec/models/commit_status_spec.rb | 86 +- .../concerns/after_commit_queue_spec.rb | 128 + spec/models/concerns/case_sensitivity_spec.rb | 5 +- spec/models/concerns/group_descendant_spec.rb | 6 +- .../models/concerns/loose_foreign_key_spec.rb | 66 - spec/models/concerns/participable_spec.rb | 74 +- spec/models/concerns/routable_spec.rb | 117 +- spec/models/concerns/sha_attribute_spec.rb | 2 +- spec/models/concerns/transactions_spec.rb | 21 + spec/models/container_repository_spec.rb | 33 +- .../models/customer_relations/contact_spec.rb | 23 + .../customer_relations/issue_contact_spec.rb | 28 +- spec/models/deployment_metrics_spec.rb | 2 +- spec/models/deployment_spec.rb | 116 +- spec/models/dev_ops_report/metric_spec.rb | 7 + spec/models/environment_spec.rb | 6 + spec/models/event_spec.rb | 2 +- spec/models/external_pull_request_spec.rb | 4 + spec/models/group_spec.rb | 45 +- spec/models/hooks/web_hook_spec.rb | 87 + .../issuable_escalation_status_spec.rb | 1 + spec/models/instance_configuration_spec.rb | 6 +- spec/models/integrations/jira_spec.rb | 2 +- .../integrations/microsoft_teams_spec.rb | 13 +- spec/models/integrations/shimo_spec.rb | 22 + spec/models/issue/email_spec.rb | 19 + spec/models/issue_spec.rb | 31 +- spec/models/lfs_objects_project_spec.rb | 22 + .../loose_foreign_keys/deleted_record_spec.rb | 149 +- spec/models/member_spec.rb | 2 - spec/models/merge_request/metrics_spec.rb | 6 + spec/models/merge_request_assignee_spec.rb | 12 +- spec/models/merge_request_reviewer_spec.rb | 12 +- spec/models/merge_request_spec.rb | 18 +- .../namespace/traversal_hierarchy_spec.rb | 2 +- spec/models/namespace_spec.rb | 158 +- spec/models/packages/build_info_spec.rb | 42 + spec/models/packages/conan/metadatum_spec.rb | 49 + .../postgresql/replication_slot_spec.rb | 20 +- .../group_root_ancestor_preloader_spec.rb | 63 - spec/models/project_authorization_spec.rb | 71 +- spec/models/project_spec.rb | 183 +- spec/models/project_team_spec.rb | 1 - spec/models/repository_spec.rb | 10 + spec/models/snippet_spec.rb | 45 + spec/models/terraform/state_version_spec.rb | 5 + spec/models/timelog_spec.rb | 12 +- spec/models/u2f_registration_spec.rb | 19 +- spec/models/user_spec.rb | 220 +- .../callout_spec.rb} | 4 +- .../{concerns => users}/calloutable_spec.rb | 10 +- spec/models/work_item/type_spec.rb | 4 +- .../agents/activity_event_policy_spec.rb | 31 + spec/policies/group_policy_spec.rb | 80 + .../project_namespace_policy_spec.rb | 4 +- .../namespaces/user_namespace_policy_spec.rb | 30 +- spec/presenters/blob_presenter_spec.rb | 36 +- spec/presenters/ci/pipeline_presenter_spec.rb | 24 + .../merge_request_presenter_spec.rb | 24 + .../packages/npm/package_presenter_spec.rb | 21 +- .../security/configuration_presenter_spec.rb | 301 + .../admin/integrations_controller_spec.rb | 50 + .../admin/version_check_controller_spec.rb | 50 + spec/requests/api/admin/plan_limits_spec.rb | 7 +- spec/requests/api/ci/job_artifacts_spec.rb | 661 ++ spec/requests/api/ci/jobs_spec.rb | 609 +- spec/requests/api/ci/pipelines_spec.rb | 5 +- .../api/ci/runner/jobs_artifacts_spec.rb | 12 +- .../api/ci/runner/jobs_request_post_spec.rb | 4 +- .../api/ci/runner/runners_post_spec.rb | 64 +- spec/requests/api/ci/runners_spec.rb | 29 +- spec/requests/api/commit_statuses_spec.rb | 34 +- spec/requests/api/commits_spec.rb | 4 +- spec/requests/api/composer_packages_spec.rb | 14 + .../api/conan_project_packages_spec.rb | 5 +- .../api/error_tracking/collector_spec.rb | 12 +- .../boards/board_list_issues_query_spec.rb | 46 +- .../graphql/boards/board_list_query_spec.rb | 33 +- .../graphql/boards/board_lists_query_spec.rb | 8 +- spec/requests/api/graphql/ci/jobs_spec.rb | 99 +- .../requests/api/graphql/ci/pipelines_spec.rb | 12 +- spec/requests/api/graphql/ci/runner_spec.rb | 50 +- spec/requests/api/graphql/ci/runners_spec.rb | 9 + .../container_repository_details_spec.rb | 82 + .../graphql/current_user/todos_query_spec.rb | 2 +- .../design_management/delete_spec.rb | 2 +- .../mutations/issues/set_crm_contacts_spec.rb | 16 +- .../mutations/user_callouts/create_spec.rb | 2 +- .../api/graphql/packages/package_spec.rb | 87 +- .../graphql/project/cluster_agents_spec.rb | 35 +- .../requests/api/graphql/project/jobs_spec.rb | 56 + .../api/graphql/project/pipeline_spec.rb | 42 + .../api/graphql/project_query_spec.rb | 34 + spec/requests/api/groups_spec.rb | 140 +- spec/requests/api/import_github_spec.rb | 6 +- spec/requests/api/invitations_spec.rb | 18 - .../api/issues/get_project_issues_spec.rb | 2 +- spec/requests/api/labels_spec.rb | 16 + .../api/markdown_golden_master_spec.rb | 9 + spec/requests/api/members_spec.rb | 31 - spec/requests/api/project_import_spec.rb | 2 +- spec/requests/api/projects_spec.rb | 23 + spec/requests/api/repositories_spec.rb | 69 +- spec/requests/api/search_spec.rb | 17 + spec/requests/api/settings_spec.rb | 9 - spec/requests/api/terraform/state_spec.rb | 10 + spec/requests/api/todos_spec.rb | 2 +- spec/requests/api/topics_spec.rb | 40 +- spec/requests/api/v3/github_spec.rb | 12 - .../groups/crm/contacts_controller_spec.rb | 101 + .../crm/organizations_controller_spec.rb | 91 + spec/requests/lfs_http_spec.rb | 40 +- spec/requests/openid_connect_spec.rb | 10 +- .../service_accounts_controller_spec.rb | 184 + .../integrations/shimos_controller_spec.rb | 37 + .../context_commit_diffs_spec.rb | 99 + .../projects/merge_requests/diffs_spec.rb | 1 + spec/requests/projects/usage_quotas_spec.rb | 10 - spec/requests/rack_attack_global_spec.rb | 28 +- spec/routing/notifications_routing_spec.rb | 5 +- spec/rubocop/code_reuse_helpers_spec.rb | 75 + .../cop/graphql/authorize_types_spec.rb | 2 +- spec/rubocop/cop/graphql/old_types_spec.rb | 16 +- .../cop/qa/testcase_link_format_spec.rb | 45 + .../cop/static_translation_definition_spec.rb | 16 +- spec/serializers/build_details_entity_spec.rb | 6 +- spec/serializers/{ => ci}/job_entity_spec.rb | 2 +- .../job_serializer_spec.rb} | 2 +- spec/serializers/ci/pipeline_entity_spec.rb | 12 + spec/serializers/deployment_entity_spec.rb | 4 + .../merge_request_widget_entity_spec.rb | 4 +- .../merge_requests/pipeline_entity_spec.rb | 5 + ...nd_records_due_for_refresh_service_spec.rb | 12 +- .../archive_extraction_service_spec.rb | 60 + .../bulk_imports/tree_export_service_spec.rb | 23 +- .../uploads_export_service_spec.rb | 24 + .../ci/after_requeue_job_service_spec.rb | 52 +- .../ci/create_pipeline_service/logger_spec.rb | 139 + .../ci/create_pipeline_service/tags_spec.rb | 173 +- .../ci/create_pipeline_service_spec.rb | 110 + .../ci/expire_pipeline_cache_service_spec.rb | 54 +- ...generate_terraform_reports_service_spec.rb | 2 +- .../destroy_all_expired_service_spec.rb | 40 + .../destroy_batch_service_spec.rb | 87 +- .../ci/parse_dotenv_artifact_service_spec.rb | 40 + .../atomic_processing_service_spec.rb | 1159 +++- .../shared_processing_service.rb | 1040 ---- ...ared_processing_service_tests_with_yaml.rb | 61 - spec/services/ci/play_build_service_spec.rb | 17 +- .../ci/process_sync_events_service_spec.rb | 129 + spec/services/ci/register_job_service_spec.rb | 106 +- spec/services/ci/retry_build_service_spec.rb | 27 +- .../stuck_builds/drop_pending_service_spec.rb | 46 +- .../ci/update_pending_build_service_spec.rb | 8 +- .../agent_tokens/create_service_spec.rb | 19 + .../cleanup/project_namespace_service_spec.rb | 26 + .../cleanup/service_account_service_spec.rb | 14 + .../prometheus_health_check_service_spec.rb | 2 +- .../concerns/audit_event_save_type_spec.rb | 28 + ...b => find_cached_manifest_service_spec.rb} | 40 +- .../pull_manifest_service_spec.rb | 77 - .../older_deployments_drop_service_spec.rb | 2 + spec/services/events/destroy_service_spec.rb | 50 + .../feature_flags/create_service_spec.rb | 20 +- .../feature_flags/update_service_spec.rb | 20 +- spec/services/git/branch_push_service_spec.rb | 38 - .../git/process_ref_changes_service_spec.rb | 44 + .../service_accounts_service_spec.rb | 69 +- spec/services/groups/create_service_spec.rb | 10 + spec/services/groups/transfer_service_spec.rb | 2 +- .../update_shared_runners_service_spec.rb | 6 + spec/services/import/github_service_spec.rb | 33 +- .../create_service_spec.rb | 30 + .../propagate_service_spec.rb} | 2 +- spec/services/issues/create_service_spec.rb | 24 +- .../issues/set_crm_contacts_service_spec.rb | 88 +- spec/services/issues/update_service_spec.rb | 14 +- .../batch_cleaner_service_spec.rb | 59 +- .../cleaner_service_spec.rb | 25 +- spec/services/members/create_service_spec.rb | 74 - .../after_create_service_spec.rb | 56 +- .../merge_requests/approval_service_spec.rb | 10 +- ...remove_attention_requested_service_spec.rb | 45 + .../merge_requests/close_service_spec.rb | 4 + .../handle_assignees_change_service_spec.rb | 8 + .../merge_requests/merge_service_spec.rb | 2 +- .../merge_to_ref_service_spec.rb | 5 +- .../merge_requests/rebase_service_spec.rb | 21 + ...remove_attention_requested_service_spec.rb | 85 + ...ed_discussion_notification_service_spec.rb | 12 + .../merge_requests/squash_service_spec.rb | 48 +- ...toggle_attention_requested_service_spec.rb | 39 + spec/services/notification_service_spec.rb | 39 + .../update_distribution_service_spec.rb | 4 +- .../npm/create_package_service_spec.rb | 11 - .../services/projects/destroy_service_spec.rb | 133 +- .../prometheus/alerts/create_service_spec.rb | 2 +- .../prometheus/alerts/destroy_service_spec.rb | 2 +- .../prometheus/alerts/update_service_spec.rb | 2 +- .../projects/transfer_service_spec.rb | 4 +- .../protected_tags/create_service_spec.rb | 39 +- .../protected_tags/update_service_spec.rb | 39 +- .../quick_actions/interpret_service_spec.rb | 48 +- .../repositories/changelog_service_spec.rb | 31 +- spec/services/search_service_spec.rb | 104 +- .../submit_service_ping_service_spec.rb | 19 + spec/services/system_note_service_spec.rb | 42 +- .../system_notes/commit_service_spec.rb | 2 +- .../system_notes/issuables_service_spec.rb | 78 +- ... => unauthorized_features_service_spec.rb} | 22 +- ...pec.rb => dismiss_callout_service_spec.rb} | 6 +- ...efresh_authorized_projects_service_spec.rb | 39 +- .../verify_pages_domain_service_spec.rb | 3 +- spec/sidekiq_cluster/sidekiq_cluster_spec.rb | 135 +- spec/simplecov_env.rb | 12 +- spec/spec_helper.rb | 17 +- .../cross-database-modification-allowlist.yml | 59 - spec/support/database/multiple_databases.rb | 37 +- spec/support/database/prevent_cross_joins.rb | 10 +- spec/support/database/query_analyzer.rb | 12 +- spec/support/flaky_tests.rb | 2 +- spec/support/frontend_fixtures.rb | 16 + spec/support/graphql/fake_query_type.rb | 9 +- spec/support/graphql/field_inspection.rb | 2 +- spec/support/helpers/api_helpers.rb | 4 +- .../features/invite_members_modal_helper.rb | 10 +- spec/support/helpers/gitaly_setup.rb | 16 +- spec/support/helpers/gpg_helpers.rb | 8 +- spec/support/helpers/graphql_helpers.rb | 9 +- .../helpers/javascript_fixtures_helpers.rb | 6 + spec/support/helpers/memory_usage_helper.rb | 2 +- .../work_item_types_helper.rb | 27 + spec/support/helpers/modal_helpers.rb | 27 + .../helpers/navbar_structure_helper.rb | 11 + spec/support/helpers/session_helpers.rb | 4 +- spec/support/helpers/snowplow_helpers.rb | 14 +- spec/support/helpers/stub_gitlab_calls.rb | 2 +- spec/support/helpers/test_env.rb | 4 +- .../background_migrations_matchers.rb | 6 +- spec/support/redis/redis_helpers.rb | 7 + .../redis_new_instance_shared_examples.rb | 8 +- spec/support/redis/redis_shared_examples.rb | 21 +- spec/support/rspec.rb | 5 +- .../project_integrations_shared_context.rb | 2 +- .../markdown_golden_master_shared_examples.rb | 127 + .../navbar_structure_context.rb | 11 +- .../policies/group_policy_shared_context.rb | 1 + .../pipelines/wiki_pipeline_examples.rb | 25 +- ...create_pipeline_service_shared_examples.rb | 27 + ...ubish_import_controller_shared_examples.rb | 30 +- .../git_http_controller_shared_examples.rb | 10 +- .../unique_visits_shared_examples.rb | 16 +- .../wiki_actions_shared_examples.rb | 2 +- spec/support/shared_examples/csp.rb | 6 +- .../page_description_shared_examples.rb | 10 + .../sidebar_due_date_shared_examples.rb | 30 + .../sidebar_milestone_shared_examples.rb | 60 + .../features/sidebar_shared_examples.rb | 9 + .../features/snippets_shared_examples.rb | 2 +- .../user_updates_wiki_page_shared_examples.rb | 21 +- .../user_views_wiki_page_shared_examples.rb | 6 +- .../mentions_migration_shared_examples.rb | 108 - .../cycle_analytics/event_shared_examples.rb | 2 +- .../attributes_permitter_shared_examples.rb | 10 +- ...lti_store_feature_flags_shared_examples.rb | 43 + .../have_loose_foreign_key.rb | 50 +- .../mailers/notify_shared_examples.rb | 6 + ...ctive_record_subscriber_shared_examples.rb | 42 +- .../atomic_internal_id_shared_examples.rb | 22 +- .../chat_integration_shared_examples.rb | 12 +- ...ack_mattermost_notifier_shared_examples.rb | 8 +- .../models/member_shared_examples.rb | 8 - .../debian/component_file_shared_example.rb | 18 +- .../namespaces/traversal_examples.rb | 52 + .../namespaces/traversal_scope_examples.rb | 19 + .../api/composer_packages_shared_examples.rb | 62 + .../api/conan_packages_shared_examples.rb | 60 + .../mutations/snippets_shared_examples.rb | 6 +- ...d_project_packages_list_shared_examples.rb | 2 +- .../api/issuable_participants_examples.rb | 30 + .../api/npm_packages_shared_examples.rb | 13 - .../api/nuget_packages_shared_examples.rb | 4 +- .../api/pypi_packages_shared_examples.rb | 3 +- .../generate_distribution_shared_examples.rb | 20 +- ...ground_migration_worker_shared_examples.rb | 212 + .../database/multiple_databases_spec.rb | 39 + .../database/prevent_cross_joins_spec.rb | 9 + .../helpers/graphql_helpers_spec.rb | 15 + .../gitlab/background_migrations_rake_spec.rb | 49 + spec/tasks/gitlab/cleanup_rake_spec.rb | 18 +- spec/tasks/gitlab/db_rake_spec.rb | 75 +- spec/tasks/gitlab/gitaly_rake_spec.rb | 30 +- spec/tasks/gitlab/task_helpers_spec.rb | 2 + .../danger/product_intelligence_spec.rb | 14 +- spec/tooling/danger/project_helper_spec.rb | 110 +- spec/tooling/danger/specs_spec.rb | 2 +- spec/tooling/graphql/docs/renderer_spec.rb | 4 +- spec/tooling/quality/test_level_spec.rb | 4 +- .../tooling/rspec_flaky/flaky_example_spec.rb | 76 +- .../flaky_examples_collection_spec.rb | 28 +- spec/tooling/rspec_flaky/listener_spec.rb | 7 +- spec/tooling/rspec_flaky/report_spec.rb | 4 +- .../_package_registry.html.haml_spec.rb | 3 + spec/views/groups/new.html.haml_spec.rb | 28 + .../runners/_group_runners.html.haml_spec.rb | 5 +- .../subscriptions/index.html.haml_spec.rb | 30 - spec/views/layouts/_head.html.haml_spec.rb | 2 +- .../layouts/header/_new_dropdown.haml_spec.rb | 31 +- .../profiles/keys/_form.html.haml_spec.rb | 4 +- .../buttons/_dropdown.html.haml_spec.rb | 42 - spec/views/projects/edit.html.haml_spec.rb | 16 + .../projects/hooks/edit.html.haml_spec.rb | 58 + .../projects/hooks/index.html.haml_spec.rb | 62 + .../projects/jobs/show.html.haml_spec.rb | 37 +- .../runners/_runner_details.html.haml_spec.rb | 4 +- .../ssh_keys/_key_details.html.haml_spec.rb | 4 +- .../background_migration_worker_spec.rb | 145 +- spec/workers/build_hooks_worker_spec.rb | 8 - .../bulk_imports/entity_worker_spec.rb | 170 +- .../bulk_imports/pipeline_worker_spec.rb | 43 +- .../update_group_worker_spec.rb | 40 + .../update_project_worker_spec.rb | 40 + .../concerns/application_worker_spec.rb | 55 +- .../create_commit_signature_worker_spec.rb | 4 +- spec/workers/every_sidekiq_worker_spec.rb | 1 - .../issuable_export_csv_worker_spec.rb | 11 +- spec/workers/issue_placement_worker_spec.rb | 6 +- spec/workers/issues/placement_worker_spec.rb | 2 +- .../workers/issues/rebalancing_worker_spec.rb | 14 + ...dule_stuck_issue_rebalances_worker_spec.rb | 6 +- .../loose_foreign_keys/cleanup_worker_spec.rb | 77 +- .../process_sync_events_worker_spec.rb | 32 + .../process_sync_events_worker_spec.rb | 28 + .../propagate_integration_worker_spec.rb | 2 +- .../private_features_worker_spec.rb | 2 +- tooling/bin/find_changes | 79 +- tooling/bin/qa/check_if_qa_only_spec_changes | 22 + tooling/danger/changelog.rb | 6 +- tooling/danger/product_intelligence.rb | 19 +- tooling/danger/project_helper.rb | 29 +- tooling/quality/test_level.rb | 2 + tooling/rspec_flaky/example.rb | 10 + tooling/rspec_flaky/flaky_example.rb | 57 +- .../rspec_flaky/flaky_examples_collection.rb | 2 +- tooling/rspec_flaky/listener.rb | 7 +- tooling/rspec_flaky/report.rb | 11 +- .../gitlab-org/golang-archive-zip/LICENSE | 27 + .../gitlab-org/golang-archive-zip/README.md | 6 + .../golang-archive-zip/example_test.go | 93 + .../gitlab-org/golang-archive-zip/go.mod | 3 + .../obscuretestdata_test.go | 50 + .../gitlab-org/golang-archive-zip/reader.go | 845 +++ .../golang-archive-zip/reader_test.go | 1409 +++++ .../gitlab-org/golang-archive-zip/register.go | 147 + .../gitlab-org/golang-archive-zip/struct.go | 392 ++ .../testdata/crc32-not-streamed.zip | Bin 0 -> 314 bytes .../golang-archive-zip/testdata/dd.zip | Bin 0 -> 154 bytes .../testdata/go-no-datadesc-sig.zip.base64 | 1 + .../testdata/go-with-datadesc-sig.zip | Bin 0 -> 242 bytes .../testdata/gophercolor16x16.png | Bin 0 -> 785 bytes .../golang-archive-zip/testdata/readme.notzip | Bin 0 -> 1906 bytes .../golang-archive-zip/testdata/readme.zip | Bin 0 -> 1886 bytes .../golang-archive-zip/testdata/subdir.zip | Bin 0 -> 428 bytes .../golang-archive-zip/testdata/symlink.zip | Bin 0 -> 173 bytes .../testdata/test-trailing-junk.zip | Bin 0 -> 1184 bytes .../golang-archive-zip/testdata/test.zip | Bin 0 -> 1170 bytes .../testdata/time-22738.zip | Bin 0 -> 140 bytes .../golang-archive-zip/testdata/time-7zip.zip | Bin 0 -> 150 bytes .../golang-archive-zip/testdata/time-go.zip | Bin 0 -> 148 bytes .../testdata/time-infozip.zip | Bin 0 -> 166 bytes .../golang-archive-zip/testdata/time-osx.zip | Bin 0 -> 142 bytes .../golang-archive-zip/testdata/time-win7.zip | Bin 0 -> 114 bytes .../testdata/time-winrar.zip | Bin 0 -> 150 bytes .../testdata/time-winzip.zip | Bin 0 -> 150 bytes .../golang-archive-zip/testdata/unix.zip | Bin 0 -> 620 bytes .../golang-archive-zip/testdata/utf8-7zip.zip | Bin 0 -> 146 bytes .../testdata/utf8-infozip.zip | Bin 0 -> 162 bytes .../golang-archive-zip/testdata/utf8-osx.zip | Bin 0 -> 138 bytes .../testdata/utf8-winrar.zip | Bin 0 -> 146 bytes .../testdata/utf8-winzip.zip | Bin 0 -> 146 bytes .../golang-archive-zip/testdata/winxp.zip | Bin 0 -> 412 bytes .../golang-archive-zip/testdata/zip64-2.zip | Bin 0 -> 266 bytes .../golang-archive-zip/testdata/zip64.zip | Bin 0 -> 242 bytes .../gitlab-org/golang-archive-zip/writer.go | 634 ++ .../golang-archive-zip/writer_test.go | 604 ++ .../gitlab-org/golang-archive-zip/zip_test.go | 827 +++ workhorse/.tool-versions | 2 +- workhorse/cmd/gitlab-zip-cat/main.go | 2 +- workhorse/go.mod | 1 + workhorse/go.sum | 2 + workhorse/internal/api/api_test.go | 2 +- .../artifacts/artifacts_upload_test.go | 2 +- workhorse/internal/testhelper/testhelper.go | 17 + workhorse/internal/upload/rewrite.go | 10 +- .../internal/upload/saved_file_tracker.go | 4 + .../upload/saved_file_tracker_test.go | 11 + workhorse/internal/upload/uploads.go | 4 +- workhorse/internal/upload/uploads_test.go | 10 +- workhorse/internal/upstream/metrics.go | 14 + workhorse/internal/upstream/metrics_test.go | 54 + workhorse/internal/upstream/routes.go | 22 +- workhorse/internal/upstream/upstream.go | 4 +- workhorse/internal/upstream/upstream_test.go | 14 +- workhorse/internal/zipartifacts/metadata.go | 3 +- .../internal/zipartifacts/metadata_test.go | 2 +- .../internal/zipartifacts/open_archive.go | 2 +- .../zipartifacts/open_archive_test.go | 8 +- workhorse/sendfile_test.go | 8 +- yarn.lock | 452 +- 4961 files changed, 173269 insertions(+), 85607 deletions(-) delete mode 100644 .gitlab/ci/qa-report.gitlab-ci.yml create mode 100644 .gitlab/issue_templates/Fulfillment Group UX Issue.md delete mode 100644 .rubocop_manual_todo.yml create mode 100644 .rubocop_todo/cop/user_admin.yml create mode 100644 .rubocop_todo/database/multiple_databases.yml create mode 100644 .rubocop_todo/gitlab/delegate_predicate_methods.yml create mode 100644 .rubocop_todo/gitlab/feature_available_usage.yml create mode 100644 .rubocop_todo/gitlab/namespaced_class.yml create mode 100644 .rubocop_todo/graphql/argument_name.yml create mode 100644 .rubocop_todo/graphql/field_definitions.yml create mode 100644 .rubocop_todo/graphql/field_hash_key.yml create mode 100644 .rubocop_todo/graphql/field_method.yml create mode 100644 .rubocop_todo/graphql/ordered_arguments.yml create mode 100644 .rubocop_todo/graphql/ordered_fields.yml create mode 100644 .rubocop_todo/graphql/resolver_method_length.yml create mode 100644 .rubocop_todo/performance/active_record_subtransaction_methods.yml create mode 100644 .rubocop_todo/performance/rubyzip.yml create mode 100644 .rubocop_todo/rails/include_url_helper.yml create mode 100644 .rubocop_todo/rails/save_bang.yml create mode 100644 .rubocop_todo/rails/time_zone.yml create mode 100644 .rubocop_todo/rspec/any_instance_of.yml create mode 100644 .rubocop_todo/rspec/timecop_freeze.yml create mode 100644 .rubocop_todo/rspec/timecop_travel.yml create mode 100644 .rubocop_todo/style/open_struct_use.yml delete mode 100644 app/assets/images/logos/jira-gray.svg create mode 100644 app/assets/images/logos/shimo.svg create mode 100644 app/assets/javascripts/access_tokens/components/token.vue create mode 100644 app/assets/javascripts/access_tokens/components/tokens_app.vue create mode 100644 app/assets/javascripts/access_tokens/constants.js create mode 100644 app/assets/javascripts/api/packages_api.js create mode 100644 app/assets/javascripts/behaviors/copy_code.js delete mode 100644 app/assets/javascripts/boards/components/sidebar/board_sidebar_labels_select.vue delete mode 100644 app/assets/javascripts/boards/components/sidebar/board_sidebar_subscription.vue create mode 100644 app/assets/javascripts/boards/graphql/board_lists_deferred.query.graphql create mode 100644 app/assets/javascripts/clusters/agents/components/activity_events_list.vue create mode 100644 app/assets/javascripts/clusters/agents/components/activity_history_item.vue create mode 100644 app/assets/javascripts/clusters/agents/graphql/queries/get_agent_activity_events.query.graphql create mode 100644 app/assets/javascripts/content_editor/extensions/footnote_definition.js create mode 100644 app/assets/javascripts/content_editor/extensions/footnote_reference.js create mode 100644 app/assets/javascripts/content_editor/extensions/footnotes_section.js create mode 100644 app/assets/javascripts/crm/components/contact_form.vue create mode 100644 app/assets/javascripts/crm/components/new_organization_form.vue create mode 100644 app/assets/javascripts/crm/components/queries/create_contact.mutation.graphql create mode 100644 app/assets/javascripts/crm/components/queries/create_organization.mutation.graphql create mode 100644 app/assets/javascripts/crm/components/queries/crm_contact_fields.fragment.graphql create mode 100644 app/assets/javascripts/crm/components/queries/crm_organization_fields.fragment.graphql create mode 100644 app/assets/javascripts/crm/components/queries/update_contact.mutation.graphql create mode 100644 app/assets/javascripts/crm/constants.js create mode 100644 app/assets/javascripts/crm/routes.js delete mode 100644 app/assets/javascripts/delete_label_modal.js delete mode 100644 app/assets/javascripts/diffs/utils/discussions.js create mode 100644 app/assets/javascripts/editor/extensions/source_editor_markdown_livepreview_ext.js create mode 100644 app/assets/javascripts/environments/graphql/mutations/set_environment_to_delete.mutation.graphql create mode 100644 app/assets/javascripts/environments/graphql/mutations/set_environment_to_rollback.mutation.graphql delete mode 100644 app/assets/javascripts/environments/graphql/queries/environmentApp.query.graphql create mode 100644 app/assets/javascripts/environments/graphql/queries/environment_app.query.graphql create mode 100644 app/assets/javascripts/environments/graphql/queries/environment_to_delete.query.graphql create mode 100644 app/assets/javascripts/environments/graphql/queries/environment_to_rollback.query.graphql create mode 100644 app/assets/javascripts/environments/graphql/queries/page_info.query.graphql create mode 100644 app/assets/javascripts/environments/graphql/queries/poll_interval.query.graphql create mode 100644 app/assets/javascripts/google_cloud/components/errors/gcp_error.vue create mode 100644 app/assets/javascripts/google_cloud/components/errors/no_gcp_projects.vue create mode 100644 app/assets/javascripts/google_cloud/components/home.vue create mode 100644 app/assets/javascripts/google_cloud/components/service_accounts_form.vue rename app/assets/javascripts/google_cloud/components/{service_accounts.vue => service_accounts_list.vue} (100%) create mode 100644 app/assets/javascripts/ide/components/pipelines/empty_state.vue delete mode 100644 app/assets/javascripts/init_issuable_sidebar.js delete mode 100644 app/assets/javascripts/init_labels.js create mode 100644 app/assets/javascripts/integrations/edit/api.js delete mode 100644 app/assets/javascripts/integrations/integration_settings_form.js rename app/assets/javascripts/{issuable_bulk_update_sidebar => issuable/bulk_update_sidebar}/components/status_select.vue (100%) rename app/assets/javascripts/{issuable_bulk_update_sidebar => issuable/bulk_update_sidebar}/constants.js (100%) rename app/assets/javascripts/{issuable_bulk_update_sidebar => issuable/bulk_update_sidebar}/init_issue_status_select.js (100%) rename app/assets/javascripts/{issuable_bulk_update_sidebar => issuable/bulk_update_sidebar}/issuable_bulk_update_actions.js (98%) rename app/assets/javascripts/{issuable_bulk_update_sidebar => issuable/bulk_update_sidebar}/issuable_bulk_update_sidebar.js (92%) rename app/assets/javascripts/{issuable_bulk_update_sidebar => issuable/bulk_update_sidebar}/issuable_init_bulk_update_sidebar.js (100%) rename app/assets/javascripts/{issuable_bulk_update_sidebar => issuable/bulk_update_sidebar}/subscription_select.js (100%) rename app/assets/javascripts/{vue_shared/components/issuable => issuable/components}/issuable_header_warnings.vue (100%) rename app/assets/javascripts/{vue_shared/components/issue => issuable/components}/issue_assignees.vue (100%) rename app/assets/javascripts/{vue_shared/components/issue => issuable/components}/issue_milestone.vue (100%) rename app/assets/javascripts/{vue_shared/components/issue => issuable/components}/related_issuable_item.vue (98%) create mode 100644 app/assets/javascripts/issuable/index.js delete mode 100644 app/assets/javascripts/issuable/init_csv_import_export_buttons.js delete mode 100644 app/assets/javascripts/issuable/init_issuable_by_email.js rename app/assets/javascripts/{ => issuable}/issuable_context.js (95%) rename app/assets/javascripts/{ => issuable}/issuable_form.js (94%) rename app/assets/javascripts/{templates => issuable}/issuable_template_selector.js (96%) rename app/assets/javascripts/{templates => issuable}/issuable_template_selectors.js (90%) rename app/assets/javascripts/{vue_shared => issuable}/mixins/related_issuable_mixin.js (100%) delete mode 100644 app/assets/javascripts/issuable_index.js delete mode 100644 app/assets/javascripts/issuable_type_selector/index.js create mode 100644 app/assets/javascripts/issues/constants.js rename app/assets/javascripts/{pages/projects/issues/service_desk/filtered_search.js => issues/filtered_search_service_desk.js} (100%) rename app/assets/javascripts/{pages/projects => }/issues/form.js (50%) create mode 100644 app/assets/javascripts/issues/init_filtered_search_service_desk.js rename app/assets/javascripts/{ => issues}/issue.js (91%) rename app/assets/javascripts/{ => issues}/manual_ordering.js (100%) rename app/assets/javascripts/{issuable_suggestions/components/app.vue => issues/new/components/title_suggestions.vue} (90%) rename app/assets/javascripts/{issuable_suggestions/components/item.vue => issues/new/components/title_suggestions_item.vue} (100%) rename app/assets/javascripts/{issuable_type_selector/components/info_popover.vue => issues/new/components/type_popover.vue} (88%) rename app/assets/javascripts/{issuable_suggestions => issues/new}/index.js (52%) rename app/assets/javascripts/{issuable_suggestions => issues/new}/queries/issues.query.graphql (93%) rename app/assets/javascripts/{ => issues}/related_merge_requests/components/related_merge_requests.vue (95%) rename app/assets/javascripts/{ => issues}/related_merge_requests/index.js (100%) rename app/assets/javascripts/{ => issues}/related_merge_requests/store/actions.js (100%) rename app/assets/javascripts/{ => issues}/related_merge_requests/store/index.js (100%) rename app/assets/javascripts/{ => issues}/related_merge_requests/store/mutation_types.js (100%) rename app/assets/javascripts/{ => issues}/related_merge_requests/store/mutations.js (100%) rename app/assets/javascripts/{ => issues}/related_merge_requests/store/state.js (100%) rename app/assets/javascripts/{ => issues}/sentry_error_stack_trace/components/sentry_error_stack_trace.vue (100%) rename app/assets/javascripts/{ => issues}/sentry_error_stack_trace/index.js (100%) rename app/assets/javascripts/{pages/projects => }/issues/show.js (75%) rename app/assets/javascripts/{issue_show => issues/show}/components/app.vue (94%) create mode 100644 app/assets/javascripts/issues/show/components/delete_issue_modal.vue rename app/assets/javascripts/{issue_show => issues/show}/components/description.vue (97%) rename app/assets/javascripts/{issue_show => issues/show}/components/edit_actions.vue (72%) rename app/assets/javascripts/{issue_show => issues/show}/components/edited.vue (91%) rename app/assets/javascripts/{issue_show => issues/show}/components/fields/description.vue (100%) rename app/assets/javascripts/{issue_show => issues/show}/components/fields/description_template.vue (97%) rename app/assets/javascripts/{issue_show => issues/show}/components/fields/title.vue (100%) rename app/assets/javascripts/{issue_show => issues/show}/components/fields/type.vue (100%) rename app/assets/javascripts/{issue_show => issues/show}/components/form.vue (97%) rename app/assets/javascripts/{issue_show => issues/show}/components/header_actions.vue (79%) rename app/assets/javascripts/{issue_show => issues/show}/components/incidents/graphql/queries/get_alert.graphql (98%) rename app/assets/javascripts/{issue_show => issues/show}/components/incidents/highlight_bar.vue (94%) rename app/assets/javascripts/{issue_show => issues/show}/components/incidents/incident_tabs.vue (95%) rename app/assets/javascripts/{issue_show => issues/show}/components/locked_warning.vue (100%) rename app/assets/javascripts/{issue_show => issues/show}/components/pinned_links.vue (100%) rename app/assets/javascripts/{issue_show => issues/show}/components/title.vue (100%) rename app/assets/javascripts/{issue_show => issues/show}/constants.js (58%) rename app/assets/javascripts/{issuable_show => issues/show}/event_hub.js (100%) rename app/assets/javascripts/{issue_show => issues/show}/graphql.js (100%) rename app/assets/javascripts/{issue_show => issues/show}/incident.js (96%) rename app/assets/javascripts/{issue_show => issues/show}/issue.js (94%) rename app/assets/javascripts/{issue_show => issues/show}/mixins/animate.js (100%) rename app/assets/javascripts/{issue_show => issues/show}/mixins/update.js (100%) rename app/assets/javascripts/{issue_show => issues/show}/queries/get_issue_state.query.graphql (100%) rename app/assets/javascripts/{issue_show => issues/show}/queries/promote_to_epic.mutation.graphql (93%) rename app/assets/javascripts/{issue_show => issues/show}/queries/update_issue.mutation.graphql (100%) rename app/assets/javascripts/{issue_show => issues/show}/queries/update_issue_state.mutation.graphql (100%) rename app/assets/javascripts/{issue_show => issues/show}/services/index.js (92%) rename app/assets/javascripts/{issue_show => issues/show}/stores/index.js (100%) rename app/assets/javascripts/{issue_show => issues/show}/utils/parse_data.js (100%) rename app/assets/javascripts/{issue_show => issues/show}/utils/update_description.js (100%) delete mode 100644 app/assets/javascripts/issues_list/queries/iteration.fragment.graphql delete mode 100644 app/assets/javascripts/issues_list/queries/search_iterations.query.graphql create mode 100644 app/assets/javascripts/jira_connect/subscriptions/components/user_link.vue create mode 100644 app/assets/javascripts/jobs/bridge/app.vue create mode 100644 app/assets/javascripts/jobs/bridge/components/constants.js create mode 100644 app/assets/javascripts/jobs/bridge/components/empty_state.vue create mode 100644 app/assets/javascripts/jobs/bridge/components/sidebar.vue rename app/assets/javascripts/{vue_shared => labels}/components/delete_label_modal.vue (100%) rename app/assets/javascripts/{pages/projects => }/labels/components/promote_label_modal.vue (100%) rename app/assets/javascripts/{create_label.js => labels/create_label_dropdown.js} (98%) rename app/assets/javascripts/{issue_show => labels}/event_hub.js (100%) rename app/assets/javascripts/{ => labels}/group_label_subscription.js (96%) create mode 100644 app/assets/javascripts/labels/index.js rename app/assets/javascripts/{ => labels}/label_manager.js (97%) rename app/assets/javascripts/{ => labels}/labels.js (100%) rename app/assets/javascripts/{ => labels}/labels_select.js (98%) rename app/assets/javascripts/{ => labels}/project_label_subscription.js (94%) create mode 100644 app/assets/javascripts/lib/utils/intersection_observer.js delete mode 100644 app/assets/javascripts/milestone.js rename app/assets/javascripts/{pages/milestones/shared => milestones}/components/delete_milestone_modal.vue (100%) rename app/assets/javascripts/{pages/milestones/shared => milestones}/components/promote_milestone_modal.vue (100%) rename app/assets/javascripts/{pages/milestones/shared => milestones}/event_hub.js (100%) rename app/assets/javascripts/{pages/milestones/shared/delete_milestone_modal_init.js => milestones/index.js} (63%) create mode 100644 app/assets/javascripts/milestones/milestone.js rename app/assets/javascripts/{ => milestones}/milestone_select.js (98%) rename app/assets/javascripts/milestones/{milestone_utils.js => utils.js} (100%) delete mode 100644 app/assets/javascripts/packages/list/packages_list_app_bundle.js delete mode 100644 app/assets/javascripts/packages/shared/constants.js delete mode 100644 app/assets/javascripts/packages/shared/utils.js rename app/assets/javascripts/packages_and_registries/infrastructure_registry/{ => list}/components/infrastructure_search.vue (85%) rename app/assets/javascripts/packages_and_registries/infrastructure_registry/{ => list}/components/infrastructure_title.vue (100%) rename app/assets/javascripts/{packages => packages_and_registries/infrastructure_registry}/list/components/packages_list.vue (83%) rename app/assets/javascripts/{packages => packages_and_registries/infrastructure_registry}/list/components/packages_list_app.vue (88%) rename app/assets/javascripts/{packages => packages_and_registries/infrastructure_registry}/list/constants.js (56%) rename app/assets/javascripts/{packages => packages_and_registries/infrastructure_registry}/list/stores/actions.js (96%) rename app/assets/javascripts/{packages => packages_and_registries/infrastructure_registry}/list/stores/getters.js (70%) rename app/assets/javascripts/{packages => packages_and_registries/infrastructure_registry}/list/stores/index.js (100%) rename app/assets/javascripts/{packages => packages_and_registries/infrastructure_registry}/list/stores/mutation_types.js (100%) rename app/assets/javascripts/{packages => packages_and_registries/infrastructure_registry}/list/stores/mutations.js (100%) rename app/assets/javascripts/{packages => packages_and_registries/infrastructure_registry}/list/stores/state.js (100%) rename app/assets/javascripts/{packages => packages_and_registries/infrastructure_registry}/list/utils.js (100%) create mode 100644 app/assets/javascripts/packages_and_registries/infrastructure_registry/shared/constants.js rename app/assets/javascripts/packages_and_registries/infrastructure_registry/{components => shared}/infrastructure_icon_and_name.vue (100%) rename app/assets/javascripts/{packages/shared/components => packages_and_registries/infrastructure_registry/shared}/package_list_row.vue (81%) create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/index.js create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/pages/index.vue delete mode 100644 app/assets/javascripts/packages_and_registries/package_registry/pages/list.js rename app/assets/javascripts/packages_and_registries/package_registry/{components/list/app.vue => pages/list.vue} (86%) create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/router.js create mode 100644 app/assets/javascripts/packages_and_registries/settings/group/graphql/mutations/update_dependency_proxy_image_ttl_group_policy.mutation.graphql rename app/assets/javascripts/{packages => packages_and_registries}/shared/components/package_icon_and_name.vue (100%) rename app/assets/javascripts/{packages => packages_and_registries}/shared/components/package_path.vue (100%) rename app/assets/javascripts/{packages => packages_and_registries}/shared/components/package_tags.vue (100%) rename app/assets/javascripts/{packages => packages_and_registries}/shared/components/packages_list_loader.vue (100%) rename app/assets/javascripts/{packages => packages_and_registries}/shared/components/publish_method.vue (100%) create mode 100644 app/assets/javascripts/packages_and_registries/shared/components/registry_list.vue delete mode 100644 app/assets/javascripts/pages/admin/services/edit/index.js delete mode 100644 app/assets/javascripts/pages/admin/services/index/index.js delete mode 100644 app/assets/javascripts/pages/constants.js delete mode 100644 app/assets/javascripts/pages/dashboard/projects/index/components/customize_homepage_banner.vue delete mode 100644 app/assets/javascripts/pages/dashboard/projects/index/init_customize_homepage_banner.js delete mode 100644 app/assets/javascripts/pages/help/ui/index.js delete mode 100644 app/assets/javascripts/pages/milestones/shared/index.js delete mode 100644 app/assets/javascripts/pages/milestones/shared/init_milestones_show.js delete mode 100644 app/assets/javascripts/pages/milestones/shared/promote_milestone_modal_init.js delete mode 100644 app/assets/javascripts/pages/projects/constants.js delete mode 100644 app/assets/javascripts/pages/projects/path_locks/index.js delete mode 100644 app/assets/javascripts/pages/projects/usage_quotas/index.js rename app/assets/javascripts/pipeline_editor/graphql/mutations/{ => client}/lint_ci.mutation.graphql (100%) rename app/assets/javascripts/pipeline_editor/graphql/mutations/{ => client}/update_app_status.mutation.graphql (100%) rename app/assets/javascripts/pipeline_editor/graphql/mutations/{ => client}/update_current_branch.mutation.graphql (100%) rename app/assets/javascripts/pipeline_editor/graphql/mutations/{ => client}/update_last_commit_branch.mutation.graphql (100%) rename app/assets/javascripts/pipeline_editor/graphql/mutations/{ => client}/update_pipeline_etag.mutation.graphql (100%) rename app/assets/javascripts/pipeline_editor/graphql/queries/{available_branches.graphql => available_branches.query.graphql} (97%) rename app/assets/javascripts/pipeline_editor/graphql/queries/{blob_content.graphql => blob_content.query.graphql} (92%) rename app/assets/javascripts/pipeline_editor/graphql/queries/{ci_config.graphql => ci_config.query.graphql} (100%) delete mode 100644 app/assets/javascripts/pipeline_editor/graphql/queries/client/app_status.graphql create mode 100644 app/assets/javascripts/pipeline_editor/graphql/queries/client/app_status.query.graphql delete mode 100644 app/assets/javascripts/pipeline_editor/graphql/queries/client/current_branch.graphql create mode 100644 app/assets/javascripts/pipeline_editor/graphql/queries/client/current_branch.query.graphql delete mode 100644 app/assets/javascripts/pipeline_editor/graphql/queries/client/pipeline_etag.graphql create mode 100644 app/assets/javascripts/pipeline_editor/graphql/queries/client/pipeline_etag.query.graphql rename app/assets/javascripts/pipeline_editor/graphql/queries/{client/pipeline.graphql => pipeline.query.graphql} (95%) create mode 100644 app/assets/javascripts/pipelines/components/jobs/jobs_app.vue create mode 100644 app/assets/javascripts/pipelines/graphql/queries/get_pipeline_jobs.query.graphql create mode 100644 app/assets/javascripts/pipelines/pipeline_details_jobs.js create mode 100644 app/assets/javascripts/projects/settings/components/transfer_project_form.vue create mode 100644 app/assets/javascripts/projects/settings/init_transfer_project_form.js delete mode 100644 app/assets/javascripts/projects/storage_counter/components/app.vue delete mode 100644 app/assets/javascripts/projects/storage_counter/components/storage_table.vue delete mode 100644 app/assets/javascripts/projects/storage_counter/components/storage_type_icon.vue delete mode 100644 app/assets/javascripts/projects/storage_counter/constants.js delete mode 100644 app/assets/javascripts/projects/storage_counter/index.js delete mode 100644 app/assets/javascripts/projects/storage_counter/queries/project_storage.query.graphql delete mode 100644 app/assets/javascripts/projects/storage_counter/utils.js create mode 100644 app/assets/javascripts/repository/components/blob_viewers/pdf_viewer.vue delete mode 100644 app/assets/javascripts/repository/components/blob_viewers/text_viewer.vue create mode 100644 app/assets/javascripts/runner/components/runner_delete_modal.vue rename app/assets/javascripts/runner/components/{runner_contacted_state_badge.vue => runner_status_badge.vue} (67%) create mode 100644 app/assets/javascripts/runner/components/stat/runner_online_stat.vue create mode 100644 app/assets/javascripts/security_configuration/components/training_provider_list.vue create mode 100644 app/assets/javascripts/security_configuration/graphql/security_training_providers.query.graphql delete mode 100644 app/assets/javascripts/shared/milestones/form.js create mode 100644 app/assets/javascripts/sidebar/components/crm_contacts/crm_contacts.vue create mode 100644 app/assets/javascripts/sidebar/components/crm_contacts/queries/get_issue_crm_contacts.query.graphql create mode 100644 app/assets/javascripts/sidebar/components/crm_contacts/queries/issue_crm_contacts.fragment.graphql create mode 100644 app/assets/javascripts/sidebar/components/crm_contacts/queries/issue_crm_contacts.subscription.graphql delete mode 100644 app/assets/javascripts/sidebar/components/labels/sidebar_labels.vue delete mode 100644 app/assets/javascripts/snippets/fragments/project.fragment.graphql create mode 100644 app/assets/javascripts/tabs/constants.js create mode 100644 app/assets/javascripts/tabs/index.js delete mode 100644 app/assets/javascripts/ui_development_kit.js create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/extensions/utils.js create mode 100644 app/assets/javascripts/vue_shared/components/chronic_duration_input.vue create mode 100644 app/assets/javascripts/vue_shared/components/confirm_modal_eventhub.js rename app/assets/javascripts/{design_management/components => vue_shared/components/design_management}/design_note_pin.vue (65%) create mode 100644 app/assets/javascripts/vue_shared/components/dom_element_listener.vue delete mode 100644 app/assets/javascripts/vue_shared/components/filtered_search_bar/queries/epic.fragment.graphql delete mode 100644 app/assets/javascripts/vue_shared/components/filtered_search_bar/queries/search_epics.query.graphql delete mode 100644 app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/epic_token.vue delete mode 100644 app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/iteration_token.vue delete mode 100644 app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/weight_token.vue create mode 100644 app/assets/javascripts/vue_shared/components/form/input_copy_toggle_visibility.stories.js create mode 100644 app/assets/javascripts/vue_shared/components/form/input_copy_toggle_visibility.vue delete mode 100644 app/assets/javascripts/vue_shared/components/issuable/init_issuable_header_warning.js create mode 100644 app/assets/javascripts/vue_shared/components/line_numbers.vue create mode 100644 app/assets/javascripts/vue_shared/components/namespace_select/namespace_select.vue create mode 100644 app/assets/javascripts/vue_shared/components/pagination_bar/pagination_bar.stories.js rename app/assets/javascripts/{import_entities/components => vue_shared/components/pagination_bar}/pagination_bar.vue (75%) delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/collapsed_grouped_date_picker.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_value_collapsed.vue create mode 100644 app/assets/javascripts/vue_shared/components/source_viewer.vue delete mode 100644 app/assets/javascripts/vue_shared/components/storage_counter/usage_graph.stories.js delete mode 100644 app/assets/javascripts/vue_shared/components/storage_counter/usage_graph.vue delete mode 100644 app/assets/javascripts/vue_shared/components/tooltip_on_truncate.vue create mode 100644 app/assets/javascripts/vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.stories.js create mode 100644 app/assets/javascripts/vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue rename app/assets/javascripts/{issuable_create => vue_shared/issuable/create}/components/issuable_create_root.vue (100%) rename app/assets/javascripts/{issuable_create => vue_shared/issuable/create}/components/issuable_form.vue (100%) rename app/assets/javascripts/{issuable_list => vue_shared/issuable/list}/components/issuable_bulk_edit_sidebar.vue (100%) rename app/assets/javascripts/{issuable_list => vue_shared/issuable/list}/components/issuable_item.vue (95%) rename app/assets/javascripts/{issuable_list => vue_shared/issuable/list}/components/issuable_list_root.vue (95%) rename app/assets/javascripts/{issuable_list => vue_shared/issuable/list}/components/issuable_tabs.vue (90%) rename app/assets/javascripts/{issuable_list => vue_shared/issuable/list}/constants.js (100%) rename app/assets/javascripts/{issuable_show => vue_shared/issuable/show}/components/issuable_body.vue (100%) rename app/assets/javascripts/{issuable_show => vue_shared/issuable/show}/components/issuable_description.vue (100%) rename app/assets/javascripts/{issuable_show => vue_shared/issuable/show}/components/issuable_discussion.vue (100%) rename app/assets/javascripts/{issuable_show => vue_shared/issuable/show}/components/issuable_edit_form.vue (100%) rename app/assets/javascripts/{issuable_show => vue_shared/issuable/show}/components/issuable_header.vue (100%) rename app/assets/javascripts/{issuable_show => vue_shared/issuable/show}/components/issuable_show_root.vue (95%) rename app/assets/javascripts/{issuable_show => vue_shared/issuable/show}/components/issuable_title.vue (100%) rename app/assets/javascripts/{issuable_show => vue_shared/issuable/show}/constants.js (100%) rename app/assets/javascripts/{pages/projects/labels => vue_shared/issuable/show}/event_hub.js (100%) rename app/assets/javascripts/{issuable_sidebar => vue_shared/issuable/sidebar}/components/issuable_sidebar_root.vue (100%) rename app/assets/javascripts/{issuable_sidebar => vue_shared/issuable/sidebar}/constants.js (100%) delete mode 100644 app/assets/javascripts/vue_shared/mixins/issuable.js create mode 100644 app/assets/javascripts/work_items/components/item_title.vue create mode 100644 app/assets/javascripts/work_items/graphql/create_work_item.mutation.graphql create mode 100644 app/assets/javascripts/work_items/graphql/update_work_item.mutation.graphql create mode 100644 app/assets/javascripts/work_items/pages/create_work_item.vue create mode 100644 app/controllers/admin/version_check_controller.rb create mode 100644 app/controllers/groups/crm/contacts_controller.rb create mode 100644 app/controllers/groups/crm/organizations_controller.rb delete mode 100644 app/controllers/groups/crm_controller.rb create mode 100644 app/controllers/projects/google_cloud/base_controller.rb create mode 100644 app/controllers/projects/google_cloud/service_accounts_controller.rb create mode 100644 app/controllers/projects/integrations/shimos_controller.rb delete mode 100644 app/controllers/user_callouts_controller.rb create mode 100644 app/controllers/users/callouts_controller.rb create mode 100644 app/finders/issuables/crm_contact_filter.rb create mode 100644 app/finders/issuables/crm_organization_filter.rb create mode 100644 app/finders/packages/build_infos_finder.rb delete mode 100644 app/graphql/queries/epic/epic_children.query.graphql create mode 100644 app/graphql/resolvers/ci/runner_status_resolver.rb create mode 100644 app/graphql/resolvers/clusters/agent_activity_events_resolver.rb create mode 100644 app/graphql/resolvers/container_repository_tags_resolver.rb create mode 100644 app/graphql/resolvers/package_pipelines_resolver.rb create mode 100644 app/graphql/resolvers/users/participants_resolver.rb create mode 100644 app/graphql/types/base_edge.rb create mode 100644 app/graphql/types/ci/job_need_union.rb create mode 100644 app/graphql/types/clusters/agent_activity_event_type.rb create mode 100644 app/graphql/types/container_repository_tags_sort_enum.rb create mode 100644 app/helpers/badges_helper.rb delete mode 100644 app/helpers/user_callouts_helper.rb create mode 100644 app/helpers/users/callouts_helper.rb create mode 100644 app/helpers/users/group_callouts_helper.rb create mode 100644 app/models/ci/namespace_mirror.rb create mode 100644 app/models/ci/project_mirror.rb create mode 100644 app/models/clusters/agents/activity_event.rb create mode 100644 app/models/commit_signatures/gpg_signature.rb create mode 100644 app/models/commit_signatures/x509_commit_signature.rb rename {lib => app/models/concerns}/after_commit_queue.rb (88%) delete mode 100644 app/models/concerns/calloutable.rb create mode 100644 app/models/concerns/commit_signature.rb delete mode 100644 app/models/concerns/loose_foreign_key.rb delete mode 100644 app/models/gpg_signature.rb create mode 100644 app/models/issue/email.rb create mode 100644 app/models/namespaces/sync_event.rb delete mode 100644 app/models/preloaders/group_root_ancestor_preloader.rb create mode 100644 app/models/projects/sync_event.rb delete mode 100644 app/models/user_callout.rb create mode 100644 app/models/users/callout.rb create mode 100644 app/models/users/calloutable.rb delete mode 100644 app/models/x509_commit_signature.rb create mode 100644 app/policies/clusters/agents/activity_event_policy.rb create mode 100644 app/policies/namespaces/group_project_namespace_shared_policy.rb create mode 100644 app/presenters/projects/security/configuration_presenter.rb delete mode 100644 app/serializers/build_serializer.rb create mode 100644 app/serializers/ci/job_entity.rb create mode 100644 app/serializers/ci/job_serializer.rb delete mode 100644 app/serializers/job_entity.rb delete mode 100644 app/services/admin/propagate_service_template.rb create mode 100644 app/services/bulk_imports/archive_extraction_service.rb create mode 100644 app/services/ci/process_sync_events_service.rb delete mode 100644 app/services/concerns/admin/propagate_service.rb create mode 100644 app/services/concerns/audit_event_save_type.rb create mode 100644 app/services/concerns/protected_ref_name_sanitizer.rb rename app/services/dependency_proxy/{find_or_create_manifest_service.rb => find_cached_manifest_service.rb} (58%) delete mode 100644 app/services/dependency_proxy/pull_manifest_service.rb create mode 100644 app/services/events/destroy_service.rb create mode 100644 app/services/incident_management/issuable_escalation_statuses/create_service.rb rename app/services/{admin/propagate_integration_service.rb => integrations/propagate_service.rb} (68%) create mode 100644 app/services/integrations/propagate_template_service.rb create mode 100644 app/services/merge_requests/bulk_remove_attention_requested_service.rb create mode 100644 app/services/merge_requests/remove_attention_requested_service.rb create mode 100644 app/services/notification_recipients/builder/attention_requested.rb create mode 100644 app/services/protected_tags/base_service.rb create mode 100644 app/services/service_ping/devops_report_service.rb delete mode 100644 app/services/todos/destroy/private_features_service.rb create mode 100644 app/services/todos/destroy/unauthorized_features_service.rb rename app/services/users/{dismiss_user_callout_service.rb => dismiss_callout_service.rb} (83%) delete mode 100644 app/views/admin/users/_user_detail.html.haml delete mode 100644 app/views/groups/crm/contacts.html.haml create mode 100644 app/views/groups/crm/contacts/index.html.haml delete mode 100644 app/views/groups/crm/organizations.html.haml create mode 100644 app/views/groups/crm/organizations/index.html.haml delete mode 100644 app/views/import/bitbucket/deploy_key.js.haml create mode 100644 app/views/layouts/in_product_marketing_mailer.html.haml create mode 100644 app/views/notify/account_validation_email.html.haml create mode 100644 app/views/notify/account_validation_email.text.erb create mode 100644 app/views/notify/attention_requested_merge_request_email.html.haml create mode 100644 app/views/notify/attention_requested_merge_request_email.text.erb create mode 100644 app/views/projects/_merge_request_squash_commit_template.html.haml delete mode 100644 app/views/projects/buttons/_dropdown.html.haml create mode 100644 app/views/projects/google_cloud/errors/gcp_error.html.haml create mode 100644 app/views/projects/google_cloud/errors/no_gcp_projects.html.haml create mode 100644 app/views/projects/google_cloud/service_accounts/index.html.haml create mode 100644 app/views/projects/integrations/shimos/show.html.haml delete mode 100644 app/views/projects/mirrors/_regenerate_public_ssh_key_confirm_modal.html.haml delete mode 100644 app/views/projects/remove_fork.js.haml delete mode 100644 app/views/projects/transfer.js.haml delete mode 100644 app/views/root/index.html.haml create mode 100644 app/views/search/results/_blob_highlight.html.haml create mode 100644 app/views/shared/_registration_features_discovery_message.html.haml delete mode 100644 app/views/shared/members/_filter_2fa_dropdown.html.haml create mode 100644 app/views/shared/web_hooks/_hook_errors.html.haml create mode 100644 app/views/shared/wikis/_wiki_content.html.haml create mode 100644 app/workers/background_migration/single_database_worker.rb create mode 100644 app/workers/ci/pending_builds/update_group_worker.rb create mode 100644 app/workers/ci/pending_builds/update_project_worker.rb create mode 100644 app/workers/namespaces/process_sync_events_worker.rb create mode 100644 app/workers/projects/process_sync_events_worker.rb delete mode 100644 app/workers/propagate_service_template_worker.rb create mode 100755 bin/metrics-server create mode 100644 config/apollo.config.js create mode 100644 config/events/202108302307_security__ci_configuration__sast_create_service_create.yml create mode 100644 config/events/202108302307_security__ci_configuration__sast_create_service_update.yml create mode 100644 config/events/202108302307_security__ci_configuration__secret_detection_create_service_create.yml create mode 100644 config/events/202108302307_security__ci_configuration__secret_detection_create_service_update.yml rename config/events/{api__group_container_repositories_list_repositories.yml => 202109151015_api__group_container_repositories_list_repositories.yml} (87%) rename config/events/{api__project_container_repositories_delete_repository.yml => 202109151015_api__project_container_repositories_delete_repository.yml} (87%) rename config/events/{api__project_container_repositories_delete_tag.yml => 202109151015_api__project_container_repositories_delete_tag.yml} (87%) rename config/events/{api__project_container_repositories_delete_tag_bulk.yml => 202109151015_api__project_container_repositories_delete_tag_bulk.yml} (87%) rename config/events/{api__project_container_repositories_list_repositories.yml => 202109151015_api__project_container_repositories_list_repositories.yml} (87%) rename config/events/{api__project_container_repositories_list_tags.yml => 202109151015_api__project_container_repositories_list_tags.yml} (87%) rename config/events/{api__pypi_packages_list_package.yml => 202109151015_api__pypi_packages_list_package.yml} (86%) rename config/events/{cluster_applications_cluster_application_name.yml => 202109151015_cluster_applications_cluster_application_name.yml} (87%) rename config/events/{cluster_services_prometheus_disabled_manual_prometheus.yml => 202109151015_cluster_services_prometheus_disabled_manual_prometheus.yml} (94%) rename config/events/{cluster_services_prometheus_enabled_manual_prometheus.yml => 202109151015_cluster_services_prometheus_enabled_manual_prometheus.yml} (94%) rename config/events/{container_registry_notification_create_repository.yml => 202109151015_container_registry_notification_create_repository.yml} (88%) rename config/events/{container_registry_notification_delete_repository.yml => 202109151015_container_registry_notification_delete_repository.yml} (88%) rename config/events/{container_registry_notification_delete_tag.yml => 202109151015_container_registry_notification_delete_tag.yml} (87%) rename config/events/{container_registry_notification_push_repository.yml => 202109151015_container_registry_notification_push_repository.yml} (88%) rename config/events/{container_registry_notification_push_tag.yml => 202109151015_container_registry_notification_push_tag.yml} (87%) rename config/events/{delete_repository_container.yml => 202109151015_delete_repository_container.yml} (86%) rename config/events/{delete_tag_bulk_tag.yml => 202109151015_delete_tag_bulk_tag.yml} (87%) rename config/events/{experiment_name_initial_write.yml => 202109151015_experiment_name_initial_write.yml} (87%) rename config/events/{experiment_name_write.yml => 202109151015_experiment_name_write.yml} (87%) rename config/events/{groups__email_campaigns_controller_click.yml => 202109151015_groups__email_campaigns_controller_click.yml} (86%) rename config/events/{groups__registry__repositories_controller_list_repositories.yml => 202109151015_groups__registry__repositories_controller_list_repositories.yml} (87%) rename config/events/{incident_management__zoom_integration_add_zoom_meeting.yml => 202109151015_incident_management__zoom_integration_add_zoom_meeting.yml} (88%) rename config/events/{incident_management__zoom_integration_remove_zoom_meeting.yml => 202109151015_incident_management__zoom_integration_remove_zoom_meeting.yml} (88%) rename config/events/{list_repositories_container.yml => 202109151015_list_repositories_container.yml} (86%) rename config/events/{notes__create_service_execute.yml => 202109151015_notes__create_service_execute.yml} (88%) rename config/events/{package_class_pull_package.yml => 202109151015_package_class_pull_package.yml} (86%) rename config/events/{package_class_push_package.yml => 202109151015_package_class_push_package.yml} (86%) rename config/events/{projects__registry__repositories_controller_delete_repository.yml => 202109151015_projects__registry__repositories_controller_delete_repository.yml} (87%) rename config/events/{projects__registry__repositories_controller_list_repositories.yml => 202109151015_projects__registry__repositories_controller_list_repositories.yml} (87%) rename config/events/{projects__registry__tags_controller_delete_tag.yml => 202109151015_projects__registry__tags_controller_delete_tag.yml} (87%) rename config/events/{projects__registry__tags_controller_delete_tag_bulk.yml => 202109151015_projects__registry__tags_controller_delete_tag_bulk.yml} (87%) rename config/events/{projects__registry__tags_controller_list_tags.yml => 202109151015_projects__registry__tags_controller_list_tags.yml} (87%) create mode 100644 config/events/20211215022206_default_click_button.yml create mode 100644 config/events/20211215022206_default_click_link.yml create mode 100644 config/events/20211215022206_default_click_menu.yml create mode 100644 config/events/20211215022206_default_click_menu_item.yml create mode 100644 config/events/20211215022206_default_comment_button_title_button_click_button.yml create mode 100644 config/events/20211215022206_default_congratulate_first_pipeline_click_button.yml create mode 100644 config/events/20211215022206_default_create_or_import_a_repository_click_link.yml create mode 100644 config/events/20211215022206_default_create_value_stream_form_open_click_button.yml create mode 100644 config/events/20211215022206_default_create_value_stream_form_open_click_dropdown.yml create mode 100644 config/events/20211215022206_default_delete_value_stream_form_open_click_dropdown.yml create mode 100644 config/events/20211215022206_default_diff_copy_file_path_button_click_copy_file_button.yml create mode 100644 config/events/20211215022206_default_diff_toggle_external_button_click_toggle_external_button.yml create mode 100644 config/events/20211215022206_default_edit_assignee_click_invite_members.yml create mode 100644 config/events/20211215022206_default_edit_click_consolidated_edit.yml create mode 100644 config/events/20211215022206_default_edit_reviewer_click_invite_members.yml create mode 100644 config/events/20211215022206_default_edit_value_stream_form_open_click_button.yml create mode 100644 config/events/20211215022206_default_environment_actions_click_dropdown.yml create mode 100644 config/events/20211215022206_default_environment_delete_click_button.yml create mode 100644 config/events/20211215022206_default_environment_monitoring_click_button.yml create mode 100644 config/events/20211215022206_default_environment_pin_click_button.yml create mode 100644 config/events/20211215022206_default_environment_rollback_click_button.yml create mode 100644 config/events/20211215022206_default_environment_stop_click_button.yml create mode 100644 config/events/20211215022206_default_environment_terminal_click_button.yml create mode 100644 config/events/20211215022206_default_environment_url_click_button.yml create mode 100644 config/events/20211215022206_default_export_issuable_type_csv_click_button.yml create mode 100644 config/events/20211215022206_default_feature_flag_toggle_click_button.yml create mode 100644 config/events/20211215022206_default_feature_title_click_whats_new_item.yml create mode 100644 config/events/20211215022206_default_home_page_click_go_to_preferences.yml create mode 100644 config/events/20211215022206_default_mr_next_unresolved_thread_click_button.yml create mode 100644 config/events/20211215022206_default_mr_widget_terraform_mr_plan_button_click_terraform_mr_plan_button.yml create mode 100644 config/events/20211215022206_default_no_pipeline_noticed_click_button.yml create mode 100644 config/events/20211215022206_default_reply_comment_button_click_button.yml create mode 100644 config/events/20211215022206_default_review_app_open_review_app.yml create mode 100644 config/events/20211215022206_default_right_sidebar_click_edit_button.yml create mode 100644 config/events/20211215022206_default_search_autocomplete_suggestion_click_text.yml create mode 100644 config/events/20211215022206_default_show_labels_toggle.yml create mode 100644 config/events/20211215022206_default_slugged_stream_name_click_dropdown.yml create mode 100644 config/events/20211215022206_default_suggest_commit_first_project_gitlab_ci_yml__click_button.yml create mode 100644 config/events/20211215022206_default_web_ide_click_consolidated_edit_ide.yml delete mode 100644 config/feature_flags/development/abort_deleted_project_pipelines.yml rename config/feature_flags/development/{drop_detached_partitions.yml => automated_email_provision.yml} (64%) delete mode 100644 config/feature_flags/development/branches_pagination_without_count.yml rename config/feature_flags/development/{ci_pending_builds_queue_maintain.yml => ci_bulk_insert_tags.yml} (71%) rename config/feature_flags/development/{ci_runner_limits_override.yml => ci_namespace_project_mirrors.yml} (63%) delete mode 100644 config/feature_flags/development/ci_optimize_project_records_destruction.yml create mode 100644 config/feature_flags/development/ci_order_subsequent_jobs_by_stage.yml delete mode 100644 config/feature_flags/development/ci_pending_builds_maintain_ci_minutes_data.yml rename config/feature_flags/development/{ci_build_tags_limit.yml => ci_pending_builds_maintain_denormalized_data.yml} (69%) delete mode 100644 config/feature_flags/development/ci_pending_builds_maintain_namespace_traversal_ids.yml delete mode 100644 config/feature_flags/development/ci_pending_builds_maintain_shared_runners_data.yml delete mode 100644 config/feature_flags/development/ci_pending_builds_maintain_tags_data.yml delete mode 100644 config/feature_flags/development/ci_pending_builds_project_runners_decoupling.yml delete mode 100644 config/feature_flags/development/ci_queueing_denormalize_ci_minutes_information.yml delete mode 100644 config/feature_flags/development/ci_queueing_denormalize_namespace_traversal_ids.yml delete mode 100644 config/feature_flags/development/ci_queueing_denormalize_shared_runners_information.yml delete mode 100644 config/feature_flags/development/ci_queueing_denormalize_tags_information.yml rename config/feature_flags/development/{ci_scoped_job_token.yml => ci_queuing_use_denormalized_data_strategy.yml} (69%) rename config/feature_flags/development/{ci_predefined_vars_in_builder.yml => ci_retry_downstream_pipeline.yml} (72%) delete mode 100644 config/feature_flags/development/ci_track_shared_runner_builds.yml delete mode 100644 config/feature_flags/development/ci_untrack_shared_runner_builds.yml rename config/feature_flags/development/{surface_environment_creation_failure_override.yml => create_deployment_in_separate_transaction.yml} (67%) delete mode 100644 config/feature_flags/development/create_vulnerabilities_via_api.yml delete mode 100644 config/feature_flags/development/dependency_proxy_manifest_workhorse.yml rename config/feature_flags/development/{avoid_cross_joins_environments_in_self_and_descendants.yml => deployment_approvals.yml} (65%) rename config/feature_flags/development/{configurable_diff_limits.yml => early_prepare_for_mergeability.yml} (71%) delete mode 100644 config/feature_flags/development/environments_by_deployments_finder_exists_optimization.yml create mode 100644 config/feature_flags/development/expire_job_and_pipeline_cache_synchronously.yml rename config/feature_flags/development/{validate_namespace_parent_type.yml => hide_access_tokens.yml} (70%) rename config/feature_flags/development/{cached_mr_title.yml => highlight_js.yml} (75%) rename config/feature_flags/development/{configure_iac_scanning_via_mr.yml => improved_container_scan_matching.yml} (60%) rename config/feature_flags/development/{track_importer_activity.yml => incident_escalations.yml} (65%) delete mode 100644 config/feature_flags/development/increased_diff_limits.yml rename config/feature_flags/development/{ci_queueing_builds_enabled_checks.yml => jobs_tab_vue.yml} (71%) create mode 100644 config/feature_flags/development/lfk_automatic_partition_creation.yml create mode 100644 config/feature_flags/development/lfk_automatic_partition_dropping.yml rename config/feature_flags/development/{files_api_throttling.yml => lfs_auto_link_fork_source.yml} (73%) rename config/feature_flags/development/{linear_user_membership_groups.yml => linear_group_descendants_finder.yml} (71%) delete mode 100644 config/feature_flags/development/linear_groups_template_finder_extended_group_search.yml rename config/feature_flags/development/{linear_application_settings_elasticsearch_limited_namespaces.yml => linear_user_group_notification_settings_finder_ancestors_scopes.yml} (63%) delete mode 100644 config/feature_flags/development/linear_user_groups_with_developer_maintainer_project_access.yml rename config/feature_flags/development/{between_commits_via_list_commits.yml => log_implicit_sidekiq_status_calls.yml} (61%) delete mode 100644 config/feature_flags/development/migrate_user_mentions.yml rename config/feature_flags/development/{labels_widget.yml => optimized_issue_neighbor_queries.yml} (72%) delete mode 100644 config/feature_flags/development/packages_npm_abbreviated_metadata.yml create mode 100644 config/feature_flags/development/prevent_abusive_searches.yml delete mode 100644 config/feature_flags/development/reference_cache_memoization.yml rename config/feature_flags/development/{partition_pruning.yml => sbom_survey.yml} (66%) rename config/feature_flags/development/{limited_diff_highlighting.yml => scim_token_vue.yml} (63%) create mode 100644 config/feature_flags/development/secure_vulnerability_training.yml rename config/feature_flags/development/{api_v3_commits_skip_diff_files.yml => shimo_integration.yml} (70%) rename config/feature_flags/development/{atomic_sidekiq_scheduler.yml => skip_scheduling_workers_for_replicas.yml} (52%) delete mode 100644 config/feature_flags/development/surface_environment_creation_failure.yml delete mode 100644 config/feature_flags/development/terms_of_service_vue.yml delete mode 100644 config/feature_flags/development/usage_data_instrumentation.yml create mode 100644 config/feature_flags/development/use_primary_and_secondary_stores_for_sessions.yml rename config/feature_flags/development/{use_multi_store.yml => use_primary_store_as_default_for_sessions.yml} (64%) rename config/feature_flags/development/{linear_group_including_descendants_by.yml => use_traversal_ids_for_ancestors_upto.yml} (69%) rename config/feature_flags/development/{keyset_pagination_for_groups_api.yml => use_traversal_ids_groups_finder.yml} (70%) delete mode 100644 config/feature_flags/development/use_upsert_query_for_mr_metrics.yml rename config/feature_flags/development/{load_balancing_for_update_all_mirrors_worker.yml => verify_participants_access.yml} (68%) delete mode 100644 config/feature_flags/development/vuln_report_new_project_filter.yml create mode 100644 config/feature_flags/development/wiki_switch_between_content_editor_raw_markdown.yml delete mode 100644 config/feature_flags/experiment/invite_email_from.yml delete mode 100644 config/feature_flags/experiment/invite_email_preview_text.yml rename config/feature_flags/experiment/{invite_members_for_task.yml => invite_for_help_continuous_onboarding.yml} (76%) delete mode 100644 config/feature_flags/experiment/invite_members_in_comment.yml delete mode 100644 config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml delete mode 100644 config/feature_flags/experiment/member_areas_of_focus.yml rename config/feature_flags/{development/ci_new_query_for_pending_stuck_jobs.yml => ops/ci_pipeline_creation_logger.yml} (65%) rename config/feature_flags/{development/refactor_text_viewer.yml => ops/database_async_index_creation.yml} (50%) rename config/feature_flags/{experiment/force_company_trial.yml => ops/feature_flag_state_logs.yml} (59%) rename config/feature_flags/ops/{lower_relation_max_count_limit.yml => gtm_nonce.yml} (56%) create mode 100644 config/initializers/active_record_database_tasks.rb create mode 100644 config/initializers/wikicloth_patch.rb create mode 100644 config/metrics/counts_28d/20211109114953_i_quickactions_add_contacts_monthly.yml create mode 100644 config/metrics/counts_28d/20211109120251_i_quickactions_remove_contacts_monthly.yml create mode 100644 config/metrics/counts_28d/20211122134101_p_ci_templates_implicit_security_dast_api_latest_monthly.yml create mode 100644 config/metrics/counts_28d/20211126084446_p_analytics_ci_cd_pipelines_monthly.yml create mode 100644 config/metrics/counts_28d/20211126090835_p_analytics_ci_cd_deployment_frequency_monthly.yml create mode 100644 config/metrics/counts_28d/20211126091206_p_analytics_ci_cd_lead_time_monthly.yml create mode 100644 config/metrics/counts_28d/20211201140658_users_expanding_testing_license_compliance_report_monthly.yml create mode 100644 config/metrics/counts_28d/20211201154341_users_visiting_license_compliance_full_report_monthly.yml create mode 100644 config/metrics/counts_28d/20211201194407_p_ci_templates_security_dast_api_latest_monthly.yml create mode 100644 config/metrics/counts_28d/20211202094237_users_visiting_manage_license_compliance_monthly.yml create mode 100644 config/metrics/counts_7d/20211109114948_i_quickactions_add_contacts_weekly.yml create mode 100644 config/metrics/counts_7d/20211109120245_i_quickactions_remove_contacts_weekly.yml create mode 100644 config/metrics/counts_7d/20211122134101_p_ci_templates_implicit_security_dast_api_latest_weekly.yml create mode 100644 config/metrics/counts_7d/20211126084441_p_analytics_ci_cd_pipelines_weekly.yml create mode 100644 config/metrics/counts_7d/20211126090829_p_analytics_ci_cd_deployment_frequency_weekly.yml create mode 100644 config/metrics/counts_7d/20211126091200_p_analytics_ci_cd_lead_time_weekly.yml create mode 100644 config/metrics/counts_7d/20211126154206_users_expanding_testing_license_compliance_report_weekly.yml create mode 100644 config/metrics/counts_7d/20211201154118_users_visiting_license_compliance_full_report_weekly.yml create mode 100644 config/metrics/counts_7d/20211201194402_p_ci_templates_security_dast_api_latest_weekly.yml create mode 100644 config/metrics/counts_7d/20211202094430_users_visiting_manage_license_compliance_weekly.yml create mode 100644 config/metrics/counts_all/20211126090001_p_analytics_ci_cd_pipelines.yml create mode 100644 config/metrics/counts_all/20211126090002_p_analytics_ci_cd_deployment_frequency.yml create mode 100644 config/metrics/counts_all/20211126090003_p_analytics_ci_cd_lead_time.yml create mode 100644 config/metrics/settings/20211124061450_snowplow_enabled.yml create mode 100644 config/metrics/settings/20211124085521_snowplow_configured_to_gitlab_collector_hostname.yml create mode 100644 danger/ci_config/Dangerfile create mode 100644 data/deprecations/14-6-deprecate-types.yml create mode 100644 data/deprecations/14-6-deprecation-license-compliance-api-terms.yml create mode 100644 data/deprecations/14-6-deprecation-secure-dependency-scanning-bundler-audit.yml create mode 100644 data/deprecations/14-6-pipeline-fields-package-deprecation.yml create mode 100644 data/deprecations/14-6-remove-api-fuzzing-ci-configuration-create-mutation.yml create mode 100644 data/deprecations/14-6-runner-api-status-renames-not_connected.yml create mode 100644 data/deprecations/job_char_limit.yml create mode 100644 data/deprecations/runner_api_new_stale_status_breaking_change.yml create mode 100644 data/whats_new/202112200001_14_06.yml create mode 100644 db/fixtures/development/32_crm.rb create mode 100644 db/migrate/20211008043855_remove_notes_trigram_index.rb create mode 100644 db/migrate/20211011140930_create_ci_namespace_mirrors.rb create mode 100644 db/migrate/20211011140931_create_ci_project_mirrors.rb create mode 100644 db/migrate/20211011140932_create_namespaces_sync_events.rb create mode 100644 db/migrate/20211011141239_create_projects_sync_events.rb create mode 100644 db/migrate/20211011141242_create_namespaces_sync_trigger.rb create mode 100644 db/migrate/20211011141243_create_projects_sync_trigger.rb create mode 100644 db/migrate/20211101165656_create_upload_states.rb create mode 100644 db/migrate/20211108204736_add_policy_idx_to_approval_project_rule.rb create mode 100644 db/migrate/20211110014701_create_agent_activity_events.rb create mode 100644 db/migrate/20211110015252_add_agent_activity_events_foreign_keys.rb create mode 100644 db/migrate/20211110092710_create_issue_emails.rb create mode 100644 db/migrate/20211111112425_create_merge_requests_compliance_violations.rb create mode 100644 db/migrate/20211111112639_add_fk_compliance_violations_merge_request.rb create mode 100644 db/migrate/20211111112713_add_fk_compliance_violations_violating_user.rb create mode 100644 db/migrate/20211111164025_add_squash_commit_template_to_project_settings.rb create mode 100644 db/migrate/20211111164047_add_squash_commit_template_limit_to_project_settings.rb create mode 100644 db/migrate/20211112073413_change_package_index_on_corpus.rb create mode 100644 db/migrate/20211115132613_create_incident_management_timeline_events.rb create mode 100644 db/migrate/20211115142803_add_foreign_key_to_incident_management_timeline_events_on_project.rb create mode 100644 db/migrate/20211115142847_add_foreign_key_to_incident_management_timeline_events_on_user.rb create mode 100644 db/migrate/20211115142911_add_foreign_key_to_incident_management_timeline_events_on_issue.rb create mode 100644 db/migrate/20211115145107_add_created_at_to_namespace_monthly_usages.rb create mode 100644 db/migrate/20211115154103_add_created_at_to_project_monthly_usage.rb create mode 100644 db/migrate/20211116093739_add_foreign_key_to_incident_management_timeline_events_on_updated_by_user.rb create mode 100644 db/migrate/20211117174209_create_vulnerability_reads.rb create mode 100644 db/migrate/20211118100959_change_default_value_of_loose_fk_deleted_records_partition.rb create mode 100644 db/migrate/20211118103439_remove_hardcoded_partition_from_loose_fk_trigger_function.rb create mode 100644 db/migrate/20211118114228_add_max_ssh_key_lifetime_to_application_settings.rb create mode 100644 db/migrate/20211118124537_add_foreign_key_to_vulnerability_reads_on_vulnerability.rb create mode 100644 db/migrate/20211118124628_add_foreign_key_to_vulnerability_reads_on_project.rb create mode 100644 db/migrate/20211118124650_add_foreign_key_to_vulnerability_reads_on_scanner.rb create mode 100644 db/migrate/20211119085015_add_orignal_filename_to_ci_job_artifact.rb create mode 100644 db/migrate/20211119154221_create_pages_deployment_states.rb create mode 100644 db/migrate/20211119170805_remove_test_report_requirement_issue_constraint.rb create mode 100644 db/migrate/20211119194024_add_required_approval_count_to_protected_environments.rb create mode 100644 db/migrate/20211119195201_create_deployment_approvals.rb create mode 100644 db/migrate/20211122215001_add_policy_idx_to_approval_merge_request_rule.rb create mode 100644 db/migrate/20211123181236_add_user_foreign_key_to_deployment_approvals.rb create mode 100644 db/migrate/20211123182614_make_iteration_cadences_start_date_nullable.rb create mode 100644 db/migrate/20211124132319_add_encrypted_static_objects_external_storage_auth_token.rb create mode 100644 db/migrate/20211126042235_add_sequence_column_to_sprints_table.rb create mode 100644 db/migrate/20211126113029_add_text_limit_for_static_objects_external_storage_auth_token.rb create mode 100644 db/migrate/20211126115449_encrypt_static_objects_external_storage_auth_token.rb create mode 100644 db/migrate/20211126142200_add_encrypted_static_object_token.rb create mode 100644 db/migrate/20211126142354_add_text_limit_to_encrypted_static_object_token.rb create mode 100644 db/migrate/20211126204445_add_task_to_work_item_types.rb create mode 100644 db/migrate/20211129151155_add_migrated_to_new_structure_column_to_vulnerability_occurrences.rb create mode 100644 db/migrate/20211129151832_add_index_on_vulnerability_occurrences_migrated_to_new_structure_column.rb create mode 100644 db/migrate/20211130151724_add_foreign_key_to_incident_management_timeline_events_on_note.rb create mode 100644 db/migrate/20211130205719_add_uniqueness_for_evidence_occurrence_id.rb create mode 100644 db/migrate/20211201061733_add_future_subscriptions_to_application_settings.rb create mode 100644 db/migrate/20211201143042_create_lfs_object_states.rb create mode 100644 db/migrate/20211202041233_add_deployment_foreign_key_to_deployment_approvals.rb create mode 100644 db/migrate/20211202094944_move_loose_fk_deleted_records_to_dynamic_schema.rb create mode 100644 db/migrate/20211202135508_add_index_on_packages_build_infos_package_id_pipeline_id.rb create mode 100644 db/migrate/20211204010826_add_index_snippets_on_project_id_and_title.rb create mode 100644 db/migrate/20211207154413_add_ci_runners_index_on_created_at_where_active_is_false.rb create mode 100644 db/migrate/20211207154414_add_ci_runners_index_on_contacted_at_where_active_is_false.rb create mode 100644 db/migrate/20211207165508_add_protected_environments_required_approval_count_check_constraint.rb create mode 100644 db/migrate/20211208111425_add_executor_type_column_to_ci_runners.rb create mode 100644 db/migrate/20211213130324_update_timelogs_spent_at_default.rb create mode 100644 db/migrate/20211214110307_remove_temp_index_from_vulnerability_occurrences.rb create mode 100644 db/post_migrate/20210713042000_fix_ci_sources_pipelines_index_names.rb create mode 100644 db/post_migrate/20211022214523_schedule_recalculate_vulnerability_finding_signatures_for_findings.rb create mode 100644 db/post_migrate/20211023102243_schedule_delete_invalid_epic_issues.rb create mode 100644 db/post_migrate/20211027043206_track_ci_pipeline_deletions.rb create mode 100644 db/post_migrate/20211027043229_track_ci_build_deletions.rb create mode 100644 db/post_migrate/20211101222614_consume_remaining_user_namespace_jobs.rb create mode 100644 db/post_migrate/20211103141403_remove_propagate_service_template_worker.rb create mode 100644 db/post_migrate/20211104165220_remove_vulnerability_finding_links.rb create mode 100644 db/post_migrate/20211110143306_add_not_null_constraint_to_security_findings_uuid.rb create mode 100644 db/post_migrate/20211110151320_add_temporary_index_on_security_findings_uuid.rb create mode 100644 db/post_migrate/20211110151350_schedule_drop_invalid_security_findings.rb create mode 100644 db/post_migrate/20211116091751_change_namespace_type_default_to_user.rb create mode 100644 db/post_migrate/20211116111644_schedule_remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings.rb create mode 100644 db/post_migrate/20211117084814_migrate_remaining_u2f_registrations.rb create mode 100644 db/post_migrate/20211118130836_drop_pages_deployments_builds_fk.rb create mode 100644 db/post_migrate/20211118194239_drop_invalid_remediations.rb create mode 100644 db/post_migrate/20211119085036_add_text_limit_to_job_artifact_original_filename.rb create mode 100644 db/post_migrate/20211122033501_improve_index_on_events_for_calendar.rb create mode 100644 db/post_migrate/20211122193948_cleanup_background_migration_of_requirements_to_work_items.rb create mode 100644 db/post_migrate/20211124132705_change_index_users_on_public_email.rb create mode 100644 db/post_migrate/20211125120444_add_index_todos_project_id_user_id.rb create mode 100644 db/post_migrate/20211130165043_backfill_sequence_column_for_sprints_table.rb create mode 100644 db/post_migrate/20211130201100_track_deletions_in_namespaces.rb create mode 100644 db/post_migrate/20211130201101_track_deletions_in_projects.rb create mode 100644 db/post_migrate/20211201101541_drop_clusters_applications_runners_ci_runners_fk.rb create mode 100644 db/post_migrate/20211202145237_add_todos_project_and_id_index.rb create mode 100644 db/post_migrate/20211203091642_add_index_to_projects_on_marked_for_deletion_at.rb create mode 100644 db/post_migrate/20211206073851_create_calendar_events_index_synchronously.rb create mode 100644 db/post_migrate/20211206074547_remove_old_calendar_events_index.rb create mode 100644 db/post_migrate/20211207090503_cleanup_first_mentioned_in_commit_jobs.rb create mode 100644 db/post_migrate/20211208171402_reschedule_recalculate_vulnerability_finding_signatures_for_findings.rb create mode 100644 db/post_migrate/20211209093636_track_ci_job_artifacts_deletes.rb create mode 100644 db/post_migrate/20211209093828_track_users_deletes.rb create mode 100644 db/post_migrate/20211209093923_track_external_pull_requests_deletes.rb create mode 100644 db/post_migrate/20211209094222_track_merge_requests_deletes.rb create mode 100644 db/post_migrate/20211210173137_remove_vulnerability_finding_links_again.rb create mode 100644 db/post_migrate/20211213064821_add_agent_id_location_index_to_vulnerability_occurrences.rb create mode 100644 db/post_migrate/20211213102111_drop_ci_pipelines_mr_metrics_fk.rb create mode 100644 db/post_migrate/20211215090620_schedule_update_timelogs_null_spent_at.rb create mode 100644 db/schema_migrations/20210713042000 create mode 100644 db/schema_migrations/20211008043855 create mode 100644 db/schema_migrations/20211011140930 create mode 100644 db/schema_migrations/20211011140931 create mode 100644 db/schema_migrations/20211011140932 create mode 100644 db/schema_migrations/20211011141239 create mode 100644 db/schema_migrations/20211011141242 create mode 100644 db/schema_migrations/20211011141243 create mode 100644 db/schema_migrations/20211022214523 create mode 100644 db/schema_migrations/20211023102243 create mode 100644 db/schema_migrations/20211027043206 create mode 100644 db/schema_migrations/20211027043229 create mode 100644 db/schema_migrations/20211101165656 create mode 100644 db/schema_migrations/20211101222614 create mode 100644 db/schema_migrations/20211103141403 create mode 100644 db/schema_migrations/20211104165220 create mode 100644 db/schema_migrations/20211108204736 create mode 100644 db/schema_migrations/20211110014701 create mode 100644 db/schema_migrations/20211110015252 create mode 100644 db/schema_migrations/20211110092710 create mode 100644 db/schema_migrations/20211110143306 create mode 100644 db/schema_migrations/20211110151320 create mode 100644 db/schema_migrations/20211110151350 create mode 100644 db/schema_migrations/20211111112425 create mode 100644 db/schema_migrations/20211111112639 create mode 100644 db/schema_migrations/20211111112713 create mode 100644 db/schema_migrations/20211111164025 create mode 100644 db/schema_migrations/20211111164047 create mode 100644 db/schema_migrations/20211112073413 create mode 100644 db/schema_migrations/20211115132613 create mode 100644 db/schema_migrations/20211115142803 create mode 100644 db/schema_migrations/20211115142847 create mode 100644 db/schema_migrations/20211115142911 create mode 100644 db/schema_migrations/20211115145107 create mode 100644 db/schema_migrations/20211115154103 create mode 100644 db/schema_migrations/20211116091751 create mode 100644 db/schema_migrations/20211116093739 create mode 100644 db/schema_migrations/20211116111644 create mode 100644 db/schema_migrations/20211117084814 create mode 100644 db/schema_migrations/20211117174209 create mode 100644 db/schema_migrations/20211118100959 create mode 100644 db/schema_migrations/20211118103439 create mode 100644 db/schema_migrations/20211118114228 create mode 100644 db/schema_migrations/20211118124537 create mode 100644 db/schema_migrations/20211118124628 create mode 100644 db/schema_migrations/20211118124650 create mode 100644 db/schema_migrations/20211118130836 create mode 100644 db/schema_migrations/20211118194239 create mode 100644 db/schema_migrations/20211119085015 create mode 100644 db/schema_migrations/20211119085036 create mode 100644 db/schema_migrations/20211119154221 create mode 100644 db/schema_migrations/20211119170805 create mode 100644 db/schema_migrations/20211119194024 create mode 100644 db/schema_migrations/20211119195201 create mode 100644 db/schema_migrations/20211122033501 create mode 100644 db/schema_migrations/20211122193948 create mode 100644 db/schema_migrations/20211122215001 create mode 100644 db/schema_migrations/20211123181236 create mode 100644 db/schema_migrations/20211123182614 create mode 100644 db/schema_migrations/20211124132319 create mode 100644 db/schema_migrations/20211124132705 create mode 100644 db/schema_migrations/20211125120444 create mode 100644 db/schema_migrations/20211126042235 create mode 100644 db/schema_migrations/20211126113029 create mode 100644 db/schema_migrations/20211126115449 create mode 100644 db/schema_migrations/20211126142200 create mode 100644 db/schema_migrations/20211126142354 create mode 100644 db/schema_migrations/20211126204445 create mode 100644 db/schema_migrations/20211129151155 create mode 100644 db/schema_migrations/20211129151832 create mode 100644 db/schema_migrations/20211130151724 create mode 100644 db/schema_migrations/20211130165043 create mode 100644 db/schema_migrations/20211130201100 create mode 100644 db/schema_migrations/20211130201101 create mode 100644 db/schema_migrations/20211130205719 create mode 100644 db/schema_migrations/20211201061733 create mode 100644 db/schema_migrations/20211201101541 create mode 100644 db/schema_migrations/20211201143042 create mode 100644 db/schema_migrations/20211202041233 create mode 100644 db/schema_migrations/20211202094944 create mode 100644 db/schema_migrations/20211202135508 create mode 100644 db/schema_migrations/20211202145237 create mode 100644 db/schema_migrations/20211203091642 create mode 100644 db/schema_migrations/20211204010826 create mode 100644 db/schema_migrations/20211206073851 create mode 100644 db/schema_migrations/20211206074547 create mode 100644 db/schema_migrations/20211207090503 create mode 100644 db/schema_migrations/20211207154413 create mode 100644 db/schema_migrations/20211207154414 create mode 100644 db/schema_migrations/20211207165508 create mode 100644 db/schema_migrations/20211208111425 create mode 100644 db/schema_migrations/20211208171402 create mode 100644 db/schema_migrations/20211209093636 create mode 100644 db/schema_migrations/20211209093828 create mode 100644 db/schema_migrations/20211209093923 create mode 100644 db/schema_migrations/20211209094222 create mode 100644 db/schema_migrations/20211210173137 create mode 100644 db/schema_migrations/20211213064821 create mode 100644 db/schema_migrations/20211213102111 create mode 100644 db/schema_migrations/20211213130324 create mode 100644 db/schema_migrations/20211214110307 create mode 100644 db/schema_migrations/20211215090620 create mode 100644 doc/.vale/gitlab/Dropdown.yml rename doc/.vale/gitlab/{Acronyms.yml => Uppercase.yml} (87%) delete mode 100644 doc/administration/geo/replication/updating_the_geo_nodes.md create mode 100644 doc/administration/gitaly/recovery.md delete mode 100644 doc/administration/img/db_load_balancing_postgres_stats.png create mode 100644 doc/administration/package_information/supported_os.md create mode 100644 doc/administration/postgresql/database_load_balancing.md delete mode 100644 doc/administration/postgresql/img/pg_ha_architecture.png create mode 100644 doc/administration/troubleshooting/img/okta_setting_username.png create mode 100644 doc/administration/troubleshooting/img/sidekiq_flamegraph.png delete mode 100644 doc/api/services.md create mode 100644 doc/architecture/blueprints/object_storage/index.md create mode 100644 doc/ci/runners/saas/linux_saas_runner.md create mode 100644 doc/ci/runners/saas/macos/environment.md create mode 100644 doc/ci/runners/saas/macos_saas_runner.md create mode 100644 doc/ci/runners/saas/windows_saas_runner.md delete mode 100644 doc/ci/triggers/img/triggers_page.png create mode 100644 doc/ci/yaml/artifacts_reports.md delete mode 100644 doc/development/documentation/img/manual_build_docs_v14_3.png create mode 100644 doc/development/documentation/img/manual_build_docs_v14_6.png create mode 100644 doc/development/documentation/styleguide/img/callouts.png delete mode 100644 doc/development/event_tracking/backend.md delete mode 100644 doc/development/event_tracking/frontend.md delete mode 100644 doc/development/event_tracking/index.md delete mode 100644 doc/development/fe_guide/event_tracking.md create mode 100644 doc/development/graphql_guide/monitoring.md delete mode 100644 doc/development/product_analytics/event_dictionary.md delete mode 100644 doc/development/product_analytics/index.md delete mode 100644 doc/development/service_ping/dictionary.md delete mode 100644 doc/development/usage_ping/dictionary.md create mode 100644 doc/development/work_items_widgets.md create mode 100644 doc/integration/img/omniauth_providers_v_14_6.png delete mode 100644 doc/integration/jira/img/open_jira_issues_list_v13.2.png create mode 100644 doc/integration/jira/img/open_jira_issues_list_v14_6.png delete mode 100644 doc/integration/mattermost/gitlab-mattermost.msc delete mode 100644 doc/integration/mattermost/img/gitlab-mattermost.png delete mode 100644 doc/intro/index.md delete mode 100644 doc/user/admin_area/approving_users.md create mode 100644 doc/user/application_security/dast/checks/16.6.md delete mode 100644 doc/user/application_security/policies/img/security_policy_project_v14_3.png create mode 100644 doc/user/application_security/policies/img/security_policy_project_v14_6.png create mode 100644 doc/user/application_security/vulnerability_report/img/operational_vulnerability_tab_v14_6.png create mode 100644 doc/user/clusters/img/gitlab_agent_activity_events_v14_6.png delete mode 100644 doc/user/compliance/compliance_dashboard/index.md create mode 100644 doc/user/crm/crm_contacts_v14_6.png create mode 100644 doc/user/crm/crm_organizations_v14_6.png create mode 100644 doc/user/crm/index.md create mode 100644 doc/user/crm/issue_crm_contacts_v14_6.png create mode 100644 doc/user/group/planning_hierarchy/img/epic-view-ancestors-in-sidebar_v14_6.png create mode 100644 doc/user/group/planning_hierarchy/img/hierarchy_with_multi_level_epics.png create mode 100644 doc/user/group/planning_hierarchy/img/issue-view-parent-epic-in-sidebar_v14_6.png create mode 100644 doc/user/group/planning_hierarchy/index.md delete mode 100644 doc/user/img/award_emoji_comment_awarded.png delete mode 100644 doc/user/img/award_emoji_comment_picker.png delete mode 100644 doc/user/img/award_emoji_select.png create mode 100644 doc/user/img/award_emoji_select_v14_6.png delete mode 100644 doc/user/infrastructure/mr_integration.md delete mode 100644 doc/user/infrastructure/terraform_state.md delete mode 100644 doc/user/project/issues/img/button_close_issue_v13_6.png delete mode 100644 doc/user/project/issues/img/comment-or-discussion.png delete mode 100644 doc/user/project/issues/img/create_mr_from_issue.png delete mode 100644 doc/user/project/issues/img/delete_issue_v13_11.png delete mode 100644 doc/user/project/issues/img/disable_issue_auto_close.png delete mode 100644 doc/user/project/issues/img/issue_activity_sort_order_v12_10.png delete mode 100644 doc/user/project/issues/img/issue_type_change_v13_12.png delete mode 100644 doc/user/project/issues/img/issues_main_view_numbered.png delete mode 100644 doc/user/project/issues/img/merge_request_closes_issue_v13_11.png delete mode 100644 doc/user/project/issues/img/new_issue_from_email.png delete mode 100644 doc/user/project/issues/img/new_issue_from_issue_board.png delete mode 100644 doc/user/project/issues/img/new_issue_from_open_issue_v13_6.png delete mode 100644 doc/user/project/issues/img/new_issue_from_projects_dashboard.png delete mode 100644 doc/user/project/issues/img/new_issue_from_tracker_list.png delete mode 100644 doc/user/project/issues/img/new_issue_v13_1.png delete mode 100644 doc/user/project/issues/img/select_project_from_group_level_issue_tracker_v13_11.png delete mode 100644 doc/user/project/issues/img/show-all-activity.png delete mode 100644 doc/user/project/issues/img/sidebar_move_issue.png delete mode 100644 doc/user/project/issues/img/similar_issues.png delete mode 100644 doc/user/project/merge_requests/img/merge_commit_message_template_v14_5.png create mode 100644 doc/user/project/releases/img/feature_count_v14_6.png delete mode 100644 doc/user/project/wiki/img/content_editor_v14.0.png create mode 100644 doc/user/project/wiki/img/content_editor_v14.6.png delete mode 100644 doc/user/project/wiki/img/use_new_editor_button_v14.0.png create mode 100644 doc/user/project/wiki/img/use_new_editor_button_v14.6.png delete mode 100644 doc/user/search/img/dashboard_links_v13_11.png create mode 100644 doc/user/search/img/dashboard_links_v14_6.png delete mode 100644 doc/user/search/img/filter_approved_by_merge_requests_v13_0.png create mode 100644 doc/user/search/img/filter_approved_by_merge_requests_v14_6.png delete mode 100644 doc/user/search/img/filter_approver_merge_requests.png create mode 100644 doc/user/search/img/filter_approver_merge_requests_v14_6.png delete mode 100644 doc/user/search/img/filtering_merge_requests_by_date_v13_6.png create mode 100644 doc/user/search/img/filtering_merge_requests_by_date_v14_6.png delete mode 100644 doc/user/search/img/filtering_merge_requests_by_environment_v13_6.png create mode 100644 doc/user/search/img/filtering_merge_requests_by_environment_v14_6.png delete mode 100644 doc/user/search/img/issue_search_by_term.png delete mode 100644 doc/user/search/img/issue_search_filter_v12_7.png delete mode 100644 doc/user/search/img/issues_assigned_to_you.png delete mode 100644 doc/user/search/img/issues_filter_none_any.png delete mode 100644 doc/user/search/img/issues_mrs_shortcut_v14_4.png create mode 100644 doc/user/search/img/issues_mrs_shortcut_v14_6.png delete mode 100644 doc/user/search/img/project_search.png create mode 100644 lib/api/entities/changelog.rb create mode 100644 lib/banzai/filter/issuable_reference_expansion_filter.rb delete mode 100644 lib/banzai/filter/issuable_state_filter.rb create mode 100644 lib/bulk_imports/common/pipelines/badges_pipeline.rb rename lib/bulk_imports/{groups => common}/rest/get_badges_query.rb (74%) delete mode 100644 lib/bulk_imports/groups/pipelines/badges_pipeline.rb delete mode 100644 lib/bulk_imports/groups/pipelines/group_avatar_pipeline.rb create mode 100644 lib/bulk_imports/projects/graphql/get_snippet_repository_query.rb create mode 100644 lib/bulk_imports/projects/graphql/queryable.rb create mode 100644 lib/bulk_imports/projects/pipelines/auto_devops_pipeline.rb create mode 100644 lib/bulk_imports/projects/pipelines/ci_pipelines_pipeline.rb create mode 100644 lib/bulk_imports/projects/pipelines/container_expiration_policy_pipeline.rb create mode 100644 lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline.rb create mode 100644 lib/bulk_imports/projects/pipelines/project_attributes_pipeline.rb create mode 100644 lib/bulk_imports/projects/pipelines/project_feature_pipeline.rb create mode 100644 lib/bulk_imports/projects/pipelines/service_desk_setting_pipeline.rb create mode 100644 lib/bulk_imports/projects/pipelines/snippets_pipeline.rb create mode 100644 lib/bulk_imports/projects/pipelines/snippets_repository_pipeline.rb create mode 100644 lib/gitlab/abuse.rb delete mode 100644 lib/gitlab/background_migration/add_merge_request_diff_commits_count.rb delete mode 100644 lib/gitlab/background_migration/add_modified_to_approval_merge_request_rule.rb delete mode 100644 lib/gitlab/background_migration/backfill_deployment_clusters_from_deployments.rb delete mode 100644 lib/gitlab/background_migration/backfill_environment_id_deployment_merge_requests.rb delete mode 100644 lib/gitlab/background_migration/backfill_merge_request_cleanup_schedules.rb delete mode 100644 lib/gitlab/background_migration/backfill_namespace_settings.rb delete mode 100644 lib/gitlab/background_migration/backfill_project_settings.rb delete mode 100644 lib/gitlab/background_migration/backfill_push_rules_id_in_projects.rb create mode 100644 lib/gitlab/background_migration/drop_invalid_remediations.rb create mode 100644 lib/gitlab/background_migration/drop_invalid_security_findings.rb delete mode 100644 lib/gitlab/background_migration/fix_promoted_epics_discussion_ids.rb delete mode 100644 lib/gitlab/background_migration/fix_user_namespace_names.rb delete mode 100644 lib/gitlab/background_migration/fix_user_project_route_names.rb delete mode 100644 lib/gitlab/background_migration/link_lfs_objects_projects.rb delete mode 100644 lib/gitlab/background_migration/migrate_fingerprint_sha256_within_keys.rb delete mode 100644 lib/gitlab/background_migration/migrate_pages_metadata.rb delete mode 100644 lib/gitlab/background_migration/migrate_to_hashed_storage.rb delete mode 100644 lib/gitlab/background_migration/move_epic_issues_after_epics.rb delete mode 100644 lib/gitlab/background_migration/populate_any_approval_rule_for_merge_requests.rb delete mode 100644 lib/gitlab/background_migration/populate_any_approval_rule_for_projects.rb delete mode 100644 lib/gitlab/background_migration/populate_canonical_emails.rb delete mode 100644 lib/gitlab/background_migration/populate_dismissed_state_for_vulnerabilities.rb delete mode 100644 lib/gitlab/background_migration/populate_has_vulnerabilities.rb delete mode 100644 lib/gitlab/background_migration/populate_merge_request_assignees_table.rb delete mode 100644 lib/gitlab/background_migration/populate_missing_vulnerability_dismissal_information.rb delete mode 100644 lib/gitlab/background_migration/populate_personal_snippet_statistics.rb delete mode 100644 lib/gitlab/background_migration/populate_project_snippet_statistics.rb delete mode 100644 lib/gitlab/background_migration/populate_vulnerability_feedback_pipeline_id.rb delete mode 100644 lib/gitlab/background_migration/populate_vulnerability_historical_statistics.rb delete mode 100644 lib/gitlab/background_migration/prune_orphaned_geo_events.rb delete mode 100644 lib/gitlab/background_migration/recalculate_project_authorizations_with_min_max_user_id.rb rename lib/gitlab/background_migration/{migrate_security_scans.rb => recalculate_vulnerability_finding_signatures_for_findings.rb} (53%) delete mode 100644 lib/gitlab/background_migration/remove_duplicate_cs_findings.rb delete mode 100644 lib/gitlab/background_migration/remove_duplicated_cs_findings_without_vulnerability_id.rb delete mode 100644 lib/gitlab/background_migration/remove_inaccessible_epic_todos.rb create mode 100644 lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings.rb delete mode 100644 lib/gitlab/background_migration/remove_undefined_vulnerability_confidence_level.rb create mode 100644 lib/gitlab/background_migration/remove_vulnerability_finding_links.rb delete mode 100644 lib/gitlab/background_migration/replace_blocked_by_links.rb delete mode 100644 lib/gitlab/background_migration/reset_merge_status.rb delete mode 100644 lib/gitlab/background_migration/reset_shared_runners_for_transferred_projects.rb delete mode 100644 lib/gitlab/background_migration/set_merge_request_diff_files_count.rb delete mode 100644 lib/gitlab/background_migration/update_existing_subgroup_to_match_visibility_level_of_parent.rb delete mode 100644 lib/gitlab/background_migration/update_existing_users_that_require_two_factor_auth.rb delete mode 100644 lib/gitlab/background_migration/update_location_fingerprint_for_container_scanning_findings.rb create mode 100644 lib/gitlab/background_migration/update_timelogs_null_spent_at.rb delete mode 100644 lib/gitlab/background_migration/update_vulnerabilities_from_dismissal_feedback.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/create_resource_user_mention.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/lib/banzai/reference_parser.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/lib/banzai/reference_parser/isolated_mentioned_group_parser.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/lib/banzai/reference_parser/isolated_mentioned_project_parser.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/lib/banzai/reference_parser/isolated_mentioned_user_parser.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/lib/gitlab/isolated_reference_extractor.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/lib/gitlab/isolated_visibility_level.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/commit.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/commit_user_mention.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/concerns/isolated_feature_gate.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/concerns/isolated_mentionable.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/concerns/mentionable_migration_methods.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/concerns/namespace/recursive_traversal.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/design_management/design.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/design_user_mention.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/epic.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/epic_user_mention.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/group.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/merge_request.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/merge_request_user_mention.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/namespace.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/note.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/project.rb delete mode 100644 lib/gitlab/background_migration/user_mentions/models/user.rb delete mode 100644 lib/gitlab/ci/features.rb create mode 100644 lib/gitlab/ci/pipeline/chain/create_deployments.rb create mode 100644 lib/gitlab/ci/pipeline/chain/ensure_environments.rb create mode 100644 lib/gitlab/ci/pipeline/chain/ensure_resource_groups.rb create mode 100644 lib/gitlab/ci/pipeline/logger.rb create mode 100644 lib/gitlab/ci/tags/bulk_insert.rb create mode 100644 lib/gitlab/ci/templates/Security/DAST-API.latest.gitlab-ci.yml create mode 100644 lib/gitlab/database/gitlab_loose_foreign_keys.yml create mode 100644 lib/gitlab/database/loose_foreign_keys.rb create mode 100644 lib/gitlab/database/migrations/batched_background_migration_helpers.rb create mode 100644 lib/gitlab/database/partitioning/single_numeric_list_partition.rb create mode 100644 lib/gitlab/database/partitioning/sliding_list_strategy.rb create mode 100644 lib/gitlab/database/type/json_pg_safe.rb create mode 100644 lib/gitlab/diff/custom_diff.rb create mode 100644 lib/gitlab/empty_search_results.rb rename lib/gitlab/merge_requests/{merge_commit_message.rb => commit_message_generator.rb} (75%) delete mode 100644 lib/gitlab/patch/sidekiq_client.rb rename lib/gitlab/patch/{sidekiq_cron_poller.rb => sidekiq_poller.rb} (91%) create mode 100644 lib/gitlab/process_management.rb delete mode 100644 lib/gitlab/rate_limit_helpers.rb create mode 100644 lib/gitlab/redis/sessions_store_helper.rb create mode 100644 lib/gitlab/repository_archive_rate_limiter.rb create mode 100644 lib/gitlab/search/abuse_detection.rb create mode 100644 lib/gitlab/search/abuse_validators/no_abusive_coercion_from_string_validator.rb create mode 100644 lib/gitlab/search/abuse_validators/no_abusive_term_length_validator.rb create mode 100644 lib/gitlab/search/params.rb create mode 100644 lib/gitlab/security/scan_configuration.rb delete mode 100644 lib/gitlab/sidekiq_enq.rb create mode 100644 lib/gitlab/usage/metrics/instrumentations/snowplow_configured_to_gitlab_collector_metric.rb create mode 100644 lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric.rb create mode 100644 lib/sidebars/concerns/link_with_html_options.rb create mode 100644 lib/sidebars/projects/menus/shimo_menu.rb create mode 100644 metrics_server/dependencies.rb create mode 100644 metrics_server/metrics_server.rb create mode 100644 metrics_server/override_rails_constants.rb create mode 100644 metrics_server/settings_overrides.rb create mode 100644 qa/knapsack/gcs/.gitignore create mode 100644 qa/qa/flow/purchase.rb create mode 100644 qa/qa/flow/settings.rb create mode 100644 qa/qa/page/admin/settings/component/snowplow.rb create mode 100644 qa/qa/page/admin/settings/component/usage_statistics.rb create mode 100644 qa/qa/page/component/blob_content.rb create mode 100644 qa/qa/resource/errors.rb rename qa/qa/resource/{deploy_token.rb => project_deploy_token.rb} (55%) create mode 100644 qa/qa/resource/reusable.rb create mode 100644 qa/qa/resource/reusable_project.rb delete mode 100644 qa/qa/scenario/test/integration/kubernetes.rb create mode 100644 qa/qa/scenario/test/integration/service_ping_disabled.rb delete mode 100644 qa/qa/scenario/test/integration/ssh_tunnel.rb delete mode 100644 qa/qa/specs/features/api/1_manage/bulk_import_project_spec.rb rename qa/qa/specs/features/browser_ui/{non_devops => 14_non_devops}/performance_bar_spec.rb (93%) create mode 100644 qa/qa/specs/features/browser_ui/14_non_devops/service_ping_default_enabled_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/14_non_devops/service_ping_disabled_spec.rb create mode 100644 qa/qa/tools/knapsack_report.rb rename qa/spec/scenario/test/integration/{kubernetes_spec.rb => service_ping_disabled_spec.rb} (50%) create mode 100644 qa/tasks/knapsack.rake create mode 100644 rubocop/cop/qa/testcase_link_format.rb create mode 100755 scripts/db_tasks create mode 100644 scripts/lib/gitlab.rb create mode 100755 scripts/rspec_bisect_flaky create mode 100755 scripts/undercoverage delete mode 100644 sidekiq_cluster/dependencies.rb create mode 100644 spec/commands/metrics_server/metrics_server_spec.rb rename spec/controllers/{user_callouts_controller_spec.rb => users/callouts_controller_spec.rb} (73%) create mode 100644 spec/factories/clusters/agents/activity_events.rb rename spec/factories/{ => commit_signature}/gpg_signature.rb (76%) rename spec/factories/{ => commit_signature}/x509_commit_signature.rb (69%) create mode 100644 spec/factories/issue_emails.rb rename spec/factories/{user_callouts.rb => users/callouts.rb} (71%) create mode 100644 spec/features/boards/board_filters_spec.rb delete mode 100644 spec/features/boards/sidebar_due_date_spec.rb delete mode 100644 spec/features/boards/sidebar_milestones_spec.rb delete mode 100644 spec/features/dashboard/root_spec.rb delete mode 100644 spec/features/issues/user_invites_from_a_comment_spec.rb delete mode 100644 spec/features/merge_request/user_invites_from_a_comment_spec.rb create mode 100644 spec/features/one_trust_spec.rb create mode 100644 spec/features/users/one_trust_csp_spec.rb create mode 100644 spec/finders/issuables/crm_contact_filter_spec.rb create mode 100644 spec/finders/issuables/crm_organization_filter_spec.rb create mode 100644 spec/finders/packages/build_infos_finder_spec.rb create mode 100644 spec/fixtures/emails/service_desk_custom_address_envelope_to.eml create mode 100644 spec/fixtures/emails/service_desk_custom_address_reply.eml create mode 100644 spec/fixtures/emails/service_desk_custom_address_x_envelope_to.eml create mode 100644 spec/fixtures/emails/service_desk_reply.eml create mode 100644 spec/fixtures/emails/valid_new_issue_with_only_quotes.eml create mode 100644 spec/fixtures/error_tracking/parsed_event_nullbytes.json create mode 100644 spec/fixtures/error_tracking/python_event_repl.json create mode 100644 spec/fixtures/markdown/markdown_golden_master_examples.yml create mode 100644 spec/fixtures/packages/generic/myfile.zip create mode 100644 spec/fixtures/symlink_export.tar rename spec/frontend/{ => __helpers__}/matchers.js (100%) rename spec/frontend/{ => __helpers__}/matchers_spec.js (100%) rename spec/frontend/{mocks/ce/lib/utils => __helpers__/mocks}/axios_utils.js (100%) create mode 100644 spec/frontend/__helpers__/shared_test_setup.js create mode 100644 spec/frontend/access_tokens/components/token_spec.js create mode 100644 spec/frontend/access_tokens/components/tokens_app_spec.js create mode 100644 spec/frontend/api/packages_api_spec.js delete mode 100644 spec/frontend/boards/components/sidebar/board_sidebar_labels_select_spec.js delete mode 100644 spec/frontend/boards/components/sidebar/board_sidebar_subscription_spec.js create mode 100644 spec/frontend/clusters/agents/components/activity_events_list_spec.js create mode 100644 spec/frontend/clusters/agents/components/activity_history_item_spec.js create mode 100644 spec/frontend/clusters/mock_data.js delete mode 100644 spec/frontend/content_editor/markdown_processing_examples.js create mode 100644 spec/frontend/content_editor/markdown_processing_spec_helper.js create mode 100644 spec/frontend/crm/contact_form_spec.js create mode 100644 spec/frontend/crm/new_organization_form_spec.js delete mode 100644 spec/frontend/design_management/components/__snapshots__/design_note_pin_spec.js.snap delete mode 100644 spec/frontend/diffs/utils/discussions_spec.js create mode 100644 spec/frontend/editor/source_editor_markdown_livepreview_ext_spec.js create mode 100644 spec/frontend/environments/delete_environment_modal_spec.js create mode 100644 spec/frontend/fixtures/api_deploy_keys.rb delete mode 100644 spec/frontend/fixtures/api_markdown.rb delete mode 100644 spec/frontend/fixtures/api_markdown.yml create mode 100644 spec/frontend/fixtures/tabs.rb create mode 100644 spec/frontend/google_cloud/components/errors/gcp_error_spec.js create mode 100644 spec/frontend/google_cloud/components/errors/no_gcp_projects_spec.js create mode 100644 spec/frontend/google_cloud/components/home_spec.js create mode 100644 spec/frontend/google_cloud/components/service_accounts_form_spec.js rename spec/frontend/google_cloud/components/{service_accounts_spec.js => service_accounts_list_spec.js} (91%) create mode 100644 spec/frontend/ide/components/pipelines/empty_state_spec.js delete mode 100644 spec/frontend/integrations/integration_settings_form_spec.js rename spec/frontend/{issuable_bulk_update_sidebar => issuable/bulk_update_sidebar}/components/status_select_spec.js (94%) rename spec/frontend/{vue_shared/components/issuable => issuable/components}/issuable_header_warnings_spec.js (93%) rename spec/frontend/{vue_shared/components/issue => issuable/components}/issue_assignees_spec.js (98%) rename spec/frontend/{vue_shared/components/issue => issuable/components}/issue_milestone_spec.js (98%) rename spec/frontend/{vue_shared/components/issue => issuable/components}/related_issuable_item_spec.js (98%) rename spec/frontend/{vue_shared/components/issue => issuable/components}/related_issuable_mock_data.js (100%) rename spec/frontend/{ => issuable}/issuable_form_spec.js (96%) delete mode 100644 spec/frontend/issuable_spec.js rename spec/frontend/{ => issues}/issue_spec.js (98%) rename spec/frontend/{issuable_type_selector/components/__snapshots__/info_popover_spec.js.snap => issues/new/components/__snapshots__/type_popover_spec.js.snap} (88%) rename spec/frontend/{issuable_suggestions/components/item_spec.js => issues/new/components/title_suggestions_item_spec.js} (94%) rename spec/frontend/{issuable_suggestions/components/app_spec.js => issues/new/components/title_suggestions_spec.js} (86%) rename spec/frontend/{issuable_type_selector/components/info_popover_spec.js => issues/new/components/type_popover_spec.js} (60%) rename spec/frontend/{issuable_suggestions => issues/new}/mock_data.js (100%) rename spec/frontend/{ => issues}/related_merge_requests/components/related_merge_requests_spec.js (91%) rename spec/frontend/{ => issues}/related_merge_requests/store/actions_spec.js (94%) rename spec/frontend/{ => issues}/related_merge_requests/store/mutations_spec.js (89%) rename spec/frontend/{ => issues}/sentry_error_stack_trace/components/sentry_error_stack_trace_spec.js (94%) rename spec/frontend/{issue_show => issues/show}/components/app_spec.js (93%) create mode 100644 spec/frontend/issues/show/components/delete_issue_modal_spec.js rename spec/frontend/{issue_show => issues/show}/components/description_spec.js (98%) rename spec/frontend/{issue_show => issues/show}/components/edit_actions_spec.js (78%) rename spec/frontend/{issue_show => issues/show}/components/edited_spec.js (96%) rename spec/frontend/{issue_show => issues/show}/components/fields/description_spec.js (92%) rename spec/frontend/{issue_show => issues/show}/components/fields/description_template_spec.js (95%) rename spec/frontend/{issue_show => issues/show}/components/fields/title_spec.js (88%) rename spec/frontend/{issue_show => issues/show}/components/fields/type_spec.js (96%) rename spec/frontend/{issue_show => issues/show}/components/form_spec.js (91%) rename spec/frontend/{issue_show => issues/show}/components/header_actions_spec.js (71%) rename spec/frontend/{issue_show => issues/show}/components/incidents/highlight_bar_spec.js (96%) rename spec/frontend/{issue_show => issues/show}/components/incidents/incident_tabs_spec.js (94%) rename spec/frontend/{issue_show => issues/show}/components/pinned_links_spec.js (92%) rename spec/frontend/{issue_show => issues/show}/components/title_spec.js (94%) rename spec/frontend/{issue_show => issues/show}/issue_spec.js (89%) rename spec/frontend/{issue_show => issues/show}/mock_data/apollo_mock.js (100%) rename spec/frontend/{issue_show => issues/show}/mock_data/mock_data.js (100%) rename spec/frontend/{issue_show => issues/show}/store_spec.js (82%) rename spec/frontend/{issue_show => issues/show}/utils/update_description_spec.js (92%) create mode 100644 spec/frontend/jira_connect/subscriptions/components/user_link_spec.js delete mode 100644 spec/frontend/jira_connect/subscriptions/index_spec.js create mode 100644 spec/frontend/jobs/bridge/app_spec.js create mode 100644 spec/frontend/jobs/bridge/components/empty_state_spec.js create mode 100644 spec/frontend/jobs/bridge/components/sidebar_spec.js create mode 100644 spec/frontend/jobs/bridge/mock_data.js rename spec/frontend/{vue_shared => labels}/components/delete_label_modal_spec.js (92%) rename spec/frontend/{pages => }/labels/components/promote_label_modal_spec.js (95%) rename spec/frontend/{ => labels}/delete_label_modal_spec.js (97%) rename spec/frontend/{ => labels}/labels_select_spec.js (98%) create mode 100644 spec/frontend/lib/utils/intersection_observer_spec.js rename spec/frontend/{pages/milestones/shared => milestones}/components/delete_milestone_modal_spec.js (95%) rename spec/frontend/milestones/{ => components}/milestone_combobox_spec.js (99%) rename spec/frontend/{pages/milestones/shared => milestones}/components/promote_milestone_modal_spec.js (96%) rename spec/frontend/milestones/{milestone_utils_spec.js => utils_spec.js} (95%) delete mode 100644 spec/frontend/mocks/mocks_helper.js delete mode 100644 spec/frontend/mocks/mocks_helper_spec.js create mode 100644 spec/frontend/notes/components/__snapshots__/notes_app_spec.js.snap delete mode 100644 spec/frontend/packages/shared/utils_spec.js rename spec/frontend/{packages => packages_and_registries/infrastructure_registry/components}/list/components/__snapshots__/packages_list_app_spec.js.snap (88%) rename spec/frontend/packages_and_registries/infrastructure_registry/components/{ => list/components}/infrastructure_search_spec.js (98%) rename spec/frontend/packages_and_registries/infrastructure_registry/components/{ => list/components}/infrastructure_title_spec.js (97%) rename spec/frontend/{packages => packages_and_registries/infrastructure_registry/components}/list/components/packages_list_app_spec.js (94%) rename spec/frontend/{packages => packages_and_registries/infrastructure_registry/components}/list/components/packages_list_spec.js (87%) rename spec/frontend/{packages => packages_and_registries/infrastructure_registry/components}/list/stores/actions_spec.js (94%) rename spec/frontend/{packages => packages_and_registries/infrastructure_registry/components}/list/stores/getters_spec.js (88%) rename spec/frontend/{packages => packages_and_registries/infrastructure_registry/components}/list/stores/mutations_spec.js (90%) rename spec/frontend/{packages => packages_and_registries/infrastructure_registry/components}/list/utils_spec.js (88%) rename spec/frontend/{packages => packages_and_registries/infrastructure_registry/components}/mock_data.js (100%) rename spec/frontend/{packages/shared/components => packages_and_registries/infrastructure_registry/components/shared}/__snapshots__/package_list_row_spec.js.snap (94%) rename spec/frontend/packages_and_registries/infrastructure_registry/components/{ => shared}/infrastructure_icon_and_name_spec.js (90%) rename spec/frontend/{packages/shared/components => packages_and_registries/infrastructure_registry/components/shared}/package_list_row_spec.js (80%) rename spec/frontend/packages_and_registries/package_registry/{components/list/__snapshots__/app_spec.js.snap => pages/__snapshots__/list_spec.js.snap} (81%) rename spec/frontend/packages_and_registries/package_registry/{components/list/app_spec.js => pages/list_spec.js} (91%) rename spec/frontend/{packages/shared/components => packages_and_registries/shared}/__snapshots__/publish_method_spec.js.snap (96%) create mode 100644 spec/frontend/packages_and_registries/shared/components/registry_list_spec.js rename spec/frontend/{packages/shared/components => packages_and_registries/shared}/package_icon_and_name_spec.js (85%) rename spec/frontend/{packages/shared/components => packages_and_registries/shared}/package_path_spec.js (97%) rename spec/frontend/{packages/shared/components => packages_and_registries/shared}/package_tags_spec.js (94%) rename spec/frontend/{packages/shared/components => packages_and_registries/shared}/packages_list_loader_spec.js (92%) rename spec/frontend/{packages/shared/components => packages_and_registries/shared}/publish_method_spec.js (88%) delete mode 100644 spec/frontend/pages/dashboard/projects/index/components/customize_homepage_banner_spec.js create mode 100644 spec/frontend/pipelines/components/jobs/jobs_app_spec.js create mode 100644 spec/frontend/projects/settings/components/transfer_project_form_spec.js delete mode 100644 spec/frontend/projects/storage_counter/components/app_spec.js delete mode 100644 spec/frontend/projects/storage_counter/components/storage_table_spec.js delete mode 100644 spec/frontend/projects/storage_counter/components/storage_type_icon_spec.js delete mode 100644 spec/frontend/projects/storage_counter/mock_data.js delete mode 100644 spec/frontend/projects/storage_counter/utils_spec.js create mode 100644 spec/frontend/repository/components/blob_viewers/pdf_viewer_spec.js delete mode 100644 spec/frontend/repository/components/blob_viewers/text_viewer_spec.js delete mode 100644 spec/frontend/runner/components/runner_contacted_state_badge_spec.js create mode 100644 spec/frontend/runner/components/runner_delete_modal_spec.js create mode 100644 spec/frontend/runner/components/runner_status_badge_spec.js create mode 100644 spec/frontend/runner/components/stat/runner_online_stat_spec.js create mode 100644 spec/frontend/security_configuration/components/training_provider_list_spec.js create mode 100644 spec/frontend/security_configuration/mock_data.js rename spec/frontend/sidebar/components/{attention_required_toggle_spec.js => attention_requested_toggle_spec.js} (96%) create mode 100644 spec/frontend/sidebar/components/crm_contacts_spec.js create mode 100644 spec/frontend/sidebar/components/mock_data.js delete mode 100644 spec/frontend/sidebar/sidebar_labels_spec.js create mode 100644 spec/frontend/tabs/index_spec.js create mode 100644 spec/frontend/vue_mr_widget/components/extensions/utils_spec.js delete mode 100644 spec/frontend/vue_mr_widget/test_extension.js create mode 100644 spec/frontend/vue_mr_widget/test_extensions.js create mode 100644 spec/frontend/vue_shared/components/chronic_duration_input_spec.js create mode 100644 spec/frontend/vue_shared/components/design_management/__snapshots__/design_note_pin_spec.js.snap rename spec/frontend/{design_management/components => vue_shared/components/design_management}/design_note_pin_spec.js (62%) create mode 100644 spec/frontend/vue_shared/components/dom_element_listener_spec.js delete mode 100644 spec/frontend/vue_shared/components/filtered_search_bar/tokens/epic_token_spec.js delete mode 100644 spec/frontend/vue_shared/components/filtered_search_bar/tokens/iteration_token_spec.js delete mode 100644 spec/frontend/vue_shared/components/filtered_search_bar/tokens/weight_token_spec.js create mode 100644 spec/frontend/vue_shared/components/form/input_copy_toggle_visibility_spec.js create mode 100644 spec/frontend/vue_shared/components/line_numbers_spec.js create mode 100644 spec/frontend/vue_shared/components/namespace_select/mock_data.js create mode 100644 spec/frontend/vue_shared/components/namespace_select/namespace_select_spec.js rename spec/frontend/{import_entities/components => vue_shared/components/pagination_bar}/pagination_bar_spec.js (91%) delete mode 100644 spec/frontend/vue_shared/components/sidebar/collapsed_grouped_date_picker_spec.js create mode 100644 spec/frontend/vue_shared/components/source_viewer_spec.js delete mode 100644 spec/frontend/vue_shared/components/storage_counter/usage_graph_spec.js rename spec/frontend/{issuable_create => vue_shared/issuable/create}/components/issuable_create_root_spec.js (90%) rename spec/frontend/{issuable_create => vue_shared/issuable/create}/components/issuable_form_spec.js (97%) rename spec/frontend/{issuable_list => vue_shared/issuable/list}/components/issuable_bulk_edit_sidebar_spec.js (95%) rename spec/frontend/{issuable_list => vue_shared/issuable/list}/components/issuable_item_spec.js (86%) rename spec/frontend/{issuable_list => vue_shared/issuable/list}/components/issuable_list_root_spec.js (92%) rename spec/frontend/{issuable_list => vue_shared/issuable/list}/components/issuable_tabs_spec.js (96%) rename spec/frontend/{issuable_list => vue_shared/issuable/list}/mock_data.js (100%) rename spec/frontend/{issuable_show => vue_shared/issuable/show}/components/issuable_body_spec.js (95%) rename spec/frontend/{issuable_show => vue_shared/issuable/show}/components/issuable_description_spec.js (95%) rename spec/frontend/{issuable_show => vue_shared/issuable/show}/components/issuable_edit_form_spec.js (97%) rename spec/frontend/{issuable_show => vue_shared/issuable/show}/components/issuable_header_spec.js (98%) rename spec/frontend/{issuable_show => vue_shared/issuable/show}/components/issuable_show_root_spec.js (92%) rename spec/frontend/{issuable_show => vue_shared/issuable/show}/components/issuable_title_spec.js (97%) rename spec/frontend/{issuable_show => vue_shared/issuable/show}/mock_data.js (93%) rename spec/frontend/{issuable_sidebar => vue_shared/issuable/sidebar}/components/issuable_sidebar_root_spec.js (95%) create mode 100644 spec/frontend/work_items/components/item_title_spec.js create mode 100644 spec/frontend/work_items/pages/create_work_item_spec.js create mode 100644 spec/graphql/resolvers/ci/runner_status_resolver_spec.rb create mode 100644 spec/graphql/resolvers/clusters/agent_activity_events_resolver_spec.rb create mode 100644 spec/graphql/resolvers/container_repository_tags_resolver_spec.rb create mode 100644 spec/graphql/resolvers/package_pipelines_resolver_spec.rb create mode 100644 spec/graphql/resolvers/users/participants_resolver_spec.rb create mode 100644 spec/graphql/types/base_edge_spec.rb create mode 100644 spec/graphql/types/ci/job_need_union_spec.rb create mode 100644 spec/graphql/types/clusters/agent_activity_event_type_spec.rb create mode 100644 spec/graphql/types/container_respository_tags_sort_enum_spec.rb create mode 100644 spec/helpers/badges_helper_spec.rb create mode 100644 spec/helpers/ci/jobs_helper_spec.rb create mode 100644 spec/helpers/numbers_helper_spec.rb rename spec/helpers/{user_callouts_helper_spec.rb => users/callouts_helper_spec.rb} (67%) create mode 100644 spec/helpers/users/group_callouts_helper_spec.rb create mode 100644 spec/initializers/forbid_sidekiq_in_transactions_spec.rb delete mode 100644 spec/lib/after_commit_queue_spec.rb create mode 100644 spec/lib/api/entities/changelog_spec.rb create mode 100644 spec/lib/api/entities/ci/pipeline_spec.rb create mode 100644 spec/lib/api/entities/personal_access_token_spec.rb rename spec/lib/banzai/filter/{issuable_state_filter_spec.rb => issuable_reference_expansion_filter_spec.rb} (72%) create mode 100644 spec/lib/bulk_imports/common/pipelines/badges_pipeline_spec.rb create mode 100644 spec/lib/bulk_imports/common/rest/get_badges_query_spec.rb delete mode 100644 spec/lib/bulk_imports/groups/pipelines/badges_pipeline_spec.rb delete mode 100644 spec/lib/bulk_imports/groups/pipelines/group_avatar_pipeline_spec.rb delete mode 100644 spec/lib/bulk_imports/groups/rest/get_badges_query_spec.rb create mode 100644 spec/lib/bulk_imports/projects/graphql/get_snippet_repository_query_spec.rb create mode 100644 spec/lib/bulk_imports/projects/pipelines/auto_devops_pipeline_spec.rb create mode 100644 spec/lib/bulk_imports/projects/pipelines/ci_pipelines_pipeline_spec.rb create mode 100644 spec/lib/bulk_imports/projects/pipelines/container_expiration_policy_pipeline_spec.rb create mode 100644 spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb create mode 100644 spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb create mode 100644 spec/lib/bulk_imports/projects/pipelines/project_feature_pipeline_spec.rb create mode 100644 spec/lib/bulk_imports/projects/pipelines/service_desk_setting_pipeline_spec.rb create mode 100644 spec/lib/bulk_imports/projects/pipelines/snippets_pipeline_spec.rb create mode 100644 spec/lib/bulk_imports/projects/pipelines/snippets_repository_pipeline_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/add_merge_request_diff_commits_count_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/add_modified_to_approval_merge_request_rule_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/backfill_deployment_clusters_from_deployments_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/backfill_environment_id_deployment_merge_requests_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/backfill_merge_request_cleanup_schedules_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/backfill_namespace_settings_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/backfill_project_settings_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/backfill_push_rules_id_in_projects_spec.rb create mode 100644 spec/lib/gitlab/background_migration/drop_invalid_security_findings_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/fix_promoted_epics_discussion_ids_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/fix_user_namespace_names_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/fix_user_project_route_names_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/link_lfs_objects_projects_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/migrate_fingerprint_sha256_within_keys_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/migrate_pages_metadata_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/migrate_to_hashed_storage_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/populate_canonical_emails_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/populate_dismissed_state_for_vulnerabilities_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/populate_has_vulnerabilities_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/populate_merge_request_assignees_table_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/populate_missing_vulnerability_dismissal_information_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/populate_personal_snippet_statistics_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/populate_project_snippet_statistics_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/recalculate_project_authorizations_with_min_max_user_id_spec.rb create mode 100644 spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb create mode 100644 spec/lib/gitlab/background_migration/remove_vulnerability_finding_links_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/replace_blocked_by_links_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/reset_merge_status_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/reset_shared_runners_for_transferred_projects_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/set_merge_request_diff_files_count_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/update_existing_subgroup_to_match_visibility_level_of_parent_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/update_existing_users_that_require_two_factor_auth_spec.rb create mode 100644 spec/lib/gitlab/background_migration/update_timelogs_null_spent_at_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/user_mentions/create_resource_user_mention_spec.rb create mode 100644 spec/lib/gitlab/ci/pipeline/chain/create_deployments_spec.rb create mode 100644 spec/lib/gitlab/ci/pipeline/chain/ensure_environments_spec.rb create mode 100644 spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb create mode 100644 spec/lib/gitlab/ci/pipeline/logger_spec.rb create mode 100644 spec/lib/gitlab/ci/tags/bulk_insert_spec.rb create mode 100644 spec/lib/gitlab/database/loose_foreign_keys_spec.rb create mode 100644 spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb create mode 100644 spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb create mode 100644 spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb create mode 100644 spec/lib/gitlab/database/type/json_pg_safe_spec.rb create mode 100644 spec/lib/gitlab/diff/custom_diff_spec.rb create mode 100644 spec/lib/gitlab/empty_search_results_spec.rb create mode 100644 spec/lib/gitlab/exception_log_formatter_spec.rb create mode 100644 spec/lib/gitlab/merge_requests/commit_message_generator_spec.rb delete mode 100644 spec/lib/gitlab/merge_requests/merge_commit_message_spec.rb create mode 100644 spec/lib/gitlab/process_management_spec.rb delete mode 100644 spec/lib/gitlab/rate_limit_helpers_spec.rb create mode 100644 spec/lib/gitlab/repository_archive_rate_limiter_spec.rb create mode 100644 spec/lib/gitlab/saas_spec.rb create mode 100644 spec/lib/gitlab/search/abuse_detection_spec.rb create mode 100644 spec/lib/gitlab/search/abuse_validators/no_abusive_coercion_from_string_validator_spec.rb create mode 100644 spec/lib/gitlab/search/abuse_validators/no_abusive_term_length_validator_spec.rb create mode 100644 spec/lib/gitlab/search/params_spec.rb create mode 100644 spec/lib/gitlab/security/scan_configuration_spec.rb delete mode 100644 spec/lib/gitlab/sidekiq_enq_spec.rb create mode 100644 spec/lib/gitlab/usage/metrics/instrumentations/snowplow_configured_to_gitlab_collector_metric_spec.rb create mode 100644 spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb create mode 100644 spec/lib/sidebars/concerns/link_with_html_options_spec.rb create mode 100644 spec/lib/sidebars/projects/menus/shimo_menu_spec.rb create mode 100644 spec/metrics_server/metrics_server_spec.rb create mode 100644 spec/migrations/20210713042000_fix_ci_sources_pipelines_index_names_spec.rb create mode 100644 spec/migrations/20211101222614_consume_remaining_user_namespace_jobs_spec.rb create mode 100644 spec/migrations/20211110143306_add_not_null_constraint_to_security_findings_uuid_spec.rb create mode 100644 spec/migrations/20211110151350_schedule_drop_invalid_security_findings_spec.rb create mode 100644 spec/migrations/20211116091751_change_namespace_type_default_to_user_spec.rb create mode 100644 spec/migrations/20211116111644_schedule_remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb create mode 100644 spec/migrations/20211117084814_migrate_remaining_u2f_registrations_spec.rb create mode 100644 spec/migrations/20211126115449_encrypt_static_objects_external_storage_auth_token_spec.rb create mode 100644 spec/migrations/20211126204445_add_task_to_work_item_types_spec.rb create mode 100644 spec/migrations/20211130165043_backfill_sequence_column_for_sprints_table_spec.rb create mode 100644 spec/migrations/20211203091642_add_index_to_projects_on_marked_for_deletion_at_spec.rb create mode 100644 spec/migrations/schedule_recalculate_vulnerability_finding_signatures_for_findings_spec.rb create mode 100644 spec/migrations/schedule_update_timelogs_null_spent_at_spec.rb create mode 100644 spec/models/ci/namespace_mirror_spec.rb create mode 100644 spec/models/ci/project_mirror_spec.rb create mode 100644 spec/models/clusters/agents/activity_event_spec.rb rename spec/models/{ => commit_signatures}/gpg_signature_spec.rb (97%) rename spec/models/{ => commit_signatures}/x509_commit_signature_spec.rb (97%) create mode 100644 spec/models/concerns/after_commit_queue_spec.rb delete mode 100644 spec/models/concerns/loose_foreign_key_spec.rb create mode 100644 spec/models/concerns/transactions_spec.rb create mode 100644 spec/models/issue/email_spec.rb delete mode 100644 spec/models/preloaders/group_root_ancestor_preloader_spec.rb rename spec/models/{user_callout_spec.rb => users/callout_spec.rb} (80%) rename spec/models/{concerns => users}/calloutable_spec.rb (57%) create mode 100644 spec/policies/clusters/agents/activity_event_policy_spec.rb create mode 100644 spec/presenters/projects/security/configuration_presenter_spec.rb create mode 100644 spec/requests/admin/integrations_controller_spec.rb create mode 100644 spec/requests/admin/version_check_controller_spec.rb create mode 100644 spec/requests/api/ci/job_artifacts_spec.rb create mode 100644 spec/requests/api/graphql/project/jobs_spec.rb create mode 100644 spec/requests/api/markdown_golden_master_spec.rb create mode 100644 spec/requests/groups/crm/contacts_controller_spec.rb create mode 100644 spec/requests/groups/crm/organizations_controller_spec.rb create mode 100644 spec/requests/projects/google_cloud/service_accounts_controller_spec.rb create mode 100644 spec/requests/projects/integrations/shimos_controller_spec.rb create mode 100644 spec/requests/projects/merge_requests/context_commit_diffs_spec.rb create mode 100644 spec/rubocop/cop/qa/testcase_link_format_spec.rb rename spec/serializers/{ => ci}/job_entity_spec.rb (99%) rename spec/serializers/{build_serializer_spec.rb => ci/job_serializer_spec.rb} (98%) create mode 100644 spec/services/bulk_imports/archive_extraction_service_spec.rb create mode 100644 spec/services/bulk_imports/uploads_export_service_spec.rb create mode 100644 spec/services/ci/create_pipeline_service/logger_spec.rb delete mode 100644 spec/services/ci/pipeline_processing/shared_processing_service.rb delete mode 100644 spec/services/ci/pipeline_processing/shared_processing_service_tests_with_yaml.rb create mode 100644 spec/services/ci/process_sync_events_service_spec.rb create mode 100644 spec/services/concerns/audit_event_save_type_spec.rb rename spec/services/dependency_proxy/{find_or_create_manifest_service_spec.rb => find_cached_manifest_service_spec.rb} (74%) delete mode 100644 spec/services/dependency_proxy/pull_manifest_service_spec.rb create mode 100644 spec/services/events/destroy_service_spec.rb create mode 100644 spec/services/incident_management/issuable_escalation_statuses/create_service_spec.rb rename spec/services/{admin/propagate_integration_service_spec.rb => integrations/propagate_service_spec.rb} (98%) create mode 100644 spec/services/merge_requests/bulk_remove_attention_requested_service_spec.rb create mode 100644 spec/services/merge_requests/remove_attention_requested_service_spec.rb rename spec/services/todos/destroy/{private_features_service_spec.rb => unauthorized_features_service_spec.rb} (91%) rename spec/services/users/{dismiss_user_callout_service_spec.rb => dismiss_callout_service_spec.rb} (63%) create mode 100644 spec/support/frontend_fixtures.rb create mode 100644 spec/support/helpers/migrations_helpers/work_item_types_helper.rb create mode 100644 spec/support/helpers/modal_helpers.rb create mode 100644 spec/support/shared_contexts/markdown_golden_master_shared_examples.rb create mode 100644 spec/support/shared_examples/ci/create_pipeline_service_shared_examples.rb create mode 100644 spec/support/shared_examples/features/sidebar/sidebar_due_date_shared_examples.rb create mode 100644 spec/support/shared_examples/features/sidebar/sidebar_milestone_shared_examples.rb delete mode 100644 spec/support/shared_examples/lib/gitlab/background_migration/mentions_migration_shared_examples.rb create mode 100644 spec/support/shared_examples/lib/gitlab/redis/multi_store_feature_flags_shared_examples.rb create mode 100644 spec/support/shared_examples/workers/background_migration_worker_shared_examples.rb create mode 100644 spec/tasks/gitlab/background_migrations_rake_spec.rb create mode 100644 spec/views/groups/new.html.haml_spec.rb delete mode 100644 spec/views/jira_connect/subscriptions/index.html.haml_spec.rb delete mode 100644 spec/views/projects/buttons/_dropdown.html.haml_spec.rb create mode 100644 spec/views/projects/hooks/edit.html.haml_spec.rb create mode 100644 spec/views/projects/hooks/index.html.haml_spec.rb create mode 100644 spec/workers/ci/pending_builds/update_group_worker_spec.rb create mode 100644 spec/workers/ci/pending_builds/update_project_worker_spec.rb create mode 100644 spec/workers/namespaces/process_sync_events_worker_spec.rb create mode 100644 spec/workers/projects/process_sync_events_worker_spec.rb create mode 100755 tooling/bin/qa/check_if_qa_only_spec_changes create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/LICENSE create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/README.md create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/example_test.go create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/go.mod create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/obscuretestdata_test.go create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/reader.go create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/reader_test.go create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/register.go create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/struct.go create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/crc32-not-streamed.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/dd.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/go-no-datadesc-sig.zip.base64 create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/go-with-datadesc-sig.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/gophercolor16x16.png create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/readme.notzip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/readme.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/subdir.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/symlink.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/test-trailing-junk.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/test.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/time-22738.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/time-7zip.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/time-go.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/time-infozip.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/time-osx.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/time-win7.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/time-winrar.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/time-winzip.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/unix.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/utf8-7zip.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/utf8-infozip.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/utf8-osx.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/utf8-winrar.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/utf8-winzip.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/winxp.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/zip64-2.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/testdata/zip64.zip create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/writer.go create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/writer_test.go create mode 100644 workhorse-vendor/gitlab.com/gitlab-org/golang-archive-zip/zip_test.go create mode 100644 workhorse/internal/upstream/metrics_test.go diff --git a/.eslintrc.yml b/.eslintrc.yml index 623c1a6630..0f73a9c510 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -63,11 +63,11 @@ rules: group: internal - pattern: emojis/** group: internal - - pattern: '{ee_,}empty_states/**' + - pattern: '{ee_,jh_,}empty_states/**' group: internal - - pattern: '{ee_,}icons/**' + - pattern: '{ee_,jh_,}icons/**' group: internal - - pattern: '{ee_,}images/**' + - pattern: '{ee_,jh_,}images/**' group: internal - pattern: vendor/** group: internal @@ -75,13 +75,17 @@ rules: group: internal - pattern: '{ee_,}spec/**' group: internal - - pattern: '{ee_,}jest/**' + - pattern: '{ee_,jh_,}jest/**' group: internal - - pattern: ee_else_ce/** + - pattern: '{ee_,jh_,any_}else_ce/**' group: internal - pattern: ee/** group: internal - - pattern: ee_component/** + - pattern: '{ee_,jh_,}component/**' + group: internal + - pattern: jh_else_ee/** + group: internal + - pattern: jh/** group: internal - pattern: '{test_,}helpers/**' group: internal @@ -120,9 +124,9 @@ overrides: parserOptions: parser: '@graphql-eslint/eslint-plugin' operations: - - '{,ee/,jh/}app/**/*.graphql' - # You can run `bundle exec rake gitlab:graphql:schema:dump` and then uncomment this line - # schema: './tmp/tests/graphql/gitlab_schema.graphql' + - '{,ee/,jh/}app/**/*.graphql' + # You can run `bundle exec rake gitlab:graphql:schema:dump` and then uncomment this line + # schema: './tmp/tests/graphql/gitlab_schema.graphql' rules: filenames/match-regex: off spaced-comment: off @@ -134,3 +138,4 @@ overrides: #'@graphql-eslint/known-type-names': error '@graphql-eslint/no-anonymous-operations': error '@graphql-eslint/unique-operation-name': error + '@graphql-eslint/require-id-when-available': error diff --git a/.gitignore b/.gitignore index bff82967fc..0a7808601e 100644 --- a/.gitignore +++ b/.gitignore @@ -95,7 +95,6 @@ jsdoc/ webpack-dev-server.json /.nvimrc .solargraph.yml -apollo.config.js /tmp/matching_foss_tests.txt /tmp/matching_tests.txt ee/changelogs/unreleased-ee diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e810edd813..405346d68d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,7 +16,7 @@ stages: # in cases where jobs require Docker-in-Docker, the job # definition must be extended with `.use-docker-in-docker` default: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36" + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36 tags: - gitlab-org # All jobs are interruptible by default @@ -72,6 +72,7 @@ variables: FLAKY_RSPEC_SUITE_REPORT_PATH: rspec_flaky/report-suite.json RSPEC_TESTS_MAPPING_PATH: crystalball/mapping.json RSPEC_PACKED_TESTS_MAPPING_PATH: crystalball/packed-mapping.json + FRONTEND_FIXTURES_MAPPING_PATH: crystalball/frontend_fixtures_mapping.json ES_JAVA_OPTS: "-Xms256m -Xmx256m" ELASTIC_URL: "http://elastic:changeme@elasticsearch:9200" @@ -95,6 +96,9 @@ variables: # Default latest tag for particular branch QA_IMAGE_BRANCH: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_REF_SLUG}" + REGISTRY_HOST: "registry.gitlab.com" + REGISTRY_GROUP: "gitlab-org" + # Preparing custom clone path to reduce space used by all random forks # on GitLab.com's Shared Runners. Our main forks - especially the security # ones - will have this variable overwritten in the project settings, so that diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index c6a89ddfa9..5eb96d1add 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -11,22 +11,23 @@ /doc/.markdownlint @marcel.amirault @eread @aqualls @cnorris /doc/ @gl-docsteam /doc/.vale/ @marcel.amirault @eread @aqualls @cnorris -/doc/administration/geo/ @marcel.amirault +/doc/administration/geo/ @axil /doc/administration/gitaly/ @eread /doc/administration/lfs/ @aqualls /doc/administration/monitoring/ @ngaskill -/doc/administration/operations/ @marcel.amirault @eread @marcia +/doc/administration/operations/ @axil @eread @marcia /doc/administration/packages/ @ngaskill /doc/administration/pages/ @rdickenson @kpaizee /doc/administration/postgresql/ @marcia -/doc/administration/raketasks/ @marcel.amirault @eread -/doc/administration/redis/ @marcel.amirault -/doc/administration/reference_architectures/ @marcel.amirault +/doc/administration/raketasks/ @axil @eread +/doc/administration/redis/ @axil +/doc/administration/reference_architectures/ @axil /doc/administration/snippets/ @aqualls -/doc/administration/troubleshooting @marcel.amirault @marcia @eread +/doc/administration/troubleshooting @axil @marcia @eread /doc/api/graphql/ @msedlakjakubowski @kpaizee /doc/api/graphql/reference/ @kpaizee /doc/api/group_activity_analytics.md @fneill +/doc/api/vulnerabilities.md @fneill /doc/ci/ @marcel.amirault @sselhorn /doc/ci/environments/ @rdickenson /doc/ci/services/ @sselhorn @@ -36,7 +37,7 @@ /doc/development/i18n/ @ngaskill /doc/development/value_stream_analytics.md @fneill /doc/gitlab-basics/ @aqualls -/doc/install/ @marcel.amirault +/doc/install/ @axil /doc/operations/ @ngaskill @rdickenson /doc/push_rules/ @aqualls /doc/security/ @eread @@ -44,11 +45,15 @@ /doc/subscriptions/ @sselhorn /doc/topics/autodevops/ @marcia /doc/topics/git/ @aqualls -/doc/update/ @marcel.amirault @marcia +/doc/update/ @axil @marcia /doc/user/analytics/ @fneill @ngaskill /doc/user/application_security/ @rdickenson /doc/user/application_security/container_scanning/ @ngaskill /doc/user/application_security/cluster_image_scanning/ @ngaskill +/doc/user/application_security/cve_id_request.md @fneill +/doc/user/application_security/security_dashboard @fneill +/doc/user/application_security/vulnerabilities @fneill +/doc/user/application_security/vulnerability_report @fneill /doc/user/clusters/ @marcia /doc/user/compliance/ @rdickenson @eread /doc/user/group/ @msedlakjakubowski @@ -80,7 +85,6 @@ [Docs Create] /doc/administration/file_hooks.md @aqualls -/doc/administration/git_annex.md @aqualls /doc/administration/git_protocol.md @aqualls /doc/administration/invalidate_markdown_cache.md @aqualls /doc/administration/issue_closing_pattern.md @aqualls @@ -173,7 +177,6 @@ /lib/gitlab/background_migration/ @gitlab-org/maintainers/database /ee/lib/ee/gitlab/background_migration/ @gitlab-org/maintainers/database /lib/gitlab/database/ @gitlab-org/maintainers/database -/ee/lib/gitlab/database/ @gitlab-org/maintainers/database /lib/gitlab/sql/ @gitlab-org/maintainers/database /lib/gitlab/github_import/ @gitlab-org/maintainers/database /app/finders/ @gitlab-org/maintainers/database @@ -185,7 +188,6 @@ /.gitlab/ci/ @gl-quality/eng-prod /.gitlab/ci/docs.gitlab-ci.yml @gl-quality/eng-prod @gl-docsteam /.gitlab/ci/releases.gitlab-ci.yml @gl-quality/eng-prod @gitlab-org/delivery -/.gitlab/ci/dast.gitlab-ci.yml @dappelt @ngeorge1 @gl-quality/eng-prod /.gitlab/ci/reports.gitlab-ci.yml @gitlab-com/gl-security/appsec @gl-quality/eng-prod /.gitlab/CODEOWNERS @gl-quality/eng-prod Dangerfile @gl-quality/eng-prod @@ -198,6 +200,8 @@ Dangerfile @gl-quality/eng-prod [Backend Static Code Analysis] .rubocop*.yml @dstull @splattael @gl-quality/eng-prod +.rubocop_todo.yml @dstull @splattael @gl-quality/eng-prod +.rubocop_todo/ @dstull @splattael @gl-quality/eng-prod /rubocop/ @dstull @splattael @gl-quality/eng-prod /spec/rubocop/ @dstull @splattael @gl-quality/eng-prod @@ -230,8 +234,6 @@ Dangerfile @gl-quality/eng-prod /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 @@ -267,8 +269,6 @@ Dangerfile @gl-quality/eng-prod /spec/lib/gitlab/kubernetes/network_policy_spec.rb @gitlab-org/protect/container-security-backend /ee/app/services/network_policies/** @gitlab-org/protect/container-security-backend /ee/spec/services/network_policies/** @gitlab-org/protect/container-security-backend -/ee/app/controllers/projects/security/waf_anomalies_controller.rb @gitlab-org/protect/container-security-backend -/ee/spec/controllers/projects/security/waf_anomalies_controller_spec.rb @gitlab-org/protect/container-security-backend /app/models/clusters/applications/cilium.rb @gitlab-org/protect/container-security-backend /spec/models/clusters/applications/cilium_spec.rb @gitlab-org/protect/container-security-backend /ee/app/controllers/projects/security/network_policies_controller.rb @gitlab-org/protect/container-security-backend @@ -298,7 +298,7 @@ Dangerfile @gl-quality/eng-prod /lib/gitlab/discussions_diff/ @dskim_gitlab @garyh @patrickbajao @marc_shaw @kerrizor /lib/gitlab/quick_actions/ @dskim_gitlab @garyh @patrickbajao @marc_shaw @kerrizor -/ee/app/models/merge_request.rb @dskim_gitlab @garyh @patrickbajao @marc_shaw @kerrizor +/ee/app/models/ee/merge_request.rb @dskim_gitlab @garyh @patrickbajao @marc_shaw @kerrizor /ee/app/services/merge_requests/ @dskim_gitlab @garyh @patrickbajao @marc_shaw @kerrizor /ee/app/workers/merge_requests/ @dskim_gitlab @garyh @patrickbajao @marc_shaw @kerrizor /ee/app/workers/merge_request_reset_approvals_worker.rb @dskim_gitlab @garyh @patrickbajao @marc_shaw @kerrizor @@ -306,7 +306,6 @@ Dangerfile @gl-quality/eng-prod /app/assets/javascripts/diffs @viktomas @jboyson @iamphill @thomasrandolph /app/assets/javascripts/batch_comments/ @viktomas @jboyson @iamphill @thomasrandolph /app/assets/javascripts/notes @viktomas @jboyson @iamphill @thomasrandolph -/app/assets/javascripts/merge_request @viktomas @jboyson @iamphill @thomasrandolph /app/assets/javascripts/merge_conflicts @viktomas @jboyson @iamphill @thomasrandolph /app/assets/javascripts/mr_notes @viktomas @jboyson @iamphill @thomasrandolph /app/assets/javascripts/mr_popover @viktomas @jboyson @iamphill @thomasrandolph @@ -328,7 +327,6 @@ Dangerfile @gl-quality/eng-prod /lib/gitlab/usage_data_counters/ @gitlab-org/growth/product-intelligence/engineers [Growth Experiments] -/app/assets/javascripts/lib/utils/experimentation.js @gitlab-org/growth/experiment-devs /app/experiments/ @gitlab-org/growth/experiment-devs /app/models/experiment.rb @gitlab-org/growth/experiment-devs /app/models/experiment_subject.rb @gitlab-org/growth/experiment-devs diff --git a/.gitlab/ci/docs.gitlab-ci.yml b/.gitlab/ci/docs.gitlab-ci.yml index 6aa3d53331..ae36c0cea7 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.14-ruby-2.7.4-0fae0f62 + image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-html:alpine-3.14-ruby-2.7.5-08847baa stage: lint needs: [] script: diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index d3844d0121..ea4ae3b049 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -11,7 +11,7 @@ - .default-retry - .default-before_script - .assets-compile-cache - image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7-git-2.33-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.36 + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:ruby-2.7-git-2.33-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.36 variables: SETUP_DB: "false" WEBPACK_VENDOR_DLL: "true" @@ -331,7 +331,7 @@ bundle-size-review: extends: - .default-retry - .frontend:rules:bundle-size-review - image: registry.gitlab.com/gitlab-org/gitlab-build-images:danger + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:danger stage: test needs: ["compile-production-assets"] script: diff --git a/.gitlab/ci/global.gitlab-ci.yml b/.gitlab/ci/global.gitlab-ci.yml index 22bd3b1e2e..04883e5680 100644 --- a/.gitlab/ci/global.gitlab-ci.yml +++ b/.gitlab/ci/global.gitlab-ci.yml @@ -213,7 +213,7 @@ - *storybook-node-modules-cache-push .use-pg11: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36" + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36 services: - name: postgres:11.6 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] @@ -222,7 +222,7 @@ POSTGRES_HOST_AUTH_METHOD: trust .use-pg12: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36" + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 services: - name: postgres:12 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] @@ -231,7 +231,7 @@ POSTGRES_HOST_AUTH_METHOD: trust .use-pg13: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36" + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-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"] @@ -240,7 +240,7 @@ POSTGRES_HOST_AUTH_METHOD: trust .use-pg11-ee: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36" + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36 services: - name: postgres:11.6 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] @@ -251,7 +251,7 @@ POSTGRES_HOST_AUTH_METHOD: trust .use-pg12-ee: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36" + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 services: - name: postgres:12 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] @@ -262,7 +262,7 @@ POSTGRES_HOST_AUTH_METHOD: trust .use-pg13-ee: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36" + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-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"] @@ -274,7 +274,7 @@ .use-kaniko: image: - name: registry.gitlab.com/gitlab-org/gitlab-build-images:kaniko + name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:kaniko entrypoint: [""] before_script: - source scripts/utils.sh diff --git a/.gitlab/ci/qa-report.gitlab-ci.yml b/.gitlab/ci/qa-report.gitlab-ci.yml deleted file mode 100644 index 61cbcfd58d..0000000000 --- a/.gitlab/ci/qa-report.gitlab-ci.yml +++ /dev/null @@ -1,15 +0,0 @@ -test-reliability-report: - extends: - - .qa:rules:reliable-reports:schedule - image: - name: ${CI_REGISTRY_IMAGE}/gitlab-ee-qa:${CI_DEFAULT_BRANCH} - entrypoint: [""] - before_script: - - cd /home/gitlab/qa - script: - - echo "Generate report for 'staging-full' runs" - - bundle exec rake "reliable_spec_report[staging-full,30,true]" - - bundle exec rake "unreliable_spec_report[staging-full,30,true]" - - echo "Generate report for 'package-and-qa' runs" - - bundle exec rake "reliable_spec_report[package-and-qa,30,true]" - - bundle exec rake "unreliable_spec_report[package-and-qa,30,true]" diff --git a/.gitlab/ci/qa.gitlab-ci.yml b/.gitlab/ci/qa.gitlab-ci.yml index 74fc5f2cdc..4fec223e66 100644 --- a/.gitlab/ci/qa.gitlab-ci.yml +++ b/.gitlab/ci/qa.gitlab-ci.yml @@ -57,8 +57,12 @@ update-qa-cache: - install_gitlab_gem - tooling/bin/find_change_diffs ${CHANGES_DIFFS_DIR} script: + - tooling/bin/qa/check_if_qa_only_spec_changes ${CHANGES_FILE} ${ONLY_QA_CHANGES_FILE} + - '[ -f $ONLY_QA_CHANGES_FILE ] && export QA_TESTS="`cat $ONLY_QA_CHANGES_FILE`"' + - 'echo "QA_TESTS: $QA_TESTS"' + - exit_code=0 && tooling/bin/qa/package_and_qa_check ${CHANGES_DIFFS_DIR} || exit_code=$? + - echo $exit_code - | - tooling/bin/qa/package_and_qa_check ${CHANGES_DIFFS_DIR} && exit_code=$? if [ $exit_code -eq 0 ]; then ./scripts/trigger-build omnibus elif [ $exit_code -eq 1 ]; then @@ -80,16 +84,25 @@ update-qa-cache: expire_in: 7d paths: - ${CHANGES_FILE} + - ${ONLY_QA_CHANGES_FILE} - ${CHANGES_DIFFS_DIR}/* variables: CHANGES_FILE: tmp/changed_files.txt + ONLY_QA_CHANGES_FILE: tmp/qa_only_changed_files.txt CHANGES_DIFFS_DIR: tmp/diffs + ALLURE_JOB_NAME: $CI_JOB_NAME .package-and-qa-ff-base: script: - - export GITLAB_QA_OPTIONS="--set-feature-flags $(scripts/changed-feature-flags --files $(cat $CHANGES_FILE | tr ' ' ',') --state $QA_FF_STATE)" - - echo $GITLAB_QA_OPTIONS - - ./scripts/trigger-build omnibus + - | + feature_flags=$(scripts/changed-feature-flags --files $(cat $CHANGES_FILE | tr ' ' ',') --state $QA_FF_STATE) + if [[ $feature_flags ]]; then + export GITLAB_QA_OPTIONS="--set-feature-flags $feature_flags" + echo $GITLAB_QA_OPTIONS + ./scripts/trigger-build omnibus + else + echo "No changed feature flag found to test. The tests are skipped if the flag was removed." + fi package-and-qa: extends: diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml index 1fb1c887e5..d676dc2f33 100644 --- a/.gitlab/ci/rails.gitlab-ci.yml +++ b/.gitlab/ci/rails.gitlab-ci.yml @@ -18,9 +18,13 @@ variables: RSPEC_TESTS_MAPPING_ENABLED: "true" -.decomposed-database-rspec: +.decomposed-database: variables: DECOMPOSED_DB: "true" + +.decomposed-database-rspec: + extends: .decomposed-database + variables: GITLAB_LOAD_BALANCING_REUSE_PRIMARY_ci: "main" GITLAB_USE_MODEL_LOAD_BALANCING: "true" @@ -31,6 +35,7 @@ RUBY_GC_MALLOC_LIMIT: 67108864 RUBY_GC_MALLOC_LIMIT_MAX: 134217728 RECORD_DEPRECATIONS: "true" + GEO_SECONDARY_PROXY: 0 needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets", "detect-tests"] script: - !reference [.base-script, script] @@ -151,16 +156,16 @@ parallel: 3 .rspec-unit-parallel: - parallel: 20 + parallel: 22 .rspec-ee-unit-parallel: - parallel: 12 + parallel: 14 .rspec-ee-unit-geo-parallel: parallel: 2 .rspec-integration-parallel: - parallel: 8 + parallel: 10 .rspec-ee-integration-parallel: parallel: 4 @@ -341,8 +346,14 @@ rspec fast_spec_helper minimal: db:rollback: extends: .db-job-base script: - - bundle exec rake db:migrate VERSION=20181228175414 - - bundle exec rake db:migrate SKIP_SCHEMA_VERSION_CHECK=true + - scripts/db_tasks db:migrate VERSION=20181228175414 + - scripts/db_tasks db:migrate SKIP_SCHEMA_VERSION_CHECK=true + +db:rollback decomposed: + extends: + - db:rollback + - .decomposed-database + - .rails:rules:decomposed-databases db:migrate:reset: extends: .db-job-base @@ -367,19 +378,34 @@ db:migrate-from-previous-major-version: - git checkout -f $CI_COMMIT_SHA - SETUP_DB=false USE_BUNDLE_INSTALL=true bash scripts/prepare_build.sh script: - - run_timed_command "bundle exec rake db:migrate" + - run_timed_command "scripts/db_tasks db:migrate" -db:check-schema: +db:migrate-from-previous-major-version-decomposed: extends: - db:migrate-from-previous-major-version + - .decomposed-database + - .rails:rules:decomposed-databases + +.db:check-schema-base: + extends: - .rails:rules:ee-mr-and-default-branch-only variables: TAG_TO_CHECKOUT: "v14.4.0" script: - - run_timed_command "bundle exec rake db:migrate" + - run_timed_command "scripts/db_tasks db:migrate" - scripts/schema_changed.sh - scripts/validate_migration_timestamps +db:check-schema: + extends: + - db:migrate-from-previous-major-version + - .db:check-schema-base + +db:check-schema-decomposed: + extends: + - db:migrate-from-previous-major-version-decomposed + - .db:check-schema-base + db:check-migrations: extends: - .db-job-base @@ -389,6 +415,12 @@ db:check-migrations: - scripts/validate_migration_schema allow_failure: true +db:check-migrations-decomposed: + extends: + - db:check-migrations + - .decomposed-database + - .rails:rules:decomposed-databases + db:gitlabcom-database-testing: extends: .rails:rules:db:gitlabcom-database-testing stage: test @@ -487,6 +519,11 @@ rspec:coverage: - rspec unit pg12 minimal - rspec integration pg12 minimal - rspec system pg12 minimal + # FOSS/EE decomposed jobs + - rspec migration pg12 decomposed + - rspec unit pg12 decomposed + - rspec integration pg12 decomposed + - rspec system pg12 decomposed # EE jobs - rspec-ee migration pg12 - rspec-ee unit pg12 @@ -497,6 +534,11 @@ rspec:coverage: - rspec-ee unit pg12 minimal - rspec-ee integration pg12 minimal - rspec-ee system pg12 minimal + # EE decomposed jobs + - rspec-ee migration pg12 decomposed + - rspec-ee unit pg12 decomposed + - rspec-ee integration pg12 decomposed + - rspec-ee system pg12 decomposed # Geo jobs - rspec-ee unit pg12 geo - rspec-ee integration pg12 geo @@ -508,6 +550,19 @@ rspec:coverage: # Memory jobs - memory-static - memory-on-boot + # As-if-FOSS jobs + - rspec migration pg12-as-if-foss + - rspec migration pg12-as-if-foss minimal + - rspec migration pg12-as-if-foss decomposed + - rspec unit pg12-as-if-foss + - rspec unit pg12-as-if-foss minimal + - rspec unit pg12-as-if-foss decomposed + - rspec integration pg12-as-if-foss + - rspec integration pg12-as-if-foss minimal + - rspec integration pg12-as-if-foss decomposed + - rspec system pg12-as-if-foss + - rspec system pg12-as-if-foss minimal + - rspec system pg12-as-if-foss decomposed script: - run_timed_command "bundle exec scripts/merge-simplecov" - run_timed_command "bundle exec scripts/gather-test-memory-data" @@ -518,10 +573,29 @@ rspec:coverage: paths: - coverage/index.html - coverage/assets/ + - coverage/lcov/ - tmp/memory_test/ reports: cobertura: coverage/coverage.xml +rspec:undercoverage: + extends: + - .coverage-base + - .rails:rules:rspec-undercoverage + stage: post-test + needs: ["rspec:coverage"] + 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 we can use $CI_MERGE_REQUEST_DIFF_BASE_SHA for undercoverage in this merged result pipeline"; + git checkout -f ${CI_MERGE_REQUEST_SOURCE_BRANCH_SHA}; + bundle_install_script; + else + echo "Using \$CI_COMMIT_SHA ($CI_COMMIT_SHA) for this non-merge result pipeline."; + fi; + - if [ -f scripts/undercoverage ]; then + run_timed_command "scripts/undercoverage"; + fi; + rspec:feature-flags: extends: - .coverage-base @@ -880,8 +954,8 @@ db:rollback geo: - db:rollback - .rails:rules:ee-only-migration script: - - bundle exec rake geo:db:migrate VERSION=20170627195211 - - bundle exec rake geo:db:migrate + - bundle exec rake db:migrate:geo VERSION=20170627195211 + - bundle exec rake db:migrate:geo # EE: default refs (MRs, default branch, schedules) jobs # ################################################## diff --git a/.gitlab/ci/reports.gitlab-ci.yml b/.gitlab/ci/reports.gitlab-ci.yml index 33efc3c478..6d58bbf968 100644 --- a/.gitlab/ci/reports.gitlab-ci.yml +++ b/.gitlab/ci/reports.gitlab-ci.yml @@ -98,7 +98,7 @@ gemnasium-python-dependency_scanning: yarn-audit-dependency_scanning: extends: .ds-analyzer - image: "registry.gitlab.com/gitlab-org/security-products/analyzers/npm-audit:1.4.0" + image: "registry.gitlab.com/gitlab-org/security-products/analyzers/npm-audit:1.4.1" variables: TOOL: yarn rules: !reference [".reports:rules:yarn-audit-dependency_scanning", rules] diff --git a/.gitlab/ci/review-apps/main.gitlab-ci.yml b/.gitlab/ci/review-apps/main.gitlab-ci.yml index 670175a6f1..16ef3c82cd 100644 --- a/.gitlab/ci/review-apps/main.gitlab-ci.yml +++ b/.gitlab/ci/review-apps/main.gitlab-ci.yml @@ -34,12 +34,12 @@ review-build-cng: .review-workflow-base: extends: - .default-retry - image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-helm3.5-kubectl1.17 + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:gitlab-helm3.5-kubectl1.17 resource_group: "review/${CI_COMMIT_REF_NAME}" variables: HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}" DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}" - GITLAB_HELM_CHART_REF: "v5.4.1" + GITLAB_HELM_CHART_REF: "v5.5.0" environment: name: review/${CI_COMMIT_REF_SLUG}${FREQUENCY} url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN} @@ -65,6 +65,7 @@ review-deploy: - deploy || (display_deployment_debug && exit 1) - verify_deploy || exit 1 - disable_sign_ups || (delete_release && exit 1) + - create_sample_projects after_script: # Run seed-dast-test-data.sh only when DAST_RUN is set to true. This is to pupulate review app with data for DAST scan. # Set DAST_RUN to true when jobs are manually scheduled. @@ -104,4 +105,4 @@ review-stop: stage: deploy needs: [] script: - - delete_k8s_release_namespace + - delete_namespace diff --git a/.gitlab/ci/review-apps/qa.gitlab-ci.yml b/.gitlab/ci/review-apps/qa.gitlab-ci.yml index 07f8bd4e5f..af4674b802 100644 --- a/.gitlab/ci/review-apps/qa.gitlab-ci.yml +++ b/.gitlab/ci/review-apps/qa.gitlab-ci.yml @@ -16,16 +16,19 @@ GITLAB_ADMIN_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}" GITLAB_QA_ADMIN_ACCESS_TOKEN: "${REVIEW_APPS_ROOT_TOKEN}" GITHUB_ACCESS_TOKEN: "${REVIEW_APPS_QA_GITHUB_ACCESS_TOKEN}" - EE_LICENSE: "${REVIEW_APPS_EE_LICENSE}" SIGNUP_DISABLED: "true" before_script: # Use $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA so that GitLab image built in omnibus-gitlab-mirror and QA image are in sync. + - export EE_LICENSE="$(cat $REVIEW_APPS_EE_LICENSE_FILE)" - 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}" - cd qa + - if [ -n "$KNAPSACK_REPORT_PATH" ]; then + bundle exec rake knapsack:download; + fi artifacts: paths: - qa/tmp @@ -34,21 +37,28 @@ .parallel-qa-base: parallel: 5 + variables: + KNAPSACK_TEST_FILE_PATTERN: "qa/specs/features/**/*_spec.rb" script: - - export KNAPSACK_REPORT_PATH=knapsack/master_report.json - - export KNAPSACK_TEST_FILE_PATTERN=qa/specs/features/**/*_spec.rb - | bin/test "${QA_SCENARIO}" "${CI_ENVIRONMENT_URL}" \ -- \ --color --format documentation \ --format RspecJunitFormatter --out tmp/rspec.xml + after_script: + - if [ -n "$KNAPSACK_GENERATE_REPORT" ]; then + mv qa/${KNAPSACK_REPORT_PATH} qa/knapsack/gcs/regenerated-${CI_NODE_INDEX}.json; + fi artifacts: + paths: + - qa/tmp # we can't merge list so need to include explicitly once more + - qa/knapsack/gcs/regenerated-*.json reports: junit: qa/tmp/rspec.xml .allure-report-base: image: - name: ${GITLAB_DEPENDENCY_PROXY}andrcuns/allure-report-publisher:0.4.1 + name: ${GITLAB_DEPENDENCY_PROXY}andrcuns/allure-report-publisher:0.4.2 entrypoint: [""] stage: post-qa variables: @@ -69,6 +79,16 @@ --ignore-missing-results \ --color +.knapsack-upload-base: + image: + name: ${QA_IMAGE} + entrypoint: [""] + stage: post-qa + before_script: + - cd qa + script: + - bundle exec rake 'knapsack:upload[knapsack/gcs/regenerated-*.json]' + review-qa-smoke: extends: - .review-qa-base @@ -84,9 +104,11 @@ review-qa-reliable: - .review-qa-base - .review:rules:review-qa-reliable - .parallel-qa-base + retry: 1 variables: QA_RUN_TYPE: review-qa-reliable QA_SCENARIO: Test::Instance::Reliable + KNAPSACK_REPORT_PATH: knapsack/gcs/review-qa-reliable.json review-qa-all: extends: @@ -96,6 +118,7 @@ review-qa-all: variables: QA_RUN_TYPE: review-qa-all QA_SCENARIO: Test::Instance::All + KNAPSACK_REPORT_PATH: knapsack/gcs/review-qa-all.json review-performance: extends: @@ -140,3 +163,19 @@ allure-report-qa-all: variables: ALLURE_REPORT_PATH_PREFIX: gitlab-review-all ALLURE_JOB_NAME: review-qa-all + +knapsack-report-qa-all: + extends: + - .knapsack-upload-base + - .review:rules:knapsack-report-qa-all + needs: ["review-qa-all"] + variables: + KNAPSACK_REPORT_PATH: knapsack/gcs/review-qa-all.json + +knapsack-report-qa-reliable: + extends: + - .knapsack-upload-base + - .review:rules:knapsack-report-qa-reliable + needs: ["review-qa-reliable"] + variables: + KNAPSACK_REPORT_PATH: knapsack/gcs/review-qa-reliable.json diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml index b2b8c456ae..b90af076a5 100644 --- a/.gitlab/ci/review.gitlab-ci.yml +++ b/.gitlab/ci/review.gitlab-ci.yml @@ -2,23 +2,26 @@ review-cleanup: extends: - .default-retry - .review:rules:review-cleanup - image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-helm3-kubectl1.14 + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:gitlab-helm3-kubectl1.14 stage: prepare environment: - name: review/auto-cleanup + name: review/${CI_COMMIT_REF_SLUG}${FREQUENCY} action: stop before_script: - source scripts/utils.sh + - source scripts/review_apps/review-apps.sh - source scripts/review_apps/gcp_cleanup.sh - install_gitlab_gem - setup_gcp_dependencies script: + - delete_release + - delete_namespace - ruby -rrubygems scripts/review_apps/automated_cleanup.rb - gcp_cleanup start-review-app-pipeline: extends: - - .review:rules:review-app-pipeline + - .review:rules:start-review-app-pipeline stage: review needs: - job: build-assets-image diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 50b1650e1d..e62de4bc6d 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -11,7 +11,7 @@ if: '$CI_PROJECT_NAME != "gitlab-foss" && $CI_PROJECT_NAME != "gitlab-ce" && $CI_PROJECT_NAME != "gitlabhq"' .if-jh: &if-jh - if: '$CI_PROJECT_PATH == "gitlab-jh/gitlab"' + if: '$CI_PROJECT_PATH =~ /^gitlab-(jh|cn)\/.*/' .if-default-refs: &if-default-refs if: '$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH || $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/ || $CI_COMMIT_REF_NAME =~ /^\d+-\d+-auto-deploy-\d+$/ || $CI_COMMIT_REF_NAME =~ /^security\// || $CI_MERGE_REQUEST_IID || $CI_COMMIT_TAG || $FORCE_GITLAB_CI' @@ -67,6 +67,9 @@ .if-merge-request-labels-run-review-app: &if-merge-request-labels-run-review-app if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-review-app/' +.if-merge-request-labels-skip-undercoverage: &if-merge-request-labels-skip-undercoverage + if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:skip-undercoverage/' + .if-security-merge-request: &if-security-merge-request if: '$CI_PROJECT_NAMESPACE == "gitlab-org/security" && $CI_MERGE_REQUEST_IID' @@ -82,9 +85,6 @@ .if-dot-com-gitlab-org-schedule: &if-dot-com-gitlab-org-schedule if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_PIPELINE_SOURCE == "schedule"' -.if-dot-com-gitlab-org-schedule-child-pipeline: &if-dot-com-gitlab-org-schedule-child-pipeline - if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_PIPELINE_SOURCE == "parent_pipeline" && $FREQUENCY' - .if-dot-com-ee-schedule: &if-dot-com-ee-schedule if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "schedule"' @@ -172,7 +172,7 @@ - "scripts/lint-doc.sh" .docs-deprecations-patterns: &docs-deprecations-patterns - - "doc/deprecations/index.md" + - "doc/update/deprecations.md" - "data/deprecations/*.yml" - "data/deprecations/templates/_deprecation_template.md.erb" - "lib/tasks/gitlab/docs/compile_deprecations.rake" @@ -271,6 +271,7 @@ - "danger/**/*" - "{,ee/,jh/}fixtures/**/*" - "{,ee/,jh/}rubocop/**/*" + - ".rubocop_todo/**/*.yml" - "{,ee/,jh/}spec/**/*" - "{,spec/}tooling/**/*" @@ -288,7 +289,8 @@ - "Dockerfile.assets" - "vendor/assets/**/*" - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml" + - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo}.yml" + - ".rubocop_todo/**/*.yml" - "*_VERSION" - "{,jh/}Gemfile{,.lock}" - "Rakefile" @@ -311,7 +313,8 @@ - "Dockerfile.assets" - "vendor/assets/**/*" - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml" + - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo}.yml" + - ".rubocop_todo/**/*.yml" - "*_VERSION" - "{,jh/}Gemfile{,.lock}" - "Rakefile" @@ -341,7 +344,8 @@ - "Dockerfile.assets" - "vendor/assets/**/*" - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml" + - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo}.yml" + - ".rubocop_todo/**/*.yml" - "*_VERSION" - "{,jh/}Gemfile{,.lock}" - "Rakefile" @@ -367,7 +371,8 @@ - "Dockerfile.assets" - "vendor/assets/**/*" - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml" + - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo}.yml" + - ".rubocop_todo/**/*.yml" - "*_VERSION" - "{,jh/}Gemfile{,.lock}" - "Rakefile" @@ -400,7 +405,8 @@ - "Dockerfile.assets" - "vendor/assets/**/*" - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml" + - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo}.yml" + - ".rubocop_todo/**/*.yml" - "*_VERSION" - "{,jh/}Gemfile{,.lock}" - "Rakefile" @@ -642,8 +648,8 @@ changes: *ci-patterns - <<: *if-automated-merge-request changes: *code-backstage-patterns - - <<: *if-default-refs - changes: *backend-patterns + - <<: *if-security-merge-request + changes: *code-backstage-patterns - <<: *if-merge-request-not-approved when: never - <<: *if-default-refs @@ -655,14 +661,13 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request-labels-run-all-jest when: never - <<: *if-default-refs changes: *core-frontend-patterns when: never - - <<: *if-default-refs - changes: *backend-patterns - when: never - <<: *if-merge-request changes: *ci-patterns when: never @@ -785,11 +790,6 @@ changes: *feature-flag-development-config-patterns allow_failure: true -.qa:rules:reliable-reports:schedule: - rules: - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $QA_RELIABLE_REPORT == "true"' - allow_failure: true - ############### # Rails rules # ############### @@ -814,6 +814,8 @@ changes: *db-patterns - <<: *if-automated-merge-request changes: *db-patterns + - <<: *if-security-merge-request + changes: *db-patterns - <<: *if-merge-request-not-approved when: never - changes: *db-patterns @@ -824,6 +826,8 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request-labels-run-all-rspec when: never - <<: *if-merge-request @@ -859,6 +863,8 @@ changes: *ci-patterns - <<: *if-automated-merge-request changes: *backend-patterns + - <<: *if-security-merge-request + changes: *backend-patterns - <<: *if-merge-request-not-approved when: never - changes: *backend-patterns @@ -869,6 +875,8 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request-labels-run-all-rspec when: never - <<: *if-merge-request @@ -889,6 +897,8 @@ changes: *ci-patterns - <<: *if-automated-merge-request changes: *backend-patterns + - <<: *if-security-merge-request + changes: *backend-patterns - <<: *if-merge-request-not-approved when: never - changes: *backend-patterns @@ -899,6 +909,8 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request-labels-run-all-rspec when: never - <<: *if-merge-request @@ -919,6 +931,8 @@ changes: *ci-patterns - <<: *if-automated-merge-request changes: *code-backstage-patterns + - <<: *if-security-merge-request + changes: *code-backstage-patterns - <<: *if-merge-request-not-approved when: never - changes: *code-backstage-patterns @@ -929,6 +943,8 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request-labels-run-all-rspec when: never - <<: *if-merge-request @@ -949,6 +965,8 @@ changes: *ci-patterns - <<: *if-automated-merge-request changes: ["config/**/*"] + - <<: *if-security-merge-request + changes: ["config/**/*"] - <<: *if-merge-request-not-approved when: never - changes: ["config/**/*"] @@ -959,6 +977,8 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request-labels-run-all-rspec when: never - <<: *if-merge-request @@ -988,6 +1008,8 @@ changes: *db-patterns - <<: *if-automated-merge-request changes: *db-patterns + - <<: *if-security-merge-request + changes: *db-patterns - <<: *if-merge-request-not-approved when: never - changes: *db-patterns @@ -1000,6 +1022,8 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request-labels-run-all-rspec when: never - <<: *if-merge-request @@ -1023,6 +1047,8 @@ changes: *ci-patterns - <<: *if-automated-merge-request changes: *backend-patterns + - <<: *if-security-merge-request + changes: *backend-patterns - <<: *if-merge-request-not-approved when: never - changes: *backend-patterns @@ -1035,6 +1061,8 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request-labels-run-all-rspec when: never - <<: *if-merge-request @@ -1057,6 +1085,8 @@ changes: *ci-patterns - <<: *if-automated-merge-request changes: *backend-patterns + - <<: *if-security-merge-request + changes: *backend-patterns - <<: *if-merge-request-not-approved when: never - changes: *backend-patterns @@ -1069,6 +1099,8 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request-labels-run-all-rspec when: never - <<: *if-merge-request @@ -1091,6 +1123,8 @@ changes: *ci-patterns - <<: *if-automated-merge-request changes: *code-backstage-patterns + - <<: *if-security-merge-request + changes: *code-backstage-patterns - <<: *if-merge-request-not-approved when: never - changes: *code-backstage-patterns @@ -1103,6 +1137,8 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request-labels-run-all-rspec when: never - <<: *if-merge-request @@ -1129,6 +1165,8 @@ changes: *db-patterns - <<: *if-automated-merge-request changes: *db-patterns + - <<: *if-security-merge-request + changes: *db-patterns - <<: *if-merge-request-not-approved when: never @@ -1140,15 +1178,14 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request changes: *core-backend-patterns when: never - <<: *if-merge-request changes: *ci-patterns when: never - - <<: *if-security-merge-request - changes: *db-patterns - when: never - <<: *if-merge-request-labels-as-if-foss changes: *db-patterns when: never @@ -1164,10 +1201,10 @@ changes: *ci-patterns - <<: *if-automated-merge-request changes: *backend-patterns - - <<: *if-merge-request-not-approved - when: never - <<: *if-security-merge-request changes: *backend-patterns + - <<: *if-merge-request-not-approved + when: never - <<: *if-merge-request-labels-as-if-foss changes: *backend-patterns @@ -1179,14 +1216,14 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request changes: *core-backend-patterns when: never - <<: *if-merge-request changes: *ci-patterns when: never - - <<: *if-security-merge-request - changes: *backend-patterns - <<: *if-merge-request-labels-as-if-foss changes: *backend-patterns @@ -1201,10 +1238,10 @@ changes: *ci-patterns - <<: *if-automated-merge-request changes: *backend-patterns - - <<: *if-merge-request-not-approved - when: never - <<: *if-security-merge-request changes: *backend-patterns + - <<: *if-merge-request-not-approved + when: never - <<: *if-merge-request-labels-as-if-foss changes: *backend-patterns @@ -1216,14 +1253,14 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request changes: *core-backend-patterns when: never - <<: *if-merge-request changes: *ci-patterns when: never - - <<: *if-security-merge-request - changes: *backend-patterns - <<: *if-merge-request-labels-as-if-foss changes: *backend-patterns @@ -1238,10 +1275,10 @@ changes: *ci-patterns - <<: *if-automated-merge-request changes: *code-backstage-patterns - - <<: *if-merge-request-not-approved - when: never - <<: *if-security-merge-request changes: *code-backstage-patterns + - <<: *if-merge-request-not-approved + when: never - <<: *if-merge-request-labels-as-if-foss changes: *code-backstage-patterns @@ -1253,14 +1290,14 @@ when: never - <<: *if-automated-merge-request when: never + - <<: *if-security-merge-request + when: never - <<: *if-merge-request changes: *core-backend-patterns when: never - <<: *if-merge-request changes: *ci-patterns when: never - - <<: *if-security-merge-request - changes: *code-backstage-patterns - <<: *if-merge-request-labels-as-if-foss changes: *code-backstage-patterns @@ -1367,6 +1404,16 @@ - <<: *if-merge-request-labels-run-all-rspec when: always +.rails:rules:rspec-undercoverage: + rules: + - <<: *if-not-ee + when: never + - <<: *if-merge-request-labels-skip-undercoverage + when: never + - <<: *if-merge-request-labels-run-all-rspec + - <<: *if-merge-request + changes: *backend-patterns + .rails:rules:default-branch-schedule-nightly--code-backstage: rules: - <<: *if-default-branch-schedule-nightly @@ -1556,7 +1603,7 @@ ################ # Review rules # ################ -.review:rules:review-app-pipeline: +.review:rules:start-review-app-pipeline: rules: - <<: *if-not-ee when: never @@ -1572,82 +1619,34 @@ - <<: *if-dot-com-gitlab-org-merge-request changes: *qa-patterns - <<: *if-dot-com-gitlab-org-schedule + variables: + KNAPSACK_GENERATE_REPORT: "true" .review:rules:review-build-cng: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - - <<: *if-dot-com-gitlab-org-merge-request - changes: *ci-review-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *frontend-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-patterns - allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *qa-patterns - - <<: *if-dot-com-gitlab-org-schedule-child-pipeline + - when: always .review:rules:review-deploy: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - - <<: *if-dot-com-gitlab-org-merge-request - changes: *ci-review-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *frontend-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-patterns - allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *qa-patterns - - <<: *if-dot-com-gitlab-org-schedule-child-pipeline - allow_failure: true + - when: on_success .review:rules:review-performance: rules: - if: '$DAST_RUN == "true"' # Skip this job when DAST is run when: never - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - - <<: *if-dot-com-gitlab-org-merge-request + - <<: *if-merge-request-labels-run-review-app # we explicitely don't allow the job to fail in that case + - <<: *if-dot-com-gitlab-org-merge-request # we explicitely don't allow the job to fail in that case changes: *ci-review-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *frontend-patterns - allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-qa-patterns - allow_failure: true - - <<: *if-dot-com-gitlab-org-schedule-child-pipeline + - when: on_success allow_failure: true .review:rules:review-delete-deployment: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-qa-patterns + - when: on_success .review:rules:review-qa-smoke: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - - <<: *if-dot-com-gitlab-org-merge-request - changes: *ci-review-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *frontend-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *qa-patterns - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-patterns - allow_failure: true - - <<: *if-dot-com-ee-schedule-child-pipeline - allow_failure: true + - when: on_success # The rule needs to be duplicated between `on_success` and `on_failure` # because the jobs `needs` the previous job to complete. @@ -1656,34 +1655,8 @@ # 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-merge-request-labels-run-review-app - when: on_success - - <<: *if-merge-request-labels-run-review-app - when: on_failure - - <<: *if-dot-com-gitlab-org-merge-request - changes: *ci-review-patterns - 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: 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: on_success - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-qa-patterns - when: on_failure - - <<: *if-dot-com-ee-schedule-child-pipeline - when: on_success - - <<: *if-dot-com-ee-schedule-child-pipeline - when: on_failure + - when: on_success + - when: on_failure .review:rules:review-qa-reliable: rules: @@ -1692,17 +1665,12 @@ .review:rules:review-qa-all: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app + - <<: *if-merge-request-labels-run-review-app # we explicitely don't allow the job to fail in that case - <<: *if-dot-com-gitlab-org-merge-request changes: *code-patterns when: manual - allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *qa-patterns - allow_failure: true - - <<: *if-dot-com-ee-nightly-schedule-child-pipeline + allow_failure: true # manual jobs needs to be allowd to fail, otherwise they block the pipeline + - when: on_success allow_failure: true # The rule needs to be duplicated between `on_success` and `on_failure` @@ -1712,29 +1680,23 @@ # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63844#note_599012559 .review:rules:review-qa-all-report: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - when: on_success - - <<: *if-merge-request-labels-run-review-app - when: on_failure - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-patterns - when: manual + - when: on_success allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *qa-patterns + - when: on_failure + allow_failure: true + +# Generate knapsack report on successful runs only +# Reliable suite will pass most of the time so this should yield best distribution +.review:rules:knapsack-report-qa-reliable: + rules: + - if: '$KNAPSACK_GENERATE_REPORT == "true"' when: on_success allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *qa-patterns - when: on_failure - allow_failure: true - - <<: *if-dot-com-ee-nightly-schedule-child-pipeline - when: on_success - allow_failure: true - - <<: *if-dot-com-ee-nightly-schedule-child-pipeline - when: on_failure + +.review:rules:knapsack-report-qa-all: + rules: + - if: '$KNAPSACK_GENERATE_REPORT == "true"' + when: always allow_failure: true .review:rules:review-cleanup: @@ -1750,23 +1712,16 @@ .review:rules:review-stop: rules: - - <<: *if-not-ee - when: never - - <<: *if-merge-request-labels-run-review-app - when: manual - allow_failure: true - - <<: *if-dot-com-gitlab-org-merge-request - changes: *code-qa-patterns - when: manual + - when: manual allow_failure: true .review:rules:danger: rules: - - if: '$CI_MERGE_REQUEST_IID' + - <<: *if-merge-request .review:rules:danger-local: rules: - - if: '$CI_MERGE_REQUEST_IID' + - <<: *if-merge-request changes: *danger-patterns ############### @@ -1819,6 +1774,16 @@ changes: *code-backstage-patterns when: on_success +.setup:rules:generate-frontend-fixtures-mapping: + rules: + - <<: *if-not-ee + when: never + - <<: *if-dot-com-ee-2-hourly-schedule + - changes: + - ".gitlab/ci/setup.gitlab-ci.yml" + - ".gitlab/ci/test-metadata.gitlab-ci.yml" + - "scripts/rspec_helpers.sh" + .setup:rules:add-jh-folder: rules: - <<: *if-not-ee diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml index 4c674f3893..1eb3bd2ea4 100644 --- a/.gitlab/ci/setup.gitlab-ci.yml +++ b/.gitlab/ci/setup.gitlab-ci.yml @@ -68,6 +68,24 @@ verify-tests-yml: - install_tff_gem - scripts/verify-tff-mapping +generate-frontend-fixtures-mapping: + extends: + - .setup:rules:generate-frontend-fixtures-mapping + - .use-pg12 + - .rails-cache + needs: ["setup-test-env"] + stage: prepare + before_script: + - !reference [.default-before_script, before_script] + - source ./scripts/rspec_helpers.sh + - run_timed_command "scripts/gitaly-test-spawn" + script: + - generate_frontend_fixtures_mapping + artifacts: + expire_in: 7d + paths: + - ${FRONTEND_FIXTURES_MAPPING_PATH} + .detect-test-base: image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7 needs: [] @@ -78,17 +96,21 @@ verify-tests-yml: - install_gitlab_gem - install_tff_gem - retrieve_tests_mapping + - retrieve_frontend_fixtures_mapping - | if [ -n "$CI_MERGE_REQUEST_IID" ]; then tooling/bin/find_changes ${CHANGES_FILE}; tooling/bin/find_tests ${CHANGES_FILE} ${MATCHED_TESTS_FILE}; - echo "related rspec tests: $(cat $MATCHED_TESTS_FILE)"; + tooling/bin/find_changes ${CHANGES_FILE} ${MATCHED_TESTS_FILE} ${FRONTEND_FIXTURES_MAPPING_PATH}; + echo "Changed files: $(cat $CHANGES_FILE)"; + echo "Related rspec tests: $(cat $MATCHED_TESTS_FILE)"; fi artifacts: expire_in: 7d paths: - ${CHANGES_FILE} - ${MATCHED_TESTS_FILE} + - ${FRONTEND_FIXTURES_MAPPING_PATH} detect-tests: extends: diff --git a/.gitlab/ci/static-analysis.gitlab-ci.yml b/.gitlab/ci/static-analysis.gitlab-ci.yml index ebd223c417..a5cc02303f 100644 --- a/.gitlab/ci/static-analysis.gitlab-ci.yml +++ b/.gitlab/ci/static-analysis.gitlab-ci.yml @@ -10,6 +10,7 @@ # Disable warnings in browserslist which can break on backports # https://github.com/browserslist/browserslist/blob/a287ec6/node.js#L367-L384 BROWSERSLIST_IGNORE_OLD_DATA: "true" + GRAPHQL_SCHEMA_APOLLO_FILE: "tmp/tests/graphql/gitlab_schema_apollo.graphql" update-static-analysis-cache: extends: @@ -47,17 +48,34 @@ static-verification-with-database: variables: SETUP_DB: "true" +generate-apollo-graphl-schema: + extends: + - .static-analysis-base + - .frontend:rules:default-frontend-jobs + image: + name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:apollo + entrypoint: [""] + needs: ['graphql-schema-dump'] + variables: + USE_BUNDLE_INSTALL: "false" + script: + - apollo client:download-schema --config=config/apollo.config.js ${GRAPHQL_SCHEMA_APOLLO_FILE} + artifacts: + name: graphql-schema-apollo + paths: + - "${GRAPHQL_SCHEMA_APOLLO_FILE}" + eslint: extends: - .static-analysis-base - .yarn-cache - - .static-analysis:rules:ee - needs: [] + - .frontend:rules:default-frontend-jobs + needs: ['generate-apollo-graphl-schema'] variables: USE_BUNDLE_INSTALL: "false" script: - run_timed_command "retry yarn install --frozen-lockfile" - - run_timed_command "yarn run lint:eslint:all" + - run_timed_command "yarn run lint:eslint:all --parser-options=schema:${GRAPHQL_SCHEMA_APOLLO_FILE}" eslint as-if-foss: extends: diff --git a/.gitlab/ci/test-metadata.gitlab-ci.yml b/.gitlab/ci/test-metadata.gitlab-ci.yml index 2d96fb6d4b..d0d45cb929 100644 --- a/.gitlab/ci/test-metadata.gitlab-ci.yml +++ b/.gitlab/ci/test-metadata.gitlab-ci.yml @@ -8,7 +8,7 @@ - knapsack/ - rspec_flaky/ - rspec_profiling/ - - crystalball/packed-mapping.json.gz + - crystalball/ retrieve-tests-metadata: extends: @@ -27,6 +27,7 @@ update-tests-metadata: stage: post-test dependencies: - retrieve-tests-metadata + - generate-frontend-fixtures-mapping - setup-test-env - rspec migration pg12 - rspec-all frontend_fixture diff --git a/.gitlab/ci/workhorse.gitlab-ci.yml b/.gitlab/ci/workhorse.gitlab-ci.yml index 47b5d29ab8..cd53adc6d4 100644 --- a/.gitlab/ci/workhorse.gitlab-ci.yml +++ b/.gitlab/ci/workhorse.gitlab-ci.yml @@ -22,8 +22,8 @@ workhorse:verify: workhorse:test using go 1.16: extends: .workhorse:test - image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7-golang-1.16-git-2.31 + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:ruby-2.7-golang-1.16-git-2.31 workhorse:test using go 1.17: extends: .workhorse:test - image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7-golang-1.17-git-2.31 + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:ruby-2.7-golang-1.17-git-2.31 diff --git a/.gitlab/issue_templates/Deprecations.md b/.gitlab/issue_templates/Deprecations.md index caef5c6433..85db431423 100644 --- a/.gitlab/issue_templates/Deprecations.md +++ b/.gitlab/issue_templates/Deprecations.md @@ -12,7 +12,10 @@ The description of the deprecation should state what actions the user should tak ### Breaking Change - + + ### Affected Topology + + + + +/label ~devops:: ~group: ~Category: + + +/label ~"GitLab Free" ~"GitLab Premium" ~"GitLab Ultimate" + + +/label ~"type::deprecation" + + \ No newline at end of file diff --git a/.gitlab/issue_templates/Experiment Implementation.md b/.gitlab/issue_templates/Experiment Implementation.md index b3883f08c2..fc6cfbb27f 100644 --- a/.gitlab/issue_templates/Experiment Implementation.md +++ b/.gitlab/issue_templates/Experiment Implementation.md @@ -20,6 +20,6 @@ - [json schema](https://gitlab.com/gitlab-org/iglu/-/blob/master/public/schemas/com.gitlab/gitlab_experiment/jsonschema/0-3-0) used in `gitlab-experiment` tracking. - see [taxonomy](https://docs.gitlab.com/ee/development/snowplow/index.html#structured-event-taxonomy) for a guide. -| activity | category | action | label | context | property | value | +| sequence | activity | category | action | label | property | value | | -------- | -------- | ------ | ----- | ------- | -------- | ----- | -| | | | | json schema | | | +| | | | | | | | diff --git a/.gitlab/issue_templates/Experiment Rollout.md b/.gitlab/issue_templates/Experiment Rollout.md index 9209423ba3..a7d6b46220 100644 --- a/.gitlab/issue_templates/Experiment Rollout.md +++ b/.gitlab/issue_templates/Experiment Rollout.md @@ -82,7 +82,7 @@ In this rollout issue, ensure the scoped `experiment::` label is kept accurate. ## Roll Out Steps -- [ ] Confirm that QA tests pass with the feature flag enabled (if you're unsure how, contact the relevant [stable counterpart in the Quality department](https://about.gitlab.com/handbook/engineering/quality/#individual-contributors)) +- [ ] [Confirm that end-to-end tests pass with the feature flag enabled](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/feature_flags.html#confirming-that-end-to-end-tests-pass-with-a-feature-flag-enabled). If there are failing tests, contact the relevant [stable counterpart in the Quality department](https://about.gitlab.com/handbook/engineering/quality/#individual-contributors) to collaborate in updating the tests or confirming that the failing tests are not caused by the changes behind the enabled feature flag. - [ ] Enable on staging (`/chatops run feature set true --staging`) - [ ] Test on staging - [ ] Ensure that documentation has been updated diff --git a/.gitlab/issue_templates/Feature Flag Roll Out.md b/.gitlab/issue_templates/Feature Flag Roll Out.md index bc1a23729e..86f356daf9 100644 --- a/.gitlab/issue_templates/Feature Flag Roll Out.md +++ b/.gitlab/issue_templates/Feature Flag Roll Out.md @@ -94,10 +94,7 @@ _Consider adding links to check for Sentry errors, Production logs for 5xx, 302s ### Global rollout on production -For visibility, all `/chatops` commands that target production should be: - -- Executed in the `#production` slack channel. -- Cross-posted (with the command results) to the responsible team's slack channel (`#g_TEAM_NAME`). +For visibility, all `/chatops` commands that target production should be executed in the `#production` slack channel and cross-posted (with the command results) to the responsible team's slack channel (`#g_TEAM_NAME`). - [ ] [Incrementally roll out](https://docs.gitlab.com/ee/development/feature_flags/controls.html#process) the feature. - If the feature flag in code has [an actor](https://docs.gitlab.com/ee/development/feature_flags/#feature-actors), perform **actor-based** rollout. diff --git a/.gitlab/issue_templates/Feature Proposal - basic.md b/.gitlab/issue_templates/Feature Proposal - basic.md index 980751621f..b16b5910b7 100644 --- a/.gitlab/issue_templates/Feature Proposal - basic.md +++ b/.gitlab/issue_templates/Feature Proposal - basic.md @@ -13,4 +13,6 @@ Use the following resources to find the appropriate labels: - https://about.gitlab.com/handbook/product/categories/features/ --> -/label ~"type::feature" ~feature::addition ~"group::" ~"section::" ~"Category:" ~"GitLab Core"/~"GitLab Premium"/~"GitLab Ultimate" +/label ~"group::" ~"section::" ~"Category::" +/label ~"GitLab Free" ~"GitLab Premium" ~"GitLab Ultimate" +/label ~"type::feature" ~"feature::addition" ~documentation diff --git a/.gitlab/issue_templates/Feature Proposal - lean.md b/.gitlab/issue_templates/Feature Proposal - lean.md index 504bfbb03d..c525531537 100644 --- a/.gitlab/issue_templates/Feature Proposal - lean.md +++ b/.gitlab/issue_templates/Feature Proposal - lean.md @@ -40,7 +40,7 @@ Personas are described at https://about.gitlab.com/handbook/marketing/product-ma ### Metrics - -/label ~"type::feature" ~"group::" ~"section::" ~"Category::" ~"GitLab Free"/~"GitLab Premium"/~"GitLab Ultimate" ~documentation ~direction +/label ~"type::feature" +/label ~"group::" ~"section::" ~"Category::" +/label ~"GitLab Free" ~"GitLab Premium" ~"GitLab Ultimate" +/label ~documentation ~direction diff --git a/.gitlab/issue_templates/Feature proposal - detailed.md b/.gitlab/issue_templates/Feature proposal - detailed.md index c787fc9933..f75ee08bfc 100644 --- a/.gitlab/issue_templates/Feature proposal - detailed.md +++ b/.gitlab/issue_templates/Feature proposal - detailed.md @@ -118,6 +118,6 @@ Use the following resources to find the appropriate labels: - https://gitlab.com/gitlab-org/gitlab/-/labels - https://about.gitlab.com/handbook/product/categories/features/ --> -/label ~devops:: ~group: ~Category: -/label ~"GitLab Free"/~"GitLab Premium"/~"GitLab Ultimate" +/label ~"group::" ~"section::" ~"Category::" +/label ~"GitLab Free" ~"GitLab Premium" ~"GitLab Ultimate" /label ~"type::feature" ~documentation ~direction diff --git a/.gitlab/issue_templates/Fulfillment Group UX Issue.md b/.gitlab/issue_templates/Fulfillment Group UX Issue.md new file mode 100644 index 0000000000..97f3782c4d --- /dev/null +++ b/.gitlab/issue_templates/Fulfillment Group UX Issue.md @@ -0,0 +1,58 @@ + + +### Who will use this solution? + + + + +### What problem do they have? + + +### When do they have the problem? + + +### Where in the app do they have the problem and at what frequency (if known)? + + +### Why will a design help them? + + +### What is the JTBD and/or Tasks? + + +### Is this problem supported by user research (please link relevant research issue/s)? + + +### Known technical constraints + + +### How does this help the business? + + + + + +/label ~"group::" ~"section::" ~"Category::" ~UX + 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 71a962d178..3c482105a2 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 @@ -56,9 +56,7 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org ```ruby # frozen_string_literal: true - class CreateCoolWidgetRegistry < ActiveRecord::Migration[6.0] - include Gitlab::Database::MigrationHelpers - + class CreateCoolWidgetRegistry < Gitlab::Database::Migration[1.0] disable_ddl_transaction! def up @@ -80,8 +78,8 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org t.boolean :missing_on_primary, default: false, null: false t.binary :verification_checksum t.binary :verification_checksum_mismatched - t.string :verification_failure, limit: 255 # rubocop:disable Migration/PreventStrings see https://gitlab.com/gitlab-org/gitlab/-/issues/323806 - t.string :last_sync_failure, limit: 255 # rubocop:disable Migration/PreventStrings see https://gitlab.com/gitlab-org/gitlab/-/issues/323806 + t.text :verification_failure, limit: 255 + t.text :last_sync_failure, limit: 255 t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true t.index :retry_at @@ -126,9 +124,7 @@ The Geo primary site needs to checksum every replicable so secondaries can verif ```ruby # frozen_string_literal: true - class CreateCoolWidgetStates < ActiveRecord::Migration[6.0] - include Gitlab::Database::MigrationHelpers - + class CreateCoolWidgetStates < Gitlab::Database::Migration[1.0] VERIFICATION_STATE_INDEX_NAME = "index_cool_widget_states_on_verification_state" PENDING_VERIFICATION_INDEX_NAME = "index_cool_widget_states_pending_verification" FAILED_VERIFICATION_INDEX_NAME = "index_cool_widget_states_failed_verification" @@ -137,27 +133,23 @@ The Geo primary site needs to checksum every replicable so secondaries can verif disable_ddl_transaction! def up - unless table_exists?(:cool_widget_states) - with_lock_retries do - create_table :cool_widget_states, id: false do |t| - t.references :cool_widget, primary_key: true, null: false, foreign_key: { on_delete: :cascade } - t.integer :verification_state, default: 0, limit: 2, null: false - t.column :verification_started_at, :datetime_with_timezone - t.datetime_with_timezone :verification_retry_at - t.datetime_with_timezone :verified_at - t.integer :verification_retry_count, limit: 2 - t.binary :verification_checksum, using: 'verification_checksum::bytea' - t.text :verification_failure + with_lock_retries do + create_table :cool_widget_states, id: false do |t| + t.references :cool_widget, primary_key: true, null: false, foreign_key: { on_delete: :cascade } + t.integer :verification_state, default: 0, limit: 2, null: false + t.column :verification_started_at, :datetime_with_timezone + t.datetime_with_timezone :verification_retry_at + t.datetime_with_timezone :verified_at + t.integer :verification_retry_count, limit: 2 + t.binary :verification_checksum, using: 'verification_checksum::bytea' + t.text :verification_failure, limit: 255 - t.index :verification_state, name: VERIFICATION_STATE_INDEX_NAME - t.index :verified_at, where: "(verification_state = 0)", order: { verified_at: 'ASC NULLS FIRST' }, name: PENDING_VERIFICATION_INDEX_NAME - t.index :verification_retry_at, where: "(verification_state = 3)", order: { verification_retry_at: 'ASC NULLS FIRST' }, name: FAILED_VERIFICATION_INDEX_NAME - t.index :verification_state, where: "(verification_state = 0 OR verification_state = 3)", name: NEEDS_VERIFICATION_INDEX_NAME - end + t.index :verification_state, name: VERIFICATION_STATE_INDEX_NAME + t.index :verified_at, where: "(verification_state = 0)", order: { verified_at: 'ASC NULLS FIRST' }, name: PENDING_VERIFICATION_INDEX_NAME + t.index :verification_retry_at, where: "(verification_state = 3)", order: { verification_retry_at: 'ASC NULLS FIRST' }, name: FAILED_VERIFICATION_INDEX_NAME + t.index :verification_state, where: "(verification_state = 0 OR verification_state = 3)", name: NEEDS_VERIFICATION_INDEX_NAME end end - - add_text_limit :cool_widget_states, :verification_failure, 255 end def down @@ -209,6 +201,8 @@ That's all of the required database changes. has_one :cool_widget_state, autosave: false, inverse_of: :cool_widget, class_name: 'Geo::CoolWidgetState' + after_save :save_verification_details + delegate :verification_retry_at, :verification_retry_at=, :verified_at, :verified_at=, :verification_checksum, :verification_checksum=, @@ -223,6 +217,8 @@ That's all of the required database changes. scope :checksummed, -> { joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil } ) } scope :not_checksummed, -> { joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil } ) } + scope :available_verifiables, -> { joins(:cool_widget_state) } + # Override the `all` default if not all records can be replicated. For an # example of an existing Model that needs to do this, see # `EE::MergeRequestDiff`. @@ -358,10 +354,11 @@ That's all of the required database changes. - [ ] Make sure a Geo secondary site can replicate Cool Widgets where repository does not exist on the Geo primary site. The only way to know about this is to parse the error text. You may need to make some changes to `Gitlab::CoolWidgetReplicator.no_repo_message` to return the proper error message. For example, see [this change for Group-level Wikis](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74133). -- [ ] Generate the feature flag definition file by running the feature flag command and following the command prompts: +- [ ] Generate the feature flag definition files by running the feature flag commands and following the command prompts: ```shell bin/feature-flag --ee geo_cool_widget_replication --type development --group 'group::geo' + bin/feature-flag --ee geo_cool_widget_verification --type development --group 'group::geo' ``` - [ ] Add this replicator class to the method `replicator_classes` in @@ -491,9 +488,14 @@ That's all of the required database changes. module Geo class CoolWidgetState < ApplicationRecord + include EachBatch + self.primary_key = :cool_widget_id belongs_to :cool_widget, inverse_of: :cool_widget_state + + validates :verification_failure, length: { maximum: 255 } + validates :verification_state, :cool_widget, presence: true end end ``` diff --git a/.gitlab/issue_templates/Geo Replicate a new blob type.md b/.gitlab/issue_templates/Geo Replicate a new blob type.md index 7c927e79e9..d2fc7307c8 100644 --- a/.gitlab/issue_templates/Geo Replicate a new blob type.md +++ b/.gitlab/issue_templates/Geo Replicate a new blob type.md @@ -58,42 +58,38 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org ```ruby # frozen_string_literal: true - class CreateCoolWidgetRegistry < ActiveRecord::Migration[6.0] - include Gitlab::Database::MigrationHelpers - + class CreateCoolWidgetRegistry < Gitlab::Database::Migration[1.0] disable_ddl_transaction! def up - unless table_exists?(:cool_widget_registry) - ActiveRecord::Base.transaction do - create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t| - t.bigint :cool_widget_id, null: false - t.datetime_with_timezone :created_at, null: false - t.datetime_with_timezone :last_synced_at - t.datetime_with_timezone :retry_at - t.datetime_with_timezone :verified_at - t.datetime_with_timezone :verification_started_at - t.datetime_with_timezone :verification_retry_at - t.integer :state, default: 0, null: false, limit: 2 - t.integer :verification_state, default: 0, null: false, limit: 2 - t.integer :retry_count, default: 0, limit: 2, null: false - t.integer :verification_retry_count, default: 0, limit: 2, null: false - t.boolean :checksum_mismatch, default: false, null: false - t.binary :verification_checksum - t.binary :verification_checksum_mismatched - t.string :verification_failure, limit: 255 # rubocop:disable Migration/PreventStrings see https://gitlab.com/gitlab-org/gitlab/-/issues/323806 - t.string :last_sync_failure, limit: 255 # rubocop:disable Migration/PreventStrings see https://gitlab.com/gitlab-org/gitlab/-/issues/323806 + ActiveRecord::Base.transaction do + create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t| + t.bigint :cool_widget_id, null: false + t.datetime_with_timezone :created_at, null: false + t.datetime_with_timezone :last_synced_at + t.datetime_with_timezone :retry_at + t.datetime_with_timezone :verified_at + t.datetime_with_timezone :verification_started_at + t.datetime_with_timezone :verification_retry_at + t.integer :state, default: 0, null: false, limit: 2 + t.integer :verification_state, default: 0, null: false, limit: 2 + t.integer :retry_count, default: 0, limit: 2, null: false + t.integer :verification_retry_count, default: 0, limit: 2, null: false + t.boolean :checksum_mismatch, default: false, null: false + t.binary :verification_checksum + t.binary :verification_checksum_mismatched + t.text :verification_failure, limit: 255 + t.text :last_sync_failure, limit: 255 - t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true - t.index :retry_at - t.index :state - # To optimize performance of CoolWidgetRegistry.verification_failed_batch - t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))" - # To optimize performance of CoolWidgetRegistry.needs_verification_count - t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))" - # To optimize performance of CoolWidgetRegistry.verification_pending_batch - t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))" - end + t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true + t.index :retry_at + t.index :state + # To optimize performance of CoolWidgetRegistry.verification_failed_batch + t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))" + # To optimize performance of CoolWidgetRegistry.needs_verification_count + t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))" + # To optimize performance of CoolWidgetRegistry.verification_pending_batch + t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))" end end end @@ -130,9 +126,7 @@ The Geo primary site needs to checksum every replicable so secondaries can verif ```ruby # frozen_string_literal: true - class CreateCoolWidgetStates < ActiveRecord::Migration[6.0] - include Gitlab::Database::MigrationHelpers - + class CreateCoolWidgetStates < Gitlab::Database::Migration[1.0] VERIFICATION_STATE_INDEX_NAME = "index_cool_widget_states_on_verification_state" PENDING_VERIFICATION_INDEX_NAME = "index_cool_widget_states_pending_verification" FAILED_VERIFICATION_INDEX_NAME = "index_cool_widget_states_failed_verification" @@ -141,27 +135,23 @@ The Geo primary site needs to checksum every replicable so secondaries can verif disable_ddl_transaction! def up - unless table_exists?(:cool_widget_states) - with_lock_retries do - create_table :cool_widget_states, id: false do |t| - t.references :cool_widget, primary_key: true, null: false, foreign_key: { on_delete: :cascade } - t.integer :verification_state, default: 0, limit: 2, null: false - t.column :verification_started_at, :datetime_with_timezone - t.datetime_with_timezone :verification_retry_at - t.datetime_with_timezone :verified_at - t.integer :verification_retry_count, limit: 2 - t.binary :verification_checksum, using: 'verification_checksum::bytea' - t.text :verification_failure + with_lock_retries do + create_table :cool_widget_states, id: false do |t| + t.references :cool_widget, primary_key: true, null: false, foreign_key: { on_delete: :cascade } + t.integer :verification_state, default: 0, limit: 2, null: false + t.column :verification_started_at, :datetime_with_timezone + t.datetime_with_timezone :verification_retry_at + t.datetime_with_timezone :verified_at + t.integer :verification_retry_count, limit: 2 + t.binary :verification_checksum, using: 'verification_checksum::bytea' + t.text :verification_failure, limit: 255 - t.index :verification_state, name: VERIFICATION_STATE_INDEX_NAME - t.index :verified_at, where: "(verification_state = 0)", order: { verified_at: 'ASC NULLS FIRST' }, name: PENDING_VERIFICATION_INDEX_NAME - t.index :verification_retry_at, where: "(verification_state = 3)", order: { verification_retry_at: 'ASC NULLS FIRST' }, name: FAILED_VERIFICATION_INDEX_NAME - t.index :verification_state, where: "(verification_state = 0 OR verification_state = 3)", name: NEEDS_VERIFICATION_INDEX_NAME - end + t.index :verification_state, name: VERIFICATION_STATE_INDEX_NAME + t.index :verified_at, where: "(verification_state = 0)", order: { verified_at: 'ASC NULLS FIRST' }, name: PENDING_VERIFICATION_INDEX_NAME + t.index :verification_retry_at, where: "(verification_state = 3)", order: { verification_retry_at: 'ASC NULLS FIRST' }, name: FAILED_VERIFICATION_INDEX_NAME + t.index :verification_state, where: "(verification_state = 0 OR verification_state = 3)", name: NEEDS_VERIFICATION_INDEX_NAME end end - - add_text_limit :cool_widget_states, :verification_failure, 255 end def down @@ -201,7 +191,7 @@ That's all of the required database changes. ```ruby # frozen_string_literal: true - + class CoolWidget < ApplicationRecord ... include ::Gitlab::Geo::ReplicableModel @@ -213,6 +203,8 @@ That's all of the required database changes. has_one :cool_widget_state, autosave: false, inverse_of: :cool_widget, class_name: 'Geo::CoolWidgetState' + after_save :save_verification_details + delegate :verification_retry_at, :verification_retry_at=, :verified_at, :verified_at=, :verification_checksum, :verification_checksum=, @@ -227,6 +219,8 @@ That's all of the required database changes. scope :checksummed, -> { joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil } ) } scope :not_checksummed, -> { joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil } ) } + scope :available_verifiables, -> { joins(:cool_widget_state) } + # Override the `all` default if not all records can be replicated. For an # example of an existing Model that needs to do this, see # `EE::MergeRequestDiff`. @@ -326,10 +320,11 @@ That's all of the required database changes. end ``` -- [ ] Generate the feature flag definition file by running the feature flag command and following the command prompts: +- [ ] Generate the feature flag definition fileы by running the feature flag commands and following the command prompts: ```shell bin/feature-flag --ee geo_cool_widget_replication --type development --group 'group::geo' + bin/feature-flag --ee geo_cool_widget_verification --type development --group 'group::geo' ``` - [ ] Add this replicator class to the method `replicator_classes` in @@ -457,9 +452,14 @@ That's all of the required database changes. ``` ruby module Geo class CoolWidgetState < ApplicationRecord + include EachBatch + self.primary_key = :cool_widget_id belongs_to :cool_widget, inverse_of: :cool_widget_state + + validates :verification_failure, length: { maximum: 255 } + validates :verification_state, :cool_widget, presence: true end end ``` diff --git a/.gitlab/issue_templates/Snowplow event tracking.md b/.gitlab/issue_templates/Snowplow event tracking.md index ee8755d329..3dfef73f97 100644 --- a/.gitlab/issue_templates/Snowplow event tracking.md +++ b/.gitlab/issue_templates/Snowplow event tracking.md @@ -18,7 +18,7 @@ We generally recommend events be tracked using a [structured event](https://docs * Action: A string that is used to define the user action. The first word should always describe the action or aspect: clicks should be `click`, activations should be `activate`, creations should be `create`, etc. Use underscores to describe what was acted on; for example, activating a form field would be `activate_form_input`. An interface action like clicking on a dropdown would be `click_dropdown`, while a behavior like creating a project record from the backend would be `create_project` * Label: Optional. The specific element, or object that's being acted on. This is either the label of the element (e.g. a tab labeled 'Create from template' may be `create_from_template`) or a unique identifier if no text is available (e.g. closing the Groups dropdown in the top navbar might be `groups_dropdown_close`), or it could be the name or title attribute of a record being created. * Property: Optional. Any additional property of the element, or object being acted on. -* Value: Optional, numeric. Describes a numeric value or something directly related to the event. This could be the value of an input (e.g. `10` when clicking `internal` visibility) +* Value: Optional, numeric. Describes a numeric value (decimal) directly related to the event. This could be the value of an input (e.g. `10` when clicking `internal` visibility) | Category | Action | Label | Property | Feature Issue | Additional Information | | ------ | ------ | ------ | ------ | ------ | ------ | diff --git a/.gitlab/merge_request_templates/Change Documentation Location.md b/.gitlab/merge_request_templates/Change Documentation Location.md index 623d159774..36678c44d7 100644 --- a/.gitlab/merge_request_templates/Change Documentation Location.md +++ b/.gitlab/merge_request_templates/Change Documentation Location.md @@ -24,7 +24,7 @@ https://docs.gitlab.com/ee/development/documentation/index.html#move-or-rename-a specifically under the `app/views/` and `ee/app/views` (for GitLab EE) directories. - [ ] Make sure to add [`redirect_from`](https://docs.gitlab.com/ee/development/documentation/index.html#redirections-for-pages-with-disqus-comments) to the new document if there are any Disqus comments on the old document thread. -- [ ] Update the link in `features.yml` (if applicable) +- [ ] Update the link in `features.yml` (if applicable). - [ ] Assign one of the technical writers for review. /label ~documentation ~"Technical Writing" diff --git a/.gitlab/merge_request_templates/Deprecations.md b/.gitlab/merge_request_templates/Deprecations.md index 1449246b9b..1cadf54ff1 100644 --- a/.gitlab/merge_request_templates/Deprecations.md +++ b/.gitlab/merge_request_templates/Deprecations.md @@ -1,6 +1,6 @@ -/label ~"release post" ~"release post item" ~"Technical Writing" ~"devops::" ~"group::" +/label ~"release post" ~"release post item" ~"Technical Writing" ~"devops::" ~"group::" ~"release post item::deprecation" /milestone % /assign `@PM` @@ -41,7 +41,7 @@ They are frequently updated, and everyone should make sure they are aware of the ## Reviewers -When the content is ready for review, it must be reviewed by Technical Writer and Engineering Manager, but can also be reviewed by +When the content is ready for review, it must be reviewed by a Technical Writer and Engineering Manager, but can also be reviewed by Product Marketing, Product Design, and the Product Leaders for this area. Please use the [Reviewers for Merge Requests](https://docs.gitlab.com/ee/user/project/merge_requests/getting_started#reviewer) feature for all reviews. Reviewers will then `approve` the MR and remove themselves from Reviewers when their review is complete. @@ -61,7 +61,7 @@ as needed, @ message the PM to inform them the first review is complete, and rem yourself as a reviewer if it's not ready for merge yet.
-Expand for Details +Expand for Details - [ ] Title: - Length limit: 7 words (not including articles or prepositions). diff --git a/.gitlab/merge_request_templates/Documentation.md b/.gitlab/merge_request_templates/Documentation.md index 893ae7b93b..d3ea9682d3 100644 --- a/.gitlab/merge_request_templates/Documentation.md +++ b/.gitlab/merge_request_templates/Documentation.md @@ -8,7 +8,7 @@ ## Author's checklist -- [ ] Consider taking [the GitLab Technical Writing Fundamentals course](https://gitlab.edcast.com/pathways/ECL-02528ee2-c334-4e16-abf3-e9d8b8260de4) +- [ ] Consider taking [the GitLab Technical Writing Fundamentals course](https://gitlab.edcast.com/pathways/ECL-02528ee2-c334-4e16-abf3-e9d8b8260de4). - [ ] Follow the: - [Documentation process](https://docs.gitlab.com/ee/development/documentation/workflow.html). - [Documentation guidelines](https://docs.gitlab.com/ee/development/documentation/). @@ -20,7 +20,6 @@ If you are only adding documentation, do not add any of the following labels: -- `~"type::feature"` - `~"frontend"` - `~"backend"` - `~"type::bug"` @@ -41,8 +40,8 @@ Documentation-related MRs should be reviewed by a Technical Writer for a non-blo - [ ] 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. +- [ ] Review by assigned maintainer, who can always request/require the reviews above. Maintainer's review can occur before or after a technical writer review. - [ ] Ensure a release milestone is set. -/label ~documentation +/label ~documentation ~"type::maintenance" /assign me diff --git a/.gitlab/merge_request_templates/New End To End Test.md b/.gitlab/merge_request_templates/New End To End Test.md index 9ecf8999f6..4c42b32455 100644 --- a/.gitlab/merge_request_templates/New End To End Test.md +++ b/.gitlab/merge_request_templates/New End To End Test.md @@ -4,7 +4,7 @@ Please link to the respective test case in the testcases project --> -### Check-list +### Checklist - [ ] Confirm the test has a [`testcase:` tag linking to an existing test case](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/best_practices.html#link-a-test-to-its-test-case-issue) in the test case project. - [ ] Note if the test is intended to run in specific scenarios. If a scenario is new, add a link to the MR that adds the new scenario. @@ -15,7 +15,7 @@ Please link to the respective test case in the testcases project - [ ] Verify the tags to ensure it runs on the desired test environments. - [ ] If this MR has a dependency on another MR, such as a GitLab QA MR, specify the order in which the MRs should be merged. - [ ] (If applicable) Create a follow-up issue to document [the special setup](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/running_tests_that_require_special_setup.html) necessary to run the test: ISSUE_LINK -- [ ] If the test requires an admin's personal access token, ensure that the test passes on your local with and without the `GITLAB_QA_ADMIN_ACCESS_TOKEN` provided. +- [ ] If the test requires an admin's personal access token, ensure that the test passes on your local environment with and without the `GITLAB_QA_ADMIN_ACCESS_TOKEN` provided. /label ~"Quality" ~"QA" ~test diff --git a/.gitlab/merge_request_templates/New Static Analysis Check.md b/.gitlab/merge_request_templates/New Static Analysis Check.md index 66041a784e..6ad56cd5cd 100644 --- a/.gitlab/merge_request_templates/New Static Analysis Check.md +++ b/.gitlab/merge_request_templates/New Static Analysis Check.md @@ -12,20 +12,20 @@ Please describe the proposal and add a link to the source (for example, http://w ### Check-list - [ ] Make sure this MR enables a static analysis check rule for new usage but - ignores current offenses -- [ ] Mention this proposal in the relevant Slack channels (e.g. `#development`, `#backend`, `#frontend`) + ignores current offenses. +- [ ] Mention this proposal in the relevant Slack channels (e.g. `#development`, `#backend`, `#frontend`). - [ ] If there is a choice to make between two potential styles, set up an emoji vote in the MR: - CHOICE_A: :a: - CHOICE_B: :b: - - Vote yourself for both choices so that people know these are the choices -- [ ] The MR doesn't have significant objections, and is getting a majority of :+1: vs :-1: (remember that [we don't need to reach a consensus](https://about.gitlab.com/handbook/values/#collaboration-is-not-consensus)) -- [ ] (If applicable) One style is getting a majority of vote (compared to the other choice) -- [ ] (If applicable) Update the MR with the chosen style + - Vote for both choices, so they are visible to others. +- [ ] The MR doesn't have significant objections, and is getting a majority of :+1: vs :-1: (remember that [we don't need to reach a consensus](https://about.gitlab.com/handbook/values/#collaboration-is-not-consensus)). +- [ ] (If applicable) One style is getting a majority of vote (compared to the other choice). +- [ ] (If applicable) Update the MR with the chosen style. - [ ] Create a follow-up issue to fix the current offenses as a separate iteration: ISSUE_LINK -- [ ] Follow the [review process](https://docs.gitlab.com/ee/development/code_review.html) as usual +- [ ] Follow the [review process](https://docs.gitlab.com/ee/development/code_review.html) as usual. - [ ] Once approved and merged by a maintainer, mention it again: - - [ ] In the relevant Slack channels (e.g. `#development`, `#backend`, `#frontend`) - - [ ] (Optional depending on the impact of the change) In the Engineering Week in Review + - [ ] In the relevant Slack channels (e.g. `#development`, `#backend`, `#frontend`). + - [ ] (Optional depending on the impact of the change) In the Engineering Week in Review. /label ~"Engineering Productivity" ~"development guidelines" ~"static code analysis" diff --git a/.gitlab/merge_request_templates/Pipeline Configuration.md b/.gitlab/merge_request_templates/Pipeline Configuration.md index 62210028c1..a0b8d1cb8e 100644 --- a/.gitlab/merge_request_templates/Pipeline Configuration.md +++ b/.gitlab/merge_request_templates/Pipeline Configuration.md @@ -9,7 +9,7 @@ -## Check-list +## Checklist ### Pre-merge 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 4caebb7f1b..a8d2378eee 100644 --- a/.gitlab/merge_request_templates/Quarantine End to End Test.md +++ b/.gitlab/merge_request_templates/Quarantine End to End Test.md @@ -19,14 +19,14 @@ the noise (due to constantly failing tests, flaky tests, and so on) so that new - [ ] [Code review guidelines](https://docs.gitlab.com/ee/development/code_review.html) - [ ] [Style guides](https://docs.gitlab.com/ee/development/contributing/style_guides.html) - [ ] 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). + - [ ] Follow the [Quarantining Tests guide](https://about.gitlab.com/handbook/engineering/quality/quality-engineering/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/quality-engineering/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/execution_context_selection.html#quarantine-a-test-for-a-specific-environment). - [ ] (Optionally) In case of an emergency (e.g. blocked deployments), consider adding labels to pick into auto-deploy (~"Pick into auto-deploy" ~"priority::1" ~"severity::1"). - [ ] Dequarantine test check-list - - [ ] Follow the [Dequarantining Tests guide](https://about.gitlab.com/handbook/engineering/quality/guidelines/debugging-qa-test-failures/#dequarantining-tests). + - [ ] Follow the [Dequarantining Tests guide](https://about.gitlab.com/handbook/engineering/quality/quality-engineering/debugging-qa-test-failures/#dequarantining-tests). - [ ] Confirm the test consistently passes on the target GitLab environment(s). - - [ ] (Optionally) [Trigger a manual GitLab-QA pipeline](https://about.gitlab.com/handbook/engineering/quality/guidelines/tips-and-tricks/#running-gitlab-qa-pipeline-against-a-specific-gitlab-release) against a specific GitLab environment using the `RELEASE` variable from the `package-and-qa` job of the current merge request. + - [ ] (Optionally) [Trigger a manual GitLab-QA pipeline](https://about.gitlab.com/handbook/engineering/quality/quality-engineering/tips-and-tricks/#running-gitlab-qa-pipeline-against-a-specific-gitlab-release) against a specific GitLab environment using the `RELEASE` variable from the `package-and-qa` job of the current merge request. - [ ] To ensure a faster turnaround, ask in the `#quality` Slack channel for someone to review and merge the merge request, rather than assigning it directly. diff --git a/.gitlab/merge_request_templates/Security Release.md b/.gitlab/merge_request_templates/Security Release.md index 7684546b91..bfa80d6501 100644 --- a/.gitlab/merge_request_templates/Security Release.md +++ b/.gitlab/merge_request_templates/Security Release.md @@ -20,13 +20,13 @@ See [the general developer security release guidelines](https://gitlab.com/gitla - [ ] Assign to a reviewer and maintainer, per our [Code Review process]. - [ ] Ensure it's approved according to our [Approval Guidelines]. - [ ] Ensure it's approved by an AppSec engineer. - - Please see the security release [Code reviews and Approvals](https://gitlab.com/gitlab-org/release/docs/blob/master/general/security/developer.md#code-reviews-and-approvals) documentation for details on which AppSec team member to ping for approval. + - Please see the security release [Code reviews and Approvals] documentation for details on which AppSec team member to ping for approval. - Trigger the [`package-and-qa` build]. The docker image generated will be used by the AppSec engineer to validate the security vulnerability has been remediated. -- [ ] For a backport MR targeting a versioned stable branch (`X-Y-stable-ee`) +- [ ] For a backport MR targeting a versioned stable branch (`X-Y-stable-ee`). - [ ] Milestone is set to the version this backport applies to. A closed milestone can be assigned via [quick actions]. - [ ] Ensure it's approved by a maintainer. -**Note:** Reviewer/maintainer should not be a Release Manager +**Note:** Reviewer/maintainer should not be a Release Manager. ## Maintainer checklist @@ -39,6 +39,7 @@ See [the general developer security release guidelines](https://gitlab.com/gitla [quick actions]: https://docs.gitlab.com/ee/user/project/quick_actions.html#quick-actions-for-issues-merge-requests-and-epics [CHANGELOG entry]: https://docs.gitlab.com/ee/development/changelog.html#overview [Code Review process]: https://docs.gitlab.com/ee/development/code_review.html +[Code reviews and Approvals]: (https://gitlab.com/gitlab-org/release/docs/blob/master/general/security/developer.md#code-reviews-and-approvals) [Approval Guidelines]: https://docs.gitlab.com/ee/development/code_review.html#approval-guidelines [Canonical repository]: https://gitlab.com/gitlab-org/gitlab [`package-and-qa` build]: https://docs.gitlab.com/ee/development/testing_guide/end_to_end/#using-the-package-and-qa-job diff --git a/.gitpod.yml b/.gitpod.yml index 762adb72cc..a67242e08a 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -19,6 +19,7 @@ tasks: # ensure gdk.yml has correct instance settings gdk config set gitlab.rails.port 443 gdk config set gitlab.rails.https.enabled true + gdk config set webpack.host 127.0.0.1 # make documentation builds available gdk config set gitlab_docs.enabled true # reconfigure GDK @@ -47,6 +48,7 @@ tasks: gdk config set gitlab.rails.hostname $(gp url 3000 | sed -e 's+^http[s]*://++') gdk config set gitlab.rails.port 443 gdk config set gitlab.rails.https.enabled true + gdk config set webpack.host 127.0.0.1 # reconfigure GDK echo "$(date) – Reconfiguring GDK" | tee -a /workspace/startup.log gdk reconfigure diff --git a/.markdownlint.yml b/.markdownlint.yml index ea7492cf20..bb4c859e19 100644 --- a/.markdownlint.yml +++ b/.markdownlint.yml @@ -1,29 +1,29 @@ --- # Base Markdownlint configuration # Extended Markdownlint configuration in doc/.markdownlint/ -"default": true -"first-header-h1": true -"header-style": - "style": "atx" -"ul-style": - "style": "dash" -"no-trailing-spaces": false -"line-length": false -"no-duplicate-header": - "allow_different_nesting": true -"no-trailing-punctuation": - "punctuation": ".,;:!。,;:!?" -"ol-prefix": - "style": "one" -"no-inline-html": false -"hr-style": - "style": "---" -"no-emphasis-as-heading": false -"first-line-h1": false -"code-block-style": - "style": "fenced" -"proper-names": - "names": [ +default: true +first-header-h1: true +header-style: + style: "atx" +ul-style: + style: "dash" +no-trailing-spaces: false +line-length: false +no-duplicate-header: + allow_different_nesting: true +no-trailing-punctuation: + punctuation: ".,;:!。,;:!?" +ol-prefix: + style: "one" +no-inline-html: false +hr-style: + style: "---" +no-emphasis-as-heading: false +first-line-h1: false +code-block-style: + style: "fenced" +proper-names: + names: [ "Akismet", "Alertmanager", "API", @@ -139,4 +139,4 @@ "YAML", "YouTrack" ] - "code_blocks": false + code_blocks: false diff --git a/.projections.json.example b/.projections.json.example index 326e954439..19ded7eba9 100644 --- a/.projections.json.example +++ b/.projections.json.example @@ -1,4 +1,12 @@ { + "config/initializers/*.rb": { + "alternate": "spec/initializers/{}_spec.rb", + "type": "source" + }, + "spec/initializers/*_spec.rb": { + "alternate": "config/initializers/{}.rb", + "type": "test" + }, "app/*.rb": { "alternate": "spec/{}_spec.rb", "type": "source" diff --git a/.rubocop.yml b/.rubocop.yml index 5b7a58e1f2..2280fe222e 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,7 +8,9 @@ require: inherit_from: <% unless ENV['REVEAL_RUBOCOP_TODO'] == '1' %> - - '.rubocop_manual_todo.yml' + <% Dir.glob('.rubocop_todo/**/*.yml').each do |rubocop_todo_yaml| %> + - '<%= rubocop_todo_yaml %>' + <% end %> - '.rubocop_todo.yml' <% end %> - ./rubocop/rubocop-migrations.yml diff --git a/.rubocop_manual_todo.yml b/.rubocop_manual_todo.yml deleted file mode 100644 index 7b961e7ee6..0000000000 --- a/.rubocop_manual_todo.yml +++ /dev/null @@ -1,2618 +0,0 @@ ---- -# This file is not meant to store permanent exclusions. -# - for permanent lists, place them in the .rubocop.yml. -# - for short (less than 15 lines line) temporary lists, place them in the .rubocop_todo.yml file (run auto-generation). -# -# Purpose of this file: -# - show long exclusion lists that are hidden in generic auto-generation of .rubocop_todo.yml. -# - provide an 'in-flight' list of exclusions being worked on when qualifying as a long list -# as mentioned above. -# - guidelines for use found in -# https://docs.gitlab.com/ee/development/contributing/style_guides.html#resolving-rubocop-exceptions. - -# WIP: See https://gitlab.com/gitlab-org/gitlab/-/issues/220040 -Rails/SaveBang: - Exclude: - - 'ee/spec/initializers/fog_google_https_private_urls_spec.rb' - - 'ee/spec/lib/analytics/merge_request_metrics_calculator_spec.rb' - - 'ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb' - - 'ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb' - - 'ee/spec/lib/ee/gitlab/ci/pipeline/quota/activity_spec.rb' - - 'ee/spec/lib/gitlab/auth/ldap/access_spec.rb' - - 'ee/spec/lib/gitlab/auth/o_auth/user_spec.rb' - - 'ee/spec/lib/gitlab/auth/saml/user_spec.rb' - - 'ee/spec/lib/gitlab/elastic/search_results_spec.rb' - - 'ee/spec/lib/gitlab/email/handler/ee/service_desk_handler_spec.rb' - - 'ee/spec/lib/gitlab/geo_spec.rb' - - 'ee/spec/lib/gitlab/git_access_spec.rb' - - 'ee/spec/lib/gitlab/import_export/group/relation_factory_spec.rb' - - 'ee/spec/lib/gitlab/mirror_spec.rb' - - 'ee/spec/models/application_setting_spec.rb' - - 'ee/spec/models/approval_merge_request_rule_spec.rb' - - 'ee/spec/models/approval_project_rule_spec.rb' - - 'ee/spec/models/burndown_spec.rb' - - 'ee/spec/models/elasticsearch_indexed_namespace_spec.rb' - - 'ee/spec/models/gitlab_subscription_spec.rb' - - 'ee/spec/models/issue_spec.rb' - - 'ee/spec/models/label_note_spec.rb' - - 'ee/spec/models/lfs_object_spec.rb' - - 'ee/spec/models/license_spec.rb' - - 'ee/spec/models/merge_request_spec.rb' - - 'ee/spec/models/merge_train_spec.rb' - - 'ee/spec/models/project_ci_cd_setting_spec.rb' - - 'ee/spec/models/project_spec.rb' - - 'ee/spec/models/protected_environment_spec.rb' - - 'ee/spec/models/repository_spec.rb' - - 'ee/spec/models/scim_identity_spec.rb' - - 'ee/spec/models/scim_oauth_access_token_spec.rb' - - 'ee/spec/models/upload_spec.rb' - - 'ee/spec/models/user_preference_spec.rb' - - 'ee/spec/models/visible_approvable_spec.rb' - - 'ee/spec/models/vulnerabilities/feedback_spec.rb' - - 'ee/spec/models/vulnerabilities/issue_link_spec.rb' - - 'ee/spec/services/ee/boards/issues/create_service_spec.rb' - - 'ee/spec/services/ee/boards/issues/list_service_spec.rb' - - 'ee/spec/services/ee/boards/lists/list_service_spec.rb' - - 'ee/spec/services/ee/issuable/clone/attributes_rewriter_spec.rb' - - 'ee/spec/services/ee/issuable/common_system_notes_service_spec.rb' - - 'ee/spec/services/ee/issues/update_service_spec.rb' - - 'ee/spec/services/ee/merge_requests/refresh_service_spec.rb' - - 'ee/spec/services/ee/merge_requests/update_service_spec.rb' - - 'ee/spec/services/ee/notes/quick_actions_service_spec.rb' - - 'ee/spec/services/ee/notification_service_spec.rb' - - 'ee/spec/services/epic_links/create_service_spec.rb' - - 'ee/spec/services/epics/close_service_spec.rb' - - 'ee/spec/services/epics/issue_promote_service_spec.rb' - - 'ee/spec/services/epics/reopen_service_spec.rb' - - 'ee/spec/services/epics/tree_reorder_service_spec.rb' - - 'ee/spec/services/epics/update_dates_service_spec.rb' - - 'ee/spec/services/epics/update_service_spec.rb' - - 'ee/spec/services/geo/blob_verification_secondary_service_spec.rb' - - 'ee/spec/services/geo/files_expire_service_spec.rb' - - 'ee/spec/services/geo/metrics_update_service_spec.rb' - - 'ee/spec/services/geo/registry_consistency_service_spec.rb' - - 'ee/spec/services/geo/repository_verification_secondary_service_spec.rb' - - 'ee/spec/services/groups/autocomplete_service_spec.rb' - - 'ee/spec/services/ldap_group_reset_service_spec.rb' - - 'ee/spec/services/lfs/unlock_file_service_spec.rb' - - 'ee/spec/services/merge_trains/refresh_merge_request_service_spec.rb' - - 'ee/spec/services/quick_actions/interpret_service_spec.rb' - - 'ee/spec/services/slash_commands/global_slack_handler_spec.rb' - - 'ee/spec/services/start_pull_mirroring_service_spec.rb' - - 'ee/spec/services/status_page/trigger_publish_service_spec.rb' - - 'ee/spec/services/todo_service_spec.rb' - - 'ee/spec/services/vulnerability_feedback/create_service_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb' - - 'qa/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb' - - 'qa/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb' - - 'spec/controllers/abuse_reports_controller_spec.rb' - - 'spec/controllers/boards/issues_controller_spec.rb' - - 'spec/controllers/sent_notifications_controller_spec.rb' - - 'spec/controllers/sessions_controller_spec.rb' - - 'spec/lib/after_commit_queue_spec.rb' - - 'spec/lib/backup/manager_spec.rb' - - 'spec/lib/gitlab/alerting/alert_spec.rb' - - 'spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb' - - 'spec/lib/gitlab/auth/ldap/user_spec.rb' - - 'spec/lib/gitlab/auth/o_auth/user_spec.rb' - - 'spec/lib/gitlab/auth/saml/user_spec.rb' - - 'spec/lib/gitlab/auth_spec.rb' - - 'spec/lib/gitlab/authorized_keys_spec.rb' - - 'spec/lib/gitlab/bitbucket_server_import/importer_spec.rb' - - 'spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb' - - 'spec/lib/gitlab/database/custom_structure_spec.rb' - - 'spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb' - - 'spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb' - - 'spec/lib/gitlab/gfm/reference_rewriter_spec.rb' - - 'spec/lib/gitlab/git_access_spec.rb' - - 'spec/lib/gitlab/import_export/avatar_saver_spec.rb' - - 'spec/lib/gitlab/import_export/base/relation_factory_spec.rb' - - 'spec/lib/gitlab/import_export/design_repo_restorer_spec.rb' - - 'spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb' - - 'spec/lib/gitlab/import_export/fork_spec.rb' - - 'spec/lib/gitlab/import_export/group/legacy_tree_saver_spec.rb' - - 'spec/lib/gitlab/import_export/group/relation_factory_spec.rb' - - 'spec/lib/gitlab/import_export/group/tree_saver_spec.rb' - - 'spec/lib/gitlab/import_export/importer_spec.rb' - - 'spec/lib/gitlab/import_export/lfs_restorer_spec.rb' - - 'spec/lib/gitlab/import_export/lfs_saver_spec.rb' - - 'spec/lib/gitlab/import_export/members_mapper_spec.rb' - - 'spec/lib/gitlab/import_export/project/relation_factory_spec.rb' - - 'spec/lib/gitlab/import_export/project/tree_restorer_spec.rb' - - 'spec/lib/gitlab/import_export/project/tree_saver_spec.rb' - - 'spec/lib/gitlab/import_export/repo_restorer_spec.rb' - - 'spec/lib/gitlab/import_export/saver_spec.rb' - - 'spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb' - - 'spec/lib/gitlab/import_export/snippet_repo_saver_spec.rb' - - 'spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb' - - 'spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb' - - 'spec/lib/gitlab/import_export/uploads_manager_spec.rb' - - 'spec/lib/gitlab/import_export/uploads_saver_spec.rb' - - 'spec/lib/gitlab/import_export/wiki_restorer_spec.rb' - - 'spec/lib/gitlab/lets_encrypt/client_spec.rb' - - 'spec/lib/gitlab/middleware/go_spec.rb' - - 'spec/lib/gitlab/shard_health_cache_spec.rb' - - 'spec/mailers/notify_spec.rb' - -Rails/TimeZone: - Enabled: true - Exclude: - - 'lib/gitlab/popen.rb' - - 'ee/lib/delay.rb' - - 'ee/lib/gitlab/elastic/helper.rb' - - 'ee/lib/gitlab/elastic/indexer.rb' - - 'ee/lib/gitlab/geo/base_request.rb' - - 'ee/lib/gitlab/geo/event_gap_tracking.rb' - - 'ee/lib/gitlab/geo/log_cursor/events/design_repository_updated_event.rb' - - 'ee/lib/gitlab/geo/log_cursor/events/repository_updated_event.rb' - - 'ee/lib/gitlab/geo/log_cursor/logger.rb' - - 'ee/lib/gitlab/geo/oauth/login_state.rb' - - 'ee/lib/gitlab/prometheus/queries/cluster_query.rb' - - 'ee/lib/gitlab/prometheus/queries/packet_flow_query.rb' - - 'ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb' - - 'ee/spec/lib/ee/gitlab/ci/pipeline/quota/job_activity_spec.rb' - - 'ee/spec/lib/gitlab/analytics/cycle_analytics/data_collector_spec.rb' - - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_summary_spec.rb' - - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_time_summary_spec.rb' - - 'ee/spec/lib/gitlab/auth/ldap/access_spec.rb' - - 'ee/spec/lib/gitlab/auth/smartcard/san_extension_spec.rb' - - 'ee/spec/lib/gitlab/auth/smartcard/session_spec.rb' - - 'ee/spec/lib/gitlab/background_migration/fix_orphan_promoted_issues_spec.rb' - - 'ee/spec/lib/gitlab/ci/pipeline/chain/limit/job_activity_spec.rb' - - 'ee/spec/lib/gitlab/elastic/client_spec.rb' - - 'ee/spec/lib/gitlab/geo/base_request_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/cache_invalidation_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/container_repository_updated_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/design_repository_updated_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/hashed_storage_attachments_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/hashed_storage_migrated_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/job_artifact_deleted_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/lfs_object_deleted_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/repositories_changed_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_created_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_deleted_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_renamed_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_updated_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/reset_checksum_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/logger_spec.rb' - - 'ee/spec/lib/gitlab/git_access_spec.rb' - - 'ee/spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb' - - 'ee/spec/lib/gitlab/prometheus/queries/cluster_query_spec.rb' - - 'ee/spec/lib/gitlab/prometheus/queries/packet_flow_query_spec.rb' - - 'lib/api/helpers.rb' - - 'lib/api/sidekiq_metrics.rb' - - 'lib/backup/manager.rb' - - 'lib/bitbucket_server/representation/base.rb' - - 'lib/gitlab/auth/current_user_mode.rb' - - 'lib/gitlab/auth/ldap/access.rb' - - 'lib/gitlab/chaos.rb' - - 'lib/gitlab/checks/timed_logger.rb' - - 'lib/gitlab/ci/ansi2json/line.rb' - - 'lib/gitlab/ci/pipeline/chain/sequence.rb' - - 'lib/gitlab/ci/pipeline/duration.rb' - - 'lib/gitlab/cycle_analytics/summary/deployment_frequency.rb' - - 'lib/gitlab/database.rb' - - 'lib/gitlab/external_authorization/access.rb' - - 'lib/gitlab/external_authorization/cache.rb' - - 'lib/gitlab/gitaly_client.rb' - - 'lib/gitlab/gitaly_client/ref_service.rb' - - 'lib/gitlab/github_import/representation.rb' - - 'lib/gitlab/grape_logging/loggers/queue_duration_logger.rb' - - 'lib/gitlab/health_checks/base_abstract_check.rb' - - 'lib/gitlab/import_export.rb' - - 'lib/gitlab/instrumentation/elasticsearch_transport.rb' - - 'lib/gitlab/instrumentation/redis_interceptor.rb' - - 'lib/gitlab/instrumentation_helper.rb' - - 'lib/gitlab/kubernetes/helm/certificate.rb' - - 'lib/gitlab/lfs_token.rb' - - 'lib/gitlab/loop_helpers.rb' - - 'lib/gitlab/phabricator_import/representation/task.rb' - - 'lib/gitlab/prometheus/queries/additional_metrics_environment_query.rb' - - 'lib/gitlab/prometheus/queries/matched_metric_query.rb' - - 'lib/gitlab/prometheus_client.rb' - - 'lib/gitlab/sherlock/transaction.rb' - - 'lib/gitlab/task_helpers.rb' - - 'lib/gitlab/x509/tag.rb' - - 'lib/grafana/time_window.rb' - - 'lib/json_web_token/token.rb' - - 'lib/object_storage/direct_upload.rb' - - 'lib/quality/seeders/issues.rb' - - 'tooling/rspec_flaky/flaky_example.rb' - - 'tooling/rspec_flaky/report.rb' - - 'lib/tasks/gitlab/assets.rake' - - 'lib/tasks/gitlab/backup.rake' - - 'lib/tasks/gitlab/cleanup.rake' - - 'lib/tasks/gitlab/list_repos.rake' - - 'spec/lib/api/helpers_spec.rb' - - 'spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb' - - 'spec/lib/gitlab/app_json_logger_spec.rb' - - 'spec/lib/gitlab/app_text_logger_spec.rb' - - 'spec/lib/gitlab/auth/current_user_mode_spec.rb' - - 'spec/lib/gitlab/background_migration/recalculate_project_authorizations_spec.rb' - - 'spec/lib/gitlab/background_migration/wrongfully_confirmed_email_unconfirmer_spec.rb' - - 'spec/lib/gitlab/bitbucket_import/importer_spec.rb' - - 'spec/lib/gitlab/bitbucket_server_import/importer_spec.rb' - - 'spec/lib/gitlab/checks/timed_logger_spec.rb' - - 'spec/lib/gitlab/ci/cron_parser_spec.rb' - - 'spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb' - - 'spec/lib/gitlab/cycle_analytics/usage_data_spec.rb' - - 'spec/lib/gitlab/data_builder/note_spec.rb' - - 'spec/lib/gitlab/database/background_migration_job_spec.rb' - - 'spec/lib/gitlab/database_spec.rb' - - 'spec/lib/gitlab/discussions_diff/file_collection_spec.rb' - - 'spec/lib/gitlab/external_authorization/access_spec.rb' - - 'spec/lib/gitlab/external_authorization/cache_spec.rb' - - 'spec/lib/gitlab/external_authorization/logger_spec.rb' - - 'spec/lib/gitlab/fogbugz_import/importer_spec.rb' - - 'spec/lib/gitlab/git/branch_spec.rb' - - 'spec/lib/gitlab/git/commit_spec.rb' - - 'spec/lib/gitlab/git/repository_spec.rb' - - 'spec/lib/gitlab/git_access_spec.rb' - - 'spec/lib/gitlab/github_import/importer/diff_note_importer_spec.rb' - - 'spec/lib/gitlab/github_import/importer/issue_importer_spec.rb' - - 'spec/lib/gitlab/github_import/importer/issues_importer_spec.rb' - - 'spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb' - - 'spec/lib/gitlab/github_import/importer/note_importer_spec.rb' - - 'spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb' - - 'spec/lib/gitlab/github_import/importer/releases_importer_spec.rb' - - 'spec/lib/gitlab/github_import/representation/diff_note_spec.rb' - - 'spec/lib/gitlab/github_import/representation/issue_spec.rb' - - 'spec/lib/gitlab/github_import/representation/note_spec.rb' - - 'spec/lib/gitlab/github_import/representation/pull_request_spec.rb' - - 'spec/lib/gitlab/grape_logging/formatters/lograge_with_timestamp_spec.rb' - - 'spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb' - - 'spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb' - - 'spec/lib/gitlab/graphql_logger_spec.rb' - - 'spec/lib/gitlab/graphs/commits_spec.rb' - - 'spec/lib/gitlab/import_export/project/relation_factory_spec.rb' - - 'spec/lib/gitlab/json_logger_spec.rb' - - 'spec/lib/gitlab/lfs_token_spec.rb' - - 'spec/lib/gitlab/log_timestamp_formatter_spec.rb' - - 'spec/lib/gitlab/middleware/rails_queue_duration_spec.rb' - - 'spec/lib/gitlab/omniauth_logging/json_formatter_spec.rb' - - 'spec/lib/gitlab/phabricator_import/issues/task_importer_spec.rb' - - 'spec/lib/gitlab/phabricator_import/representation/task_spec.rb' - - 'spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb' - - 'spec/lib/gitlab/prometheus/queries/deployment_query_spec.rb' - - 'spec/lib/gitlab/prometheus/queries/validate_query_spec.rb' - - 'spec/lib/gitlab/sherlock/transaction_spec.rb' - - 'spec/lib/gitlab/sidekiq_logging/json_formatter_spec.rb' - - 'spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executing_spec.rb' - - 'spec/lib/gitlab/updated_notes_paginator_spec.rb' - - 'spec/lib/gitlab/utils/json_size_estimator_spec.rb' - - 'spec/lib/gitlab/x509/signature_spec.rb' - - 'spec/lib/grafana/time_window_spec.rb' - - 'spec/lib/json_web_token/hmac_token_spec.rb' - - 'spec/tooling/rspec_flaky/flaky_example_spec.rb' - - 'spec/tooling/rspec_flaky/listener_spec.rb' - - 'spec/tooling/rspec_flaky/report_spec.rb' - -RSpec/TimecopFreeze: - Exclude: - - 'ee/spec/controllers/admin/application_settings_controller_spec.rb' - - 'ee/spec/controllers/projects/security/network_policies_controller_spec.rb' - - 'ee/spec/features/admin/admin_reset_pipeline_minutes_spec.rb' - - 'ee/spec/features/boards/sidebar_spec.rb' - - 'ee/spec/features/groups/analytics/cycle_analytics/filters_and_data_spec.rb' - - 'ee/spec/features/groups/iteration_spec.rb' - - 'ee/spec/features/projects/mirror_spec.rb' - - 'ee/spec/features/projects/services/prometheus_custom_metrics_spec.rb' - - 'ee/spec/finders/productivity_analytics_finder_spec.rb' - - 'ee/spec/frontend/fixtures/analytics.rb' - - 'ee/spec/helpers/vulnerabilities_helper_spec.rb' - - 'ee/spec/lib/analytics/merge_request_metrics_refresh_spec.rb' - - 'ee/spec/lib/analytics/productivity_analytics_request_params_spec.rb' - - 'ee/spec/lib/ee/gitlab/background_migration/populate_vulnerability_historical_statistics_spec.rb' - - 'ee/spec/lib/gitlab/analytics/cycle_analytics/data_collector_spec.rb' - - 'ee/spec/lib/gitlab/analytics/cycle_analytics/group_stage_time_summary_spec.rb' - - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_time_summary_spec.rb' - - 'ee/spec/lib/gitlab/analytics/type_of_work/tasks_by_type_spec.rb' - - 'ee/spec/lib/gitlab/auth/group_saml/sso_enforcer_spec.rb' - - 'ee/spec/lib/gitlab/geo/base_request_spec.rb' - - 'ee/spec/lib/gitlab/geo/event_gap_tracking_spec.rb' - - 'ee/spec/lib/gitlab/geo/git_push_http_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/daemon_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_updated_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/oauth/login_state_spec.rb' - - 'ee/spec/lib/gitlab/insights/reducers/count_per_period_reducer_spec.rb' - - 'ee/spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb' - - 'ee/spec/lib/gitlab/prometheus/queries/cluster_query_spec.rb' - - 'ee/spec/migrations/populate_vulnerability_historical_statistics_for_year_spec.rb' - - 'ee/spec/migrations/remove_duplicated_cs_findings_spec.rb' - - 'ee/spec/migrations/remove_duplicated_cs_findings_without_vulnerability_id_spec.rb' - - 'ee/spec/migrations/schedule_fix_orphan_promoted_issues_spec.rb' - - 'ee/spec/migrations/schedule_merge_request_any_approval_rule_migration_spec.rb' - - 'ee/spec/migrations/schedule_populate_resolved_on_default_branch_column_spec.rb' - - 'ee/spec/migrations/schedule_populate_vulnerability_historical_statistics_spec.rb' - - 'ee/spec/migrations/schedule_project_any_approval_rule_migration_spec.rb' - - 'ee/spec/migrations/set_resolved_state_on_vulnerabilities_spec.rb' - - 'ee/spec/migrations/20190926180443_schedule_epic_issues_after_epics_move_spec.rb' - - 'ee/spec/models/analytics/cycle_analytics/group_level_spec.rb' - - 'ee/spec/models/burndown_spec.rb' - - 'ee/spec/models/ee/namespace_spec.rb' - - 'ee/spec/models/geo/project_registry_spec.rb' - - 'ee/spec/models/merge_train_spec.rb' - - 'ee/spec/models/productivity_analytics_spec.rb' - - 'ee/spec/models/project_spec.rb' - - 'ee/spec/models/vulnerabilities/export_spec.rb' - - 'ee/spec/requests/api/vulnerabilities_spec.rb' - - 'ee/spec/services/geo/file_download_service_spec.rb' - - 'ee/spec/services/vulnerabilities/confirm_service_spec.rb' - - 'ee/spec/services/vulnerabilities/dismiss_service_spec.rb' - - 'ee/spec/services/vulnerabilities/resolve_service_spec.rb' - - 'ee/spec/services/vulnerabilities/revert_to_detected_service_spec.rb' - - 'ee/spec/services/vulnerability_exports/export_service_spec.rb' - - 'ee/spec/support/shared_contexts/lib/gitlab/insights/reducers/reducers_shared_contexts.rb' - - 'qa/spec/support/repeater_spec.rb' - - 'spec/features/users/active_sessions_spec.rb' - - 'spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb' - - 'spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb' - - 'spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb' - - 'spec/lib/gitlab/auth/unique_ips_limiter_spec.rb' - - 'spec/lib/gitlab/checks/timed_logger_spec.rb' - - 'spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb' - - 'spec/lib/gitlab/cycle_analytics/usage_data_spec.rb' - - 'spec/lib/gitlab/omniauth_logging/json_formatter_spec.rb' - - 'spec/lib/gitlab/puma_logging/json_formatter_spec.rb' - - 'spec/lib/json_web_token/hmac_token_spec.rb' - - 'spec/tooling/rspec_flaky/flaky_example_spec.rb' - - 'spec/tooling/rspec_flaky/listener_spec.rb' - - 'spec/models/active_session_spec.rb' - - 'spec/serializers/entity_date_helper_spec.rb' - - 'spec/support/cycle_analytics_helpers/test_generation.rb' - - 'spec/support/helpers/cycle_analytics_helpers.rb' - - 'spec/support/helpers/javascript_fixtures_helpers.rb' - - 'spec/support/shared_contexts/rack_attack_shared_context.rb' - - 'spec/support/shared_examples/workers/concerns/reenqueuer_shared_examples.rb' - - 'spec/workers/concerns/reenqueuer_spec.rb' - - 'spec/workers/metrics/dashboard/prune_old_annotations_worker_spec.rb' - -RSpec/TimecopTravel: - Exclude: - - 'ee/spec/lib/gitlab/geo/event_gap_tracking_spec.rb' - - 'ee/spec/lib/gitlab/geo/git_push_http_spec.rb' - - 'ee/spec/lib/gitlab/geo/jwt_request_decoder_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/daemon_spec.rb' - - 'ee/spec/models/broadcast_message_spec.rb' - - 'ee/spec/models/burndown_spec.rb' - - 'qa/spec/support/repeater_spec.rb' - - 'spec/features/users/terms_spec.rb' - - 'spec/lib/feature_spec.rb' - - 'spec/models/broadcast_message_spec.rb' - - 'spec/models/concerns/issuable_spec.rb' - - 'spec/requests/api/ci/runner/jobs_trace_spec.rb' - - 'spec/requests/api/issues/put_projects_issues_spec.rb' - - 'spec/support/shared_contexts/cache_allowed_users_in_namespace_shared_context.rb' - - 'spec/support/shared_examples/requests/api/time_tracking_shared_examples.rb' - - 'spec/support/shared_examples/workers/concerns/reenqueuer_shared_examples.rb' - - 'spec/workers/concerns/reenqueuer_spec.rb' - - 'spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb' - -# WIP: https://gitlab.com/gitlab-org/gitlab/-/issues/34997 -RSpec/AnyInstanceOf: - Exclude: - - 'ee/spec/controllers/admin/geo/nodes_controller_spec.rb' - - 'ee/spec/controllers/ee/groups_controller_spec.rb' - - 'ee/spec/controllers/groups/analytics/productivity_analytics_controller_spec.rb' - - 'ee/spec/controllers/groups/epics/notes_controller_spec.rb' - - 'ee/spec/controllers/groups/omniauth_callbacks_controller_spec.rb' - - 'ee/spec/controllers/oauth/geo_auth_controller_spec.rb' - - 'ee/spec/controllers/projects/environments_controller_spec.rb' - - 'ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb' - - 'ee/spec/controllers/projects/merge_requests_controller_spec.rb' - - 'ee/spec/controllers/projects/path_locks_controller_spec.rb' - - 'ee/spec/controllers/projects_controller_spec.rb' - - 'ee/spec/controllers/subscriptions_controller_spec.rb' - - 'ee/spec/controllers/trials_controller_spec.rb' - - '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/boards/scoped_issue_board_spec.rb' - - 'ee/spec/features/ci_shared_runner_warnings_spec.rb' - - 'ee/spec/features/groups/group_settings_spec.rb' - - 'ee/spec/features/groups/navbar_spec.rb' - - 'ee/spec/features/groups/saml_providers_spec.rb' - - 'ee/spec/features/issues/form_spec.rb' - - 'ee/spec/features/merge_request/user_creates_merge_request_spec.rb' - - 'ee/spec/features/projects/new_project_spec.rb' - - 'ee/spec/features/registrations/welcome_spec.rb' - - 'ee/spec/features/security/project/internal_access_spec.rb' - - 'ee/spec/features/security/project/private_access_spec.rb' - - 'ee/spec/features/security/project/public_access_spec.rb' - - 'ee/spec/features/trials/capture_lead_spec.rb' - - 'ee/spec/features/trials/select_namespace_spec.rb' - - 'ee/spec/features/users/login_spec.rb' - - 'ee/spec/graphql/mutations/dast_on_demand_scans/create_spec.rb' - - 'ee/spec/graphql/mutations/incident_management/oncall_schedule/create_spec.rb' - - 'ee/spec/graphql/mutations/incident_management/oncall_schedule/destroy_spec.rb' - - 'ee/spec/graphql/mutations/incident_management/oncall_schedule/update_spec.rb' - - 'ee/spec/helpers/application_helper_spec.rb' - - 'ee/spec/lib/ee/api/helpers_spec.rb' - - 'ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb' - - 'ee/spec/lib/ee/gitlab/checks/push_rule_check_spec.rb' - - 'ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb' - - 'ee/spec/lib/gitlab/auth/group_saml/membership_enforcer_spec.rb' - - 'ee/spec/lib/gitlab/auth/ldap/access_spec.rb' - - 'ee/spec/lib/gitlab/ci/templates/Jobs/browser_performance_testing_gitlab_ci_yaml_spec.rb' - - 'ee/spec/lib/gitlab/ci/templates/Jobs/dast_default_branch_gitlab_ci_yaml_spec.rb' - - 'ee/spec/lib/gitlab/ci/templates/Jobs/load_performance_testing_gitlab_ci_yaml_spec.rb' - - 'ee/spec/lib/gitlab/ci/templates/Verify/browser_performance_testing_gitlab_ci_yaml_spec.rb' - - 'ee/spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb' - - 'ee/spec/lib/gitlab/ci/templates/api_fuzzing_gitlab_ci_yaml_spec.rb' - - 'ee/spec/lib/gitlab/ci/templates/container_scanning_gitlab_ci_yaml_spec.rb' - - 'ee/spec/lib/gitlab/ci/templates/coverage_fuzzing_gitlab_ci_yaml_spec.rb' - - 'ee/spec/lib/gitlab/ci/templates/dast_gitlab_ci_yaml_spec.rb' - - 'ee/spec/lib/gitlab/ci/templates/dependency_scanning_gitlab_ci_yaml_spec.rb' - - 'ee/spec/lib/gitlab/ci/templates/license_scanning_gitlab_ci_yaml_spec.rb' - - 'ee/spec/lib/gitlab/ci/templates/sast_gitlab_ci_yaml_spec.rb' - - 'ee/spec/lib/gitlab/elastic/project_search_results_spec.rb' - - 'ee/spec/lib/gitlab/expiring_subscription_message_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/daemon_spec.rb' - - 'ee/spec/lib/gitlab/legacy_github_import/project_creator_spec.rb' - - 'ee/spec/lib/omni_auth/strategies/group_saml_spec.rb' - - 'ee/spec/lib/security/ci_configuration/sast_build_actions_spec.rb' - - 'ee/spec/lib/system_check/geo/geo_database_configured_check_spec.rb' - - 'ee/spec/migrations/schedule_populate_resolved_on_default_branch_column_spec.rb' - - 'ee/spec/migrations/update_location_fingerprint_column_for_cs_spec.rb' - - 'ee/spec/migrations/update_occurrence_severity_column_spec.rb' - - 'ee/spec/migrations/update_undefined_confidence_from_occurrences_spec.rb' - - 'ee/spec/migrations/update_undefined_confidence_from_vulnerabilities_spec.rb' - - 'ee/spec/migrations/update_vulnerability_severity_column_spec.rb' - - 'ee/spec/models/ee/namespace_spec.rb' - - 'ee/spec/models/geo_node_status_spec.rb' - - 'ee/spec/models/issue_spec.rb' - - 'ee/spec/models/merge_request_spec.rb' - - 'ee/spec/models/project_import_state_spec.rb' - - 'ee/spec/models/push_rule_spec.rb' - - 'ee/spec/presenters/ci/pipeline_presenter_spec.rb' - - 'ee/spec/presenters/projects/security/configuration_presenter_spec.rb' - - 'ee/spec/requests/api/geo_nodes_spec.rb' - - 'ee/spec/requests/api/graphql/mutations/dast_on_demand_scans/create_spec.rb' - - 'ee/spec/requests/api/graphql/mutations/dast_site_profiles/delete_spec.rb' - - 'ee/spec/requests/api/graphql/mutations/pipelines/run_dast_scan_spec.rb' - - 'ee/spec/requests/api/issues_spec.rb' - - 'ee/spec/requests/api/projects_spec.rb' - - 'ee/spec/requests/git_http_spec.rb' - - 'ee/spec/requests/groups_controller_spec.rb' - - 'ee/spec/requests/omniauth_kerberos_spnego_spec.rb' - - 'ee/spec/requests/repositories/git_http_controller_spec.rb' - - 'ee/spec/services/alert_management/network_alert_service_spec.rb' - - 'ee/spec/services/ci/expire_pipeline_cache_service_spec.rb' - - 'ee/spec/services/ci/run_dast_scan_service_spec.rb' - - 'ee/spec/services/ee/git/branch_push_service_spec.rb' - - 'ee/spec/services/ee/merge_requests/create_from_vulnerability_data_service_spec.rb' - - 'ee/spec/services/ee/merge_requests/refresh_service_spec.rb' - - 'ee/spec/services/ee/security/ingress_modsecurity_usage_service_spec.rb' - - 'ee/spec/services/ee/users/create_service_spec.rb' - - 'ee/spec/services/ee/users/destroy_service_spec.rb' - - 'ee/spec/services/geo/container_repository_sync_service_spec.rb' - - 'ee/spec/services/geo/design_repository_sync_service_spec.rb' - - 'ee/spec/services/geo/framework_repository_sync_service_spec.rb' - - 'ee/spec/services/geo/hashed_storage_migration_service_spec.rb' - - 'ee/spec/services/geo/metrics_update_service_spec.rb' - - 'ee/spec/services/geo/move_repository_service_spec.rb' - - 'ee/spec/services/geo/project_housekeeping_service_spec.rb' - - 'ee/spec/services/geo/rename_repository_service_spec.rb' - - 'ee/spec/services/geo/repository_destroy_service_spec.rb' - - 'ee/spec/services/geo/repository_sync_service_spec.rb' - - 'ee/spec/services/geo/wiki_sync_service_spec.rb' - - 'ee/spec/services/groups/destroy_service_spec.rb' - - 'ee/spec/services/groups/update_service_spec.rb' - - 'ee/spec/services/merge_trains/check_status_service_spec.rb' - - 'ee/spec/services/network_policies/resources_service_spec.rb' - - 'ee/spec/services/projects/destroy_service_spec.rb' - - 'ee/spec/services/projects/group_links/destroy_service_spec.rb' - - 'ee/spec/services/projects/update_service_spec.rb' - - 'ee/spec/services/slash_commands/global_slack_handler_spec.rb' - - 'ee/spec/support/helpers/ee/stub_configuration.rb' - - 'ee/spec/support/shared_examples/controllers/analytics/cycle_analytics/shared_stage_shared_examples.rb' - - 'ee/spec/support/shared_examples/features/ultimate_trial_callout_shared_examples.rb' - - 'ee/spec/support/shared_examples/lib/gitlab/geo/geo_logs_event_source_info_shared_examples.rb' - - 'ee/spec/support/shared_examples/models/member_shared_examples.rb' - - 'ee/spec/support/shared_examples/services/base_sync_service_shared_examples.rb' - - 'ee/spec/support/shared_examples/services/geo/geo_request_service_shared_examples.rb' - - 'ee/spec/workers/build_finished_worker_spec.rb' - - 'ee/spec/workers/concerns/elastic/indexing_control_spec.rb' - - 'ee/spec/workers/elastic_commit_indexer_worker_spec.rb' - - 'ee/spec/workers/geo/design_repository_shard_sync_worker_spec.rb' - - 'ee/spec/workers/geo/file_download_dispatch_worker_spec.rb' - - 'ee/spec/workers/geo/registry_sync_worker_spec.rb' - - 'ee/spec/workers/geo/repository_cleanup_worker_spec.rb' - - 'ee/spec/workers/geo/repository_shard_sync_worker_spec.rb' - - 'ee/spec/workers/project_cache_worker_spec.rb' - - 'ee/spec/workers/repository_import_worker_spec.rb' - - 'ee/spec/workers/vulnerability_exports/export_deletion_worker_spec.rb' - - 'qa/spec/runtime/release_spec.rb' - - 'spec/controllers/admin/sessions_controller_spec.rb' - - 'spec/controllers/application_controller_spec.rb' - - 'spec/controllers/concerns/issuable_actions_spec.rb' - - 'spec/controllers/concerns/static_object_external_storage_spec.rb' - - 'spec/controllers/explore/projects_controller_spec.rb' - - 'spec/controllers/groups/clusters_controller_spec.rb' - - 'spec/controllers/groups/settings/ci_cd_controller_spec.rb' - - 'spec/controllers/groups_controller_spec.rb' - - 'spec/controllers/import/bitbucket_controller_spec.rb' - - 'spec/controllers/oauth/jira/authorizations_controller_spec.rb' - - 'spec/controllers/omniauth_callbacks_controller_spec.rb' - - 'spec/controllers/projects/artifacts_controller_spec.rb' - - 'spec/controllers/projects/branches_controller_spec.rb' - - 'spec/controllers/projects/clusters_controller_spec.rb' - - 'spec/controllers/projects/commit_controller_spec.rb' - - 'spec/controllers/projects/commits_controller_spec.rb' - - 'spec/controllers/projects/environments_controller_spec.rb' - - 'spec/controllers/projects/imports_controller_spec.rb' - - 'spec/controllers/projects/issues_controller_spec.rb' - - 'spec/controllers/projects/jobs_controller_spec.rb' - - 'spec/controllers/projects/labels_controller_spec.rb' - - 'spec/controllers/projects/merge_requests_controller_spec.rb' - - 'spec/controllers/projects/pipelines_controller_spec.rb' - - 'spec/controllers/projects/service_hook_logs_controller_spec.rb' - - 'spec/controllers/projects/services_controller_spec.rb' - - 'spec/controllers/projects/tags_controller_spec.rb' - - 'spec/controllers/registrations/experience_levels_controller_spec.rb' - - 'spec/controllers/registrations_controller_spec.rb' - - 'spec/controllers/sessions_controller_spec.rb' - - 'spec/controllers/snippets/notes_controller_spec.rb' - - 'spec/controllers/snippets_controller_spec.rb' - - 'spec/features/admin/admin_mode/login_spec.rb' - - 'spec/features/groups/clusters/eks_spec.rb' - - 'spec/features/groups/members/tabs_spec.rb' - - 'spec/features/ide/static_object_external_storage_csp_spec.rb' - - 'spec/features/issuables/issuable_list_spec.rb' - - 'spec/features/issues/form_spec.rb' - - 'spec/features/merge_request/user_creates_image_diff_notes_spec.rb' - - 'spec/features/merge_request/user_reviews_image_spec.rb' - - 'spec/features/merge_request/user_sees_diff_spec.rb' - - 'spec/features/merge_request/user_sees_merge_widget_spec.rb' - - 'spec/features/profiles/personal_access_tokens_spec.rb' - - 'spec/features/projects/clusters/gcp_spec.rb' - - 'spec/features/projects/clusters_spec.rb' - - 'spec/features/projects/container_registry_spec.rb' - - 'spec/features/projects/files/user_browses_lfs_files_spec.rb' - - 'spec/features/projects/jobs_spec.rb' - - 'spec/features/projects/navbar_spec.rb' - - 'spec/features/projects/pages_spec.rb' - - 'spec/features/projects/services/user_activates_mattermost_slash_command_spec.rb' - - 'spec/features/projects/settings/service_desk_setting_spec.rb' - - 'spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb' - - 'spec/features/snippets/embedded_snippet_spec.rb' - - 'spec/features/usage_stats_consent_spec.rb' - - 'spec/finders/prometheus_metrics_finder_spec.rb' - - 'spec/graphql/mutations/alert_management/create_alert_issue_spec.rb' - - 'spec/graphql/mutations/alert_management/http_integration/create_spec.rb' - - 'spec/graphql/mutations/alert_management/http_integration/destroy_spec.rb' - - 'spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb' - - 'spec/graphql/mutations/alert_management/http_integration/update_spec.rb' - - 'spec/graphql/mutations/alert_management/prometheus_integration/create_spec.rb' - - 'spec/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb' - - 'spec/graphql/mutations/alert_management/prometheus_integration/update_spec.rb' - - 'spec/helpers/analytics/unique_visits_helper_spec.rb' - - 'spec/helpers/projects_helper_spec.rb' - - 'spec/initializers/lograge_spec.rb' - - 'spec/lib/api/entities/merge_request_basic_spec.rb' - - 'spec/lib/api/entities/merge_request_changes_spec.rb' - - 'spec/lib/api/helpers_spec.rb' - - 'spec/lib/backup/files_spec.rb' - - 'spec/lib/backup/manager_spec.rb' - - 'spec/lib/banzai/commit_renderer_spec.rb' - - 'spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/references/issue_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/repository_link_filter_spec.rb' - - 'spec/lib/banzai/pipeline/gfm_pipeline_spec.rb' - - 'spec/lib/extracts_ref_spec.rb' - - 'spec/lib/feature_spec.rb' - - 'spec/lib/gitlab/app_logger_spec.rb' - - 'spec/lib/gitlab/asciidoc_spec.rb' - - 'spec/lib/gitlab/auth/auth_finders_spec.rb' - - 'spec/lib/gitlab/auth/blocked_user_tracker_spec.rb' - - 'spec/lib/gitlab/auth/request_authenticator_spec.rb' - - 'spec/lib/gitlab/auth_spec.rb' - - 'spec/lib/gitlab/background_migration/populate_personal_snippet_statistics_spec.rb' - - 'spec/lib/gitlab/background_migration/populate_project_snippet_statistics_spec.rb' - - 'spec/lib/gitlab/checks/diff_check_spec.rb' - - 'spec/lib/gitlab/checks/lfs_check_spec.rb' - - 'spec/lib/gitlab/checks/lfs_integrity_spec.rb' - - 'spec/lib/gitlab/ci/config/external/file/base_spec.rb' - - 'spec/lib/gitlab/ci/config/external/file/local_spec.rb' - - 'spec/lib/gitlab/ci/config/external/processor_spec.rb' - - 'spec/lib/gitlab/ci/pipeline/chain/build_spec.rb' - - 'spec/lib/gitlab/ci/pipeline/chain/command_spec.rb' - - 'spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb' - - 'spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb' - - 'spec/lib/gitlab/ci/templates/Jobs/code_quality_gitlab_ci_yaml_spec.rb' - - 'spec/lib/gitlab/ci/templates/Jobs/deploy_gitlab_ci_yaml_spec.rb' - - 'spec/lib/gitlab/ci/templates/Jobs/test_gitlab_ci_yaml_spec.rb' - - 'spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb' - - 'spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb' - - 'spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb' - - 'spec/lib/gitlab/ci/templates/npm_spec.rb' - - 'spec/lib/gitlab/ci/templates/terraform_latest_gitlab_ci_yaml_spec.rb' - - 'spec/lib/gitlab/ci/trace_spec.rb' - - 'spec/lib/gitlab/current_settings_spec.rb' - - 'spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb' - - 'spec/lib/gitlab/database/multi_threaded_migration_spec.rb' - - 'spec/lib/gitlab/diff/highlight_cache_spec.rb' - - 'spec/lib/gitlab/diff/highlight_spec.rb' - - 'spec/lib/gitlab/diff/position_spec.rb' - - 'spec/lib/gitlab/email/handler/create_issue_handler_spec.rb' - - 'spec/lib/gitlab/email/handler/create_note_handler_spec.rb' - - 'spec/lib/gitlab/etag_caching/middleware_spec.rb' - - 'spec/lib/gitlab/exclusive_lease_helpers_spec.rb' - - 'spec/lib/gitlab/fogbugz_import/importer_spec.rb' - - 'spec/lib/gitlab/gfm/reference_rewriter_spec.rb' - - 'spec/lib/gitlab/git/repository_spec.rb' - - 'spec/lib/gitlab/gitaly_client/blob_service_spec.rb' - - 'spec/lib/gitlab/gitaly_client/commit_service_spec.rb' - - 'spec/lib/gitlab/gitaly_client/conflicts_service_spec.rb' - - 'spec/lib/gitlab/gitaly_client/health_check_service_spec.rb' - - 'spec/lib/gitlab/gitaly_client/operation_service_spec.rb' - - 'spec/lib/gitlab/gitaly_client/praefect_info_service_spec.rb' - - 'spec/lib/gitlab/gitaly_client/ref_service_spec.rb' - - 'spec/lib/gitlab/gitaly_client/remote_service_spec.rb' - - 'spec/lib/gitlab/gitaly_client/repository_service_spec.rb' - - 'spec/lib/gitlab/gitaly_client/wiki_service_spec.rb' - - 'spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb' - - 'spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb' - - 'spec/lib/gitlab/hashed_storage/migrator_spec.rb' - - 'spec/lib/gitlab/import/merge_request_helpers_spec.rb' - - 'spec/lib/gitlab/import_export/config_spec.rb' - - 'spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb' - - 'spec/lib/gitlab/import_export/importer_spec.rb' - - 'spec/lib/gitlab/import_export/lfs_restorer_spec.rb' - - 'spec/lib/gitlab/import_export/project/tree_restorer_spec.rb' - - 'spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb' - - 'spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb' - - 'spec/lib/gitlab/import_export/version_checker_spec.rb' - - 'spec/lib/gitlab/job_waiter_spec.rb' - - 'spec/lib/gitlab/legacy_github_import/importer_spec.rb' - - 'spec/lib/gitlab/legacy_github_import/project_creator_spec.rb' - - 'spec/lib/gitlab/metrics/exporter/base_exporter_spec.rb' - - 'spec/lib/gitlab/metrics/rack_middleware_spec.rb' - - 'spec/lib/gitlab/metrics/subscribers/active_record_spec.rb' - - 'spec/lib/gitlab/metrics_spec.rb' - - 'spec/lib/gitlab/patch/action_dispatch_journey_formatter_spec.rb' - - 'spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb' - - 'spec/lib/gitlab/sidekiq_middleware_spec.rb' - - 'spec/lib/gitlab/tracking/destinations/product_analytics_spec.rb' - - 'spec/lib/gitlab/tracking/destinations/snowplow_spec.rb' - - 'spec/lib/gitlab/tracking_spec.rb' - - 'spec/lib/gitlab/usage_data_spec.rb' - - 'spec/lib/gitlab/workhorse_spec.rb' - - 'spec/lib/gitlab/x509/commit_spec.rb' - - 'spec/lib/gitlab/x509/signature_spec.rb' - - 'spec/lib/google_api/cloud_platform/client_spec.rb' - - 'spec/lib/json_web_token/rsa_token_spec.rb' - - 'spec/lib/mattermost/command_spec.rb' - - 'spec/lib/mattermost/team_spec.rb' - - 'spec/lib/system_check/simple_executor_spec.rb' - - 'spec/models/ci/build_spec.rb' - - 'spec/models/ci/runner_spec.rb' - - 'spec/models/commit_spec.rb' - - 'spec/models/environment_spec.rb' - - 'spec/models/group_spec.rb' - - 'spec/models/hooks/service_hook_spec.rb' - - 'spec/models/hooks/system_hook_spec.rb' - - 'spec/models/hooks/web_hook_spec.rb' - - 'spec/models/integrations/jira_spec.rb' - - 'spec/models/integrations/mattermost_slash_commands_spec.rb' - - 'spec/models/issue_spec.rb' - - 'spec/models/key_spec.rb' - - 'spec/models/member_spec.rb' - - 'spec/models/merge_request_diff_spec.rb' - - 'spec/models/merge_request_spec.rb' - - 'spec/models/note_spec.rb' - - 'spec/models/project_import_state_spec.rb' - - 'spec/models/project_spec.rb' - - 'spec/models/repository_spec.rb' - - 'spec/models/user_spec.rb' - - 'spec/models/x509_certificate_spec.rb' - - 'spec/policies/ci/build_policy_spec.rb' - - 'spec/policies/ci/pipeline_policy_spec.rb' - - 'spec/presenters/gitlab/blame_presenter_spec.rb' - - 'spec/presenters/merge_request_presenter_spec.rb' - - 'spec/requests/api/ci/runner/jobs_artifacts_spec.rb' - - 'spec/requests/api/ci/runner/jobs_put_spec.rb' - - 'spec/requests/api/ci/runner/jobs_request_post_spec.rb' - - 'spec/requests/api/ci/runner/jobs_trace_spec.rb' - - 'spec/requests/api/ci/runner/runners_delete_spec.rb' - - 'spec/requests/api/ci/runner/runners_post_spec.rb' - - 'spec/requests/api/ci/runner/runners_verify_post_spec.rb' - - 'spec/requests/api/graphql/gitlab_schema_spec.rb' - - 'spec/requests/api/graphql/project/error_tracking/sentry_detailed_error_request_spec.rb' - - 'spec/requests/api/graphql_spec.rb' - - 'spec/requests/api/helpers_spec.rb' - - 'spec/requests/api/internal/base_spec.rb' - - 'spec/requests/api/maven_packages_spec.rb' - - 'spec/requests/api/merge_requests_spec.rb' - - 'spec/requests/api/pages/pages_spec.rb' - - 'spec/requests/api/project_export_spec.rb' - - 'spec/requests/api/project_import_spec.rb' - - 'spec/requests/api/projects_spec.rb' - - 'spec/requests/api/snippets_spec.rb' - - 'spec/requests/api/todos_spec.rb' - - 'spec/requests/git_http_spec.rb' - - 'spec/requests/import/gitlab_projects_controller_spec.rb' - - 'spec/routing/routing_spec.rb' - - 'spec/serializers/analytics_stage_serializer_spec.rb' - - 'spec/serializers/merge_request_poll_cached_widget_entity_spec.rb' - - 'spec/serializers/merge_request_poll_widget_entity_spec.rb' - - 'spec/services/application_settings/update_service_spec.rb' - - 'spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb' - - 'spec/services/boards/lists/update_service_spec.rb' - - 'spec/services/ci/create_pipeline_service_spec.rb' - - 'spec/services/ci/destroy_expired_job_artifacts_service_spec.rb' - - 'spec/services/ci/expire_pipeline_cache_service_spec.rb' - - 'spec/services/ci/list_config_variables_service_spec.rb' - - 'spec/services/ci/register_job_service_spec.rb' - - 'spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb' - - 'spec/services/ci/retry_build_service_spec.rb' - - 'spec/services/ci/retry_pipeline_service_spec.rb' - - 'spec/services/ci/stop_environments_service_spec.rb' - - 'spec/services/clusters/applications/create_service_spec.rb' - - 'spec/services/clusters/cleanup/project_namespace_service_spec.rb' - - 'spec/services/clusters/cleanup/service_account_service_spec.rb' - - 'spec/services/deployments/older_deployments_drop_service_spec.rb' - - 'spec/services/deployments/update_environment_service_spec.rb' - - 'spec/services/draft_notes/destroy_service_spec.rb' - - 'spec/services/events/render_service_spec.rb' - - 'spec/services/git/branch_push_service_spec.rb' - - 'spec/services/git/process_ref_changes_service_spec.rb' - - 'spec/services/groups/create_service_spec.rb' - - 'spec/services/groups/update_service_spec.rb' - - 'spec/services/integrations/test/project_service_spec.rb' - - 'spec/services/issuable/destroy_service_spec.rb' - - 'spec/services/issues/close_service_spec.rb' - - 'spec/services/issues/reopen_service_spec.rb' - - 'spec/services/members/destroy_service_spec.rb' - - 'spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb' - - 'spec/services/merge_requests/build_service_spec.rb' - - 'spec/services/merge_requests/merge_service_spec.rb' - - 'spec/services/merge_requests/mergeability_check_service_spec.rb' - - 'spec/services/merge_requests/refresh_service_spec.rb' - - 'spec/services/merge_requests/reload_diffs_service_spec.rb' - - 'spec/services/merge_requests/resolved_discussion_notification_service_spec.rb' - - 'spec/services/metrics/dashboard/custom_dashboard_service_spec.rb' - - 'spec/services/metrics/dashboard/transient_embed_service_spec.rb' - - 'spec/services/notes/create_service_spec.rb' - - 'spec/services/notes/render_service_spec.rb' - - 'spec/services/packages/conan/create_package_file_service_spec.rb' - - 'spec/services/packages/nuget/metadata_extraction_service_spec.rb' - - 'spec/services/packages/nuget/update_package_from_metadata_service_spec.rb' - - 'spec/services/pages/delete_services_spec.rb' - - 'spec/services/pod_logs/elasticsearch_service_spec.rb' - - 'spec/services/pod_logs/kubernetes_service_spec.rb' - - 'spec/services/post_receive_service_spec.rb' - - 'spec/services/projects/after_rename_service_spec.rb' - - 'spec/services/projects/container_repository/cleanup_tags_service_spec.rb' - - 'spec/services/projects/container_repository/delete_tags_service_spec.rb' - - 'spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb' - - 'spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb' - - 'spec/services/projects/destroy_service_spec.rb' - - 'spec/services/projects/fork_service_spec.rb' - - 'spec/services/projects/import_service_spec.rb' - - 'spec/services/projects/lfs_pointers/lfs_download_service_spec.rb' - - 'spec/services/projects/lfs_pointers/lfs_object_download_list_service_spec.rb' - - 'spec/services/projects/prometheus/alerts/notify_service_spec.rb' - - 'spec/services/projects/transfer_service_spec.rb' - - 'spec/services/projects/update_remote_mirror_service_spec.rb' - - 'spec/services/projects/update_service_spec.rb' - - 'spec/services/projects/update_statistics_service_spec.rb' - - 'spec/services/resource_events/change_labels_service_spec.rb' - - 'spec/services/search_service_spec.rb' - - 'spec/services/snippets/create_service_spec.rb' - - 'spec/services/test_hooks/project_service_spec.rb' - - 'spec/services/test_hooks/system_service_spec.rb' - - 'spec/services/todo_service_spec.rb' - - 'spec/services/users/destroy_service_spec.rb' - - 'spec/services/users/migrate_to_ghost_user_service_spec.rb' - - 'spec/spec_helper.rb' - - 'spec/support/capybara.rb' - - 'spec/support/helpers/api_helpers.rb' - - 'spec/support/helpers/graphql_helpers.rb' - - 'spec/support/helpers/ldap_helpers.rb' - - 'spec/support/helpers/login_helpers.rb' - - 'spec/support/helpers/metrics_dashboard_url_helpers.rb' - - 'spec/support/helpers/rake_helpers.rb' - - 'spec/support/helpers/stub_configuration.rb' - - 'spec/support/helpers/stub_gitlab_calls.rb' - - 'spec/support/helpers/test_env.rb' - - 'spec/support/import_export/common_util.rb' - - 'spec/support/services/migrate_to_ghost_user_service_shared_examples.rb' - - 'spec/support/shared_contexts/email_shared_context.rb' - - 'spec/support/shared_contexts/services/projects/container_repository/delete_tags_service_shared_context.rb' - - 'spec/support/shared_examples/controllers/githubish_import_controller_shared_examples.rb' - - 'spec/support/shared_examples/controllers/issuable_notes_filter_shared_examples.rb' - - 'spec/support/shared_examples/controllers/issuables_requiring_filter_shared_examples.rb' - - 'spec/support/shared_examples/controllers/repository_lfs_file_load_shared_examples.rb' - - 'spec/support/shared_examples/controllers/set_sort_order_from_user_preference_shared_examples.rb' - - 'spec/support/shared_examples/controllers/unique_visits_shared_examples.rb' - - 'spec/support/shared_examples/controllers/update_invalid_issuable_shared_examples.rb' - - 'spec/support/shared_examples/controllers/uploads_actions_shared_examples.rb' - - 'spec/support/shared_examples/features/archive_download_buttons_shared_examples.rb' - - 'spec/support/shared_examples/features/snippets_shared_examples.rb' - - 'spec/support/shared_examples/lib/gitlab/ci/ci_trace_shared_examples.rb' - - 'spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb' - - 'spec/support/shared_examples/models/diff_note_after_commit_shared_examples.rb' - - 'spec/support/shared_examples/models/integrations/base_slash_commands_shared_examples.rb' - - 'spec/support/shared_examples/models/mentionable_shared_examples.rb' - - 'spec/support/shared_examples/models/with_uploads_shared_examples.rb' - - 'spec/support/shared_examples/path_extraction_shared_examples.rb' - - 'spec/support/shared_examples/requests/api/discussions_shared_examples.rb' - - 'spec/support/shared_examples/requests/api/snippets_shared_examples.rb' - - 'spec/support/shared_examples/requests/rack_attack_shared_examples.rb' - - 'spec/support/shared_examples/requests/snippet_shared_examples.rb' - - 'spec/support/shared_examples/services/alert_management_shared_examples.rb' - - 'spec/support/shared_examples/services/boards/boards_list_service_shared_examples.rb' - - 'spec/support/shared_examples/services/boards/issues_list_service_shared_examples.rb' - - 'spec/support/shared_examples/services/boards/issues_move_service_shared_examples.rb' - - 'spec/support/shared_examples/services/issuable_shared_examples.rb' - - 'spec/support/shared_examples/uploaders/object_storage_shared_examples.rb' - - 'spec/support/shared_examples/workers/authorized_projects_worker_shared_example.rb' - - 'spec/support/shared_examples/workers/reactive_cacheable_shared_examples.rb' - - 'spec/support/snowplow.rb' - - 'spec/tasks/gitlab/cleanup_rake_spec.rb' - - 'spec/tasks/gitlab/container_registry_rake_spec.rb' - - 'spec/tasks/gitlab/db_rake_spec.rb' - - 'spec/tasks/gitlab/git_rake_spec.rb' - - 'spec/tasks/gitlab/praefect_rake_spec.rb' - - 'spec/tasks/gitlab/shell_rake_spec.rb' - - 'spec/tasks/gitlab/x509/update_rake_spec.rb' - - 'spec/uploaders/file_mover_spec.rb' - - 'spec/uploaders/records_uploads_spec.rb' - - 'spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb' - - 'spec/views/layouts/_head.html.haml_spec.rb' - - 'spec/views/projects/artifacts/_artifact.html.haml_spec.rb' - - 'spec/workers/archive_trace_worker_spec.rb' - - 'spec/workers/build_coverage_worker_spec.rb' - - 'spec/workers/build_hooks_worker_spec.rb' - - 'spec/workers/build_trace_sections_worker_spec.rb' - - 'spec/workers/ci/build_schedule_worker_spec.rb' - - 'spec/workers/ci/daily_build_group_report_results_worker_spec.rb' - - 'spec/workers/cluster_configure_istio_worker_spec.rb' - - 'spec/workers/cluster_provision_worker_spec.rb' - - 'spec/workers/clusters/cleanup/project_namespace_worker_spec.rb' - - 'spec/workers/clusters/cleanup/service_account_worker_spec.rb' - - 'spec/workers/concerns/project_import_options_spec.rb' - - 'spec/workers/create_commit_signature_worker_spec.rb' - - 'spec/workers/create_note_diff_file_worker_spec.rb' - - 'spec/workers/delete_diff_files_worker_spec.rb' - - 'spec/workers/email_receiver_worker_spec.rb' - - 'spec/workers/emails_on_push_worker_spec.rb' - - 'spec/workers/error_tracking_issue_link_worker_spec.rb' - - 'spec/workers/expire_pipeline_cache_worker_spec.rb' - - 'spec/workers/group_export_worker_spec.rb' - - 'spec/workers/group_import_worker_spec.rb' - - 'spec/workers/namespaceless_project_destroy_worker_spec.rb' - - 'spec/workers/namespaces/root_statistics_worker_spec.rb' - - 'spec/workers/new_note_worker_spec.rb' - - 'spec/workers/object_pool/create_worker_spec.rb' - - 'spec/workers/packages/nuget/extraction_worker_spec.rb' - - 'spec/workers/pages_remove_worker_spec.rb' - - 'spec/workers/pipeline_hooks_worker_spec.rb' - - 'spec/workers/pipeline_process_worker_spec.rb' - - 'spec/workers/pipeline_schedule_worker_spec.rb' - - 'spec/workers/project_cache_worker_spec.rb' - - 'spec/workers/stage_update_worker_spec.rb' - - 'spec/workers/stuck_ci_jobs_worker_spec.rb' - - 'spec/workers/wait_for_cluster_creation_worker_spec.rb' - - 'ee/spec/workers/security/auto_fix_worker_spec.rb' - -# WIP: https://gitlab.com/gitlab-org/gitlab/-/issues/321982 -Gitlab/NamespacedClass: - Exclude: - - 'app/channels/issues_channel.rb' - - 'app/controllers/abuse_reports_controller.rb' - - 'app/controllers/acme_challenges_controller.rb' - - 'app/controllers/application_controller.rb' - - 'app/controllers/autocomplete_controller.rb' - - 'app/controllers/chaos_controller.rb' - - 'app/controllers/confirmations_controller.rb' - - 'app/controllers/dashboard_controller.rb' - - 'app/controllers/graphql_controller.rb' - - 'app/controllers/groups_controller.rb' - - 'app/controllers/health_check_controller.rb' - - 'app/controllers/health_controller.rb' - - 'app/controllers/help_controller.rb' - - 'app/controllers/ide_controller.rb' - - 'app/controllers/invites_controller.rb' - - 'app/controllers/jwks_controller.rb' - - 'app/controllers/jwt_controller.rb' - - 'app/controllers/metrics_controller.rb' - - 'app/controllers/notification_settings_controller.rb' - - 'app/controllers/omniauth_callbacks_controller.rb' - - 'app/controllers/passwords_controller.rb' - - 'app/controllers/profiles_controller.rb' - - 'app/controllers/projects_controller.rb' - - 'app/controllers/registrations_controller.rb' - - 'app/controllers/root_controller.rb' - - 'app/controllers/runner_setup_controller.rb' - - 'app/controllers/search_controller.rb' - - 'app/controllers/sent_notifications_controller.rb' - - 'app/controllers/sessions_controller.rb' - - 'app/controllers/snippets_controller.rb' - - 'app/controllers/uploads_controller.rb' - - 'app/controllers/user_callouts_controller.rb' - - 'app/controllers/users_controller.rb' - - 'app/controllers/whats_new_controller.rb' - - 'app/finders/abuse_reports_finder.rb' - - 'app/finders/access_requests_finder.rb' - - 'app/finders/admin/projects_finder.rb' - - 'app/finders/applications_finder.rb' - - 'app/finders/award_emojis_finder.rb' - - 'app/finders/branches_finder.rb' - - 'app/finders/cluster_ancestors_finder.rb' - - 'app/finders/clusters_finder.rb' - - 'app/finders/container_repositories_finder.rb' - - 'app/finders/context_commits_finder.rb' - - 'app/finders/contributed_projects_finder.rb' - - 'app/finders/deployments_finder.rb' - - 'app/finders/events_finder.rb' - - 'app/finders/feature_flags_finder.rb' - - 'app/finders/feature_flags_user_lists_finder.rb' - - 'app/finders/fork_projects_finder.rb' - - 'app/finders/fork_targets_finder.rb' - - 'app/finders/freeze_periods_finder.rb' - - 'app/finders/git_refs_finder.rb' - - 'app/finders/group_descendants_finder.rb' - - 'app/finders/group_finder.rb' - - 'app/finders/group_members_finder.rb' - - 'app/finders/group_projects_finder.rb' - - 'app/finders/groups_finder.rb' - - 'app/finders/issuable_finder.rb' - - 'app/finders/issuable_finder/params.rb' - - 'app/finders/issues_finder.rb' - - 'app/finders/issues_finder/params.rb' - - 'app/finders/joined_groups_finder.rb' - - 'app/finders/keys_finder.rb' - - 'app/finders/labels_finder.rb' - - 'app/finders/lfs_pointers_finder.rb' - - 'app/finders/license_template_finder.rb' - - 'app/finders/members_finder.rb' - - 'app/finders/merge_request_target_project_finder.rb' - - 'app/finders/merge_requests_finder.rb' - - 'app/finders/merge_requests_finder/params.rb' - - 'app/finders/milestones_finder.rb' - - 'app/finders/notes_finder.rb' - - 'app/finders/pending_todos_finder.rb' - - 'app/finders/personal_access_tokens_finder.rb' - - 'app/finders/personal_projects_finder.rb' - - 'app/finders/projects_finder.rb' - - 'app/finders/prometheus_metrics_finder.rb' - - 'app/finders/protected_branches_finder.rb' - - 'app/finders/releases_finder.rb' - - 'app/finders/resource_milestone_event_finder.rb' - - 'app/finders/resource_state_event_finder.rb' - - 'app/finders/sentry_issue_finder.rb' - - 'app/finders/serverless_domain_finder.rb' - - 'app/finders/snippets_finder.rb' - - 'app/finders/starred_projects_finder.rb' - - 'app/finders/tags_finder.rb' - - 'app/finders/template_finder.rb' - - 'app/finders/todos_finder.rb' - - 'app/finders/union_finder.rb' - - 'app/finders/uploader_finder.rb' - - 'app/finders/user_finder.rb' - - 'app/finders/user_group_notification_settings_finder.rb' - - 'app/finders/user_groups_counter.rb' - - 'app/finders/user_recent_events_finder.rb' - - 'app/finders/users_finder.rb' - - 'app/finders/users_star_projects_finder.rb' - - 'app/finders/users_with_pending_todos_finder.rb' - - 'app/graphql/gitlab_schema.rb' - - 'app/mailers/abuse_report_mailer.rb' - - 'app/mailers/application_mailer.rb' - - 'app/mailers/devise_mailer.rb' - - 'app/mailers/email_rejection_mailer.rb' - - 'app/mailers/notify.rb' - - 'app/mailers/previews/devise_mailer_preview.rb' - - 'app/mailers/previews/email_rejection_mailer_preview.rb' - - 'app/mailers/previews/notify_preview.rb' - - 'app/mailers/previews/repository_check_mailer_preview.rb' - - 'app/mailers/repository_check_mailer.rb' - - 'app/models/ability.rb' - - 'app/models/abuse_report.rb' - - 'app/models/active_session.rb' - - 'app/models/appearance.rb' - - 'app/models/application_record.rb' - - 'app/models/application_setting.rb' - - 'app/models/application_setting/term.rb' - - 'app/models/approval.rb' - - 'app/models/audit_event.rb' - - 'app/models/authentication_event.rb' - - 'app/models/award_emoji.rb' - - 'app/models/badge.rb' - - 'app/models/badges/group_badge.rb' - - 'app/models/badges/project_badge.rb' - - 'app/models/blob.rb' - - 'app/models/board.rb' - - 'app/models/board_group_recent_visit.rb' - - 'app/models/board_project_recent_visit.rb' - - 'app/models/broadcast_message.rb' - - 'app/models/bulk_import.rb' - - 'app/models/chat_name.rb' - - 'app/models/chat_team.rb' - - 'app/models/ci_platform_metric.rb' - - 'app/models/commit.rb' - - 'app/models/commit_collection.rb' - - 'app/models/commit_range.rb' - - 'app/models/commit_status.rb' - - 'app/models/commit_user_mention.rb' - - 'app/models/commit_with_pipeline.rb' - - 'app/models/compare.rb' - - 'app/models/concerns/uniquify.rb' - - 'app/models/container_expiration_policy.rb' - - 'app/models/container_repository.rb' - - 'app/models/context_commits_diff.rb' - - 'app/models/custom_emoji.rb' - - 'app/models/data_list.rb' - - 'app/models/deploy_key.rb' - - 'app/models/deploy_keys_project.rb' - - 'app/models/deploy_token.rb' - - 'app/models/deployment.rb' - - 'app/models/deployment_cluster.rb' - - 'app/models/deployment_merge_request.rb' - - 'app/models/deployment_metrics.rb' - - 'app/models/description_version.rb' - - 'app/models/design_user_mention.rb' - - 'app/models/diff_discussion.rb' - - 'app/models/diff_note.rb' - - 'app/models/diff_note_position.rb' - - 'app/models/directly_addressed_user.rb' - - 'app/models/discussion.rb' - - 'app/models/discussion_note.rb' - - 'app/models/draft_note.rb' - - 'app/models/email.rb' - - 'app/models/environment.rb' - - 'app/models/environment_status.rb' - - 'app/models/epic.rb' - - 'app/models/event.rb' - - 'app/models/event_collection.rb' - - 'app/models/experiment.rb' - - 'app/models/experiment_subject.rb' - - 'app/models/experiment_user.rb' - - 'app/models/exported_protected_branch.rb' - - 'app/models/external_issue.rb' - - 'app/models/external_pull_request.rb' - - 'app/models/fork_network.rb' - - 'app/models/fork_network_member.rb' - - 'app/models/generic_commit_status.rb' - - 'app/models/gpg_key.rb' - - 'app/models/gpg_key_subkey.rb' - - 'app/models/gpg_signature.rb' - - 'app/models/grafana_integration.rb' - - 'app/models/group.rb' - - 'app/models/group_custom_attribute.rb' - - 'app/models/group_deploy_key.rb' - - 'app/models/group_deploy_keys_group.rb' - - 'app/models/group_deploy_token.rb' - - 'app/models/group_group_link.rb' - - 'app/models/group_import_state.rb' - - 'app/models/group_label.rb' - - 'app/models/guest.rb' - - 'app/models/hooks/active_hook_filter.rb' - - 'app/models/hooks/project_hook.rb' - - 'app/models/hooks/service_hook.rb' - - 'app/models/hooks/system_hook.rb' - - 'app/models/hooks/web_hook.rb' - - 'app/models/hooks/web_hook_log.rb' - - 'app/models/identity.rb' - - 'app/models/identity/uniqueness_scopes.rb' - - 'app/models/import_export_upload.rb' - - 'app/models/import_failure.rb' - - 'app/models/individual_note_discussion.rb' - - 'app/models/instance_configuration.rb' - - 'app/models/instance_metadata.rb' - - 'app/models/integration.rb' - - 'app/models/internal_id.rb' - - 'app/models/issuable_severity.rb' - - 'app/models/issue.rb' - - 'app/models/issue/metrics.rb' - - 'app/models/issue_assignee.rb' - - 'app/models/issue_collection.rb' - - 'app/models/issue_email_participant.rb' - - 'app/models/issue_link.rb' - - 'app/models/issue_user_mention.rb' - - 'app/models/iteration.rb' - - 'app/models/jira_connect_installation.rb' - - 'app/models/jira_connect_subscription.rb' - - 'app/models/jira_import_state.rb' - - 'app/models/key.rb' - - 'app/models/label.rb' - - 'app/models/label_link.rb' - - 'app/models/label_note.rb' - - 'app/models/label_priority.rb' - - 'app/models/legacy_diff_discussion.rb' - - 'app/models/legacy_diff_note.rb' - - 'app/models/lfs_download_object.rb' - - 'app/models/lfs_file_lock.rb' - - 'app/models/lfs_object.rb' - - 'app/models/lfs_objects_project.rb' - - 'app/models/license_template.rb' - - 'app/models/list.rb' - - 'app/models/list_user_preference.rb' - - 'app/models/member.rb' - - 'app/models/members/group_member.rb' - - 'app/models/members/last_group_owner_assigner.rb' - - 'app/models/members/project_member.rb' - - 'app/models/members/member_task.rb' - - 'app/models/members_preloader.rb' - - 'app/models/merge_request.rb' - - 'app/models/merge_request_assignee.rb' - - 'app/models/merge_request_context_commit.rb' - - 'app/models/merge_request_context_commit_diff_file.rb' - - 'app/models/merge_request_diff.rb' - - 'app/models/merge_request_diff_commit.rb' - - 'app/models/merge_request_diff_file.rb' - - 'app/models/merge_request_reviewer.rb' - - 'app/models/merge_request_user_mention.rb' - - 'app/models/merge_requests_closing_issues.rb' - - 'app/models/milestone.rb' - - 'app/models/milestone_note.rb' - - 'app/models/milestone_release.rb' - - 'app/models/namespace.rb' - - 'app/models/namespace/traversal_hierarchy.rb' - - 'app/models/namespace_onboarding_action.rb' - - 'app/models/namespace_setting.rb' - - 'app/models/note.rb' - - 'app/models/note_diff_file.rb' - - 'app/models/notification_reason.rb' - - 'app/models/notification_recipient.rb' - - 'app/models/notification_setting.rb' - - 'app/models/oauth_access_grant.rb' - - 'app/models/oauth_access_token.rb' - - 'app/models/out_of_context_discussion.rb' - - 'app/models/onboarding_progress.rb' - - 'app/models/pages_deployment.rb' - - 'app/models/pages_domain.rb' - - 'app/models/pages_domain_acme_order.rb' - - 'app/models/personal_access_token.rb' - - 'app/models/personal_snippet.rb' - - 'app/models/plan.rb' - - 'app/models/plan_limits.rb' - - 'app/models/pool_repository.rb' - - 'app/models/product_analytics_event.rb' - - 'app/models/programming_language.rb' - - 'app/models/project.rb' - - 'app/models/project_authorization.rb' - - 'app/models/project_auto_devops.rb' - - 'app/models/project_ci_cd_setting.rb' - - 'app/models/project_custom_attribute.rb' - - 'app/models/project_daily_statistic.rb' - - 'app/models/project_deploy_token.rb' - - 'app/models/project_export_job.rb' - - 'app/models/project_feature.rb' - - 'app/models/project_feature_usage.rb' - - 'app/models/project_group_link.rb' - - 'app/models/project_import_data.rb' - - 'app/models/project_import_state.rb' - - 'app/models/project_label.rb' - - 'app/models/project_metrics_setting.rb' - - 'app/models/project_pages_metadatum.rb' - - 'app/models/project_repository.rb' - - 'app/models/project_repository_storage_move.rb' - - 'app/models/project_setting.rb' - - 'app/models/project_snippet.rb' - - 'app/models/project_statistics.rb' - - 'app/models/project_team.rb' - - 'app/models/project_tracing_setting.rb' - - 'app/models/project_wiki.rb' - - 'app/models/prometheus_alert.rb' - - 'app/models/prometheus_alert_event.rb' - - 'app/models/prometheus_metric.rb' - - 'app/models/protectable_dropdown.rb' - - 'app/models/protected_branch.rb' - - 'app/models/protected_tag.rb' - - 'app/models/push_event.rb' - - 'app/models/push_event_payload.rb' - - 'app/models/raw_usage_data.rb' - - 'app/models/readme_blob.rb' - - 'app/models/redirect_route.rb' - - 'app/models/ref_matcher.rb' - - 'app/models/release.rb' - - 'app/models/release_highlight.rb' - - 'app/models/remote_mirror.rb' - - 'app/models/repository.rb' - - 'app/models/repository_language.rb' - - 'app/models/resource_event.rb' - - 'app/models/resource_label_event.rb' - - 'app/models/resource_milestone_event.rb' - - 'app/models/resource_state_event.rb' - - 'app/models/resource_timebox_event.rb' - - 'app/models/review.rb' - - 'app/models/route.rb' - - 'app/models/self_managed_prometheus_alert_event.rb' - - 'app/models/sent_notification.rb' - - 'app/models/sentry_issue.rb' - - 'app/models/service_desk_setting.rb' - - 'app/models/service_list.rb' - - 'app/models/shard.rb' - - 'app/models/snippet.rb' - - 'app/models/snippet_blob.rb' - - 'app/models/snippet_input_action.rb' - - 'app/models/snippet_input_action_collection.rb' - - 'app/models/snippet_repository.rb' - - 'app/models/snippet_repository_storage_move.rb' - - 'app/models/snippet_statistics.rb' - - 'app/models/snippet_user_mention.rb' - - 'app/models/spam_log.rb' - - 'app/models/ssh_host_key.rb' - - 'app/models/state_note.rb' - - 'app/models/subscription.rb' - - 'app/models/suggestion.rb' - - 'app/models/synthetic_note.rb' - - 'app/models/system_note_metadata.rb' - - 'app/models/term_agreement.rb' - - 'app/models/timelog.rb' - - 'app/models/todo.rb' - - 'app/models/tree.rb' - - 'app/models/trending_project.rb' - - 'app/models/u2f_registration.rb' - - 'app/models/upload.rb' - - 'app/models/user.rb' - - 'app/models/user_agent_detail.rb' - - 'app/models/user_callout.rb' - - 'app/models/user_canonical_email.rb' - - 'app/models/user_custom_attribute.rb' - - 'app/models/user_detail.rb' - - 'app/models/user_highest_role.rb' - - 'app/models/user_interacted_project.rb' - - 'app/models/user_mention.rb' - - 'app/models/user_preference.rb' - - 'app/models/user_status.rb' - - 'app/models/user_synced_attributes_metadata.rb' - - 'app/models/users_star_project.rb' - - 'app/models/users_statistics.rb' - - 'app/models/vulnerability.rb' - - 'app/models/web_ide_terminal.rb' - - 'app/models/webauthn_registration.rb' - - 'app/models/wiki.rb' - - 'app/models/wiki_directory.rb' - - 'app/models/wiki_page.rb' - - 'app/models/wiki_page/meta.rb' - - 'app/models/wiki_page/slug.rb' - - 'app/models/x509_certificate.rb' - - 'app/models/x509_commit_signature.rb' - - 'app/models/x509_issuer.rb' - - 'app/models/zoom_meeting.rb' - - 'app/policies/application_setting/term_policy.rb' - - 'app/policies/award_emoji_policy.rb' - - 'app/policies/base_policy.rb' - - 'app/policies/blob_policy.rb' - - 'app/policies/board_policy.rb' - - 'app/policies/commit_policy.rb' - - 'app/policies/commit_status_policy.rb' - - 'app/policies/container_expiration_policy_policy.rb' - - 'app/policies/container_repository_policy.rb' - - 'app/policies/custom_emoji_policy.rb' - - 'app/policies/deploy_key_policy.rb' - - 'app/policies/deploy_keys_project_policy.rb' - - 'app/policies/deploy_token_policy.rb' - - 'app/policies/deployment_policy.rb' - - 'app/policies/draft_note_policy.rb' - - 'app/policies/environment_policy.rb' - - 'app/policies/external_issue_policy.rb' - - 'app/policies/global_policy.rb' - - 'app/policies/grafana_integration_policy.rb' - - 'app/policies/group_deploy_key_policy.rb' - - 'app/policies/group_deploy_keys_group_policy.rb' - - 'app/policies/group_label_policy.rb' - - 'app/policies/group_member_policy.rb' - - 'app/policies/group_policy.rb' - - 'app/policies/identity_provider_policy.rb' - - 'app/policies/instance_metadata_policy.rb' - - 'app/policies/integration_policy.rb' - - 'app/policies/issuable_policy.rb' - - 'app/policies/issue_policy.rb' - - 'app/policies/merge_request_policy.rb' - - 'app/policies/milestone_policy.rb' - - 'app/policies/namespace_policy.rb' - - 'app/policies/nil_policy.rb' - - 'app/policies/note_policy.rb' - - 'app/policies/personal_access_token_policy.rb' - - 'app/policies/personal_snippet_policy.rb' - - 'app/policies/project_ci_cd_setting_policy.rb' - - 'app/policies/project_label_policy.rb' - - 'app/policies/project_member_policy.rb' - - 'app/policies/project_policy.rb' - - 'app/policies/project_snippet_policy.rb' - - 'app/policies/project_statistics_policy.rb' - - 'app/policies/prometheus_alert_policy.rb' - - 'app/policies/protected_branch_policy.rb' - - 'app/policies/release_policy.rb' - - 'app/policies/repository_policy.rb' - - 'app/policies/resource_label_event_policy.rb' - - 'app/policies/suggestion_policy.rb' - - 'app/policies/timebox_policy.rb' - - 'app/policies/timelog_policy.rb' - - 'app/policies/todo_policy.rb' - - 'app/policies/user_policy.rb' - - 'app/policies/wiki_page_policy.rb' - - 'app/policies/wiki_policy.rb' - - 'app/presenters/award_emoji_presenter.rb' - - 'app/presenters/blob_presenter.rb' - - 'app/presenters/board_presenter.rb' - - 'app/presenters/clusterable_presenter.rb' - - 'app/presenters/commit_presenter.rb' - - 'app/presenters/commit_status_presenter.rb' - - 'app/presenters/environment_presenter.rb' - - 'app/presenters/event_presenter.rb' - - 'app/presenters/generic_commit_status_presenter.rb' - - 'app/presenters/group_clusterable_presenter.rb' - - 'app/presenters/group_member_presenter.rb' - - 'app/presenters/instance_clusterable_presenter.rb' - - 'app/presenters/invitation_presenter.rb' - - 'app/presenters/issue_presenter.rb' - - 'app/presenters/label_presenter.rb' - - 'app/presenters/member_presenter.rb' - - 'app/presenters/members_presenter.rb' - - 'app/presenters/merge_request_presenter.rb' - - 'app/presenters/milestone_presenter.rb' - - 'app/presenters/pages_domain_presenter.rb' - - 'app/presenters/project_clusterable_presenter.rb' - - 'app/presenters/project_hook_presenter.rb' - - 'app/presenters/project_member_presenter.rb' - - 'app/presenters/project_presenter.rb' - - 'app/presenters/prometheus_alert_presenter.rb' - - 'app/presenters/release_presenter.rb' - - 'app/presenters/search_service_presenter.rb' - - 'app/presenters/sentry_error_presenter.rb' - - 'app/presenters/service_hook_presenter.rb' - - 'app/presenters/snippet_blob_presenter.rb' - - 'app/presenters/snippet_presenter.rb' - - 'app/presenters/todo_presenter.rb' - - 'app/presenters/tree_entry_presenter.rb' - - 'app/presenters/user_presenter.rb' - - 'app/presenters/web_hook_log_presenter.rb' - - 'app/serializers/accessibility_error_entity.rb' - - 'app/serializers/accessibility_reports_comparer_entity.rb' - - 'app/serializers/accessibility_reports_comparer_serializer.rb' - - 'app/serializers/analytics_build_entity.rb' - - 'app/serializers/analytics_build_serializer.rb' - - 'app/serializers/analytics_commit_entity.rb' - - 'app/serializers/analytics_commit_serializer.rb' - - 'app/serializers/analytics_generic_serializer.rb' - - 'app/serializers/analytics_issue_entity.rb' - - 'app/serializers/analytics_issue_serializer.rb' - - 'app/serializers/analytics_merge_request_entity.rb' - - 'app/serializers/analytics_merge_request_serializer.rb' - - 'app/serializers/analytics_stage_entity.rb' - - 'app/serializers/analytics_stage_serializer.rb' - - 'app/serializers/analytics_summary_entity.rb' - - 'app/serializers/analytics_summary_serializer.rb' - - 'app/serializers/award_emoji_entity.rb' - - 'app/serializers/base_discussion_entity.rb' - - 'app/serializers/base_serializer.rb' - - 'app/serializers/blob_entity.rb' - - 'app/serializers/board_serializer.rb' - - 'app/serializers/board_simple_entity.rb' - - 'app/serializers/build_action_entity.rb' - - 'app/serializers/build_artifact_entity.rb' - - 'app/serializers/build_coverage_entity.rb' - - 'app/serializers/build_details_entity.rb' - - 'app/serializers/build_metadata_entity.rb' - - 'app/serializers/build_serializer.rb' - - 'app/serializers/build_trace_entity.rb' - - 'app/serializers/build_trace_serializer.rb' - - 'app/serializers/cluster_application_entity.rb' - - 'app/serializers/cluster_entity.rb' - - 'app/serializers/cluster_error_entity.rb' - - 'app/serializers/cluster_serializer.rb' - - 'app/serializers/codequality_degradation_entity.rb' - - 'app/serializers/codequality_reports_comparer_entity.rb' - - 'app/serializers/codequality_reports_comparer_serializer.rb' - - 'app/serializers/cohort_activity_month_entity.rb' - - 'app/serializers/cohort_entity.rb' - - 'app/serializers/cohorts_entity.rb' - - 'app/serializers/cohorts_serializer.rb' - - 'app/serializers/commit_entity.rb' - - 'app/serializers/container_repositories_serializer.rb' - - 'app/serializers/container_repository_entity.rb' - - 'app/serializers/container_tag_entity.rb' - - 'app/serializers/container_tags_serializer.rb' - - 'app/serializers/context_commits_diff_entity.rb' - - 'app/serializers/current_board_entity.rb' - - 'app/serializers/current_board_serializer.rb' - - 'app/serializers/current_user_entity.rb' - - 'app/serializers/deploy_key_entity.rb' - - 'app/serializers/deploy_key_serializer.rb' - - 'app/serializers/deploy_keys_project_entity.rb' - - 'app/serializers/deployment_cluster_entity.rb' - - 'app/serializers/deployment_entity.rb' - - 'app/serializers/deployment_serializer.rb' - - 'app/serializers/detailed_status_entity.rb' - - 'app/serializers/diff_file_base_entity.rb' - - 'app/serializers/diff_file_entity.rb' - - 'app/serializers/diff_file_metadata_entity.rb' - - 'app/serializers/diff_line_entity.rb' - - 'app/serializers/diff_line_parallel_entity.rb' - - 'app/serializers/diff_line_serializer.rb' - - 'app/serializers/diff_viewer_entity.rb' - - 'app/serializers/diffs_entity.rb' - - 'app/serializers/diffs_metadata_entity.rb' - - 'app/serializers/diffs_metadata_serializer.rb' - - 'app/serializers/diffs_serializer.rb' - - 'app/serializers/discussion_diff_file_entity.rb' - - 'app/serializers/discussion_entity.rb' - - 'app/serializers/discussion_serializer.rb' - - 'app/serializers/draft_note_entity.rb' - - 'app/serializers/draft_note_serializer.rb' - - 'app/serializers/entity_request.rb' - - 'app/serializers/environment_entity.rb' - - 'app/serializers/environment_serializer.rb' - - 'app/serializers/environment_status_entity.rb' - - 'app/serializers/environment_status_serializer.rb' - - 'app/serializers/feature_flag_entity.rb' - - 'app/serializers/feature_flag_scope_entity.rb' - - 'app/serializers/feature_flag_serializer.rb' - - 'app/serializers/feature_flag_summary_entity.rb' - - 'app/serializers/feature_flag_summary_serializer.rb' - - 'app/serializers/feature_flags_client_entity.rb' - - 'app/serializers/feature_flags_client_serializer.rb' - - 'app/serializers/fork_namespace_entity.rb' - - 'app/serializers/fork_namespace_serializer.rb' - - 'app/serializers/group_analytics_stage_entity.rb' - - 'app/serializers/group_analytics_stage_serializer.rb' - - 'app/serializers/group_basic_entity.rb' - - 'app/serializers/group_child_entity.rb' - - 'app/serializers/group_child_serializer.rb' - - 'app/serializers/group_deploy_key_entity.rb' - - 'app/serializers/group_deploy_key_serializer.rb' - - 'app/serializers/group_deploy_keys_group_entity.rb' - - 'app/serializers/group_entity.rb' - - 'app/serializers/group_group_link_entity.rb' - - 'app/serializers/group_group_link_serializer.rb' - - 'app/serializers/group_issuable_autocomplete_entity.rb' - - 'app/serializers/group_issuable_autocomplete_serializer.rb' - - 'app/serializers/group_serializer.rb' - - 'app/serializers/issuable_entity.rb' - - 'app/serializers/issuable_sidebar_basic_entity.rb' - - 'app/serializers/issuable_sidebar_extras_entity.rb' - - 'app/serializers/issuable_sidebar_todo_entity.rb' - - 'app/serializers/issue_board_entity.rb' - - 'app/serializers/issue_entity.rb' - - 'app/serializers/issue_serializer.rb' - - 'app/serializers/issue_sidebar_basic_entity.rb' - - 'app/serializers/issue_sidebar_extras_entity.rb' - - 'app/serializers/job_artifact_report_entity.rb' - - 'app/serializers/job_entity.rb' - - 'app/serializers/job_group_entity.rb' - - 'app/serializers/label_entity.rb' - - 'app/serializers/label_serializer.rb' - - 'app/serializers/lfs_file_lock_entity.rb' - - 'app/serializers/lfs_file_lock_serializer.rb' - - 'app/serializers/linked_issue_entity.rb' - - 'app/serializers/linked_project_issue_entity.rb' - - 'app/serializers/linked_project_issue_serializer.rb' - - 'app/serializers/member_entity.rb' - - 'app/serializers/member_serializer.rb' - - 'app/serializers/member_user_entity.rb' - - 'app/serializers/merge_request_basic_entity.rb' - - 'app/serializers/merge_request_create_entity.rb' - - 'app/serializers/merge_request_create_serializer.rb' - - 'app/serializers/merge_request_current_user_entity.rb' - - 'app/serializers/merge_request_diff_entity.rb' - - 'app/serializers/merge_request_for_pipeline_entity.rb' - - 'app/serializers/merge_request_metrics_entity.rb' - - 'app/serializers/merge_request_noteable_entity.rb' - - 'app/serializers/merge_request_poll_cached_widget_entity.rb' - - 'app/serializers/merge_request_poll_widget_entity.rb' - - 'app/serializers/merge_request_serializer.rb' - - 'app/serializers/merge_request_sidebar_basic_entity.rb' - - 'app/serializers/merge_request_sidebar_extras_entity.rb' - - 'app/serializers/merge_request_user_entity.rb' - - 'app/serializers/merge_request_widget_commit_entity.rb' - - 'app/serializers/merge_request_widget_entity.rb' - - 'app/serializers/move_to_project_entity.rb' - - 'app/serializers/move_to_project_serializer.rb' - - 'app/serializers/namespace_basic_entity.rb' - - 'app/serializers/namespace_serializer.rb' - - 'app/serializers/note_attachment_entity.rb' - - 'app/serializers/note_entity.rb' - - 'app/serializers/note_user_entity.rb' - - 'app/serializers/paginated_diff_entity.rb' - - 'app/serializers/paginated_diff_serializer.rb' - - 'app/serializers/pipeline_details_entity.rb' - - 'app/serializers/pipeline_entity.rb' - - 'app/serializers/pipeline_serializer.rb' - - 'app/serializers/project_entity.rb' - - 'app/serializers/project_import_entity.rb' - - 'app/serializers/project_mirror_entity.rb' - - 'app/serializers/project_mirror_serializer.rb' - - 'app/serializers/project_note_entity.rb' - - 'app/serializers/project_note_serializer.rb' - - 'app/serializers/project_serializer.rb' - - 'app/serializers/prometheus_alert_entity.rb' - - 'app/serializers/prometheus_alert_serializer.rb' - - 'app/serializers/prometheus_metric_entity.rb' - - 'app/serializers/prometheus_metric_serializer.rb' - - 'app/serializers/release_entity.rb' - - 'app/serializers/release_serializer.rb' - - 'app/serializers/remote_mirror_entity.rb' - - 'app/serializers/review_app_setup_entity.rb' - - 'app/serializers/review_app_setup_serializer.rb' - - 'app/serializers/rollout_status_entity.rb' - - 'app/serializers/route_entity.rb' - - 'app/serializers/route_serializer.rb' - - 'app/serializers/runner_entity.rb' - - 'app/serializers/service_event_entity.rb' - - 'app/serializers/service_event_serializer.rb' - - 'app/serializers/service_field_entity.rb' - - 'app/serializers/service_field_serializer.rb' - - 'app/serializers/stage_entity.rb' - - 'app/serializers/stage_serializer.rb' - - 'app/serializers/suggestion_entity.rb' - - 'app/serializers/suggestion_serializer.rb' - - 'app/serializers/test_case_entity.rb' - - 'app/serializers/test_report_entity.rb' - - 'app/serializers/test_report_serializer.rb' - - 'app/serializers/test_report_summary_entity.rb' - - 'app/serializers/test_report_summary_serializer.rb' - - 'app/serializers/test_reports_comparer_entity.rb' - - 'app/serializers/test_reports_comparer_serializer.rb' - - 'app/serializers/test_suite_comparer_entity.rb' - - 'app/serializers/test_suite_entity.rb' - - 'app/serializers/test_suite_serializer.rb' - - 'app/serializers/test_suite_summary_entity.rb' - - 'app/serializers/trigger_variable_entity.rb' - - 'app/serializers/triggered_pipeline_entity.rb' - - 'app/serializers/user_entity.rb' - - 'app/serializers/user_preference_entity.rb' - - 'app/serializers/user_serializer.rb' - - 'app/serializers/web_ide_terminal_entity.rb' - - 'app/serializers/web_ide_terminal_serializer.rb' - - 'app/services/access_token_validation_service.rb' - - 'app/services/audit_event_service.rb' - - 'app/services/auto_merge_service.rb' - - 'app/services/base_container_service.rb' - - 'app/services/base_count_service.rb' - - 'app/services/base_project_service.rb' - - 'app/services/base_renderer.rb' - - 'app/services/base_service.rb' - - 'app/services/bulk_create_integration_service.rb' - - 'app/services/bulk_import_service.rb' - - 'app/services/bulk_push_event_payload_service.rb' - - 'app/services/bulk_update_integration_service.rb' - - 'app/services/cohorts_service.rb' - - 'app/services/compare_service.rb' - - 'app/services/container_expiration_policy_service.rb' - - 'app/services/event_create_service.rb' - - 'app/services/gravatar_service.rb' - - 'app/services/import_export_clean_up_service.rb' - - 'app/services/issuable_base_service.rb' - - 'app/services/issue_rebalancing_service.rb' - - 'app/services/markdown_content_rewriter_service.rb' - - 'app/services/merge_request_metrics_service.rb' - - 'app/services/metrics_service.rb' - - 'app/services/note_summary.rb' - - 'app/services/notification_service.rb' - - 'app/services/onboarding_progress_service.rb' - - 'app/services/post_receive_service.rb' - - 'app/services/preview_markdown_service.rb' - - 'app/services/push_event_payload_service.rb' - - 'app/services/repository_archive_clean_up_service.rb' - - 'app/services/reset_project_cache_service.rb' - - 'app/services/search_service.rb' - - 'app/services/service_response.rb' - - 'app/services/service_ping/submit_service.rb' - - 'app/services/system_hooks_service.rb' - - 'app/services/task_list_toggle_service.rb' - - 'app/services/todo_service.rb' - - 'app/services/update_container_registry_info_service.rb' - - 'app/services/upload_service.rb' - - 'app/services/user_agent_detail_service.rb' - - 'app/services/user_project_access_changed_service.rb' - - 'app/services/verify_pages_domain_service.rb' - - 'app/services/web_hook_service.rb' - - 'app/services/x509_certificate_revoke_service.rb' - - 'app/uploaders/attachment_uploader.rb' - - 'app/uploaders/avatar_uploader.rb' - - 'app/uploaders/deleted_object_uploader.rb' - - 'app/uploaders/dependency_proxy/file_uploader.rb' - - 'app/uploaders/external_diff_uploader.rb' - - 'app/uploaders/favicon_uploader.rb' - - 'app/uploaders/file_mover.rb' - - 'app/uploaders/file_uploader.rb' - - 'app/uploaders/gitlab_uploader.rb' - - 'app/uploaders/import_export_uploader.rb' - - 'app/uploaders/job_artifact_uploader.rb' - - 'app/uploaders/lfs_object_uploader.rb' - - 'app/uploaders/namespace_file_uploader.rb' - - 'app/uploaders/personal_file_uploader.rb' - - 'app/validators/abstract_path_validator.rb' - - 'app/validators/addressable_url_validator.rb' - - 'app/validators/any_field_validator.rb' - - 'app/validators/array_members_validator.rb' - - 'app/validators/branch_filter_validator.rb' - - 'app/validators/certificate_fingerprint_validator.rb' - - 'app/validators/certificate_key_validator.rb' - - 'app/validators/certificate_validator.rb' - - 'app/validators/cluster_name_validator.rb' - - 'app/validators/color_validator.rb' - - 'app/validators/cron_freeze_period_timezone_validator.rb' - - 'app/validators/cron_timezone_validator.rb' - - 'app/validators/cron_validator.rb' - - 'app/validators/devise_email_validator.rb' - - 'app/validators/duration_validator.rb' - - 'app/validators/feature_flag_strategies_validator.rb' - - 'app/validators/feature_flag_user_xids_validator.rb' - - 'app/validators/future_date_validator.rb' - - 'app/validators/html_safety_validator.rb' - - 'app/validators/ip_address_validator.rb' - - 'app/validators/js_regex_validator.rb' - - 'app/validators/json_schema_validator.rb' - - 'app/validators/key_restriction_validator.rb' - - 'app/validators/line_code_validator.rb' - - 'app/validators/named_ecdsa_key_validator.rb' - - 'app/validators/namespace_path_validator.rb' - - 'app/validators/project_path_validator.rb' - - 'app/validators/public_url_validator.rb' - - 'app/validators/qualified_domain_array_validator.rb' - - 'app/validators/rsa_key_validator.rb' - - 'app/validators/same_project_association_validator.rb' - - 'app/validators/sha_validator.rb' - - 'app/validators/system_hook_url_validator.rb' - - 'app/validators/top_level_group_validator.rb' - - 'app/validators/untrusted_regexp_validator.rb' - - 'app/validators/nested_attributes_duplicates_validator.rb' - - 'app/validators/x509_certificate_credentials_validator.rb' - - 'app/workers/admin_email_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_projects_worker.rb' - - 'app/workers/auto_merge_process_worker.rb' - - 'app/workers/background_migration_worker.rb' - - 'app/workers/build_coverage_worker.rb' - - 'app/workers/build_finished_worker.rb' - - 'app/workers/build_hooks_worker.rb' - - 'app/workers/build_queue_worker.rb' - - 'app/workers/build_success_worker.rb' - - 'app/workers/build_trace_sections_worker.rb' - - 'app/workers/bulk_import_worker.rb' - - 'app/workers/chat_notification_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/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/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/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/error_tracking_issue_link_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/expire_pipeline_cache_worker.rb' - - 'app/workers/export_csv_worker.rb' - - 'app/workers/external_service_reactive_caching_worker.rb' - - 'app/workers/file_hook_worker.rb' - - 'app/workers/flush_counter_increments_worker.rb' - - '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' - - 'app/workers/group_import_worker.rb' - - 'app/workers/import_export_project_cleanup_worker.rb' - - 'app/workers/import_issues_csv_worker.rb' - - 'app/workers/invalid_gpg_signature_update_worker.rb' - - 'app/workers/irker_worker.rb' - - 'app/workers/issuable_export_csv_worker.rb' - - 'app/workers/issue_due_scheduler_worker.rb' - - 'app/workers/issue_placement_worker.rb' - - 'app/workers/issue_rebalancing_worker.rb' - - 'app/workers/member_invitation_reminder_emails_worker.rb' - - 'app/workers/merge_request_cleanup_refs_worker.rb' - - 'app/workers/merge_request_mergeability_check_worker.rb' - - 'app/workers/merge_worker.rb' - - 'app/workers/migrate_external_diffs_worker.rb' - - 'app/workers/namespaceless_project_destroy_worker.rb' - - 'app/workers/new_issue_worker.rb' - - 'app/workers/new_merge_request_worker.rb' - - 'app/workers/new_note_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_transfer_worker.rb' - - 'app/workers/pages_update_configuration_worker.rb' - - 'app/workers/pages_worker.rb' - - 'app/workers/partition_creation_worker.rb' - - 'app/workers/pipeline_hooks_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/pipeline_update_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_schedule_bulk_repository_shard_moves_worker.rb' - - 'app/workers/project_service_worker.rb' - - 'app/workers/project_update_repository_storage_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/prune_web_hook_logs_worker.rb' - - 'app/workers/purge_dependency_proxy_cache_worker.rb' - - 'app/workers/reactive_caching_worker.rb' - - 'app/workers/rebase_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_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/snippet_schedule_bulk_repository_shard_moves_worker.rb' - - 'app/workers/snippet_update_repository_storage_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/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/wait_for_cluster_creation_worker.rb' - - 'app/workers/web_hook_worker.rb' - - 'app/workers/x509_certificate_revoke_worker.rb' - - 'app/workers/x509_issuer_crl_check_worker.rb' - - 'ee/app/controllers/countries_controller.rb' - - 'ee/app/controllers/country_states_controller.rb' - - 'ee/app/controllers/omniauth_kerberos_spnego_controller.rb' - - 'ee/app/controllers/operations_controller.rb' - - 'ee/app/controllers/sitemap_controller.rb' - - 'ee/app/controllers/smartcard_controller.rb' - - 'ee/app/controllers/subscriptions_controller.rb' - - 'ee/app/controllers/survey_responses_controller.rb' - - 'ee/app/controllers/trial_registrations_controller.rb' - - 'ee/app/controllers/trials_controller.rb' - - 'ee/app/controllers/unsubscribes_controller.rb' - - 'ee/app/controllers/usernames_controller.rb' - - 'ee/app/finders/audit_log_finder.rb' - - 'ee/app/finders/billed_users_finder.rb' - - 'ee/app/finders/custom_project_templates_finder.rb' - - 'ee/app/finders/dast_scanner_profiles_finder.rb' - - 'ee/app/finders/dast_site_profiles_finder.rb' - - 'ee/app/finders/dast_site_validations_finder.rb' - - 'ee/app/finders/epics_finder.rb' - - 'ee/app/finders/geo_node_finder.rb' - - 'ee/app/finders/gpg_keys_finder.rb' - - 'ee/app/finders/group_saml_identity_finder.rb' - - 'ee/app/finders/groups_with_templates_finder.rb' - - 'ee/app/finders/iterations_finder.rb' - - 'ee/app/finders/licenses_finder.rb' - - 'ee/app/finders/merge_requests_compliance_finder.rb' - - 'ee/app/finders/merge_trains_finder.rb' - - 'ee/app/finders/productivity_analytics_finder.rb' - - 'ee/app/finders/scim_finder.rb' - - 'ee/app/finders/software_license_policies_finder.rb' - - 'ee/app/mailers/ci_minutes_usage_mailer.rb' - - 'ee/app/mailers/credentials_inventory_mailer.rb' - - 'ee/app/mailers/license_mailer.rb' - - 'ee/app/mailers/previews/ci_minutes_usage_mailer_preview.rb' - - 'ee/app/mailers/previews/license_mailer_preview.rb' - - 'ee/app/models/allowed_email_domain.rb' - - 'ee/app/models/approval_merge_request_rule.rb' - - 'ee/app/models/approval_merge_request_rule_source.rb' - - 'ee/app/models/approval_project_rule.rb' - - 'ee/app/models/approval_project_rules_protected_branch.rb' - - 'ee/app/models/approval_state.rb' - - 'ee/app/models/approval_wrapped_any_approver_rule.rb' - - 'ee/app/models/approval_wrapped_code_owner_rule.rb' - - 'ee/app/models/approval_wrapped_rule.rb' - - 'ee/app/models/approver.rb' - - 'ee/app/models/approver_group.rb' - - 'ee/app/models/board_assignee.rb' - - 'ee/app/models/board_label.rb' - - 'ee/app/models/board_user_preference.rb' - - 'ee/app/models/burndown.rb' - - 'ee/app/models/dast_scanner_profile.rb' - - 'ee/app/models/dast_site.rb' - - 'ee/app/models/dast_site_profile.rb' - - 'ee/app/models/dast_site_token.rb' - - 'ee/app/models/dast_site_validation.rb' - - 'ee/app/models/elasticsearch_indexed_namespace.rb' - - 'ee/app/models/elasticsearch_indexed_project.rb' - - 'ee/app/models/epic_issue.rb' - - 'ee/app/models/epic_user_mention.rb' - - 'ee/app/models/feature_flag_issue.rb' - - 'ee/app/models/geo_node.rb' - - 'ee/app/models/geo_node_namespace_link.rb' - - 'ee/app/models/geo_node_status.rb' - - 'ee/app/models/gitlab_subscription.rb' - - 'ee/app/models/gitlab_subscription_history.rb' - - 'ee/app/models/group_deletion_schedule.rb' - - 'ee/app/models/group_merge_request_approval_setting.rb' - - 'ee/app/models/group_wiki.rb' - - 'ee/app/models/group_wiki_repository.rb' - - 'ee/app/models/historical_data.rb' - - 'ee/app/models/hooks/group_hook.rb' - - 'ee/app/models/index_status.rb' - - 'ee/app/models/insight.rb' - - 'ee/app/models/instance_security_dashboard.rb' - - 'ee/app/models/ip_restriction.rb' - - 'ee/app/models/issuable_metric_image.rb' - - 'ee/app/models/issuable_sla.rb' - - 'ee/app/models/issuables_analytics.rb' - - 'ee/app/models/iteration_note.rb' - - 'ee/app/models/ldap_group_link.rb' - - 'ee/app/models/ldap_key.rb' - - 'ee/app/models/license.rb' - - 'ee/app/models/merge_request_block.rb' - - 'ee/app/models/merge_request_diff_detail.rb' - - 'ee/app/models/merge_train.rb' - - 'ee/app/models/namespace_limit.rb' - - 'ee/app/models/namespace_statistics.rb' - - 'ee/app/models/path_lock.rb' - - 'ee/app/models/pg_replication_slot.rb' - - 'ee/app/models/productivity_analytics.rb' - - 'ee/app/models/project_alias.rb' - - 'ee/app/models/project_repository_state.rb' - - 'ee/app/models/project_security_setting.rb' - - 'ee/app/models/protected_environment.rb' - - 'ee/app/models/push_rule.rb' - - 'ee/app/models/resource_iteration_event.rb' - - 'ee/app/models/resource_weight_event.rb' - - 'ee/app/models/saml_group_link.rb' - - 'ee/app/models/saml_provider.rb' - - 'ee/app/models/scim_identity.rb' - - 'ee/app/models/scim_oauth_access_token.rb' - - 'ee/app/models/scoped_label_set.rb' - - 'ee/app/models/slack_integration.rb' - - 'ee/app/models/smartcard_identity.rb' - - 'ee/app/models/software_license.rb' - - 'ee/app/models/software_license_policy.rb' - - 'ee/app/models/storage_shard.rb' - - 'ee/app/models/user_permission_export_upload.rb' - - 'ee/app/models/users_ops_dashboard_project.rb' - - 'ee/app/models/users_security_dashboard_project.rb' - - 'ee/app/models/vulnerability_user_mention.rb' - - 'ee/app/models/weight_note.rb' - - 'ee/app/policies/approval_merge_request_rule_policy.rb' - - 'ee/app/policies/approval_project_rule_policy.rb' - - 'ee/app/policies/approval_state_policy.rb' - - 'ee/app/policies/dast_scanner_profile_policy.rb' - - 'ee/app/policies/dast_site_profile_policy.rb' - - 'ee/app/policies/dast_site_validation_policy.rb' - - 'ee/app/policies/epic_policy.rb' - - 'ee/app/policies/geo_node_policy.rb' - - 'ee/app/policies/instance_security_dashboard_policy.rb' - - 'ee/app/policies/issuable_metric_image_policy.rb' - - 'ee/app/policies/iteration_policy.rb' - - 'ee/app/policies/push_rule_policy.rb' - - 'ee/app/policies/saml_provider_policy.rb' - - 'ee/app/policies/vulnerability_policy.rb' - - 'ee/app/presenters/approval_rule_presenter.rb' - - 'ee/app/presenters/audit_event_presenter.rb' - - 'ee/app/presenters/epic_issue_presenter.rb' - - 'ee/app/presenters/epic_presenter.rb' - - 'ee/app/presenters/iteration_presenter.rb' - - 'ee/app/presenters/merge_request_approver_presenter.rb' - - 'ee/app/presenters/subscription_presenter.rb' - - 'ee/app/presenters/vulnerability_presenter.rb' - - 'ee/app/serializers/audit_event_entity.rb' - - 'ee/app/serializers/audit_event_serializer.rb' - - 'ee/app/serializers/blocking_merge_request_entity.rb' - - 'ee/app/serializers/board_assignee_entity.rb' - - 'ee/app/serializers/board_label_entity.rb' - - 'ee/app/serializers/board_milestone_entity.rb' - - 'ee/app/serializers/dashboard_environment_entity.rb' - - 'ee/app/serializers/dashboard_environments_project_entity.rb' - - 'ee/app/serializers/dashboard_environments_serializer.rb' - - 'ee/app/serializers/dashboard_operations_project_entity.rb' - - 'ee/app/serializers/dashboard_operations_serializer.rb' - - 'ee/app/serializers/dependency_entity.rb' - - 'ee/app/serializers/dependency_list_entity.rb' - - 'ee/app/serializers/dependency_list_serializer.rb' - - 'ee/app/serializers/epic_base_entity.rb' - - 'ee/app/serializers/epic_entity.rb' - - 'ee/app/serializers/epic_note_entity.rb' - - 'ee/app/serializers/epic_note_serializer.rb' - - 'ee/app/serializers/epic_serializer.rb' - - 'ee/app/serializers/file_lock_entity.rb' - - 'ee/app/serializers/geo_design_registry_entity.rb' - - 'ee/app/serializers/geo_design_registry_serializer.rb' - - 'ee/app/serializers/geo_node_serializer.rb' - - 'ee/app/serializers/geo_node_status_serializer.rb' - - 'ee/app/serializers/geo_project_registry_entity.rb' - - 'ee/app/serializers/geo_project_registry_serializer.rb' - - 'ee/app/serializers/group_analytics_serializer.rb' - - 'ee/app/serializers/group_vulnerability_autocomplete_entity.rb' - - 'ee/app/serializers/group_vulnerability_autocomplete_serializer.rb' - - 'ee/app/serializers/invited_group_entity.rb' - - 'ee/app/serializers/invited_group_serializer.rb' - - 'ee/app/serializers/iteration_serializer.rb' - - 'ee/app/serializers/license_entity.rb' - - 'ee/app/serializers/license_scanning_reports_comparer_entity.rb' - - 'ee/app/serializers/license_scanning_reports_comparer_serializer.rb' - - 'ee/app/serializers/license_scanning_reports_serializer.rb' - - 'ee/app/serializers/licenses_list_entity.rb' - - 'ee/app/serializers/licenses_list_serializer.rb' - - 'ee/app/serializers/linked_epic_entity.rb' - - 'ee/app/serializers/linked_epic_issue_entity.rb' - - 'ee/app/serializers/linked_epic_issue_serializer.rb' - - 'ee/app/serializers/linked_epic_serializer.rb' - - 'ee/app/serializers/linked_feature_flag_issue_entity.rb' - - 'ee/app/serializers/linked_feature_flag_issue_serializer.rb' - - 'ee/app/serializers/managed_license_entity.rb' - - 'ee/app/serializers/managed_license_serializer.rb' - - 'ee/app/serializers/merge_request_compliance_entity.rb' - - 'ee/app/serializers/metrics_report_metric_entity.rb' - - 'ee/app/serializers/metrics_reports_comparer_entity.rb' - - 'ee/app/serializers/metrics_reports_comparer_serializer.rb' - - 'ee/app/serializers/milestone_serializer.rb' - - 'ee/app/serializers/namespace_entity.rb' - - 'ee/app/serializers/productivity_analytics_merge_request_entity.rb' - - 'ee/app/serializers/report_list_entity.rb' - - 'ee/app/serializers/scim_oauth_access_token_entity.rb' - - 'ee/app/serializers/storage_shard_entity.rb' - - 'ee/app/serializers/storage_shard_serializer.rb' - - 'ee/app/serializers/user_analytics_entity.rb' - - 'ee/app/serializers/vulnerability_entity.rb' - - 'ee/app/serializers/vulnerability_note_entity.rb' - - 'ee/app/serializers/vulnerability_note_serializer.rb' - - 'ee/app/serializers/vulnerability_serializer.rb' - - 'ee/app/services/clear_namespace_shared_runners_minutes_service.rb' - - 'ee/app/services/ldap_group_reset_service.rb' - - 'ee/app/services/start_pull_mirroring_service.rb' - - 'ee/app/services/timebox_report_service.rb' - - 'ee/app/uploaders/issuable_metric_image_uploader.rb' - - 'ee/app/validators/host_validator.rb' - - 'ee/app/validators/ldap_filter_validator.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/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/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_index_bulk_cron_worker.rb' - - 'ee/app/workers/elastic_index_initial_bulk_cron_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/geo_repository_destroy_worker.rb' - - 'ee/app/workers/group_saml_group_sync_worker.rb' - - 'ee/app/workers/historical_data_worker.rb' - - 'ee/app/workers/import_software_licenses_worker.rb' - - 'ee/app/workers/ingress_modsecurity_counter_metrics_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/network_policy_metrics_worker.rb' - - 'ee/app/workers/new_epic_worker.rb' - - 'ee/app/workers/project_import_schedule_worker.rb' - - 'ee/app/workers/project_template_export_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/scan_security_report_secrets_worker.rb' - - 'ee/app/workers/set_user_status_based_on_user_cap_setting_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/sync_security_reports_to_report_approval_rules_worker.rb' - - 'ee/app/workers/update_all_mirrors_worker.rb' - - 'ee/app/workers/update_max_seats_used_for_gitlab_com_subscriptions_worker.rb' - - 'ee/lib/gitlab/path_locks_finder.rb' - - 'ee/spec/support/elastic_query_name_inspector.rb' - - 'ee/spec/support/ssh_keygen.rb' - - 'ee/spec/support/test_license.rb' - - 'lib/carrier_wave_string_file.rb' - - 'lib/csv_builder.rb' - - 'lib/event_filter.rb' - - 'lib/feature.rb' - - 'lib/feature/definition.rb' - - 'lib/feature/gitaly.rb' - - 'lib/feature/logger.rb' - - 'lib/feature/shared.rb' - - 'lib/file_size_validator.rb' - - 'lib/forever.rb' - - 'lib/gitlab_danger.rb' - - 'lib/learn_gitlab.rb' - - 'lib/tasks/gitlab/graphql.rake' - - 'lib/tasks/gitlab/seed/group_seed.rake' - - 'lib/tasks/import.rake' - - 'lib/tasks/tokens.rake' - - 'lib/uploaded_file.rb' - - 'lib/version_check.rb' - - 'qa/spec/specs/helpers/quarantine_spec.rb' - - 'spec/controllers/concerns/page_limiter_spec.rb' - - 'spec/lib/bitbucket/collection_spec.rb' - - 'spec/lib/gitlab/database/bulk_update_spec.rb' - - 'spec/lib/gitlab/multi_destination_logger_spec.rb' - - 'spec/lib/marginalia_spec.rb' - - 'spec/mailers/notify_spec.rb' - - 'spec/models/concerns/batch_destroy_dependent_associations_spec.rb' - - 'spec/models/concerns/bulk_insertable_associations_spec.rb' - - 'spec/models/concerns/triggerable_hooks_spec.rb' - - 'spec/support/helpers/bare_repo_operations.rb' - - 'spec/support/helpers/ci_artifact_metadata_generator.rb' - - 'spec/support/helpers/fake_migration_classes.rb' - - 'spec/support/helpers/fake_u2f_device.rb' - - 'spec/support/helpers/fake_webauthn_device.rb' - - 'spec/support/helpers/markdown_feature.rb' - - 'spec/support/helpers/redis_without_keys.rb' - - 'spec/support/helpers/require_migration.rb' - - 'spec/support/inspect_squelch.rb' - - 'spec/support/models/merge_request_without_merge_request_diff.rb' - - 'spec/support/renameable_upload.rb' - - 'spec/support/sidekiq_middleware.rb' - - 'spec/tasks/gitlab/task_helpers_spec.rb' - - 'spec/uploaders/object_storage_spec.rb' - -# WIP See https://gitlab.com/gitlab-org/gitlab/-/issues/207950 -Cop/UserAdmin: - Exclude: - - 'app/controllers/admin/impersonations_controller.rb' - - 'app/controllers/concerns/spammable_actions.rb' - - 'app/controllers/sessions_controller.rb' - - 'app/finders/autocomplete/routes_finder.rb' - - 'app/finders/ci/jobs_finder.rb' - - 'app/finders/ci/runners_finder.rb' - - 'app/finders/personal_access_tokens_finder.rb' - - 'app/finders/users_finder.rb' - - 'app/graphql/mutations/admin/sidekiq_queues/delete_jobs.rb' - - 'app/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver.rb' - - 'app/helpers/application_helper.rb' - - 'app/helpers/import_helper.rb' - - 'app/helpers/nav_helper.rb' - - 'app/helpers/projects_helper.rb' - - 'app/helpers/search_helper.rb' - - 'app/helpers/user_callouts_helper.rb' - - 'app/helpers/users_helper.rb' - - 'app/helpers/visibility_level_helper.rb' - - 'app/models/concerns/protected_ref_access.rb' - - 'app/models/concerns/spammable.rb' - - 'app/models/issue_collection.rb' - - 'app/models/merge_requests_closing_issues.rb' - - 'app/models/protected_branch.rb' - - 'app/models/user.rb' - - 'app/policies/note_policy.rb' - - 'app/serializers/deploy_key_entity.rb' - - 'app/services/auth/container_registry_authentication_service.rb' - - 'app/services/emails/create_service.rb' - - 'app/services/projects/enable_deploy_key_service.rb' - - 'app/services/projects/fork_service.rb' - - 'app/services/users/build_service.rb' - - 'ee/app/controllers/ee/projects_controller.rb' - - 'ee/app/graphql/mutations/admin/analytics/devops_adoption/segments/mixins.rb' - - 'ee/app/graphql/resolvers/admin/analytics/devops_adoption/segments_resolver.rb' - - 'ee/app/helpers/ee/dashboard_helper.rb' - - 'ee/app/helpers/ee/import_helper.rb' - - 'ee/app/helpers/ee/subscribable_banner_helper.rb' - - 'ee/app/helpers/ee/user_callouts_helper.rb' - - 'ee/app/helpers/license_monitoring_helper.rb' - - 'ee/app/helpers/push_rules_helper.rb' - - 'ee/app/models/concerns/ee/protected_ref_access.rb' - - 'ee/app/models/ee/user.rb' - - 'ee/app/models/protected_environment/deploy_access_level.rb' - - 'ee/app/policies/ee/group_policy.rb' - - 'ee/app/policies/ee/project_policy.rb' - - 'ee/app/services/ee/groups/create_service.rb' - - 'ee/app/services/ee/groups/update_service.rb' - - 'ee/app/services/ee/projects/update_service.rb' - - 'ee/lib/ee/api/helpers.rb' - - 'ee/lib/ee/gitlab/git_access.rb' - - 'lib/api/award_emoji.rb' - - 'lib/api/ci/runners.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' - - 'lib/api/users.rb' - - 'lib/api/v3/github.rb' - - 'lib/constraints/admin_constrainer.rb' - - 'lib/gitlab/auth.rb' - - 'lib/gitlab/background_migration/user_mentions/models/group.rb' - - 'lib/gitlab/ci/runner_instructions.rb' - - 'lib/gitlab/import_export/members_mapper.rb' - - 'lib/gitlab/performance_bar.rb' - - 'lib/gitlab/visibility_level.rb' - - 'qa/qa/runtime/api/client.rb' - -# WIP: https://gitlab.com/gitlab-org/gitlab/-/issues/324629 -Gitlab/DelegatePredicateMethods: - Exclude: - - 'app/models/clusters/cluster.rb' - - 'app/models/clusters/platforms/kubernetes.rb' - - 'app/models/concerns/ci/metadatable.rb' - - 'app/models/concerns/diff_positionable_note.rb' - - 'app/models/concerns/integrations/base_data_fields.rb' - - 'app/models/concerns/resolvable_discussion.rb' - - 'app/models/project.rb' - - 'ee/app/models/concerns/ee/ci/metadatable.rb' - - 'ee/app/models/ee/group.rb' - - 'ee/app/models/ee/namespace.rb' - - 'ee/app/models/license.rb' - - 'lib/gitlab/ci/trace/stream.rb' - -# Offense count: 298 -Gitlab/FeatureAvailableUsage: - Exclude: - - 'app/controllers/projects/application_controller.rb' - - 'app/graphql/types/project_type.rb' - - 'app/helpers/events_helper.rb' - - 'app/helpers/labels_helper.rb' - - 'app/policies/project_policy.rb' - - 'app/views/shared/boards/_switcher.html.haml' - - 'ee/app/controllers/concerns/description_diff_actions.rb' - - 'ee/app/controllers/concerns/ee/boards_actions.rb' - - 'ee/app/controllers/concerns/security_dashboards_permissions.rb' - - 'ee/app/controllers/ee/boards/lists_controller.rb' - - 'ee/app/controllers/ee/projects/autocomplete_sources_controller.rb' - - 'ee/app/controllers/ee/projects/issues_controller.rb' - - 'ee/app/controllers/ee/projects/security/configuration_controller.rb' - - 'ee/app/controllers/ee/projects/settings/ci_cd_controller.rb' - - 'ee/app/controllers/ee/projects/settings/operations_controller.rb' - - 'ee/app/controllers/ee/projects/settings/repository_controller.rb' - - 'ee/app/controllers/projects/audit_events_controller.rb' - - 'ee/app/controllers/projects/cluster_agents_controller.rb' - - 'ee/app/controllers/projects/iterations/inherited_controller.rb' - - 'ee/app/controllers/projects/iterations_controller.rb' - - 'ee/app/controllers/projects/path_locks_controller.rb' - - 'ee/app/controllers/projects/subscriptions_controller.rb' - - 'ee/app/finders/autocomplete/vulnerabilities_autocomplete_finder.rb' - - 'ee/app/finders/clusters/agents_finder.rb' - - 'ee/app/finders/ee/alert_management/alerts_finder.rb' - - 'ee/app/finders/ee/alert_management/http_integrations_finder.rb' - - 'ee/app/graphql/ee/types/group_type.rb' - - 'ee/app/graphql/mutations/dast/profiles/create.rb' - - 'ee/app/graphql/mutations/dast/profiles/run.rb' - - 'ee/app/graphql/mutations/dast/profiles/update.rb' - - 'ee/app/graphql/mutations/instance_security_dashboard/remove_project.rb' - - 'ee/app/graphql/resolvers/clusters/agent_tokens_resolver.rb' - - 'ee/app/helpers/ee/application_helper.rb' - - 'ee/app/helpers/ee/boards_helper.rb' - - 'ee/app/helpers/ee/clusters_helper.rb' - - 'ee/app/helpers/ee/dashboard_helper.rb' - - 'ee/app/helpers/ee/form_helper.rb' - - 'ee/app/helpers/ee/graph_helper.rb' - - 'ee/app/helpers/ee/issues_helper.rb' - - 'ee/app/helpers/ee/lock_helper.rb' - - 'ee/app/helpers/ee/operations_helper.rb' - - 'ee/app/helpers/ee/projects/incidents_helper.rb' - - 'ee/app/helpers/ee/projects_helper.rb' - - 'ee/app/helpers/ee/releases_helper.rb' - - 'ee/app/helpers/ee/search_helper.rb' - - 'ee/app/helpers/ee/tree_helper.rb' - - 'ee/app/models/approval_state.rb' - - 'ee/app/models/concerns/approvable.rb' - - 'ee/app/models/concerns/ee/project_security_scanners_information.rb' - - 'ee/app/models/concerns/ee/protected_ref_access.rb' - - 'ee/app/models/concerns/has_timelogs_report.rb' - - 'ee/app/models/concerns/insights_feature.rb' - - 'ee/app/models/ee/board.rb' - - 'ee/app/models/ee/ci/build.rb' - - 'ee/app/models/ee/ci/build_dependencies.rb' - - 'ee/app/models/ee/ci/pipeline.rb' - - 'ee/app/models/ee/group.rb' - - 'ee/app/models/ee/group_member.rb' - - 'ee/app/models/ee/issue.rb' - - 'ee/app/models/ee/list.rb' - - 'ee/app/models/ee/merge_request.rb' - - 'ee/app/models/ee/milestone_release.rb' - - 'ee/app/models/ee/namespace.rb' - - 'ee/app/models/ee/namespace_setting.rb' - - 'ee/app/models/ee/project.rb' - - 'ee/app/models/ee/project_ci_cd_setting.rb' - - 'ee/app/models/namespace_statistics.rb' - - 'ee/app/models/project_security_setting.rb' - - 'ee/app/policies/compliance_management/framework_policy.rb' - - 'ee/app/policies/ee/group_policy.rb' - - 'ee/app/policies/ee/namespace_policy.rb' - - 'ee/app/policies/ee/project_policy.rb' - - 'ee/app/policies/ee/protected_branch_policy.rb' - - 'ee/app/presenters/ee/label_presenter.rb' - - 'ee/app/presenters/merge_request_approver_presenter.rb' - - 'ee/app/serializers/dashboard_operations_project_entity.rb' - - 'ee/app/serializers/ee/environment_entity.rb' - - 'ee/app/serializers/ee/evidences/release_entity.rb' - - 'ee/app/serializers/ee/note_entity.rb' - - 'ee/app/services/boards/epic_boards/update_service.rb' - - 'ee/app/services/ci/audit_variable_change_service.rb' - - 'ee/app/services/clusters/agent_tokens/create_service.rb' - - 'ee/app/services/clusters/agents/create_service.rb' - - 'ee/app/services/dashboard/projects/create_service.rb' - - 'ee/app/services/dashboard/projects/list_service.rb' - - 'ee/app/services/dast/profiles/create_service.rb' - - 'ee/app/services/dast/profiles/update_service.rb' - - 'ee/app/services/dast_on_demand_scans/create_service.rb' - - 'ee/app/services/dast_site_tokens/create_service.rb' - - 'ee/app/services/dast_site_validations/create_service.rb' - - 'ee/app/services/dast_site_validations/revoke_service.rb' - - 'ee/app/services/dast_site_validations/validate_service.rb' - - 'ee/app/services/ee/alert_management/http_integrations/create_service.rb' - - 'ee/app/services/ee/audit_event_service.rb' - - 'ee/app/services/ee/boards/issues/list_service.rb' - - 'ee/app/services/ee/boards/lists/create_service.rb' - - 'ee/app/services/ee/boards/update_service.rb' - - 'ee/app/services/ee/ide/schemas_config_service.rb' - - 'ee/app/services/ee/issuable_base_service.rb' - - 'ee/app/services/ee/issue_links/create_service.rb' - - 'ee/app/services/ee/issues/build_service.rb' - - 'ee/app/services/ee/lfs/lock_file_service.rb' - - 'ee/app/services/ee/lfs/unlock_file_service.rb' - - 'ee/app/services/ee/merge_requests/approval_service.rb' - - 'ee/app/services/ee/merge_requests/build_service.rb' - - 'ee/app/services/ee/merge_requests/merge_base_service.rb' - - 'ee/app/services/ee/merge_requests/refresh_service.rb' - - 'ee/app/services/ee/merge_requests/update_service.rb' - - 'ee/app/services/ee/projects/create_service.rb' - - 'ee/app/services/ee/protected_branches/create_service.rb' - - 'ee/app/services/ee/releases/create_evidence_service.rb' - - 'ee/app/services/iterations/create_service.rb' - - 'ee/app/services/iterations/update_service.rb' - - 'ee/app/services/merge_requests/sync_report_approver_approval_rules.rb' - - 'ee/app/services/merge_requests/update_blocks_service.rb' - - 'ee/app/services/projects/mark_for_deletion_service.rb' - - 'ee/app/services/quality_management/test_cases/create_service.rb' - - 'ee/app/services/requirements_management/process_test_reports_service.rb' - - 'ee/app/services/security/store_scans_service.rb' - - 'ee/app/views/layouts/nav/_test_cases_link.html.haml' - - 'ee/app/views/layouts/nav/sidebar/_project_iterations_link.html.haml' - - 'ee/app/views/projects/_merge_request_approvals_settings.html.haml' - - 'ee/app/views/projects/_merge_request_settings.html.haml' - - 'ee/app/views/projects/_merge_request_settings_description_text.html.haml' - - 'ee/app/views/projects/audit_events/index.html.haml' - - 'ee/app/views/projects/blob/_header_file_locks.html.haml' - - 'ee/app/views/projects/issues/_related_issues.html.haml' - - 'ee/app/views/projects/merge_requests/show.html.haml' - - 'ee/app/views/projects/merge_requests/show.html.haml' - - 'ee/app/views/projects/merge_requests/show.html.haml' - - 'ee/app/views/projects/merge_requests/show.html.haml' - - 'ee/app/views/projects/merge_requests/show.html.haml' - - 'ee/app/views/projects/merge_requests/show.html.haml' - - 'ee/app/views/projects/merge_requests/show.html.haml' - - 'ee/app/views/projects/merge_requests/show.html.haml' - - 'ee/app/views/projects/merge_requests/show.html.haml' - - 'ee/app/views/projects/pipelines/_tabs_content.html.haml' - - 'ee/app/views/projects/protected_branches/ee/_code_owner_approval_form.html.haml' - - 'ee/app/views/projects/protected_branches/ee/_code_owner_approval_table.html.haml' - - 'ee/app/views/projects/protected_branches/ee/_code_owner_approval_table_head.html.haml' - - 'ee/app/views/projects/push_rules/_index.html.haml' - - 'ee/app/views/projects/settings/_default_issue_template.html.haml' - - 'ee/app/views/projects/settings/_marked_for_removal.html.haml' - - 'ee/app/views/projects/settings/_restore.html.haml' - - 'ee/app/views/projects/settings/ci_cd/_auto_rollback.html.haml' - - 'ee/app/views/projects/settings/ci_cd/_pipeline_subscriptions.html.haml' - - 'ee/app/views/projects/settings/operations/_status_page.html.haml' - - 'ee/app/views/projects/settings/repository/_protected_branches.html.haml' - - 'ee/app/views/projects/sidebar/_repository_locked_files.html.haml' - - 'ee/app/views/shared/issuable/_group_bulk_update_sidebar.html.haml' - - 'ee/app/views/shared/issuable/form/_default_templates.html.haml' - - 'ee/app/views/shared/labels/_create_label_help_text.html.haml' - - 'ee/app/views/shared/promotions/_promote_mr_features.html.haml' - - 'ee/app/views/shared/promotions/_promote_mr_features.html.haml' - - 'ee/app/views/shared/promotions/_promote_repository_features.html.haml' - - 'ee/app/views/shared/promotions/_promote_repository_features.html.haml' - - 'ee/app/views/shared/promotions/_promote_repository_features.html.haml' - - 'ee/app/views/shared/promotions/_promote_repository_features.html.haml' - - 'ee/app/views/shared/promotions/_promote_repository_features.html.haml' - - 'ee/app/views/shared/promotions/_promote_repository_features.html.haml' - - 'ee/app/workers/analytics/code_review_metrics_worker.rb' - - 'ee/app/workers/group_saml_group_sync_worker.rb' - - 'ee/lib/api/external_status_checks.rb' - - 'ee/lib/ee/api/entities/approval_state.rb' - - 'ee/lib/ee/api/entities/board.rb' - - 'ee/lib/ee/api/entities/issue.rb' - - 'ee/lib/ee/api/entities/project.rb' - - 'ee/lib/ee/api/helpers.rb' - - 'ee/lib/ee/api/internal/kubernetes.rb' - - 'ee/lib/ee/api/job_artifacts.rb' - - 'ee/lib/ee/api/projects.rb' - - 'ee/lib/ee/gitlab/alert_management/payload/generic.rb' - - 'ee/lib/ee/gitlab/checks/diff_check.rb' - - 'ee/lib/ee/gitlab/gon_helper.rb' - - 'ee/lib/ee/gitlab/tree_summary.rb' - - 'ee/lib/gitlab/alert_management.rb' - - 'ee/lib/gitlab/ci/pipeline/chain/config/content/compliance.rb' - - 'ee/lib/gitlab/code_owners.rb' - - 'ee/lib/gitlab/incident_management.rb' - - 'ee/lib/gitlab/path_locks_finder.rb' - - 'ee/lib/incident_management/incident_sla.rb' - - 'ee/spec/models/instance_security_dashboard_spec.rb' - - 'ee/spec/models/license_spec.rb' - - 'ee/spec/models/project_spec.rb' - - 'lib/api/helpers/related_resources_helpers.rb' - - 'spec/models/concerns/featurable_spec.rb' - -# WIP see: https://gitlab.com/gitlab-org/gitlab/-/issues/335808 -Database/MultipleDatabases: - Exclude: - - '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/backup/manager.rb' - - 'lib/gitlab/current_settings.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/partitioning_migration_helpers/backfill_partitioned_table.rb' - - 'lib/gitlab/database.rb' - - 'lib/gitlab/database/schema_cache_with_renamed_table.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/group/relation_tree_restorer.rb' - - 'lib/gitlab/legacy_github_import/importer.rb' - - 'lib/gitlab/metrics/samplers/database_sampler.rb' - - 'lib/gitlab/seeder.rb' - - 'lib/gitlab/sherlock/query.rb' - - 'lib/system_check/orphans/repository_check.rb' - - 'spec/db/schema_spec.rb' - - 'spec/initializers/database_config_spec.rb' - - 'spec/lib/backup/manager_spec.rb' - - 'spec/lib/gitlab/current_settings_spec.rb' - - 'spec/lib/gitlab/database_spec.rb' - - 'spec/lib/gitlab/metrics/subscribers/active_record_spec.rb' - - 'spec/lib/gitlab/profiler_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/project_feature_usage_spec.rb' - - 'spec/models/users_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' - -# WIP: https://gitlab.com/gitlab-org/gitlab/-/issues/339787 -Performance/ActiveRecordSubtransactionMethods: - Exclude: - - 'app/controllers/clusters/clusters_controller.rb' - - 'app/controllers/repositories/lfs_storage_controller.rb' - - 'app/controllers/search_controller.rb' - - 'app/models/application_record.rb' - - 'app/models/ci/ref.rb' - - 'app/models/container_repository.rb' - - 'app/models/design_management/design_collection.rb' - - 'app/models/error_tracking/error.rb' - - 'app/models/external_pull_request.rb' - - 'app/models/gpg_signature.rb' - - 'app/models/merge_request.rb' - - 'app/models/plan.rb' - - 'app/models/project.rb' - - 'app/models/shard.rb' - - 'app/models/x509_certificate.rb' - - 'app/models/x509_commit_signature.rb' - - 'app/models/x509_issuer.rb' - - 'app/services/bulk_imports/relation_export_service.rb' - - 'app/services/ci/update_build_state_service.rb' - - 'app/services/event_create_service.rb' - - 'app/services/groups/import_export/import_service.rb' - - 'app/services/lfs/file_transformer.rb' - - 'app/services/merge_requests/approval_service.rb' - - 'app/services/namespaces/statistics_refresher_service.rb' - - 'app/services/packages/rubygems/create_dependencies_service.rb' - - 'app/services/packages/rubygems/metadata_extraction_service.rb' - - 'app/services/projects/create_service.rb' - - 'app/services/projects/lfs_pointers/lfs_download_service.rb' - - 'app/services/service_desk_settings/update_service.rb' - - 'app/services/service_ping/submit_service.rb' - - 'app/services/terraform/remote_state_handler.rb' - - 'app/workers/namespaces/schedule_aggregation_worker.rb' - - 'app/workers/project_export_worker.rb' - - 'db/migrate/20200212014653_rename_security_dashboard_feature_flag_to_instance_security_dashboard.rb' - - 'db/post_migrate/20200214034836_remove_security_dashboard_feature_flag.rb' - - 'db/post_migrate/20210824174615_prepare_ci_builds_metadata_and_ci_build_async_indexes.rb' - - 'ee/app/models/ci/minutes/namespace_monthly_usage.rb' - - 'ee/app/models/ci/minutes/project_monthly_usage.rb' - - 'ee/app/models/concerns/deprecated_approvals_before_merge.rb' - - 'ee/app/models/ee/iteration.rb' - - 'ee/app/models/ee/plan.rb' - - 'ee/app/models/elastic/index_setting.rb' - - 'ee/app/models/gitlab_subscription.rb' - - 'ee/app/models/software_license.rb' - - 'ee/app/services/boards/user_preferences/update_service.rb' - - 'ee/app/services/ci/minutes/update_project_and_namespace_usage_service.rb' - - 'ee/app/services/ee/analytics/cycle_analytics/stages/base_service.rb' - - 'ee/app/services/security/store_report_service.rb' - - 'ee/app/services/security/store_scan_service.rb' - - 'ee/app/workers/import_software_licenses_worker.rb' - - 'ee/db/fixtures/production/027_plans.rb' - - 'ee/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules.rb' - - 'ee/lib/gitlab/elastic/indexer.rb' - - 'lib/gitlab/ci/pipeline/seed/environment.rb' - - 'lib/gitlab/ci/pipeline/seed/processable/resource_group.rb' - - 'lib/gitlab/ci/trace/chunked_io.rb' - - 'lib/gitlab/composer/cache.rb' - - 'lib/gitlab/database/async_indexes/migration_helpers.rb' - - 'lib/gitlab/issuables_count_for_state.rb' - -# WIP: https://gitlab.com/gitlab-org/gitlab/-/issues/340567 -Rails/IncludeUrlHelper: - Exclude: - - 'app/models/integrations/asana.rb' - - 'app/models/integrations/bamboo.rb' - - 'app/models/integrations/bugzilla.rb' - - 'app/models/integrations/campfire.rb' - - 'app/models/integrations/confluence.rb' - - 'app/models/integrations/custom_issue_tracker.rb' - - 'app/models/integrations/datadog.rb' - - 'app/models/integrations/discord.rb' - - 'app/models/integrations/ewm.rb' - - 'app/models/integrations/external_wiki.rb' - - 'app/models/integrations/flowdock.rb' - - 'app/models/integrations/hangouts_chat.rb' - - 'app/models/integrations/irker.rb' - - 'app/models/integrations/jenkins.rb' - - 'app/models/integrations/mattermost.rb' - - 'app/models/integrations/pivotaltracker.rb' - - 'app/models/integrations/redmine.rb' - - 'app/models/integrations/webex_teams.rb' - - 'app/models/integrations/youtrack.rb' - - 'app/presenters/alert_management/alert_presenter.rb' - - 'app/presenters/ci/pipeline_presenter.rb' - - 'app/presenters/environment_presenter.rb' - - 'app/presenters/gitlab/blame_presenter.rb' - - 'app/presenters/merge_request_presenter.rb' - - 'app/presenters/project_presenter.rb' - - 'app/presenters/prometheus_alert_presenter.rb' - - 'app/presenters/release_presenter.rb' - - 'app/presenters/releases/evidence_presenter.rb' - - 'ee/app/helpers/license_helper.rb' - - 'ee/app/models/integrations/github.rb' - - 'ee/app/presenters/merge_request_approver_presenter.rb' - - 'ee/spec/helpers/ee/projects/security/configuration_helper_spec.rb' - - 'ee/spec/lib/banzai/filter/cross_project_issuable_information_filter_spec.rb' - - 'ee/spec/lib/banzai/filter/issuable_state_filter_spec.rb' - - 'lib/gitlab/ci/badge/metadata.rb' - - 'spec/helpers/merge_requests_helper_spec.rb' - - 'spec/helpers/nav/top_nav_helper_spec.rb' - - 'spec/helpers/notify_helper_spec.rb' - - 'spec/lib/banzai/filter/issuable_state_filter_spec.rb' - - 'spec/lib/banzai/filter/reference_redactor_filter_spec.rb' - - 'spec/lib/banzai/reference_redactor_spec.rb' - -# TODO issue: https://gitlab.com/gitlab-org/gitlab/-/issues/344279 -Style/OpenStructUse: - Exclude: - - 'app/helpers/application_settings_helper.rb' - - 'ee/spec/db/production/license_spec.rb' - - 'ee/spec/features/projects/new_project_spec.rb' - - 'ee/spec/finders/template_finder_spec.rb' - - 'ee/spec/graphql/ee/resolvers/board_lists_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/board_groupings/epics_resolvers_spec.rb' - - 'ee/spec/helpers/ee/blob_helper_spec.rb' - - 'ee/spec/lib/gitlab/auth/group_saml/failure_handler_spec.rb' - - 'ee/spec/lib/gitlab/legacy_github_import/project_creator_spec.rb' - - 'ee/spec/requests/api/ldap_spec.rb' - - 'lib/api/wikis.rb' - - 'lib/gitlab/git/diff_collection.rb' - - 'lib/gitlab/import_export/after_export_strategies/base_after_export_strategy.rb' - - 'lib/gitlab/testing/request_inspector_middleware.rb' - - 'lib/mattermost/session.rb' - - 'spec/bin/feature_flag_spec.rb' - - 'spec/controllers/admin/clusters_controller_spec.rb' - - 'spec/controllers/groups/clusters_controller_spec.rb' - - 'spec/controllers/import/fogbugz_controller_spec.rb' - - 'spec/controllers/import/gitlab_controller_spec.rb' - - 'spec/controllers/projects/clusters_controller_spec.rb' - - 'spec/dependencies/omniauth_saml_spec.rb' - - 'spec/factories/go_module_versions.rb' - - 'spec/factories/wiki_pages.rb' - - 'spec/features/projects/clusters/gcp_spec.rb' - - 'spec/features/projects/clusters_spec.rb' - - 'spec/finders/template_finder_spec.rb' - - 'spec/graphql/mutations/branches/create_spec.rb' - - 'spec/graphql/mutations/clusters/agent_tokens/create_spec.rb' - - 'spec/graphql/mutations/clusters/agents/create_spec.rb' - - 'spec/graphql/mutations/clusters/agents/delete_spec.rb' - - 'spec/graphql/mutations/commits/create_spec.rb' - - 'spec/graphql/mutations/merge_requests/accept_spec.rb' - - 'spec/graphql/mutations/merge_requests/create_spec.rb' - - 'spec/graphql/types/range_input_type_spec.rb' - - 'spec/helpers/application_settings_helper_spec.rb' - - 'spec/helpers/profiles_helper_spec.rb' - - 'spec/initializers/doorkeeper_spec.rb' - - 'spec/lib/gitlab/auth/o_auth/provider_spec.rb' - - 'spec/lib/gitlab/cleanup/orphan_lfs_file_references_spec.rb' - - 'spec/lib/gitlab/database/migrations/runner_spec.rb' - - 'spec/lib/gitlab/gitaly_client/blobs_stitcher_spec.rb' - - 'spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb' - - 'spec/lib/gitlab/grape_logging/loggers/exception_logger_spec.rb' - - 'spec/lib/gitlab/graphql/pagination/keyset/connection_generic_keyset_spec.rb' - - 'spec/lib/gitlab/graphql/pagination/keyset/connection_spec.rb' - - 'spec/lib/gitlab/legacy_github_import/project_creator_spec.rb' - - 'spec/lib/gitlab/quick_actions/command_definition_spec.rb' - - 'spec/lib/gitlab/quick_actions/dsl_spec.rb' - - 'spec/lib/gitlab/relative_positioning/range_spec.rb' - - 'spec/models/design_management/design_action_spec.rb' - - 'spec/models/design_management/design_at_version_spec.rb' - - 'spec/models/user_spec.rb' - - 'spec/presenters/packages/nuget/search_results_presenter_spec.rb' - - 'spec/requests/api/import_github_spec.rb' - - 'spec/services/packages/nuget/metadata_extraction_service_spec.rb' - - 'spec/services/projects/import_service_spec.rb' - - 'spec/services/system_note_service_spec.rb' - - 'spec/support/helpers/import_spec_helper.rb' - - 'spec/support/helpers/login_helpers.rb' - - 'spec/support/helpers/repo_helpers.rb' - - 'spec/support/shared_examples/controllers/githubish_import_controller_shared_examples.rb' - - 'spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb' - - 'spec/tooling/rspec_flaky/flaky_example_spec.rb' - - 'tooling/rspec_flaky/flaky_example.rb' diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index f29cb42916..94d8d40c10 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -289,17 +289,6 @@ Performance/DeleteSuffix: - 'ee/app/models/geo/upload_registry.rb' - 'ee/app/workers/geo/file_download_dispatch_worker/attachment_job_finder.rb' -# Offense count: 13 -# Cop supports --auto-correct. -Performance/Detect: - Exclude: - - 'ee/spec/controllers/projects/dependencies_controller_spec.rb' - - 'ee/spec/requests/api/dependencies_spec.rb' - - 'qa/qa/runtime/feature.rb' - - 'spec/lib/gitlab/git/tree_spec.rb' - - 'spec/lib/gitlab/import_export/project/tree_restorer_spec.rb' - - 'spec/models/event_spec.rb' - # Offense count: 121 Performance/MethodObjectAsBlock: Enabled: false @@ -543,7 +532,7 @@ Rails/LexicallyScopedActionFilter: Rails/LinkToBlank: Exclude: - 'app/helpers/projects_helper.rb' - - 'ee/app/helpers/ee/user_callouts_helper.rb' + - 'ee/app/helpers/ee/users/callouts_helper.rb' # Offense count: 1 # Cop supports --auto-correct. @@ -827,11 +816,6 @@ Style/RescueModifier: Style/SingleArgumentDig: Enabled: false -# Offense count: 45 -# Cop supports --auto-correct. -Style/SlicingWithRange: - Enabled: false - # Offense count: 63 # Configuration parameters: AllowModifier. Style/SoleNestedConditional: diff --git a/.rubocop_todo/cop/user_admin.yml b/.rubocop_todo/cop/user_admin.yml new file mode 100644 index 0000000000..5f0f721395 --- /dev/null +++ b/.rubocop_todo/cop/user_admin.yml @@ -0,0 +1,70 @@ +--- +Cop/UserAdmin: + Exclude: + - app/controllers/admin/impersonations_controller.rb + - app/controllers/concerns/spammable_actions.rb + - app/controllers/sessions_controller.rb + - app/finders/autocomplete/routes_finder.rb + - app/finders/ci/jobs_finder.rb + - app/finders/ci/runners_finder.rb + - app/finders/personal_access_tokens_finder.rb + - app/finders/users_finder.rb + - app/graphql/mutations/admin/sidekiq_queues/delete_jobs.rb + - app/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver.rb + - app/helpers/application_helper.rb + - app/helpers/import_helper.rb + - app/helpers/nav_helper.rb + - app/helpers/projects_helper.rb + - app/helpers/search_helper.rb + - app/helpers/users/callouts_helper.rb + - app/helpers/users_helper.rb + - app/helpers/visibility_level_helper.rb + - app/models/concerns/protected_ref_access.rb + - app/models/concerns/spammable.rb + - app/models/issue_collection.rb + - app/models/merge_requests_closing_issues.rb + - app/models/protected_branch.rb + - app/models/user.rb + - app/policies/note_policy.rb + - app/serializers/deploy_key_entity.rb + - app/services/auth/container_registry_authentication_service.rb + - app/services/emails/create_service.rb + - app/services/projects/enable_deploy_key_service.rb + - app/services/projects/fork_service.rb + - app/services/users/build_service.rb + - ee/app/controllers/ee/projects_controller.rb + - ee/app/graphql/mutations/admin/analytics/devops_adoption/segments/mixins.rb + - ee/app/graphql/resolvers/admin/analytics/devops_adoption/segments_resolver.rb + - ee/app/helpers/ee/dashboard_helper.rb + - ee/app/helpers/ee/import_helper.rb + - ee/app/helpers/ee/subscribable_banner_helper.rb + - ee/app/helpers/ee/users/callouts_helper.rb + - ee/app/helpers/license_monitoring_helper.rb + - ee/app/helpers/push_rules_helper.rb + - ee/app/models/concerns/ee/protected_ref_access.rb + - ee/app/models/ee/user.rb + - ee/app/models/protected_environment/deploy_access_level.rb + - ee/app/policies/ee/group_policy.rb + - ee/app/policies/ee/project_policy.rb + - ee/app/services/ee/groups/create_service.rb + - ee/app/services/ee/groups/update_service.rb + - ee/app/services/ee/projects/update_service.rb + - ee/lib/ee/api/helpers.rb + - ee/lib/ee/gitlab/git_access.rb + - lib/api/award_emoji.rb + - lib/api/ci/runners.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 + - lib/api/users.rb + - lib/api/v3/github.rb + - lib/constraints/admin_constrainer.rb + - lib/gitlab/auth.rb + - lib/gitlab/background_migration/user_mentions/models/group.rb + - lib/gitlab/ci/runner_instructions.rb + - lib/gitlab/import_export/members_mapper.rb + - lib/gitlab/performance_bar.rb + - lib/gitlab/visibility_level.rb + - qa/qa/runtime/api/client.rb diff --git a/.rubocop_todo/database/multiple_databases.yml b/.rubocop_todo/database/multiple_databases.yml new file mode 100644 index 0000000000..e555c2f912 --- /dev/null +++ b/.rubocop_todo/database/multiple_databases.yml @@ -0,0 +1,60 @@ +--- +Database/MultipleDatabases: + Exclude: + - 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/services/ee/merge_requests/update_service_spec.rb + - lib/backup/database.rb + - lib/backup/manager.rb + - lib/gitlab/current_settings.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/partitioning_migration_helpers/backfill_partitioned_table.rb + - lib/gitlab/database.rb + - lib/gitlab/database/schema_cache_with_renamed_table.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/group/relation_tree_restorer.rb + - lib/gitlab/legacy_github_import/importer.rb + - lib/gitlab/metrics/samplers/database_sampler.rb + - lib/gitlab/seeder.rb + - lib/gitlab/sherlock/query.rb + - lib/system_check/orphans/repository_check.rb + - spec/db/schema_spec.rb + - spec/initializers/database_config_spec.rb + - spec/lib/backup/manager_spec.rb + - spec/lib/gitlab/current_settings_spec.rb + - spec/lib/gitlab/database_spec.rb + - spec/lib/gitlab/metrics/subscribers/active_record_spec.rb + - spec/lib/gitlab/profiler_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/project_feature_usage_spec.rb + - spec/models/users_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 diff --git a/.rubocop_todo/gitlab/delegate_predicate_methods.yml b/.rubocop_todo/gitlab/delegate_predicate_methods.yml new file mode 100644 index 0000000000..d31b4a30fc --- /dev/null +++ b/.rubocop_todo/gitlab/delegate_predicate_methods.yml @@ -0,0 +1,10 @@ +--- +Gitlab/DelegatePredicateMethods: + Exclude: + - app/models/clusters/cluster.rb + - app/models/concerns/ci/metadatable.rb + - app/models/concerns/integrations/base_data_fields.rb + - app/models/project.rb + - ee/app/models/concerns/ee/ci/metadatable.rb + - ee/app/models/license.rb + - lib/gitlab/ci/trace/stream.rb diff --git a/.rubocop_todo/gitlab/feature_available_usage.yml b/.rubocop_todo/gitlab/feature_available_usage.yml new file mode 100644 index 0000000000..2a0975a6e9 --- /dev/null +++ b/.rubocop_todo/gitlab/feature_available_usage.yml @@ -0,0 +1,189 @@ +--- +Gitlab/FeatureAvailableUsage: + Exclude: + - app/controllers/projects/application_controller.rb + - app/graphql/types/project_type.rb + - app/helpers/events_helper.rb + - app/helpers/labels_helper.rb + - app/policies/project_policy.rb + - app/views/shared/boards/_switcher.html.haml + - ee/app/controllers/concerns/description_diff_actions.rb + - ee/app/controllers/concerns/ee/boards_actions.rb + - ee/app/controllers/concerns/security_dashboards_permissions.rb + - ee/app/controllers/ee/boards/lists_controller.rb + - ee/app/controllers/ee/projects/autocomplete_sources_controller.rb + - ee/app/controllers/ee/projects/issues_controller.rb + - ee/app/controllers/ee/projects/security/configuration_controller.rb + - ee/app/controllers/ee/projects/settings/ci_cd_controller.rb + - ee/app/controllers/ee/projects/settings/operations_controller.rb + - ee/app/controllers/ee/projects/settings/repository_controller.rb + - ee/app/controllers/projects/audit_events_controller.rb + - ee/app/controllers/projects/cluster_agents_controller.rb + - ee/app/controllers/projects/iterations/inherited_controller.rb + - ee/app/controllers/projects/iterations_controller.rb + - ee/app/controllers/projects/path_locks_controller.rb + - ee/app/controllers/projects/subscriptions_controller.rb + - ee/app/finders/autocomplete/vulnerabilities_autocomplete_finder.rb + - ee/app/finders/clusters/agents_finder.rb + - ee/app/finders/ee/alert_management/alerts_finder.rb + - ee/app/finders/ee/alert_management/http_integrations_finder.rb + - ee/app/graphql/ee/types/group_type.rb + - ee/app/graphql/mutations/dast/profiles/create.rb + - ee/app/graphql/mutations/dast/profiles/run.rb + - ee/app/graphql/mutations/dast/profiles/update.rb + - ee/app/graphql/mutations/instance_security_dashboard/remove_project.rb + - ee/app/graphql/resolvers/clusters/agent_tokens_resolver.rb + - ee/app/helpers/ee/application_helper.rb + - ee/app/helpers/ee/boards_helper.rb + - ee/app/helpers/ee/clusters_helper.rb + - ee/app/helpers/ee/dashboard_helper.rb + - ee/app/helpers/ee/form_helper.rb + - ee/app/helpers/ee/graph_helper.rb + - ee/app/helpers/ee/issues_helper.rb + - ee/app/helpers/ee/lock_helper.rb + - ee/app/helpers/ee/operations_helper.rb + - ee/app/helpers/ee/projects/incidents_helper.rb + - ee/app/helpers/ee/projects_helper.rb + - ee/app/helpers/ee/releases_helper.rb + - ee/app/helpers/ee/search_helper.rb + - ee/app/helpers/ee/tree_helper.rb + - ee/app/models/approval_state.rb + - ee/app/models/concerns/approvable.rb + - ee/app/models/concerns/ee/project_security_scanners_information.rb + - ee/app/models/concerns/ee/protected_ref_access.rb + - ee/app/models/concerns/has_timelogs_report.rb + - ee/app/models/concerns/insights_feature.rb + - ee/app/models/ee/board.rb + - ee/app/models/ee/ci/build.rb + - ee/app/models/ee/ci/build_dependencies.rb + - ee/app/models/ee/ci/pipeline.rb + - ee/app/models/ee/group.rb + - ee/app/models/ee/group_member.rb + - ee/app/models/ee/issue.rb + - ee/app/models/ee/list.rb + - ee/app/models/ee/merge_request.rb + - ee/app/models/ee/milestone_release.rb + - ee/app/models/ee/namespace.rb + - ee/app/models/ee/namespace_setting.rb + - ee/app/models/ee/project.rb + - ee/app/models/ee/project_ci_cd_setting.rb + - ee/app/models/namespace_statistics.rb + - ee/app/models/project_security_setting.rb + - ee/app/policies/compliance_management/framework_policy.rb + - ee/app/policies/ee/group_policy.rb + - ee/app/policies/ee/namespace_policy.rb + - ee/app/policies/ee/project_policy.rb + - ee/app/policies/ee/protected_branch_policy.rb + - ee/app/presenters/ee/label_presenter.rb + - ee/app/presenters/merge_request_approver_presenter.rb + - ee/app/serializers/dashboard_operations_project_entity.rb + - ee/app/serializers/ee/environment_entity.rb + - ee/app/serializers/ee/evidences/release_entity.rb + - ee/app/serializers/ee/note_entity.rb + - ee/app/services/boards/epic_boards/update_service.rb + - ee/app/services/ci/audit_variable_change_service.rb + - ee/app/services/clusters/agent_tokens/create_service.rb + - ee/app/services/clusters/agents/create_service.rb + - ee/app/services/dashboard/projects/create_service.rb + - ee/app/services/dashboard/projects/list_service.rb + - ee/app/services/dast/profiles/create_service.rb + - ee/app/services/dast/profiles/update_service.rb + - ee/app/services/dast_on_demand_scans/create_service.rb + - ee/app/services/dast_site_tokens/create_service.rb + - ee/app/services/dast_site_validations/create_service.rb + - ee/app/services/dast_site_validations/revoke_service.rb + - ee/app/services/dast_site_validations/validate_service.rb + - ee/app/services/ee/alert_management/http_integrations/create_service.rb + - ee/app/services/ee/audit_event_service.rb + - ee/app/services/ee/boards/issues/list_service.rb + - ee/app/services/ee/boards/lists/create_service.rb + - ee/app/services/ee/boards/update_service.rb + - ee/app/services/ee/ide/schemas_config_service.rb + - ee/app/services/ee/issuable_base_service.rb + - ee/app/services/ee/issue_links/create_service.rb + - ee/app/services/ee/issues/build_service.rb + - ee/app/services/ee/lfs/lock_file_service.rb + - ee/app/services/ee/lfs/unlock_file_service.rb + - ee/app/services/ee/merge_requests/approval_service.rb + - ee/app/services/ee/merge_requests/build_service.rb + - ee/app/services/ee/merge_requests/merge_base_service.rb + - ee/app/services/ee/merge_requests/refresh_service.rb + - ee/app/services/ee/merge_requests/update_service.rb + - ee/app/services/ee/projects/create_service.rb + - ee/app/services/ee/protected_branches/create_service.rb + - ee/app/services/ee/releases/create_evidence_service.rb + - ee/app/services/iterations/create_service.rb + - ee/app/services/iterations/update_service.rb + - ee/app/services/merge_requests/sync_report_approver_approval_rules.rb + - ee/app/services/merge_requests/update_blocks_service.rb + - ee/app/services/projects/mark_for_deletion_service.rb + - ee/app/services/quality_management/test_cases/create_service.rb + - ee/app/services/requirements_management/process_test_reports_service.rb + - ee/app/services/security/store_scans_service.rb + - ee/app/views/layouts/nav/_test_cases_link.html.haml + - ee/app/views/layouts/nav/sidebar/_project_iterations_link.html.haml + - ee/app/views/projects/_merge_request_approvals_settings.html.haml + - ee/app/views/projects/_merge_request_settings.html.haml + - ee/app/views/projects/_merge_request_settings_description_text.html.haml + - ee/app/views/projects/audit_events/index.html.haml + - ee/app/views/projects/blob/_header_file_locks.html.haml + - ee/app/views/projects/issues/_related_issues.html.haml + - ee/app/views/projects/merge_requests/show.html.haml + - ee/app/views/projects/merge_requests/show.html.haml + - ee/app/views/projects/merge_requests/show.html.haml + - ee/app/views/projects/merge_requests/show.html.haml + - ee/app/views/projects/merge_requests/show.html.haml + - ee/app/views/projects/merge_requests/show.html.haml + - ee/app/views/projects/merge_requests/show.html.haml + - ee/app/views/projects/merge_requests/show.html.haml + - ee/app/views/projects/merge_requests/show.html.haml + - ee/app/views/projects/pipelines/_tabs_content.html.haml + - ee/app/views/projects/protected_branches/ee/_code_owner_approval_form.html.haml + - ee/app/views/projects/protected_branches/ee/_code_owner_approval_table.html.haml + - ee/app/views/projects/protected_branches/ee/_code_owner_approval_table_head.html.haml + - ee/app/views/projects/push_rules/_index.html.haml + - ee/app/views/projects/settings/_default_issue_template.html.haml + - ee/app/views/projects/settings/_marked_for_removal.html.haml + - ee/app/views/projects/settings/_restore.html.haml + - ee/app/views/projects/settings/ci_cd/_auto_rollback.html.haml + - ee/app/views/projects/settings/ci_cd/_pipeline_subscriptions.html.haml + - ee/app/views/projects/settings/operations/_status_page.html.haml + - ee/app/views/projects/settings/repository/_protected_branches.html.haml + - ee/app/views/projects/sidebar/_repository_locked_files.html.haml + - ee/app/views/shared/issuable/_group_bulk_update_sidebar.html.haml + - ee/app/views/shared/issuable/form/_default_templates.html.haml + - ee/app/views/shared/labels/_create_label_help_text.html.haml + - ee/app/views/shared/promotions/_promote_mr_features.html.haml + - ee/app/views/shared/promotions/_promote_mr_features.html.haml + - ee/app/views/shared/promotions/_promote_repository_features.html.haml + - ee/app/views/shared/promotions/_promote_repository_features.html.haml + - ee/app/views/shared/promotions/_promote_repository_features.html.haml + - ee/app/views/shared/promotions/_promote_repository_features.html.haml + - ee/app/views/shared/promotions/_promote_repository_features.html.haml + - ee/app/views/shared/promotions/_promote_repository_features.html.haml + - ee/app/workers/analytics/code_review_metrics_worker.rb + - ee/app/workers/group_saml_group_sync_worker.rb + - ee/lib/api/external_status_checks.rb + - ee/lib/ee/api/entities/approval_state.rb + - ee/lib/ee/api/entities/board.rb + - ee/lib/ee/api/entities/issue.rb + - ee/lib/ee/api/entities/project.rb + - ee/lib/ee/api/helpers.rb + - ee/lib/ee/api/internal/kubernetes.rb + - ee/lib/ee/api/job_artifacts.rb + - ee/lib/ee/api/projects.rb + - ee/lib/ee/gitlab/alert_management/payload/generic.rb + - ee/lib/ee/gitlab/checks/diff_check.rb + - ee/lib/ee/gitlab/gon_helper.rb + - ee/lib/ee/gitlab/tree_summary.rb + - ee/lib/gitlab/alert_management.rb + - ee/lib/gitlab/ci/pipeline/chain/config/content/compliance.rb + - ee/lib/gitlab/code_owners.rb + - ee/lib/gitlab/incident_management.rb + - ee/lib/gitlab/path_locks_finder.rb + - ee/lib/incident_management/incident_sla.rb + - ee/spec/models/instance_security_dashboard_spec.rb + - ee/spec/models/license_spec.rb + - ee/spec/models/project_spec.rb + - lib/api/helpers/related_resources_helpers.rb + - spec/models/concerns/featurable_spec.rb diff --git a/.rubocop_todo/gitlab/namespaced_class.yml b/.rubocop_todo/gitlab/namespaced_class.yml new file mode 100644 index 0000000000..898768c242 --- /dev/null +++ b/.rubocop_todo/gitlab/namespaced_class.yml @@ -0,0 +1,1198 @@ +--- +Gitlab/NamespacedClass: + Exclude: + - app/channels/issues_channel.rb + - app/controllers/abuse_reports_controller.rb + - app/controllers/acme_challenges_controller.rb + - app/controllers/application_controller.rb + - app/controllers/autocomplete_controller.rb + - app/controllers/chaos_controller.rb + - app/controllers/confirmations_controller.rb + - app/controllers/dashboard_controller.rb + - app/controllers/graphql_controller.rb + - app/controllers/groups_controller.rb + - app/controllers/health_check_controller.rb + - app/controllers/health_controller.rb + - app/controllers/help_controller.rb + - app/controllers/ide_controller.rb + - app/controllers/invites_controller.rb + - app/controllers/jwks_controller.rb + - app/controllers/jwt_controller.rb + - app/controllers/metrics_controller.rb + - app/controllers/notification_settings_controller.rb + - app/controllers/omniauth_callbacks_controller.rb + - app/controllers/passwords_controller.rb + - app/controllers/profiles_controller.rb + - app/controllers/projects_controller.rb + - app/controllers/registrations_controller.rb + - app/controllers/root_controller.rb + - app/controllers/runner_setup_controller.rb + - app/controllers/search_controller.rb + - app/controllers/sent_notifications_controller.rb + - app/controllers/sessions_controller.rb + - app/controllers/snippets_controller.rb + - app/controllers/uploads_controller.rb + - app/controllers/users_controller.rb + - app/controllers/whats_new_controller.rb + - app/finders/abuse_reports_finder.rb + - app/finders/access_requests_finder.rb + - app/finders/admin/projects_finder.rb + - app/finders/applications_finder.rb + - app/finders/award_emojis_finder.rb + - app/finders/branches_finder.rb + - app/finders/cluster_ancestors_finder.rb + - app/finders/clusters_finder.rb + - app/finders/container_repositories_finder.rb + - app/finders/context_commits_finder.rb + - app/finders/contributed_projects_finder.rb + - app/finders/deployments_finder.rb + - app/finders/events_finder.rb + - app/finders/feature_flags_finder.rb + - app/finders/feature_flags_user_lists_finder.rb + - app/finders/fork_projects_finder.rb + - app/finders/fork_targets_finder.rb + - app/finders/freeze_periods_finder.rb + - app/finders/git_refs_finder.rb + - app/finders/group_descendants_finder.rb + - app/finders/group_finder.rb + - app/finders/group_members_finder.rb + - app/finders/group_projects_finder.rb + - app/finders/groups_finder.rb + - app/finders/issuable_finder.rb + - app/finders/issuable_finder/params.rb + - app/finders/issues_finder.rb + - app/finders/issues_finder/params.rb + - app/finders/joined_groups_finder.rb + - app/finders/keys_finder.rb + - app/finders/labels_finder.rb + - app/finders/lfs_pointers_finder.rb + - app/finders/license_template_finder.rb + - app/finders/members_finder.rb + - app/finders/merge_request_target_project_finder.rb + - app/finders/merge_requests_finder.rb + - app/finders/merge_requests_finder/params.rb + - app/finders/milestones_finder.rb + - app/finders/notes_finder.rb + - app/finders/pending_todos_finder.rb + - app/finders/personal_access_tokens_finder.rb + - app/finders/personal_projects_finder.rb + - app/finders/projects_finder.rb + - app/finders/prometheus_metrics_finder.rb + - app/finders/protected_branches_finder.rb + - app/finders/releases_finder.rb + - app/finders/resource_milestone_event_finder.rb + - app/finders/resource_state_event_finder.rb + - app/finders/sentry_issue_finder.rb + - app/finders/serverless_domain_finder.rb + - app/finders/snippets_finder.rb + - app/finders/starred_projects_finder.rb + - app/finders/tags_finder.rb + - app/finders/template_finder.rb + - app/finders/todos_finder.rb + - app/finders/union_finder.rb + - app/finders/uploader_finder.rb + - app/finders/user_finder.rb + - app/finders/user_group_notification_settings_finder.rb + - app/finders/user_groups_counter.rb + - app/finders/user_recent_events_finder.rb + - app/finders/users_finder.rb + - app/finders/users_star_projects_finder.rb + - app/finders/users_with_pending_todos_finder.rb + - app/graphql/gitlab_schema.rb + - app/mailers/abuse_report_mailer.rb + - app/mailers/application_mailer.rb + - app/mailers/devise_mailer.rb + - app/mailers/email_rejection_mailer.rb + - app/mailers/notify.rb + - app/mailers/previews/devise_mailer_preview.rb + - app/mailers/previews/email_rejection_mailer_preview.rb + - app/mailers/previews/notify_preview.rb + - app/mailers/previews/repository_check_mailer_preview.rb + - app/mailers/repository_check_mailer.rb + - app/models/ability.rb + - app/models/abuse_report.rb + - app/models/active_session.rb + - app/models/appearance.rb + - app/models/application_record.rb + - app/models/application_setting.rb + - app/models/application_setting/term.rb + - app/models/approval.rb + - app/models/audit_event.rb + - app/models/authentication_event.rb + - app/models/award_emoji.rb + - app/models/badge.rb + - app/models/badges/group_badge.rb + - app/models/badges/project_badge.rb + - app/models/blob.rb + - app/models/board.rb + - app/models/board_group_recent_visit.rb + - app/models/board_project_recent_visit.rb + - app/models/broadcast_message.rb + - app/models/bulk_import.rb + - app/models/chat_name.rb + - app/models/chat_team.rb + - app/models/ci_platform_metric.rb + - app/models/commit.rb + - app/models/commit_collection.rb + - app/models/commit_range.rb + - app/models/commit_status.rb + - app/models/commit_user_mention.rb + - app/models/commit_with_pipeline.rb + - app/models/compare.rb + - app/models/concerns/uniquify.rb + - app/models/container_expiration_policy.rb + - app/models/container_repository.rb + - app/models/context_commits_diff.rb + - app/models/custom_emoji.rb + - app/models/data_list.rb + - app/models/deploy_key.rb + - app/models/deploy_keys_project.rb + - app/models/deploy_token.rb + - app/models/deployment.rb + - app/models/deployment_cluster.rb + - app/models/deployment_merge_request.rb + - app/models/deployment_metrics.rb + - app/models/description_version.rb + - app/models/design_user_mention.rb + - app/models/diff_discussion.rb + - app/models/diff_note.rb + - app/models/diff_note_position.rb + - app/models/directly_addressed_user.rb + - app/models/discussion.rb + - app/models/discussion_note.rb + - app/models/draft_note.rb + - app/models/email.rb + - app/models/environment.rb + - app/models/environment_status.rb + - app/models/epic.rb + - app/models/event.rb + - app/models/event_collection.rb + - app/models/experiment.rb + - app/models/experiment_subject.rb + - app/models/experiment_user.rb + - app/models/exported_protected_branch.rb + - app/models/external_issue.rb + - app/models/external_pull_request.rb + - app/models/fork_network.rb + - app/models/fork_network_member.rb + - app/models/generic_commit_status.rb + - app/models/gpg_key.rb + - app/models/gpg_key_subkey.rb + - app/models/gpg_signature.rb + - app/models/grafana_integration.rb + - app/models/group.rb + - app/models/group_custom_attribute.rb + - app/models/group_deploy_key.rb + - app/models/group_deploy_keys_group.rb + - app/models/group_deploy_token.rb + - app/models/group_group_link.rb + - app/models/group_import_state.rb + - app/models/group_label.rb + - app/models/guest.rb + - app/models/hooks/active_hook_filter.rb + - app/models/hooks/project_hook.rb + - app/models/hooks/service_hook.rb + - app/models/hooks/system_hook.rb + - app/models/hooks/web_hook.rb + - app/models/hooks/web_hook_log.rb + - app/models/identity.rb + - app/models/identity/uniqueness_scopes.rb + - app/models/import_export_upload.rb + - app/models/import_failure.rb + - app/models/individual_note_discussion.rb + - app/models/instance_configuration.rb + - app/models/instance_metadata.rb + - app/models/integration.rb + - app/models/internal_id.rb + - app/models/issuable_severity.rb + - app/models/issue.rb + - app/models/issue/metrics.rb + - app/models/issue_assignee.rb + - app/models/issue_collection.rb + - app/models/issue_email_participant.rb + - app/models/issue_link.rb + - app/models/issue_user_mention.rb + - app/models/iteration.rb + - app/models/jira_connect_installation.rb + - app/models/jira_connect_subscription.rb + - app/models/jira_import_state.rb + - app/models/key.rb + - app/models/label.rb + - app/models/label_link.rb + - app/models/label_note.rb + - app/models/label_priority.rb + - app/models/legacy_diff_discussion.rb + - app/models/legacy_diff_note.rb + - app/models/lfs_download_object.rb + - app/models/lfs_file_lock.rb + - app/models/lfs_object.rb + - app/models/lfs_objects_project.rb + - app/models/license_template.rb + - app/models/list.rb + - app/models/list_user_preference.rb + - app/models/member.rb + - app/models/members/group_member.rb + - app/models/members/last_group_owner_assigner.rb + - app/models/members/project_member.rb + - app/models/members/member_task.rb + - app/models/members_preloader.rb + - app/models/merge_request.rb + - app/models/merge_request_assignee.rb + - app/models/merge_request_context_commit.rb + - app/models/merge_request_context_commit_diff_file.rb + - app/models/merge_request_diff.rb + - app/models/merge_request_diff_commit.rb + - app/models/merge_request_diff_file.rb + - app/models/merge_request_reviewer.rb + - app/models/merge_request_user_mention.rb + - app/models/merge_requests_closing_issues.rb + - app/models/milestone.rb + - app/models/milestone_note.rb + - app/models/milestone_release.rb + - app/models/namespace.rb + - app/models/namespace/traversal_hierarchy.rb + - app/models/namespace_onboarding_action.rb + - app/models/namespace_setting.rb + - app/models/note.rb + - app/models/note_diff_file.rb + - app/models/notification_reason.rb + - app/models/notification_recipient.rb + - app/models/notification_setting.rb + - app/models/oauth_access_grant.rb + - app/models/oauth_access_token.rb + - app/models/out_of_context_discussion.rb + - app/models/onboarding_progress.rb + - app/models/pages_deployment.rb + - app/models/pages_domain.rb + - app/models/pages_domain_acme_order.rb + - app/models/personal_access_token.rb + - app/models/personal_snippet.rb + - app/models/plan.rb + - app/models/plan_limits.rb + - app/models/pool_repository.rb + - app/models/product_analytics_event.rb + - app/models/programming_language.rb + - app/models/project.rb + - app/models/project_authorization.rb + - app/models/project_auto_devops.rb + - app/models/project_ci_cd_setting.rb + - app/models/project_custom_attribute.rb + - app/models/project_daily_statistic.rb + - app/models/project_deploy_token.rb + - app/models/project_export_job.rb + - app/models/project_feature.rb + - app/models/project_feature_usage.rb + - app/models/project_group_link.rb + - app/models/project_import_data.rb + - app/models/project_import_state.rb + - app/models/project_label.rb + - app/models/project_metrics_setting.rb + - app/models/project_pages_metadatum.rb + - app/models/project_repository.rb + - app/models/project_repository_storage_move.rb + - app/models/project_setting.rb + - app/models/project_snippet.rb + - app/models/project_statistics.rb + - app/models/project_team.rb + - app/models/project_tracing_setting.rb + - app/models/project_wiki.rb + - app/models/prometheus_alert.rb + - app/models/prometheus_alert_event.rb + - app/models/prometheus_metric.rb + - app/models/protectable_dropdown.rb + - app/models/protected_branch.rb + - app/models/protected_tag.rb + - app/models/push_event.rb + - app/models/push_event_payload.rb + - app/models/raw_usage_data.rb + - app/models/readme_blob.rb + - app/models/redirect_route.rb + - app/models/ref_matcher.rb + - app/models/release.rb + - app/models/release_highlight.rb + - app/models/remote_mirror.rb + - app/models/repository.rb + - app/models/repository_language.rb + - app/models/resource_event.rb + - app/models/resource_label_event.rb + - app/models/resource_milestone_event.rb + - app/models/resource_state_event.rb + - app/models/resource_timebox_event.rb + - app/models/review.rb + - app/models/route.rb + - app/models/self_managed_prometheus_alert_event.rb + - app/models/sent_notification.rb + - app/models/sentry_issue.rb + - app/models/service_desk_setting.rb + - app/models/service_list.rb + - app/models/shard.rb + - app/models/snippet.rb + - app/models/snippet_blob.rb + - app/models/snippet_input_action.rb + - app/models/snippet_input_action_collection.rb + - app/models/snippet_repository.rb + - app/models/snippet_repository_storage_move.rb + - app/models/snippet_statistics.rb + - app/models/snippet_user_mention.rb + - app/models/spam_log.rb + - app/models/ssh_host_key.rb + - app/models/state_note.rb + - app/models/subscription.rb + - app/models/suggestion.rb + - app/models/synthetic_note.rb + - app/models/system_note_metadata.rb + - app/models/term_agreement.rb + - app/models/timelog.rb + - app/models/todo.rb + - app/models/tree.rb + - app/models/trending_project.rb + - app/models/u2f_registration.rb + - app/models/upload.rb + - app/models/user.rb + - app/models/user_agent_detail.rb + - app/models/user_canonical_email.rb + - app/models/user_custom_attribute.rb + - app/models/user_detail.rb + - app/models/user_highest_role.rb + - app/models/user_interacted_project.rb + - app/models/user_mention.rb + - app/models/user_preference.rb + - app/models/user_status.rb + - app/models/user_synced_attributes_metadata.rb + - app/models/users_star_project.rb + - app/models/users_statistics.rb + - app/models/vulnerability.rb + - app/models/web_ide_terminal.rb + - app/models/webauthn_registration.rb + - app/models/wiki.rb + - app/models/wiki_directory.rb + - app/models/wiki_page.rb + - app/models/wiki_page/meta.rb + - app/models/wiki_page/slug.rb + - app/models/x509_certificate.rb + - app/models/x509_commit_signature.rb + - app/models/x509_issuer.rb + - app/models/zoom_meeting.rb + - app/policies/application_setting/term_policy.rb + - app/policies/award_emoji_policy.rb + - app/policies/base_policy.rb + - app/policies/blob_policy.rb + - app/policies/board_policy.rb + - app/policies/commit_policy.rb + - app/policies/commit_status_policy.rb + - app/policies/container_expiration_policy_policy.rb + - app/policies/container_repository_policy.rb + - app/policies/custom_emoji_policy.rb + - app/policies/deploy_key_policy.rb + - app/policies/deploy_keys_project_policy.rb + - app/policies/deploy_token_policy.rb + - app/policies/deployment_policy.rb + - app/policies/draft_note_policy.rb + - app/policies/environment_policy.rb + - app/policies/external_issue_policy.rb + - app/policies/global_policy.rb + - app/policies/grafana_integration_policy.rb + - app/policies/group_deploy_key_policy.rb + - app/policies/group_deploy_keys_group_policy.rb + - app/policies/group_label_policy.rb + - app/policies/group_member_policy.rb + - app/policies/group_policy.rb + - app/policies/identity_provider_policy.rb + - app/policies/instance_metadata_policy.rb + - app/policies/integration_policy.rb + - app/policies/issuable_policy.rb + - app/policies/issue_policy.rb + - app/policies/merge_request_policy.rb + - app/policies/milestone_policy.rb + - app/policies/namespace_policy.rb + - app/policies/nil_policy.rb + - app/policies/note_policy.rb + - app/policies/personal_access_token_policy.rb + - app/policies/personal_snippet_policy.rb + - app/policies/project_ci_cd_setting_policy.rb + - app/policies/project_label_policy.rb + - app/policies/project_member_policy.rb + - app/policies/project_policy.rb + - app/policies/project_snippet_policy.rb + - app/policies/project_statistics_policy.rb + - app/policies/prometheus_alert_policy.rb + - app/policies/protected_branch_policy.rb + - app/policies/release_policy.rb + - app/policies/repository_policy.rb + - app/policies/resource_label_event_policy.rb + - app/policies/suggestion_policy.rb + - app/policies/timebox_policy.rb + - app/policies/timelog_policy.rb + - app/policies/todo_policy.rb + - app/policies/user_policy.rb + - app/policies/wiki_page_policy.rb + - app/policies/wiki_policy.rb + - app/presenters/award_emoji_presenter.rb + - app/presenters/blob_presenter.rb + - app/presenters/board_presenter.rb + - app/presenters/clusterable_presenter.rb + - app/presenters/commit_presenter.rb + - app/presenters/commit_status_presenter.rb + - app/presenters/environment_presenter.rb + - app/presenters/event_presenter.rb + - app/presenters/generic_commit_status_presenter.rb + - app/presenters/group_clusterable_presenter.rb + - app/presenters/group_member_presenter.rb + - app/presenters/instance_clusterable_presenter.rb + - app/presenters/invitation_presenter.rb + - app/presenters/issue_presenter.rb + - app/presenters/label_presenter.rb + - app/presenters/member_presenter.rb + - app/presenters/members_presenter.rb + - app/presenters/merge_request_presenter.rb + - app/presenters/milestone_presenter.rb + - app/presenters/pages_domain_presenter.rb + - app/presenters/project_clusterable_presenter.rb + - app/presenters/project_hook_presenter.rb + - app/presenters/project_member_presenter.rb + - app/presenters/project_presenter.rb + - app/presenters/prometheus_alert_presenter.rb + - app/presenters/release_presenter.rb + - app/presenters/search_service_presenter.rb + - app/presenters/sentry_error_presenter.rb + - app/presenters/service_hook_presenter.rb + - app/presenters/snippet_blob_presenter.rb + - app/presenters/snippet_presenter.rb + - app/presenters/todo_presenter.rb + - app/presenters/tree_entry_presenter.rb + - app/presenters/user_presenter.rb + - app/presenters/web_hook_log_presenter.rb + - app/serializers/accessibility_error_entity.rb + - app/serializers/accessibility_reports_comparer_entity.rb + - app/serializers/accessibility_reports_comparer_serializer.rb + - app/serializers/analytics_build_entity.rb + - app/serializers/analytics_build_serializer.rb + - app/serializers/analytics_commit_entity.rb + - app/serializers/analytics_commit_serializer.rb + - app/serializers/analytics_generic_serializer.rb + - app/serializers/analytics_issue_entity.rb + - app/serializers/analytics_issue_serializer.rb + - app/serializers/analytics_merge_request_entity.rb + - app/serializers/analytics_merge_request_serializer.rb + - app/serializers/analytics_stage_entity.rb + - app/serializers/analytics_stage_serializer.rb + - app/serializers/analytics_summary_entity.rb + - app/serializers/analytics_summary_serializer.rb + - app/serializers/award_emoji_entity.rb + - app/serializers/base_discussion_entity.rb + - app/serializers/base_serializer.rb + - app/serializers/blob_entity.rb + - app/serializers/board_serializer.rb + - app/serializers/board_simple_entity.rb + - app/serializers/build_action_entity.rb + - app/serializers/build_artifact_entity.rb + - app/serializers/build_coverage_entity.rb + - app/serializers/build_details_entity.rb + - app/serializers/build_metadata_entity.rb + - app/serializers/build_serializer.rb + - app/serializers/build_trace_entity.rb + - app/serializers/build_trace_serializer.rb + - app/serializers/cluster_application_entity.rb + - app/serializers/cluster_entity.rb + - app/serializers/cluster_error_entity.rb + - app/serializers/cluster_serializer.rb + - app/serializers/codequality_degradation_entity.rb + - app/serializers/codequality_reports_comparer_entity.rb + - app/serializers/codequality_reports_comparer_serializer.rb + - app/serializers/cohort_activity_month_entity.rb + - app/serializers/cohort_entity.rb + - app/serializers/cohorts_entity.rb + - app/serializers/cohorts_serializer.rb + - app/serializers/commit_entity.rb + - app/serializers/container_repositories_serializer.rb + - app/serializers/container_repository_entity.rb + - app/serializers/container_tag_entity.rb + - app/serializers/container_tags_serializer.rb + - app/serializers/context_commits_diff_entity.rb + - app/serializers/current_board_entity.rb + - app/serializers/current_board_serializer.rb + - app/serializers/current_user_entity.rb + - app/serializers/deploy_key_entity.rb + - app/serializers/deploy_key_serializer.rb + - app/serializers/deploy_keys_project_entity.rb + - app/serializers/deployment_cluster_entity.rb + - app/serializers/deployment_entity.rb + - app/serializers/deployment_serializer.rb + - app/serializers/detailed_status_entity.rb + - app/serializers/diff_file_base_entity.rb + - app/serializers/diff_file_entity.rb + - app/serializers/diff_file_metadata_entity.rb + - app/serializers/diff_line_entity.rb + - app/serializers/diff_line_parallel_entity.rb + - app/serializers/diff_line_serializer.rb + - app/serializers/diff_viewer_entity.rb + - app/serializers/diffs_entity.rb + - app/serializers/diffs_metadata_entity.rb + - app/serializers/diffs_metadata_serializer.rb + - app/serializers/diffs_serializer.rb + - app/serializers/discussion_diff_file_entity.rb + - app/serializers/discussion_entity.rb + - app/serializers/discussion_serializer.rb + - app/serializers/draft_note_entity.rb + - app/serializers/draft_note_serializer.rb + - app/serializers/entity_request.rb + - app/serializers/environment_entity.rb + - app/serializers/environment_serializer.rb + - app/serializers/environment_status_entity.rb + - app/serializers/environment_status_serializer.rb + - app/serializers/feature_flag_entity.rb + - app/serializers/feature_flag_scope_entity.rb + - app/serializers/feature_flag_serializer.rb + - app/serializers/feature_flag_summary_entity.rb + - app/serializers/feature_flag_summary_serializer.rb + - app/serializers/feature_flags_client_entity.rb + - app/serializers/feature_flags_client_serializer.rb + - app/serializers/fork_namespace_entity.rb + - app/serializers/fork_namespace_serializer.rb + - app/serializers/group_analytics_stage_entity.rb + - app/serializers/group_analytics_stage_serializer.rb + - app/serializers/group_basic_entity.rb + - app/serializers/group_child_entity.rb + - app/serializers/group_child_serializer.rb + - app/serializers/group_deploy_key_entity.rb + - app/serializers/group_deploy_key_serializer.rb + - app/serializers/group_deploy_keys_group_entity.rb + - app/serializers/group_entity.rb + - app/serializers/group_group_link_entity.rb + - app/serializers/group_group_link_serializer.rb + - app/serializers/group_issuable_autocomplete_entity.rb + - app/serializers/group_issuable_autocomplete_serializer.rb + - app/serializers/group_serializer.rb + - app/serializers/issuable_entity.rb + - app/serializers/issuable_sidebar_basic_entity.rb + - app/serializers/issuable_sidebar_extras_entity.rb + - app/serializers/issuable_sidebar_todo_entity.rb + - app/serializers/issue_board_entity.rb + - app/serializers/issue_entity.rb + - app/serializers/issue_serializer.rb + - app/serializers/issue_sidebar_basic_entity.rb + - app/serializers/issue_sidebar_extras_entity.rb + - app/serializers/job_artifact_report_entity.rb + - app/serializers/job_entity.rb + - app/serializers/job_group_entity.rb + - app/serializers/label_entity.rb + - app/serializers/label_serializer.rb + - app/serializers/lfs_file_lock_entity.rb + - app/serializers/lfs_file_lock_serializer.rb + - app/serializers/linked_issue_entity.rb + - app/serializers/linked_project_issue_entity.rb + - app/serializers/linked_project_issue_serializer.rb + - app/serializers/member_entity.rb + - app/serializers/member_serializer.rb + - app/serializers/member_user_entity.rb + - app/serializers/merge_request_basic_entity.rb + - app/serializers/merge_request_create_entity.rb + - app/serializers/merge_request_create_serializer.rb + - app/serializers/merge_request_current_user_entity.rb + - app/serializers/merge_request_diff_entity.rb + - app/serializers/merge_request_for_pipeline_entity.rb + - app/serializers/merge_request_metrics_entity.rb + - app/serializers/merge_request_noteable_entity.rb + - app/serializers/merge_request_poll_cached_widget_entity.rb + - app/serializers/merge_request_poll_widget_entity.rb + - app/serializers/merge_request_serializer.rb + - app/serializers/merge_request_sidebar_basic_entity.rb + - app/serializers/merge_request_sidebar_extras_entity.rb + - app/serializers/merge_request_user_entity.rb + - app/serializers/merge_request_widget_commit_entity.rb + - app/serializers/merge_request_widget_entity.rb + - app/serializers/move_to_project_entity.rb + - app/serializers/move_to_project_serializer.rb + - app/serializers/namespace_basic_entity.rb + - app/serializers/namespace_serializer.rb + - app/serializers/note_attachment_entity.rb + - app/serializers/note_entity.rb + - app/serializers/note_user_entity.rb + - app/serializers/paginated_diff_entity.rb + - app/serializers/paginated_diff_serializer.rb + - app/serializers/pipeline_details_entity.rb + - app/serializers/pipeline_entity.rb + - app/serializers/pipeline_serializer.rb + - app/serializers/project_entity.rb + - app/serializers/project_import_entity.rb + - app/serializers/project_mirror_entity.rb + - app/serializers/project_mirror_serializer.rb + - app/serializers/project_note_entity.rb + - app/serializers/project_note_serializer.rb + - app/serializers/project_serializer.rb + - app/serializers/prometheus_alert_entity.rb + - app/serializers/prometheus_alert_serializer.rb + - app/serializers/prometheus_metric_entity.rb + - app/serializers/prometheus_metric_serializer.rb + - app/serializers/release_entity.rb + - app/serializers/release_serializer.rb + - app/serializers/remote_mirror_entity.rb + - app/serializers/review_app_setup_entity.rb + - app/serializers/review_app_setup_serializer.rb + - app/serializers/rollout_status_entity.rb + - app/serializers/route_entity.rb + - app/serializers/route_serializer.rb + - app/serializers/runner_entity.rb + - app/serializers/service_event_entity.rb + - app/serializers/service_event_serializer.rb + - app/serializers/service_field_entity.rb + - app/serializers/service_field_serializer.rb + - app/serializers/stage_entity.rb + - app/serializers/stage_serializer.rb + - app/serializers/suggestion_entity.rb + - app/serializers/suggestion_serializer.rb + - app/serializers/test_case_entity.rb + - app/serializers/test_report_entity.rb + - app/serializers/test_report_serializer.rb + - app/serializers/test_report_summary_entity.rb + - app/serializers/test_report_summary_serializer.rb + - app/serializers/test_reports_comparer_entity.rb + - app/serializers/test_reports_comparer_serializer.rb + - app/serializers/test_suite_comparer_entity.rb + - app/serializers/test_suite_entity.rb + - app/serializers/test_suite_serializer.rb + - app/serializers/test_suite_summary_entity.rb + - app/serializers/trigger_variable_entity.rb + - app/serializers/triggered_pipeline_entity.rb + - app/serializers/user_entity.rb + - app/serializers/user_preference_entity.rb + - app/serializers/user_serializer.rb + - app/serializers/web_ide_terminal_entity.rb + - app/serializers/web_ide_terminal_serializer.rb + - app/services/access_token_validation_service.rb + - app/services/audit_event_service.rb + - app/services/auto_merge_service.rb + - app/services/base_container_service.rb + - app/services/base_count_service.rb + - app/services/base_project_service.rb + - app/services/base_renderer.rb + - app/services/base_service.rb + - app/services/bulk_create_integration_service.rb + - app/services/bulk_import_service.rb + - app/services/bulk_push_event_payload_service.rb + - app/services/bulk_update_integration_service.rb + - app/services/cohorts_service.rb + - app/services/compare_service.rb + - app/services/container_expiration_policy_service.rb + - app/services/event_create_service.rb + - app/services/gravatar_service.rb + - app/services/import_export_clean_up_service.rb + - app/services/issuable_base_service.rb + - app/services/issue_rebalancing_service.rb + - app/services/markdown_content_rewriter_service.rb + - app/services/merge_request_metrics_service.rb + - app/services/metrics_service.rb + - app/services/note_summary.rb + - app/services/notification_service.rb + - app/services/onboarding_progress_service.rb + - app/services/post_receive_service.rb + - app/services/preview_markdown_service.rb + - app/services/push_event_payload_service.rb + - app/services/repository_archive_clean_up_service.rb + - app/services/reset_project_cache_service.rb + - app/services/search_service.rb + - app/services/service_response.rb + - app/services/service_ping/submit_service.rb + - app/services/system_hooks_service.rb + - app/services/task_list_toggle_service.rb + - app/services/todo_service.rb + - app/services/update_container_registry_info_service.rb + - app/services/upload_service.rb + - app/services/user_agent_detail_service.rb + - app/services/user_project_access_changed_service.rb + - app/services/verify_pages_domain_service.rb + - app/services/web_hook_service.rb + - app/services/x509_certificate_revoke_service.rb + - app/uploaders/attachment_uploader.rb + - app/uploaders/avatar_uploader.rb + - app/uploaders/deleted_object_uploader.rb + - app/uploaders/dependency_proxy/file_uploader.rb + - app/uploaders/external_diff_uploader.rb + - app/uploaders/favicon_uploader.rb + - app/uploaders/file_mover.rb + - app/uploaders/file_uploader.rb + - app/uploaders/gitlab_uploader.rb + - app/uploaders/import_export_uploader.rb + - app/uploaders/job_artifact_uploader.rb + - app/uploaders/lfs_object_uploader.rb + - app/uploaders/namespace_file_uploader.rb + - app/uploaders/personal_file_uploader.rb + - app/validators/abstract_path_validator.rb + - app/validators/addressable_url_validator.rb + - app/validators/any_field_validator.rb + - app/validators/array_members_validator.rb + - app/validators/branch_filter_validator.rb + - app/validators/certificate_fingerprint_validator.rb + - app/validators/certificate_key_validator.rb + - app/validators/certificate_validator.rb + - app/validators/cluster_name_validator.rb + - app/validators/color_validator.rb + - app/validators/cron_freeze_period_timezone_validator.rb + - app/validators/cron_timezone_validator.rb + - app/validators/cron_validator.rb + - app/validators/devise_email_validator.rb + - app/validators/duration_validator.rb + - app/validators/feature_flag_strategies_validator.rb + - app/validators/feature_flag_user_xids_validator.rb + - app/validators/future_date_validator.rb + - app/validators/html_safety_validator.rb + - app/validators/ip_address_validator.rb + - app/validators/js_regex_validator.rb + - app/validators/json_schema_validator.rb + - app/validators/key_restriction_validator.rb + - app/validators/line_code_validator.rb + - app/validators/named_ecdsa_key_validator.rb + - app/validators/namespace_path_validator.rb + - app/validators/project_path_validator.rb + - app/validators/public_url_validator.rb + - app/validators/qualified_domain_array_validator.rb + - app/validators/rsa_key_validator.rb + - app/validators/same_project_association_validator.rb + - app/validators/sha_validator.rb + - app/validators/system_hook_url_validator.rb + - app/validators/top_level_group_validator.rb + - app/validators/untrusted_regexp_validator.rb + - app/validators/nested_attributes_duplicates_validator.rb + - app/validators/x509_certificate_credentials_validator.rb + - app/workers/admin_email_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_projects_worker.rb + - app/workers/auto_merge_process_worker.rb + - app/workers/background_migration_worker.rb + - app/workers/build_coverage_worker.rb + - app/workers/build_finished_worker.rb + - app/workers/build_hooks_worker.rb + - app/workers/build_queue_worker.rb + - app/workers/build_success_worker.rb + - app/workers/build_trace_sections_worker.rb + - app/workers/bulk_import_worker.rb + - app/workers/chat_notification_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/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/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/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/error_tracking_issue_link_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/expire_pipeline_cache_worker.rb + - app/workers/export_csv_worker.rb + - app/workers/external_service_reactive_caching_worker.rb + - app/workers/file_hook_worker.rb + - app/workers/flush_counter_increments_worker.rb + - 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 + - app/workers/group_import_worker.rb + - app/workers/import_export_project_cleanup_worker.rb + - app/workers/import_issues_csv_worker.rb + - app/workers/invalid_gpg_signature_update_worker.rb + - app/workers/irker_worker.rb + - app/workers/issuable_export_csv_worker.rb + - app/workers/issue_due_scheduler_worker.rb + - app/workers/issue_placement_worker.rb + - app/workers/issue_rebalancing_worker.rb + - app/workers/member_invitation_reminder_emails_worker.rb + - app/workers/merge_request_cleanup_refs_worker.rb + - app/workers/merge_request_mergeability_check_worker.rb + - app/workers/merge_worker.rb + - app/workers/migrate_external_diffs_worker.rb + - app/workers/namespaceless_project_destroy_worker.rb + - app/workers/new_issue_worker.rb + - app/workers/new_merge_request_worker.rb + - app/workers/new_note_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_transfer_worker.rb + - app/workers/pages_update_configuration_worker.rb + - app/workers/pages_worker.rb + - app/workers/partition_creation_worker.rb + - app/workers/pipeline_hooks_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/pipeline_update_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_schedule_bulk_repository_shard_moves_worker.rb + - app/workers/project_service_worker.rb + - app/workers/project_update_repository_storage_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/prune_web_hook_logs_worker.rb + - app/workers/purge_dependency_proxy_cache_worker.rb + - app/workers/reactive_caching_worker.rb + - app/workers/rebase_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_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/snippet_schedule_bulk_repository_shard_moves_worker.rb + - app/workers/snippet_update_repository_storage_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/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/wait_for_cluster_creation_worker.rb + - app/workers/web_hook_worker.rb + - app/workers/x509_certificate_revoke_worker.rb + - app/workers/x509_issuer_crl_check_worker.rb + - ee/app/controllers/countries_controller.rb + - ee/app/controllers/country_states_controller.rb + - ee/app/controllers/omniauth_kerberos_spnego_controller.rb + - ee/app/controllers/operations_controller.rb + - ee/app/controllers/sitemap_controller.rb + - ee/app/controllers/smartcard_controller.rb + - ee/app/controllers/subscriptions_controller.rb + - ee/app/controllers/survey_responses_controller.rb + - ee/app/controllers/trial_registrations_controller.rb + - ee/app/controllers/trials_controller.rb + - ee/app/controllers/unsubscribes_controller.rb + - ee/app/controllers/usernames_controller.rb + - ee/app/finders/audit_log_finder.rb + - ee/app/finders/billed_users_finder.rb + - ee/app/finders/custom_project_templates_finder.rb + - ee/app/finders/dast_scanner_profiles_finder.rb + - ee/app/finders/dast_site_profiles_finder.rb + - ee/app/finders/dast_site_validations_finder.rb + - ee/app/finders/epics_finder.rb + - ee/app/finders/geo_node_finder.rb + - ee/app/finders/gpg_keys_finder.rb + - ee/app/finders/group_saml_identity_finder.rb + - ee/app/finders/groups_with_templates_finder.rb + - ee/app/finders/iterations_finder.rb + - ee/app/finders/licenses_finder.rb + - ee/app/finders/merge_requests_compliance_finder.rb + - ee/app/finders/merge_trains_finder.rb + - ee/app/finders/productivity_analytics_finder.rb + - ee/app/finders/scim_finder.rb + - ee/app/finders/software_license_policies_finder.rb + - ee/app/mailers/ci_minutes_usage_mailer.rb + - ee/app/mailers/credentials_inventory_mailer.rb + - ee/app/mailers/license_mailer.rb + - ee/app/mailers/previews/ci_minutes_usage_mailer_preview.rb + - ee/app/mailers/previews/license_mailer_preview.rb + - ee/app/models/allowed_email_domain.rb + - ee/app/models/approval_merge_request_rule.rb + - ee/app/models/approval_merge_request_rule_source.rb + - ee/app/models/approval_project_rule.rb + - ee/app/models/approval_project_rules_protected_branch.rb + - ee/app/models/approval_state.rb + - ee/app/models/approval_wrapped_any_approver_rule.rb + - ee/app/models/approval_wrapped_code_owner_rule.rb + - ee/app/models/approval_wrapped_rule.rb + - ee/app/models/approver.rb + - ee/app/models/approver_group.rb + - ee/app/models/board_assignee.rb + - ee/app/models/board_label.rb + - ee/app/models/board_user_preference.rb + - ee/app/models/burndown.rb + - ee/app/models/dast_scanner_profile.rb + - ee/app/models/dast_site.rb + - ee/app/models/dast_site_profile.rb + - ee/app/models/dast_site_token.rb + - ee/app/models/dast_site_validation.rb + - ee/app/models/elasticsearch_indexed_namespace.rb + - ee/app/models/elasticsearch_indexed_project.rb + - ee/app/models/epic_issue.rb + - ee/app/models/epic_user_mention.rb + - ee/app/models/feature_flag_issue.rb + - ee/app/models/geo_node.rb + - ee/app/models/geo_node_namespace_link.rb + - ee/app/models/geo_node_status.rb + - ee/app/models/gitlab_subscription.rb + - ee/app/models/gitlab_subscription_history.rb + - ee/app/models/group_deletion_schedule.rb + - ee/app/models/group_merge_request_approval_setting.rb + - ee/app/models/group_wiki.rb + - ee/app/models/group_wiki_repository.rb + - ee/app/models/historical_data.rb + - ee/app/models/hooks/group_hook.rb + - ee/app/models/index_status.rb + - ee/app/models/insight.rb + - ee/app/models/instance_security_dashboard.rb + - ee/app/models/ip_restriction.rb + - ee/app/models/issuable_metric_image.rb + - ee/app/models/issuable_sla.rb + - ee/app/models/issuables_analytics.rb + - ee/app/models/iteration_note.rb + - ee/app/models/ldap_group_link.rb + - ee/app/models/ldap_key.rb + - ee/app/models/license.rb + - ee/app/models/merge_request_block.rb + - ee/app/models/merge_request_diff_detail.rb + - ee/app/models/merge_train.rb + - ee/app/models/namespace_limit.rb + - ee/app/models/namespace_statistics.rb + - ee/app/models/path_lock.rb + - ee/app/models/pg_replication_slot.rb + - ee/app/models/productivity_analytics.rb + - ee/app/models/project_alias.rb + - ee/app/models/project_repository_state.rb + - ee/app/models/project_security_setting.rb + - ee/app/models/protected_environment.rb + - ee/app/models/push_rule.rb + - ee/app/models/resource_iteration_event.rb + - ee/app/models/resource_weight_event.rb + - ee/app/models/saml_group_link.rb + - ee/app/models/saml_provider.rb + - ee/app/models/scim_identity.rb + - ee/app/models/scim_oauth_access_token.rb + - ee/app/models/scoped_label_set.rb + - ee/app/models/slack_integration.rb + - ee/app/models/smartcard_identity.rb + - ee/app/models/software_license.rb + - ee/app/models/software_license_policy.rb + - ee/app/models/storage_shard.rb + - ee/app/models/user_permission_export_upload.rb + - ee/app/models/users_ops_dashboard_project.rb + - ee/app/models/users_security_dashboard_project.rb + - ee/app/models/vulnerability_user_mention.rb + - ee/app/models/weight_note.rb + - ee/app/policies/approval_merge_request_rule_policy.rb + - ee/app/policies/approval_project_rule_policy.rb + - ee/app/policies/approval_state_policy.rb + - ee/app/policies/dast_scanner_profile_policy.rb + - ee/app/policies/dast_site_profile_policy.rb + - ee/app/policies/dast_site_validation_policy.rb + - ee/app/policies/epic_policy.rb + - ee/app/policies/geo_node_policy.rb + - ee/app/policies/instance_security_dashboard_policy.rb + - ee/app/policies/issuable_metric_image_policy.rb + - ee/app/policies/iteration_policy.rb + - ee/app/policies/push_rule_policy.rb + - ee/app/policies/saml_provider_policy.rb + - ee/app/policies/vulnerability_policy.rb + - ee/app/presenters/approval_rule_presenter.rb + - ee/app/presenters/audit_event_presenter.rb + - ee/app/presenters/epic_issue_presenter.rb + - ee/app/presenters/epic_presenter.rb + - ee/app/presenters/iteration_presenter.rb + - ee/app/presenters/merge_request_approver_presenter.rb + - ee/app/presenters/subscription_presenter.rb + - ee/app/presenters/vulnerability_presenter.rb + - ee/app/serializers/audit_event_entity.rb + - ee/app/serializers/audit_event_serializer.rb + - ee/app/serializers/blocking_merge_request_entity.rb + - ee/app/serializers/board_assignee_entity.rb + - ee/app/serializers/board_label_entity.rb + - ee/app/serializers/board_milestone_entity.rb + - ee/app/serializers/dashboard_environment_entity.rb + - ee/app/serializers/dashboard_environments_project_entity.rb + - ee/app/serializers/dashboard_environments_serializer.rb + - ee/app/serializers/dashboard_operations_project_entity.rb + - ee/app/serializers/dashboard_operations_serializer.rb + - ee/app/serializers/dependency_entity.rb + - ee/app/serializers/dependency_list_entity.rb + - ee/app/serializers/dependency_list_serializer.rb + - ee/app/serializers/epic_base_entity.rb + - ee/app/serializers/epic_entity.rb + - ee/app/serializers/epic_note_entity.rb + - ee/app/serializers/epic_note_serializer.rb + - ee/app/serializers/epic_serializer.rb + - ee/app/serializers/file_lock_entity.rb + - ee/app/serializers/geo_design_registry_entity.rb + - ee/app/serializers/geo_design_registry_serializer.rb + - ee/app/serializers/geo_node_serializer.rb + - ee/app/serializers/geo_node_status_serializer.rb + - ee/app/serializers/geo_project_registry_entity.rb + - ee/app/serializers/geo_project_registry_serializer.rb + - ee/app/serializers/group_analytics_serializer.rb + - ee/app/serializers/group_vulnerability_autocomplete_entity.rb + - ee/app/serializers/group_vulnerability_autocomplete_serializer.rb + - ee/app/serializers/invited_group_entity.rb + - ee/app/serializers/invited_group_serializer.rb + - ee/app/serializers/iteration_serializer.rb + - ee/app/serializers/license_entity.rb + - ee/app/serializers/license_scanning_reports_comparer_entity.rb + - ee/app/serializers/license_scanning_reports_comparer_serializer.rb + - ee/app/serializers/license_scanning_reports_serializer.rb + - ee/app/serializers/licenses_list_entity.rb + - ee/app/serializers/licenses_list_serializer.rb + - ee/app/serializers/linked_epic_entity.rb + - ee/app/serializers/linked_epic_issue_entity.rb + - ee/app/serializers/linked_epic_issue_serializer.rb + - ee/app/serializers/linked_epic_serializer.rb + - ee/app/serializers/linked_feature_flag_issue_entity.rb + - ee/app/serializers/linked_feature_flag_issue_serializer.rb + - ee/app/serializers/managed_license_entity.rb + - ee/app/serializers/managed_license_serializer.rb + - ee/app/serializers/merge_request_compliance_entity.rb + - ee/app/serializers/metrics_report_metric_entity.rb + - ee/app/serializers/metrics_reports_comparer_entity.rb + - ee/app/serializers/metrics_reports_comparer_serializer.rb + - ee/app/serializers/milestone_serializer.rb + - ee/app/serializers/namespace_entity.rb + - ee/app/serializers/productivity_analytics_merge_request_entity.rb + - ee/app/serializers/report_list_entity.rb + - ee/app/serializers/scim_oauth_access_token_entity.rb + - ee/app/serializers/storage_shard_entity.rb + - ee/app/serializers/storage_shard_serializer.rb + - ee/app/serializers/user_analytics_entity.rb + - ee/app/serializers/vulnerability_entity.rb + - ee/app/serializers/vulnerability_note_entity.rb + - ee/app/serializers/vulnerability_note_serializer.rb + - ee/app/serializers/vulnerability_serializer.rb + - ee/app/services/clear_namespace_shared_runners_minutes_service.rb + - ee/app/services/ldap_group_reset_service.rb + - ee/app/services/start_pull_mirroring_service.rb + - ee/app/services/timebox_report_service.rb + - ee/app/uploaders/issuable_metric_image_uploader.rb + - ee/app/validators/host_validator.rb + - ee/app/validators/ldap_filter_validator.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/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/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_index_bulk_cron_worker.rb + - ee/app/workers/elastic_index_initial_bulk_cron_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/geo_repository_destroy_worker.rb + - ee/app/workers/group_saml_group_sync_worker.rb + - ee/app/workers/historical_data_worker.rb + - ee/app/workers/import_software_licenses_worker.rb + - ee/app/workers/ingress_modsecurity_counter_metrics_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/network_policy_metrics_worker.rb + - ee/app/workers/new_epic_worker.rb + - ee/app/workers/project_import_schedule_worker.rb + - ee/app/workers/project_template_export_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/scan_security_report_secrets_worker.rb + - ee/app/workers/set_user_status_based_on_user_cap_setting_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/sync_security_reports_to_report_approval_rules_worker.rb + - ee/app/workers/update_all_mirrors_worker.rb + - ee/app/workers/update_max_seats_used_for_gitlab_com_subscriptions_worker.rb + - ee/lib/gitlab/path_locks_finder.rb + - ee/spec/support/elastic_query_name_inspector.rb + - ee/spec/support/ssh_keygen.rb + - ee/spec/support/test_license.rb + - lib/carrier_wave_string_file.rb + - lib/csv_builder.rb + - lib/event_filter.rb + - lib/feature.rb + - lib/feature/definition.rb + - lib/feature/gitaly.rb + - lib/feature/logger.rb + - lib/feature/shared.rb + - lib/file_size_validator.rb + - lib/forever.rb + - lib/gitlab_danger.rb + - lib/learn_gitlab.rb + - lib/tasks/gitlab/graphql.rake + - lib/tasks/gitlab/seed/group_seed.rake + - lib/tasks/import.rake + - lib/tasks/tokens.rake + - lib/uploaded_file.rb + - lib/version_check.rb + - qa/spec/specs/helpers/quarantine_spec.rb + - spec/controllers/concerns/page_limiter_spec.rb + - spec/lib/bitbucket/collection_spec.rb + - spec/lib/gitlab/database/bulk_update_spec.rb + - spec/lib/gitlab/multi_destination_logger_spec.rb + - spec/lib/marginalia_spec.rb + - spec/mailers/notify_spec.rb + - spec/models/concerns/batch_destroy_dependent_associations_spec.rb + - spec/models/concerns/bulk_insertable_associations_spec.rb + - spec/models/concerns/triggerable_hooks_spec.rb + - spec/support/helpers/bare_repo_operations.rb + - spec/support/helpers/ci_artifact_metadata_generator.rb + - spec/support/helpers/fake_migration_classes.rb + - spec/support/helpers/fake_u2f_device.rb + - spec/support/helpers/fake_webauthn_device.rb + - spec/support/helpers/markdown_feature.rb + - spec/support/helpers/redis_without_keys.rb + - spec/support/helpers/require_migration.rb + - spec/support/inspect_squelch.rb + - spec/support/models/merge_request_without_merge_request_diff.rb + - spec/support/renameable_upload.rb + - spec/support/sidekiq_middleware.rb + - spec/tasks/gitlab/task_helpers_spec.rb + - spec/uploaders/object_storage_spec.rb diff --git a/.rubocop_todo/graphql/argument_name.yml b/.rubocop_todo/graphql/argument_name.yml new file mode 100644 index 0000000000..29d2ae7d4a --- /dev/null +++ b/.rubocop_todo/graphql/argument_name.yml @@ -0,0 +1,4 @@ +--- +GraphQL/ArgumentName: + Exclude: + - ee/app/graphql/mutations/audit_events/external_audit_event_destinations/update.rb diff --git a/.rubocop_todo/graphql/field_definitions.yml b/.rubocop_todo/graphql/field_definitions.yml new file mode 100644 index 0000000000..c6ca867426 --- /dev/null +++ b/.rubocop_todo/graphql/field_definitions.yml @@ -0,0 +1,16 @@ +--- +GraphQL/FieldDefinitions: + Exclude: + - app/graphql/types/commit_type.rb + - app/graphql/types/group_type.rb + - app/graphql/types/issue_type.rb + - app/graphql/types/label_type.rb + - app/graphql/types/project_type.rb + - app/graphql/types/projects/topic_type.rb + - app/graphql/types/release_type.rb + - ee/app/graphql/types/ci/code_quality_degradation_type.rb + - ee/app/graphql/types/epic_type.rb + - ee/app/graphql/types/group_release_stats_type.rb + - ee/app/graphql/types/iteration_type.rb + - ee/app/graphql/types/requirements_management/requirement_type.rb + - ee/app/graphql/types/vulnerability_type.rb diff --git a/.rubocop_todo/graphql/field_hash_key.yml b/.rubocop_todo/graphql/field_hash_key.yml new file mode 100644 index 0000000000..806920e24f --- /dev/null +++ b/.rubocop_todo/graphql/field_hash_key.yml @@ -0,0 +1,7 @@ +--- +GraphQL/FieldHashKey: + Exclude: + - app/graphql/types/ci/config/job_type.rb + - app/graphql/types/ci/status_action_type.rb + - app/graphql/types/error_tracking/sentry_error_stack_trace_entry_type.rb + - app/graphql/types/packages/helm/dependency_type.rb diff --git a/.rubocop_todo/graphql/field_method.yml b/.rubocop_todo/graphql/field_method.yml new file mode 100644 index 0000000000..1cc4aa7e26 --- /dev/null +++ b/.rubocop_todo/graphql/field_method.yml @@ -0,0 +1,12 @@ +--- +GraphQL/FieldMethod: + Exclude: + - app/graphql/types/ci/job_type.rb + - app/graphql/types/merge_request_type.rb + - app/graphql/types/metrics/dashboards/annotation_type.rb + - app/graphql/types/packages/package_details_type.rb + - app/graphql/types/project_type.rb + - ee/app/graphql/types/dast/profile_type.rb + - ee/app/graphql/types/dast_site_validation_type.rb + - ee/app/graphql/types/group_release_stats_type.rb + - ee/app/graphql/types/incident_management/oncall_rotation_type.rb diff --git a/.rubocop_todo/graphql/ordered_arguments.yml b/.rubocop_todo/graphql/ordered_arguments.yml new file mode 100644 index 0000000000..a2df1315ee --- /dev/null +++ b/.rubocop_todo/graphql/ordered_arguments.yml @@ -0,0 +1,20 @@ +--- +GraphQL/OrderedArguments: + Exclude: + - app/graphql/resolvers/base_issues_resolver.rb + - app/graphql/resolvers/design_management/designs_resolver.rb + - app/graphql/resolvers/design_management/version/design_at_version_resolver.rb + - app/graphql/resolvers/design_management/version/designs_at_version_resolver.rb + - app/graphql/resolvers/design_management/version_in_collection_resolver.rb + - app/graphql/resolvers/group_milestones_resolver.rb + - app/graphql/resolvers/merge_requests_resolver.rb + - app/graphql/resolvers/paginated_tree_resolver.rb + - app/graphql/resolvers/tree_resolver.rb + - app/graphql/resolvers/users/groups_resolver.rb + - app/graphql/types/commit_action_type.rb + - app/graphql/types/diff_paths_input_type.rb + - app/graphql/types/issues/negated_issue_filter_input_type.rb + - app/graphql/types/jira_users_mapping_input_type.rb + - app/graphql/types/notes/diff_image_position_input_type.rb + - app/graphql/types/notes/diff_position_base_input_type.rb + - app/graphql/types/notes/diff_position_input_type.rb diff --git a/.rubocop_todo/graphql/ordered_fields.yml b/.rubocop_todo/graphql/ordered_fields.yml new file mode 100644 index 0000000000..4aa6a2e779 --- /dev/null +++ b/.rubocop_todo/graphql/ordered_fields.yml @@ -0,0 +1,89 @@ +--- +GraphQL/OrderedFields: + Exclude: + - app/graphql/types/board_list_type.rb + - app/graphql/types/ci/analytics_type.rb + - app/graphql/types/ci/ci_cd_setting_type.rb + - app/graphql/types/ci/config/group_type.rb + - app/graphql/types/ci/config/job_type.rb + - app/graphql/types/ci/config/stage_type.rb + - app/graphql/types/ci/detailed_status_type.rb + - app/graphql/types/ci/group_type.rb + - app/graphql/types/ci/job_type.rb + - app/graphql/types/ci/runner_architecture_type.rb + - app/graphql/types/ci/runner_platform_type.rb + - app/graphql/types/ci/runner_type.rb + - app/graphql/types/ci/stage_type.rb + - app/graphql/types/ci/status_action_type.rb + - app/graphql/types/ci/template_type.rb + - app/graphql/types/commit_type.rb + - app/graphql/types/container_expiration_policy_type.rb + - app/graphql/types/container_repository_tag_type.rb + - app/graphql/types/container_repository_type.rb + - app/graphql/types/dependency_proxy/blob_type.rb + - app/graphql/types/dependency_proxy/image_ttl_group_policy_type.rb + - app/graphql/types/dependency_proxy/manifest_type.rb + - app/graphql/types/design_management/design_collection_type.rb + - app/graphql/types/diff_refs_type.rb + - app/graphql/types/diff_stats_summary_type.rb + - app/graphql/types/diff_stats_type.rb + - app/graphql/types/error_tracking/sentry_detailed_error_type.rb + - app/graphql/types/error_tracking/sentry_error_collection_type.rb + - app/graphql/types/error_tracking/sentry_error_frequency_type.rb + - app/graphql/types/error_tracking/sentry_error_stack_trace_context_type.rb + - app/graphql/types/error_tracking/sentry_error_stack_trace_entry_type.rb + - app/graphql/types/error_tracking/sentry_error_stack_trace_type.rb + - app/graphql/types/error_tracking/sentry_error_type.rb + - app/graphql/types/evidence_type.rb + - app/graphql/types/grafana_integration_type.rb + - app/graphql/types/issue_type.rb + - app/graphql/types/jira_import_type.rb + - app/graphql/types/jira_user_type.rb + - app/graphql/types/label_type.rb + - app/graphql/types/merge_request_type.rb + - app/graphql/types/metadata/kas_type.rb + - app/graphql/types/metadata_type.rb + - app/graphql/types/namespace/package_settings_type.rb + - app/graphql/types/namespace_type.rb + - app/graphql/types/notes/diff_position_type.rb + - app/graphql/types/notes/discussion_type.rb + - app/graphql/types/notes/note_type.rb + - app/graphql/types/packages/composer/json_type.rb + - app/graphql/types/packages/composer/metadatum_type.rb + - app/graphql/types/packages/conan/file_metadatum_type.rb + - app/graphql/types/packages/conan/metadatum_type.rb + - app/graphql/types/packages/helm/dependency_type.rb + - app/graphql/types/packages/helm/maintainer_type.rb + - app/graphql/types/packages/helm/metadata_type.rb + - app/graphql/types/packages/maven/metadatum_type.rb + - app/graphql/types/packages/nuget/metadatum_type.rb + - app/graphql/types/packages/package_dependency_link_type.rb + - app/graphql/types/packages/package_file_type.rb + - app/graphql/types/packages/package_tag_type.rb + - app/graphql/types/packages/package_type.rb + - app/graphql/types/project_statistics_type.rb + - app/graphql/types/project_type.rb + - app/graphql/types/projects/services/jira_project_type.rb + - app/graphql/types/release_asset_link_type.rb + - app/graphql/types/release_links_type.rb + - app/graphql/types/release_type.rb + - app/graphql/types/repository_type.rb + - app/graphql/types/root_storage_statistics_type.rb + - app/graphql/types/task_completion_status.rb + - app/graphql/types/tree/blob_type.rb + - app/graphql/types/tree/submodule_type.rb + - app/graphql/types/tree/tree_entry_type.rb + - app/graphql/types/user_callout_type.rb + - app/graphql/types/user_status_type.rb + - ee/app/graphql/types/analytics/devops_adoption/snapshot_type.rb + - ee/app/graphql/types/epic_descendant_count_type.rb + - ee/app/graphql/types/epic_descendant_weight_sum_type.rb + - ee/app/graphql/types/epic_health_status_type.rb + - ee/app/graphql/types/epic_type.rb + - ee/app/graphql/types/geo/geo_node_type.rb + - ee/app/graphql/types/requirements_management/requirement_states_count_type.rb + - ee/app/graphql/types/scan_execution_policy_type.rb + - ee/app/graphql/types/scan_type.rb + - ee/app/graphql/types/scanned_resource_type.rb + - ee/app/graphql/types/security_report_summary_section_type.rb + - ee/app/graphql/types/timebox_report_type.rb diff --git a/.rubocop_todo/graphql/resolver_method_length.yml b/.rubocop_todo/graphql/resolver_method_length.yml new file mode 100644 index 0000000000..6fd8d41c54 --- /dev/null +++ b/.rubocop_todo/graphql/resolver_method_length.yml @@ -0,0 +1,7 @@ +--- +GraphQL/ResolverMethodLength: + Exclude: + - app/graphql/types/ci/detailed_status_type.rb + - app/graphql/types/ci/runner_type.rb + - app/graphql/types/ci/stage_type.rb + - app/graphql/types/packages/package_type.rb diff --git a/.rubocop_todo/performance/active_record_subtransaction_methods.yml b/.rubocop_todo/performance/active_record_subtransaction_methods.yml new file mode 100644 index 0000000000..ada27f99eb --- /dev/null +++ b/.rubocop_todo/performance/active_record_subtransaction_methods.yml @@ -0,0 +1,62 @@ +--- +Performance/ActiveRecordSubtransactionMethods: + Exclude: + - app/controllers/clusters/clusters_controller.rb + - app/controllers/repositories/lfs_storage_controller.rb + - app/controllers/search_controller.rb + - app/models/application_record.rb + - app/models/ci/ref.rb + - app/models/container_repository.rb + - app/models/design_management/design_collection.rb + - app/models/error_tracking/error.rb + - app/models/external_pull_request.rb + - app/models/merge_request.rb + - app/models/plan.rb + - app/models/project.rb + - app/models/shard.rb + - app/models/x509_certificate.rb + - app/models/x509_commit_signature.rb + - app/models/x509_issuer.rb + - app/models/concerns/commit_signature.rb + - app/services/bulk_imports/relation_export_service.rb + - app/services/ci/update_build_state_service.rb + - app/services/event_create_service.rb + - app/services/groups/import_export/import_service.rb + - app/services/lfs/file_transformer.rb + - app/services/merge_requests/approval_service.rb + - app/services/namespaces/statistics_refresher_service.rb + - app/services/packages/rubygems/create_dependencies_service.rb + - app/services/packages/rubygems/metadata_extraction_service.rb + - app/services/projects/create_service.rb + - app/services/projects/lfs_pointers/lfs_download_service.rb + - app/services/service_desk_settings/update_service.rb + - app/services/service_ping/submit_service.rb + - app/services/terraform/remote_state_handler.rb + - app/workers/namespaces/schedule_aggregation_worker.rb + - app/workers/project_export_worker.rb + - db/migrate/20200212014653_rename_security_dashboard_feature_flag_to_instance_security_dashboard.rb + - db/post_migrate/20200214034836_remove_security_dashboard_feature_flag.rb + - db/post_migrate/20210824174615_prepare_ci_builds_metadata_and_ci_build_async_indexes.rb + - ee/app/models/ci/minutes/namespace_monthly_usage.rb + - ee/app/models/ci/minutes/project_monthly_usage.rb + - ee/app/models/concerns/deprecated_approvals_before_merge.rb + - ee/app/models/ee/iteration.rb + - ee/app/models/ee/plan.rb + - ee/app/models/elastic/index_setting.rb + - ee/app/models/gitlab_subscription.rb + - ee/app/models/software_license.rb + - ee/app/services/boards/user_preferences/update_service.rb + - ee/app/services/ci/minutes/update_project_and_namespace_usage_service.rb + - ee/app/services/ee/analytics/cycle_analytics/stages/base_service.rb + - ee/app/services/security/store_report_service.rb + - ee/app/services/security/store_scan_service.rb + - ee/app/workers/import_software_licenses_worker.rb + - ee/db/fixtures/production/027_plans.rb + - ee/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules.rb + - ee/lib/gitlab/elastic/indexer.rb + - lib/gitlab/ci/pipeline/seed/environment.rb + - lib/gitlab/ci/pipeline/seed/processable/resource_group.rb + - lib/gitlab/ci/trace/chunked_io.rb + - lib/gitlab/composer/cache.rb + - lib/gitlab/database/async_indexes/migration_helpers.rb + - lib/gitlab/issuables_count_for_state.rb diff --git a/.rubocop_todo/performance/rubyzip.yml b/.rubocop_todo/performance/rubyzip.yml new file mode 100644 index 0000000000..a0752fa51c --- /dev/null +++ b/.rubocop_todo/performance/rubyzip.yml @@ -0,0 +1,5 @@ +--- +Performance/Rubyzip: + Exclude: + - app/services/packages/nuget/metadata_extraction_service.rb + - lib/gitlab/ci/artifact_file_reader.rb diff --git a/.rubocop_todo/rails/include_url_helper.yml b/.rubocop_todo/rails/include_url_helper.yml new file mode 100644 index 0000000000..2dedba19c7 --- /dev/null +++ b/.rubocop_todo/rails/include_url_helper.yml @@ -0,0 +1,38 @@ +--- +Rails/IncludeUrlHelper: + Exclude: + - app/models/integrations/asana.rb + - app/models/integrations/bamboo.rb + - app/models/integrations/bugzilla.rb + - app/models/integrations/campfire.rb + - app/models/integrations/confluence.rb + - app/models/integrations/custom_issue_tracker.rb + - app/models/integrations/datadog.rb + - app/models/integrations/discord.rb + - app/models/integrations/ewm.rb + - app/models/integrations/external_wiki.rb + - app/models/integrations/flowdock.rb + - app/models/integrations/hangouts_chat.rb + - app/models/integrations/irker.rb + - app/models/integrations/jenkins.rb + - app/models/integrations/mattermost.rb + - app/models/integrations/pivotaltracker.rb + - app/models/integrations/redmine.rb + - app/models/integrations/webex_teams.rb + - app/models/integrations/youtrack.rb + - app/presenters/alert_management/alert_presenter.rb + - app/presenters/environment_presenter.rb + - app/presenters/gitlab/blame_presenter.rb + - app/presenters/merge_request_presenter.rb + - app/presenters/project_presenter.rb + - app/presenters/release_presenter.rb + - app/presenters/releases/evidence_presenter.rb + - ee/app/helpers/license_helper.rb + - ee/app/models/integrations/github.rb + - ee/spec/helpers/ee/projects/security/configuration_helper_spec.rb + - ee/spec/lib/banzai/filter/cross_project_issuable_information_filter_spec.rb + - spec/helpers/merge_requests_helper_spec.rb + - spec/helpers/nav/top_nav_helper_spec.rb + - spec/helpers/notify_helper_spec.rb + - spec/lib/banzai/filter/reference_redactor_filter_spec.rb + - spec/lib/banzai/reference_redactor_spec.rb diff --git a/.rubocop_todo/rails/save_bang.yml b/.rubocop_todo/rails/save_bang.yml new file mode 100644 index 0000000000..d7c9366d85 --- /dev/null +++ b/.rubocop_todo/rails/save_bang.yml @@ -0,0 +1,98 @@ +--- +Rails/SaveBang: + Exclude: + - ee/spec/initializers/fog_google_https_private_urls_spec.rb + - ee/spec/lib/analytics/merge_request_metrics_calculator_spec.rb + - ee/spec/lib/gitlab/auth/ldap/access_spec.rb + - ee/spec/lib/gitlab/auth/o_auth/user_spec.rb + - ee/spec/lib/gitlab/auth/saml/user_spec.rb + - ee/spec/lib/gitlab/elastic/search_results_spec.rb + - ee/spec/lib/gitlab/email/handler/ee/service_desk_handler_spec.rb + - ee/spec/lib/gitlab/geo_spec.rb + - ee/spec/lib/gitlab/git_access_spec.rb + - ee/spec/lib/gitlab/import_export/group/relation_factory_spec.rb + - ee/spec/lib/gitlab/mirror_spec.rb + - ee/spec/models/application_setting_spec.rb + - ee/spec/models/approval_merge_request_rule_spec.rb + - ee/spec/models/approval_project_rule_spec.rb + - ee/spec/models/burndown_spec.rb + - ee/spec/models/elasticsearch_indexed_namespace_spec.rb + - ee/spec/models/gitlab_subscription_spec.rb + - ee/spec/models/issue_spec.rb + - ee/spec/models/protected_environment_spec.rb + - ee/spec/models/repository_spec.rb + - ee/spec/models/scim_identity_spec.rb + - ee/spec/models/scim_oauth_access_token_spec.rb + - ee/spec/models/upload_spec.rb + - ee/spec/models/user_preference_spec.rb + - ee/spec/models/visible_approvable_spec.rb + - ee/spec/models/vulnerabilities/feedback_spec.rb + - ee/spec/models/vulnerabilities/issue_link_spec.rb + - ee/spec/services/ee/merge_requests/update_service_spec.rb + - ee/spec/services/ee/notes/quick_actions_service_spec.rb + - ee/spec/services/ee/notification_service_spec.rb + - ee/spec/services/epic_links/create_service_spec.rb + - ee/spec/services/epics/close_service_spec.rb + - ee/spec/services/epics/issue_promote_service_spec.rb + - ee/spec/services/epics/reopen_service_spec.rb + - ee/spec/services/epics/tree_reorder_service_spec.rb + - ee/spec/services/epics/update_dates_service_spec.rb + - ee/spec/services/epics/update_service_spec.rb + - ee/spec/services/geo/blob_verification_secondary_service_spec.rb + - ee/spec/services/geo/files_expire_service_spec.rb + - ee/spec/services/geo/metrics_update_service_spec.rb + - ee/spec/services/geo/registry_consistency_service_spec.rb + - ee/spec/services/geo/repository_verification_secondary_service_spec.rb + - ee/spec/services/groups/autocomplete_service_spec.rb + - ee/spec/services/ldap_group_reset_service_spec.rb + - ee/spec/services/lfs/unlock_file_service_spec.rb + - ee/spec/services/merge_trains/refresh_merge_request_service_spec.rb + - ee/spec/services/quick_actions/interpret_service_spec.rb + - ee/spec/services/slash_commands/global_slack_handler_spec.rb + - ee/spec/services/start_pull_mirroring_service_spec.rb + - ee/spec/services/status_page/trigger_publish_service_spec.rb + - ee/spec/services/todo_service_spec.rb + - ee/spec/services/vulnerability_feedback/create_service_spec.rb + - spec/lib/backup/manager_spec.rb + - spec/lib/gitlab/alerting/alert_spec.rb + - spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb + - spec/lib/gitlab/auth/ldap/user_spec.rb + - spec/lib/gitlab/auth/o_auth/user_spec.rb + - spec/lib/gitlab/auth/saml/user_spec.rb + - spec/lib/gitlab/auth_spec.rb + - spec/lib/gitlab/authorized_keys_spec.rb + - spec/lib/gitlab/bitbucket_server_import/importer_spec.rb + - spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb + - spec/lib/gitlab/database/custom_structure_spec.rb + - spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb + - spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb + - spec/lib/gitlab/gfm/reference_rewriter_spec.rb + - spec/lib/gitlab/git_access_spec.rb + - spec/lib/gitlab/import_export/avatar_saver_spec.rb + - spec/lib/gitlab/import_export/base/relation_factory_spec.rb + - spec/lib/gitlab/import_export/design_repo_restorer_spec.rb + - spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb + - spec/lib/gitlab/import_export/fork_spec.rb + - spec/lib/gitlab/import_export/group/legacy_tree_saver_spec.rb + - spec/lib/gitlab/import_export/group/relation_factory_spec.rb + - spec/lib/gitlab/import_export/group/tree_saver_spec.rb + - spec/lib/gitlab/import_export/importer_spec.rb + - spec/lib/gitlab/import_export/lfs_restorer_spec.rb + - spec/lib/gitlab/import_export/lfs_saver_spec.rb + - spec/lib/gitlab/import_export/members_mapper_spec.rb + - spec/lib/gitlab/import_export/project/relation_factory_spec.rb + - spec/lib/gitlab/import_export/project/tree_restorer_spec.rb + - spec/lib/gitlab/import_export/project/tree_saver_spec.rb + - spec/lib/gitlab/import_export/repo_restorer_spec.rb + - spec/lib/gitlab/import_export/saver_spec.rb + - spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb + - spec/lib/gitlab/import_export/snippet_repo_saver_spec.rb + - spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb + - spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb + - spec/lib/gitlab/import_export/uploads_manager_spec.rb + - spec/lib/gitlab/import_export/uploads_saver_spec.rb + - spec/lib/gitlab/import_export/wiki_restorer_spec.rb + - spec/lib/gitlab/lets_encrypt/client_spec.rb + - spec/lib/gitlab/middleware/go_spec.rb + - spec/lib/gitlab/shard_health_cache_spec.rb + - spec/mailers/notify_spec.rb diff --git a/.rubocop_todo/rails/time_zone.yml b/.rubocop_todo/rails/time_zone.yml new file mode 100644 index 0000000000..0e2b036c31 --- /dev/null +++ b/.rubocop_todo/rails/time_zone.yml @@ -0,0 +1,154 @@ +--- +Rails/TimeZone: + Enabled: true + Exclude: + - lib/gitlab/popen.rb + - ee/lib/delay.rb + - ee/lib/gitlab/elastic/helper.rb + - ee/lib/gitlab/elastic/indexer.rb + - ee/lib/gitlab/geo/base_request.rb + - ee/lib/gitlab/geo/event_gap_tracking.rb + - ee/lib/gitlab/geo/log_cursor/events/design_repository_updated_event.rb + - ee/lib/gitlab/geo/log_cursor/events/repository_updated_event.rb + - ee/lib/gitlab/geo/log_cursor/logger.rb + - ee/lib/gitlab/geo/oauth/login_state.rb + - ee/lib/gitlab/prometheus/queries/cluster_query.rb + - ee/lib/gitlab/prometheus/queries/packet_flow_query.rb + - ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb + - ee/spec/lib/ee/gitlab/ci/pipeline/quota/job_activity_spec.rb + - ee/spec/lib/gitlab/analytics/cycle_analytics/data_collector_spec.rb + - ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_summary_spec.rb + - ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_time_summary_spec.rb + - ee/spec/lib/gitlab/auth/ldap/access_spec.rb + - ee/spec/lib/gitlab/auth/smartcard/san_extension_spec.rb + - ee/spec/lib/gitlab/auth/smartcard/session_spec.rb + - ee/spec/lib/gitlab/background_migration/fix_orphan_promoted_issues_spec.rb + - ee/spec/lib/gitlab/ci/pipeline/chain/limit/job_activity_spec.rb + - ee/spec/lib/gitlab/elastic/client_spec.rb + - ee/spec/lib/gitlab/geo/base_request_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/cache_invalidation_event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/container_repository_updated_event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/design_repository_updated_event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/hashed_storage_attachments_event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/hashed_storage_migrated_event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/job_artifact_deleted_event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/lfs_object_deleted_event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/repositories_changed_event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/repository_created_event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/repository_deleted_event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/repository_renamed_event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/repository_updated_event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/events/reset_checksum_event_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/logger_spec.rb + - ee/spec/lib/gitlab/git_access_spec.rb + - ee/spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb + - ee/spec/lib/gitlab/prometheus/queries/cluster_query_spec.rb + - ee/spec/lib/gitlab/prometheus/queries/packet_flow_query_spec.rb + - lib/api/helpers.rb + - lib/api/sidekiq_metrics.rb + - lib/backup/manager.rb + - lib/bitbucket_server/representation/base.rb + - lib/gitlab/auth/current_user_mode.rb + - lib/gitlab/auth/ldap/access.rb + - lib/gitlab/chaos.rb + - lib/gitlab/checks/timed_logger.rb + - lib/gitlab/ci/ansi2json/line.rb + - lib/gitlab/ci/pipeline/chain/sequence.rb + - lib/gitlab/ci/pipeline/duration.rb + - lib/gitlab/cycle_analytics/summary/deployment_frequency.rb + - lib/gitlab/database.rb + - lib/gitlab/external_authorization/access.rb + - lib/gitlab/external_authorization/cache.rb + - lib/gitlab/gitaly_client.rb + - lib/gitlab/gitaly_client/ref_service.rb + - lib/gitlab/github_import/representation.rb + - lib/gitlab/grape_logging/loggers/queue_duration_logger.rb + - lib/gitlab/health_checks/base_abstract_check.rb + - lib/gitlab/import_export.rb + - lib/gitlab/instrumentation/elasticsearch_transport.rb + - lib/gitlab/instrumentation/redis_interceptor.rb + - lib/gitlab/instrumentation_helper.rb + - lib/gitlab/kubernetes/helm/certificate.rb + - lib/gitlab/lfs_token.rb + - lib/gitlab/loop_helpers.rb + - lib/gitlab/phabricator_import/representation/task.rb + - lib/gitlab/prometheus/queries/additional_metrics_environment_query.rb + - lib/gitlab/prometheus/queries/matched_metric_query.rb + - lib/gitlab/prometheus_client.rb + - lib/gitlab/sherlock/transaction.rb + - lib/gitlab/task_helpers.rb + - lib/gitlab/x509/tag.rb + - lib/grafana/time_window.rb + - lib/json_web_token/token.rb + - lib/object_storage/direct_upload.rb + - lib/quality/seeders/issues.rb + - tooling/rspec_flaky/flaky_example.rb + - tooling/rspec_flaky/report.rb + - lib/tasks/gitlab/assets.rake + - lib/tasks/gitlab/backup.rake + - lib/tasks/gitlab/cleanup.rake + - lib/tasks/gitlab/list_repos.rake + - spec/lib/api/helpers_spec.rb + - spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb + - spec/lib/gitlab/app_json_logger_spec.rb + - spec/lib/gitlab/app_text_logger_spec.rb + - spec/lib/gitlab/auth/current_user_mode_spec.rb + - spec/lib/gitlab/background_migration/recalculate_project_authorizations_spec.rb + - spec/lib/gitlab/background_migration/wrongfully_confirmed_email_unconfirmer_spec.rb + - spec/lib/gitlab/bitbucket_import/importer_spec.rb + - spec/lib/gitlab/bitbucket_server_import/importer_spec.rb + - spec/lib/gitlab/checks/timed_logger_spec.rb + - spec/lib/gitlab/ci/cron_parser_spec.rb + - spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb + - spec/lib/gitlab/cycle_analytics/usage_data_spec.rb + - spec/lib/gitlab/data_builder/note_spec.rb + - spec/lib/gitlab/database/background_migration_job_spec.rb + - spec/lib/gitlab/database_spec.rb + - spec/lib/gitlab/discussions_diff/file_collection_spec.rb + - spec/lib/gitlab/external_authorization/access_spec.rb + - spec/lib/gitlab/external_authorization/cache_spec.rb + - spec/lib/gitlab/external_authorization/logger_spec.rb + - spec/lib/gitlab/fogbugz_import/importer_spec.rb + - spec/lib/gitlab/git/branch_spec.rb + - spec/lib/gitlab/git/commit_spec.rb + - spec/lib/gitlab/git/repository_spec.rb + - spec/lib/gitlab/git_access_spec.rb + - spec/lib/gitlab/github_import/importer/diff_note_importer_spec.rb + - spec/lib/gitlab/github_import/importer/issue_importer_spec.rb + - spec/lib/gitlab/github_import/importer/issues_importer_spec.rb + - spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb + - spec/lib/gitlab/github_import/importer/note_importer_spec.rb + - spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb + - spec/lib/gitlab/github_import/importer/releases_importer_spec.rb + - spec/lib/gitlab/github_import/representation/diff_note_spec.rb + - spec/lib/gitlab/github_import/representation/issue_spec.rb + - spec/lib/gitlab/github_import/representation/note_spec.rb + - spec/lib/gitlab/github_import/representation/pull_request_spec.rb + - spec/lib/gitlab/grape_logging/formatters/lograge_with_timestamp_spec.rb + - spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb + - spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb + - spec/lib/gitlab/graphql_logger_spec.rb + - spec/lib/gitlab/graphs/commits_spec.rb + - spec/lib/gitlab/import_export/project/relation_factory_spec.rb + - spec/lib/gitlab/json_logger_spec.rb + - spec/lib/gitlab/lfs_token_spec.rb + - spec/lib/gitlab/log_timestamp_formatter_spec.rb + - spec/lib/gitlab/middleware/rails_queue_duration_spec.rb + - spec/lib/gitlab/omniauth_logging/json_formatter_spec.rb + - spec/lib/gitlab/phabricator_import/issues/task_importer_spec.rb + - spec/lib/gitlab/phabricator_import/representation/task_spec.rb + - spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb + - spec/lib/gitlab/prometheus/queries/deployment_query_spec.rb + - spec/lib/gitlab/prometheus/queries/validate_query_spec.rb + - spec/lib/gitlab/sherlock/transaction_spec.rb + - spec/lib/gitlab/sidekiq_logging/json_formatter_spec.rb + - spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executing_spec.rb + - spec/lib/gitlab/updated_notes_paginator_spec.rb + - spec/lib/gitlab/utils/json_size_estimator_spec.rb + - spec/lib/gitlab/x509/signature_spec.rb + - spec/lib/grafana/time_window_spec.rb + - spec/lib/json_web_token/hmac_token_spec.rb + - spec/tooling/rspec_flaky/flaky_example_spec.rb + - spec/tooling/rspec_flaky/listener_spec.rb + - spec/tooling/rspec_flaky/report_spec.rb diff --git a/.rubocop_todo/rspec/any_instance_of.yml b/.rubocop_todo/rspec/any_instance_of.yml new file mode 100644 index 0000000000..f7a8cfb396 --- /dev/null +++ b/.rubocop_todo/rspec/any_instance_of.yml @@ -0,0 +1,508 @@ +--- +RSpec/AnyInstanceOf: + Exclude: + - ee/spec/controllers/admin/geo/nodes_controller_spec.rb + - ee/spec/controllers/ee/groups_controller_spec.rb + - ee/spec/controllers/groups/analytics/productivity_analytics_controller_spec.rb + - ee/spec/controllers/groups/epics/notes_controller_spec.rb + - ee/spec/controllers/groups/omniauth_callbacks_controller_spec.rb + - ee/spec/controllers/oauth/geo_auth_controller_spec.rb + - ee/spec/controllers/projects/environments_controller_spec.rb + - ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb + - ee/spec/controllers/projects/merge_requests_controller_spec.rb + - ee/spec/controllers/projects/path_locks_controller_spec.rb + - ee/spec/controllers/projects_controller_spec.rb + - ee/spec/controllers/subscriptions_controller_spec.rb + - ee/spec/controllers/trials_controller_spec.rb + - 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/boards/scoped_issue_board_spec.rb + - ee/spec/features/ci_shared_runner_warnings_spec.rb + - ee/spec/features/groups/group_settings_spec.rb + - ee/spec/features/groups/navbar_spec.rb + - ee/spec/features/groups/saml_providers_spec.rb + - ee/spec/features/issues/form_spec.rb + - ee/spec/features/merge_request/user_creates_merge_request_spec.rb + - ee/spec/features/projects/new_project_spec.rb + - ee/spec/features/registrations/welcome_spec.rb + - ee/spec/features/security/project/internal_access_spec.rb + - ee/spec/features/security/project/private_access_spec.rb + - ee/spec/features/security/project/public_access_spec.rb + - ee/spec/features/trials/capture_lead_spec.rb + - ee/spec/features/trials/select_namespace_spec.rb + - ee/spec/features/users/login_spec.rb + - ee/spec/graphql/mutations/dast_on_demand_scans/create_spec.rb + - ee/spec/graphql/mutations/incident_management/oncall_schedule/create_spec.rb + - ee/spec/graphql/mutations/incident_management/oncall_schedule/destroy_spec.rb + - ee/spec/graphql/mutations/incident_management/oncall_schedule/update_spec.rb + - ee/spec/helpers/application_helper_spec.rb + - ee/spec/lib/ee/api/helpers_spec.rb + - ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb + - ee/spec/lib/ee/gitlab/checks/push_rule_check_spec.rb + - ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb + - ee/spec/lib/gitlab/auth/group_saml/membership_enforcer_spec.rb + - ee/spec/lib/gitlab/auth/ldap/access_spec.rb + - ee/spec/lib/gitlab/ci/templates/Jobs/browser_performance_testing_gitlab_ci_yaml_spec.rb + - ee/spec/lib/gitlab/ci/templates/Jobs/dast_default_branch_gitlab_ci_yaml_spec.rb + - ee/spec/lib/gitlab/ci/templates/Jobs/load_performance_testing_gitlab_ci_yaml_spec.rb + - ee/spec/lib/gitlab/ci/templates/Verify/browser_performance_testing_gitlab_ci_yaml_spec.rb + - ee/spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb + - ee/spec/lib/gitlab/ci/templates/api_fuzzing_gitlab_ci_yaml_spec.rb + - ee/spec/lib/gitlab/ci/templates/container_scanning_gitlab_ci_yaml_spec.rb + - ee/spec/lib/gitlab/ci/templates/coverage_fuzzing_gitlab_ci_yaml_spec.rb + - ee/spec/lib/gitlab/ci/templates/dast_gitlab_ci_yaml_spec.rb + - ee/spec/lib/gitlab/ci/templates/dependency_scanning_gitlab_ci_yaml_spec.rb + - ee/spec/lib/gitlab/ci/templates/license_scanning_gitlab_ci_yaml_spec.rb + - ee/spec/lib/gitlab/ci/templates/sast_gitlab_ci_yaml_spec.rb + - ee/spec/lib/gitlab/elastic/project_search_results_spec.rb + - ee/spec/lib/gitlab/expiring_subscription_message_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/daemon_spec.rb + - ee/spec/lib/gitlab/legacy_github_import/project_creator_spec.rb + - ee/spec/lib/omni_auth/strategies/group_saml_spec.rb + - ee/spec/lib/security/ci_configuration/sast_build_actions_spec.rb + - ee/spec/lib/system_check/geo/geo_database_configured_check_spec.rb + - ee/spec/migrations/schedule_populate_resolved_on_default_branch_column_spec.rb + - ee/spec/migrations/update_location_fingerprint_column_for_cs_spec.rb + - ee/spec/migrations/update_occurrence_severity_column_spec.rb + - ee/spec/migrations/update_undefined_confidence_from_occurrences_spec.rb + - ee/spec/migrations/update_undefined_confidence_from_vulnerabilities_spec.rb + - ee/spec/migrations/update_vulnerability_severity_column_spec.rb + - ee/spec/models/ee/namespace_spec.rb + - ee/spec/models/geo_node_status_spec.rb + - ee/spec/models/issue_spec.rb + - ee/spec/models/merge_request_spec.rb + - ee/spec/models/project_import_state_spec.rb + - ee/spec/models/push_rule_spec.rb + - ee/spec/presenters/ci/pipeline_presenter_spec.rb + - ee/spec/presenters/projects/security/configuration_presenter_spec.rb + - ee/spec/requests/api/geo_nodes_spec.rb + - ee/spec/requests/api/graphql/mutations/dast_on_demand_scans/create_spec.rb + - ee/spec/requests/api/graphql/mutations/dast_site_profiles/delete_spec.rb + - ee/spec/requests/api/graphql/mutations/pipelines/run_dast_scan_spec.rb + - ee/spec/requests/api/issues_spec.rb + - ee/spec/requests/api/projects_spec.rb + - ee/spec/requests/git_http_spec.rb + - ee/spec/requests/groups_controller_spec.rb + - ee/spec/requests/omniauth_kerberos_spnego_spec.rb + - ee/spec/requests/repositories/git_http_controller_spec.rb + - ee/spec/services/alert_management/network_alert_service_spec.rb + - ee/spec/services/ci/expire_pipeline_cache_service_spec.rb + - ee/spec/services/ci/run_dast_scan_service_spec.rb + - ee/spec/services/ee/git/branch_push_service_spec.rb + - ee/spec/services/ee/merge_requests/create_from_vulnerability_data_service_spec.rb + - ee/spec/services/ee/merge_requests/refresh_service_spec.rb + - ee/spec/services/ee/security/ingress_modsecurity_usage_service_spec.rb + - ee/spec/services/ee/users/create_service_spec.rb + - ee/spec/services/ee/users/destroy_service_spec.rb + - ee/spec/services/geo/container_repository_sync_service_spec.rb + - ee/spec/services/geo/design_repository_sync_service_spec.rb + - ee/spec/services/geo/framework_repository_sync_service_spec.rb + - ee/spec/services/geo/hashed_storage_migration_service_spec.rb + - ee/spec/services/geo/metrics_update_service_spec.rb + - ee/spec/services/geo/move_repository_service_spec.rb + - ee/spec/services/geo/project_housekeeping_service_spec.rb + - ee/spec/services/geo/rename_repository_service_spec.rb + - ee/spec/services/geo/repository_destroy_service_spec.rb + - ee/spec/services/geo/repository_sync_service_spec.rb + - ee/spec/services/geo/wiki_sync_service_spec.rb + - ee/spec/services/groups/destroy_service_spec.rb + - ee/spec/services/groups/update_service_spec.rb + - ee/spec/services/merge_trains/check_status_service_spec.rb + - ee/spec/services/network_policies/resources_service_spec.rb + - ee/spec/services/projects/destroy_service_spec.rb + - ee/spec/services/projects/group_links/destroy_service_spec.rb + - ee/spec/services/projects/update_service_spec.rb + - ee/spec/services/slash_commands/global_slack_handler_spec.rb + - ee/spec/support/helpers/ee/stub_configuration.rb + - ee/spec/support/shared_examples/controllers/analytics/cycle_analytics/shared_stage_shared_examples.rb + - ee/spec/support/shared_examples/features/ultimate_trial_callout_shared_examples.rb + - ee/spec/support/shared_examples/lib/gitlab/geo/geo_logs_event_source_info_shared_examples.rb + - ee/spec/support/shared_examples/models/member_shared_examples.rb + - ee/spec/support/shared_examples/services/base_sync_service_shared_examples.rb + - ee/spec/support/shared_examples/services/geo/geo_request_service_shared_examples.rb + - ee/spec/workers/build_finished_worker_spec.rb + - ee/spec/workers/concerns/elastic/indexing_control_spec.rb + - ee/spec/workers/elastic_commit_indexer_worker_spec.rb + - ee/spec/workers/geo/design_repository_shard_sync_worker_spec.rb + - ee/spec/workers/geo/file_download_dispatch_worker_spec.rb + - ee/spec/workers/geo/registry_sync_worker_spec.rb + - ee/spec/workers/geo/repository_cleanup_worker_spec.rb + - ee/spec/workers/geo/repository_shard_sync_worker_spec.rb + - ee/spec/workers/project_cache_worker_spec.rb + - ee/spec/workers/repository_import_worker_spec.rb + - ee/spec/workers/vulnerability_exports/export_deletion_worker_spec.rb + - qa/spec/runtime/release_spec.rb + - spec/controllers/admin/sessions_controller_spec.rb + - spec/controllers/application_controller_spec.rb + - spec/controllers/concerns/issuable_actions_spec.rb + - spec/controllers/concerns/static_object_external_storage_spec.rb + - spec/controllers/explore/projects_controller_spec.rb + - spec/controllers/groups/clusters_controller_spec.rb + - spec/controllers/groups/settings/ci_cd_controller_spec.rb + - spec/controllers/groups_controller_spec.rb + - spec/controllers/import/bitbucket_controller_spec.rb + - spec/controllers/oauth/jira/authorizations_controller_spec.rb + - spec/controllers/omniauth_callbacks_controller_spec.rb + - spec/controllers/projects/artifacts_controller_spec.rb + - spec/controllers/projects/branches_controller_spec.rb + - spec/controllers/projects/clusters_controller_spec.rb + - spec/controllers/projects/commit_controller_spec.rb + - spec/controllers/projects/commits_controller_spec.rb + - spec/controllers/projects/environments_controller_spec.rb + - spec/controllers/projects/imports_controller_spec.rb + - spec/controllers/projects/issues_controller_spec.rb + - spec/controllers/projects/jobs_controller_spec.rb + - spec/controllers/projects/labels_controller_spec.rb + - spec/controllers/projects/merge_requests_controller_spec.rb + - spec/controllers/projects/pipelines_controller_spec.rb + - spec/controllers/projects/service_hook_logs_controller_spec.rb + - spec/controllers/projects/services_controller_spec.rb + - spec/controllers/projects/tags_controller_spec.rb + - spec/controllers/registrations/experience_levels_controller_spec.rb + - spec/controllers/registrations_controller_spec.rb + - spec/controllers/sessions_controller_spec.rb + - spec/controllers/snippets/notes_controller_spec.rb + - spec/controllers/snippets_controller_spec.rb + - spec/features/admin/admin_mode/login_spec.rb + - spec/features/groups/clusters/eks_spec.rb + - spec/features/groups/members/tabs_spec.rb + - spec/features/ide/static_object_external_storage_csp_spec.rb + - spec/features/issuables/issuable_list_spec.rb + - spec/features/issues/form_spec.rb + - spec/features/merge_request/user_creates_image_diff_notes_spec.rb + - spec/features/merge_request/user_reviews_image_spec.rb + - spec/features/merge_request/user_sees_diff_spec.rb + - spec/features/merge_request/user_sees_merge_widget_spec.rb + - spec/features/profiles/personal_access_tokens_spec.rb + - spec/features/projects/clusters/gcp_spec.rb + - spec/features/projects/clusters_spec.rb + - spec/features/projects/container_registry_spec.rb + - spec/features/projects/files/user_browses_lfs_files_spec.rb + - spec/features/projects/jobs_spec.rb + - spec/features/projects/navbar_spec.rb + - spec/features/projects/pages_spec.rb + - spec/features/projects/services/user_activates_mattermost_slash_command_spec.rb + - spec/features/projects/settings/service_desk_setting_spec.rb + - spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb + - spec/features/snippets/embedded_snippet_spec.rb + - spec/features/usage_stats_consent_spec.rb + - spec/finders/prometheus_metrics_finder_spec.rb + - spec/graphql/mutations/alert_management/create_alert_issue_spec.rb + - spec/graphql/mutations/alert_management/http_integration/create_spec.rb + - spec/graphql/mutations/alert_management/http_integration/destroy_spec.rb + - spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb + - spec/graphql/mutations/alert_management/http_integration/update_spec.rb + - spec/graphql/mutations/alert_management/prometheus_integration/create_spec.rb + - spec/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb + - spec/graphql/mutations/alert_management/prometheus_integration/update_spec.rb + - spec/helpers/analytics/unique_visits_helper_spec.rb + - spec/helpers/projects_helper_spec.rb + - spec/initializers/lograge_spec.rb + - spec/lib/api/entities/merge_request_basic_spec.rb + - spec/lib/api/entities/merge_request_changes_spec.rb + - spec/lib/api/helpers_spec.rb + - spec/lib/backup/files_spec.rb + - spec/lib/backup/manager_spec.rb + - spec/lib/banzai/commit_renderer_spec.rb + - spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb + - spec/lib/banzai/filter/references/issue_reference_filter_spec.rb + - spec/lib/banzai/filter/repository_link_filter_spec.rb + - spec/lib/banzai/pipeline/gfm_pipeline_spec.rb + - spec/lib/extracts_ref_spec.rb + - spec/lib/feature_spec.rb + - spec/lib/gitlab/app_logger_spec.rb + - spec/lib/gitlab/asciidoc_spec.rb + - spec/lib/gitlab/auth/auth_finders_spec.rb + - spec/lib/gitlab/auth/blocked_user_tracker_spec.rb + - spec/lib/gitlab/auth/request_authenticator_spec.rb + - spec/lib/gitlab/auth_spec.rb + - spec/lib/gitlab/background_migration/populate_personal_snippet_statistics_spec.rb + - spec/lib/gitlab/background_migration/populate_project_snippet_statistics_spec.rb + - spec/lib/gitlab/checks/diff_check_spec.rb + - spec/lib/gitlab/checks/lfs_check_spec.rb + - spec/lib/gitlab/checks/lfs_integrity_spec.rb + - spec/lib/gitlab/ci/config/external/file/base_spec.rb + - spec/lib/gitlab/ci/config/external/file/local_spec.rb + - spec/lib/gitlab/ci/config/external/processor_spec.rb + - spec/lib/gitlab/ci/pipeline/chain/build_spec.rb + - spec/lib/gitlab/ci/pipeline/chain/command_spec.rb + - spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb + - spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb + - spec/lib/gitlab/ci/templates/Jobs/code_quality_gitlab_ci_yaml_spec.rb + - spec/lib/gitlab/ci/templates/Jobs/deploy_gitlab_ci_yaml_spec.rb + - spec/lib/gitlab/ci/templates/Jobs/test_gitlab_ci_yaml_spec.rb + - spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb + - spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb + - spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb + - spec/lib/gitlab/ci/templates/npm_spec.rb + - spec/lib/gitlab/ci/templates/terraform_latest_gitlab_ci_yaml_spec.rb + - spec/lib/gitlab/ci/trace_spec.rb + - spec/lib/gitlab/current_settings_spec.rb + - spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb + - spec/lib/gitlab/database/multi_threaded_migration_spec.rb + - spec/lib/gitlab/diff/highlight_cache_spec.rb + - spec/lib/gitlab/diff/highlight_spec.rb + - spec/lib/gitlab/diff/position_spec.rb + - spec/lib/gitlab/email/handler/create_issue_handler_spec.rb + - spec/lib/gitlab/email/handler/create_note_handler_spec.rb + - spec/lib/gitlab/etag_caching/middleware_spec.rb + - spec/lib/gitlab/exclusive_lease_helpers_spec.rb + - spec/lib/gitlab/fogbugz_import/importer_spec.rb + - spec/lib/gitlab/gfm/reference_rewriter_spec.rb + - spec/lib/gitlab/git/repository_spec.rb + - spec/lib/gitlab/gitaly_client/blob_service_spec.rb + - spec/lib/gitlab/gitaly_client/commit_service_spec.rb + - spec/lib/gitlab/gitaly_client/conflicts_service_spec.rb + - spec/lib/gitlab/gitaly_client/health_check_service_spec.rb + - spec/lib/gitlab/gitaly_client/operation_service_spec.rb + - spec/lib/gitlab/gitaly_client/praefect_info_service_spec.rb + - spec/lib/gitlab/gitaly_client/ref_service_spec.rb + - spec/lib/gitlab/gitaly_client/remote_service_spec.rb + - spec/lib/gitlab/gitaly_client/repository_service_spec.rb + - spec/lib/gitlab/gitaly_client/wiki_service_spec.rb + - spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb + - spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb + - spec/lib/gitlab/hashed_storage/migrator_spec.rb + - spec/lib/gitlab/import/merge_request_helpers_spec.rb + - spec/lib/gitlab/import_export/config_spec.rb + - spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb + - spec/lib/gitlab/import_export/importer_spec.rb + - spec/lib/gitlab/import_export/lfs_restorer_spec.rb + - spec/lib/gitlab/import_export/project/tree_restorer_spec.rb + - spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb + - spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb + - spec/lib/gitlab/import_export/version_checker_spec.rb + - spec/lib/gitlab/job_waiter_spec.rb + - spec/lib/gitlab/legacy_github_import/importer_spec.rb + - spec/lib/gitlab/legacy_github_import/project_creator_spec.rb + - spec/lib/gitlab/metrics/exporter/base_exporter_spec.rb + - spec/lib/gitlab/metrics/rack_middleware_spec.rb + - spec/lib/gitlab/metrics/subscribers/active_record_spec.rb + - spec/lib/gitlab/metrics_spec.rb + - spec/lib/gitlab/patch/action_dispatch_journey_formatter_spec.rb + - spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb + - spec/lib/gitlab/sidekiq_middleware_spec.rb + - spec/lib/gitlab/tracking/destinations/product_analytics_spec.rb + - spec/lib/gitlab/tracking/destinations/snowplow_spec.rb + - spec/lib/gitlab/tracking_spec.rb + - spec/lib/gitlab/usage_data_spec.rb + - spec/lib/gitlab/workhorse_spec.rb + - spec/lib/gitlab/x509/commit_spec.rb + - spec/lib/gitlab/x509/signature_spec.rb + - spec/lib/google_api/cloud_platform/client_spec.rb + - spec/lib/json_web_token/rsa_token_spec.rb + - spec/lib/mattermost/command_spec.rb + - spec/lib/mattermost/team_spec.rb + - spec/lib/system_check/simple_executor_spec.rb + - spec/models/ci/build_spec.rb + - spec/models/ci/runner_spec.rb + - spec/models/commit_spec.rb + - spec/models/environment_spec.rb + - spec/models/group_spec.rb + - spec/models/hooks/service_hook_spec.rb + - spec/models/hooks/system_hook_spec.rb + - spec/models/hooks/web_hook_spec.rb + - spec/models/integrations/jira_spec.rb + - spec/models/integrations/mattermost_slash_commands_spec.rb + - spec/models/issue_spec.rb + - spec/models/key_spec.rb + - spec/models/member_spec.rb + - spec/models/merge_request_diff_spec.rb + - spec/models/merge_request_spec.rb + - spec/models/note_spec.rb + - spec/models/project_import_state_spec.rb + - spec/models/project_spec.rb + - spec/models/repository_spec.rb + - spec/models/user_spec.rb + - spec/models/x509_certificate_spec.rb + - spec/policies/ci/build_policy_spec.rb + - spec/policies/ci/pipeline_policy_spec.rb + - spec/presenters/gitlab/blame_presenter_spec.rb + - spec/presenters/merge_request_presenter_spec.rb + - spec/requests/api/ci/runner/jobs_artifacts_spec.rb + - spec/requests/api/ci/runner/jobs_put_spec.rb + - spec/requests/api/ci/runner/jobs_request_post_spec.rb + - spec/requests/api/ci/runner/jobs_trace_spec.rb + - spec/requests/api/ci/runner/runners_delete_spec.rb + - spec/requests/api/ci/runner/runners_post_spec.rb + - spec/requests/api/ci/runner/runners_verify_post_spec.rb + - spec/requests/api/graphql/gitlab_schema_spec.rb + - spec/requests/api/graphql/project/error_tracking/sentry_detailed_error_request_spec.rb + - spec/requests/api/graphql_spec.rb + - spec/requests/api/helpers_spec.rb + - spec/requests/api/internal/base_spec.rb + - spec/requests/api/maven_packages_spec.rb + - spec/requests/api/merge_requests_spec.rb + - spec/requests/api/pages/pages_spec.rb + - spec/requests/api/project_export_spec.rb + - spec/requests/api/project_import_spec.rb + - spec/requests/api/projects_spec.rb + - spec/requests/api/snippets_spec.rb + - spec/requests/api/todos_spec.rb + - spec/requests/git_http_spec.rb + - spec/requests/import/gitlab_projects_controller_spec.rb + - spec/routing/routing_spec.rb + - spec/serializers/analytics_stage_serializer_spec.rb + - spec/serializers/merge_request_poll_cached_widget_entity_spec.rb + - spec/serializers/merge_request_poll_widget_entity_spec.rb + - spec/services/application_settings/update_service_spec.rb + - spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb + - spec/services/boards/lists/update_service_spec.rb + - spec/services/ci/create_pipeline_service_spec.rb + - spec/services/ci/destroy_expired_job_artifacts_service_spec.rb + - spec/services/ci/expire_pipeline_cache_service_spec.rb + - spec/services/ci/list_config_variables_service_spec.rb + - spec/services/ci/register_job_service_spec.rb + - spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb + - spec/services/ci/retry_build_service_spec.rb + - spec/services/ci/retry_pipeline_service_spec.rb + - spec/services/ci/stop_environments_service_spec.rb + - spec/services/clusters/applications/create_service_spec.rb + - spec/services/clusters/cleanup/project_namespace_service_spec.rb + - spec/services/clusters/cleanup/service_account_service_spec.rb + - spec/services/deployments/older_deployments_drop_service_spec.rb + - spec/services/deployments/update_environment_service_spec.rb + - spec/services/draft_notes/destroy_service_spec.rb + - spec/services/events/render_service_spec.rb + - spec/services/git/branch_push_service_spec.rb + - spec/services/git/process_ref_changes_service_spec.rb + - spec/services/groups/create_service_spec.rb + - spec/services/groups/update_service_spec.rb + - spec/services/integrations/test/project_service_spec.rb + - spec/services/issuable/destroy_service_spec.rb + - spec/services/issues/close_service_spec.rb + - spec/services/issues/reopen_service_spec.rb + - spec/services/members/destroy_service_spec.rb + - spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb + - spec/services/merge_requests/build_service_spec.rb + - spec/services/merge_requests/merge_service_spec.rb + - spec/services/merge_requests/mergeability_check_service_spec.rb + - spec/services/merge_requests/refresh_service_spec.rb + - spec/services/merge_requests/reload_diffs_service_spec.rb + - spec/services/merge_requests/resolved_discussion_notification_service_spec.rb + - spec/services/metrics/dashboard/custom_dashboard_service_spec.rb + - spec/services/metrics/dashboard/transient_embed_service_spec.rb + - spec/services/notes/create_service_spec.rb + - spec/services/notes/render_service_spec.rb + - spec/services/packages/conan/create_package_file_service_spec.rb + - spec/services/packages/nuget/metadata_extraction_service_spec.rb + - spec/services/packages/nuget/update_package_from_metadata_service_spec.rb + - spec/services/pages/delete_services_spec.rb + - spec/services/pod_logs/elasticsearch_service_spec.rb + - spec/services/pod_logs/kubernetes_service_spec.rb + - spec/services/post_receive_service_spec.rb + - spec/services/projects/after_rename_service_spec.rb + - spec/services/projects/container_repository/cleanup_tags_service_spec.rb + - spec/services/projects/container_repository/delete_tags_service_spec.rb + - spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb + - spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb + - spec/services/projects/destroy_service_spec.rb + - spec/services/projects/fork_service_spec.rb + - spec/services/projects/import_service_spec.rb + - spec/services/projects/lfs_pointers/lfs_download_service_spec.rb + - spec/services/projects/lfs_pointers/lfs_object_download_list_service_spec.rb + - spec/services/projects/prometheus/alerts/notify_service_spec.rb + - spec/services/projects/transfer_service_spec.rb + - spec/services/projects/update_remote_mirror_service_spec.rb + - spec/services/projects/update_service_spec.rb + - spec/services/projects/update_statistics_service_spec.rb + - spec/services/resource_events/change_labels_service_spec.rb + - spec/services/search_service_spec.rb + - spec/services/snippets/create_service_spec.rb + - spec/services/test_hooks/project_service_spec.rb + - spec/services/test_hooks/system_service_spec.rb + - spec/services/todo_service_spec.rb + - spec/services/users/destroy_service_spec.rb + - spec/services/users/migrate_to_ghost_user_service_spec.rb + - spec/spec_helper.rb + - spec/support/capybara.rb + - spec/support/helpers/api_helpers.rb + - spec/support/helpers/graphql_helpers.rb + - spec/support/helpers/ldap_helpers.rb + - spec/support/helpers/login_helpers.rb + - spec/support/helpers/metrics_dashboard_url_helpers.rb + - spec/support/helpers/rake_helpers.rb + - spec/support/helpers/stub_configuration.rb + - spec/support/helpers/stub_gitlab_calls.rb + - spec/support/helpers/test_env.rb + - spec/support/import_export/common_util.rb + - spec/support/services/migrate_to_ghost_user_service_shared_examples.rb + - spec/support/shared_contexts/email_shared_context.rb + - spec/support/shared_contexts/services/projects/container_repository/delete_tags_service_shared_context.rb + - spec/support/shared_examples/controllers/githubish_import_controller_shared_examples.rb + - spec/support/shared_examples/controllers/issuable_notes_filter_shared_examples.rb + - spec/support/shared_examples/controllers/issuables_requiring_filter_shared_examples.rb + - spec/support/shared_examples/controllers/repository_lfs_file_load_shared_examples.rb + - spec/support/shared_examples/controllers/set_sort_order_from_user_preference_shared_examples.rb + - spec/support/shared_examples/controllers/unique_visits_shared_examples.rb + - spec/support/shared_examples/controllers/update_invalid_issuable_shared_examples.rb + - spec/support/shared_examples/controllers/uploads_actions_shared_examples.rb + - spec/support/shared_examples/features/archive_download_buttons_shared_examples.rb + - spec/support/shared_examples/features/snippets_shared_examples.rb + - spec/support/shared_examples/lib/gitlab/ci/ci_trace_shared_examples.rb + - spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb + - spec/support/shared_examples/models/diff_note_after_commit_shared_examples.rb + - spec/support/shared_examples/models/integrations/base_slash_commands_shared_examples.rb + - spec/support/shared_examples/models/mentionable_shared_examples.rb + - spec/support/shared_examples/models/with_uploads_shared_examples.rb + - spec/support/shared_examples/path_extraction_shared_examples.rb + - spec/support/shared_examples/requests/api/discussions_shared_examples.rb + - spec/support/shared_examples/requests/api/snippets_shared_examples.rb + - spec/support/shared_examples/requests/rack_attack_shared_examples.rb + - spec/support/shared_examples/requests/snippet_shared_examples.rb + - spec/support/shared_examples/services/alert_management_shared_examples.rb + - spec/support/shared_examples/services/boards/boards_list_service_shared_examples.rb + - spec/support/shared_examples/services/boards/issues_list_service_shared_examples.rb + - spec/support/shared_examples/services/boards/issues_move_service_shared_examples.rb + - spec/support/shared_examples/services/issuable_shared_examples.rb + - spec/support/shared_examples/uploaders/object_storage_shared_examples.rb + - spec/support/shared_examples/workers/authorized_projects_worker_shared_example.rb + - spec/support/shared_examples/workers/reactive_cacheable_shared_examples.rb + - spec/support/snowplow.rb + - spec/tasks/gitlab/cleanup_rake_spec.rb + - spec/tasks/gitlab/container_registry_rake_spec.rb + - spec/tasks/gitlab/db_rake_spec.rb + - spec/tasks/gitlab/git_rake_spec.rb + - spec/tasks/gitlab/praefect_rake_spec.rb + - spec/tasks/gitlab/shell_rake_spec.rb + - spec/tasks/gitlab/x509/update_rake_spec.rb + - spec/uploaders/file_mover_spec.rb + - spec/uploaders/records_uploads_spec.rb + - spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb + - spec/views/layouts/_head.html.haml_spec.rb + - spec/views/projects/artifacts/_artifact.html.haml_spec.rb + - spec/workers/archive_trace_worker_spec.rb + - spec/workers/build_coverage_worker_spec.rb + - spec/workers/build_hooks_worker_spec.rb + - spec/workers/build_trace_sections_worker_spec.rb + - spec/workers/ci/build_schedule_worker_spec.rb + - spec/workers/ci/daily_build_group_report_results_worker_spec.rb + - spec/workers/cluster_configure_istio_worker_spec.rb + - spec/workers/cluster_provision_worker_spec.rb + - spec/workers/clusters/cleanup/project_namespace_worker_spec.rb + - spec/workers/clusters/cleanup/service_account_worker_spec.rb + - spec/workers/concerns/project_import_options_spec.rb + - spec/workers/create_commit_signature_worker_spec.rb + - spec/workers/create_note_diff_file_worker_spec.rb + - spec/workers/delete_diff_files_worker_spec.rb + - spec/workers/email_receiver_worker_spec.rb + - spec/workers/emails_on_push_worker_spec.rb + - spec/workers/error_tracking_issue_link_worker_spec.rb + - spec/workers/expire_pipeline_cache_worker_spec.rb + - spec/workers/group_export_worker_spec.rb + - spec/workers/group_import_worker_spec.rb + - spec/workers/namespaceless_project_destroy_worker_spec.rb + - spec/workers/namespaces/root_statistics_worker_spec.rb + - spec/workers/new_note_worker_spec.rb + - spec/workers/object_pool/create_worker_spec.rb + - spec/workers/packages/nuget/extraction_worker_spec.rb + - spec/workers/pages_remove_worker_spec.rb + - spec/workers/pipeline_hooks_worker_spec.rb + - spec/workers/pipeline_process_worker_spec.rb + - spec/workers/pipeline_schedule_worker_spec.rb + - spec/workers/project_cache_worker_spec.rb + - spec/workers/stage_update_worker_spec.rb + - spec/workers/stuck_ci_jobs_worker_spec.rb + - spec/workers/wait_for_cluster_creation_worker_spec.rb + - ee/spec/workers/security/auto_fix_worker_spec.rb diff --git a/.rubocop_todo/rspec/timecop_freeze.yml b/.rubocop_todo/rspec/timecop_freeze.yml new file mode 100644 index 0000000000..c20c6214fa --- /dev/null +++ b/.rubocop_todo/rspec/timecop_freeze.yml @@ -0,0 +1,29 @@ +--- +RSpec/TimecopFreeze: + Exclude: + - ee/spec/lib/gitlab/analytics/cycle_analytics/data_collector_spec.rb + - ee/spec/lib/gitlab/geo/git_push_http_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/daemon_spec.rb + - ee/spec/lib/gitlab/geo/oauth/login_state_spec.rb + - ee/spec/lib/gitlab/insights/reducers/count_per_period_reducer_spec.rb + - ee/spec/models/merge_train_spec.rb + - ee/spec/support/shared_contexts/lib/gitlab/insights/reducers/reducers_shared_contexts.rb + - qa/spec/support/repeater_spec.rb + - spec/features/users/active_sessions_spec.rb + - spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb + - spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb + - spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb + - spec/lib/gitlab/auth/unique_ips_limiter_spec.rb + - spec/lib/gitlab/checks/timed_logger_spec.rb + - spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb + - spec/lib/gitlab/puma_logging/json_formatter_spec.rb + - spec/lib/json_web_token/hmac_token_spec.rb + - spec/models/active_session_spec.rb + - spec/serializers/entity_date_helper_spec.rb + - spec/support/cycle_analytics_helpers/test_generation.rb + - spec/support/helpers/cycle_analytics_helpers.rb + - spec/support/helpers/javascript_fixtures_helpers.rb + - spec/support/shared_contexts/rack_attack_shared_context.rb + - spec/support/shared_examples/workers/concerns/reenqueuer_shared_examples.rb + - spec/workers/concerns/reenqueuer_spec.rb + - spec/workers/metrics/dashboard/prune_old_annotations_worker_spec.rb diff --git a/.rubocop_todo/rspec/timecop_travel.yml b/.rubocop_todo/rspec/timecop_travel.yml new file mode 100644 index 0000000000..29044236de --- /dev/null +++ b/.rubocop_todo/rspec/timecop_travel.yml @@ -0,0 +1,21 @@ +--- +RSpec/TimecopTravel: + Exclude: + - ee/spec/lib/gitlab/geo/event_gap_tracking_spec.rb + - ee/spec/lib/gitlab/geo/git_push_http_spec.rb + - ee/spec/lib/gitlab/geo/jwt_request_decoder_spec.rb + - ee/spec/lib/gitlab/geo/log_cursor/daemon_spec.rb + - ee/spec/models/broadcast_message_spec.rb + - ee/spec/models/burndown_spec.rb + - qa/spec/support/repeater_spec.rb + - spec/features/users/terms_spec.rb + - spec/lib/feature_spec.rb + - spec/models/broadcast_message_spec.rb + - spec/models/concerns/issuable_spec.rb + - spec/requests/api/ci/runner/jobs_trace_spec.rb + - spec/requests/api/issues/put_projects_issues_spec.rb + - spec/support/shared_contexts/cache_allowed_users_in_namespace_shared_context.rb + - spec/support/shared_examples/requests/api/time_tracking_shared_examples.rb + - spec/support/shared_examples/workers/concerns/reenqueuer_shared_examples.rb + - spec/workers/concerns/reenqueuer_spec.rb + - spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb diff --git a/.rubocop_todo/style/open_struct_use.yml b/.rubocop_todo/style/open_struct_use.yml new file mode 100644 index 0000000000..aa486f6956 --- /dev/null +++ b/.rubocop_todo/style/open_struct_use.yml @@ -0,0 +1,45 @@ +--- +Style/OpenStructUse: + Exclude: + - app/helpers/application_settings_helper.rb + - ee/spec/features/projects/new_project_spec.rb + - ee/spec/finders/template_finder_spec.rb + - ee/spec/helpers/ee/blob_helper_spec.rb + - ee/spec/lib/gitlab/auth/group_saml/failure_handler_spec.rb + - ee/spec/lib/gitlab/legacy_github_import/project_creator_spec.rb + - lib/api/wikis.rb + - lib/gitlab/git/diff_collection.rb + - lib/gitlab/import_export/after_export_strategies/base_after_export_strategy.rb + - lib/gitlab/testing/request_inspector_middleware.rb + - lib/mattermost/session.rb + - spec/controllers/groups/clusters_controller_spec.rb + - spec/controllers/import/gitlab_controller_spec.rb + - spec/controllers/projects/clusters_controller_spec.rb + - spec/factories/go_module_versions.rb + - spec/factories/wiki_pages.rb + - spec/features/projects/clusters_spec.rb + - spec/finders/template_finder_spec.rb + - spec/graphql/mutations/branches/create_spec.rb + - spec/graphql/mutations/clusters/agent_tokens/create_spec.rb + - spec/graphql/mutations/clusters/agents/create_spec.rb + - spec/graphql/mutations/clusters/agents/delete_spec.rb + - spec/graphql/mutations/commits/create_spec.rb + - spec/helpers/application_settings_helper_spec.rb + - spec/helpers/profiles_helper_spec.rb + - spec/initializers/doorkeeper_spec.rb + - spec/lib/gitlab/auth/o_auth/provider_spec.rb + - spec/lib/gitlab/database/migrations/runner_spec.rb + - spec/lib/gitlab/gitaly_client/blobs_stitcher_spec.rb + - spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb + - spec/lib/gitlab/legacy_github_import/project_creator_spec.rb + - spec/lib/gitlab/quick_actions/command_definition_spec.rb + - spec/models/design_management/design_action_spec.rb + - spec/models/design_management/design_at_version_spec.rb + - spec/models/user_spec.rb + - spec/presenters/packages/nuget/search_results_presenter_spec.rb + - spec/services/packages/nuget/metadata_extraction_service_spec.rb + - spec/services/projects/import_service_spec.rb + - spec/services/system_note_service_spec.rb + - spec/support/helpers/import_spec_helper.rb + - spec/support/helpers/login_helpers.rb + - spec/support/helpers/repo_helpers.rb diff --git a/.ruby-version b/.ruby-version index a4dd9dba4f..a603bb50a2 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.7.4 +2.7.5 diff --git a/CHANGELOG.md b/CHANGELOG.md index ff4d35620f..b97e7faf92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,404 @@ documentation](doc/development/changelog.md) for instructions on adding your own entry. -## 14.5.3 (2022-01-11) +## 14.6.3 (2022-01-18) + +### Fixed (4 changes) + +- [Fix destruction of projects with pipelines](gitlab-org/gitlab@83e1616fe46b933c5b78b2d43e08463fdae4264a) ([merge request](gitlab-org/gitlab!78401)) +- [Geo: Resolve "undefined method each_batch"](gitlab-org/gitlab@a38bf23ebd0a9931ec5bb91377955824dcda39ea) ([merge request](gitlab-org/gitlab!78401)) **GitLab Enterprise Edition** +- [Fix migration for cases with empty strings](gitlab-org/gitlab@ddda8880db35b7d48ca8e4ec8efe54954d64f41f) ([merge request](gitlab-org/gitlab!78401)) +- [Geo: adapt verification timed out query to use state table](gitlab-org/gitlab@89212752226d6c5f34830e3f4a73c5a56764ed17) ([merge request](gitlab-org/gitlab!78401)) **GitLab Enterprise Edition** + +## 14.6.2 (2022-01-10) No changes. +## 14.6.1 (2022-01-04) + +### Fixed (2 changes) + +- [Ignore new line differences when deciding whether to squash MR](gitlab-org/gitlab@9d25380756bbc11ad5d18ea268b0ed0b60bf92fb) ([merge request](gitlab-org/gitlab!77499)) +- [Fix re-use of extensions between instances](gitlab-org/gitlab@0ad3357123bbb72493b965b0ab769dab81890397) ([merge request](gitlab-org/gitlab!77499)) + +## 14.6.0 (2021-12-21) + +### Added (76 changes) + +- [Create table to store merge request compliance violations](gitlab-org/gitlab@6020f42812e3dc09d4163488e35d9a75f20da9ff) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74290)) +- [Upgrade GitLab Pages to 1.49.0](gitlab-org/gitlab@b10f47f58cc3c7998e6815580405d00575595715) ([merge request](gitlab-org/gitlab!76908)) +- [Add create crm organization component](gitlab-org/gitlab@20998c7f182a6f12001ac10b515fc8c20147b56a) by @leetickett ([merge request](gitlab-org/gitlab!76059)) +- [Registration features info for setting repo size](gitlab-org/gitlab@d857bc88bfe2dff493b73934c39ac89c25a4381a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73222)) **GitLab Enterprise Edition** +- [Log structured message when LFS object is auto-linked from parent](gitlab-org/gitlab@fe545efa9f3c138a1f65bed0f021525b8cb3fc22) ([merge request](gitlab-org/gitlab!76818)) +- [Enable display_outdated_line_diff by default](gitlab-org/gitlab@3f368ddb4378101757f7a3ce7a92d0d36bcf7823) ([merge request](gitlab-org/gitlab!76887)) +- [Default enable webauthn feature flag](gitlab-org/gitlab@81a6ee387a3f4b593859c04d52245312b9b194ba) by @kingjan1999 ([merge request](gitlab-org/gitlab!50735)) +- [Update return type for previousStageJobsOrNeeds](gitlab-org/gitlab@ca6c6a70b0e054b24cd331b0ce6bedb383a86dff) ([merge request](gitlab-org/gitlab!76444)) +- [Add support for Rel-License microformat](gitlab-org/gitlab@dd445481700a90c9e9fd645c2315e94b22df4889) ([merge request](gitlab-org/gitlab!76471)) +- [Add error alerts and badge for webhooks](gitlab-org/gitlab@d366378ce6612db8316a07e60eb139d4e7eb39da) ([merge request](gitlab-org/gitlab!76871)) +- [Add alert for rate limited webhooks](gitlab-org/gitlab@d163f4c929d696884438cb139329cdb3bae75803) ([merge request](gitlab-org/gitlab!76743)) +- [Expose iid in pipelines api](gitlab-org/gitlab@a7f53bddf1cfc64d471b13312dd01c42015799c4) ([merge request](gitlab-org/gitlab!76625)) +- [Implement separate status for bulk imports](gitlab-org/gitlab@96db744c439129de268cf05f4e7e5b41597ff751) ([merge request](gitlab-org/gitlab!73960)) +- [Include parent_iid and parent link in epic responses](gitlab-org/gitlab@16c439adab336b115f9cfa532e5ff4e640a21ddc) by @espadav8 ([merge request](gitlab-org/gitlab!76443)) **GitLab Enterprise Edition** +- [Add `ClusterImageScanningType` to `VulnerabilitiesResolver`](gitlab-org/gitlab@38d8bf4f680a8a5f8f391e162ef3cfa41578ebec) ([merge request](gitlab-org/gitlab!75797)) **GitLab Enterprise Edition** +- [Add ability to retry scans from on-demand scans list](gitlab-org/gitlab@d703847ed921e394ee655afd851b4b36ccd41e61) ([merge request](gitlab-org/gitlab!76448)) **GitLab Enterprise Edition** +- [Add ability to cancel on-demand scans](gitlab-org/gitlab@a77440d405caa34a9e8a6d9661ae32d31124aa99) ([merge request](gitlab-org/gitlab!76448)) **GitLab Enterprise Edition** +- [Add Geo proxied/local events service ping](gitlab-org/gitlab@b500b2cf65ec30ec832dd68259e2d979fb75fe01) ([merge request](gitlab-org/gitlab!76389)) **GitLab Enterprise Edition** +- [Allow use of `when` and `rules`](gitlab-org/gitlab@035e3d34a78b4675ae17e2e64969fa3bdd4a724b) ([merge request](gitlab-org/gitlab!76158)) +- [Add Workhorse metrics for secondary proxy requests](gitlab-org/gitlab@a2d4990281f1e130e2267003ded6c02c6abaf7aa) ([merge request](gitlab-org/gitlab!75936)) **GitLab Enterprise Edition** +- [Delete project events before the project](gitlab-org/gitlab@eb8bb098c76575a0cdb558b9f162881ab5527258) ([merge request](gitlab-org/gitlab!76465)) +- [Capture job executor value in ci_runners table](gitlab-org/gitlab@251420dc2a2a2e509c079d5b90836c447fc9de78) ([merge request](gitlab-org/gitlab!76368)) +- [Add markdown support for Vulnerability Description](gitlab-org/gitlab@0a6c6fddd18359b9184cb6c6e00617693fcb2fde) ([merge request](gitlab-org/gitlab!75859)) **GitLab Enterprise Edition** +- [ADd deprecation warning for group import/export](gitlab-org/gitlab@c11f62f5b8447df1c6d9be35c36265a71d850c20) ([merge request](gitlab-org/gitlab!76442)) +- [Add sticky header to group migration table](gitlab-org/gitlab@61fbe8b507adc82fdc95ccef1dd5b1c428a8a19d) ([merge request](gitlab-org/gitlab!76439)) +- [Add a total number of jobs run by a runner](gitlab-org/gitlab@a8d84a77a63b9585366c5fdc3737a82679aaae76) ([merge request](gitlab-org/gitlab!76211)) +- [GraphQL: Allow filtering runners by active status](gitlab-org/gitlab@39183eb80c31ff868370d851d7d1d221ef1aa2c6) ([merge request](gitlab-org/gitlab!76108)) +- [Log an activity event when an Agent connects](gitlab-org/gitlab@0d50fdfb0c8a2c1306d71d7ba1cb826dbc8751ac) ([merge request](gitlab-org/gitlab!75487)) +- [Added tracking events for the validation errors](gitlab-org/gitlab@6b3867a319acc08d1cfaab12afddd32398a152f3) ([merge request](gitlab-org/gitlab!75255)) +- [Add handling for pending incident escalations](gitlab-org/gitlab@1bd8f8e3c49896558d51d82a9abb22830648f4a7) ([merge request](gitlab-org/gitlab!74337)) **GitLab Enterprise Edition** +- [Add future_subscriptions column](gitlab-org/gitlab@eb3f46880d5ee5e0b46064940e6600633362febc) ([merge request](gitlab-org/gitlab!75716)) +- [Create data model for Deployment Approvals](gitlab-org/gitlab@c4d5ac49db3d87792ef4eadd6c55b1129ccac3d4) ([merge request](gitlab-org/gitlab!74932)) +- [Add event streaming metrics](gitlab-org/gitlab@2a4da833925458f1a43af248ab0b44246a71a407) ([merge request](gitlab-org/gitlab!75504)) **GitLab Enterprise Edition** +- [Enable bulk delete in tags list](gitlab-org/gitlab@edc3beb193a3d686c4f2c780a690c68a05793d16) ([merge request](gitlab-org/gitlab!75655)) +- [Encrypt plaintext static_objects_external_storage_auth_token](gitlab-org/gitlab@a37ffbb1add2a243bdc0e2a0b4aa0f0965b79aff) ([merge request](gitlab-org/gitlab!75417)) +- [Enable SSH key lifetime settings by default](gitlab-org/gitlab@e38f70c752c917936b04e696975595eb359870cb) ([merge request](gitlab-org/gitlab!76217)) **GitLab Enterprise Edition** +- [Adds graphql markdown field for Vulnerability Description](gitlab-org/gitlab@3ad73fc5f61aeb697a09f5897b61a310975fdfea) ([merge request](gitlab-org/gitlab!76202)) **GitLab Enterprise Edition** +- [Add first_commit and first_multiline_commit to commit template](gitlab-org/gitlab@be1b5c22d1f8919e154c4cdc59e63b6d75961799) by @trakos ([merge request](gitlab-org/gitlab!75819)) +- [Add the "Scheduled" tab to the on-demand scans page](gitlab-org/gitlab@0cf30a7340ce32fb31d2beb5daeebf2d68857e34) ([merge request](gitlab-org/gitlab!75372)) **GitLab Enterprise Edition** +- [Add index snippets on project_id and title](gitlab-org/gitlab@d5b0bcaf05b845b1e97492b39cab7ae6c0bfe66a) ([merge request](gitlab-org/gitlab!76161)) +- [Put vuln finding link ingest behind feature flag](gitlab-org/gitlab@654fb040de721e31449fa0106ac56a9805d3979c) ([merge request](gitlab-org/gitlab!76167)) +- [Add stale runners filters and badge](gitlab-org/gitlab@82e179e89a70e94d0a36f71a33c15241496289e7) ([merge request](gitlab-org/gitlab!75244)) +- [Add feature to limit the lifetime of SSH keys](gitlab-org/gitlab@02fef58edab24c092da1140e79b782b3d25d1e83) ([merge request](gitlab-org/gitlab!75098)) +- [Add Task work item type to the database](gitlab-org/gitlab@b003d23b3350f95b6ccc07d72e0a79e3f3b33c35) ([merge request](gitlab-org/gitlab!75447)) +- [Remove importer usage ping feature flag](gitlab-org/gitlab@d93a676545584712f48d3afeb733bb5891d182fe) ([merge request](gitlab-org/gitlab!75663)) +- [Enable FF multiple_gpg_signatures](gitlab-org/gitlab@14c1db2f6c8fd4ef317ca3c183672f420f5838ef) ([merge request](gitlab-org/gitlab!74385)) +- [Fixed sign-in via LDAP when a user cap is set](gitlab-org/gitlab@79d33c5132a820aa6e8b726608c652e638cd5df4) ([merge request](gitlab-org/gitlab!75555)) **GitLab Enterprise Edition** +- [Support expanded reference formats for URLs](gitlab-org/gitlab@175b336a81cd1b50f4aa7f5bddb551aec93651be) ([merge request](gitlab-org/gitlab!75719)) +- [Create vulnerability read model](gitlab-org/gitlab@90ca3058d1e44a60c56d505052ecb4f95e32ad7f) ([merge request](gitlab-org/gitlab!74733)) +- [Execute build hooks on pending status](gitlab-org/gitlab@242d363597e47ef5507b64012d1554683c487c2c) ([merge request](gitlab-org/gitlab!75737)) +- [Include `Last Activity` in User Permissions CSV export](gitlab-org/gitlab@c95987e5a5b98f9b60e3d78d7c143f65a9d421bc) ([merge request](gitlab-org/gitlab!75652)) **GitLab Enterprise Edition** +- [Introduce API to transfer groups to a new parent group](gitlab-org/gitlab@c3f71ada42976cd4cb980df616b33c7cb701fb1d) ([merge request](gitlab-org/gitlab!75205)) +- [Added Snowplow events to the Clusters page](gitlab-org/gitlab@eb01d7be919cd15e2d01be0329885fe51ffe402b) ([merge request](gitlab-org/gitlab!75223)) +- [Return job failure reason in API responses](gitlab-org/gitlab@7b143a405dac3f184b2f6253afb90b83dcb39c1a) by @albertvaka ([merge request](gitlab-org/gitlab!74888)) +- [Add project CI CD tab tracking](gitlab-org/gitlab@ecdd2b6bc9d4afecd8062b40754b90c5498df7d6) ([merge request](gitlab-org/gitlab!75187)) +- [Add incident_management_timeline_events table](gitlab-org/gitlab@7d8c3c4c5cc85ba50de4fbde83b174c7addaa89f) ([merge request](gitlab-org/gitlab!74530)) +- [Set `CS_DEFAULT_BRANCH_IMAGE` in Auto DevOps template](gitlab-org/gitlab@77d1224ba0ee259e99a471cf394ce31dd34667c8) ([merge request](gitlab-org/gitlab!74627)) +- [Add confidential filter to board list in GraphQL](gitlab-org/gitlab@28d98d1aafba58a51840e9becc4aec31fd90e802) ([merge request](gitlab-org/gitlab!75380)) +- [Add canCurrentUserPushToBranch permission](gitlab-org/gitlab@c38e4ccde4272ef572b531d478f9803d1e7e4234) ([merge request](gitlab-org/gitlab!75017)) +- [Use Keyset pagination for Groups API by default](gitlab-org/gitlab@39e5b880c94d38cb349eda3e875001211598993b) ([merge request](gitlab-org/gitlab!75078)) +- [Add GraphQL type and resolver for agent activity events](gitlab-org/gitlab@a61b8130687e4b60a0c59ede4f7f9b2a902d4adf) ([merge request](gitlab-org/gitlab!74651)) +- [Create default squash commit message using customizable template](gitlab-org/gitlab@42375dd47442ec61f05e7b1eed52f447a30429bc) by @trakos ([merge request](gitlab-org/gitlab!74340)) +- [Display issue crm contacts in UI](gitlab-org/gitlab@db0b92544f740b3ffe4e55e1d14f08f84dfacac1) by @leetickett ([merge request](gitlab-org/gitlab!74346)) +- [Create a note when replied to the email creating the service desk issue](gitlab-org/gitlab@ebcfb38567c59197d9975cb893d78b21ef76894e) ([merge request](gitlab-org/gitlab!71749)) +- [Update Member entity to expose member state](gitlab-org/gitlab@2f60cfca85e36327b26a2267f58f76633c66dc45) ([merge request](gitlab-org/gitlab!74624)) **GitLab Enterprise Edition** +- [Remove tag limit feature flag](gitlab-org/gitlab@39952697e877d9075c37764fec310111dae45908) ([merge request](gitlab-org/gitlab!74813)) +- [Migrate remaining U2fRegistrations to WebauthnRegistrations](gitlab-org/gitlab@453758b6f0f3556903488a839ac59bbe4d0061d6) ([merge request](gitlab-org/gitlab!74671)) +- [Create `agent_activity_events` table for storing Agent activity](gitlab-org/gitlab@4ef36dfb25fe6104c3240e247cf43eaf01bc47ae) ([merge request](gitlab-org/gitlab!74577)) +- [Invite members for tasks](gitlab-org/gitlab@dc21cfe23f0796b37230b9911790e3158f8acce7) ([merge request](gitlab-org/gitlab!74898)) +- [Add issue customer relations contacts quick actions](gitlab-org/gitlab@b5e6f7b38b39ec6124c5582fab4647ed1dadd654) by @leetickett ([merge request](gitlab-org/gitlab!73413)) +- [Allow board issue filtering by iteration cadence ID in GraphQL](gitlab-org/gitlab@42202aeab8e419f0068074c09cc8c2e6a2d2d36a) ([merge request](gitlab-org/gitlab!74451)) **GitLab Enterprise Edition** +- [Make invite members in quick menu permanent](gitlab-org/gitlab@74e014e6a0e2419738126c2a99642ac5d76ac8cc) ([merge request](gitlab-org/gitlab!74760)) +- [Partition pruning for the web_hook_logs table](gitlab-org/gitlab@988a96c7e03315df8acac41610784338bf53a0de) ([merge request](gitlab-org/gitlab!74739)) +- [Moved user cap worker logic to User](gitlab-org/gitlab@aee2f5bccc0fd32b3201e3cf2ef1416497b779e7) ([merge request](gitlab-org/gitlab!73991)) **GitLab Enterprise Edition** +- [Validate batched migration jobs](gitlab-org/gitlab@f9652cad762a4b97dffa4427029a6f4760c48090) ([merge request](gitlab-org/gitlab!72607)) +- [Track created_at on CI minutes records](gitlab-org/gitlab@bf88bdf14db22e501d446c05e29708f291af0372) ([merge request](gitlab-org/gitlab!74533)) + +### Fixed (93 changes) + +- [Fix foreign key and index names in `ci_sources_pipelines`](gitlab-org/gitlab@3fa6e65f34085580ee5ec51770a79faea4e73f44) ([merge request](gitlab-org/gitlab!76171)) +- [Strip leading and trailing whitespace from user's name](gitlab-org/gitlab@51ce5737d1e8f3e4967ab5356a298e6af2c5b8a8) ([merge request](gitlab-org/gitlab!76706)) +- [Ensure all scanners are translated in alerts](gitlab-org/gitlab@75fd592a9992741681f831cf3c54840f2b7415ff) ([merge request](gitlab-org/gitlab!76940)) +- [Fixed cache_key ids](gitlab-org/gitlab@37291085032e8d38028129a9d25d2cce80a6c13e) by @akumar1503 ([merge request](gitlab-org/gitlab!75454)) +- [Fix N+1 problem for system notes metadata association](gitlab-org/gitlab@3bc94ab8b4106a9f0171d01c5f30ac5396fed21d) ([merge request](gitlab-org/gitlab!76951)) +- [Fix updating emails for group notifications](gitlab-org/gitlab@89ca2e3a19ea0e8693864cd2f837cbebd432913f) ([merge request](gitlab-org/gitlab!76636)) +- [Handle nil services error in external pipeline validation](gitlab-org/gitlab@cb1742b80e73baa83f6bd475827c41e5b01b2ab7) ([merge request](gitlab-org/gitlab!76902)) +- [Fix expose status in Runners API](gitlab-org/gitlab@6b007a608fd72bc95f9b1b20d3e6e727f9a72260) ([merge request](gitlab-org/gitlab!76761)) +- [Fix N+1 problem for notes association](gitlab-org/gitlab@fad40e756e89cba6f39d398f3970152fca78a136) ([merge request](gitlab-org/gitlab!76764)) +- [Copy auth field objects when serializing values](gitlab-org/gitlab@5eebc6b3d86e3eab26ba96e0b606cca80bb85cee) ([merge request](gitlab-org/gitlab!76845)) **GitLab Enterprise Edition** +- [Update gitlab-markup gem to 1.8.0](gitlab-org/gitlab@cd57920a1aac2522d42067919c5c469fca9be06c) ([merge request](gitlab-org/gitlab!76386)) +- [Expose finished_at in job details JSON](gitlab-org/gitlab@049a865798e336ea73a9756e1acad93be0ff18dc) by @KevSlashNull ([merge request](gitlab-org/gitlab!76668)) +- [Fix OlderDeploymentsDropService drops manual deployments](gitlab-org/gitlab@1c2bca949583139e9a0b6613e9f758932c47584a) ([merge request](gitlab-org/gitlab!76632)) +- [Unescape and sanitize protected tag name on create and update](gitlab-org/gitlab@a5d837098f0188714df935454682fd0a0140e7a6) ([merge request](gitlab-org/gitlab!76198)) +- [Gracefully handle bad dependency scanner input](gitlab-org/gitlab@a139d7db9b881d4cb7f210a36fa301551f43911a) ([merge request](gitlab-org/gitlab!76597)) **GitLab Enterprise Edition** +- [Fix CI/CD settings available when CI/CD is off](gitlab-org/gitlab@b213e3958d0f6e59485e27b1962f2f83cae47d39) by @KevSlashNull ([merge request](gitlab-org/gitlab!76009)) +- [Add new line to code nav popover](gitlab-org/gitlab@07f0995a41624fc202313f330a70fa237d958342) ([merge request](gitlab-org/gitlab!76545)) +- [Error Tracking: Allow event payload to contain null bytes](gitlab-org/gitlab@cf5d0a4dad83a7286745b6be7c8cda1271e26ff2) ([merge request](gitlab-org/gitlab!76279)) +- [Only trigger housekeeping once per push](gitlab-org/gitlab@12353a2281ef7ab6dd64c6234e96b00861f58b0e) ([merge request](gitlab-org/gitlab!75581)) +- [Link existing LFS objects from parent fork during uploads](gitlab-org/gitlab@0a374212eae43589c0309b84f6498079053e67a1) ([merge request](gitlab-org/gitlab!75972)) +- [Fix SMIME signed email sending, do not overwrite Content-Disposition](gitlab-org/gitlab@8dc47e60863415e317c2184afda1e8b8ba9adc97) by @bufferoverflow ([merge request](gitlab-org/gitlab!76233)) +- [GithubImporter: Fallback to LegacyDiffNote when DiffNote fails](gitlab-org/gitlab@0b8c2beaf4a7e12206a456a32312e9629e623eed) ([merge request](gitlab-org/gitlab!76376)) +- [Fixed NoMethodError on import from GitHub Enterprise on RFC1918 IP](gitlab-org/gitlab@e10c6951e0296d384cfaa9bde5db8efeb2b9e97b) by @colinbarr ([merge request](gitlab-org/gitlab!76060)) +- [Fix issue sidebar keyboard shortcuts](gitlab-org/gitlab@57abb1cdcafb23e7c5f0b31b2602e159e4a7cb82) ([merge request](gitlab-org/gitlab!76415)) +- [Fix 'Erase job log' button is misleading](gitlab-org/gitlab@b742d57ed51aadc95590133b34c2b5ed8d0d8bea) by @KevSlashNull ([merge request](gitlab-org/gitlab!75892)) +- [Generate human readable message on duplicate dotenv variables](gitlab-org/gitlab@eda1c64e57e6328c51932492b1d39a688992d148) ([merge request](gitlab-org/gitlab!75861)) +- [Optimize query for issue neighbors](gitlab-org/gitlab@cbc50b76a7caafa6bf6ea2d4ef7d75b98242d262) ([merge request](gitlab-org/gitlab!76073)) +- [Fix commit sha being used instead of tag for tagged pipelines](gitlab-org/gitlab@9ee563ec913be019ddbaf57cbdf1d0bc5aa19872) ([merge request](gitlab-org/gitlab!76047)) +- [Ensure Jira users and labels have `id` attribute](gitlab-org/gitlab@fb59909b09f692103e201e80996824c3f83a8dfc) ([merge request](gitlab-org/gitlab!75966)) **GitLab Enterprise Edition** +- [Present pipeline coverage in pipeline API entity as string](gitlab-org/gitlab@0582b70a590b717a0f2a1af3f3b3ab889c1aad55) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/76299)) +- [Fix user list selection is not in sync with UI](gitlab-org/gitlab@6bd6e91f45d8f84ca62eaa67233cdc6400af541b) by @KevSlashNull ([merge request](gitlab-org/gitlab!75928)) +- [Fix schedule ID is show on schedule edit page](gitlab-org/gitlab@1a4d10e8f5bb3464361e87904b622d86c7544249) by @KevSlashNull ([merge request](gitlab-org/gitlab!75804)) +- [Use additional headers for matching service desk email](gitlab-org/gitlab@acf5c801cfe6153f54e7d6fac64437f3f42236d4) ([merge request](gitlab-org/gitlab!75443)) +- [Fix vulnerability report tab querystring removed when filters changed](gitlab-org/gitlab@aaf6dc48796bce839207f780cc4f0851d17ab527) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/76208)) **GitLab Enterprise Edition** +- [Fix occasional failure when updating labels from sidebar](gitlab-org/gitlab@52e7bdbe62f0e04388a60c2da4c3fd3c124d5e24) ([merge request](gitlab-org/gitlab!76099)) +- [Fix wrong end date in query for contributions](gitlab-org/gitlab@3a358c55644d6d685fd370fdb8e491ef9a6837fc) ([merge request](gitlab-org/gitlab!76077)) +- [Copy manual variables when retrying job](gitlab-org/gitlab@b73f9d390a32a7c02cfff6b83ff6de78e478ae81) ([merge request](gitlab-org/gitlab!75720)) +- [Fix some private contributions being hidden on the contribution calendar](gitlab-org/gitlab@826220e196c1bd41b659b8755fb99fee2c23b1bb) by @eggerd ([merge request](gitlab-org/gitlab!74826)) +- [Fix permissions for label promotion via API](gitlab-org/gitlab@be1b386c4a387ee03ba7d5f8dcda0b5922a91d2e) ([merge request](gitlab-org/gitlab!75930)) +- [Fix serverity and alert sidebar edit button style](gitlab-org/gitlab@7c6d82df028c3fd505a273958b5b3e20b29ec8f4) by @orozot ([merge request](gitlab-org/gitlab!75914)) +- [Pass current_user when rendering Markdown in email](gitlab-org/gitlab@d789d73f07f2a0fa68b55ff1ba2bfc1823a436f4) ([merge request](gitlab-org/gitlab!75635)) +- [Fix infinite loop on saml login of a blocked user](gitlab-org/gitlab@00a4831dfff04da1b4c4e4b7219d288ebcf8a047) ([merge request](gitlab-org/gitlab!75887)) +- [Add ci_status.scss for commit piplines page](gitlab-org/gitlab@2b31f599daa64849917104486faa68be86381dd7) by @orozot ([merge request](gitlab-org/gitlab!75878)) +- [Fix button variant in maintenance mode settings](gitlab-org/gitlab@6a683d68670b994906df0a7fd52219c09efae824) by @KevSlashNull ([merge request](gitlab-org/gitlab!75870)) +- [Fix epic date changes without user input](gitlab-org/gitlab@813257fd5e470e6374310330d8883a078db13535) ([merge request](gitlab-org/gitlab!75817)) +- [Fix cut off focus ring in commit container](gitlab-org/gitlab@16b9d6fbb84d4f5e15e979af7580c3d8a9170513) by @KevSlashNull ([merge request](gitlab-org/gitlab!75812)) +- [Add patch for WikiCloth](gitlab-org/gitlab@c8a0ad0bb54ca6bb80c730eeac5bb1ebcadf5f9b) ([merge request](...)) +- [Fix pride flag emoji rendering](gitlab-org/gitlab@a568cb884a8113ba36a666eb52363ece32223bbf) ([merge request](gitlab-org/gitlab!75011)) +- [Fix order in monthly events boundary query](gitlab-org/gitlab@ccae3d568d13992ef761c530cbae998e4950274f) ([merge request](gitlab-org/gitlab!75722)) +- [Do not run service discovery for DB load balancing for rake tasks](gitlab-org/gitlab@e460765de45bf01c3e94ca5ed0f79926cce843d2) ([merge request](gitlab-org/gitlab!75612)) +- [Ensure current user and variables are updated when playing a job](gitlab-org/gitlab@8b3ba6f3c0a72d17476cfb86a52373c7dc604fbd) ([merge request](gitlab-org/gitlab!75657)) +- [Allow creating a group access token for a group with SSO enforcement](gitlab-org/gitlab@96150fbc52fe39ccadceef231cf3fda65688a758) ([merge request](gitlab-org/gitlab!75023)) **GitLab Enterprise Edition** +- [Fixes pending note avatar size in diff view](gitlab-org/gitlab@748c33737782bfe6ed1cc2615b1e900ae17a1972) ([merge request](gitlab-org/gitlab!75130)) +- [Fix link to docs in the "Transfer Group" section](gitlab-org/gitlab@6bb12aedf6d2f2508d4fc403efa4ce6a2a3d61c7) by @gizero ([merge request](gitlab-org/gitlab!66246)) +- [Fix Wiki Pipeline network error if wiki does not exist](gitlab-org/gitlab@c3d0947e5bca64b69ddfb2e70e9ec2ceacafe8ab) ([merge request](gitlab-org/gitlab!74731)) +- [Fix for hexadecimal branch deletion](gitlab-org/gitlab@dc82ec85d4ea6f6fa7846c3f0939959996075724) ([merge request](gitlab-org/gitlab!75344)) +- [Fix column order in jobs tab in the pipelines details page](gitlab-org/gitlab@7edd0b370ac9c9a7fbd8d2b67d35f892d9f85549) ([merge request](gitlab-org/gitlab!75160)) +- [Fix import from remote object storage documentation](gitlab-org/gitlab@dcf9e51c57b6816d56126237648b64d4a5e5da2d) ([merge request](gitlab-org/gitlab!75158)) +- [Fix Gitlab Pages deployment wrong if a project has a public folder](gitlab-org/gitlab@653d77132e9094391660c9de7549834ab97258b0) by @sodepr ([merge request](gitlab-org/gitlab!74952)) +- [Catch YAML errors when parsing security policies](gitlab-org/gitlab@19a5e9153e307b7bf9d81b5f64c654a289390055) ([merge request](gitlab-org/gitlab!75092)) **GitLab Enterprise Edition** +- [Fix Debian Sources file name](gitlab-org/gitlab@a629da2abe6deca7071e587c77da72acd3df60e3) by @sathieu ([merge request](gitlab-org/gitlab!74445)) +- [Fix the SSL_CERT_DIR logging on git operations](gitlab-org/gitlab@6f7b88c7bb4874dd603c07373b89d3feefc40941) ([merge request](gitlab-org/gitlab!75196)) +- [Fix cross database transaction when blocking users](gitlab-org/gitlab@0f030f83991f32aeeeb2cf670a3b918f73c0826c) ([merge request](gitlab-org/gitlab!75195)) +- [Support Action Cable on GCP Memorystore](gitlab-org/gitlab@57141bd04ccd71ce1fd4a2984b8a33597d4a9b35) ([merge request](gitlab-org/gitlab!75173)) +- [Update dependency proxy copy and help text](gitlab-org/gitlab@d94017a793f6aaec2d46f8dbabb493cce5df485a) ([merge request](gitlab-org/gitlab!74806)) +- [Only display user bio for confirmed and active users](gitlab-org/gitlab@f2d0766731a753c3194c0f2930b8c1a5be0fc654) ([merge request](gitlab-org/gitlab!75032)) +- [Heartbeat runner only for specific job-context requests](gitlab-org/gitlab@aa5e73e7a7c51c035dd0e5532d05ec0eda19c830) ([merge request](https://gitlab.com/foo/bar/-/merge_requests/123)) +- [Sort months of the CI minutes chart app](gitlab-org/gitlab@55da27bed7efc74dbc34f3259dfc5ab8a4586830) ([merge request](gitlab-org/gitlab!74917)) **GitLab Enterprise Edition** +- [Fix broken project creation without import sources](gitlab-org/gitlab@e97a9e239f2ad84eeb84cd5af4664521ada8882b) ([merge request](gitlab-org/gitlab!75121)) +- [Do not try to auto-complete vulnerabilities if the user is nil](gitlab-org/gitlab@3e0173cc3d6e644f6422222642e885a7e39ec66c) ([merge request](gitlab-org/gitlab!75112)) **GitLab Enterprise Edition** +- [Do not show primary email as secondary email in admin view](gitlab-org/gitlab@c00c8fd22adaf1b0f96f8b3048c789458dfc32e7) ([merge request](gitlab-org/gitlab!75095)) **GitLab Enterprise Edition** +- [Ensure coverage approval rule sync is successful](gitlab-org/gitlab@791b267b28570c8391b214ba7a6e16cf085285d7) ([merge request](gitlab-org/gitlab!75087)) **GitLab Enterprise Edition** +- [Fix Sidekiq sleep time for jobs that use replicas](gitlab-org/gitlab@80e0b45eb19ada2081a95c89346a800b1ea72444) ([merge request](gitlab-org/gitlab!75081)) +- [Fix border spacing on multi-line comments](gitlab-org/gitlab@4b2f5e38af82b593f14335172004bb4dd18c25fb) ([merge request](gitlab-org/gitlab!74486)) **GitLab Enterprise Edition** +- [Add retries to github importer on client errors](gitlab-org/gitlab@2cf4f47daefd4190ed1e9fe5896b32fd70a5ea92) ([merge request](gitlab-org/gitlab!74966)) +- [Update dotNET-Core.gitlab-ci.yml template image](gitlab-org/gitlab@2209c3d60523c9c92f36b2b24802ecfa8cc5b329) by @softis-software ([merge request](gitlab-org/gitlab!74744)) +- [Fix wrong default branch imported with Bitbucket Server](gitlab-org/gitlab@006f6c73a3480892f03c9152ed5d30f966cf2e1e) ([merge request](gitlab-org/gitlab!74858)) +- [Upgrading ipynbdiff to 0.3.8](gitlab-org/gitlab@f7bce9de5ebe7c00a52e92f7bb1fd5503ae41d2f) ([merge request](gitlab-org/gitlab!74820)) +- [Allow to create issues by email when it contains only quotes](gitlab-org/gitlab@8cebd721e9c1ec75ad8da7b526646e9866fa953a) ([merge request](gitlab-org/gitlab!74413)) +- [Grant permissions for oauth users based on scopes](gitlab-org/gitlab@33390e155221d5cb0dc48e33ccee635934d61739) ([merge request](gitlab-org/gitlab!74646)) +- [Fix security report schema validation logic](gitlab-org/gitlab@262b237145469287e3e5714687bd7c95b7a4bd9d) ([merge request](gitlab-org/gitlab!74793)) **GitLab Enterprise Edition** +- [Fix docs error in NuGet API](gitlab-org/gitlab@e6a43962aa566a7ebe4b1dd242ade7f79dad93b8) by @wwwjon ([merge request](gitlab-org/gitlab!74780)) +- [Allow uploading up to 10 files](gitlab-org/gitlab@451f9c6ce071b3dd727d1cc097da9c58a08c4dc7) ([merge request](gitlab-org/gitlab!74377)) +- [Fix issue and MR exports to support NOT filters](gitlab-org/gitlab@cc00ac7f1c2989336002214e2e2428f47d23cdb5) ([merge request](gitlab-org/gitlab!74764)) +- [Create missing /root/.gnupg dir in Scala.gitlab-ci.yml](gitlab-org/gitlab@45825580daede20e597658ca6f83fb23bf982250) by @carlosrogue ([merge request](gitlab-org/gitlab!71561)) +- [Don't try to generate url for an finding records](gitlab-org/gitlab@b686da2581c5cbaed62155bc145d503ead95f1fd) ([merge request](gitlab-org/gitlab!74724)) **GitLab Enterprise Edition** +- [Use gpg --recv-keys instead of curl in Scala.gitlab-ci.yml](gitlab-org/gitlab@965546cbf22671f8c86e9eeaa0e9ee651003cff9) by @carlosrogue ([merge request](gitlab-org/gitlab!71561)) +- [Error Tracking: Support exceptions from Python's repl](gitlab-org/gitlab@bb6706cdd66e3d94b0dfa8882a60b0cf84178e92) ([merge request](gitlab-org/gitlab!74717)) +- [Move VSA stage options to footer](gitlab-org/gitlab@17755bf7ed6b5cf1f700ff21d490c08839099082) ([merge request](gitlab-org/gitlab!74683)) **GitLab Enterprise Edition** +- [Fix discussions filter not working](gitlab-org/gitlab@aaba5cf78aa57442ad38ab880142485a509ef972) ([merge request](gitlab-org/gitlab!74662)) +- [Remove deprecated apt-key usage on Scala.gitlab-ci.yml](gitlab-org/gitlab@531c292205adc0975b693eb9642bef4551f9f629) by @carlosrogue ([merge request](gitlab-org/gitlab!71561)) +- [Fix display of times in access and deploy token table](gitlab-org/gitlab@5346cfc625ffe68d9376a1cab00e61321ab2ac07) by @edith007 ([merge request](gitlab-org/gitlab!72212)) +- [Add emoji aliases for :) and :(](gitlab-org/gitlab@c6fc80be61a03e069cd1b21355bb2a3bb942293a) ([merge request](gitlab-org/gitlab!74204)) + +### Changed (95 changes) + +- [Use linear version GroupsWithTemplatesFinder#extended_group_search](gitlab-org/gitlab@5fe40a793d74ec6b17b566a3974ded3b593afc1d) ([merge request](gitlab-org/gitlab!75981)) **GitLab Enterprise Edition** +- [Add Pajamas badge for pipelines license tab](gitlab-org/gitlab@5eef869f95c55ce05fd30a19d249486ac1516baa) ([merge request](gitlab-org/gitlab!76997)) **GitLab Enterprise Edition** +- [Add copy issue URL button to vulnerability error message](gitlab-org/gitlab@46c207ebba53cb25cf6ea424768680fec3b532c2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/76215)) **GitLab Enterprise Edition** +- [Make badge in admin/users/_access_levels.html.haml Pajamas compliant](gitlab-org/gitlab@63feb703eca8de278693ba1b43061e8d58779c3c) ([merge request](gitlab-org/gitlab!76973)) +- [Update badges for ci builds to use helper](gitlab-org/gitlab@89a1adbe264929792a1e32ebd9e11fa2d67dcb58) ([merge request](gitlab-org/gitlab!76791)) +- [Update project runner badges to pajamas](gitlab-org/gitlab@cbc62f37616cd13e343b82e0a37ed3d3df5fdf7c) ([merge request](gitlab-org/gitlab!76985)) +- [Removes all ci_optimize_project_records_destruction ff](gitlab-org/gitlab@651259ee3593e5bba2d9571420396a14a8125939) ([merge request](gitlab-org/gitlab!72600)) +- [Update user signups cap to allow values greater than licensed user count](gitlab-org/gitlab@75a71bc0d3abd9c4c47a4a8065a98aa2d7b68796) ([merge request](gitlab-org/gitlab!76829)) **GitLab Enterprise Edition** +- [Make use of the project data served by Rails](gitlab-org/gitlab@4d1eb551e32b1ef72f52ded40f9e576998ae2378) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/72218)) +- [Remove Analytics menu item from unlicensed EE](gitlab-org/gitlab@fd29568620702c0dddf2ebe961f276a1df9fa80f) ([merge request](gitlab-org/gitlab!76212)) **GitLab Enterprise Edition** +- [Geo: Treat missing files as sync failures](gitlab-org/gitlab@af2a926a098eb8105142c61e430da5047b3d833b) ([merge request](gitlab-org/gitlab!76801)) **GitLab Enterprise Edition** +- [Remove FF avoid_cross_joins_environments_in_self_and_descendants](gitlab-org/gitlab@4c768671cf241ff1563202b1e85eb13c31e893f7) ([merge request](gitlab-org/gitlab!76857)) +- [Remove cached_mr_title feature flag](gitlab-org/gitlab@6e5e2013f2ea697a351c1ff705e9990fd0e3c837) ([merge request](gitlab-org/gitlab!74228)) +- [Update cluster badge to pajamas](gitlab-org/gitlab@df1299ce646ddc76f60a7f334dd6bbd52b0efe1e) ([merge request](gitlab-org/gitlab!76608)) +- [Hide user avatar for blocked and unconfirmed users](gitlab-org/gitlab@f2a83cd8e4bf2324b81ad517b229a3d63fd55faa) ([merge request](gitlab-org/gitlab!75921)) +- [Order jobs returned desc](gitlab-org/gitlab@e22564510977831a51acbf11c74f6f79d10daca7) ([merge request](gitlab-org/gitlab!76227)) +- [Enhance the sidebar to use gl-link focus styling](gitlab-org/gitlab@2acf75da39a4a1630c014ada0bd45f26187b262e) ([merge request](gitlab-org/gitlab!76144)) +- [Default improved_container_scan_matching to true](gitlab-org/gitlab@180899a2b6542b68081ec6c39b7fd6fbd6af0918) ([merge request](gitlab-org/gitlab!76285)) +- [Add Pajamas-complient protected tags badge](gitlab-org/gitlab@2ce21565cb28698c6201b9f3662c4962d7fa78ba) ([merge request](gitlab-org/gitlab!76552)) +- [Split up yaml and humanized policy previews](gitlab-org/gitlab@bc78d76ee02fbe9b6dd7d65e03a60ac765fdd7c0) ([merge request](gitlab-org/gitlab!75386)) **GitLab Enterprise Edition** +- [Use finding_evidence over raw_metadata](gitlab-org/gitlab@adcf3d514325ff3150bb3617cd3214eee7494c28) ([merge request](gitlab-org/gitlab!75140)) **GitLab Enterprise Edition** +- [When dependency proxy is disabled remove the menu](gitlab-org/gitlab@e32c7726bd7d42d96a7473d6ebc4250e15b52e76) ([merge request](gitlab-org/gitlab!76079)) +- [Clean up clone_job_variables_at_job_retry](gitlab-org/gitlab@cacedf0f76e4e214480b038dad9f42667c06f8ae) ([merge request](gitlab-org/gitlab!76162)) +- [Remove branches_pagination_without_count FF](gitlab-org/gitlab@f14159033cfa8e49253db2031f0a0a7f14628b97) ([merge request](gitlab-org/gitlab!76526)) +- [Enable deployments_archive feature flag by default](gitlab-org/gitlab@36c35d4a5eec0eafe09e42a4aa7df9b7a4bef65a) ([merge request](gitlab-org/gitlab!75824)) +- [Migrate auto-devops setting to GlBadge abstraction](gitlab-org/gitlab@aeab12c9ee8bdfaf6b628d085254c8f97759ae0e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/76416)) +- [Geo - Use Rails 6 many databases support](gitlab-org/gitlab@82798f1caf2c1a42f193f512d61a79618b8b5a86) ([merge request](gitlab-org/gitlab!73109)) **GitLab Enterprise Edition** +- [Tanuki Emoji: switch fallback emoji to Noto Emoji](gitlab-org/gitlab@89e739e3b61865cb40b4c3c8ba322980628e122e) ([merge request](gitlab-org/gitlab!76479)) +- [Display tag messages with line endings](gitlab-org/gitlab@9a23492d59758e7c72fcd877425e8fff1a7137ef) by @KevSlashNull ([merge request](gitlab-org/gitlab!75896)) +- [Migrate badges to be compliant with the Pajamas design system](gitlab-org/gitlab@99ad081f1cde5ddd3f25f7667cfa683d7bd7c7b0) ([merge request](gitlab-org/gitlab!76257)) +- [Merge feature flags related to new CI minutes tracking](gitlab-org/gitlab@28fd1d2c537738feebacf6dcb915118319448f29) ([merge request](gitlab-org/gitlab!75755)) **GitLab Enterprise Edition** +- [Add loose foreign key for Terraform state versions](gitlab-org/gitlab@7fa3cb45b5e621723549156b18fbc71aff7c2c39) ([merge request](gitlab-org/gitlab!74524)) +- [Remove load_balancing_for_update_all_mirrors_worker FF](gitlab-org/gitlab@304290485f083f30ce624d6830e1058dabc169a3) ([merge request](gitlab-org/gitlab!76336)) +- [Separate CI minutes notification levels between new and legacy](gitlab-org/gitlab@2e94399fa549652df73d347158b0c39c7271bbf4) ([merge request](gitlab-org/gitlab!75512)) **GitLab Enterprise Edition** +- [Allow external Spamcheck API key to be blank](gitlab-org/gitlab@b18777151b0fe840108b2d0c79318715cee1c8a0) ([merge request](gitlab-org/gitlab!76303)) +- [Migrate badges in Admin -> Groups -> Show](gitlab-org/gitlab@c218e0a1125b51489ec31fa9453bad01b2cff309) ([merge request](gitlab-org/gitlab!76251)) +- [Migrate badge in Group -> CI/CD -> Auto DevOps](gitlab-org/gitlab@e3621af855c594c50299af104c8a9346110306fc) ([merge request](gitlab-org/gitlab!76246)) +- [Migrate badge component in the admin -> projects area](gitlab-org/gitlab@a543fc8f4407fffc5f655e32ad8c1f743a58b6b1) ([merge request](gitlab-org/gitlab!76239)) +- [Fix: web ide text color in dark theme](gitlab-org/gitlab@5acf8ea271b6be6c239ececd2b77c6ace5386684) by @orozot ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/76046)) +- [Make DORA data visible for admins](gitlab-org/gitlab@c241e6dcaec4f56aae733082cd376c298ee9705a) ([merge request](gitlab-org/gitlab!76204)) +- [Improve runner deletion modal](gitlab-org/gitlab@5dcb3bc9c9a7a16aae4c5f34d18bc778410aa5a5) ([merge request](gitlab-org/gitlab!75432)) +- [Handle query timeouts better](gitlab-org/gitlab@2671aada0b73f0d967fc011a7aa7fd52ebc2fd8c) ([merge request](gitlab-org/gitlab!75034)) +- [Add cleanup migration for BackfillUserNamespace](gitlab-org/gitlab@3c86027edd1c759b25c9ec59279744b40f427454) ([merge request](gitlab-org/gitlab!73495)) +- [Modify pending member approval endpoint](gitlab-org/gitlab@99f5e8c12c9a8831c8139c54fb1ec5dd9ca84c61) ([merge request](gitlab-org/gitlab!75769)) **GitLab Enterprise Edition** +- [Use confirm variant for 'New requirement' button](gitlab-org/gitlab@f0fd71f07ac1fab7fc87cf23c9777c8f47a44783) by @KevSlashNull ([merge request](gitlab-org/gitlab!76052)) **GitLab Enterprise Edition** +- [Add title with the file name to file_row component](gitlab-org/gitlab@6b684ab5c0d4f46e85cc80e6d3d497524516619b) by @ruben.meza ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75934)) +- [Enable linear version User#membership_groups](gitlab-org/gitlab@1200642b27fac465ea096a0df4e4c8f954b40114) ([merge request](gitlab-org/gitlab!74529)) +- [UI text updates in new OAuth applications view](gitlab-org/gitlab@471e729fd3d4c256e2a73839a327f5edded85722) ([merge request](gitlab-org/gitlab!72703)) +- [Change job duration label to 'Elapsed time' when in progress](gitlab-org/gitlab@3c9916bb7b1b0f5bfdaec180e22d9b8a9e96927a) by @KevSlashNull ([merge request](gitlab-org/gitlab!75811)) +- [Add link for failed pipelines](gitlab-org/gitlab@78e1598c7d0ebfdc4fcdb93b4565d114b21fc33e) ([merge request](gitlab-org/gitlab!75654)) +- [Pipelines show full job names](gitlab-org/gitlab@f67371939639e0b6014199ea8bb8c3e99f91e249) by @albertvaka ([merge request](gitlab-org/gitlab!74879)) +- [Cleanup unaccessible todos when user leaves public project](gitlab-org/gitlab@84611a7d65589bbea6b593f19ad874bce09433a0) ([merge request](gitlab-org/gitlab!74829)) +- [Add space between columns in runner table](gitlab-org/gitlab@6f1fbc2417386dd3b8a23c693c500836ca50e76b) ([merge request](gitlab-org/gitlab!75636)) +- [Fixed an event for focus](gitlab-org/gitlab@1d327469b55405a1ef5bc9bc52656d11cb2b2901) ([merge request](gitlab-org/gitlab!75629)) +- [Remove feature flag `create_vulnerabilities_via_api`](gitlab-org/gitlab@7d8ac5e29b6ccdd5d5c24dd14f73db82eeff1cad) ([merge request](gitlab-org/gitlab!75685)) +- [Adapt to size changes when displaying tooltips](gitlab-org/gitlab@a8dbf7c3b16d241f22b6772e01ba04e604137a24) ([merge request](gitlab-org/gitlab!75020)) +- [Rework markdown footnote processing](gitlab-org/gitlab@8614e0a92889381dd8b9f147965caeaa9b9b4686) ([merge request](gitlab-org/gitlab!75054)) +- [Add Helm-chart storage limits to API and UI](gitlab-org/gitlab@618aa52faa4eb0c6fc7a2e47e63a53bff78fdb2c) by @mlegner ([merge request](gitlab-org/gitlab!75117)) +- [Default jira_use_first_ref_by_oid feature flag to true](gitlab-org/gitlab@6cb137ba64e527e816a8deac71137e2387edd37a) ([merge request](gitlab-org/gitlab!73510)) +- [Remove chevron for menu button](gitlab-org/gitlab@4aef1a2d2a30de3e47bfc0257bfb0d46c0a04c6f) ([merge request](gitlab-org/gitlab!75394)) +- [Change icon to review-list](gitlab-org/gitlab@2b08f5d6f3648ebf010b1d8bf58864923938c27b) ([merge request](gitlab-org/gitlab!75393)) +- [Expose failed import error through API](gitlab-org/gitlab@79e80b522d940cf819ecfd0eef3387e6ab49699e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75440)) +- [Remove ci_new_query_for_pending_stuck_jobs feature flag](gitlab-org/gitlab@e41fa62474b20075a6f53cb5c1359eaefb9194fc) ([merge request](gitlab-org/gitlab!75420)) +- [Enable job trace store outside database transaction by default](gitlab-org/gitlab@b90899f8b97482e1bb1ef3dd8f0e546d658e7184) ([merge request](gitlab-org/gitlab!75414)) +- [Change namespace type default to 'User'](gitlab-org/gitlab@76454805043d19441715549835f9124662863feb) ([merge request](gitlab-org/gitlab!74592)) +- [Load only one scan_finding_rule per policy](gitlab-org/gitlab@db5acf823aca3e95af740d92a42194823ce6feeb) ([merge request](gitlab-org/gitlab!71858)) **GitLab Enterprise Edition** +- [Add line number and import_type to the import status API](gitlab-org/gitlab@7d784019140f00767aedf2ef940acb849f88a2a5) ([merge request](gitlab-org/gitlab!75331)) +- [Refine the take-out-of-draft message](gitlab-org/gitlab@0d54e6a943fb5a74684a2057083e188e5e873798) ([merge request](gitlab-org/gitlab!74855)) +- [Improve copy when no iteration found in sidebar](gitlab-org/gitlab@e0d3a44f8b257636d2d3efa7ae113e9ec98cf7ad) ([merge request](gitlab-org/gitlab!71010)) **GitLab Enterprise Edition** +- [Update UI message for merge conflicts](gitlab-org/gitlab@650ef4e748847c75e695f2c6772fbe56db084e4f) ([merge request](gitlab-org/gitlab!74655)) +- [Change remediated badge icon from wrench to check-circle-dashed](gitlab-org/gitlab@5978966a55cd53dfab2816eb889c3592e4e0a53f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74689)) **GitLab Enterprise Edition** +- [Do not require startDate when creating a manual iteration cadence](gitlab-org/gitlab@a267aa3a8dc438877592add694ddcec4ee456a9c) ([merge request](gitlab-org/gitlab!75147)) +- [Show disabled fork button for user without enough permissions](gitlab-org/gitlab@01329d6ad7b1033eec01379a3808a5af0ad26871) ([merge request](gitlab-org/gitlab!74876)) +- [Copy variables when retrying job](gitlab-org/gitlab@891a4821f229348b6cf5d853583f92e693b0e3dc) ([merge request](gitlab-org/gitlab!75042)) +- [Relocate online runners count in search bar](gitlab-org/gitlab@2bd69e208cb32cbc7dca6941927d4fbf30d09549) ([merge request](gitlab-org/gitlab!74877)) +- [Prevent runner list IP and version overflow](gitlab-org/gitlab@3013b5434d4c94af2c247461f1cbada3e99e5652) ([merge request](gitlab-org/gitlab!74707)) +- [Add more merging messages from the community](gitlab-org/gitlab@164200c719af4f57bdcb204359c67ae911be5b6d) ([merge request](gitlab-org/gitlab!74720)) +- [Remove diff limiting feature flags](gitlab-org/gitlab@184f494933bc83f59ac8452918aed0a9441ecd7f) ([merge request](gitlab-org/gitlab!64228)) +- [Add URL to rejection_message if terms_not_accepted](gitlab-org/gitlab@33839690dfb5a101a6b237304f90149d5cff954f) by @jgay ([merge request](gitlab-org/gitlab!75082)) +- [Drop FindingPipelines and Findings in bg migration](gitlab-org/gitlab@391452f55a11f5fb439980a215016db2cfb982bb) ([merge request](gitlab-org/gitlab!74008)) +- [Enable preserve_latest_wal_locations_for_idempotent_jobs by default](gitlab-org/gitlab@2842e05cac072ea7594e7e8056dfb5fd31f9dec4) ([merge request](gitlab-org/gitlab!74902)) +- [Enable linear version of `groups_including_descendants_by`](gitlab-org/gitlab@0bb75d09bd372bfb181ddb2d9c0553063ea519b2) ([merge request](gitlab-org/gitlab!74275)) +- [Migrate snippets tabs to rails helper](gitlab-org/gitlab@2bdb960f3e7b934f4e6f2a37298c78971fb85236) ([merge request](gitlab-org/gitlab!74867)) +- [Remove surface_environment_creation_failure feature flag](gitlab-org/gitlab@08c5550685b6b53626ef6f46ba3c24a0f8f4d531) ([merge request](gitlab-org/gitlab!74773)) +- [Improve UI message: creating branch from fork](gitlab-org/gitlab@662d45f54179cab656c8ffb68b37db250ba937bf) ([merge request](gitlab-org/gitlab!74198)) +- [Add Shimo integration sidebar menu and landing page](gitlab-org/gitlab@f7f713265577d443f03ccaa49eea36f0980cae6b) by @icbd ([merge request](gitlab-org/gitlab!74140)) +- [Enable External MR diff verification by default](gitlab-org/gitlab@77a411b50d32f1ae226ec1e9ce0a88cff2dab2ec) ([merge request](gitlab-org/gitlab!63975)) **GitLab Enterprise Edition** +- [Remove support for sticking to old and new keys](gitlab-org/gitlab@9622020c06c3afc9b91bfcaef9a29c3e64db0100) ([merge request](gitlab-org/gitlab!74784)) +- [Add BaseEdge base class](gitlab-org/gitlab@5e02ef43bc655456ce3004a1f47a6dcf5200c1d2) ([merge request](gitlab-org/gitlab!71476)) +- [Split out main, and geo DB out of CI transactions](gitlab-org/gitlab@1517b07e9fe485e5d51dd8c55a1e159c8dafa169) ([merge request](gitlab-org/gitlab!74737)) **GitLab Enterprise Edition** +- [Migrate button variants](gitlab-org/gitlab@329ec7e1eaf7141a0876771be2d756c34d0f4977) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74718)) **GitLab Enterprise Edition** +- [Update gl-modal buttons in user status modal](gitlab-org/gitlab@9aae10a373c444e47dbd7c35ee17b3aa0ab597ed) by @yo ([merge request](gitlab-org/gitlab!59460)) +- [Do not select "My company or team" radio box by default](gitlab-org/gitlab@2d93592bc061d93eef5d1a4399a9b3d4521f66cf) ([merge request](gitlab-org/gitlab!74681)) +- [Allow squashing in MRs with single commit](gitlab-org/gitlab@869875fed3d0396f529989211382962f2addc957) by @trakos ([merge request](gitlab-org/gitlab!74464)) +- [Start using v1.x of our IAC analyzer](gitlab-org/gitlab@9e59964b0cf318677dbbd7126d9c8f33570fdf1a) ([merge request](gitlab-org/gitlab!74560)) + +### Deprecated (2 changes) + +- [Ignore position column](gitlab-org/gitlab@9f7517d2114409bfbba4169ef489a494c8eb2937) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/76311)) **GitLab Enterprise Edition** +- [Deprecate ApiFuzzingCiConfigurationCreate fields](gitlab-org/gitlab@d3f335b100bce0fea2bbb846d75300740805750a) ([merge request](gitlab-org/gitlab!74783)) **GitLab Enterprise Edition** + +### Removed (4 changes) + +- [Remove `force_company_trial` experiment](gitlab-org/gitlab@e5b9c0d44614dfa6fd476bd5e68b986b43478761) ([merge request](gitlab-org/gitlab!76982)) +- [Remove the configureIacScanningViaMr feature flag](gitlab-org/gitlab@2da8ae7b1a76a68513a235756ef244f9ed66ebd4) ([merge request](gitlab-org/gitlab!75721)) +- [Remove sast_entry_points experiment](gitlab-org/gitlab@07470fffe85c28fe529aee214f4cf67399c68b96) ([merge request](gitlab-org/gitlab!75014)) +- [Remove reference to lower_relation_max_count_limit](gitlab-org/gitlab@8a3163c3025735eb73227ef94d1c0a5cfa13abd8) ([merge request](gitlab-org/gitlab!75482)) + +### Security (5 changes) + +- [Enable visibility filter on Epics menu pill count](gitlab-org/gitlab@0dcd256df0fa812f84e91eb92fcc9884a1ea20d1) ([merge request](gitlab-org/gitlab!76456)) **GitLab Enterprise Edition** +- [Use Gitlab::Json to serialize sessions](gitlab-org/gitlab@7e7cf0b8df64c3ef44def9a085dc2af9dda6d004) ([merge request](gitlab-org/gitlab!72701)) +- [Update Puma to version 5.5.2](gitlab-org/gitlab@32d23747fc560f7eafc0eb52fae04a1633e5bded) ([merge request](gitlab-org/gitlab!75642)) +- [Disallow non-members unlocking project files](gitlab-org/gitlab@fd76d6850c5179cfedee5263fffd17d3d16f53e1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74541)) **GitLab Enterprise Edition** +- [Use a more precise Sourcegraph URL in CSP](gitlab-org/gitlab@29399b2e60a5a22e49973d99e611137549712ac4) ([merge request](gitlab-org/gitlab!72552)) + +### Performance (18 changes) + +- [Limit the amount of ids loaded when using package build infos](gitlab-org/gitlab@253271229a1310708c8b7d108d79b3c501ffc145) ([merge request](gitlab-org/gitlab!75672)) +- [Update dependency proxy API to use cleanup worker](gitlab-org/gitlab@a737fe60d820a15e64d4457c1ef2f3e82d6f59f5) ([merge request](gitlab-org/gitlab!76696)) +- [Utilize C version of CommonMark renderer](gitlab-org/gitlab@9fa609c7bd77d45cc9110e360ed9ce66b73e22d5) ([merge request](gitlab-org/gitlab!76405)) +- [Add index to projects on marked_for_deletion_at field is null](gitlab-org/gitlab@cec0d009f73a4cc962b682c70ca444bcc47c76b8) ([merge request](gitlab-org/gitlab!75888)) +- [Only enqueue Jira workers when configured](gitlab-org/gitlab@fd52c4350199b7867d02667c1b8b11a61dd86969) ([merge request](gitlab-org/gitlab!76134)) +- [Add index to improve contribution graph query](gitlab-org/gitlab@6c5d441791191b69c5444cc6d1fd81891de57687) ([merge request](gitlab-org/gitlab!76081)) +- [Simplify sanitizing emojis from localStorage](gitlab-org/gitlab@90467765284290ed68255a4feb883fc8ac956dc1) ([merge request](gitlab-org/gitlab!75011)) +- [Optimize finding environment for BlobController](gitlab-org/gitlab@ed11580c047a0bdf92a176b88febf26a0a18f975) ([merge request](gitlab-org/gitlab!75518)) +- [Improve index for calendar query](gitlab-org/gitlab@e37bd6155daa1b31c55170455054e9b3643c7feb) ([merge request](gitlab-org/gitlab!74970)) +- [Replace Banzai based label rendering in VSA](gitlab-org/gitlab@c89bb6148a25ca563244d8675bcd049c46f33a3c) ([merge request](gitlab-org/gitlab!75415)) +- [Bulk insert job tags when creating a CI pipelines](gitlab-org/gitlab@180b3ff3de375f504bfe227a57b9471daec37a9b) ([merge request](gitlab-org/gitlab!73198)) +- [Enable load balancing for update all mirrors by default](gitlab-org/gitlab@df741a6f4e6c2d34c9893398cb6d945bf646914d) ([merge request](gitlab-org/gitlab!75335)) +- [Avoid N+1 issue linking DAST profiles and builds](gitlab-org/gitlab@a85fff3be3327e23c037dddc3efc8336abbe6d24) ([merge request](gitlab-org/gitlab!74967)) **GitLab Enterprise Edition** +- [Reduce variables transformations when creating a new pipeline](gitlab-org/gitlab@119f1cd83e544c9850e592f44f1d36da8310f6bc) ([merge request](gitlab-org/gitlab!73378)) +- [Replace Ci::Runner with linear scopes](gitlab-org/gitlab@af61def78729c50f86a481416ee26b3e56cd4d54) ([merge request](gitlab-org/gitlab!70385)) +- [Enable perform FindTag RPC request for a single tag](gitlab-org/gitlab@6a46459420f4261085969de5b3d36ecc41c9884d) ([merge request](gitlab-org/gitlab!74802)) +- [Use linear version of User#ci_owned_runners](gitlab-org/gitlab@a3454700d18eb04ed9dbc37c9af9b9b040611989) ([merge request](gitlab-org/gitlab!68848)) +- [Remove trigram index on notes](gitlab-org/gitlab@2a6c75fa8a192dc54c1c558d332c5707559c6488) ([merge request](gitlab-org/gitlab!71982)) + +### Other (59 changes) + +- [Use design system badge in admin project page](gitlab-org/gitlab@7503810f2db3c390d5e95f1930da16b61efd03b8) ([merge request](gitlab-org/gitlab!76775)) +- [Fix GraphQL/OrderedArguments offense (Part 1/6)](gitlab-org/gitlab@9afc8328eb6baf5d0e20ab185d8bb40b5b6f44a9) by @KevSlashNull ([merge request](gitlab-org/gitlab!76023)) +- [Fix GraphQL/FieldDefinitions offense (Part 2/4)](gitlab-org/gitlab@0f54a8b4664fe806791d7eac183bf2cec6019f4b) by @KevSlashNull ([merge request](gitlab-org/gitlab!76015)) +- [Remove abort_deleted_project_pipelines flag](gitlab-org/gitlab@07e7c74bc9e5104f4faf15cb376a109b96cf8c87) ([merge request](gitlab-org/gitlab!76794)) +- [Remove vulnerability_occurrences_location_temp_index](gitlab-org/gitlab@7630ce18b73aae7226a107c8db84ae81c92bf942) ([merge request](gitlab-org/gitlab!76749)) +- [Snowplow ED first run for data-attributes](gitlab-org/gitlab@3e17fac17b3565e9f8096da7ceb9aafc06b2edf5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73809)) **GitLab Enterprise Edition** +- [Remove additional vulnerability finding links](gitlab-org/gitlab@9d6bea163af8987ca5915bd626dd4c1e62a44b22) ([merge request](gitlab-org/gitlab!76580)) +- [Merge CI queuing denomalization feature flags into a single one](gitlab-org/gitlab@78556e3fce4ad3a9a37b41f3365feebb424fdd16) ([merge request](gitlab-org/gitlab!76543)) +- [Fix Gitlab/DelegatePredicateMethods offenses](gitlab-org/gitlab@b861ed30fd8d05d3e5e776edfdee0e0ee8e0b532) by @edith007 ([merge request](gitlab-org/gitlab!76006)) **GitLab Enterprise Edition** +- [Delegate Requirement model attributes](gitlab-org/gitlab@058fd93adc3c69f4b15ab6bf9e33fdd7adcdb448) ([merge request](gitlab-org/gitlab!74296)) **GitLab Enterprise Edition** +- [Use rails helper to render mark_for_deletion badge](gitlab-org/gitlab@a3da5bdf4483b6de714c4f80cdede4387fc20619) ([merge request](gitlab-org/gitlab!76560)) **GitLab Enterprise Edition** +- [Delete invalid epic_issue records migration](gitlab-org/gitlab@66e146e010aa9d09dcb8d8eb0eb0cccfd19be0ce) ([merge request](gitlab-org/gitlab!73007)) +- [Fix Gitlab/DelegatePredicateMethods offenses](gitlab-org/gitlab@595e28bfef06cb1e061865c84da23151b6eea364) by @edith007 ([merge request](gitlab-org/gitlab!76002)) +- [Fix Gitlab/DelegatePredicateMethods offenses](gitlab-org/gitlab@810cbc51291d251d8358fb085e9106e721c87e7b) by @edith007 ([merge request](gitlab-org/gitlab!76003)) +- [Fix Rails/SaveBang offenses](gitlab-org/gitlab@f57e94cbe63a40e2f0306bf14c5025fd6e679be2) by @edith007 ([merge request](gitlab-org/gitlab!75971)) +- [Make projects storage badge pajamas compliant](gitlab-org/gitlab@fc682a790b939fb72d4f635fbe61487836c53995) ([merge request](gitlab-org/gitlab!76548)) +- [Fix Gitlab/DelegatePredicateMethods offenses](gitlab-org/gitlab@0cc1311f7fd74376b5988c7608e2abca685ec09c) by @edith007 ([merge request](gitlab-org/gitlab!76004)) **GitLab Enterprise Edition** +- [Make milestone page tabs Pajamas-compliant](gitlab-org/gitlab@0fba9e9786654b66424c9fe67e1047ace417cb74) ([merge request](gitlab-org/gitlab!75944)) +- [Implement syncing ci_project_mirrors and ci_namespace_mirrors tables](gitlab-org/gitlab@052dfa0564670a492b4336f6f3044b805fd90448) ([merge request](gitlab-org/gitlab!75517)) +- [Convert single tab partial to Pajamas](gitlab-org/gitlab@6843ec6f72dc18623fc55cd1abe629ee071389d2) ([merge request](gitlab-org/gitlab!74010)) +- [Fix Rails/SaveBang offenses](gitlab-org/gitlab@c75e847546eba8cbcecb5e4113d6ec39902866f3) by @edith007 ([merge request](gitlab-org/gitlab!75973)) +- [Fix Rails/SaveBang offenses](gitlab-org/gitlab@011d417cf5791dbabab790766d3c570765d5b78b) by @edith007 ([merge request](gitlab-org/gitlab!75968)) **GitLab Enterprise Edition** +- [Fix Rails/SaveBang offenses](gitlab-org/gitlab@53709c45cf02f4d4fae68af3954a7f1a582eda7f) by @edith007 ([merge request](gitlab-org/gitlab!75951)) **GitLab Enterprise Edition** +- [Fix Rails/SaveBang offenses](gitlab-org/gitlab@abe38ad3834dea8ff5a438c33e2f731e2b8bedc0) by @edith007 ([merge request](gitlab-org/gitlab!75925)) **GitLab Enterprise Edition** +- [Remove ::VisibleApprovable inclusion as it's duplicate](gitlab-org/gitlab@56343658f2a84d950c3a36d1218147ce441ec50c) by @edith007 ([merge request](gitlab-org/gitlab!75886)) +- [Pass formats explicitly when rendering .html format](gitlab-org/gitlab@f04e197f4ba199dcfba234a1197e994af1952e76) by @edith007 ([merge request](gitlab-org/gitlab!75785)) +- [Apply feedback to Snowplow event definitions](gitlab-org/gitlab@149ee8761a4af6216d7af4938858db6fc0ea8cf2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73794)) **GitLab Enterprise Edition** +- [Hide search settings component in usage quota page](gitlab-org/gitlab@a37595f3a84c3731ff331365ca1e4b5fe123d7ee) ([merge request](gitlab-org/gitlab!75712)) **GitLab Enterprise Edition** +- [Fix Style/OpenStructUse offenses](gitlab-org/gitlab@4b68ce23b9debc8a95cebf791ac0db589ea9a13a) by @edith007 ([merge request](gitlab-org/gitlab!75215)) +- [Fix Style/OpenStructUse offenses](gitlab-org/gitlab@4545f2fcc2f4de8831d4f26299f747082a91ae76) by @edith007 ([merge request](gitlab-org/gitlab!75222)) +- [Fix Style/OpenStructUse offenses](gitlab-org/gitlab@0ab791aafb7a3f46c594cfc7b3064cadcf2053a3) by @edith007 ([merge request](gitlab-org/gitlab!75322)) +- [Fix Style/OpenStructUse offenses](gitlab-org/gitlab@41337acd84caca36b67373ff9cc7fa9f46806165) by @edith007 ([merge request](gitlab-org/gitlab!75188)) +- [Merge branch '341849_cleanup_reference_cache_memoization_ff' into 'master'](gitlab-org/gitlab@a60b2d4b3efae11f96c058d68707722fce346a26) ([merge request](gitlab-org/gitlab!74511)) +- [Cleanup feature flag "reference_cache_memoization"](gitlab-org/gitlab@b5c7b417d508302c41d19cec82f6fa0066aa2a6f) ([merge request](gitlab-org/gitlab!74511)) +- [Prepare projects and namespaces loose foreign keys](gitlab-org/gitlab@b6fb0d4adcf074f513b8f9d07f0718673f6a6a19) ([merge request](gitlab-org/gitlab!75559)) +- [Fix Style/OpenStructUse offenses](gitlab-org/gitlab@76e531841335110535fe0c79850d0bba44a242ab) by @edith007 ([merge request](gitlab-org/gitlab!74957)) +- [Fix Style/OpenStructUse offenses](gitlab-org/gitlab@444ad4234c90e04460d020a1169d3eec23e8adea) by @edith007 ([merge request](gitlab-org/gitlab!75281)) +- [Merge maintain feature flags for new queuing mechanism](gitlab-org/gitlab@910bbbfab9ffb42c5e21c2c1fab17720a0401e65) ([merge request](gitlab-org/gitlab!75425)) +- [Remove decoupling projects-runners feature flags](gitlab-org/gitlab@bb253ec5c91935ac95ad2a2fe4f1bf3f57a781ea) ([merge request](gitlab-org/gitlab!75422)) +- [Fix Style/OpenStructUse offenses](gitlab-org/gitlab@a4afd6e3f4ec08f0eeb59e49796913b27400f303) by @edith007 ([merge request](gitlab-org/gitlab!75283)) +- [Make design note pin compliant with Pajamas](gitlab-org/gitlab@6c7b826bf247a1d539ce5663f88d06db44765cb1) ([merge request](gitlab-org/gitlab!75004)) +- [Remove the `validate_namespace_parent_type` feature flag](gitlab-org/gitlab@557963723100852b44e045f69bc1fea1b8d3089c) ([merge request](gitlab-org/gitlab!75088)) +- [Fill TestReport#issue_id field when creating new objects](gitlab-org/gitlab@75dfe32cc737e491d07d01b8ab839f8598bab7bb) ([merge request](gitlab-org/gitlab!74923)) **GitLab Enterprise Edition** +- [Remove ci_predefined_vars_in_builder feature flag](gitlab-org/gitlab@31aa6433d2c639b57e106710b156c5f4f490da6f) ([merge request](gitlab-org/gitlab!75009)) +- [Fix Style/OpenStructUse offenses](gitlab-org/gitlab@cbbbd0b8364e957e68f9e27d3cf550ae0d49af37) by @edith007 ([merge request](gitlab-org/gitlab!75186)) +- [Make Service Desk Pajamas Design compliant](gitlab-org/gitlab@c9a40be04ec7bda0bb1c0c4df8237e97b9839b44) ([merge request](gitlab-org/gitlab!74795)) +- [Improve Blame Page rendering performance](gitlab-org/gitlab@4bc4ddcf06603dbd13c2999a88f9594d182c9fa1) by @cyberap ([merge request](gitlab-org/gitlab!74799)) +- [Fix OpenStruct use](gitlab-org/gitlab@d9819978c3fe6b05eff242b28356f7c6e3ffc56e) by @mehulsharma ([merge request](gitlab-org/gitlab!74976)) **GitLab Enterprise Edition** +- [Update GitLab Runner Helm Chart to 0.35.0](gitlab-org/gitlab@76424c1f1c7b9c38b0f6afa5c927c99a0a8e4678) ([merge request](gitlab-org/gitlab!74959)) +- [Improve service desk service settings input tips](gitlab-org/gitlab@d8cbdf7c3e4c2efac0a2fc59bd05f3a8f9d35a78) ([merge request](gitlab-org/gitlab!73864)) +- [Remove PropagateServiceTemplateWorker and queue](gitlab-org/gitlab@195ce97a5b804346478fe4f2c3599bc6aef71abe) by @lenikadali ([merge request](gitlab-org/gitlab!73387)) +- [Remove unused CommitsBetween wrapper](gitlab-org/gitlab@2e417f1c037c6b80d20c5dc4c125ae18c5ba9100) ([merge request](gitlab-org/gitlab!74407)) +- [Enhance SSO enforcement warning message](gitlab-org/gitlab@d8c31664f415bac0bbffd34df95a21ffbeb34df7) ([merge request](gitlab-org/gitlab!73233)) **GitLab Enterprise Edition** +- [Fix offenses introduced by Style/OpenStructUse](gitlab-org/gitlab@6d4208b2310243041e49fa912635383d8cadb87b) by @edith007 ([merge request](gitlab-org/gitlab!74203)) +- [Fix OpenStruct use](gitlab-org/gitlab@6bc58b036b77051ffb3c708fbf958fdf5195b815) by @mehulsharma ([merge request](gitlab-org/gitlab!74412)) +- [Fix OpenStruct use](gitlab-org/gitlab@dfaa8a393685edb8fdda33803c7df2e8917c3387) by @mehulsharma ([merge request](gitlab-org/gitlab!74421)) +- [Fix OpenStruct use](gitlab-org/gitlab@60451303098187cb922d29c9088a3e74892aa0d7) by @mehulsharma ([merge request](gitlab-org/gitlab!74618)) +- [Fix OpenStruct use](gitlab-org/gitlab@f8466f5943a1afeabaf9cf781f7804a8df515a0e) by @mehulsharma ([merge request](gitlab-org/gitlab!74702)) +- [Update Sidekiq to 6.3.1](gitlab-org/gitlab@22e8bc0af656717e56428a7227c467fe08021c66) ([merge request](gitlab-org/gitlab!73973)) + ## 14.5.2 (2021-12-03) No changes. @@ -548,6 +942,21 @@ No changes. - [Add pipeline artifacts and uploads sizes to project REST API](gitlab-org/gitlab@58d66f28faf42ae98ca11ff1ba0bdd9180e988ad) by @guillaume.chauvel ([merge request](gitlab-org/gitlab!72075)) - [Remove not used parameter from epics finder](gitlab-org/gitlab@49fce172b57b2f376a114726b1dd1900fe36a238) ([merge request](gitlab-org/gitlab!72285)) **GitLab Enterprise Edition** +## 14.4.4 (2021-12-03) + +No changes. + +## 14.4.3 (2021-12-01) + +### Fixed (6 changes) + +- [Check validation only if new record of license](gitlab-org/gitlab@5e0834a921dad1b1e07119de629ea44eb0ad5733) ([merge request](gitlab-org/gitlab!75421)) **GitLab Enterprise Edition** +- [Fix for hexadecimal branch deletion](gitlab-org/gitlab@fc3c2f211d5a2f190032c4d0109e2bcb31050b4d) ([merge request](gitlab-org/gitlab!75421)) +- [Geo - Fix no repo error message for group-level wikis](gitlab-org/gitlab@bdf3a712a4bfe245dfa7e7a90c24f2fdb482e309) ([merge request](gitlab-org/gitlab!75421)) **GitLab Enterprise Edition** +- [Prevent Git operations from checking replication lag on non-Geo-secondary sites](gitlab-org/gitlab@c158c01027f61aadd1c72f0817731d368d0d58cc) ([merge request](gitlab-org/gitlab!75421)) **GitLab Enterprise Edition** +- [Allow SSO callbacks through maintenance mode](gitlab-org/gitlab@1acae9807b1808ac360a4be098a50c547c9540b9) by @dzaporozhets ([merge request](gitlab-org/gitlab!75421)) **GitLab Enterprise Edition** +- [Fix 2FA setup for LDAP users](gitlab-org/gitlab@9b9a7230aed3ffeef3e8f608dd1a569397c71684) ([merge request](gitlab-org/gitlab!75421)) + ## 14.4.2 (2021-11-08) ### Fixed (3 changes) @@ -971,6 +1380,21 @@ No changes. - [Cleanup bigint conversion for ci_builds](gitlab-org/gitlab@176992aa2b2e76b22637a07d5bafbd6541324a7d) ([merge request](gitlab-org/gitlab!70351)) - [Drop support for data-track-event](gitlab-org/gitlab@ac6027fbef6adf41643412a84945fda6f15c9666) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70234)) +## 14.3.6 (2021-12-03) + +No changes. + +## 14.3.5 (2021-11-26) + +### Fixed (6 changes) + +- [Allow SSO callbacks through maintenance mode](gitlab-org/gitlab@f9b250145ac3db5fb01698839f1b5f3d9d349945) ([merge request](gitlab-org/gitlab!75145)) **GitLab Enterprise Edition** +- [Geo - Fix no repo error message for group-level wikis](gitlab-org/gitlab@5560e012bd6f35431d4d1cea389807ca475c2ce5) ([merge request](gitlab-org/gitlab!75145)) **GitLab Enterprise Edition** +- [Prevent Git operations from checking replication lag on non-Geo-secondary sites](gitlab-org/gitlab@35344d81d5e07bfb4db997be6c4f99f39a16562e) ([merge request](gitlab-org/gitlab!75145)) **GitLab Enterprise Edition** +- [Fix error 500 loading branch with UTF-8 characters with performance bar](gitlab-org/gitlab@08b47c2870cc338021bb3f945ac6736e46abf376) ([merge request](gitlab-org/gitlab!75145)) +- [Remove defaultAuthors from MR Analytics and VSA](gitlab-org/gitlab@be95c921623056d31e2cbc0a7bc96de3aa66ca65) ([merge request](gitlab-org/gitlab!75145)) +- [Allow SSO callbacks through maintenance mode](gitlab-org/gitlab@0727751512d41537356b295d6b889e05c6a07480) ([merge request](gitlab-org/gitlab!74706)) **GitLab Enterprise Edition** + ## 14.3.4 (2021-10-28) ### Security (13 changes) @@ -1537,6 +1961,21 @@ No changes. - [Remove the FF ci_reset_bridge_with_subsequent_jobs](gitlab-org/gitlab@a4a75095b9b0250d0b1bdadea90c8a4cd24449b2) ([merge request](gitlab-org/gitlab!68295)) - [Removes ci_same_stage_job_needs ff](gitlab-org/gitlab@5e509cf7aa90041a541b19dda563120a359f0bf9) ([merge request](gitlab-org/gitlab!68041)) +## 14.2.7 (2021-11-26) + +### Fixed (3 changes) + +- [Prevent Git operations from checking replication lag on non-Geo-secondary sites](gitlab-org/gitlab@84734dab92e0bf9e304ee7bf1579346cc48d26c3) ([merge request](gitlab-org/gitlab!75119)) **GitLab Enterprise Edition** +- [Remove defaultAuthors from MR Analytics and VSA](gitlab-org/gitlab@1a15d4d1be939a9e38124827f563ed9ec2612a75) ([merge request](gitlab-org/gitlab!75119)) +- [Let non-members set confidential flag when creating an issue in public project](gitlab-org/gitlab@d093cc62e6263629b36a449c9464d9b8644d4d74) ([merge request](gitlab-org/gitlab!75119)) + +### Changed (4 changes) + +- [Geo: Alternate redownload and normal design sync attempts](gitlab-org/gitlab@d401e3ec94e6dba9ea76a9682893352f28d446cb) ([merge request](gitlab-org/gitlab!75119)) **GitLab Enterprise Edition** +- [Geo: Alternate redownload and normal SSF sync attempts](gitlab-org/gitlab@00eeff14a9bfeabe9107fc38ce9d7d2eee06384b) ([merge request](gitlab-org/gitlab!75119)) **GitLab Enterprise Edition** +- [Geo: Alternate redownload and normal project syncs](gitlab-org/gitlab@fac9bb8c11db13d34b311f4ebd18f84fa7a575d3) ([merge request](gitlab-org/gitlab!75119)) **GitLab Enterprise Edition** +- [Geo: Reduce frequency of redownload attempts](gitlab-org/gitlab@d18381e4788a8652d3e36cec5d4bce343c48209c) ([merge request](gitlab-org/gitlab!75119)) **GitLab Enterprise Edition** + ## 14.2.6 (2021-10-28) ### Security (13 changes) diff --git a/Dangerfile b/Dangerfile index 212097f6a6..ca729f1b94 100644 --- a/Dangerfile +++ b/Dangerfile @@ -2,15 +2,25 @@ require 'gitlab-dangerfiles' -gitlab_dangerfiles = Gitlab::Dangerfiles::Engine.new(self) -gitlab_dangerfiles.import_plugins +def ee? + # Support former project name for `dev` and support local Danger run + %w[gitlab gitlab-ee].include?(ENV['CI_PROJECT_NAME']) || Dir.exist?(File.expand_path('ee', __dir__)) +end + +project_name = ee? ? 'gitlab' : 'gitlab-foss' + +Gitlab::Dangerfiles.for_project(self, project_name) do |gitlab_dangerfiles| + gitlab_dangerfiles.import_plugins + + unless helper.release_automation? + danger.import_plugin('danger/plugins/*.rb') + gitlab_dangerfiles.import_dangerfiles(except: %w[simple_roulette]) + gitlab_dangerfiles.config.files_to_category = ProjectHelper::CATEGORIES + end +end return if helper.release_automation? -danger.import_plugin('danger/plugins/*.rb') - -gitlab_dangerfiles.import_dangerfiles - project_helper.rule_names.each do |rule| danger.import_dangerfile(path: File.join('danger', rule)) end diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index 7f0423b3c4..f8a030aae5 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -14.5.3 \ No newline at end of file +14.6.3 \ No newline at end of file diff --git a/GITLAB_ELASTICSEARCH_INDEXER_VERSION b/GITLAB_ELASTICSEARCH_INDEXER_VERSION index 7524906967..d76bd2ba3e 100644 --- a/GITLAB_ELASTICSEARCH_INDEXER_VERSION +++ b/GITLAB_ELASTICSEARCH_INDEXER_VERSION @@ -1 +1 @@ -2.16.0 +2.17.0 diff --git a/GITLAB_PAGES_VERSION b/GITLAB_PAGES_VERSION index 9db5ea12f5..7f3a46a841 100644 --- a/GITLAB_PAGES_VERSION +++ b/GITLAB_PAGES_VERSION @@ -1 +1 @@ -1.48.0 +1.49.0 diff --git a/Gemfile b/Gemfile index 7fa615319c..1d88df8296 100644 --- a/Gemfile +++ b/Gemfile @@ -153,7 +153,7 @@ gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # Markdown and HTML processing gem 'html-pipeline', '~> 2.13.2' gem 'deckar01-task_list', '2.3.1' -gem 'gitlab-markup', '~> 1.7.1' +gem 'gitlab-markup', '~> 1.8.0' gem 'github-markup', '~> 1.7.0', require: 'github/markup' gem 'commonmarker', '~> 0.23.2' gem 'kramdown', '~> 2.3.1' @@ -185,7 +185,7 @@ gem 'rack', '~> 2.2.3' gem 'rack-timeout', '~> 0.5.1', require: 'rack/timeout/base' group :puma do - gem 'puma', '~> 5.3.1', require: false + gem 'puma', '~> 5.5.2', require: false gem 'puma_worker_killer', '~> 0.3.1', require: false gem 'sd_notify', '~> 0.1.0', require: false end @@ -194,10 +194,10 @@ end gem 'state_machines-activerecord', '~> 0.8.0' # Issue tags -gem 'acts-as-taggable-on', '~> 7.0' +gem 'acts-as-taggable-on', '~> 8.1' # Background jobs -gem 'sidekiq', '~> 6.2.2' +gem 'sidekiq', '~> 6.3' gem 'sidekiq-cron', '~> 1.0' gem 'redis-namespace', '~> 1.8.1' gem 'gitlab-sidekiq-fetcher', '0.8.0', require: 'sidekiq-reliable-fetch' @@ -376,7 +376,7 @@ group :development, :test do gem 'spring', '~> 2.1.0' gem 'spring-commands-rspec', '~> 1.0.4' - gem 'gitlab-styles', '~> 6.4.0', require: false + gem 'gitlab-styles', '~> 6.6.0', require: false gem 'haml_lint', '~> 0.36.0', require: false gem 'bundler-audit', '~> 0.7.0.1', require: false @@ -400,17 +400,22 @@ group :development, :test do end group :development, :test, :danger do - gem 'gitlab-dangerfiles', '~> 2.5.0', require: false + gem 'gitlab-dangerfiles', '~> 2.6.1', require: false end group :development, :test, :coverage do gem 'simplecov', '~> 0.18.5', require: false + gem 'simplecov-lcov', '~> 0.8.0', require: false gem 'simplecov-cobertura', '~> 1.3.1', require: false + gem 'undercover', '~> 0.4.4', require: false end # Gems required in omnibus-gitlab pipeline group :development, :test, :omnibus do - gem 'license_finder', '~> 6.0', require: false + # Using a fork until https://github.com/pivotal/LicenseFinder/pull/816 is + # resolved. For details, check discussion in + # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74881 + gem 'gitlab-license_finder', '~> 6.0', require: false end group :test do @@ -459,7 +464,7 @@ gem 'health_check', '~> 3.0' # System information gem 'vmstat', '~> 2.3.0' -gem 'sys-filesystem', '~> 1.1.6' +gem 'sys-filesystem', '~> 1.4.3' # NTP client gem 'net-ntp' @@ -471,7 +476,7 @@ gem 'sshkey', '~> 2.0' # Required for ED25519 SSH host key support group :ed25519 do gem 'ed25519', '~> 1.2' - gem 'bcrypt_pbkdf', '~> 1.0' + gem 'bcrypt_pbkdf', '~> 1.1' end # Spamcheck GRPC protocol definitions @@ -494,7 +499,7 @@ gem 'flipper', '~> 0.21.0' gem 'flipper-active_record', '~> 0.21.0' gem 'flipper-active_support_cache_store', '~> 0.21.0' gem 'unleash', '~> 3.2.2' -gem 'gitlab-experiment', '~> 0.6.4' +gem 'gitlab-experiment', '~> 0.6.5' # Structured logging gem 'lograge', '~> 0.5' @@ -539,4 +544,4 @@ gem 'ipaddress', '~> 0.8.3' gem 'parslet', '~> 1.8' -gem 'ipynbdiff', '0.3.7' +gem 'ipynbdiff', '0.3.8' diff --git a/Gemfile.lock b/Gemfile.lock index b54874e9d8..2f30df9186 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -73,7 +73,7 @@ GEM minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - acts-as-taggable-on (7.0.0) + acts-as-taggable-on (8.1.0) activerecord (>= 5.0, < 6.2) addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) @@ -137,7 +137,7 @@ GEM base32 (0.3.2) batch-loader (2.0.1) bcrypt (3.1.16) - bcrypt_pbkdf (1.0.0) + bcrypt_pbkdf (1.1.0) benchmark (0.1.1) benchmark-ips (2.3.0) benchmark-memory (0.1.2) @@ -222,7 +222,7 @@ GEM css_parser (1.7.0) addressable daemons (1.3.1) - danger (8.4.1) + danger (8.4.2) claide (~> 1.0) claide-plugins (>= 0.9.2) colored2 (~> 3.1) @@ -458,10 +458,10 @@ GEM terminal-table (~> 1.5, >= 1.5.1) gitlab-chronic (0.10.5) numerizer (~> 0.2) - gitlab-dangerfiles (2.5.0) + gitlab-dangerfiles (2.6.1) danger (>= 8.3.1) danger-gitlab (>= 8.0.0) - gitlab-experiment (0.6.4) + gitlab-experiment (0.6.5) activesupport (>= 3.0) request_store (>= 1.0) scientist (~> 1.6, >= 1.6.0) @@ -481,8 +481,15 @@ GEM pg_query (~> 2.1) redis (> 3.0.0, < 5.0.0) gitlab-license (2.0.0) + gitlab-license_finder (6.14.2.1) + bundler + rubyzip (>= 1, < 3) + thor (~> 1.0) + tomlrb (>= 1.3, < 2.1) + with_env (= 1.1.0) + xml-simple (~> 1.1.5) gitlab-mail_room (0.0.9) - gitlab-markup (1.7.1) + gitlab-markup (1.8.0) gitlab-net-dns (0.9.1) gitlab-omniauth-openid-connect (0.8.0) addressable (~> 2.7) @@ -490,9 +497,10 @@ GEM openid_connect (~> 1.2) gitlab-sidekiq-fetcher (0.8.0) sidekiq (~> 6.1) - gitlab-styles (6.4.0) + gitlab-styles (6.6.0) rubocop (~> 0.91, >= 0.91.1) rubocop-gitlab-security (~> 0.1.1) + rubocop-graphql (~> 0.10) rubocop-performance (~> 1.9.2) rubocop-rails (~> 2.9) rubocop-rspec (~> 1.44) @@ -633,14 +641,16 @@ GEM mime-types (~> 3.0) multi_xml (>= 0.5.2) httpclient (2.8.3) - i18n (1.8.10) + i18n (1.8.11) concurrent-ruby (~> 1.0) i18n_data (0.8.0) icalendar (2.4.1) + imagen (0.1.8) + parser (>= 2.5, != 2.5.1.1) invisible_captcha (1.1.0) rails (>= 4.2) ipaddress (0.8.3) - ipynbdiff (0.3.7) + ipynbdiff (0.3.8) diffy (= 3.3.0) json (= 2.5.1) jaeger-client (1.1.0) @@ -706,13 +716,6 @@ GEM railties (>= 5.2) rexml libyajl2 (1.2.0) - license_finder (6.0.0) - bundler - rubyzip (>= 1, < 3) - thor - toml (= 0.2.0) - with_env (= 1.1.0) - xml-simple licensee (9.14.1) dotenv (~> 2.0) octokit (~> 4.17) @@ -903,7 +906,7 @@ GEM orm_adapter (0.5.0) os (1.1.1) parallel (1.20.1) - parser (3.0.2.0) + parser (3.0.3.2) ast (~> 2.4.1) parslet (1.8.2) pastel (0.8.0) @@ -942,7 +945,7 @@ GEM tty-markdown tty-prompt public_suffix (4.0.6) - puma (5.3.2) + puma (5.5.2) nio4r (~> 2.0) puma_worker_killer (0.3.1) get_process_mem (~> 0.2) @@ -1107,6 +1110,8 @@ GEM parser (>= 2.7.1.5) rubocop-gitlab-security (0.1.1) rubocop (>= 0.51) + rubocop-graphql (0.10.3) + rubocop (>= 0.87, < 2) rubocop-performance (1.9.2) rubocop (>= 0.90.0, < 2.0) rubocop-ast (>= 0.4.0) @@ -1158,7 +1163,7 @@ GEM sawyer (0.8.2) addressable (>= 2.3.5) faraday (> 0.8, < 2.0) - scientist (1.6.0) + scientist (1.6.2) sd_notify (0.1.0) securecompare (1.0.0) seed-fu (2.3.7) @@ -1175,7 +1180,7 @@ GEM shellany (0.0.1) shoulda-matchers (4.0.1) activesupport (>= 4.2.0) - sidekiq (6.2.2) + sidekiq (6.3.1) connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.2.0) @@ -1194,6 +1199,7 @@ GEM simplecov-cobertura (1.3.1) simplecov (~> 0.8) simplecov-html (0.12.3) + simplecov-lcov (0.8.0) sixarm_ruby_unaccent (1.2.0) slack-messenger (2.3.4) snowplow-tracker (0.6.1) @@ -1249,8 +1255,8 @@ GEM activesupport (>= 3) attr_required (>= 0.0.5) httpclient (>= 2.4) - sys-filesystem (1.1.9) - ffi + sys-filesystem (1.4.3) + ffi (~> 1.1) sysexits (1.2.0) tanuki_emoji (0.5.0) temple (0.8.2) @@ -1272,8 +1278,6 @@ GEM timecop (0.9.1) timeliness (0.3.10) timfel-krb5-auth (0.8.3) - toml (0.2.0) - parslet (~> 1.8.0) toml-rb (2.0.1) citrus (~> 3.0, > 3.0) tomlrb (1.3.0) @@ -1311,6 +1315,10 @@ GEM concurrent-ruby (~> 1.0) u2f (0.2.1) uber (0.1.0) + undercover (0.4.4) + imagen (>= 0.1.8) + rainbow (>= 2.1, < 4.0) + rugged (>= 0.27, < 1.3) unf (0.1.4) unf_ext unf_ext (0.0.7.7) @@ -1373,7 +1381,7 @@ GEM nokogiri (~> 1.8) yajl-ruby (1.4.1) yard (0.9.26) - zeitwerk (2.4.2) + zeitwerk (2.5.1) PLATFORMS ruby @@ -1382,7 +1390,7 @@ DEPENDENCIES RedCloth (~> 4.3.2) acme-client (~> 2.0, >= 2.0.6) activerecord-explain-analyze (~> 0.1) - acts-as-taggable-on (~> 7.0) + acts-as-taggable-on (~> 8.1) addressable (~> 2.8) akismet (~> 3.0) apollo_upload_server (~> 2.1.0) @@ -1402,7 +1410,7 @@ DEPENDENCIES base32 (~> 0.3.0) batch-loader (~> 2.0.1) bcrypt (~> 3.1, >= 3.1.14) - bcrypt_pbkdf (~> 1.0) + bcrypt_pbkdf (~> 1.1) benchmark-ips (~> 2.3.0) benchmark-memory (~> 0.1) better_errors (~> 2.9.0) @@ -1467,17 +1475,18 @@ DEPENDENCIES gitaly (~> 14.4.0.pre.rc43) github-markup (~> 1.7.0) gitlab-chronic (~> 0.10.5) - gitlab-dangerfiles (~> 2.5.0) - gitlab-experiment (~> 0.6.4) + gitlab-dangerfiles (~> 2.6.1) + gitlab-experiment (~> 0.6.5) gitlab-fog-azure-rm (~> 1.2.0) gitlab-labkit (~> 0.21.1) gitlab-license (~> 2.0) + gitlab-license_finder (~> 6.0) gitlab-mail_room (~> 0.0.9) - gitlab-markup (~> 1.7.1) + gitlab-markup (~> 1.8.0) gitlab-net-dns (~> 0.9.1) gitlab-omniauth-openid-connect (~> 0.8.0) gitlab-sidekiq-fetcher (= 0.8.0) - gitlab-styles (~> 6.4.0) + gitlab-styles (~> 6.6.0) gitlab_chronic_duration (~> 0.10.6.2) gitlab_omniauth-ldap (~> 2.1.1) gon (~> 6.4.0) @@ -1507,7 +1516,7 @@ DEPENDENCIES icalendar invisible_captcha (~> 1.1.0) ipaddress (~> 0.8.3) - ipynbdiff (= 0.3.7) + ipynbdiff (= 0.3.8) jira-ruby (~> 2.1.4) js_regex (~> 3.7) json (~> 2.5.1) @@ -1520,7 +1529,6 @@ DEPENDENCIES kubeclient (~> 4.9.2) lefthook (~> 0.7.0) letter_opener_web (~> 2.0.0) - license_finder (~> 6.0) licensee (~> 9.14.1) lockbox (~> 0.6.2) lograge (~> 0.5) @@ -1573,7 +1581,7 @@ DEPENDENCIES pry-byebug pry-rails (~> 0.3.9) pry-shell (~> 0.5.0) - puma (~> 5.3.1) + puma (~> 5.5.2) puma_worker_killer (~> 0.3.1) rack (~> 2.2.3) rack-attack (~> 6.3.0) @@ -1620,11 +1628,12 @@ DEPENDENCIES sentry-raven (~> 3.1) settingslogic (~> 2.0.9) shoulda-matchers (~> 4.0.1) - sidekiq (~> 6.2.2) + sidekiq (~> 6.3) sidekiq-cron (~> 1.0) simple_po_parser (~> 1.1.2) simplecov (~> 0.18.5) simplecov-cobertura (~> 1.3.1) + simplecov-lcov (~> 0.8.0) slack-messenger (~> 2.3.4) snowplow-tracker (~> 0.6.1) solargraph (~> 0.43) @@ -1636,7 +1645,7 @@ DEPENDENCIES sshkey (~> 2.0) stackprof (~> 0.2.15) state_machines-activerecord (~> 0.8.0) - sys-filesystem (~> 1.1.6) + sys-filesystem (~> 1.4.3) tanuki_emoji (~> 0.5) terser (= 1.0.2) test-prof (~> 1.0.7) @@ -1647,6 +1656,7 @@ DEPENDENCIES toml-rb (~> 2.0) truncato (~> 0.7.11) u2f (~> 0.2.1) + undercover (~> 0.4.4) unf (~> 0.1.4) unleash (~> 3.2.2) valid_email (~> 0.1) diff --git a/VERSION b/VERSION index 7f0423b3c4..f8a030aae5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -14.5.3 \ No newline at end of file +14.6.3 \ No newline at end of file diff --git a/app/assets/images/logos/jira-gray.svg b/app/assets/images/logos/jira-gray.svg deleted file mode 100644 index 0e7069f2bd..0000000000 --- a/app/assets/images/logos/jira-gray.svg +++ /dev/null @@ -1 +0,0 @@ -jira software-icon-gradient-neutral diff --git a/app/assets/images/logos/shimo.svg b/app/assets/images/logos/shimo.svg new file mode 100644 index 0000000000..65bd1cc716 --- /dev/null +++ b/app/assets/images/logos/shimo.svg @@ -0,0 +1 @@ + diff --git a/app/assets/javascripts/access_tokens/components/token.vue b/app/assets/javascripts/access_tokens/components/token.vue new file mode 100644 index 0000000000..3954e541fe --- /dev/null +++ b/app/assets/javascripts/access_tokens/components/token.vue @@ -0,0 +1,55 @@ + + + diff --git a/app/assets/javascripts/access_tokens/components/tokens_app.vue b/app/assets/javascripts/access_tokens/components/tokens_app.vue new file mode 100644 index 0000000000..755991f64e --- /dev/null +++ b/app/assets/javascripts/access_tokens/components/tokens_app.vue @@ -0,0 +1,111 @@ + + + diff --git a/app/assets/javascripts/access_tokens/constants.js b/app/assets/javascripts/access_tokens/constants.js new file mode 100644 index 0000000000..6188c6d1bb --- /dev/null +++ b/app/assets/javascripts/access_tokens/constants.js @@ -0,0 +1,4 @@ +// Token types +export const FEED_TOKEN = 'feedToken'; +export const INCOMING_EMAIL_TOKEN = 'incomingEmailToken'; +export const STATIC_OBJECT_TOKEN = 'staticObjectToken'; diff --git a/app/assets/javascripts/access_tokens/index.js b/app/assets/javascripts/access_tokens/index.js index 7f5f0403de..9a1e7d877f 100644 --- a/app/assets/javascripts/access_tokens/index.js +++ b/app/assets/javascripts/access_tokens/index.js @@ -1,9 +1,13 @@ import Vue from 'vue'; + import createFlash from '~/flash'; +import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; import { parseRailsFormFields } from '~/lib/utils/forms'; import { __ } from '~/locale'; import ExpiresAtField from './components/expires_at_field.vue'; +import TokensApp from './components/tokens_app.vue'; +import { FEED_TOKEN, INCOMING_EMAIL_TOKEN, STATIC_OBJECT_TOKEN } from './constants'; export const initExpiresAtField = () => { const el = document.querySelector('.js-access-tokens-expires-at'); @@ -81,3 +85,29 @@ export const initProjectsField = () => { return null; }; + +export const initTokensApp = () => { + const el = document.getElementById('js-tokens-app'); + + if (!el) return false; + + const tokensData = convertObjectPropsToCamelCase(JSON.parse(el.dataset.tokensData), { + deep: true, + }); + + const tokenTypes = { + [FEED_TOKEN]: tokensData[FEED_TOKEN], + [INCOMING_EMAIL_TOKEN]: tokensData[INCOMING_EMAIL_TOKEN], + [STATIC_OBJECT_TOKEN]: tokensData[STATIC_OBJECT_TOKEN], + }; + + return new Vue({ + el, + provide: { + tokenTypes, + }, + render(createElement) { + return createElement(TokensApp); + }, + }); +}; diff --git a/app/assets/javascripts/admin/deploy_keys/components/table.vue b/app/assets/javascripts/admin/deploy_keys/components/table.vue index 97a5a2f2f3..29e8b9a724 100644 --- a/app/assets/javascripts/admin/deploy_keys/components/table.vue +++ b/app/assets/javascripts/admin/deploy_keys/components/table.vue @@ -1,13 +1,33 @@ @@ -45,10 +170,92 @@ export default {

{{ $options.i18n.pageTitle }}

- {{ + {{ $options.i18n.newDeployKeyButtonText }} - + + + +
+ + +
+ {{ $options.i18n.modal.body }} +
diff --git a/app/assets/javascripts/admin/users/components/actions/activate.vue b/app/assets/javascripts/admin/users/components/actions/activate.vue index 74e9c60a57..3a54035c58 100644 --- a/app/assets/javascripts/admin/users/components/actions/activate.vue +++ b/app/assets/javascripts/admin/users/components/actions/activate.vue @@ -1,6 +1,7 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/approve.vue b/app/assets/javascripts/admin/users/components/actions/approve.vue index 77a9be8eec..5a8c675822 100644 --- a/app/assets/javascripts/admin/users/components/actions/approve.vue +++ b/app/assets/javascripts/admin/users/components/actions/approve.vue @@ -1,6 +1,7 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/ban.vue b/app/assets/javascripts/admin/users/components/actions/ban.vue index e5ab0f9123..55938832dc 100644 --- a/app/assets/javascripts/admin/users/components/actions/ban.vue +++ b/app/assets/javascripts/admin/users/components/actions/ban.vue @@ -2,6 +2,7 @@ import { GlDropdownItem } from '@gitlab/ui'; import { helpPagePath } from '~/helpers/help_page_helper'; import { sprintf, s__, __ } from '~/locale'; +import eventHub, { EVENT_OPEN_CONFIRM_MODAL } from '~/vue_shared/components/confirm_modal_eventhub'; import { I18N_USER_ACTIONS } from '../../constants'; // TODO: To be replaced with