From 761ace024e12061274802895064452e0fb90af3d Mon Sep 17 00:00:00 2001 From: Pirate Praveen Date: Sat, 27 Aug 2022 11:52:29 +0530 Subject: [PATCH] New upstream version 15.3.1+ds1 --- .eslintrc.yml | 8 +- .gitignore | 2 - .gitlab-ci.yml | 3 +- .gitlab/CODEOWNERS | 665 +- .gitlab/ci/frontend.gitlab-ci.yml | 42 +- .gitlab/ci/qa.gitlab-ci.yml | 6 +- .gitlab/ci/rails.gitlab-ci.yml | 88 +- .gitlab/ci/reports.gitlab-ci.yml | 2 + .gitlab/ci/review-apps/main.gitlab-ci.yml | 6 +- .gitlab/ci/review-apps/qa.gitlab-ci.yml | 4 +- .gitlab/ci/review-apps/skip-qa.gitlab-ci.yml | 13 + .gitlab/ci/review.gitlab-ci.yml | 44 +- .gitlab/ci/rules.gitlab-ci.yml | 106 +- .gitlab/ci/setup.gitlab-ci.yml | 19 - .gitlab/ci/vendored-gems.gitlab-ci.yml | 16 + ...Geo Replicate a new Git repository type.md | 7 +- .../Geo Replicate a new blob type.md | 7 +- .gitlab/issue_templates/Implementation.md | 13 +- .../Navigation - Left Sidebar Proposals.md | 2 +- .gitlab/issue_templates/OSS_Partner.md | 68 - .../Performance Indicator Metric.md | 23 - ...Pipeline Authoring Issue Implementation.md | 15 + .../Service Ping reporting and monitoring.md | 6 +- .gitlab/issue_templates/UX Theme.md | 77 + .gitlab/merge_request_templates/Default.md | 14 +- .../merge_request_templates/Documentation.md | 2 +- .haml-lint.yml | 4 + .overcommit.yml.example | 81 - .rubocop.yml | 35 +- .rubocop_todo/capybara/visibility_matcher.yml | 21 +- .rubocop_todo/database/multiple_databases.yml | 3 - .../deprecate_track_redis_hll_event.yml | 29 + .rubocop_todo/gitlab/namespaced_class.yml | 3 + .../first_array_element_indentation.yml | 62 +- .../layout/first_hash_element_indentation.yml | 125 +- .rubocop_todo/layout/hash_alignment.yml | 492 +- .rubocop_todo/layout/line_length.yml | 15 - .../multiline_operation_indentation.yml | 35 +- .../space_around_method_call_operator.yml | 32 - .../layout/space_inside_block_braces.yml | 619 - .../lint/missing_cop_enable_directive.yml | 33 +- .../naming/heredoc_delimiter_naming.yml | 13 +- .../rescued_exceptions_variable_name.yml | 216 - .../block_given_with_explicit_block.yml | 43 - .rubocop_todo/performance/constant_regexp.yml | 30 - .rubocop_todo/rails/pick.yml | 43 - .rubocop_todo/rails/rake_environment.yml | 25 - .../rails/skips_model_validations.yml | 1 - .rubocop_todo/rspec/be.yml | 22 + .rubocop_todo/rspec/context_wording.yml | 635 +- .rubocop_todo/rspec/empty_line_after_hook.yml | 60 + .rubocop_todo/rspec/expect_change.yml | 52 +- .rubocop_todo/rspec/expect_in_hook.yml | 54 +- .rubocop_todo/rspec/hooks_before_examples.yml | 76 + .rubocop_todo/rspec/predicate_matcher.yml | 27 +- .../repeated_example_group_description.yml | 1 - .rubocop_todo/rspec/return_from_stub.yml | 12 +- .rubocop_todo/rspec/scattered_let.yml | 21 +- .rubocop_todo/rspec/verified_doubles.yml | 1 + .rubocop_todo/style/array_coercion.yml | 10 - .../style/class_and_module_children.yml | 3 +- .rubocop_todo/style/empty_else.yml | 9 +- .../style/explicit_block_argument.yml | 1 - .rubocop_todo/style/format_string.yml | 45 +- .rubocop_todo/style/guard_clause.yml | 73 +- .../style/hash_as_last_array_item.yml | 6 +- .rubocop_todo/style/hash_each_methods.yml | 7 +- .rubocop_todo/style/if_inside_else.yml | 10 +- .rubocop_todo/style/if_unless_modifier.yml | 136 +- .../style/missing_respond_to_missing.yml | 3 - .rubocop_todo/style/next.yml | 8 +- .../style/percent_literal_delimiters.yml | 86 +- .../style/redundant_interpolation.yml | 27 +- .../style/redundant_regexp_escape.yml | 15 +- .rubocop_todo/style/redundant_self.yml | 31 +- .rubocop_todo/style/rescue_modifier.yml | 51 - .rubocop_todo/style/string_concatenation.yml | 21 +- .rubocop_todo/style/symbol_proc.yml | 32 +- CHANGELOG.md | 658 +- GITALY_SERVER_VERSION | 2 +- GITLAB_KAS_VERSION | 2 +- GITLAB_METRICS_EXPORTER_VERSION | 2 +- GITLAB_PAGES_VERSION | 2 +- GITLAB_SHELL_VERSION | 2 +- Gemfile | 69 +- Gemfile.lock | 349 +- VERSION | 2 +- app/assets/images/auth_buttons/jwt_64.png | Bin 2457 -> 824 bytes .../images/auth_buttons/salesforce_64.png | Bin 8774 -> 2012 bytes .../components/expires_at_field.vue | 30 +- .../components/projects_field.vue | 69 - .../components/projects_token_selector.vue | 156 - .../queries/get_projects.query.graphql | 1 - app/assets/javascripts/access_tokens/index.js | 57 - .../admin/deploy_keys/components/table.vue | 8 +- .../queries/get_integrations.query.graphql | 1 - .../components/projects_dropdown_filter.vue | 2 +- .../javascripts/analytics/shared/utils.js | 26 +- .../graphql/fragments/count.fragment.graphql | 1 - app/assets/javascripts/api/analytics_api.js | 3 - app/assets/javascripts/api/groups_api.js | 7 + .../components/navigation_popover.vue | 122 - .../javascripts/attention_requests/index.js | 73 - .../batch_comments/components/draft_note.vue | 6 +- .../batch_comments/components/review_bar.vue | 28 + .../components/submit_dropdown.vue | 39 +- app/assets/javascripts/batch_comments/i18n.js | 3 + .../stores/modules/batch_comments/actions.js | 5 + .../behaviors/components/json_table.vue | 71 + .../behaviors/markdown/marks/strike.js | 29 +- .../behaviors/markdown/nodes/code_block.js | 2 +- .../markdown/nodes/task_list_item.js | 44 +- .../behaviors/markdown/render_gfm.js | 4 + .../behaviors/markdown/render_json_table.js | 70 + .../behaviors/markdown/render_mermaid.js | 231 - .../javascripts/blob/blob_links_tracking.js | 25 + app/assets/javascripts/boards/boards_util.js | 4 +- .../components/board_add_new_column_form.vue | 29 +- .../boards/components/board_card_inner.vue | 8 +- .../components/board_content_sidebar.vue | 3 +- .../boards/components/board_list_header.vue | 2 +- .../components/board_settings_sidebar.vue | 5 +- .../board_blocking_issues.query.graphql | 2 - .../graphql/group_board_members.query.graphql | 2 - .../boards/graphql/lists_issues.query.graphql | 2 - .../project_board_members.query.graphql | 2 - .../javascripts/boards/stores/mutations.js | 2 +- .../components/triggers_list.vue | 4 +- .../components/ci_admin_variables.vue | 101 + .../components/ci_environments_dropdown.vue | 51 +- .../components/ci_group_variables.vue | 104 + .../components/ci_variable_modal.vue | 212 +- .../components/ci_variable_settings.vue | 86 +- .../components/ci_variable_table.vue | 75 +- .../components/legacy_ci_variable_modal.vue | 6 +- .../javascripts/ci_variable_list/constants.js | 59 +- .../fragments/ci_variable.fragment.graphql | 7 + .../admin_add_variable.mutation.graphql | 16 + .../admin_delete_variable.mutation.graphql | 16 + .../admin_update_variable.mutation.graphql | 16 + .../group_add_variable.mutation.graphql | 30 + .../group_delete_variable.mutation.graphql | 30 + .../group_update_variable.mutation.graphql | 30 + .../queries/group_variables.query.graphql | 17 + .../graphql/queries/variables.query.graphql | 13 + .../ci_variable_list/graphql/resolvers.js | 113 + .../javascripts/ci_variable_list/index.js | 29 +- .../ci_variable_list/store/utils.js | 6 +- .../javascripts/ci_variable_list/utils.js | 50 + .../clusters_list/components/clusters.vue | 2 +- .../commit/pipelines/pipelines_table.vue | 60 +- .../commons/nav/user_merge_requests.js | 21 +- .../components/bubble_menus/formatting.vue | 24 +- .../components/content_editor.vue | 9 +- .../components/toolbar_more_dropdown.vue | 11 +- .../content_editor/components/top_toolbar.vue | 2 +- .../components/wrappers/table_cell_base.vue | 2 +- .../components/wrappers/table_of_contents.vue | 55 + .../wrappers/table_of_contents_heading.vue | 25 + .../extensions/code_block_highlight.js | 3 +- .../content_editor/extensions/diagram.js | 7 + .../content_editor/extensions/frontmatter.js | 7 + .../content_editor/extensions/image.js | 6 +- .../content_editor/extensions/link.js | 5 + .../extensions/reference_definition.js | 29 + .../content_editor/extensions/sourcemap.js | 4 + .../extensions/table_of_contents.js | 15 +- .../content_editor/services/content_editor.js | 6 +- .../services/create_content_editor.js | 9 +- .../services/hast_to_prosemirror_converter.js | 80 +- .../services/markdown_serializer.js | 36 +- .../services/remark_markdown_deserializer.js | 67 +- .../services/serialization_helpers.js | 56 +- .../services/table_of_contents_utils.js | 67 + .../contributors/stores/getters.js | 6 +- .../javascripts/crm/components/form.vue | 20 +- app/assets/javascripts/crm/constants.js | 4 + app/assets/javascripts/crm/contacts/bundle.js | 18 +- .../components/contact_form_wrapper.vue | 9 +- .../crm/contacts/components/contacts_root.vue | 220 +- .../crm_contact_fields.fragment.graphql | 3 +- .../graphql/get_group_contacts.query.graphql | 30 +- .../get_group_contacts_count_by_state.graphql | 11 + .../crm_organization_fields.fragment.graphql | 2 +- .../get_group_organizations.query.graphql | 1 - .../components/organization_form_wrapper.vue | 27 +- .../cycle_analytics/components/base.vue | 12 +- .../cycle_analytics/store/actions.js | 25 +- .../cycle_analytics/store/getters.js | 6 - .../cycle_analytics/store/mutation_types.js | 5 +- .../cycle_analytics/store/mutations.js | 23 +- .../cycle_analytics/store/state.js | 5 +- .../design_notes/design_discussion.vue | 1 - .../design_notes/design_reply_form.vue | 1 - .../design_todo_item.fragment.graphql | 2 - .../fragments/version.fragment.graphql | 1 - .../mutations/upload_design.mutation.graphql | 2 - .../design_management/pages/index.vue | 2 +- app/assets/javascripts/diff.js | 3 + .../diffs/components/commit_item.vue | 9 +- .../diffs/components/diff_expansion_cell.vue | 85 +- .../diffs/components/diff_view.vue | 22 +- app/assets/javascripts/diffs/constants.js | 3 + app/assets/javascripts/diffs/store/actions.js | 12 +- app/assets/javascripts/dropzone_input.js | 17 +- .../source_editor_toolbar_button.vue | 1 + .../source_editor_markdown_livepreview_ext.js | 5 +- .../editor/graphql/typedefs.graphql | 14 +- app/assets/javascripts/editor/schema/ci.json | 44 +- .../components/environment_item.vue | 2 +- .../components/environments_detail_header.vue | 1 + .../queries/environment_app.query.graphql | 1 - .../add_extra_tokens_for_merge_requests.js | 19 +- .../issuable_filtered_search_token_keys.js | 4 +- .../components/frequent_items_list_item.vue | 1 + app/assets/javascripts/gfm_auto_complete.js | 74 +- app/assets/javascripts/gitlab_pages/new.js | 39 + .../fragments/blobviewer.fragment.graphql | 7 - .../fragments/iteration.fragment.graphql | 4 - .../graphql_shared/possible_types.json | 9 + .../queries/get_user_callouts.query.graphql | 3 - .../components/shared_runners_form.vue | 7 +- .../group_settings/mount_shared_runners.js | 4 +- .../groups/components/group_item.vue | 16 +- .../groups/components/group_name_and_path.vue | 215 +- .../javascripts/groups/components/groups.vue | 2 +- .../groups/components/transfer_group_form.vue | 1 - app/assets/javascripts/groups/constants.js | 29 +- .../javascripts/groups/create_edit_form.js | 10 +- ...re_user_can_create_subgroups.query.graphql | 11 + .../header_search/components/app.vue | 51 +- .../javascripts/header_search/constants.js | 4 + app/assets/javascripts/header_search/index.js | 11 +- .../ide/components/commit_sidebar/form.vue | 4 +- .../ide/components/file_templates/bar.vue | 7 +- .../ide/components/ide_project_header.vue | 1 + .../ide/components/ide_tree_list.vue | 2 +- .../javascripts/ide/lib/common/model.js | 2 +- .../edit/components/dynamic_field.vue | 7 +- .../edit/components/integration_form.vue | 6 +- .../components/integration_overrides.vue | 1 + .../components/invite_members_modal.vue | 70 +- .../components/members_token_select.vue | 43 +- .../components/user_limit_notification.vue | 8 - .../javascripts/invite_members/constants.js | 13 +- .../init_invite_members_modal.js | 9 +- .../issuable/components/issue_milestone.vue | 4 +- .../components/related_issuable_item.vue | 51 +- .../issuable/issuable_template_selector.js | 16 +- .../popover/components/issue_popover.vue | 54 +- .../popover/queries/issue.query.graphql | 9 + app/assets/javascripts/issues/index.js | 2 +- .../list/components/issues_list_app.vue | 42 +- .../javascripts/issues/list/constants.js | 19 + .../list/queries/issue.fragment.graphql | 4 +- .../components/related_merge_requests.vue | 2 +- .../issues/show/components/description.vue | 9 +- .../show/components/incidents/constants.js | 5 +- .../incidents/create_timeline_event.vue | 117 + .../incidents/timeline_events_form.vue | 157 +- ...list_item.vue => timeline_events_item.vue} | 12 +- .../incidents/timeline_events_list.vue | 27 +- .../incidents/timeline_events_tab.vue | 15 +- .../issues/show/components/incidents/utils.js | 1 + .../jobs/components/environments_block.vue | 16 +- .../javascripts/jobs/components/job_app.vue | 1 + .../jobs/components/job_log_controllers.vue | 94 +- .../sidebar_job_details_container.vue | 9 +- .../graphql/queries/get_jobs.query.graphql | 4 - .../jobs/components/table/jobs_table_app.vue | 11 +- .../javascripts/labels/labels_select.js | 2 +- app/assets/javascripts/lib/dompurify.js | 37 + app/assets/javascripts/lib/gfm/index.js | 50 + app/assets/javascripts/lib/graphql.js | 1 + app/assets/javascripts/lib/markdown_it.js | 11 + .../lib/prosemirror_markdown_serializer.js | 4 +- .../javascripts/lib/utils/text_markdown.js | 242 +- .../javascripts/lib/utils/url_utility.js | 25 + app/assets/javascripts/lib/utils/yaml.js | 21 +- .../javascripts/linked_resources/index.js | 11 +- app/assets/javascripts/main.js | 6 - .../table/member_action_buttons.vue | 5 +- app/assets/javascripts/members/constants.js | 2 + .../javascripts/merge_conflicts/utils.js | 7 +- .../components/charts/time_series.vue | 4 +- .../javascripts/monitoring/stores/utils.js | 64 +- app/assets/javascripts/mr_notes/init_notes.js | 8 +- .../javascripts/notebook/cells/markdown.vue | 2 +- .../components/diff_discussion_header.vue | 28 +- .../notes/components/note_actions.vue | 2 +- .../notes/components/note_body.vue | 106 +- .../notes/components/note_form.vue | 6 +- .../notes/components/noteable_note.vue | 3 +- app/assets/javascripts/notes/constants.js | 2 - .../javascripts/notes/stores/mutations.js | 6 +- app/assets/javascripts/notes/utils.js | 2 +- .../components/list_page/cleanup_status.vue | 6 +- .../components/list_page/image_list_row.vue | 2 +- .../dependency_proxy/app.vue | 4 +- .../dependency_proxy/index.js | 8 +- .../list/stores/actions.js | 5 +- .../components/details/package_files.vue | 109 +- .../components/details/package_history.vue | 35 +- .../components/details/package_title.vue | 52 +- .../components/details/pypi_installation.vue | 47 +- .../package_registry/constants.js | 15 + .../destroy_package_file.mutation.graphql | 5 - .../destroy_package_files.mutation.graphql | 5 + .../queries/get_package_details.query.graphql | 4 + .../package_registry/pages/details.vue | 107 +- .../container_expiration_policy.vue | 2 +- .../components/expiration_dropdown.vue | 30 +- .../components/packages_cleanup_policy.vue | 2 +- .../packages_cleanup_policy_form.vue | 25 +- .../settings/project/constants.js | 2 +- .../shared/components/settings_block.vue | 6 +- .../shared/constants/package_registry.js | 4 + .../pages/groups/new/components/app.vue | 73 +- .../create_group_description_details.vue | 56 +- .../javascripts/pages/groups/new/index.js | 11 +- .../components/bulk_imports_history_app.vue | 2 +- .../profiles/personal_access_tokens/index.js | 2 - .../projects/ci/secure_files/show/index.js | 3 - .../pages/projects/graphs/charts/index.js | 23 +- .../graphs/components/code_coverage.vue | 42 +- .../javascripts/pages/projects/init_blob.js | 9 +- .../pages/projects/issues/show/index.js | 2 +- .../pages/projects/pages/new/index.js | 3 + .../pipeline_schedules/index/index.js | 41 + .../permissions/components/settings_panel.vue | 42 +- .../pages/projects/tags/releases/index.js | 6 - .../pages/registrations/new/index.js | 5 + .../sessions/new/email_format_validator.js | 46 + .../shared/wikis/components/wiki_form.vue | 55 +- .../javascripts/persistent_user_callout.js | 4 +- .../javascripts/persistent_user_callouts.js | 1 + .../drawer/cards/first_pipeline_card.vue | 4 +- .../components/editor/ci_editor_header.vue | 4 +- .../components/lint/ci_lint.vue | 53 - .../components/pipeline_editor_tabs.vue | 20 - .../components/validate/ci_validate.vue | 20 +- .../javascripts/pipeline_editor/constants.js | 8 +- .../mutations/client/lint_ci.mutation.graphql | 1 - .../mutations/commit_ci_file.mutation.graphql | 2 - .../javascripts/pipeline_editor/index.js | 2 - .../components/pipeline_new_form.vue | 34 +- .../components/take_ownership_modal.vue | 52 + .../components/widgets/checklist.vue | 9 +- .../pipeline_wizard/pipeline_wizard.vue | 2 +- .../components/graph/job_group_dropdown.vue | 5 +- .../pipelines/components/graph/job_item.vue | 3 + .../components/performance_insights_modal.vue | 9 +- .../pipelines/components/pipeline_tabs.vue | 18 +- .../empty_state/ci_templates.vue | 16 +- .../pipelines_list/pipeline_multi_actions.vue | 40 +- .../components/test_reports/test_reports.vue | 26 +- .../test_reports/test_suite_table.vue | 16 +- .../components/test_reports/test_summary.vue | 55 +- .../test_reports/test_summary_table.vue | 54 +- app/assets/javascripts/pipelines/constants.js | 2 +- .../pipelines/mixins/pipelines_mixin.js | 13 +- .../javascripts/pipelines/pipeline_tabs.js | 33 +- .../pipelines/stores/test_reports/actions.js | 1 - .../projects/compare/components/app.vue | 20 +- .../javascripts/projects/compare/index.js | 12 +- .../projects/pipelines/charts/index.js | 2 + .../javascripts/projects/project_new.js | 24 + .../components/branch_dropdown.vue | 87 +- .../components/protections/index.vue | 59 + .../protections/merge_protections.vue | 46 + .../protections/push_protections.vue | 52 + .../branch_rules/components/rule_edit.vue | 44 +- .../settings/components/access_dropdown.vue | 4 +- .../components/transfer_project_form.vue | 94 +- ...e_user_can_transfer_projects.query.graphql | 24 + .../settings/init_transfer_project_form.js | 22 +- .../ref/components/ref_selector.vue | 1 + .../components/add_issuable_form.vue | 7 +- .../components/related_issues_block.vue | 76 +- .../components/related_issues_list.vue | 2 +- .../components/related_issues_root.vue | 9 + .../javascripts/related_issues/constants.js | 10 +- .../javascripts/related_issues/index.js | 51 +- .../releases/components/app_edit_new.vue | 9 +- .../releases/components/asset_links_form.vue | 2 +- .../components/release_block_header.vue | 12 + .../fragments/release.fragment.graphql | 15 +- .../queries/all_releases.query.graphql | 88 +- app/assets/javascripts/releases/util.js | 1 + .../reports/components/report_section.vue | 1 - .../components/blob_content_viewer.vue | 74 +- .../repository/components/last_commit.vue | 9 +- .../javascripts/repository/constants.js | 1 - .../queries/blob_info.query.graphql | 1 + app/assets/javascripts/right_sidebar.js | 32 +- .../admin_runners/admin_runners_app.vue | 34 +- .../components/cells/runner_summary_cell.vue | 6 +- .../components/runner_assigned_item.vue | 22 +- .../runner/components/runner_bulk_delete.vue | 151 +- .../runner_bulk_delete_checkbox.vue | 59 + .../runner/components/runner_detail.vue | 9 +- .../runner/components/runner_details.vue | 25 +- .../components/runner_filtered_search_bar.vue | 8 +- .../runner/components/runner_jobs.vue | 11 +- .../runner/components/runner_list.vue | 15 +- .../runner/components/runner_pagination.vue | 67 +- .../runner/components/runner_projects.vue | 22 +- .../runner/components/stat/runner_count.vue | 7 +- .../components/stat/runner_single_stat.vue | 41 + .../runner/components/stat/runner_stats.vue | 74 +- .../components/stat/runner_status_stat.vue | 65 - app/assets/javascripts/runner/constants.js | 3 +- .../runner_fields_shared.fragment.graphql | 1 - .../graphql/list/all_runners.query.graphql | 13 +- .../all_runners_connection.fragment.graphql | 13 + .../list/bulk_runner_delete.mutation.graphql | 6 + .../group_runner_connection.fragment.graphql | 16 + .../graphql/list/group_runners.query.graphql | 16 +- .../list/list_item_shared.fragment.graphql | 2 - .../runner/graphql/list/local_state.js | 18 +- .../runner_details_shared.fragment.graphql | 1 - .../show/runner_projects.query.graphql | 4 + .../group_runners/group_runners_app.vue | 32 +- .../javascripts/runner/runner_search_utils.js | 69 +- .../components/constants.js | 1 + .../set_status_modal_wrapper.vue | 10 +- .../components/assignees/assignees.vue | 10 +- .../assignees/issuable_assignees.vue | 6 - .../assignees/sidebar_assignees.vue | 4 - .../assignees/sidebar_assignees_widget.vue | 4 + .../assignees/sidebar_participant.vue | 39 +- .../assignees/uncollapsed_assignee_list.vue | 22 +- .../components/attention_requested_toggle.vue | 105 - .../sidebar_confidentiality_form.vue | 7 +- .../sidebar_confidentiality_widget.vue | 4 +- .../reviewers/collapsed_reviewer_list.vue | 4 +- .../components/reviewers/reviewer_avatar.vue | 4 +- .../reviewers/reviewer_avatar_link.vue | 4 +- .../components/reviewers/reviewers.vue | 8 +- .../reviewers/sidebar_reviewers.vue | 64 +- .../reviewers/uncollapsed_reviewer_list.vue | 22 +- .../sidebar/components/severity/severity.vue | 8 +- .../components/severity/sidebar_severity.vue | 8 +- .../javascripts/sidebar/mount_sidebar.js | 17 +- .../queries/epic_confidential.query.graphql | 2 - .../queries/epic_due_date.query.graphql | 2 - .../queries/epic_participants.query.graphql | 2 - .../queries/epic_reference.query.graphql | 2 - .../queries/epic_start_date.query.graphql | 2 - .../queries/epic_subscribed.query.graphql | 2 - .../sidebar/queries/epic_todo.query.graphql | 2 - .../queries/group_milestones.query.graphql | 1 - .../queries/issue_confidential.query.graphql | 2 - .../queries/issue_due_date.query.graphql | 2 - .../queries/issue_reference.query.graphql | 2 - .../queries/issue_subscribed.query.graphql | 2 - .../queries/issue_time_tracking.query.graphql | 2 - .../sidebar/queries/issue_todo.query.graphql | 2 - .../merge_request_milestone.query.graphql | 2 - .../merge_request_reference.query.graphql | 2 - .../merge_request_subscribed.query.graphql | 2 - .../merge_request_time_tracking.query.graphql | 2 - .../queries/merge_request_todo.query.graphql | 2 - .../project_issue_milestone.mutation.graphql | 2 - .../project_issue_milestone.query.graphql | 2 - .../queries/project_milestones.query.graphql | 1 - .../remove_attention_request.mutation.graphql | 7 - .../request_attention.mutation.graphql | 5 - .../queries/todo_create.mutation.graphql | 1 - .../queries/todo_mark_done.mutation.graphql | 1 - ...e_merge_request_milestone.mutation.graphql | 2 - .../sidebar/services/sidebar_service.js | 23 - .../javascripts/sidebar/sidebar_bundle.js | 12 +- .../javascripts/sidebar/sidebar_mediator.js | 87 +- .../sidebar/stores/sidebar_store.js | 34 - .../fragments/snippet_base.fragment.graphql | 35 - .../surveys/merge_request_experience/app.js | 10 +- .../surveys/merge_request_experience/app.vue | 9 + app/assets/javascripts/task_list.js | 8 + app/assets/javascripts/test_utils/index.js | 2 + app/assets/javascripts/user_popovers.js | 4 +- .../javascripts/visibility_level/constants.js | 10 + .../actions.vue => action_buttons.vue} | 12 +- .../components/added_commit_message.vue | 85 +- .../components/approvals/approvals.vue | 11 - .../components/deployment/memory_usage.vue | 18 +- .../components/extensions/README.md | 1 + .../components/extensions/base.vue | 2 +- .../components/extensions/child_content.vue | 2 +- .../components/extensions/telemetry.js | 30 + .../components/mr_widget_related_links.vue | 34 +- .../components/mr_widget_status_icon.vue | 20 +- .../components/state_container.vue | 55 + .../components/states/commit_edit.vue | 8 +- .../components/states/mr_widget_archived.vue | 4 +- .../states/mr_widget_auto_merge_enabled.vue | 96 +- .../states/mr_widget_auto_merge_failed.vue | 44 +- .../components/states/mr_widget_checking.vue | 4 +- .../components/states/mr_widget_closed.vue | 9 - .../components/states/mr_widget_conflicts.vue | 65 +- .../states/mr_widget_failed_to_merge.vue | 13 +- .../components/states/mr_widget_merged.vue | 168 +- .../components/states/mr_widget_merging.vue | 10 - .../states/mr_widget_missing_branch.vue | 8 +- .../states/mr_widget_pipeline_blocked.vue | 2 +- .../components/states/mr_widget_rebase.vue | 141 +- .../components/states/pipeline_failed.vue | 4 +- .../components/states/ready_to_merge.vue | 349 +- .../components/states/sha_mismatch.vue | 33 +- .../components/states/squash_before_merge.vue | 9 +- .../states/unresolved_discussions.vue | 53 +- .../components/states/work_in_progress.vue | 29 +- .../components/widget/app.vue | 27 + .../components/widget/widget.vue | 158 + .../extensions/accessibility/index.js | 9 +- .../extensions/test_report/utils.js | 12 +- .../mixins/ready_to_merge.js | 7 - .../mr_widget_options.vue | 50 +- .../states/ready_to_merge.fragment.graphql | 2 - .../stores/get_state_key.js | 2 - .../stores/mr_widget_store.js | 14 - .../confirm_danger/confirm_danger.vue | 1 + .../confirm_danger/confirm_danger_modal.vue | 11 +- .../store/modules/filters/actions.js | 4 +- .../components/gitlab_version_check.vue | 3 +- .../vue_shared/components/markdown/header.vue | 95 +- .../components/markdown/toolbar.vue | 12 +- .../components/markdown/toolbar_button.vue | 2 +- .../namespace_select/namespace_select.vue | 75 +- .../vue_shared/components/project_avatar.vue | 13 + .../project_selector/project_list_item.vue | 1 + .../components/rich_timestamp_tooltip.vue | 42 + .../queries/get_issue_assignees.query.graphql | 6 +- .../get_issue_participants.query.graphql | 2 - .../queries/get_issue_timelogs.query.graphql | 1 - .../get_merge_request_reviewers.query.graphql | 26 + .../queries/get_mr_assignees.query.graphql | 7 + .../queries/get_mr_timelogs.query.graphql | 1 - .../vue_shared/components/source_editor.vue | 10 +- .../source_viewer/components/chunk.vue | 5 + .../source_viewer/components/chunk_line.vue | 35 +- .../components/source_viewer/constants.js | 1 + .../plugins/link_dependencies.js | 2 + .../plugins/utils/dependency_linker_util.js | 5 +- .../plugins/utils/gemspec_linker.js | 39 + .../plugins/utils/package_json_linker.js | 13 +- .../source_viewer/source_viewer.vue | 2 + .../user_avatar/user_avatar_image.vue | 11 +- .../user_avatar/user_avatar_image_new.vue | 12 +- .../user_avatar/user_avatar_link.vue | 11 +- .../user_avatar/user_avatar_link_new.vue | 7 +- .../user_avatar/user_avatar_list.vue | 2 +- .../components/user_popover/user_popover.vue | 12 + .../components/user_select/user_select.vue | 54 +- .../vue_shared/components/web_ide_link.vue | 30 +- .../javascripts/vue_shared/constants.js | 27 +- .../list/components/issuable_item.vue | 12 +- .../list/components/issuable_list_root.vue | 6 + .../vue_shared/issuable/list/constants.js | 7 - .../show/components/issuable_header.vue | 24 +- .../show/components/issuable_show_root.vue | 7 + .../new_namespace/new_namespace_page.vue | 2 +- .../javascripts/whats_new/components/app.vue | 2 +- .../whats_new/components/feature.vue | 29 +- .../work_items/components/item_state.vue | 10 +- .../work_items/components/item_title.vue | 5 +- .../components/work_item_actions.vue | 55 +- .../components/work_item_assignees.vue | 95 +- .../components/work_item_description.vue | 10 +- .../components/work_item_detail.vue | 150 +- .../components/work_item_detail_modal.vue | 41 +- .../components/work_item_labels.vue | 3 +- .../components/work_item_links/index.js | 16 +- .../work_item_links/work_item_links.vue | 269 +- .../work_item_links/work_item_links_form.vue | 133 +- .../work_item_links/work_item_links_menu.vue | 79 +- .../work_items/components/work_item_state.vue | 7 +- .../work_items/components/work_item_title.vue | 7 +- .../components/work_item_type_icon.vue | 44 + .../components/work_item_weight.vue | 40 +- .../javascripts/work_items/constants.js | 44 +- ...nge_work_item_parent_link.mutation.graphql | 13 - .../graphql/create_work_item.mutation.graphql | 3 +- ...reate_work_item_from_task.mutation.graphql | 2 +- .../local_update_work_item.mutation.graphql | 2 +- .../work_items/graphql/provider.js | 28 +- .../work_items/graphql/typedefs.graphql | 26 +- .../graphql/update_work_item.mutation.graphql | 2 +- .../update_work_item_task.mutation.graphql | 2 +- .../update_work_item_widgets.mutation.graphql | 2 +- .../graphql/work_item.fragment.graphql | 10 +- .../graphql/work_item.query.graphql | 6 +- .../graphql/work_item_links.query.graphql | 6 + .../stylesheets/_page_specific_files.scss | 1 - app/assets/stylesheets/components/avatar.scss | 12 +- .../components/batch_comments/review_bar.scss | 2 +- .../components/rich_content_editor.scss | 54 - app/assets/stylesheets/framework/blocks.scss | 83 - .../stylesheets/framework/calendar.scss | 39 - .../framework/contextual_sidebar.scss | 14 +- .../framework/contextual_sidebar_header.scss | 4 +- .../stylesheets/framework/dropdowns.scss | 28 +- app/assets/stylesheets/framework/files.scss | 17 + .../stylesheets/framework/highlight.scss | 58 +- app/assets/stylesheets/framework/mixins.scss | 2 +- .../secondary_navigation_elements.scss | 19 - app/assets/stylesheets/framework/sidebar.scss | 4 +- .../stylesheets/framework/sortable.scss | 2 - .../stylesheets/framework/timeline.scss | 4 + .../stylesheets/framework/typography.scss | 29 + .../stylesheets/framework/variables.scss | 4 - .../framework/vue_transitions.scss | 2 +- app/assets/stylesheets/highlight/common.scss | 31 +- .../stylesheets/highlight/themes/dark.scss | 10 +- .../stylesheets/highlight/themes/monokai.scss | 10 +- .../stylesheets/highlight/themes/none.scss | 10 +- .../highlight/themes/solarized-dark.scss | 10 +- .../highlight/themes/solarized-light.scss | 10 +- .../stylesheets/highlight/white_base.scss | 10 +- .../stylesheets/page_bundles/boards.scss | 4 +- .../page_bundles/escalation_policies.scss | 16 +- .../stylesheets/page_bundles/group.scss | 65 +- .../page_bundles/merge_requests.scss | 32 +- .../stylesheets/page_bundles/pipeline.scss | 20 +- .../stylesheets/page_bundles/profile.scss | 212 + .../page_bundles/runner_details.scss | 3 + app/assets/stylesheets/pages/issuable.scss | 2 +- app/assets/stylesheets/pages/issues.scss | 2 +- app/assets/stylesheets/pages/login.scss | 14 + .../stylesheets/pages/merge_requests.scss | 4 +- app/assets/stylesheets/pages/note_form.scss | 9 - app/assets/stylesheets/pages/notes.scss | 10 +- app/assets/stylesheets/pages/profile.scss | 94 - app/assets/stylesheets/pages/search.scss | 37 +- .../stylesheets/pages/settings_ci_cd.scss | 18 - .../stylesheets/startup/startup-dark.scss | 43 +- .../stylesheets/startup/startup-general.scss | 35 +- .../stylesheets/startup/startup-signin.scss | 177 +- app/assets/stylesheets/themes/_dark.scss | 2 + .../themes/dark_mode_overrides.scss | 16 + .../stylesheets/themes/theme_helper.scss | 8 +- app/channels/awareness_channel.rb | 1 + .../overflow_warning_component.html.haml | 2 +- .../pajamas/avatar_component.html.haml | 12 + app/components/pajamas/avatar_component.rb | 69 + .../pajamas/button_component.html.haml | 9 +- app/components/pajamas/button_component.rb | 8 +- app/components/pajamas/checkbox_component.rb | 9 +- .../pajamas/checkbox_tag_component.html.haml | 6 + .../pajamas/checkbox_tag_component.rb | 44 + .../checkbox_radio_label_with_help_text.rb | 4 + app/components/pajamas/radio_component.rb | 4 +- .../admin/application_settings_controller.rb | 4 + .../admin/applications_controller.rb | 1 - .../admin/broadcast_messages_controller.rb | 1 - .../admin/ci/variables_controller.rb | 4 +- .../admin/dev_ops_report_controller.rb | 17 +- app/controllers/admin/projects_controller.rb | 4 +- .../admin/runner_projects_controller.rb | 2 +- .../admin/system_info_controller.rb | 18 +- app/controllers/admin/topics_controller.rb | 20 + .../admin/usage_trends_controller.rb | 16 +- app/controllers/admin/users_controller.rb | 2 +- app/controllers/autocomplete_controller.rb | 9 +- .../concerns/accepts_pending_invitations.rb | 14 +- app/controllers/concerns/creates_commit.rb | 3 +- app/controllers/concerns/issuable_actions.rb | 16 +- app/controllers/concerns/notes_actions.rb | 3 +- .../concerns/product_analytics_tracking.rb | 37 +- app/controllers/concerns/redis_tracking.rb | 2 +- app/controllers/concerns/uploads_actions.rb | 6 +- app/controllers/groups/boards_controller.rb | 4 +- .../groups/settings/ci_cd_controller.rb | 3 + .../groups/variables_controller.rb | 2 +- app/controllers/groups_controller.rb | 4 + .../import/bulk_imports_controller.rb | 10 +- .../oauth/token_info_controller.rb | 2 +- .../omniauth_callbacks_controller.rb | 5 +- .../personal_access_tokens_controller.rb | 6 +- .../profiles/two_factor_auths_controller.rb | 2 +- .../alerting/notifications_controller.rb | 2 - .../cycle_analytics/stages_controller.rb | 21 + app/controllers/projects/blob_controller.rb | 1 + app/controllers/projects/boards_controller.rb | 4 +- .../projects/ci/pipeline_editor_controller.rb | 1 - .../projects/ci/secure_files_controller.rb | 11 - .../projects/compare_controller.rb | 2 +- .../projects/feature_flags_controller.rb | 6 +- .../projects/google_cloud/base_controller.rb | 12 + .../google_cloud/configuration_controller.rb | 1 - .../google_cloud/databases_controller.rb | 1 - .../google_cloud/deployments_controller.rb | 7 +- .../google_cloud/gcp_regions_controller.rb | 6 - .../service_accounts_controller.rb | 22 +- .../projects/incidents_controller.rb | 2 +- app/controllers/projects/issues_controller.rb | 16 +- app/controllers/projects/jobs_controller.rb | 6 +- .../merge_requests/diffs_controller.rb | 30 +- .../merge_requests/drafts_controller.rb | 4 +- .../projects/merge_requests_controller.rb | 5 +- .../projects/milestones_controller.rb | 4 +- .../projects/mirrors_controller.rb | 4 +- app/controllers/projects/pages_controller.rb | 26 +- .../projects/pipelines/stages_controller.rb | 3 +- .../projects/repositories_controller.rb | 4 +- .../projects/runner_projects_controller.rb | 2 +- .../integration_hook_logs_controller.rb | 2 +- .../settings/integrations_controller.rb | 2 +- .../packages_and_registries_controller.rb | 11 + .../projects/tags/releases_controller.rb | 39 - app/controllers/projects/tree_controller.rb | 1 + .../projects/variables_controller.rb | 2 +- .../projects/work_items_controller.rb | 2 +- app/controllers/projects_controller.rb | 30 +- app/controllers/registrations_controller.rb | 1 + .../git_http_client_controller.rb | 2 +- .../repositories/lfs_api_controller.rb | 12 +- .../repositories/lfs_locks_api_controller.rb | 4 +- app/controllers/search_controller.rb | 19 +- app/controllers/sessions_controller.rb | 4 +- app/controllers/uploads_controller.rb | 12 +- .../users/namespace_callouts_controller.rb | 17 + .../users/project_callouts_controller.rb | 17 + app/controllers/users_controller.rb | 6 +- app/events/groups/group_deleted_event.rb | 16 + app/events/groups/group_path_changed_event.rb | 18 + app/events/groups/group_transfered_event.rb | 17 + app/events/merge_requests/approved_event.rb | 19 + app/events/projects/project_archived_event.rb | 17 + .../projects/project_transfered_event.rb | 25 + ...ity_reports_mr_widget_prompt_experiment.rb | 4 +- ...orials_continuous_onboarding_experiment.rb | 4 +- .../deploy_keys_with_write_access_finder.rb | 21 + ...daily_build_group_report_results_finder.rb | 10 +- app/finders/ci/runners_finder.rb | 11 +- app/finders/crm/contacts_finder.rb | 21 +- app/finders/fork_targets_finder.rb | 32 +- .../accepting_project_transfers_finder.rb | 43 + app/finders/groups/user_groups_finder.rb | 4 +- app/finders/issuable_finder.rb | 3 +- app/finders/projects/topics_finder.rb | 7 + app/finders/releases/group_releases_finder.rb | 2 +- .../repositories/changelog_tag_finder.rb | 4 +- app/finders/tags_finder.rb | 2 +- app/graphql/gitlab_schema.rb | 2 + app/graphql/graphql_triggers.rb | 4 + app/graphql/mutations/award_emojis/toggle.rb | 7 +- app/graphql/mutations/ci/job/retry.rb | 11 +- app/graphql/mutations/ci/pipeline/cancel.rb | 1 - .../mutations/ci/runner/bulk_delete.rb | 56 + app/graphql/mutations/ci/runner/update.rb | 10 +- .../ci/runners_registration_token/reset.rb | 5 +- .../mutations/work_items/update_arguments.rb | 10 +- .../container_repositories/destroy.rb | 2 + .../mutations/design_management/move.rb | 19 +- app/graphql/mutations/issues/move.rb | 4 +- .../mutations/issues/set_confidential.rb | 2 +- app/graphql/mutations/issues/set_severity.rb | 5 +- .../remove_attention_request.rb | 40 - .../merge_requests/request_attention.rb | 40 - .../mutations/merge_requests/set_reviewers.rb | 52 + .../toggle_attention_requested.rb | 29 - app/graphql/mutations/notes/create/base.rb | 10 +- .../base_security_analyzer.rb | 14 +- app/graphql/mutations/timelogs/base.rb | 18 + app/graphql/mutations/timelogs/create.rb | 48 + app/graphql/mutations/timelogs/delete.rb | 13 +- app/graphql/mutations/uploads/delete.rb | 37 + app/graphql/mutations/work_items/create.rb | 3 + app/graphql/mutations/work_items/update.rb | 2 + app/graphql/resolvers/ci/config_resolver.rb | 4 +- app/graphql/resolvers/ci/runners_resolver.rb | 2 +- app/graphql/resolvers/ci/template_resolver.rb | 7 +- .../crm/contact_state_counts_resolver.rb | 25 + .../resolvers/crm/contacts_resolver.rb | 19 +- .../resolvers/environments_resolver.rb | 4 +- .../sentry_detailed_error_resolver.rb | 2 +- .../resolvers/group_milestones_resolver.rb | 4 + .../projects/fork_targets_resolver.rb | 27 + app/graphql/resolvers/projects_resolver.rb | 4 +- app/graphql/resolvers/users_resolver.rb | 2 +- app/graphql/resolvers/work_items_resolver.rb | 2 + app/graphql/types/access_level_type.rb | 8 +- .../usage_trends/measurement_type.rb | 8 +- .../alert_management/domain_filter_enum.rb | 11 +- app/graphql/types/base_field.rb | 4 +- app/graphql/types/board_list_type.rb | 16 +- app/graphql/types/board_type.rb | 16 +- app/graphql/types/ci/analytics_type.rb | 22 +- .../types/ci/application_setting_type.rb | 2 +- app/graphql/types/ci/build_need_type.rb | 4 +- app/graphql/types/ci/ci_cd_setting_type.rb | 22 +- app/graphql/types/ci/config/config_type.rb | 12 +- app/graphql/types/ci/config/group_type.rb | 6 +- .../types/ci/config/job_restriction_type.rb | 2 +- app/graphql/types/ci/config/job_type.rb | 38 +- app/graphql/types/ci/config/need_type.rb | 2 +- app/graphql/types/ci/config/stage_type.rb | 4 +- app/graphql/types/ci/detailed_status_type.rb | 30 +- app/graphql/types/ci/group_type.rb | 10 +- app/graphql/types/ci/group_variable_type.rb | 25 + .../types/ci/instance_variable_type.rb | 33 + app/graphql/types/ci/job_artifact_type.rb | 8 +- app/graphql/types/ci/job_token_scope_type.rb | 8 +- app/graphql/types/ci/job_type.rb | 72 +- app/graphql/types/ci/manual_variable_type.rb | 25 + app/graphql/types/ci/pipeline_message_type.rb | 4 +- app/graphql/types/ci/pipeline_type.rb | 72 +- app/graphql/types/ci/project_variable_type.rb | 25 + app/graphql/types/ci/recent_failures_type.rb | 4 +- .../types/ci/runner_architecture_type.rb | 8 +- app/graphql/types/ci/runner_platform_type.rb | 10 +- app/graphql/types/ci/runner_setup_type.rb | 4 +- app/graphql/types/ci/runner_type.rb | 76 +- ..._enum.rb => runner_upgrade_status_enum.rb} | 4 +- app/graphql/types/ci/runner_web_url_edge.rb | 8 +- app/graphql/types/ci/stage_type.rb | 12 +- app/graphql/types/ci/status_action_type.rb | 16 +- app/graphql/types/ci/template_type.rb | 4 +- app/graphql/types/ci/test_case_type.rb | 26 +- .../types/ci/test_report_summary_type.rb | 8 +- .../types/ci/test_report_total_type.rb | 14 +- .../types/ci/test_suite_summary_type.rb | 30 +- app/graphql/types/ci/test_suite_type.rb | 29 +- app/graphql/types/ci/variable_input_type.rb | 13 + app/graphql/types/ci/variable_interface.rb | 31 + app/graphql/types/ci/variable_type.rb | 40 - .../sast/analyzers_entity_input_type.rb | 4 +- .../sast/analyzers_entity_type.rb | 14 +- .../sast/entity_input_type.rb | 6 +- .../ci_configuration/sast/entity_type.rb | 20 +- .../sast/options_entity_type.rb | 4 +- .../types/ci_configuration/sast/type.rb | 18 +- app/graphql/types/commit_action_type.rb | 14 +- app/graphql/types/commit_type.rb | 30 +- .../concerns/gitlab_style_deprecations.rb | 5 +- .../types/countable_connection_type.rb | 2 +- .../customer_relations/contact_sort_enum.rb | 21 + .../contact_state_counts_type.rb | 23 + .../customer_relations/contact_state_enum.rb | 8 +- .../design_collection_type.rb | 4 +- .../types/design_management/design_fields.rb | 5 +- .../types/design_management/version_type.rb | 6 +- app/graphql/types/diff_paths_input_type.rb | 4 +- app/graphql/types/diff_refs_type.rb | 6 +- app/graphql/types/diff_stats_summary_type.rb | 8 +- app/graphql/types/diff_stats_type.rb | 6 +- app/graphql/types/environment_type.rb | 12 +- app/graphql/types/evidence_type.rb | 8 +- app/graphql/types/global_id_type.rb | 2 +- app/graphql/types/grafana_integration_type.rb | 10 +- app/graphql/types/group_invitation_type.rb | 2 +- app/graphql/types/group_member_type.rb | 2 +- app/graphql/types/group_type.rb | 19 +- app/graphql/types/invitation_interface.rb | 14 +- app/graphql/types/issue_type.rb | 106 +- app/graphql/types/issue_type_enum.rb | 2 +- app/graphql/types/jira_import_type.rb | 14 +- app/graphql/types/jira_user_type.rb | 14 +- app/graphql/types/label_type.rb | 16 +- app/graphql/types/member_interface.rb | 14 +- .../types/merge_request_connection_type.rb | 4 +- app/graphql/types/merge_request_type.rb | 157 +- .../detailed_merge_status_enum.rb | 44 + app/graphql/types/metadata/kas_type.rb | 6 +- app/graphql/types/metadata_type.rb | 6 +- app/graphql/types/metrics/dashboard_type.rb | 10 +- .../metrics/dashboards/annotation_type.rb | 12 +- app/graphql/types/milestone_stats_type.rb | 8 +- app/graphql/types/milestone_type.rb | 36 +- app/graphql/types/mutation_type.rb | 25 +- app/graphql/types/namespace_type.rb | 41 +- .../notes/diff_image_position_input_type.rb | 16 +- .../notes/diff_position_base_input_type.rb | 6 +- .../types/notes/diff_position_input_type.rb | 4 +- app/graphql/types/notes/diff_position_type.rb | 24 +- app/graphql/types/notes/discussion_type.rb | 10 +- app/graphql/types/notes/note_type.rb | 28 +- .../types/packages/package_base_type.rb | 6 +- .../types/packages/package_details_type.rb | 2 +- .../types/packages/package_file_type.rb | 2 +- .../types/permission_types/group_enum.rb | 3 +- app/graphql/types/project_invitation_type.rb | 2 +- app/graphql/types/project_member_type.rb | 2 +- app/graphql/types/project_statistics_type.rb | 26 +- app/graphql/types/project_type.rb | 134 +- app/graphql/types/projects/service_type.rb | 6 +- .../projects/services/jira_project_type.rb | 8 +- app/graphql/types/projects/topic_type.rb | 12 +- app/graphql/types/prometheus_alert_type.rb | 2 +- app/graphql/types/query_type.rb | 6 +- app/graphql/types/release_asset_link_type.rb | 16 +- app/graphql/types/release_assets_type.rb | 6 +- app/graphql/types/release_links_type.rb | 26 +- app/graphql/types/release_source_type.rb | 4 +- app/graphql/types/release_type.rb | 36 +- app/graphql/types/repository/blob_type.rb | 88 +- app/graphql/types/repository_type.rb | 18 +- app/graphql/types/resolvable_interface.rb | 10 +- app/graphql/types/snippet_type.rb | 28 +- .../types/snippets/blob_connection_type.rb | 4 +- app/graphql/types/snippets/blob_type.rb | 22 +- app/graphql/types/subscription_type.rb | 11 +- app/graphql/types/task_completion_status.rb | 4 +- .../time_tracking/timelog_category_type.rb | 51 + app/graphql/types/tree/blob_type.rb | 10 +- app/graphql/types/tree/entry_type.rb | 12 +- app/graphql/types/tree/submodule_type.rb | 4 +- app/graphql/types/tree/tree_entry_type.rb | 4 +- app/graphql/types/tree/tree_type.rb | 10 +- app/graphql/types/upload_type.rb | 19 + app/graphql/types/user_callout_type.rb | 4 +- app/graphql/types/user_interface.rb | 8 +- app/graphql/types/user_status_type.rb | 8 +- app/graphql/types/work_item_type.rb | 31 +- app/graphql/types/work_items/type_type.rb | 6 +- .../types/work_items/widget_interface.rb | 30 +- .../widgets/assignees_input_type.rb | 16 + .../work_items/widgets/assignees_type.rb | 15 +- .../work_items/widgets/description_type.rb | 5 +- .../work_items/widgets/hierarchy_type.rb | 12 +- .../types/work_items/widgets/labels_type.rb | 27 + .../widgets/start_and_due_date_type.rb | 25 + .../start_and_due_date_update_input_type.rb | 18 + .../work_items/widgets/weight_input_type.rb | 15 - .../types/work_items/widgets/weight_type.rb | 21 - app/helpers/admin/identities_helper.rb | 36 + app/helpers/application_helper.rb | 22 +- app/helpers/avatars_helper.rb | 6 +- app/helpers/badges_helper.rb | 6 +- app/helpers/blob_helper.rb | 16 +- app/helpers/ci/pipeline_editor_helper.rb | 3 +- app/helpers/ci/pipelines_helper.rb | 4 +- app/helpers/ci/runners_helper.rb | 2 +- app/helpers/commits_helper.rb | 9 +- app/helpers/compare_helper.rb | 57 +- app/helpers/dashboard_helper.rb | 4 - app/helpers/environments_helper.rb | 44 +- app/helpers/events_helper.rb | 2 +- app/helpers/favicon_helper.rb | 6 +- app/helpers/form_helper.rb | 44 +- app/helpers/gitlab_script_tag_helper.rb | 4 +- app/helpers/groups/group_members_helper.rb | 9 +- app/helpers/groups_helper.rb | 17 +- app/helpers/instance_configuration_helper.rb | 2 +- .../issuables_description_templates_helper.rb | 31 +- app/helpers/issuables_helper.rb | 10 +- app/helpers/labels_helper.rb | 2 +- app/helpers/markup_helper.rb | 13 +- app/helpers/members_helper.rb | 18 + app/helpers/merge_requests_helper.rb | 60 +- app/helpers/namespaces_helper.rb | 18 - app/helpers/nav/new_dropdown_helper.rb | 2 +- app/helpers/nav/top_nav_helper.rb | 7 - app/helpers/packages_helper.rb | 23 + app/helpers/preferences_helper.rb | 2 +- app/helpers/profiles_helper.rb | 4 - app/helpers/projects/pipeline_helper.rb | 9 +- app/helpers/projects_helper.rb | 59 +- app/helpers/search_helper.rb | 36 +- app/helpers/sorting_helper.rb | 178 +- app/helpers/storage_helper.rb | 86 +- app/helpers/system_note_helper.rb | 1 + app/helpers/tab_helper.rb | 8 +- app/helpers/time_zone_helper.rb | 2 +- app/helpers/todos_helper.rb | 11 +- app/helpers/users_helper.rb | 12 +- app/helpers/webpack_helper.rb | 12 +- app/helpers/wiki_helper.rb | 8 +- app/mailers/abuse_report_mailer.rb | 4 +- app/mailers/emails/admin_notification.rb | 20 +- app/mailers/emails/merge_requests.rb | 7 - app/mailers/emails/projects.rb | 6 +- app/models/application_setting.rb | 4 +- .../application_setting_implementation.rb | 2 +- app/models/approval.rb | 3 +- app/models/audit_event.rb | 12 + app/models/authentication_event.rb | 2 +- app/models/blob.rb | 4 +- .../blob_viewer/metrics_dashboard_yml.rb | 12 +- app/models/bulk_imports/configuration.rb | 2 +- app/models/bulk_imports/entity.rb | 4 +- app/models/chat_name.rb | 6 +- app/models/ci/bridge.rb | 9 +- app/models/ci/build.rb | 90 +- app/models/ci/build_metadata.rb | 1 + app/models/ci/build_trace_metadata.rb | 4 +- app/models/ci/deleted_object.rb | 4 +- app/models/ci/job_artifact.rb | 67 +- app/models/ci/pipeline.rb | 104 +- app/models/ci/processable.rb | 2 +- app/models/ci/runner.rb | 17 +- app/models/ci/runner_version.rb | 4 +- app/models/ci/secure_file.rb | 6 +- app/models/commit.rb | 2 +- app/models/commit_range.rb | 4 +- app/models/commit_signatures/ssh_signature.rb | 2 +- app/models/compare.rb | 2 +- app/models/concerns/ci/artifactable.rb | 4 +- app/models/concerns/ci/has_status.rb | 4 +- app/models/concerns/ci/metadatable.rb | 10 + app/models/concerns/counter_attribute.rb | 47 +- .../concerns/cross_database_modification.rb | 32 +- .../concerns/database_event_tracking.rb | 53 + app/models/concerns/diff_positionable_note.rb | 6 +- .../enums/data_visualization_palette.rb | 22 +- app/models/concerns/enums/sbom.rb | 13 + app/models/concerns/expirable.rb | 5 +- app/models/concerns/featurable.rb | 8 +- .../concerns/integrations/base_data_fields.rb | 17 +- .../concerns/integrations/has_data_fields.rb | 4 +- .../concerns/integrations/has_web_hook.rb | 1 + app/models/concerns/issuable.rb | 18 +- app/models/concerns/participable.rb | 8 + .../project_features_compatibility.rb | 12 + app/models/concerns/prometheus_adapter.rb | 4 +- .../concerns/repository_storage_movable.rb | 4 +- app/models/concerns/taskable.rb | 4 +- app/models/concerns/triggerable_hooks.rb | 30 +- .../concerns/vulnerability_finding_helpers.rb | 3 +- .../concerns/x509_serial_number_attribute.rb | 4 +- app/models/container_repository.rb | 44 +- app/models/custom_emoji.rb | 2 +- app/models/customer_relations/contact.rb | 26 + .../contact_state_counts.rb | 42 + app/models/deploy_key.rb | 9 + app/models/deployment.rb | 7 +- app/models/design_management/design.rb | 4 +- app/models/design_management/design_action.rb | 2 +- app/models/environment.rb | 52 +- app/models/event.rb | 49 +- app/models/gpg_key.rb | 2 +- app/models/grafana_integration.rb | 4 +- app/models/group.rb | 20 +- app/models/group_group_link.rb | 17 + app/models/hooks/web_hook.rb | 23 +- app/models/integration.rb | 6 +- app/models/integrations/bamboo.rb | 4 +- app/models/integrations/base_issue_tracker.rb | 4 +- .../integrations/base_slash_commands.rb | 2 +- app/models/integrations/buildkite.rb | 2 +- app/models/integrations/datadog.rb | 157 +- app/models/integrations/discord.rb | 39 +- app/models/integrations/emails_on_push.rb | 2 +- app/models/integrations/external_wiki.rb | 11 + app/models/integrations/harbor.rb | 7 +- app/models/integrations/jenkins.rb | 4 +- app/models/integrations/jira.rb | 36 +- app/models/integrations/packagist.rb | 13 +- app/models/integrations/pipelines_email.rb | 4 +- app/models/integrations/prometheus.rb | 4 +- app/models/integrations/pumble.rb | 59 + app/models/integrations/slack.rb | 17 + app/models/integrations/teamcity.rb | 4 +- app/models/issuable_severity.rb | 16 +- app/models/issue.rb | 61 +- app/models/jira_connect_installation.rb | 4 +- app/models/key.rb | 1 + app/models/lfs_object.rb | 2 +- .../loose_foreign_keys/deleted_record.rb | 35 +- app/models/member.rb | 12 + app/models/members/group_member.rb | 23 +- .../members/last_group_owner_assigner.rb | 4 +- app/models/members/member_role.rb | 9 + app/models/members/project_member.rb | 7 +- app/models/merge_request.rb | 86 +- .../approval_removal_settings.rb | 39 + app/models/merge_request/metrics.rb | 3 +- app/models/merge_request_diff.rb | 11 +- app/models/ml.rb | 6 + app/models/ml/candidate.rb | 12 + app/models/ml/candidate_metric.rb | 10 + app/models/ml/candidate_param.rb | 10 + app/models/ml/experiment.rb | 12 + app/models/namespace.rb | 19 +- app/models/namespace/detail.rb | 9 + .../namespaces/traversal/linear_scopes.rb | 61 +- app/models/network/graph.rb | 2 +- app/models/note.rb | 18 + app/models/notification_reason.rb | 2 - app/models/oauth_access_token.rb | 11 +- app/models/operations/feature_flag.rb | 2 +- app/models/packages/package.rb | 4 +- app/models/pages_domain.rb | 4 +- .../prometheus_dashboard.rb | 8 +- app/models/personal_access_token.rb | 10 +- app/models/preloaders/labels_preloader.rb | 4 +- app/models/project.rb | 61 +- app/models/project_feature.rb | 3 + .../projects/import_export/relation_export.rb | 41 + app/models/projects/topic.rb | 1 + app/models/prometheus_alert.rb | 2 +- app/models/protected_branch.rb | 25 +- app/models/release.rb | 2 +- app/models/release_highlight.rb | 4 +- app/models/repository.rb | 18 +- app/models/sent_notification.rb | 12 +- app/models/serverless/domain_cluster.rb | 2 +- app/models/snippet.rb | 4 +- app/models/snippet_repository.rb | 6 +- app/models/system_note_metadata.rb | 2 +- app/models/terraform/state.rb | 2 +- app/models/todo.rb | 14 +- app/models/u2f_registration.rb | 34 +- app/models/user.rb | 129 +- app/models/user_status.rb | 16 +- app/models/users/callout.rb | 9 +- app/models/users/group_callout.rb | 8 +- app/models/users/project_callout.rb | 21 + app/models/wiki.rb | 10 +- app/models/work_item.rb | 15 +- app/models/work_items/parent_link.rb | 23 + app/models/work_items/type.rb | 16 +- app/models/work_items/widgets/labels.rb | 10 + .../work_items/widgets/start_and_due_date.rb | 9 + app/models/work_items/widgets/weight.rb | 9 - app/policies/ci/runner_policy.rb | 2 + app/policies/deployment_policy.rb | 2 + app/policies/group_policy.rb | 3 +- app/policies/issuable_policy.rb | 4 + .../group_project_namespace_shared_policy.rb | 14 +- .../namespaces/project_namespace_policy.rb | 6 +- .../namespaces/user_namespace_policy.rb | 1 - app/policies/project_hook_policy.rb | 10 + app/policies/project_policy.rb | 27 +- app/policies/system_hook_policy.rb | 8 + .../time_tracking/timelog_category_policy.rb | 7 + app/policies/upload_policy.rb | 5 + app/policies/work_item_policy.rb | 3 + .../cycle_analytics/stage_presenter.rb | 2 +- app/presenters/ci/build_runner_presenter.rb | 3 +- app/presenters/merge_request_presenter.rb | 13 +- app/presenters/project_hook_presenter.rb | 2 +- app/presenters/project_member_presenter.rb | 22 + app/presenters/project_presenter.rb | 4 +- app/presenters/service_hook_presenter.rb | 2 +- app/presenters/web_hook_log_presenter.rb | 2 +- .../concerns/user_status_tooltip.rb | 2 +- app/serializers/environment_serializer.rb | 21 +- app/serializers/group_access_token_entity.rb | 26 + .../group_access_token_serializer.rb | 7 + .../integrations/project_entity.rb | 1 + app/serializers/issue_entity.rb | 4 + .../merge_request_poll_widget_entity.rb | 13 +- app/serializers/merge_request_user_entity.rb | 4 - .../personal_access_token_entity.rb | 11 + .../personal_access_token_serializer.rb | 7 + .../project_access_token_entity.rb | 27 + .../project_access_token_serializer.rb | 7 + app/serializers/rollout_status_entity.rb | 2 +- app/services/audit_events/build_service.rb | 87 + .../project_recalculate_service.rb | 2 +- app/services/auto_merge/base_service.rb | 1 + app/services/base_count_service.rb | 2 +- app/services/boards/destroy_service.rb | 4 - app/services/boards/lists/move_service.rb | 2 +- app/services/branches/create_service.rb | 84 +- app/services/bulk_imports/create_service.rb | 2 +- .../bulk_imports/file_download_service.rb | 9 +- .../chat_names/authorize_user_service.rb | 12 +- app/services/ci/archive_trace_service.rb | 4 +- .../ci/deployments/destroy_service.rb | 18 + app/services/ci/destroy_pipeline_service.rb | 2 +- .../ci/job_artifacts/create_service.rb | 2 + .../ci/job_artifacts/destroy_batch_service.rb | 4 +- .../ci/list_config_variables_service.rb | 4 +- .../ci/parse_dotenv_artifact_service.rb | 2 +- app/services/ci/register_job_service.rb | 18 + app/services/ci/retry_job_service.rb | 12 +- .../ci/runners/assign_runner_service.rb | 10 +- .../ci/runners/bulk_delete_runners_service.rb | 36 + .../process_runner_version_update_service.rb | 27 + ...oncile_existing_runner_versions_service.rb | 14 +- .../ci/runners/register_runner_service.rb | 4 +- .../reset_registration_token_service.rb | 10 +- .../ci/runners/unassign_runner_service.rb | 10 +- .../ci/runners/unregister_runner_service.rb | 1 + app/services/ci/stuck_builds/drop_helpers.rb | 12 +- app/services/ci/track_failed_build_service.rb | 49 + app/services/ci/update_build_state_service.rb | 2 +- .../alert_management/alert_processing.rb | 21 +- .../concerns/work_items/widgetable_service.rb | 2 +- .../database/consistency_check_service.rb | 2 +- .../deployments/update_environment_service.rb | 8 +- .../generate_image_versions_service.rb | 2 +- app/services/error_tracking/base_service.rb | 2 +- app/services/google_cloud/base_service.rb | 2 +- .../create_cloudsql_instance_service.rb | 74 + .../google_cloud/enable_cloudsql_service.rb | 23 + .../get_cloudsql_instances_service.rb | 18 + .../setup_cloudsql_instance_service.rb | 80 +- app/services/groups/destroy_service.rb | 13 + .../groups/import_export/export_service.rb | 20 +- .../groups/import_export/import_service.rb | 8 +- app/services/groups/transfer_service.rb | 17 +- app/services/groups/update_service.rb | 28 +- app/services/import/prepare_service.rb | 31 + .../timeline_events/create_service.rb | 20 + .../timeline_events/update_service.rb | 2 +- app/services/issuable/clone/base_service.rb | 1 + .../issuable/common_system_notes_service.rb | 15 +- .../issuable/import_csv/base_service.rb | 16 +- app/services/issues/clone_service.rb | 12 +- app/services/issues/create_service.rb | 2 +- app/services/issues/export_csv_service.rb | 36 +- .../issues/prepare_import_csv_service.rb | 19 + app/services/issues/update_service.rb | 7 + app/services/jira/requests/base.rb | 8 +- .../merge_requests/approval_service.rb | 57 +- app/services/merge_requests/base_service.rb | 18 - ...bulk_remove_attention_requested_service.rb | 28 - app/services/merge_requests/close_service.rb | 1 - .../create_approval_event_service.rb | 11 + .../merge_requests/create_pipeline_service.rb | 3 +- .../execute_approval_hooks_service.rb | 13 + .../handle_assignees_change_service.rb | 4 - .../mergeability/check_base_service.rb | 8 +- .../check_broken_status_service.rb | 8 +- .../mergeability/check_ci_status_service.rb | 8 +- .../check_discussions_status_service.rb | 8 +- .../check_draft_status_service.rb | 8 +- .../mergeability/check_open_status_service.rb | 8 +- .../mergeability/run_checks_service.rb | 30 +- .../mergeability_check_service.rb | 4 +- .../merge_requests/post_merge_service.rb | 1 - .../push_options_handler_service.rb | 2 +- .../merge_requests/remove_approval_service.rb | 1 - .../remove_attention_requested_service.rb | 50 - app/services/merge_requests/reopen_service.rb | 2 - .../request_attention_service.rb | 60 - .../toggle_attention_requested_service.rb | 68 - .../update_assignees_service.rb | 23 +- .../update_reviewers_service.rb | 44 + app/services/merge_requests/update_service.rb | 36 +- app/services/notes/build_service.rb | 8 + app/services/notes/create_service.rb | 24 +- app/services/notes/destroy_service.rb | 3 +- app/services/notes/update_service.rb | 3 +- .../notification_recipients/build_service.rb | 4 - .../builder/attention_requested.rb | 23 - app/services/notification_service.rb | 10 +- .../conan/create_package_file_service.rb | 6 +- .../packages/create_package_file_service.rb | 10 +- .../debian/create_package_file_service.rb | 10 +- .../debian/extract_metadata_service.rb | 8 +- .../packages/npm/create_package_service.rb | 6 +- .../projects/alerting/notify_service.rb | 2 +- app/services/projects/create_service.rb | 26 +- app/services/projects/fork_service.rb | 22 +- .../projects/import_export/export_service.rb | 35 +- .../import_export/relation_export_service.rb | 95 + .../lfs_pointers/lfs_download_service.rb | 2 +- .../prometheus/alerts/notify_service.rb | 2 +- app/services/projects/transfer_service.rb | 14 + .../projects/update_remote_mirror_service.rb | 10 +- app/services/projects/update_service.rb | 14 + .../protected_branches/base_service.rb | 4 + .../protected_branches/cache_service.rb | 68 + .../protected_branches/create_service.rb | 2 + .../protected_branches/destroy_service.rb | 2 +- .../protected_branches/update_service.rb | 2 + app/services/releases/create_service.rb | 4 - .../resource_events/change_labels_service.rb | 14 + .../ci_configuration/sast_parser_service.rb | 6 +- app/services/system_note_service.rb | 54 +- .../system_notes/issuables_service.rb | 84 +- .../system_notes/time_tracking_service.rb | 71 +- app/services/timelogs/base_service.rb | 21 +- app/services/timelogs/create_service.rb | 45 + app/services/timelogs/delete_service.rb | 16 +- app/services/todo_service.rb | 5 - .../destroy/destroyed_issuable_service.rb | 7 +- app/services/topics/merge_service.rb | 64 + app/services/uploads/destroy_service.rb | 51 + .../dismiss_namespace_callout_service.rb | 11 + .../users/dismiss_project_callout_service.rb | 11 + app/services/users/update_service.rb | 2 +- .../web_hooks/admin_destroy_service.rb | 20 + app/services/web_hooks/destroy_service.rb | 24 +- .../web_hooks/log_execution_service.rb | 25 - app/services/webauthn/authenticate_service.rb | 2 + .../work_items/create_and_link_service.rb | 19 +- .../work_items/parent_links/create_service.rb | 4 +- .../parent_links/destroy_service.rb | 4 +- app/services/work_items/update_service.rb | 4 +- .../assignees_service/update_service.rb | 36 + .../work_items/widgets/base_service.rb | 9 +- .../description_service/update_service.rb | 8 +- .../widgets/hierarchy_service/base_service.rb | 15 +- .../update_service.rb | 15 + .../widgets/weight_service/update_service.rb | 15 - app/uploaders/avatar_uploader.rb | 4 +- .../design_v432x230_uploader.rb | 4 +- app/uploaders/favicon_uploader.rb | 8 +- app/uploaders/file_uploader.rb | 4 +- app/uploaders/object_storage.rb | 10 +- .../build_metadata_id_tokens.json | 22 + .../json_schemas/cyclonedx_report.json | 1697 + .../application_settings/_ci_cd.html.haml | 2 +- .../_default_branch.html.haml | 2 +- .../_diff_limits.html.haml | 4 +- .../_repository_storage.html.haml | 2 +- .../_runner_registrars_form.html.haml | 2 +- .../application_settings/_snowplow.html.haml | 2 +- .../application_settings/_usage.html.haml | 4 +- .../application_settings/_whats_new.html.haml | 2 +- .../appearances/_form.html.haml | 2 +- app/views/admin/applications/index.html.haml | 3 - app/views/admin/dashboard/index.html.haml | 2 +- app/views/admin/groups/_form.html.haml | 2 +- app/views/admin/hooks/edit.html.haml | 4 +- .../admin/identities/_identity.html.haml | 28 +- app/views/admin/identities/index.html.haml | 28 +- app/views/admin/labels/_label.html.haml | 2 +- app/views/admin/runners/show.html.haml | 1 + app/views/admin/users/_head.html.haml | 2 +- app/views/ci/variables/_index.html.haml | 7 +- .../_gitlab_integration_form.html.haml | 2 +- .../_cloud_provider_button.html.haml | 2 +- app/views/dashboard/_groups_head.html.haml | 2 +- app/views/devise/passwords/new.html.haml | 2 +- app/views/devise/registrations/new.html.haml | 1 + app/views/devise/sessions/_new_base.html.haml | 5 +- .../_new_base_user_login_label.html.haml | 2 +- app/views/devise/sessions/new.html.haml | 5 +- .../devise/sessions/two_factor.html.haml | 4 +- app/views/devise/shared/_footer.html.haml | 1 + .../devise/shared/_omniauth_box.html.haml | 9 +- app/views/devise/shared/_signup_box.html.haml | 16 +- .../_signup_omniauth_provider_list.haml | 31 +- .../shared/_signup_omniauth_providers.haml | 5 +- app/views/events/event/_push.html.haml | 7 +- app/views/groups/_home_panel.html.haml | 5 +- app/views/groups/_new_group_fields.html.haml | 45 +- app/views/groups/crm/contacts/index.html.haml | 2 +- .../groups/dependency_proxies/show.html.haml | 4 +- app/views/groups/milestones/_form.html.haml | 2 +- app/views/groups/new.html.haml | 3 +- app/views/groups/runners/show.html.haml | 14 +- app/views/groups/settings/_advanced.html.haml | 2 +- .../settings/access_tokens/index.html.haml | 2 +- .../ci_cd/_auto_devops_form.html.haml | 2 +- .../groups/settings/ci_cd/show.html.haml | 2 +- app/views/import/_githubish_status.html.haml | 6 +- .../_google_tag_manager_head.html.haml | 19 + app/views/layouts/_snowplow.html.haml | 7 +- app/views/layouts/component_preview.html.haml | 5 + app/views/layouts/devise.html.haml | 78 +- app/views/layouts/group.html.haml | 4 +- .../header/_current_user_dropdown.html.haml | 2 +- .../_current_user_dropdown_item.html.haml | 4 +- app/views/layouts/header/_default.html.haml | 23 +- .../_storage_enforcement_banner.html.haml | 11 +- .../layouts/nav/sidebar/_admin.html.haml | 6 +- .../layouts/nav/sidebar/_profile.html.haml | 2 +- app/views/layouts/profile.html.haml | 3 +- app/views/layouts/project.html.haml | 4 +- .../approved_merge_request_email.text.haml | 2 +- ...on_requested_merge_request_email.html.haml | 2 - ...ion_requested_merge_request_email.text.erb | 1 - .../closed_merge_request_email.text.haml | 2 +- .../member_access_requested_email.html.haml | 3 +- .../member_invite_accepted_email.html.haml | 9 +- .../member_invite_accepted_email.text.erb | 7 +- .../member_invite_declined_email.html.haml | 12 +- .../merge_request_status_email.text.haml | 2 +- .../merge_request_unmergeable_email.html.haml | 2 +- .../merge_request_unmergeable_email.text.haml | 2 +- ...rge_when_pipeline_succeeds_email.text.haml | 2 +- .../merged_merge_request_email.html.haml | 2 +- .../merged_merge_request_email.text.haml | 2 +- ...ew_mention_in_merge_request_email.text.erb | 2 +- .../notify/new_merge_request_email.html.haml | 2 +- .../notify/new_merge_request_email.text.erb | 2 +- .../unapproved_merge_request_email.text.haml | 2 +- .../notify/user_auto_banned_email.html.haml | 9 - .../notify/user_auto_banned_email.text.erb | 7 - app/views/profiles/emails/index.html.haml | 43 +- app/views/profiles/keys/index.html.haml | 6 + app/views/profiles/preferences/show.html.haml | 2 +- app/views/profiles/show.html.haml | 2 +- .../profiles/two_factor_auths/show.html.haml | 27 +- app/views/projects/_commit_button.html.haml | 2 +- app/views/projects/_home_panel.html.haml | 8 +- app/views/projects/_last_push.html.haml | 6 +- .../projects/_new_project_fields.html.haml | 36 +- app/views/projects/_transfer.html.haml | 2 +- .../projects/_visibility_modal.html.haml | 4 +- app/views/projects/blob/_editor.html.haml | 2 +- app/views/projects/branches/_branch.html.haml | 4 +- app/views/projects/branches/_panel.html.haml | 13 +- .../projects/buttons/_remove_tag.html.haml | 2 +- app/views/projects/buttons/_star.html.haml | 4 +- .../projects/ci/secure_files/show.html.haml | 3 - ..._different_email_signature_badge.html.haml | 2 +- .../projects/commits/_commit_list.html.haml | 21 +- app/views/projects/commits/_commits.html.haml | 2 +- app/views/projects/commits/show.html.haml | 5 +- app/views/projects/compare/show.html.haml | 8 +- app/views/projects/diffs/_diffs.html.haml | 2 +- .../configuration/index.html.haml | 2 +- .../google_cloud/databases/index.html.haml | 2 +- .../google_cloud/deployments/index.html.haml | 2 +- .../google_cloud/gcp_regions/index.html.haml | 2 +- .../service_accounts/index.html.haml | 2 +- app/views/projects/graphs/charts.html.haml | 15 +- app/views/projects/hook_logs/_index.html.haml | 11 - app/views/projects/hooks/edit.html.haml | 2 +- app/views/projects/imports/new.html.haml | 18 +- .../projects/issues/_new_branch.html.haml | 3 +- .../projects/issues/_related_issues.html.haml | 4 +- .../issues/_work_item_links.html.haml | 2 +- app/views/projects/labels/index.html.haml | 6 +- ...close_reopen_draft_report_toggle.html.haml | 7 +- .../projects/merge_requests/show.html.haml | 13 +- app/views/projects/milestones/_form.html.haml | 2 +- app/views/projects/new.html.haml | 2 +- app/views/projects/pages/_access.html.haml | 8 +- app/views/projects/pages/_header.html.haml | 11 + app/views/projects/pages/_list.html.haml | 69 +- .../projects/pages/_no_domains.html.haml | 6 +- app/views/projects/pages/_use.html.haml | 15 +- app/views/projects/pages/_waiting.html.haml | 13 + app/views/projects/pages/disabled.html.haml | 4 + app/views/projects/pages/new.html.haml | 7 + app/views/projects/pages/show.html.haml | 34 +- .../_pipeline_schedule.html.haml | 2 +- .../pipeline_schedules/index.html.haml | 2 + app/views/projects/pipelines/charts.html.haml | 1 + .../project_templates/_template.html.haml | 3 +- .../shared/_create_protected_branch.html.haml | 8 +- .../projects/runners/_group_runners.html.haml | 6 +- .../settings/access_tokens/index.html.haml | 2 +- .../settings/ci_cd/_autodevops_form.html.haml | 2 +- .../projects/settings/ci_cd/show.html.haml | 2 +- .../settings/integrations/edit.html.haml | 3 +- .../settings/operations/show.html.haml | 28 +- .../cleanup_tags.html.haml | 6 + .../packages_and_registries/show.html.haml | 14 +- .../tags/_edit_release_button.html.haml | 20 +- .../projects/tags/_release_link.html.haml | 4 + app/views/projects/tags/_tag.html.haml | 7 +- .../projects/tags/releases/edit.html.haml | 19 - app/views/projects/tags/show.html.haml | 13 +- app/views/projects/triggers/_index.html.haml | 2 +- .../projects/triggers/_trigger.html.haml | 4 +- app/views/search/_results.html.haml | 2 +- ...devops_implicitly_enabled_banner.html.haml | 2 +- app/views/shared/_broadcast_message.html.haml | 4 +- app/views/shared/_clone_panel.html.haml | 2 +- app/views/shared/_file_highlight.html.haml | 10 +- app/views/shared/_group_form.html.haml | 6 - .../_help_dropdown_forum_link.html.haml | 2 +- app/views/shared/_label_row.html.haml | 4 +- .../shared/_new_project_item_select.html.haml | 4 +- app/views/shared/_ref_switcher.html.haml | 4 +- .../_remote_mirror_update_button.html.haml | 2 +- app/views/shared/_search_settings.html.haml | 2 +- .../shared/_sidebar_toggle_button.html.haml | 2 +- .../shared/access_tokens/_form.html.haml | 6 +- .../shared/access_tokens/_table.html.haml | 2 +- app/views/shared/admin/_admin_note.html.haml | 6 +- .../shared/blob/_markdown_buttons.html.haml | 6 +- .../shared/deploy_tokens/_form.html.haml | 2 +- .../shared/empty_states/_labels.html.haml | 4 +- .../empty_states/_priority_labels.html.haml | 2 +- .../shared/empty_states/_topics.html.haml | 2 +- .../shared/empty_states/_wikis.html.haml | 2 +- .../empty_states/_wikis_layout.html.haml | 2 +- .../_group_name_and_path_fields.html.haml | 3 +- .../shared/groups/_search_form.html.haml | 2 +- .../hook_logs/_index.html.haml | 0 .../shared/issuable/_assignees.html.haml | 7 +- app/views/shared/issuable/_form.html.haml | 8 +- .../shared/issuable/_label_dropdown.html.haml | 4 +- .../_merge_request_assignees.html.haml | 8 - .../_merge_request_reviewers.html.haml | 8 - .../issuable/_milestone_dropdown.html.haml | 4 +- .../shared/issuable/_reviewers.html.haml | 7 +- .../shared/issuable/_search_bar.html.haml | 10 - app/views/shared/issuable/_sidebar.html.haml | 10 +- .../issuable/_sidebar_reviewers.html.haml | 2 +- .../shared/issuable/form/_metadata.html.haml | 4 +- .../_metadata_issuable_assignee.html.haml | 2 +- .../shared/issuable/form/_title.html.haml | 2 +- .../issue_type/_details_content.html.haml | 2 +- app/views/shared/labels/_form.html.haml | 10 +- app/views/shared/labels/_nav.html.haml | 4 +- app/views/shared/members/_requests.html.haml | 15 +- .../shared/milestones/_form_dates.html.haml | 4 +- app/views/shared/milestones/_header.html.haml | 4 +- app/views/shared/notes/_hints.html.haml | 9 +- .../shared/projects/_search_form.html.haml | 2 +- app/views/shared/projects/_topics.html.haml | 12 +- .../_update_protected_branch.html.haml | 2 +- app/views/users/show.html.haml | 17 +- app/workers/all_queues.yml | 96 +- app/workers/archive_trace_worker.rb | 5 - app/workers/build_finished_worker.rb | 9 - app/workers/build_hooks_worker.rb | 6 +- app/workers/ci/build_finished_worker.rb | 3 +- app/workers/ci/cancel_pipeline_worker.rb | 25 + .../process_runner_version_update_worker.rb | 25 + ...le_existing_runner_versions_cron_worker.rb | 18 +- app/workers/ci/track_failed_build_worker.rb | 26 + app/workers/concerns/waitable_worker.rb | 6 +- app/workers/email_receiver_worker.rb | 3 - app/workers/emails_on_push_worker.rb | 18 +- .../stage/import_issue_events_worker.rb | 28 +- .../create_approval_event_worker.rb | 34 + .../create_approval_note_worker.rb | 32 + .../execute_approval_hooks_worker.rb | 37 + .../resolve_todos_after_approval_worker.rb | 32 + app/workers/new_issue_worker.rb | 10 +- .../pages/invalidate_domain_cache_worker.rb | 8 +- app/workers/post_receive.rb | 1 + app/workers/project_cache_worker.rb | 3 +- .../import_export/relation_export_worker.rb | 26 + .../service_desk_email_receiver_worker.rb | 3 - .../update_project_statistics_worker.rb | 13 +- .../users/deactivate_dormant_users_worker.rb | 36 +- app/workers/x509_issuer_crl_check_worker.rb | 26 +- config/application.rb | 22 +- config/environments/development.rb | 10 + config/environments/production.rb | 13 +- config/environments/test.rb | 5 + ...project_management_issue_added_to_epic.yml | 20 - ..._project_management_issue_changed_epic.yml | 20 - ...ect_management_issue_iteration_changed.yml | 20 - ...ect_management_issue_removed_from_epic.yml | 20 - ...roject_management_issue_weight_changed.yml | 20 - ...ions_class_perform_integrations_action.yml | 23 + ..._issue_actions_perform_issue_acitons_.yml} | 17 +- ..._action_perform_analytics_usage_action.yml | 25 + config/feature_categories.yml | 8 +- ..._async_project_authorizations_refresh.yml} | 8 +- .../development/approval_rules_pagination.yml | 2 +- .../development/archive_rate_limit.yml | 2 +- ...n_uploads.yml => async_after_approval.yml} | 8 +- .../development/async_commit_diff_files.yml | 2 +- ...namespace_excessive_projects_download.yml} | 10 +- .../branch_list_keyset_pagination.yml | 2 +- .../changelog_commits_limitation.yml | 2 +- .../ci_destroy_unlocked_job_artifacts.yml | 2 +- ...les_if_comparison_with_regexp_variable.yml | 8 - .../ci_job_artifacts_backlog_work.yml | 2 +- ....yml => ci_new_public_oss_cost_factor.yml} | 8 +- ...d_url.yml => ci_rules_changes_compare.yml} | 8 +- ..._stop_expanding_file_vars_for_runners.yml} | 8 +- .../ci_update_unlocked_job_artifacts.yml | 2 +- .../datadog_integration_logs_collection.yml | 2 +- ...> disabled_mr_discussions_redis_cache.yml} | 8 +- .../enforce_security_report_validation.yml | 8 - ...ml => etag_merge_request_diff_batches.yml} | 10 +- .../execute_build_hooks_inline.yml | 8 + .../development/file_line_blame.yml | 8 + .../fix_sliding_list_partitioning.yml | 8 - ...ected_environment_settings_permission.yml} | 8 +- ...sh_based_cache_for_protected_branches.yml} | 8 +- ...eam_pipeline.yml => hash_oauth_tokens.yml} | 10 +- ...ml => import_export_web_upload_stream.yml} | 8 +- .../import_release_authors_from_github.yml | 8 - .../incident_timeline_events_from_labels.yml | 8 + ..._shares_in_project_transfer_locations.yml} | 8 +- .../increase_page_size_exponentially.yml | 2 +- ...earch.yml => job_log_jump_to_failures.yml} | 8 +- .../development/json_wrapper_legacy_mode.yml | 2 +- .../lfk_automatic_partition_creation.yml | 8 - .../lfk_automatic_partition_dropping.yml | 8 - .../limit_reviewer_and_assignee_size.yml | 8 + .../development/mr_review_submit_comment.yml | 2 +- .../new_graphql_keyset_pagination.yml | 8 - .../only_positive_pagination_values.yml | 8 + ...ected_environment_settings_permission.yml} | 8 +- .../development/paginated_mr_discussions.yml | 2 +- ...sonal_access_tokens_scoped_to_projects.yml | 8 - ..._intelligence_database_event_tracking.yml} | 9 +- .../rate_limit_gitlab_shell_by_ip.yml | 8 + ..._affected_projects_on_group_membership.yml | 8 - ..._completed_metrics_on_build_completion.yml | 8 + ...sitory_archive_hotlinking_interception.yml | 2 +- ...t_events_ui.yml => restyle_login_page.yml} | 8 +- ...widget.yml => searchable_fork_targets.yml} | 10 +- .../development/subgroups_approval_rules.yml | 2 +- .../development/timelog_categories.yml | 8 + .../track_agent_users_using_ci_tunnel.yml | 8 + ...k_gitlab_schema_in_current_transaction.yml | 8 - ...view_ui.yml => trial_email_validation.yml} | 10 +- ..._fork_network_upon_visibility_decrease.yml | 2 +- .../update_vuln_identifiers_flag.yml | 2 +- .../use_pipeline_wizard_for_pages.yml | 8 + .../development/use_traversal_ids.yml | 2 +- .../use_traversal_ids_for_root_ancestor.yml | 2 +- .../feature_flags/development/work_items.yml | 2 +- .../work_items_create_from_markdown.yml | 8 + .../development/work_items_hierarchy.yml | 2 +- .../workhorse_archive_cache_disabled.yml | 2 +- .../ops/authenticate_markdown_api.yml | 8 + .../batched_migrations_health_status_wal.yml | 8 + ...ci_build_dependencies_artifacts_logger.yml | 8 + .../ops/database_async_index_destruction.yml | 8 + .../github_importer_issue_events_import.yml | 2 +- ...er_single_endpoint_issue_events_import.yml | 8 + .../performance_bar_stats.yml | 2 +- .../report_jemalloc_stats.yml} | 10 +- .../skip_rugged_auto_detect.yml} | 10 +- config/gitlab.yml.example | 2 +- config/initializers/00_deprecations.rb | 33 + config/initializers/0_log_deprecations.rb | 19 + config/initializers/1_settings.rb | 11 +- .../initializers/active_record_data_types.rb | 10 +- config/initializers/database_config.rb | 6 + .../initializers/database_query_analyzers.rb | 8 +- config/initializers/default_url_options.rb | 4 +- config/initializers/diagnostic_reports.rb | 11 + config/initializers/doorkeeper.rb | 2 + config/initializers/lookbook.rb | 14 + config/initializers/memory_watchdog.rb | 5 +- .../rest-client-hostname_override.rb | 4 +- config/initializers/static_files.rb | 2 +- config/initializers/truncato.rb | 6 - config/initializers/wikicloth_redos_patch.rb | 2 +- .../000_inflections.rb | 1 + config/jsdocs.config.js | 14 - config/locales/devise.zh-cn.yml | 70 + config/metrics/aggregates/code_review.yml | 72 + config/metrics/aggregates/common.yml | 13 +- ...management_total_unique_counts_monthly.yml | 3 + ...line_event_total_unique_counts_monthly.yml | 1 - ...quest_widget_test_summary_view_monthly.yml | 25 + ...st_summary_full_report_clicked_monthly.yml | 25 + ...est_widget_test_summary_expand_monthly.yml | 25 + ...et_test_summary_expand_success_monthly.yml | 25 + ...et_test_summary_expand_warning_monthly.yml | 25 + ...get_test_summary_expand_failed_monthly.yml | 25 + ...ates_security_fortify_fod_sast_monthly.yml | 25 + ...icit_security_fortify_fod_sast_monthly.yml | 25 + ...users_updating_work_item_dates_monthly.yml | 25 + ...uest_widget_accessibility_view_monthly.yml | 25 + ...essibility_full_report_clicked_monthly.yml | 25 + ...st_widget_accessibility_expand_monthly.yml | 25 + ...t_accessibility_expand_success_monthly.yml | 25 + ...t_accessibility_expand_warning_monthly.yml | 25 + ...et_accessibility_expand_failed_monthly.yml | 25 + ...quest_widget_code_quality_view_monthly.yml | 25 + ...de_quality_full_report_clicked_monthly.yml | 25 + ...est_widget_code_quality_expand_monthly.yml | 25 + ...et_code_quality_expand_success_monthly.yml | 25 + ...et_code_quality_expand_warning_monthly.yml | 25 + ...get_code_quality_expand_failed_monthly.yml | 25 + ..._request_widget_terraform_view_monthly.yml | 25 + ..._terraform_full_report_clicked_monthly.yml | 25 + ...equest_widget_terraform_expand_monthly.yml | 25 + ...idget_terraform_expand_success_monthly.yml | 25 + ...idget_terraform_expand_warning_monthly.yml | 25 + ...widget_terraform_expand_failed_monthly.yml | 25 + ...51_agent_users_using_ci_tunnel_monthly.yml | 26 + ..._management_total_unique_counts_weekly.yml | 3 + ...eline_event_total_unique_counts_weekly.yml | 1 - ...equest_widget_test_summary_view_weekly.yml | 25 + ...est_summary_full_report_clicked_weekly.yml | 25 + ...uest_widget_test_summary_expand_weekly.yml | 25 + ...get_test_summary_expand_success_weekly.yml | 25 + ...get_test_summary_expand_warning_weekly.yml | 25 + ...dget_test_summary_expand_failed_weekly.yml | 25 + ...lates_security_fortify_fod_sast_weekly.yml | 25 + ...licit_security_fortify_fod_sast_weekly.yml | 25 + ..._users_updating_work_item_dates_weekly.yml | 25 + ...quest_widget_accessibility_view_weekly.yml | 25 + ...cessibility_full_report_clicked_weekly.yml | 25 + ...est_widget_accessibility_expand_weekly.yml | 25 + ...et_accessibility_expand_success_weekly.yml | 25 + ...et_accessibility_expand_warning_weekly.yml | 25 + ...get_accessibility_expand_failed_weekly.yml | 25 + ...equest_widget_code_quality_view_weekly.yml | 25 + ...ode_quality_full_report_clicked_weekly.yml | 25 + ...uest_widget_code_quality_expand_weekly.yml | 25 + ...get_code_quality_expand_success_weekly.yml | 25 + ...get_code_quality_expand_warning_weekly.yml | 25 + ...dget_code_quality_expand_failed_weekly.yml | 25 + ...e_request_widget_terraform_view_weekly.yml | 25 + ...t_terraform_full_report_clicked_weekly.yml | 25 + ...request_widget_terraform_expand_weekly.yml | 25 + ...widget_terraform_expand_success_weekly.yml | 25 + ...widget_terraform_expand_warning_weekly.yml | 25 + ..._widget_terraform_expand_failed_weekly.yml | 25 + ...644_agent_users_using_ci_tunnel_weekly.yml | 26 + .../counts_all/20210216180752_keys.yml | 2 +- ...request_widget_test_summary_count_view.yml | 24 + ...test_summary_count_full_report_clicked.yml | 24 + ...quest_widget_test_summary_count_expand.yml | 24 + ...dget_test_summary_count_expand_success.yml | 24 + ...dget_test_summary_count_expand_warning.yml | 24 + ...idget_test_summary_count_expand_failed.yml | 24 + ...equest_widget_accessibility_count_view.yml | 24 + ...ccessibility_count_full_report_clicked.yml | 24 + ...uest_widget_accessibility_count_expand.yml | 24 + ...get_accessibility_count_expand_success.yml | 24 + ...get_accessibility_count_expand_warning.yml | 24 + ...dget_accessibility_count_expand_failed.yml | 24 + ...request_widget_code_quality_count_view.yml | 24 + ...code_quality_count_full_report_clicked.yml | 24 + ...quest_widget_code_quality_count_expand.yml | 24 + ...dget_code_quality_count_expand_success.yml | 24 + ...dget_code_quality_count_expand_warning.yml | 24 + ...idget_code_quality_count_expand_failed.yml | 24 + ...ge_request_widget_terraform_count_view.yml | 24 + ...et_terraform_count_full_report_clicked.yml | 24 + ..._request_widget_terraform_count_expand.yml | 24 + ..._widget_terraform_count_expand_success.yml | 24 + ..._widget_terraform_count_expand_warning.yml | 24 + ...t_widget_terraform_count_expand_failed.yml | 24 + ...141715_groups_inheriting_pumble_active.yml | 21 + .../20220802141715_groups_pumble_active.yml | 21 + ...20220802141715_instances_pumble_active.yml | 21 + ...1715_projects_inheriting_pumble_active.yml | 21 + .../20220802141715_projects_pumble_active.yml | 21 + config/routes.rb | 12 +- config/routes/admin.rb | 1 + config/routes/development.rb | 1 + config/routes/profile.rb | 8 +- config/routes/project.rb | 12 +- config/routes/repository.rb | 5 +- config/routes/unmatched_project.rb | 8 +- config/routes/uploads.rb | 18 +- config/routes/user.rb | 2 + config/settings.rb | 6 +- config/sidekiq_queues.yml | 20 + config/webpack.config.js | 9 +- config/webpack.vendor.config.js | 1 - danger/customer_success/Dangerfile | 3 + danger/plugins/customer_success.rb | 9 + danger/roulette/Dangerfile | 2 +- .../14-0-nfs-fot-git-repository-storage.yml | 2 +- .../14-7-deprecate-artifacts-keyword.yml | 2 +- ...cation-vulnerability-report-state-sort.yml | 7 +- data/deprecations/15-3-deprecate-redis-5.yml | 16 + data/deprecations/15-3-omniauth-cas3.yml | 16 + data/deprecations/15-3-omniauth-crowd.yml | 17 + .../15-3-pipeline_activity_limit.yml | 33 + .../16-0-security_report_schemas_v14-x-x.yml | 27 + .../templates/_deprecation_template.md.erb | 2 +- .../15_0/15-0-removal-artifacts-keyword.yml | 2 +- ...al_manage_repository_push_audit_event.yml} | 0 .../templates/_removal_template.md.erb | 2 +- data/whats_new/202008180001_12_10.yml | 40 +- data/whats_new/202008180002_13_0.yml | 40 +- data/whats_new/202008180003_13_01.yml | 32 +- data/whats_new/202008210001_13_02.yml | 32 +- data/whats_new/202009150001_13_03.yml | 32 +- data/whats_new/202009300001_13_04.yml | 40 +- data/whats_new/202010230001_13_05.yml | 48 +- data/whats_new/202011230001_13_06.yml | 40 +- data/whats_new/202012160001_13_07.yml | 32 +- data/whats_new/202101140001_13_08.yml | 56 +- data/whats_new/202102180001_13_09.yml | 80 +- data/whats_new/202103220001_13_10.yml | 56 +- data/whats_new/202104220001_13_11.yml | 72 +- data/whats_new/202105220001_13_12.yml | 80 +- data/whats_new/202106220001_14_0.yml | 96 +- data/whats_new/202107220001_14_1.yml | 80 +- data/whats_new/202108190001_14_02.yml | 56 +- data/whats_new/202109200001_14_03.yml | 56 +- data/whats_new/2021102000001_14_04.yml | 40 +- data/whats_new/2021111800001_14_05.yml | 48 +- data/whats_new/202112200001_14_06.yml | 40 +- data/whats_new/202201200001_14_07.yml | 24 +- data/whats_new/202202210001_14_08.yml | 48 +- data/whats_new/202203210001_14_09.yml | 48 +- data/whats_new/202204210001_14_10.yml | 32 +- data/whats_new/202205220001_15_0.yml | 64 +- data/whats_new/202206220001_15_1.yml | 36 +- data/whats_new/202207220001_15_2.yml | 89 + .../templates/YYYYMMDD0001_XX_YY.yml | 8 +- db/docs/README.md | 6 + db/docs/integrations.yml | 1 + db/docs/member_roles.yml | 10 + db/docs/ml_candidate_metrics.yml | 10 + db/docs/ml_candidate_params.yml | 10 + db/docs/ml_candidates.yml | 10 + db/docs/ml_experiments.yml | 10 + db/docs/namespace_details.yml | 9 + db/docs/project_statistics.yml | 8 +- db/docs/user_project_callouts.yml | 9 + db/fixtures/development/14_pipelines.rb | 2 + db/fixtures/development/18_abuse_reports.rb | 2 +- ...d_environments_add_index_and_constraint.rb | 2 +- ...ate_existing_dast_builds_with_variables.rb | 70 +- ...10804150320_create_base_work_item_types.rb | 6 +- ...10831203408_upsert_base_work_item_types.rb | 6 +- ...d_index_on_name_and_id_to_public_groups.rb | 5 +- ...20220316022505_create_namespace_details.rb | 21 + ...roject_deletion_to_application_settings.rb | 4 +- ...4_create_sync_namespace_details_trigger.rb | 70 + ...add_ding_talk_into_application_settings.rb | 4 +- ...220513093615_add_ding_talk_tracker_data.rb | 2 +- ..._sync_project_namespace_details_trigger.rb | 68 + ...code_owner_removals_to_project_settings.rb | 9 + .../20220627061008_add_fei_shu_integration.rb | 4 +- ..._chat_name_service_id_to_integration_id.rb | 13 + ...ntegration_service_id_to_integration_id.rb | 13 + .../20220707181910_create_member_roles.rb | 15 + ...707181920_add_member_role_id_to_members.rb | 13 + ...30_add_member_roles_relation_to_members.rb | 19 + ...limits_max_size_cyclonedx_report_column.rb | 7 + ...ey_to_vulnerability_merge_request_links.rb | 4 +- ...ey_to_vulnerability_merge_request_links.rb | 4 +- ...acker_data_service_id_to_integration_id.rb | 13 + ...acker_data_service_id_to_integration_id.rb | 13 + ...d_limit_allowlist_to_namespace_settings.rb | 11 + ...mespace_id_to_vulnerability_reads_table.rb | 9 + ...lity_reads_triggers_to_set_namespace_id.rb | 159 + ...20210446_add_start_date_to_issues_table.rb | 9 + ...22123318_update_delayed_deletion_period.rb | 27 + ...te_function_gitlab_schema_prevent_write.rb | 32 + ...ck_writes_function_disabled_via_setting.rb | 36 + ...r_id_to_vulnerability_state_transitions.rb | 7 + ...ownload_limit_allowlist_size_constraint.rb | 17 + ...154012_ensure_sbom_occurrences_is_empty.rb | 18 + ...13_add_component_id_to_sbom_occurrences.rb | 17 + ..._index_to_sbom_occurrences_component_id.rb | 15 + ...mponent_foreign_key_to_sbom_occurrences.rb | 18 + ...6154016_make_component_version_nullable.rb | 9 + ..._project_membership_namespace_id_column.rb | 20 + ...8114136_make_ssh_signature_key_nullable.rb | 9 + ...onal_access_tokens_on_id_and_created_at.rb | 15 + ...dd_deactivate_dormant_user_time_setting.rb | 6 + ...20803145637_create_user_project_callout.rb | 19 + ...roject_id_fkey_for_user_project_callout.rb | 15 + ...d_user_id_fkey_for_user_project_callout.rb | 15 + ...pipelines_in_the_parent_project_setting.rb | 8 + ...24_add_timestamps_to_project_statistics.rb | 7 + ...0124_add_id_token_to_ci_builds_metadata.rb | 9 + ...808194857_remove_description_html_limit.rb | 15 + .../20220811092243_create_ml_experiments.rb | 18 + .../20220811092244_create_ml_candidates.rb | 16 + ...220811092245_create_ml_candidate_params.rb | 14 + ...20811092246_create_ml_candidate_metrics.rb | 16 + ...d_ml_candidates_reference_to_experiment.rb | 15 + ...add_ml_experiments_reference_to_project.rb | 15 + ..._payload_event_id_for_bigint_conversion.rb | 2 +- ...acker_data_deployment_type_based_on_url.rb | 21 +- ...45705_finalize_events_bigint_conversion.rb | 2 +- ...ze_ci_builds_stage_id_bigint_conversion.rb | 2 +- ...16_finalize_ci_stages_bigint_conversion.rb | 10 +- ...ze_ci_builds_metadata_bigint_conversion.rb | 2 +- ...push_event_payloads_bigint_conversion_3.rb | 6 +- ...s_for_ci_job_artifact_bigint_conversion.rb | 22 +- ...e_indexes_for_tagging_bigint_conversion.rb | 2 +- ..._indexes_for_ci_stage_bigint_conversion.rb | 10 +- ...py_ci_builds_columns_to_security_scans2.rb | 26 +- ...re_indexes_for_events_bigint_conversion.rb | 7 +- ...lds_metadata_and_ci_build_async_indexes.rb | 8 +- ...dence_id_for_boards_scoped_to_iteration.rb | 6 +- ...57_finalize_ci_builds_bigint_conversion.rb | 6 +- ...335_disable_job_token_scope_when_unused.rb | 45 +- ...opulate_status_column_of_security_scans.rb | 15 +- ..._schedule_backfill_ci_namespace_mirrors.rb | 14 +- ...01_schedule_backfill_ci_project_mirrors.rb | 14 +- ...0_cleanup_backfill_ci_namespace_mirrors.rb | 6 +- ...201_cleanup_backfill_ci_project_mirrors.rb | 6 +- ...20220213103859_remove_integrations_type.rb | 2 +- ...ining_encrypt_integration_property_jobs.rb | 2 +- ...cense_available_for_non_public_projects.rb | 22 +- ...alize_backfill_null_note_discussion_ids.rb | 2 +- ...bility_reads_cluster_agent_id_migration.rb | 16 + ...kfill_vulnerability_reads_cluster_agent.rb | 29 + ...ate_vulnerabilities_project_id_id_index.rb | 22 + ...misassociated_vulnerability_occurrences.rb | 20 + ...ate_index_vulnerabilities_project_id_id.rb | 22 + ...efault_branch_index_for_vulnerabilities.rb | 16 + ...x_for_container_registry_size_migration.rb | 10 +- ...rences_migrated_to_new_structure_column.rb | 21 + ...0707105529_cleanup_chat_name_service_id.rb | 13 + ...21_cleanup_slack_integration_service_id.rb | 13 + ...3_cleanup_issue_tracker_data_service_id.rb | 13 + ...00_cleanup_jira_tracker_data_service_id.rb | 13 + ...715152108_backfill_project_import_level.rb | 22 + ...curity_findings_id_and_partition_number.rb | 15 + ...dex_on_security_findings_unique_columns.rb | 15 + ...x_on_security_findings_uuid_and_scan_id.rb | 15 + ..._primary_key_of_security_findings_table.rb | 29 + ...542_drop_queued_at_index_from_ci_builds.rb | 17 + ...9165537_remove_ci_runners_semver_column.rb | 21 + ...ng_builds_covering_index_from_ci_builds.rb | 26 + ...ement_columns_from_application_settings.rb | 8 + ...3249_remove_token_column_from_ci_builds.rb | 9 + ...dex_on_vulnerability_reads_namespace_id.rb | 18 + ...key_on_vulnerability_reads_namespace_id.rb | 15 + ...license_for_one_member_no_repo_projects.rb | 33 + ...pare_partial_trigram_indexes_for_issues.rb | 23 + ..._license_for_no_issues_no_repo_projects.rb | 33 + ...cense_available_for_non_public_projects.rb | 35 + ...he_namespace_id_for_vulnerability_reads.rb | 23 + ...acker_data_deployment_type_based_on_url.rb | 28 + ...r_fk_to_vulnerability_state_transitions.rb | 20 + ...ate_index_vulnerabilities_common_finder.rb | 21 + ...acy_open_source_license_available_index.rb | 18 + ...ity_reads_namespace_id_with_report_type.rb | 18 + ...d_partial_trigram_index_for_issue_title.rb | 18 + ...ial_trigram_index_for_issue_description.rb | 18 + ...e_migrate_shared_vulnerability_scanners.rb | 34 + ...r_registry_size_into_project_statistics.rb | 37 + ...n_type_new_id_when_active_and_has_group.rb | 18 + ...ove_deactivated_user_highest_role_stats.rb | 27 + ...mp_index_todos_attention_request_action.rb | 18 + ...2352_cleanup_mr_attention_request_todos.rb | 24 + ...ment_to_vulnerability_state_transitions.rb | 10 + ...vulnerability_state_transitions_comment.rb | 13 + ...prepare_index_removal_security_findings.rb | 13 + ...ages_additional_amount_available_column.rb | 11 + ...mp_index_job_artifacts_id_and_expire_at.rb | 23 + db/schema_migrations/20220316022505 | 1 + db/schema_migrations/20220506154054 | 1 + db/schema_migrations/20220524184149 | 1 + db/schema_migrations/20220525201022 | 1 + db/schema_migrations/20220525221133 | 1 + db/schema_migrations/20220603173103 | 1 + db/schema_migrations/20220607082910 | 1 + db/schema_migrations/20220614185644 | 1 + db/schema_migrations/20220619212618 | 1 + db/schema_migrations/20220621192541 | 1 + db/schema_migrations/20220629124942 | 1 + db/schema_migrations/20220707105335 | 1 + db/schema_migrations/20220707105529 | 1 + db/schema_migrations/20220707160707 | 1 + db/schema_migrations/20220707160921 | 1 + db/schema_migrations/20220707181910 | 1 + db/schema_migrations/20220707181920 | 1 + db/schema_migrations/20220707181930 | 1 + db/schema_migrations/20220707190546 | 1 + db/schema_migrations/20220712131513 | 1 + db/schema_migrations/20220712131533 | 1 + db/schema_migrations/20220712144843 | 1 + db/schema_migrations/20220712144900 | 1 + db/schema_migrations/20220715152108 | 1 + db/schema_migrations/20220715185348 | 1 + db/schema_migrations/20220715185436 | 1 + db/schema_migrations/20220715190612 | 1 + db/schema_migrations/20220715191629 | 1 + db/schema_migrations/20220718083945 | 1 + db/schema_migrations/20220719081542 | 1 + db/schema_migrations/20220719165537 | 1 + db/schema_migrations/20220720090354 | 1 + db/schema_migrations/20220720121421 | 1 + db/schema_migrations/20220720123249 | 1 + db/schema_migrations/20220720161816 | 1 + db/schema_migrations/20220720162123 | 1 + db/schema_migrations/20220720171102 | 1 + db/schema_migrations/20220720171801 | 1 + db/schema_migrations/20220720210446 | 1 + db/schema_migrations/20220721031446 | 1 + db/schema_migrations/20220721140252 | 1 + db/schema_migrations/20220722084543 | 1 + db/schema_migrations/20220722110026 | 1 + db/schema_migrations/20220722123318 | 1 + db/schema_migrations/20220722145845 | 1 + db/schema_migrations/20220722150231 | 1 + db/schema_migrations/20220722203840 | 1 + db/schema_migrations/20220723120039 | 1 + db/schema_migrations/20220725150127 | 1 + db/schema_migrations/20220726025516 | 1 + db/schema_migrations/20220726154012 | 1 + db/schema_migrations/20220726154013 | 1 + db/schema_migrations/20220726154014 | 1 + db/schema_migrations/20220726154015 | 1 + db/schema_migrations/20220726154016 | 1 + db/schema_migrations/20220726182310 | 1 + db/schema_migrations/20220726230052 | 1 + db/schema_migrations/20220728114136 | 1 + db/schema_migrations/20220728134255 | 1 + db/schema_migrations/20220729033851 | 1 + db/schema_migrations/20220729052031 | 1 + db/schema_migrations/20220729073603 | 1 + db/schema_migrations/20220801144713 | 1 + db/schema_migrations/20220801150028 | 1 + db/schema_migrations/20220802112102 | 1 + db/schema_migrations/20220802114351 | 1 + db/schema_migrations/20220802132158 | 1 + db/schema_migrations/20220802154757 | 1 + db/schema_migrations/20220802204737 | 1 + db/schema_migrations/20220803042351 | 1 + db/schema_migrations/20220803042352 | 1 + db/schema_migrations/20220803145637 | 1 + db/schema_migrations/20220803154543 | 1 + db/schema_migrations/20220803154758 | 1 + db/schema_migrations/20220804235614 | 1 + db/schema_migrations/20220805001210 | 1 + db/schema_migrations/20220805154101 | 1 + db/schema_migrations/20220808072054 | 1 + db/schema_migrations/20220808131659 | 1 + db/schema_migrations/20220808133824 | 1 + db/schema_migrations/20220808190124 | 1 + db/schema_migrations/20220808194857 | 1 + db/schema_migrations/20220810093742 | 1 + db/schema_migrations/20220811092243 | 1 + db/schema_migrations/20220811092244 | 1 + db/schema_migrations/20220811092245 | 1 + db/schema_migrations/20220811092246 | 1 + db/schema_migrations/20220811092251 | 1 + db/schema_migrations/20220811092253 | 1 + db/structure.sql | 478 +- doc/.vale/gitlab/Admin.yml | 2 +- doc/.vale/gitlab/BadPlurals.yml | 2 +- doc/.vale/gitlab/EOLWhitespace.yml | 2 +- doc/.vale/gitlab/FutureTense.yml | 2 +- doc/.vale/gitlab/HeadingContent.yml | 2 +- doc/.vale/gitlab/HeadingDepth.yml | 13 + doc/.vale/gitlab/MultiLineLinks.yml | 14 + doc/.vale/gitlab/OutdatedVersions.yml | 2 +- doc/.vale/gitlab/Possessive.yml | 2 +- doc/.vale/gitlab/Uppercase.yml | 1 + doc/.vale/gitlab/VersionText.yml | 18 +- doc/.vale/gitlab/VersionTextSingleLine.yml | 13 + .../application_settings_cache.md | 2 +- doc/administration/audit_event_streaming.md | 434 +- doc/administration/audit_events.md | 8 +- doc/administration/audit_reports.md | 2 +- doc/administration/auditor_users.md | 6 + doc/administration/auth/crowd.md | 22 +- .../auth/ldap/img/multi_login.png | Bin 12689 -> 0 bytes doc/administration/auth/ldap/index.md | 139 +- .../auth/ldap/ldap-troubleshooting.md | 20 +- .../auth/ldap/ldap_synchronization.md | 2 +- doc/administration/auth/oidc.md | 10 +- doc/administration/compliance.md | 2 +- .../external_pipeline_validation.md | 6 +- .../disaster_recovery/bring_primary_back.md | 4 +- .../geo/disaster_recovery/index.md | 4 +- .../geo/disaster_recovery/planned_failover.md | 2 +- doc/administration/geo/index.md | 6 +- .../geo/replication/container_registry.md | 167 + .../geo/replication/datatypes.md | 12 +- .../geo/replication/disable_geo.md | 2 +- .../geo/replication/docker_registry.md | 140 +- doc/administration/geo/replication/faq.md | 6 +- .../geo/replication/troubleshooting.md | 68 +- doc/administration/geo/replication/tuning.md | 2 +- .../replication/upgrading_the_geo_sites.md | 15 +- .../replication/version_specific_upgrades.md | 22 +- .../geo/secondary_proxy/index.md | 5 +- doc/administration/geo/setup/database.md | 224 +- doc/administration/geo/setup/index.md | 2 + doc/administration/get_started.md | 6 +- doc/administration/gitaly/configure_gitaly.md | 156 +- doc/administration/gitaly/index.md | 72 +- doc/administration/gitaly/monitoring.md | 4 +- doc/administration/gitaly/praefect.md | 28 +- doc/administration/gitaly/recovery.md | 4 + doc/administration/gitaly/troubleshooting.md | 21 +- doc/administration/incoming_email.md | 3 +- doc/administration/index.md | 5 +- doc/administration/instance_limits.md | 4 +- doc/administration/integration/mailgun.md | 6 +- doc/administration/job_artifacts.md | 2 +- doc/administration/libravatar.md | 118 +- doc/administration/logs.md | 1181 +- .../img/database-query-dialog_v14_3.png | Bin .../img/network_monitor_xid.png | Bin ...ing-a-session-cookie-for-request_v14_3.png | Bin ...ste-request-id-into-progress-bar_v14_3.png | Bin ...-request-selector-drop-down-menu_v14_3.png | Bin .../img/view-pg-details_v14_3.png | Bin doc/administration/logs/index.md | 1182 + doc/administration/logs/log_parsing.md | 316 + .../logs/tracing_correlation_id.md | 202 + doc/administration/maintenance_mode/index.md | 2 + doc/administration/monitoring/ip_allowlist.md | 2 +- .../monitoring/prometheus/gitlab_metrics.md | 16 +- .../monitoring/prometheus/index.md | 14 + .../monitoring/prometheus/web_exporter.md | 4 +- doc/administration/nfs.md | 22 +- doc/administration/object_storage.md | 20 +- .../operations/extra_sidekiq_processes.md | 365 +- .../operations/extra_sidekiq_routing.md | 196 +- doc/administration/operations/index.md | 7 +- doc/administration/operations/puma.md | 4 +- .../operations/rails_console.md | 12 +- .../operations/sidekiq_memory_killer.md | 86 +- .../operations/ssh_certificates.md | 15 +- .../package_information/deprecation_policy.md | 2 +- .../package_information/index.md | 4 +- .../postgresql_versions.md | 7 +- .../package_information/supported_os.md | 8 +- .../packages/container_registry.md | 12 +- doc/administration/pages/index.md | 29 +- doc/administration/pages/source.md | 3 +- .../postgresql/database_load_balancing.md | 2 +- doc/administration/pseudonymizer.md | 3 +- doc/administration/raketasks/maintenance.md | 2 +- .../raketasks/project_import_export.md | 41 +- .../redis/replication_and_failover.md | 12 +- .../replication_and_failover_external.md | 2 +- doc/administration/redis/troubleshooting.md | 2 +- .../reference_architectures/10k_users.md | 17 +- .../reference_architectures/25k_users.md | 17 +- .../reference_architectures/2k_users.md | 32 +- .../reference_architectures/3k_users.md | 11 +- .../reference_architectures/50k_users.md | 17 +- .../reference_architectures/5k_users.md | 11 +- .../reference_architectures/index.md | 14 +- .../troubleshooting.md | 355 +- doc/administration/repository_checks.md | 60 +- doc/administration/restart_gitlab.md | 4 +- doc/administration/sidekiq.md | 388 +- .../sidekiq/extra_sidekiq_processes.md | 362 + .../sidekiq/extra_sidekiq_routing.md | 180 + .../img/sidekiq_flamegraph.png | Bin doc/administration/sidekiq/index.md | 403 + .../sidekiq/sidekiq_health_check.md | 58 + .../sidekiq/sidekiq_job_migration.md | 40 + .../sidekiq/sidekiq_memory_killer.md | 82 + .../sidekiq/sidekiq_troubleshooting.md | 381 + doc/administration/sidekiq_health_check.md | 61 +- doc/administration/terraform_state.md | 6 +- .../troubleshooting/elasticsearch.md | 407 +- .../gitlab_rails_cheat_sheet.md | 168 +- .../troubleshooting/group_saml_scim.md | 210 +- .../troubleshooting/img/Okta-SAMLsetup.png | Bin 18920 -> 0 bytes .../img/Okta-advancedsettings.png | Bin 15614 -> 0 bytes .../troubleshooting/img/Okta-attributes.png | Bin 5540 -> 0 bytes .../troubleshooting/img/Okta-linkscert.png | Bin 58832 -> 0 bytes .../img/okta_admin_panel_v13_9.png | Bin 49319 -> 0 bytes .../img/okta_saml_settings.png | Bin 25470 -> 0 bytes doc/administration/troubleshooting/index.md | 7 +- .../troubleshooting/linux_cheat_sheet.md | 89 +- .../troubleshooting/log_parsing.md | 319 +- .../troubleshooting/postgresql.md | 2 +- doc/administration/troubleshooting/sidekiq.md | 398 +- .../troubleshooting/tracing_correlation_id.md | 205 +- doc/administration/uploads.md | 6 +- doc/api/appearance.md | 2 +- doc/api/audit_events.md | 9 +- doc/api/bulk_imports.md | 9 +- doc/api/deployments.md | 31 + doc/api/discussions.md | 32 +- doc/api/features.md | 10 - doc/api/geo_nodes.md | 26 + doc/api/graphql/index.md | 4 +- doc/api/graphql/reference/index.md | 834 +- doc/api/group_protected_environments.md | 2 +- doc/api/groups.md | 170 +- doc/api/index.md | 10 +- doc/api/integrations.md | 66 +- doc/api/issues.md | 18 +- doc/api/job_artifacts.md | 48 +- doc/api/jobs.md | 14 +- doc/api/lint.md | 3 +- doc/api/markdown.md | 24 +- doc/api/merge_request_approvals.md | 88 +- doc/api/merge_requests.md | 64 +- doc/api/namespaces.md | 2 +- doc/api/notes.md | 22 +- doc/api/oauth2.md | 13 +- doc/api/packages.md | 2 + doc/api/packages/conan.md | 4 +- doc/api/packages/terraform-modules.md | 230 + doc/api/personal_access_tokens.md | 7 +- doc/api/pipeline_schedules.md | 54 + doc/api/pipelines.md | 2 +- doc/api/project_import_export.md | 25 +- doc/api/project_templates.md | 2 +- doc/api/projects.md | 16 +- doc/api/releases/index.md | 15 +- doc/api/releases/links.md | 18 +- doc/api/repositories.md | 11 +- doc/api/resource_iteration_events.md | 2 +- doc/api/resource_milestone_events.md | 2 +- doc/api/resource_state_events.md | 4 +- doc/api/resource_weight_events.md | 2 +- doc/api/settings.md | 2 +- doc/api/topics.md | 11 +- doc/api/users.md | 72 +- doc/api/version.md | 4 + doc/api/vulnerabilities.md | 10 +- doc/api/vulnerability_findings.md | 2 +- .../blueprints/ci_data_decay/index.md | 8 +- .../ci_data_decay/pipeline_partitioning.md | 16 +- doc/architecture/blueprints/ci_scale/index.md | 24 +- .../cloud_native_build_logs/index.md | 17 +- .../cloud_native_gitlab_pages/index.md | 13 +- .../index.md | 2 +- .../index.md | 14 +- .../database_scaling/size-limits.md | 4 +- .../blueprints/database_testing/index.md | 2 +- .../feature_flags_development/index.md | 6 +- .../blueprints/graphql_api/index.md | 11 +- .../blueprints/object_storage/index.md | 27 +- .../blueprints/runner_scaling/index.md | 8 +- doc/ci/cloud_services/aws/index.md | 6 +- doc/ci/cloud_services/google_cloud/index.md | 2 +- doc/ci/docker/using_docker_build.md | 54 +- doc/ci/docker/using_kaniko.md | 9 +- doc/ci/environments/index.md | 4 +- doc/ci/environments/protected_environments.md | 9 +- .../index.md | 24 +- doc/ci/git_submodules.md | 6 + doc/ci/interactive_web_terminal/index.md | 15 +- doc/ci/jobs/ci_job_token.md | 1 + doc/ci/jobs/job_control.md | 25 +- doc/ci/large_repositories/index.md | 3 +- doc/ci/migration/circleci.md | 2 +- doc/ci/pipeline_editor/index.md | 13 + doc/ci/pipelines/cicd_minutes.md | 26 +- .../img/pipeline_mini_graph_v15_0.png | Bin 0 -> 6061 bytes doc/ci/pipelines/merge_request_pipelines.md | 9 +- doc/ci/pipelines/merge_trains.md | 5 +- doc/ci/pipelines/multi_project_pipelines.md | 122 +- doc/ci/pipelines/settings.md | 36 +- doc/ci/runners/configure_runners.md | 27 +- doc/ci/runners/img/build_isolation.png | Bin 0 -> 35301 bytes doc/ci/runners/index.md | 24 +- doc/ci/runners/runners_scope.md | 67 +- doc/ci/runners/saas/linux_saas_runner.md | 2 +- doc/ci/runners/saas/windows_saas_runner.md | 3 +- doc/ci/secrets/index.md | 4 +- doc/ci/secure_files/index.md | 2 +- doc/ci/testing/load_performance_testing.md | 2 +- doc/ci/testing/unit_test_report_examples.md | 2 +- doc/ci/testing/unit_test_reports.md | 42 +- doc/ci/variables/predefined_variables.md | 5 +- .../variables/where_variables_can_be_used.md | 15 +- doc/ci/yaml/artifacts_reports.md | 24 + doc/ci/yaml/includes.md | 14 +- doc/ci/yaml/index.md | 148 +- doc/ci/yaml/script.md | 24 + doc/development/adding_database_indexes.md | 317 +- doc/development/adding_service_component.md | 4 +- doc/development/api_graphql_styleguide.md | 162 +- doc/development/api_styleguide.md | 16 +- doc/development/application_limits.md | 3 +- doc/development/application_slis/index.md | 13 +- .../application_slis/rails_request_apdex.md | 3 +- doc/development/architecture.md | 2 +- doc/development/audit_event_guide/index.md | 23 +- doc/development/auto_devops.md | 4 +- .../backend/create_source_code_be/index.md | 2 +- doc/development/backend/ruby_style_guide.md | 2 + doc/development/build_test_package.md | 4 +- doc/development/cached_queries.md | 2 +- doc/development/caching.md | 8 +- doc/development/changelog.md | 4 +- doc/development/chatops_on_gitlabcom.md | 2 +- doc/development/code_intelligence/index.md | 4 +- doc/development/code_review.md | 116 +- doc/development/contributing/design.md | 6 +- doc/development/contributing/index.md | 14 +- .../contributing/issue_workflow.md | 4 +- .../contributing/merge_request_workflow.md | 152 +- doc/development/creating_enums.md | 157 +- .../add_foreign_key_to_existing_column.md | 4 +- .../database/adding_database_indexes.md | 410 + .../avoiding_downtime_in_migrations.md | 40 +- .../database/background_migrations.md | 6 +- .../database/batched_background_migrations.md | 198 +- .../database/ci_mirrored_tables.md | 156 + .../database/client_side_connection_pool.md | 13 +- doc/development/database/creating_enums.md | 154 + .../database/database_debugging.md | 177 + .../database/database_dictionary.md | 51 + doc/development/database/database_lab.md | 2 +- .../database/database_query_comments.md | 62 + .../database/database_reviewer_guidelines.md | 10 +- doc/development/database/db_dump.md | 56 + .../database/filtering_by_label.md | 179 + doc/development/database/foreign_keys.md | 199 + doc/development/database/hash_indexes.md | 26 + doc/development/database/index.md | 52 +- .../database/insert_into_tables_in_batches.md | 196 + .../database/iterating_tables_in_batches.md | 598 + .../database/loose_foreign_keys.md | 11 +- .../database/multiple_databases.md | 9 +- .../database/namespaces_storage_statistics.md | 193 + .../database/not_null_constraints.md | 4 +- .../database/ordering_table_columns.md | 152 + .../database/pagination_guidelines.md | 2 +- .../pagination_performance_guidelines.md | 10 +- .../database/polymorphic_associations.md | 152 + .../database/post_deployment_migrations.md | 4 + .../database/query_count_limits.md | 70 + doc/development/database/query_performance.md | 74 + doc/development/database/query_recorder.md | 145 + .../database/rename_database_tables.md | 6 +- doc/development/database/serializing_data.md | 90 + doc/development/database/sha1_as_binary.md | 42 + .../database/single_table_inheritance.md | 63 + .../strings_and_the_text_data_type.md | 7 +- doc/development/database/swapping_tables.md | 51 + .../database/transaction_guidelines.md | 2 +- .../database/understanding_explain_plans.md | 829 + .../verifying_database_capabilities.md | 38 + doc/development/database_debugging.md | 180 +- doc/development/database_query_comments.md | 65 +- doc/development/database_review.md | 23 +- doc/development/db_dump.md | 59 +- .../deprecation_guidelines/index.md | 22 +- doc/development/distributed_tracing.md | 16 +- .../documentation/restful_api_styleguide.md | 5 +- .../site_architecture/deployment_process.md | 22 +- .../site_architecture/folder_structure.md | 2 +- .../site_architecture/global_nav.md | 36 +- .../documentation/site_architecture/index.md | 257 +- doc/development/documentation/structure.md | 61 +- .../documentation/styleguide/index.md | 117 +- .../documentation/styleguide/word_list.md | 20 +- doc/development/documentation/testing.md | 68 +- doc/development/documentation/versions.md | 6 +- doc/development/ee_features.md | 347 +- doc/development/elasticsearch.md | 34 +- doc/development/emails.md | 9 +- doc/development/event_store.md | 11 +- doc/development/fe_guide/accessibility.md | 2 +- doc/development/fe_guide/architecture.md | 4 +- doc/development/fe_guide/content_editor.md | 1 + .../fe_guide/design_anti_patterns.md | 6 +- .../fe_guide/development_process.md | 8 +- doc/development/fe_guide/frontend_faq.md | 6 +- doc/development/fe_guide/graphql.md | 68 +- doc/development/fe_guide/icons.md | 2 +- doc/development/fe_guide/index.md | 2 +- .../merge_request_widget_extensions.md | 437 + doc/development/fe_guide/performance.md | 25 +- doc/development/fe_guide/source_editor.md | 2 +- doc/development/fe_guide/storybook.md | 2 +- doc/development/fe_guide/style/javascript.md | 3 +- doc/development/fe_guide/style/scss.md | 2 +- doc/development/fe_guide/style/vue.md | 18 +- doc/development/fe_guide/tooling.md | 2 +- doc/development/fe_guide/troubleshooting.md | 2 +- doc/development/fe_guide/view_component.md | 45 +- doc/development/fe_guide/vue.md | 10 +- doc/development/fe_guide/vuex.md | 6 +- doc/development/fe_guide/widgets.md | 4 + .../feature_categorization/index.md | 6 +- doc/development/feature_development.md | 4 +- doc/development/feature_flags/controls.md | 2 +- doc/development/feature_flags/index.md | 20 +- doc/development/features_inside_dot_gitlab.md | 4 +- doc/development/filtering_by_label.md | 182 +- doc/development/fips_compliance.md | 105 +- doc/development/foreign_keys.md | 203 +- doc/development/gemfile.md | 17 +- doc/development/geo.md | 2 +- doc/development/geo/proxying.md | 4 +- doc/development/git_object_deduplication.md | 13 +- doc/development/gitaly.md | 3 +- doc/development/github_importer.md | 4 +- .../specification_guide/index.md | 49 +- doc/development/go_guide/dependencies.md | 6 +- doc/development/go_guide/index.md | 71 +- doc/development/gotchas.md | 3 +- doc/development/hash_indexes.md | 29 +- doc/development/i18n/externalization.md | 12 +- doc/development/i18n/proofreader.md | 2 +- doc/development/image_scaling.md | 2 +- doc/development/import_export.md | 4 +- doc/development/import_project.md | 2 +- doc/development/index.md | 4 +- .../insert_into_tables_in_batches.md | 199 +- doc/development/integrations/index.md | 2 +- doc/development/integrations/secure.md | 17 +- doc/development/internal_api/index.md | 51 +- doc/development/issue_types.md | 6 +- .../iterating_tables_in_batches.md | 601 +- doc/development/jh_features_review.md | 3 +- doc/development/kubernetes.md | 2 +- doc/development/lfs.md | 9 +- .../licensed_feature_availability.md | 75 +- doc/development/logging.md | 19 +- .../merge_request_concepts/index.md | 31 +- .../widget_extensions.md | 11 + .../merge_request_performance_guidelines.md | 9 +- doc/development/migration_style_guide.md | 56 +- .../module_with_instance_variables.md | 6 +- .../multi_version_compatibility.md | 2 +- .../namespaces_storage_statistics.md | 196 +- .../new_fe_guide/development/accessibility.md | 55 +- .../new_fe_guide/development/components.md | 30 +- .../new_fe_guide/development/index.md | 26 +- .../new_fe_guide/development/performance.md | 25 +- doc/development/new_fe_guide/index.md | 25 +- .../new_fe_guide/modules/dirty_submit.md | 31 +- doc/development/new_fe_guide/modules/index.md | 18 +- .../new_fe_guide/modules/widget_extensions.md | 358 +- doc/development/new_fe_guide/tips.md | 38 +- doc/development/ordering_table_columns.md | 155 +- doc/development/pages/index.md | 48 +- doc/development/performance.md | 10 +- doc/development/permissions.md | 2 +- doc/development/pipelines.md | 14 +- doc/development/policies.md | 3 +- doc/development/polymorphic_associations.md | 155 +- doc/development/query_count_limits.md | 73 +- doc/development/query_performance.md | 77 +- doc/development/query_recorder.md | 148 +- doc/development/rails_update.md | 4 +- doc/development/real_time.md | 4 +- doc/development/redis/new_redis_instance.md | 6 +- doc/development/reusing_abstractions.md | 55 +- doc/development/routing.md | 4 +- doc/development/scalability.md | 39 +- doc/development/secure_coding_guidelines.md | 2 +- doc/development/serializing_data.md | 93 +- doc/development/service_measurement.md | 2 +- doc/development/service_ping/implement.md | 27 +- doc/development/service_ping/index.md | 6 +- .../service_ping/metrics_dictionary.md | 6 +- .../service_ping/metrics_instrumentation.md | 12 +- .../performance_indicator_metrics.md | 5 +- .../service_ping/review_guidelines.md | 6 +- doc/development/service_ping/usage_data.md | 2 +- doc/development/sha1_as_binary.md | 45 +- doc/development/shell_commands.md | 2 +- .../sidekiq/compatibility_across_updates.md | 13 +- doc/development/sidekiq/idempotent_jobs.md | 5 +- doc/development/sidekiq/index.md | 16 +- doc/development/sidekiq/logging.md | 5 +- doc/development/sidekiq/worker_attributes.md | 6 +- doc/development/single_table_inheritance.md | 66 +- doc/development/snowplow/implementation.md | 2 +- doc/development/snowplow/index.md | 7 +- doc/development/snowplow/infrastructure.md | 6 +- doc/development/snowplow/review_guidelines.md | 2 +- doc/development/sql.md | 5 +- .../dashboards/stage_group_dashboard.md | 2 +- doc/development/swapping_tables.md | 54 +- .../testing_guide/best_practices.md | 11 +- .../testing_guide/contract/consumer_tests.md | 109 +- .../testing_guide/contract/index.md | 14 +- .../end_to_end/best_practices.md | 4 +- .../testing_guide/end_to_end/feature_flags.md | 4 +- .../testing_guide/end_to_end/index.md | 23 +- .../end_to_end/rspec_metadata_tests.md | 1 + ...unning_tests_that_require_special_setup.md | 83 +- .../testing_guide/frontend_testing.md | 9 +- doc/development/testing_guide/index.md | 4 +- doc/development/testing_guide/review_apps.md | 2 +- .../testing_guide/testing_levels.md | 4 +- .../testing_guide/testing_migrations_guide.md | 4 +- .../understanding_explain_plans.md | 832 +- .../uploads/working_with_uploads.md | 339 +- doc/development/utilities.md | 18 + .../verifying_database_capabilities.md | 41 +- doc/development/windows.md | 3 +- doc/development/work_items.md | 4 +- doc/development/workhorse/configuration.md | 8 +- doc/development/workhorse/gitlab_features.md | 2 +- doc/development/workhorse/index.md | 8 +- doc/downgrade_ee_to_ce/index.md | 2 +- doc/gitlab-basics/start-using-git.md | 2 +- doc/install/aws/gitlab_hybrid_on_aws.md | 13 +- doc/install/azure/index.md | 4 +- doc/install/docker.md | 6 +- doc/install/installation.md | 23 +- doc/install/next_steps.md | 2 +- doc/install/requirements.md | 6 +- .../advanced_search/elasticsearch.md | 33 +- .../elasticsearch_troubleshooting.md | 256 +- doc/integration/azure.md | 43 +- doc/integration/cas.md | 6 +- doc/integration/datadog.md | 3 +- doc/integration/github.md | 22 +- doc/integration/gitlab.md | 8 +- .../img/jenkins_gitlab_service.png | Bin 19235 -> 0 bytes doc/integration/img/jenkins_project.png | Bin 42275 -> 0 bytes .../img/omniauth_providers_v_14_6.png | Bin 12165 -> 0 bytes doc/integration/index.md | 1 - doc/integration/jenkins_deprecated.md | 62 +- doc/integration/jira/dvcs.md | 2 +- doc/integration/mattermost/index.md | 94 +- doc/integration/omniauth.md | 72 +- doc/integration/saml.md | 13 +- doc/integration/security_partners/index.md | 4 +- doc/integration/twitter.md | 2 +- .../img/linked_resources_list_v15_3.png | Bin 0 -> 12838 bytes .../img/timeline_events_v15_1.png | Bin 36994 -> 18226 bytes .../incident_management/incidents.md | 17 +- .../incident_management/linked_resources.md | 66 + doc/operations/metrics/embed_grafana.md | 6 +- doc/policy/alpha-beta-support.md | 2 +- doc/policy/maintenance.md | 4 +- doc/raketasks/backup_gitlab.md | 5 +- doc/raketasks/backup_restore.md | 14 +- doc/raketasks/sidekiq_job_migration.md | 43 +- doc/raketasks/spdx.md | 2 +- doc/security/crime_vulnerability.md | 4 +- doc/security/index.md | 6 +- doc/security/information_exclusivity.md | 4 +- doc/security/reset_user_password.md | 10 +- doc/security/two_factor_authentication.md | 15 +- doc/security/user_file_uploads.md | 48 +- doc/security/webhooks.md | 2 +- doc/subscriptions/bronze_starter.md | 14 +- doc/subscriptions/gitlab_com/index.md | 16 +- doc/subscriptions/index.md | 4 +- doc/subscriptions/self_managed/index.md | 14 +- .../cloud_deployments/auto_devops_with_gke.md | 2 +- doc/topics/autodevops/customize.md | 2 +- doc/topics/autodevops/index.md | 5 +- doc/topics/autodevops/stages.md | 6 +- doc/topics/autodevops/troubleshooting.md | 6 +- .../upgrading_auto_deploy_dependencies.md | 5 +- doc/topics/autodevops/upgrading_postgresql.md | 3 +- doc/topics/git/lfs/index.md | 14 +- doc/topics/git/terminology.md | 2 +- doc/topics/git/troubleshooting_git.md | 6 +- doc/topics/offline/quick_start_guide.md | 3 +- doc/topics/release_your_application.md | 10 +- doc/topics/set_up_organization.md | 1 + doc/tutorials/make_your_first_git_commit.md | 4 +- .../move_personal_project_to_a_group.md | 2 +- doc/update/deprecations.md | 261 +- doc/update/index.md | 43 +- doc/update/package/convert_to_ee.md | 6 +- doc/update/package/index.md | 14 - doc/update/plan_your_upgrade.md | 13 +- doc/update/removals.md | 212 +- doc/update/upgrading_from_ce_to_ee.md | 3 +- doc/update/upgrading_from_source.md | 4 +- doc/update/zero_downtime.md | 6 +- doc/user/admin_area/broadcast_messages.md | 3 +- doc/user/admin_area/index.md | 22 +- .../admin_area/merge_requests_approvals.md | 2 +- .../monitoring/background_migrations.md | 44 + doc/user/admin_area/review_abuse_reports.md | 4 +- .../settings/account_and_limit_settings.md | 2 +- .../admin_area/settings/usage_statistics.md | 2 +- .../settings/user_and_ip_rate_limits.md | 8 +- .../visibility_and_access_controls.md | 7 +- ...product_analytics_commits_per_mr_v14_4.png | Bin 35894 -> 0 bytes ...uctivity_analytics_time_to_merge_v14_4.png | Bin 21953 -> 0 bytes ...productivity_analytics_trendline_v14_4.png | Bin 13089 -> 0 bytes doc/user/analytics/index.md | 23 +- doc/user/analytics/merge_request_analytics.md | 4 +- doc/user/analytics/productivity_analytics.md | 122 +- .../application_security/api_fuzzing/index.md | 14 +- .../container_scanning/index.md | 147 +- .../coverage_fuzzing/index.md | 4 +- .../dast/browser_based.md | 53 +- .../application_security/dast/checks/16.7.md | 4 +- .../application_security/dast/checks/601.1.md | 2 +- .../dast/checks/798.45.md | 26 - .../dast/checks/798.51.md | 26 - .../dast/checks/798.71.md | 26 - .../dast/checks/798.73.md | 26 - .../dast/checks/798.76.md | 26 - .../dast/checks/798.79.md | 26 - .../dast/checks/798.85.md | 26 - .../application_security/dast/checks/index.md | 7 - doc/user/application_security/dast/index.md | 16 +- .../application_security/dast_api/index.md | 12 +- .../dependency_scanning/index.md | 64 +- .../get-started-security.md | 34 + .../iac_scanning/index.md | 27 +- doc/user/application_security/index.md | 21 +- .../application_security/policies/index.md | 10 + .../application_security/sast/analyzers.md | 2 +- .../sast/customize_rulesets.md | 381 + ..._vulnerability_page_fp_detection_v15_2.png | Bin 0 -> 23202 bytes doc/user/application_security/sast/index.md | 408 +- .../secret_detection/index.md | 10 +- .../vulnerabilities/index.md | 4 +- .../vulnerability_report/pipeline.md | 6 +- doc/user/asciidoc.md | 4 +- doc/user/clusters/agent/ci_cd_workflow.md | 6 +- doc/user/clusters/agent/gitops.md | 3 +- doc/user/clusters/agent/install/index.md | 2 +- doc/user/clusters/agent/vulnerabilities.md | 3 + doc/user/clusters/cost_management.md | 2 +- doc/user/clusters/environments.md | 4 +- doc/user/clusters/management_project.md | 3 +- .../clusters/management_project_template.md | 13 +- .../compliance/compliance_report/index.md | 37 +- .../compliance/license_compliance/index.md | 6 +- doc/user/crm/index.md | 2 +- doc/user/discussions/index.md | 30 +- doc/user/feature_highlight.md | 18 +- doc/user/free_user_limit.md | 4 +- doc/user/gitlab_com/index.md | 24 +- doc/user/group/access_and_permissions.md | 260 + doc/user/group/custom_project_templates.md | 2 +- doc/user/group/index.md | 847 +- doc/user/group/iterations/index.md | 68 +- doc/user/group/manage.md | 570 + .../group/saml_sso/example_saml_config.md | 211 + doc/user/group/saml_sso/group_sync.md | 12 +- .../saml_sso}/img/AzureAD-basic_SAML.png | Bin .../group/saml_sso}/img/AzureAD-claims.png | Bin .../img/AzureAD-scim_attribute_mapping.png | Bin .../img/AzureAD-scim_provisioning.png | Bin .../img/GoogleWorkspace-basic-SAML_v14_10.png | Bin .../img/GoogleWorkspace-claims_v14_10.png | Bin .../img/GoogleWorkspace-linkscert_v14_10.png | Bin .../saml_sso/img/Okta-GroupAttribute.png | Bin 0 -> 7744 bytes .../group/saml_sso/img/Okta-GroupSAML.png | Bin 0 -> 23681 bytes doc/user/group/saml_sso/img/Okta-SM.png | Bin 0 -> 23386 bytes .../saml_sso/img/Okta-advancedsettings.png | Bin 0 -> 18912 bytes .../group/saml_sso/img/Okta-attributes.png | Bin 0 -> 13687 bytes .../group/saml_sso/img/Okta-linkscert.png | Bin 0 -> 55321 bytes .../saml_sso}/img/OneLogin-SSOsettings.png | Bin .../saml_sso}/img/OneLogin-app_details.png | Bin .../saml_sso}/img/OneLogin-parameters.png | Bin .../group/saml_sso}/img/OneLogin-userAdd.png | Bin .../img/azure_configure_group_claim.png | Bin .../group/saml_sso/img/okta_saml_settings.png | Bin 0 -> 21280 bytes .../saml_sso}/img/okta_setting_username.png | Bin doc/user/group/saml_sso/index.md | 12 +- doc/user/group/saml_sso/scim_setup.md | 6 +- .../group/settings/group_access_tokens.md | 3 + doc/user/group/subgroups/index.md | 26 +- doc/user/img/completed_tasks_v13_3.png | Bin 14835 -> 0 bytes doc/user/img/completed_tasks_v15_3.png | Bin 0 -> 19133 bytes .../clusters/connect/new_civo_cluster.md | 2 +- .../clusters/connect/new_eks_cluster.md | 3 +- .../clusters/deploy/inventory_object.md | 5 +- .../certmanager.md | 21 +- .../prometheus.md | 30 +- .../management_project_applications/sentry.md | 73 +- .../management_project_applications/vault.md | 2 +- .../infrastructure/iac/terraform_state.md | 147 +- .../infrastructure/iac/troubleshooting.md | 2 + doc/user/markdown.md | 58 +- doc/user/namespace/index.md | 21 + .../packages/composer_repository/index.md | 2 +- doc/user/packages/container_registry/index.md | 8 +- .../reduce_container_registry_storage.md | 23 +- doc/user/packages/dependency_proxy/index.md | 22 + doc/user/packages/generic_packages/index.md | 1 + doc/user/packages/helm_repository/index.md | 4 +- doc/user/packages/npm_registry/index.md | 4 +- doc/user/packages/package_registry/index.md | 7 +- .../reduce_package_registry_storage.md | 2 +- .../terraform_module_registry/index.md | 4 +- doc/user/permissions.md | 28 +- doc/user/profile/account/delete_account.md | 2 +- .../account/two_factor_authentication.md | 21 +- doc/user/profile/index.md | 4 +- doc/user/profile/notifications.md | 6 +- doc/user/project/canary_deployments.md | 6 +- doc/user/project/clusters/add_gke_clusters.md | 6 +- .../project/clusters/add_remove_clusters.md | 24 + .../project/clusters/deploy_to_cluster.md | 2 +- doc/user/project/code_owners.md | 62 +- doc/user/project/deploy_boards.md | 4 +- doc/user/project/deploy_keys/index.md | 6 +- doc/user/project/description_templates.md | 2 +- doc/user/project/git_attributes.md | 4 +- .../img/code_owners_invite_members_v13_4.png | Bin 55189 -> 0 bytes .../project/img/code_owners_members_v13_4.png | Bin 46547 -> 0 bytes doc/user/project/import/clearcase.md | 4 +- doc/user/project/import/github.md | 32 + doc/user/project/insights/index.md | 248 +- doc/user/project/integrations/harbor.md | 50 +- doc/user/project/integrations/index.md | 1 + doc/user/project/integrations/pumble.md | 39 + doc/user/project/integrations/slack.md | 4 +- .../project/integrations/webhook_events.md | 29 +- doc/user/project/integrations/webhooks.md | 10 +- doc/user/project/issue_board.md | 17 + doc/user/project/issues/design_management.md | 2 +- .../issues/img/related_issue_block_v12_8.png | Bin 35817 -> 0 bytes .../issues/img/related_issue_block_v15_3.png | Bin 0 -> 28910 bytes .../issues/img/related_issues_add_v12_8.png | Bin 32939 -> 0 bytes .../issues/img/related_issues_add_v15_3.png | Bin 0 -> 24947 bytes .../img/related_issues_remove_v12_8.png | Bin 10708 -> 0 bytes .../img/related_issues_remove_v15_3.png | Bin 0 -> 12113 bytes doc/user/project/issues/issue_weight.md | 1 + doc/user/project/issues/managing_issues.md | 6 +- doc/user/project/issues/related_issues.md | 6 +- doc/user/project/labels.md | 5 +- doc/user/project/members/index.md | 23 +- .../members/share_project_with_groups.md | 26 +- .../img/scoped_to_protected_branch_v13_10.png | Bin 12376 -> 0 bytes .../project/merge_requests/approvals/index.md | 2 +- .../project/merge_requests/approvals/rules.md | 24 +- .../merge_requests/approvals/settings.md | 35 +- doc/user/project/merge_requests/csv_export.md | 19 +- .../img/license_compliance_widget_v15_3.png | Bin 0 -> 24463 bytes .../img/status_checks_widget_passed_v14_0.png | Bin 12850 -> 0 bytes .../status_checks_widget_pending_v14_0.png | Bin 12735 -> 0 bytes doc/user/project/merge_requests/index.md | 13 +- .../project/merge_requests/methods/index.md | 8 +- .../img/mr_review_new_comment_v13_11.png | Bin 32192 -> 0 bytes .../img/mr_review_new_comment_v15_3.png | Bin 0 -> 32927 bytes .../reviews/img/mr_review_resolve.png | Bin 63623 -> 0 bytes .../reviews/img/mr_review_resolve2.png | Bin 62012 -> 0 bytes .../reviews/img/mr_review_start.png | Bin 80651 -> 0 bytes .../reviews/img/mr_review_unresolve.png | Bin 78767 -> 0 bytes .../reviews/img/mr_summary_comment_v15_3.png | Bin 0 -> 49186 bytes .../project/merge_requests/reviews/index.md | 38 +- .../project/merge_requests/status_checks.md | 24 +- doc/user/project/merge_requests/widgets.md | 6 + doc/user/project/milestones/index.md | 8 + .../dns_concepts.md | 1 + .../lets_encrypt_integration.md | 2 - .../getting_started/pages_from_scratch.md | 8 +- .../project/pages/getting_started_part_one.md | 2 +- doc/user/project/pages/img/remove_pages.png | Bin 12954 -> 0 bytes .../project/pages/img/remove_pages_v15_3.png | Bin 0 -> 4432 bytes doc/user/project/pages/introduction.md | 5 +- .../project/pages/pages_access_control.md | 2 - doc/user/project/push_options.md | 8 +- doc/user/project/quick_actions.md | 1 + doc/user/project/releases/index.md | 423 +- .../project/releases/release_cicd_examples.md | 100 + doc/user/project/releases/release_cli.md | 30 +- doc/user/project/releases/release_fields.md | 274 + .../project/repository/branches/default.md | 2 +- .../project/repository/forking_workflow.md | 2 +- doc/user/project/repository/index.md | 2 +- .../repository/managing_large_repositories.md | 4 +- doc/user/project/repository/mirror/index.md | 11 +- doc/user/project/repository/mirror/pull.md | 5 + doc/user/project/repository/push_rules.md | 2 +- .../reducing_the_repo_size_using_git.md | 10 +- doc/user/project/service_desk.md | 3 +- doc/user/project/settings/index.md | 11 +- doc/user/project/web_ide/index.md | 11 +- doc/user/project/wiki/group.md | 2 +- doc/user/project/wiki/index.md | 39 +- doc/user/project/working_with_projects.md | 8 +- doc/user/ssh.md | 6 +- doc/user/tasks.md | 18 +- doc/user/upgrade_email_bypass.md | 2 +- doc/user/usage_quotas.md | 33 +- doc/user/workspace/index.md | 4 +- .../example_snapshots/examples_index.yml | 27 + glfm_specification/example_snapshots/html.yml | 281 +- .../example_snapshots/markdown.yml | 38 +- .../example_snapshots/prosemirror_json.yml | 1928 +- .../glfm_canonical_examples.txt | 185 +- .../glfm_example_status.yml | 12 + glfm_specification/output/spec.txt | 185 +- jest.config.base.js | 8 +- lib/api/api.rb | 7 + lib/api/api_guard.rb | 4 +- lib/api/applications.rb | 6 +- lib/api/broadcast_messages.rb | 14 +- lib/api/bulk_imports.rb | 29 +- lib/api/ci/helpers/runner.rb | 6 +- lib/api/ci/job_artifacts.rb | 38 +- lib/api/ci/jobs.rb | 4 +- lib/api/ci/pipeline_schedules.rb | 10 + lib/api/ci/pipelines.rb | 22 +- lib/api/ci/runner.rb | 12 +- lib/api/ci/runners.rb | 12 +- lib/api/commits.rb | 8 +- .../packages/debian_distribution_endpoints.rb | 12 +- lib/api/debian_project_packages.rb | 8 +- lib/api/deploy_tokens.rb | 14 +- lib/api/deployments.rb | 27 +- lib/api/entities/bulk_imports/entity.rb | 3 +- lib/api/entities/group_detail.rb | 3 +- lib/api/entities/merge_request_reviewer.rb | 12 + lib/api/entities/note.rb | 1 + lib/api/entities/project.rb | 31 +- lib/api/feature_flags.rb | 6 +- lib/api/features.rb | 9 +- lib/api/group_labels.rb | 31 +- lib/api/group_packages.rb | 34 +- lib/api/groups.rb | 7 +- lib/api/helm_packages.rb | 2 +- lib/api/helpers.rb | 23 +- lib/api/helpers/groups_helpers.rb | 4 +- lib/api/helpers/integrations_helpers.rb | 23 +- lib/api/helpers/merge_requests_helpers.rb | 6 +- lib/api/helpers/projects_helpers.rb | 2 + lib/api/helpers/related_resources_helpers.rb | 4 + lib/api/helpers/snippets_helpers.rb | 7 +- lib/api/internal/base.rb | 10 + lib/api/internal/error_tracking.rb | 2 +- lib/api/internal/kubernetes.rb | 60 +- lib/api/issue_links.rb | 2 +- lib/api/issues.rb | 22 +- lib/api/labels.rb | 8 +- lib/api/markdown.rb | 4 +- lib/api/maven_packages.rb | 19 +- lib/api/members.rb | 6 +- lib/api/merge_requests.rb | 33 +- lib/api/metrics/dashboard/annotations.rb | 6 +- lib/api/metrics/user_starred_dashboards.rb | 4 +- lib/api/milestone_responses.rb | 6 +- lib/api/notes.rb | 7 +- lib/api/pages_domains.rb | 4 +- lib/api/pagination_params.rb | 20 + lib/api/personal_access_tokens.rb | 9 +- lib/api/project_packages.rb | 7 +- lib/api/project_templates.rb | 2 +- lib/api/projects.rb | 6 +- lib/api/protected_branches.rb | 4 +- lib/api/releases.rb | 14 +- lib/api/repositories.rb | 10 +- lib/api/rubygem_packages.rb | 2 +- lib/api/search.rb | 25 +- lib/api/sidekiq_metrics.rb | 14 +- lib/api/support/git_access_actor.rb | 4 + lib/api/topics.rb | 1 + lib/api/unleash.rb | 4 +- lib/api/user_counts.rb | 8 +- lib/api/users.rb | 6 +- lib/backup/database.rb | 20 +- lib/backup/gitaly_backup.rb | 13 +- lib/backup/manager.rb | 44 +- lib/banzai/filter/custom_emoji_filter.rb | 4 +- .../references/abstract_reference_filter.rb | 8 +- .../references/label_reference_filter.rb | 4 +- .../references/milestone_reference_filter.rb | 4 +- lib/banzai/filter/task_list_filter.rb | 86 +- .../timeline_event_pipeline.rb | 2 +- lib/banzai/reference_redactor.rb | 4 +- lib/bitbucket/representation/base.rb | 2 +- lib/bitbucket_server/representation/base.rb | 2 +- lib/bulk_imports/clients/http.rb | 19 +- .../group_attributes_transformer.rb | 2 +- lib/bulk_imports/pipeline.rb | 2 +- .../project_attributes_transformer.rb | 4 +- lib/container_registry/gitlab_api_client.rb | 23 + lib/container_registry/tag.rb | 15 +- lib/feature.rb | 6 +- lib/gitlab/alert_management/payload/base.rb | 12 +- lib/gitlab/application_context.rb | 19 +- lib/gitlab/application_rate_limiter.rb | 11 +- lib/gitlab/audit/auditor.rb | 175 + lib/gitlab/audit/deploy_key_author.rb | 15 + lib/gitlab/audit/null_author.rb | 2 + lib/gitlab/audit/null_target.rb | 19 + lib/gitlab/audit/target.rb | 21 + lib/gitlab/auth.rb | 4 +- lib/gitlab/auth/auth_finders.rb | 2 +- lib/gitlab/auth/ip_rate_limiter.rb | 8 +- lib/gitlab/auth/o_auth/auth_hash.rb | 35 +- .../backfill_ci_namespace_mirrors.rb | 77 - .../backfill_ci_project_mirrors.rb | 52 - .../backfill_ci_runner_semver.rb | 31 - .../backfill_group_features.rb | 8 +- .../backfill_integrations_type_new.rb | 2 +- ...ill_namespace_id_of_vulnerability_reads.rb | 36 + ...ckfill_namespace_traversal_ids_children.rb | 2 +- .../backfill_namespace_traversal_ids_roots.rb | 2 +- .../backfill_project_import_level.rb | 35 + ...kfill_vulnerability_reads_cluster_agent.rb | 30 + .../backfill_work_item_type_id_for_issues.rb | 2 +- .../batched_migration_job.rb | 69 +- ...t_namespace_per_group_batching_strategy.rb | 2 +- ...y_reads_cluster_agent_batching_strategy.rb | 19 + .../loose_index_scan_batching_strategy.rb | 2 +- .../primary_key_batching_strategy.rb | 32 +- .../cleanup_orphaned_lfs_objects_projects.rb | 2 +- ...opy_ci_builds_columns_to_security_scans.rb | 44 - ...y_column_using_background_migration_job.rb | 4 +- ..._license_for_no_issues_no_repo_projects.rb | 36 + ...license_for_one_member_no_repo_projects.rb | 36 + .../drop_invalid_security_findings.rb | 2 +- .../encrypt_static_object_token.rb | 2 +- .../fix_first_mentioned_in_commit_at.rb | 2 +- ...fix_projects_without_prometheus_service.rb | 2 +- .../migrate_shared_vulnerability_scanners.rb | 16 + ...opulate_status_column_of_security_scans.rb | 13 - .../populate_vulnerability_reads.rb | 2 +- .../backfill_project_namespaces.rb | 4 +- ...acker_data_deployment_type_based_on_url.rb | 92 +- .../update_timelogs_null_spent_at.rb | 2 +- lib/gitlab/background_task.rb | 95 + lib/gitlab/batch_pop_queueing.rb | 2 +- lib/gitlab/cache/request_cache.rb | 2 +- lib/gitlab/chat_name_token.rb | 4 +- lib/gitlab/ci/artifacts/logger.rb | 64 + lib/gitlab/ci/artifacts/metrics.rb | 7 + .../ci/build/artifacts/adapters/zip_stream.rb | 61 + lib/gitlab/ci/build/releaser.rb | 2 +- lib/gitlab/ci/build/rules.rb | 4 +- lib/gitlab/ci/build/rules/rule/clause.rb | 1 + .../ci/build/rules/rule/clause/changes.rb | 34 +- lib/gitlab/ci/config.rb | 4 + lib/gitlab/ci/config/entry/image.rb | 46 +- lib/gitlab/ci/config/entry/imageable.rb | 61 + lib/gitlab/ci/config/entry/release.rb | 5 +- lib/gitlab/ci/config/entry/reports.rb | 3 +- .../ci/config/entry/rules/rule/changes.rb | 3 +- lib/gitlab/ci/config/entry/service.rb | 49 +- lib/gitlab/ci/jwt.rb | 2 +- lib/gitlab/ci/parsers.rb | 3 +- lib/gitlab/ci/parsers/sbom/cyclonedx.rb | 79 + .../ci/parsers/sbom/cyclonedx_properties.rb | 112 + .../sbom/source/dependency_scanning.rb | 49 + .../validators/cyclonedx_schema_validator.rb | 37 + .../security/validators/schema_validator.rb | 140 +- .../chain/cancel_pending_pipelines.rb | 8 +- .../ci/pipeline/chain/validate/external.rb | 3 +- .../ci/pipeline/expression/lexeme/matches.rb | 8 +- .../pipeline/expression/lexeme/not_matches.rb | 8 +- lib/gitlab/ci/pipeline/seed/build.rb | 12 +- lib/gitlab/ci/pipeline/seed/environment.rb | 2 +- lib/gitlab/ci/pipeline/seed/stage.rb | 2 +- .../ci/reports/coverage_report_generator.rb | 2 +- lib/gitlab/ci/reports/sbom/component.rb | 19 + lib/gitlab/ci/reports/sbom/report.rb | 34 + lib/gitlab/ci/reports/sbom/reports.rb | 21 + lib/gitlab/ci/reports/sbom/source.rb | 19 + lib/gitlab/ci/runner_releases.rb | 5 +- lib/gitlab/ci/runner_upgrade_check.rb | 98 +- lib/gitlab/ci/status/bridge/common.rb | 6 +- .../5-Minute-Production-App.gitlab-ci.yml | 6 +- lib/gitlab/ci/templates/Dart.gitlab-ci.yml | 89 +- .../templates/Getting-Started.gitlab-ci.yml | 1 + .../templates/Indeni.Cloudrail.gitlab-ci.yml | 2 +- .../ci/templates/Jobs/Build.gitlab-ci.yml | 2 +- .../templates/Jobs/Build.latest.gitlab-ci.yml | 2 +- .../templates/Jobs/CF-Provision.gitlab-ci.yml | 2 +- .../templates/Jobs/Code-Quality.gitlab-ci.yml | 2 +- .../DAST-Default-Branch-Deploy.gitlab-ci.yml | 6 +- .../Jobs/Dependency-Scanning.gitlab-ci.yml | 2 +- .../ci/templates/Jobs/Deploy.gitlab-ci.yml | 4 +- .../Jobs/Deploy.latest.gitlab-ci.yml | 4 +- .../templates/Jobs/Deploy/EC2.gitlab-ci.yml | 2 +- .../templates/Jobs/Deploy/ECS.gitlab-ci.yml | 3 +- .../ci/templates/Jobs/Helm-2to3.gitlab-ci.yml | 5 +- .../Jobs/License-Scanning.gitlab-ci.yml | 2 +- .../ci/templates/Jobs/SAST-IaC.gitlab-ci.yml | 4 +- .../Jobs/SAST-IaC.latest.gitlab-ci.yml | 9 +- .../ci/templates/Jobs/SAST.gitlab-ci.yml | 2 +- .../templates/Jobs/SAST.latest.gitlab-ci.yml | 32 +- .../Jobs/Secret-Detection.gitlab-ci.yml | 2 +- .../Secret-Detection.latest.gitlab-ci.yml | 5 +- lib/gitlab/ci/templates/MATLAB.gitlab-ci.yml | 100 +- .../ci/templates/Pages/Hugo.gitlab-ci.yml | 2 +- .../Security/API-Fuzzing.gitlab-ci.yml | 2 +- .../Security/API-Fuzzing.latest.gitlab-ci.yml | 2 +- .../Security/Container-Scanning.gitlab-ci.yml | 2 +- .../templates/Security/DAST-API.gitlab-ci.yml | 2 +- .../Security/DAST-API.latest.gitlab-ci.yml | 2 +- .../DAST-On-Demand-API-Scan.gitlab-ci.yml | 2 +- .../DAST-On-Demand-Scan.gitlab-ci.yml | 2 +- .../DAST-Runner-Validation.gitlab-ci.yml | 2 +- .../ci/templates/Security/DAST.gitlab-ci.yml | 2 +- .../Security/DAST.latest.gitlab-ci.yml | 8 +- .../Security/Fortify-FoD-sast.gitlab-ci.yml | 52 + .../Security/Secure-Binaries.gitlab-ci.yml | 4 +- .../ci/templates/Terraform/Base.gitlab-ci.yml | 2 +- .../Terraform/Base.latest.gitlab-ci.yml | 2 +- .../Verify/Accessibility.gitlab-ci.yml | 3 +- lib/gitlab/ci/trace/chunked_io.rb | 2 +- lib/gitlab/ci/variables/collection.rb | 35 +- lib/gitlab/ci/variables/collection/item.rb | 4 + lib/gitlab/ci/variables/helpers.rb | 2 +- lib/gitlab/ci/yaml_processor/result.rb | 6 +- lib/gitlab/cleanup/project_uploads.rb | 2 +- lib/gitlab/contributions_calendar.rb | 2 +- lib/gitlab/current_settings.rb | 6 +- lib/gitlab/daemon.rb | 1 + lib/gitlab/data_builder/issuable.rb | 4 + lib/gitlab/database/async_indexes.rb | 8 +- .../async_indexes/index_destructor.rb | 66 + .../async_indexes/migration_helpers.rb | 32 + .../async_indexes/postgres_async_index.rb | 3 + .../background_migration/batched_job.rb | 4 +- .../background_migration/batched_migration.rb | 8 +- .../batched_migration_runner.rb | 4 +- .../batched_migration_wrapper.rb | 3 +- .../background_migration/health_status.rb | 32 +- .../indicators/write_ahead_log.rb | 74 + .../health_status/signals.rb | 8 + lib/gitlab/database/bulk_update.rb | 2 +- lib/gitlab/database/dynamic_model_helpers.rb | 2 +- lib/gitlab/database/gitlab_schemas.yml | 7 + lib/gitlab/database/lock_writes_manager.rb | 80 + lib/gitlab/database/migration_helpers.rb | 13 +- .../background_migration_helpers.rb | 2 +- .../migrations/base_background_runner.rb | 2 +- .../batched_background_migration_helpers.rb | 7 +- .../partitioning/sliding_list_strategy.rb | 1 - .../backfill_partitioned_table.rb | 2 +- lib/gitlab/database/postgres_hll/buckets.rb | 4 +- lib/gitlab/database/reindexing.rb | 1 + .../reindexing/reindex_concurrently.rb | 6 +- lib/gitlab/database/with_lock_retries.rb | 2 +- lib/gitlab/dependency_linker/base_linker.rb | 4 +- .../dependency_linker/cargo_toml_linker.rb | 6 +- .../dependency_linker/composer_json_linker.rb | 2 +- .../dependency_linker/godeps_json_linker.rb | 6 +- lib/gitlab/dependency_linker/json_linker.rb | 6 +- .../dependency_linker/podspec_linker.rb | 4 +- lib/gitlab/diff/file.rb | 8 +- lib/gitlab/diff/highlight_cache.rb | 12 +- lib/gitlab/diff/parser.rb | 6 +- .../diff/rendered/notebook/diff_file.rb | 2 +- .../rendered/notebook/diff_file_helper.rb | 4 +- .../pbkdf2_sha512.rb | 28 + .../message/in_product_marketing/helper.rb | 2 +- .../error_repository/open_api_strategy.rb | 21 +- lib/gitlab/event_store.rb | 11 + .../exclusive_lease_helpers/sleeping_lock.rb | 6 +- .../form_builders/gitlab_ui_form_builder.rb | 18 + lib/gitlab/git.rb | 4 +- lib/gitlab/git/remote_repository.rb | 72 - lib/gitlab/git/repository.rb | 15 +- lib/gitlab/git/rugged_impl/use_rugged.rb | 1 + lib/gitlab/git_access.rb | 1 + lib/gitlab/gitaly_client/operation_service.rb | 26 +- lib/gitlab/gitaly_client/ref_service.rb | 10 + .../gitaly_client/repository_service.rb | 12 + lib/gitlab/github_import/client.rb | 4 +- .../importer/events/base_importer.rb | 36 + .../importer/events/changed_assignee.rb | 52 + .../importer/events/changed_label.rb | 14 +- .../importer/events/changed_milestone.rb | 39 + .../github_import/importer/events/closed.rb | 18 +- .../importer/events/cross_referenced.rb | 23 +- .../github_import/importer/events/renamed.rb | 14 +- .../github_import/importer/events/reopened.rb | 18 +- .../importer/issue_event_importer.rb | 46 +- .../importer/issue_events_importer.rb | 35 + .../github_import/importer/issue_importer.rb | 3 +- .../github_import/importer/issues_importer.rb | 12 + .../importer/releases_importer.rb | 9 +- .../single_endpoint_issue_events_importer.rb | 5 +- lib/gitlab/github_import/issuable_finder.rb | 2 + .../github_import/parallel_scheduling.rb | 29 +- .../github_import/representation/diff_note.rb | 2 +- .../github_import/representation/issue.rb | 7 +- .../representation/issue_event.rb | 83 +- .../representation/lfs_object.rb | 2 +- .../github_import/representation/note.rb | 2 +- .../representation/pull_request.rb | 2 +- .../representation/pull_request_review.rb | 2 +- .../github_import/representation/user.rb | 2 +- lib/gitlab/github_import/user_finder.rb | 14 +- lib/gitlab/global_id/deprecations.rb | 39 +- .../grape_logging/loggers/token_logger.rb | 17 + lib/gitlab/graphql/deprecation.rb | 20 +- lib/gitlab/graphql/deprecations_base.rb | 48 + .../keyset/conditions/base_condition.rb | 62 - .../keyset/conditions/not_null_condition.rb | 55 - .../keyset/conditions/null_condition.rb | 39 - .../graphql/pagination/keyset/connection.rb | 97 +- .../keyset/generic_keyset_pagination.rb | 98 - .../graphql/pagination/keyset/order_info.rb | 124 - .../pagination/keyset/query_builder.rb | 73 - lib/gitlab/graphql/type_name_deprecations.rb | 27 + lib/gitlab/hook_data/merge_request_builder.rb | 3 + lib/gitlab/http_io.rb | 2 +- lib/gitlab/i18n.rb | 20 +- .../base_after_export_strategy.rb | 19 +- .../move_file_strategy.rb | 1 + .../web_upload_strategy.rb | 28 +- .../after_export_strategy_builder.rb | 6 +- .../import_export/base/relation_factory.rb | 15 +- .../base/relation_object_saver.rb | 2 +- .../decompressed_archive_size_validator.rb | 20 +- .../group/relation_tree_restorer.rb | 2 +- .../json/streaming_serializer.rb | 25 +- lib/gitlab/import_export/log_util.rb | 19 + .../import_export/project/import_export.yml | 26 +- .../import_export/project/relation_saver.rb | 57 + .../import_export/project/tree_saver.rb | 5 +- .../import_export/remote_stream_upload.rb | 117 + lib/gitlab/import_export/shared.rb | 9 +- .../instrumentation/global_search_api.rb | 46 + lib/gitlab/instrumentation_helper.rb | 5 + lib/gitlab/issues/rebalancing/state.rb | 8 +- lib/gitlab/jira_import/issues_importer.rb | 29 + lib/gitlab/job_waiter.rb | 2 +- lib/gitlab/kubernetes.rb | 6 +- lib/gitlab/legacy_github_import/client.rb | 2 +- lib/gitlab/mail_room.rb | 4 +- lib/gitlab/memory/jemalloc.rb | 22 +- lib/gitlab/memory/reports/jemalloc_stats.rb | 67 + lib/gitlab/memory/reports_daemon.rb | 106 + lib/gitlab/memory/watchdog.rb | 18 +- .../mergeability/check_result.rb | 4 +- lib/gitlab/metrics/dashboard/url.rb | 10 +- lib/gitlab/metrics/methods/metric_options.rb | 2 +- lib/gitlab/middleware/read_only/controller.rb | 6 +- lib/gitlab/null_request_store.rb | 2 +- lib/gitlab/object_hierarchy.rb | 3 +- lib/gitlab/pagination/gitaly_keyset_pager.rb | 8 +- lib/gitlab/patch/global_id.rb | 2 +- lib/gitlab/path_regex.rb | 4 +- .../redis_adapter_when_peek_enabled.rb | 2 +- lib/gitlab/process_management.rb | 4 +- lib/gitlab/profiler.rb | 2 +- lib/gitlab/project_template.rb | 2 +- lib/gitlab/query_limiting/middleware.rb | 6 +- .../quick_actions/command_definition.rb | 18 +- lib/gitlab/quick_actions/dsl.rb | 10 +- .../quick_actions/merge_request_actions.rb | 70 - .../spend_time_and_date_separator.rb | 6 +- lib/gitlab/redis/cache.rb | 2 +- lib/gitlab/redis/multi_store.rb | 2 +- lib/gitlab/regex.rb | 8 +- .../relative_positioning/item_context.rb | 7 +- lib/gitlab/saas.rb | 4 + lib/gitlab/safe_request_loader.rb | 2 +- lib/gitlab/search/query.rb | 2 +- lib/gitlab/seeder.rb | 42 + lib/gitlab/sidekiq_daemon/memory_killer.rb | 15 +- lib/gitlab/sidekiq_logging/logs_jobs.rb | 1 - .../sidekiq_middleware/server_metrics.rb | 8 +- lib/gitlab/ssh/commit.rb | 24 + lib/gitlab/ssh/signature.rb | 16 +- lib/gitlab/string_placeholder_replacer.rb | 2 +- .../terraform/state_migration_helper.rb | 2 +- lib/gitlab/tracking.rb | 2 +- .../tracking/destinations/snowplow_micro.rb | 2 +- .../metrics/instrumentations/base_metric.rb | 2 +- .../instrumentations/database_metric.rb | 20 +- .../instrumentations/numbers_metric.rb | 2 +- lib/gitlab/usage/time_frame.rb | 5 +- lib/gitlab/usage_data_counters.rb | 3 +- .../usage_data_counters/hll_redis_counter.rb | 13 +- .../issue_activity_unique_counter.rb | 34 +- .../known_events/ci_templates.yml | 8 + .../known_events/code_review_events.yml | 151 + .../known_events/common.yml | 41 +- .../known_events/kubernetes_agent.yml | 5 + .../known_events/work_items.yml | 5 + .../merge_request_widget_extension_counter.rb | 19 + .../work_item_activity_unique_counter.rb | 5 + lib/gitlab/usage_data_queries.rb | 4 +- lib/gitlab/utils/batch_loader.rb | 23 + lib/gitlab/utils/link_header_parser.rb | 46 + lib/gitlab/utils/strong_memoize.rb | 73 + lib/gitlab/utils/usage_data.rb | 4 +- lib/gitlab/version_info.rb | 6 +- lib/gitlab/word_diff/segments/diff_hunk.rb | 8 +- lib/gitlab/zentao/client.rb | 6 +- lib/google_api/cloud_platform/client.rb | 34 +- lib/kramdown/converter/commonmark.rb | 6 +- lib/release_highlights/validator/entry.rb | 18 +- .../ci_configuration/sast_build_action.rb | 10 +- lib/security/report_schema_version_matcher.rb | 42 + lib/tasks/contracts/merge_requests.rake | 23 +- lib/tasks/contracts/pipeline_schedules.rake | 32 + lib/tasks/contracts/pipelines.rake | 37 +- lib/tasks/dev.rake | 15 + lib/tasks/gems.rake | 2 - lib/tasks/gitlab/backup.rake | 6 +- lib/tasks/gitlab/db.rake | 2 +- lib/tasks/gitlab/db/lock_writes.rake | 111 +- lib/tasks/gitlab/gitaly.rake | 2 +- lib/tasks/gitlab/info.rake | 2 +- lib/tasks/gitlab/praefect.rake | 6 +- lib/tasks/gitlab/shell.rake | 2 +- lib/tasks/gitlab/tw/codeowners.rake | 10 +- lib/tasks/gitlab/web_hook.rake | 11 +- lib/tasks/rubocop.rake | 3 - lib/unnested_in_filters/rewriter.rb | 47 +- locale/am_ET/gitlab.po | 1374 +- locale/ar_SA/gitlab.po | 1446 +- locale/as_IN/gitlab.po | 1374 +- locale/az_AZ/gitlab.po | 1374 +- locale/ba_RU/gitlab.po | 1356 +- locale/bg/gitlab.po | 1374 +- locale/bn_BD/gitlab.po | 1374 +- locale/bn_IN/gitlab.po | 1374 +- locale/br_FR/gitlab.po | 1428 +- locale/bs_BA/gitlab.po | 1394 +- locale/ca_ES/gitlab.po | 1374 +- locale/cs_CZ/gitlab.po | 1410 +- locale/cy_GB/gitlab.po | 1446 +- locale/da_DK/gitlab.po | 1396 +- locale/de/gitlab.po | 2256 +- locale/el_GR/gitlab.po | 1374 +- locale/en_GB/gitlab.po | 3028 +- locale/eo/gitlab.po | 1374 +- locale/es/gitlab.po | 1872 +- locale/et_EE/gitlab.po | 1374 +- locale/fa_IR/gitlab.po | 1374 +- locale/fi_FI/gitlab.po | 1374 +- locale/fil_PH/gitlab.po | 1374 +- locale/fr/gitlab.po | 1536 +- locale/gitlab.pot | 1149 +- locale/gl_ES/gitlab.po | 1374 +- locale/he_IL/gitlab.po | 1410 +- locale/hi_IN/gitlab.po | 1374 +- locale/hr_HR/gitlab.po | 1392 +- locale/hu_HU/gitlab.po | 1374 +- locale/hy_AM/gitlab.po | 1374 +- locale/id_ID/gitlab.po | 1356 +- locale/ig_NG/gitlab.po | 1356 +- locale/is_IS/gitlab.po | 1374 +- locale/it/gitlab.po | 1374 +- locale/ja/gitlab.po | 1370 +- locale/ka_GE/gitlab.po | 1374 +- locale/kab/gitlab.po | 1374 +- locale/ko/gitlab.po | 1524 +- locale/ku_TR/gitlab.po | 1374 +- locale/ky_KG/gitlab.po | 1374 +- locale/lt_LT/gitlab.po | 1410 +- locale/mk_MK/gitlab.po | 1374 +- locale/ml_IN/gitlab.po | 1374 +- locale/mn_MN/gitlab.po | 1374 +- locale/nb_NO/gitlab.po | 1612 +- locale/nl_NL/gitlab.po | 1374 +- locale/or_IN/gitlab.po | 1374 +- locale/pa_IN/gitlab.po | 1374 +- locale/pl_PL/gitlab.po | 1418 +- locale/pt_BR/gitlab.po | 1682 +- locale/pt_PT/gitlab.po | 1378 +- locale/ro_RO/gitlab.po | 1630 +- locale/ru/gitlab.po | 1438 +- locale/si_LK/gitlab.po | 3276 +- locale/sk_SK/gitlab.po | 1410 +- locale/sl_SI/gitlab.po | 1410 +- locale/sq_AL/gitlab.po | 1374 +- locale/sr_CS/gitlab.po | 1392 +- locale/sr_SP/gitlab.po | 1392 +- locale/sv_SE/gitlab.po | 1374 +- locale/sw_KE/gitlab.po | 1374 +- locale/ta_IN/gitlab.po | 1374 +- locale/th_TH/gitlab.po | 1356 +- locale/tr_TR/gitlab.po | 1378 +- locale/uk/gitlab.po | 1870 +- locale/ur_PK/gitlab.po | 1374 +- locale/uz_UZ/gitlab.po | 1374 +- locale/vi_VN/gitlab.po | 1356 +- locale/zh_CN/gitlab.po | 1452 +- locale/zh_HK/gitlab.po | 1356 +- locale/zh_TW/gitlab.po | 30444 ++++++++-------- package.json | 133 +- qa/Dockerfile | 2 +- qa/Gemfile | 4 + qa/Gemfile.lock | 19 +- qa/Rakefile | 7 +- qa/qa.rb | 12 +- qa/qa/ce/strategy.rb | 10 + qa/qa/flow/purchase.rb | 2 + .../users/components/impersonation_tokens.rb | 18 + qa/qa/page/admin/overview/users/show.rb | 20 + qa/qa/page/alert/auto_devops_alert.rb | 2 +- qa/qa/page/component/access_tokens.rb | 10 +- qa/qa/page/component/ci_badge_link.rb | 2 - qa/qa/page/component/confirm_modal.rb | 11 +- qa/qa/page/component/groups_filter.rb | 4 +- qa/qa/page/component/issuable/sidebar.rb | 4 +- qa/qa/page/component/namespace_select.rb | 5 + qa/qa/page/component/wiki_page_form.rb | 4 +- qa/qa/page/dashboard/groups.rb | 9 +- qa/qa/page/dashboard/projects.rb | 6 +- qa/qa/page/file/edit.rb | 24 + qa/qa/page/file/shared/editor.rb | 6 +- qa/qa/page/group/new.rb | 6 +- qa/qa/page/issuable/new.rb | 19 +- qa/qa/page/label/index.rb | 10 +- qa/qa/page/label/new.rb | 12 +- qa/qa/page/main/login.rb | 10 +- qa/qa/page/merge_request/show.rb | 38 +- qa/qa/page/profile/ssh_keys.rb | 6 +- qa/qa/page/project/new.rb | 6 +- qa/qa/page/project/pipeline_editor/show.rb | 25 +- qa/qa/page/project/settings/advanced.rb | 6 +- qa/qa/page/project/settings/integrations.rb | 7 +- qa/qa/page/project/settings/pages.rb | 25 + .../project/settings/protected_branches.rb | 4 - .../page/project/settings/services/jenkins.rb | 6 +- qa/qa/page/project/show.rb | 6 +- qa/qa/page/project/sub_menus/settings.rb | 8 + qa/qa/page/project/web_ide/edit.rb | 12 +- qa/qa/page/view.rb | 2 +- qa/qa/resource/api_fabricator.rb | 19 +- qa/qa/resource/group.rb | 11 +- qa/qa/resource/group_ci_variable.rb | 47 + qa/qa/resource/impersonation_token.rb | 97 + qa/qa/resource/integrations/project.rb | 25 + qa/qa/resource/personal_access_token.rb | 23 +- qa/qa/resource/personal_access_token_cache.rb | 12 +- qa/qa/resource/project.rb | 32 +- qa/qa/resource/sandbox.rb | 7 + qa/qa/runtime/env.rb | 12 + qa/qa/runtime/ip_address.rb | 5 +- qa/qa/runtime/user.rb | 2 + qa/qa/scenario/test/integration/metrics.rb | 13 + qa/qa/scenario/test/sanity/selectors.rb | 7 +- qa/qa/service/docker_run/gitlab_runner.rb | 3 +- qa/qa/service/docker_run/jenkins.rb | 43 +- qa/qa/service/praefect_manager.rb | 8 +- .../api/1_manage/import_github_repo_spec.rb | 6 +- .../1_manage/import_large_github_repo_spec.rb | 62 +- .../features/api/1_manage/rate_limits_spec.rb | 2 +- .../1_manage/user_inherited_access_spec.rb | 5 + .../changing_repository_storage_spec.rb | 22 + .../3_create/gitaly/distributed_reads_spec.rb | 9 +- .../gitaly/praefect_replication_queue_spec.rb | 21 +- .../gitaly/praefect_repo_sync_spec.rb | 1 - ...g_revision_trigger_prereceive_hook_spec.rb | 32 + .../api/5_package/container_registry_spec.rb | 8 +- .../features/api/8_monitor/metrics_spec.rb | 50 + .../performance_bar_spec.rb | 2 +- .../service_ping_default_enabled_spec.rb | 2 +- .../service_ping_disabled_spec.rb | 2 +- .../1_manage/group/transfer_project_spec.rb | 37 +- .../1_manage/login/2fa_ssh_recovery_spec.rb | 2 +- .../login/maintain_log_in_mixed_env_spec.rb | 2 +- .../1_manage/login/register_spec.rb | 6 +- .../project/create_project_badge_spec.rb | 4 - .../1_manage/project/create_project_spec.rb | 9 +- .../project/invite_group_to_project_spec.rb | 2 +- .../project/project_owner_permissions_spec.rb | 2 +- .../1_manage/user/impersonation_token_spec.rb | 32 + .../add_design_content_spec.rb | 7 +- .../archive_design_content_spec.rb | 4 +- .../modify_design_content_spec.rb | 4 +- .../2_plan/issue/create_issue_spec.rb | 6 +- .../issue/custom_issue_template_spec.rb | 2 +- .../jenkins/jenkins_build_status_spec.rb | 185 +- .../create_merge_request_via_template_spec.rb | 2 +- .../custom_commit_suggestion_spec.rb | 7 +- .../pages/pages_pipeline_spec.rb | 3 +- .../repository/license_detecton_spec.rb | 8 +- .../repository}/protected_tags_spec.rb | 9 +- .../repository/ssh_key_support_spec.rb | 3 +- .../snippet/create_personal_snippet_spec.rb | 2 +- .../source_editor_toolbar_spec.rb | 55 + ...t_spec.rb => pipeline_editor_tabs_spec.rb} | 35 +- .../pipeline_with_image_pull_policy_spec.rb | 175 + .../container_registry_spec.rb | 4 +- .../dependency_proxy/dependency_proxy_spec.rb | 103 +- .../auto_devops/auto_devops_templates_spec.rb | 2 +- .../create_project_with_auto_devops_spec.rb | 2 +- .../features/sanity/feature_flags_spec.rb | 4 +- qa/qa/support/helpers/mask_token.rb | 10 + qa/qa/support/knapsack_report.rb | 6 +- qa/qa/support/loglinking.rb | 16 +- qa/qa/support/parallel_pipeline_jobs.rb | 76 + qa/qa/tools/delete_projects.rb | 16 +- qa/qa/tools/delete_user_projects.rb | 64 + qa/qa/tools/lib/project.rb | 33 + qa/qa/vendor/jenkins/README.md | 61 + qa/qa/vendor/jenkins/client.rb | 298 + qa/qa/vendor/jenkins/helpers.rb | 36 + qa/qa/vendor/jenkins/job.rb | 166 + qa/qa/vendor/jenkins/page/base.rb | 24 - qa/qa/vendor/jenkins/page/configure.rb | 48 - qa/qa/vendor/jenkins/page/configure_job.rb | 77 - qa/qa/vendor/jenkins/page/last_job_console.rb | 44 - qa/qa/vendor/jenkins/page/login.rb | 31 - qa/qa/vendor/jenkins/page/new_credentials.rb | 50 - qa/qa/vendor/jenkins/page/new_job.rb | 38 - .../scenario/test/sanity/selectors_spec.rb | 20 +- .../service/docker_run/gitlab_runner_spec.rb | 52 +- qa/spec/support/loglinking_spec.rb | 34 +- qa/spec/support/page_error_checker_spec.rb | 5 + qa/tasks/knapsack.rake | 25 +- qa/tasks/reliable_report.rake | 2 - qa/tasks/vulnerabilities.rake | 2 - results.txt | 0 rubocop/code_reuse_helpers.rb | 14 +- rubocop/cop/code_reuse/worker.rb | 4 +- rubocop/cop/gemspec/avoid_executing_git.rb | 62 + .../gitlab/deprecate_track_redis_hll_event.rb | 33 + rubocop/cop/gitlab/feature_available_usage.rb | 3 + rubocop/cop/gitlab/mark_used_feature_flags.rb | 2 +- .../migration/add_limit_to_text_columns.rb | 2 +- .../scalability/bulk_perform_with_context.rb | 2 +- rubocop/cop_todo.rb | 49 + rubocop/formatter/todo_formatter.rb | 48 +- .../lib/glfm/render_wysiwyg_html_and_json.js | 3 +- scripts/lib/glfm/update_example_snapshots.rb | 10 + scripts/lint-vendored-gems.sh | 5 + scripts/perf/query_limiting_report.rb | 2 +- scripts/qa/testcases-check | 4 +- scripts/review_apps/review-apps.sh | 4 +- scripts/static-analysis | 7 +- scripts/trigger-build.rb | 5 +- scripts/undercoverage | 3 +- scripts/utils.sh | 6 +- scripts/validate_migration_schema | 2 +- security.txt | 16 +- .../application_cable/connection_spec.rb | 2 +- spec/channels/awareness_channel_spec.rb | 3 +- spec/commands/sidekiq_cluster/cli_spec.rb | 4 +- .../diffs/overflow_warning_component_spec.rb | 2 +- spec/components/diffs/stats_component_spec.rb | 2 +- spec/components/docs/01_overview.html.erb | 20 + .../pajamas/avatar_component_spec.rb | 135 + .../pajamas/banner_component_spec.rb | 2 +- .../pajamas/button_component_spec.rb | 54 +- .../pajamas/checkbox_component_spec.rb | 6 - .../pajamas/checkbox_tag_component_spec.rb | 59 + ...heckbox_radio_label_with_help_text_spec.rb | 77 +- .../pajamas/alert_component_preview.rb | 19 + .../pajamas/avatar_component_preview.rb | 27 + .../pajamas/banner_component_preview.rb | 54 + .../pajamas/button_component_preview.rb | 56 + .../pajamas/card_component_preview.rb | 27 + .../pajamas/spinner_component_preview.rb | 22 + .../consumer/endpoints/project/pipelines.js | 16 - .../merge_request/diffs_batch.fixture.js | 10 +- .../merge_request/diffs_metadata.fixture.js | 10 +- .../merge_request/discussions.fixture.js | 10 +- .../pipeline/create_a_new_pipeline.fixture.js | 39 + .../pipeline/delete_pipeline.fixture.js | 24 + .../get_list_project_pipelines.fixture.js | 10 +- .../get_pipeline_header_data.fixture.js | 9 +- .../update_pipeline_schedule.fixture.js | 44 + .../consumer/helpers/common_regex_patterns.js | 1 + .../resources/api/pipeline_schedules.js | 26 + .../api}/project/merge_requests.js | 14 +- .../resources/api/project/pipelines.js | 34 + .../consumer/resources/graphql/pipelines.js | 21 + .../specs/project/merge_request/show.spec.js | 36 +- .../specs/project/pipeline/index.spec.js | 16 +- .../specs/project/pipeline/new.spec.js | 41 + .../specs/project/pipeline/show.spec.js | 54 +- .../project/pipeline_schedule/edit.spec.js | 41 + ...merge_request_diffs_metadata_endpoint.json | 4 +- ...elines#new-post_create_a_new_pipeline.json | 43 + .../show/pipelines#show-delete_pipeline.json | 44 + ...les#edit-put_edit_a_pipeline_schedule.json | 48 + .../{ => show}/diffs_batch_helper.rb | 4 +- .../{ => show}/diffs_metadata_helper.rb | 4 +- .../{ => show}/discussions_helper.rb | 4 +- .../index/create_a_new_pipeline_helper.rb | 16 + .../get_list_project_pipelines_helper.rb | 4 +- .../pipeline/show/delete_pipeline_helper.rb | 16 + .../get_pipeline_header_data_helper.rb | 4 +- .../update_pipeline_schedule_helper.rb | 16 + .../merge_request/diffs_batch_state.rb | 18 - .../merge_request/diffs_metadata_state.rb | 18 - .../merge_request/discussions_state.rb | 17 - .../project/merge_request/show_state.rb | 47 + .../{pipelines_state.rb => index_state.rb} | 0 .../states/project/pipeline/new_state.rb | 24 + .../{pipeline_state.rb => show_state.rb} | 1 + .../project/pipeline_schedule/edit_state.rb | 15 + .../admin/dev_ops_report_controller_spec.rb | 11 + .../admin/identities_controller_spec.rb | 24 + .../admin/topics_controller_spec.rb | 40 + .../admin/usage_trends_controller_spec.rb | 13 + .../admin/users_controller_spec.rb | 6 +- .../groups/uploads_controller_spec.rb | 104 +- .../import/bulk_imports_controller_spec.rb | 38 +- .../personal_access_tokens_controller_spec.rb | 32 + spec/controllers/profiles_controller_spec.rb | 6 +- .../cycle_analytics/stages_controller_spec.rb | 48 + .../projects/blob_controller_spec.rb | 1 - .../ci/secure_files_controller_spec.rb | 67 - .../projects/clusters_controller_spec.rb | 12 + .../projects/commit_controller_spec.rb | 17 +- .../projects/compare_controller_spec.rb | 19 +- .../projects/environments_controller_spec.rb | 2 +- .../projects/hooks_controller_spec.rb | 2 +- .../projects/issues_controller_spec.rb | 34 +- .../merge_requests_controller_spec.rb | 46 +- .../projects/notes_controller_spec.rb | 71 +- .../projects/pages_controller_spec.rb | 48 +- .../protected_branches_controller_spec.rb | 54 +- .../projects/tags/releases_controller_spec.rb | 103 - .../projects/uploads_controller_spec.rb | 184 +- spec/controllers/projects_controller_spec.rb | 86 +- .../registrations_controller_spec.rb | 8 +- spec/controllers/search_controller_spec.rb | 67 +- spec/events/ci/pipeline_created_event_spec.rb | 27 - spec/events/pages/page_deleted_event_spec.rb | 35 - spec/events/pages/page_deployed_event_spec.rb | 34 - .../projects/project_created_event_spec.rb | 34 - .../projects/project_deleted_event_spec.rb | 35 - .../project_path_changed_event_spec.rb | 46 - spec/factories/ci/builds.rb | 27 + spec/factories/ci/job_artifacts.rb | 22 + spec/factories/ci/runners.rb | 4 +- spec/factories/ci/secure_files.rb | 6 + spec/factories/ci/variables.rb | 1 + .../async_indexes/postgres_async_index.rb | 4 + spec/factories/member_roles.rb | 8 + spec/factories/projects.rb | 10 + spec/factories/users.rb | 2 +- spec/factories/users/project_user_callouts.rb | 10 + spec/factories/work_items.rb | 4 + spec/features/admin/admin_appearance_spec.rb | 251 +- spec/features/admin/admin_mode/login_spec.rb | 370 +- spec/features/admin/users/users_spec.rb | 4 +- spec/features/admin_variables_spec.rb | 34 + spec/features/boards/board_filters_spec.rb | 4 +- spec/features/boards/boards_spec.rb | 8 +- .../reload_boards_on_browser_back_spec.rb | 6 +- spec/features/clusters/create_agent_spec.rb | 5 +- spec/features/cycle_analytics_spec.rb | 18 +- .../dashboard/archived_projects_spec.rb | 2 +- .../dashboard/issuables_counter_spec.rb | 82 +- .../features/dashboard/merge_requests_spec.rb | 4 +- .../user_filters_errors_by_status_spec.rb | 4 +- spec/features/group_variables_spec.rb | 10 +- .../groups/crm/contacts/create_spec.rb | 4 +- spec/features/groups/group_runners_spec.rb | 82 +- spec/features/groups/issues_spec.rb | 6 +- .../groups/members/manage_members_spec.rb | 4 +- spec/features/groups/show_spec.rb | 49 +- spec/features/groups_spec.rb | 80 +- spec/features/invites_spec.rb | 22 +- .../issuables/user_sees_sidebar_spec.rb | 2 +- spec/features/issues/form_spec.rb | 7 + spec/features/issues/gfm_autocomplete_spec.rb | 2 +- spec/features/issues/incident_issue_spec.rb | 76 +- spec/features/issues/issue_sidebar_spec.rb | 8 +- spec/features/issues/related_issues_spec.rb | 20 +- spec/features/issues/todo_spec.rb | 2 +- .../issues/user_bulk_edits_issues_spec.rb | 2 +- .../issues/user_creates_issue_spec.rb | 8 +- spec/features/issues/user_edits_issue_spec.rb | 6 +- .../issues/user_interacts_with_awards_spec.rb | 2 +- .../issues/user_uses_quick_actions_spec.rb | 2 +- spec/features/markdown/copy_as_gfm_spec.rb | 19 +- .../markdown/gitlab_flavored_markdown_spec.rb | 2 + spec/features/markdown/json_table_spec.rb | 40 + .../merge_request/batch_comments_spec.rb | 10 +- .../maintainer_edits_fork_spec.rb | 6 +- .../merge_request/user_approves_spec.rb | 2 +- .../user_comments_on_merge_request_spec.rb | 39 + ...er_customizes_merge_commit_message_spec.rb | 4 +- .../user_edits_assignees_sidebar_spec.rb | 2 +- .../user_merges_merge_request_spec.rb | 21 - .../user_opens_context_commits_modal_spec.rb | 26 + .../user_posts_diff_notes_spec.rb | 1 - .../user_sees_closing_issues_message_spec.rb | 4 +- .../user_sees_deployment_widget_spec.rb | 2 +- .../merge_request/user_sees_diff_spec.rb | 2 +- .../user_sees_merge_request_pipelines_spec.rb | 2 +- .../merge_request/user_sees_pipelines_spec.rb | 11 +- .../merge_request/user_sees_versions_spec.rb | 2 +- .../user_uses_quick_actions_spec.rb | 2 +- .../merge_requests/user_mass_updates_spec.rb | 14 - spec/features/oauth_registration_spec.rb | 39 + ...late_new_pipeline_vars_with_params_spec.rb | 2 - spec/features/profile_spec.rb | 2 +- spec/features/profiles/password_spec.rb | 15 +- .../profiles/personal_access_tokens_spec.rb | 6 - .../profiles/user_edit_profile_spec.rb | 4 +- .../profiles/user_visits_profile_spec.rb | 20 +- .../features/projects/blobs/blob_show_spec.rb | 2 +- spec/features/projects/blobs/edit_spec.rb | 5 +- spec/features/projects/ci/lint_spec.rb | 5 +- .../features/projects/ci/secure_files_spec.rb | 61 - spec/features/projects/cluster_agents_spec.rb | 2 +- .../commits/user_browses_commits_spec.rb | 2 +- spec/features/projects/compare_spec.rb | 2 +- .../projects/environments/environment_spec.rb | 8 +- ...eate_license_file_in_empty_project_spec.rb | 2 +- .../projects/files/user_browses_files_spec.rb | 4 +- .../projects/files/user_creates_files_spec.rb | 19 +- .../projects/files/user_edits_files_spec.rb | 26 +- .../projects/issuable_templates_spec.rb | 28 + .../projects/jobs/user_browses_jobs_spec.rb | 1 + .../projects/members/manage_groups_spec.rb | 2 +- .../projects/members/manage_members_spec.rb | 222 +- .../projects/merge_request_button_spec.rb | 20 +- spec/features/projects/new_project_spec.rb | 32 +- .../projects/pages/user_adds_domain_spec.rb | 6 +- .../user_configures_pages_pipeline_spec.rb | 59 + .../user_edits_lets_encrypt_settings_spec.rb | 3 +- .../pages/user_edits_settings_spec.rb | 13 +- .../projects/pipeline_schedules_spec.rb | 7 +- .../pipelines/legacy_pipeline_spec.rb | 31 + .../pipelines/legacy_pipelines_spec.rb | 3 +- .../projects/pipelines/pipeline_spec.rb | 9 +- .../projects/pipelines/pipelines_spec.rb | 3 +- .../registry_settings_cleanup_tags_spec.rb | 49 + .../settings/registry_settings_spec.rb | 4 - .../settings/service_desk_setting_spec.rb | 2 +- .../projects/tags/user_edits_tags_spec.rb | 74 +- .../projects/tags/user_views_tag_spec.rb | 8 + .../projects/tags/user_views_tags_spec.rb | 30 +- .../projects/tree/create_directory_spec.rb | 4 +- .../projects/tree/create_file_spec.rb | 4 +- spec/features/projects/tree/tree_show_spec.rb | 2 +- spec/features/projects_spec.rb | 28 +- spec/features/runners_spec.rb | 6 +- .../search/user_searches_for_commits_spec.rb | 2 + spec/features/signed_commits_spec.rb | 2 +- .../tags/developer_updates_tag_spec.rb | 56 - spec/features/task_lists_spec.rb | 12 +- .../user_uploads_avatar_to_profile_spec.rb | 2 +- .../uploads/user_uploads_file_to_note_spec.rb | 11 +- .../users/email_verification_on_login_spec.rb | 2 +- spec/features/users/login_spec.rb | 38 +- spec/features/users/show_spec.rb | 10 +- spec/features/users/signup_spec.rb | 553 +- ...ploy_keys_with_write_access_finder_spec.rb | 53 + spec/finders/ci/runners_finder_spec.rb | 6 +- .../clusters/knative_services_finder_spec.rb | 2 + .../finder_with_cross_project_access_spec.rb | 6 +- spec/finders/crm/contacts_finder_spec.rb | 61 + spec/finders/fork_targets_finder_spec.rb | 40 +- ...accepting_project_transfers_finder_spec.rb | 63 + .../finders/groups/user_groups_finder_spec.rb | 114 +- spec/finders/projects/topics_finder_spec.rb | 28 +- spec/finders/tags_finder_spec.rb | 10 + .../api/schemas/entities/discussion.json | 3 +- .../api/schemas/external_validation.json | 6 +- .../api/schemas/public_api/v4/notes.json | 3 +- .../emails/valid_reply_signed_smime.eml | 588 +- .../corrupted_project_export.tar.gz | Bin 3846 -> 4603 bytes .../adapters/zip_stream/100_files.zip | Bin 0 -> 15902 bytes .../zip_stream/200_mb_decompressed.zip | Bin 0 -> 203718 bytes .../adapters/zip_stream/multiple_files.zip | Bin 0 -> 332 bytes .../adapters/zip_stream/single_file.zip | Bin 0 -> 177 bytes .../adapters/zip_stream/with_directory.zip | Bin 0 -> 520 bytes .../artifacts/adapters/zip_stream/zipbomb.zip | Bin 0 -> 1042247 bytes .../gitlab/import_export/complex/project.json | 71 +- .../tree/project/merge_requests.ndjson | 4 +- spec/fixtures/markdown.md.erb | 2 + .../my-app-1.0-20180724.124855-1.pom.sha1 | 1 + spec/fixtures/whats_new/20201225_01_01.yml | 6 +- spec/fixtures/whats_new/20201225_01_02.yml | 6 +- spec/fixtures/whats_new/20201225_01_04.yml | 18 +- spec/fixtures/whats_new/20201225_01_05.yml | 12 +- spec/fixtures/whats_new/blank.yml | 4 +- spec/fixtures/whats_new/invalid.yml | 16 +- spec/fixtures/whats_new/valid.yml | 16 +- .../__helpers__/mock_apollo_helper.js | 1 - .../frontend/__helpers__/mock_dom_observer.js | 2 - .../frontend/__helpers__/mocks/axios_utils.js | 2 + spec/frontend/__helpers__/stub_component.js | 8 + spec/frontend/__helpers__/timeout.js | 59 - .../__helpers__/vue_mount_component_helper.js | 29 - .../__helpers__/vue_test_utils_helper.js | 19 +- .../__helpers__/vue_test_utils_helper_spec.js | 57 +- .../__helpers__/vuex_action_helper.js | 6 +- .../__helpers__/vuex_action_helper_spec.js | 2 +- .../frontend/__helpers__/wait_for_promises.js | 6 +- .../__helpers__/web_worker_transformer.js | 2 +- .../frontend/__mocks__/monaco-editor/index.js | 1 - .../expires_at_field_spec.js.snap | 17 +- .../components/expires_at_field_spec.js | 9 + .../components/projects_field_spec.js | 131 - .../projects_token_selector_spec.js | 266 - spec/frontend/access_tokens/index_spec.js | 45 +- .../add_context_commits_modal_spec.js | 4 +- .../components/devops_score_spec.js | 2 +- .../components/signup_checkbox_spec.js | 2 +- .../components/signup_form_spec.js | 4 +- .../statistics_panel/components/app_spec.js | 2 +- .../users/components/actions/actions_spec.js | 2 +- .../admin/users/components/app_spec.js | 2 +- .../modals/delete_user_modal_spec.js | 14 +- .../users/components/user_actions_spec.js | 4 +- .../users/components/user_avatar_spec.js | 6 +- .../users/components/users_table_spec.js | 8 +- spec/frontend/admin/users/index_spec.js | 4 +- spec/frontend/api/groups_api_spec.js | 46 + .../components/navigation_popover_spec.js | 88 - .../components/review_bar_spec.js | 51 +- .../behaviors/components/json_table_spec.js | 162 + spec/frontend/behaviors/gl_emoji_spec.js | 2 +- .../markdown/render_json_table_spec.js | 119 + .../blob/3d_viewer/mesh_object_spec.js | 4 +- .../frontend/blob/blob_links_tracking_spec.js | 60 + .../blob/components/blob_content_spec.js | 22 +- .../blob/components/blob_edit_content_spec.js | 2 +- .../blob/components/blob_edit_header_spec.js | 6 +- .../blob_header_default_actions_spec.js | 8 +- .../components/blob_header_filepath_spec.js | 4 +- .../blob/components/blob_header_spec.js | 14 +- .../blob_header_viewer_switcher_spec.js | 6 +- .../blob/notebook/notebook_viever_spec.js | 8 +- spec/frontend/blob/pdf/pdf_viewer_spec.js | 6 +- .../blob/pipeline_tour_success_modal_spec.js | 16 +- spec/frontend/blob/sketch/index_spec.js | 2 +- .../components/popover_spec.js | 2 +- spec/frontend/boards/board_card_inner_spec.js | 6 +- spec/frontend/boards/board_list_spec.js | 2 +- .../board_add_new_column_form_spec.js | 30 +- .../board_add_new_column_trigger_spec.js | 4 +- .../components/board_blocked_icon_spec.js | 8 +- .../boards/components/board_card_spec.js | 2 +- .../components/board_content_sidebar_spec.js | 2 +- .../boards/components/board_content_spec.js | 12 +- .../components/board_list_header_spec.js | 2 +- .../boards/components/board_new_item_spec.js | 8 +- .../components/board_settings_sidebar_spec.js | 16 +- .../boards/components/boards_selector_spec.js | 2 +- .../components/new_board_button_spec.js | 6 +- .../sidebar/board_editable_item_spec.js | 2 +- .../board_sidebar_time_tracker_spec.js | 2 +- .../sidebar/board_sidebar_title_spec.js | 8 +- spec/frontend/boards/project_select_spec.js | 9 +- spec/frontend/boards/stores/mutations_spec.js | 15 +- .../wait_for_captcha_to_be_solved_spec.js | 5 +- .../components/ci_admin_variables_spec.js | 178 + .../ci_environments_dropdown_spec.js | 139 + .../components/ci_group_variables_spec.js | 183 + .../components/ci_variable_modal_spec.js | 383 + .../components/ci_variable_settings_spec.js | 128 + .../components/ci_variable_table_spec.js | 98 + .../legacy_ci_variable_modal_spec.js | 8 +- spec/frontend/ci_variable_list/mocks.js | 109 + spec/frontend/ci_variable_list/utils_spec.js | 78 + .../components/activity_history_item_spec.js | 2 +- .../components/create_token_modal_spec.js | 2 +- .../agents/components/token_table_spec.js | 4 +- .../frontend/clusters/clusters_bundle_spec.js | 45 +- .../clusters/components/new_cluster_spec.js | 4 +- .../forms/components/integration_form_spec.js | 4 +- .../components/install_agent_modal_spec.js | 1 - .../commit/pipelines/pipelines_table_spec.js | 39 +- .../components/bubble_menus/link_spec.js | 2 +- .../components/bubble_menus/media_spec.js | 2 +- .../components/content_editor_spec.js | 14 + .../components/toolbar_more_dropdown_spec.js | 21 +- .../components/top_toolbar_spec.js | 2 +- .../table_of_contents_spec.js.snap | 115 + .../wrappers/table_cell_base_spec.js | 4 +- .../wrappers/table_of_contents_spec.js | 84 + .../content_editor/extensions/image_spec.js | 2 +- .../markdown_processing_spec_helper.js | 4 - .../remark_markdown_processing_spec.js | 238 +- .../render_html_and_json_for_all_examples.js | 4 + .../services/markdown_serializer_spec.js | 144 +- .../services/table_of_contents_utils_spec.js | 96 + .../frontend/crm/contact_form_wrapper_spec.js | 9 +- spec/frontend/crm/contacts_root_spec.js | 56 +- spec/frontend/crm/form_spec.js | 38 +- spec/frontend/crm/mock_data.js | 32 + .../crm/organization_form_wrapper_spec.js | 2 +- spec/frontend/cycle_analytics/base_spec.js | 20 - spec/frontend/cycle_analytics/mock_data.js | 18 - .../cycle_analytics/store/actions_spec.js | 56 +- .../cycle_analytics/store/mutations_spec.js | 43 +- .../components/delete_button_spec.js | 4 +- .../design_notes/design_discussion_spec.js | 14 +- .../design_notes/design_note_spec.js | 2 +- .../design_notes/design_reply_form_spec.js | 18 +- .../toggle_replies_widget_spec.js | 8 +- .../components/design_scaler_spec.js | 2 +- .../components/design_sidebar_spec.js | 8 +- .../components/design_todo_button_spec.js | 2 +- .../components/image_spec.js | 2 +- .../components/list/item_spec.js | 10 +- .../components/toolbar/index_spec.js | 10 +- .../components/upload/button_spec.js | 2 +- .../upload/design_version_dropdown_spec.js | 12 +- .../pages/design/index_spec.js | 12 +- .../design_management/pages/index_spec.js | 14 +- .../frontend/design_management/router_spec.js | 4 +- .../diffs/components/diff_file_header_spec.js | 2 +- .../diffs/components/diff_row_spec.js | 10 +- spec/frontend/diffs/store/utils_spec.js | 8 +- spec/frontend/dropzone_input_spec.js | 4 +- .../editor/schema/ci/ci_schema_spec.js | 10 +- .../yaml_tests/negative_tests/artifacts.yml | 18 + .../ci/yaml_tests/negative_tests/cache.yml | 8 +- .../ci/yaml_tests/negative_tests/include.yml | 8 +- .../ci/yaml_tests/negative_tests/rules.yml | 14 + .../yaml_tests/positive_tests/artifacts.yml | 25 + .../ci/yaml_tests/positive_tests/cache.yml | 3 +- .../ci/yaml_tests/positive_tests/filter.yml | 10 +- .../ci/yaml_tests/positive_tests/include.yml | 15 +- .../ci/yaml_tests/positive_tests/rules.yml | 23 +- .../editor/source_editor_instance_spec.js | 2 +- spec/frontend/editor/source_editor_spec.js | 7 +- spec/frontend/environment.js | 1 - .../environments/canary_ingress_spec.js | 10 +- .../environments/canary_update_modal_spec.js | 4 +- .../confirm_rollback_modal_spec.js | 14 +- .../deploy_board_component_spec.js | 8 +- .../environments/edit_environment_spec.js | 2 +- .../environments/environment_actions_spec.js | 12 +- .../environments/environment_delete_spec.js | 2 +- .../environments/environment_item_spec.js | 12 +- .../environments/environment_pin_spec.js | 4 +- .../environments/environment_rollback_spec.js | 4 +- .../environments/environment_stop_spec.js | 2 +- .../environments/environment_table_spec.js | 4 +- .../environments_detail_header_spec.js | 12 + .../folder/environments_folder_view_spec.js | 6 +- .../environments/new_environment_spec.js | 2 +- .../components/error_details_spec.js | 44 +- .../components/error_tracking_actions_spec.js | 2 +- .../components/error_tracking_list_spec.js | 24 +- .../components/stacktrace_entry_spec.js | 10 +- .../components/stacktrace_spec.js | 4 +- .../components/project_dropdown_spec.js | 24 +- .../configure_feature_flags_modal_spec.js | 4 +- .../components/empty_state_spec.js | 14 +- .../components/environments_dropdown_spec.js | 10 +- .../components/feature_flags_table_spec.js | 4 +- .../feature_flags/components/form_spec.js | 18 +- .../new_environments_dropdown_spec.js | 24 +- .../components/new_feature_flag_spec.js | 6 +- .../strategies/flexible_rollout_spec.js | 12 +- .../strategies/gitlab_user_list_spec.js | 8 +- .../strategies/parameter_form_group_spec.js | 2 +- .../strategies/percent_rollout_spec.js | 12 +- .../strategies/users_with_id_spec.js | 2 +- .../components/strategy_parameters_spec.js | 6 +- .../feature_flags/components/strategy_spec.js | 40 +- spec/frontend/fixtures/integrations.rb | 2 +- spec/frontend/fixtures/issues.rb | 40 + spec/frontend/fixtures/namespaces.rb | 46 + .../fixtures/prometheus_integration.rb | 2 +- spec/frontend/fixtures/runner.rb | 44 +- .../frequent_items/components/app_spec.js | 13 +- spec/frontend/gfm_auto_complete/mock_data.js | 34 + spec/frontend/gfm_auto_complete_spec.js | 48 +- .../components/shared_runners_form_spec.js | 29 +- spec/frontend/groups/components/app_spec.js | 24 - .../groups/components/group_item_spec.js | 49 +- .../components/group_name_and_path_spec.js | 75 +- .../frontend/groups/components/groups_spec.js | 4 +- .../components/transfer_group_form_spec.js | 1 - .../header_search/components/app_spec.js | 72 +- spec/frontend/helpers/diffs_helper_spec.js | 32 +- .../ide/components/activity_bar_spec.js | 72 +- .../ide/components/branches/item_spec.js | 6 +- .../components/branches/search_list_spec.js | 6 +- .../commit_sidebar/editor_header_spec.js | 4 +- .../components/commit_sidebar/form_spec.js | 6 +- .../ide/components/error_message_spec.js | 4 +- .../file_templates/dropdown_spec.js | 2 +- .../ide/components/ide_file_row_spec.js | 4 +- .../ide/components/ide_project_header_spec.js | 2 + .../ide/components/ide_review_spec.js | 4 +- .../ide/components/ide_side_bar_spec.js | 34 +- .../ide/components/ide_sidebar_nav_spec.js | 6 +- spec/frontend/ide/components/ide_spec.js | 2 +- .../ide/components/ide_status_bar_spec.js | 124 +- .../ide/components/ide_status_list_spec.js | 4 +- .../ide/components/ide_status_mr_spec.js | 4 +- spec/frontend/ide/components/ide_tree_spec.js | 2 +- .../jobs/detail/scroll_button_spec.js | 2 +- .../frontend/ide/components/jobs/list_spec.js | 10 +- .../ide/components/jobs/stage_spec.js | 8 +- .../components/merge_requests/list_spec.js | 8 +- .../ide/components/new_dropdown/index_spec.js | 82 +- .../panes/collapsible_sidebar_spec.js | 2 +- .../ide/components/panes/right_spec.js | 8 +- .../components/pipelines/empty_state_spec.js | 2 +- .../ide/components/pipelines/list_spec.js | 12 +- .../ide/components/preview/clientside_spec.js | 2 +- .../ide/components/preview/navigator_spec.js | 4 +- .../components/repo_commit_section_spec.js | 12 +- .../ide/components/repo_editor_spec.js | 5 +- spec/frontend/ide/components/repo_tab_spec.js | 6 +- .../ide/components/resizable_panel_spec.js | 2 +- .../shared/commit_message_field_spec.js | 2 +- .../components/terminal/empty_state_spec.js | 10 +- .../ide/components/terminal/session_spec.js | 4 +- .../terminal/terminal_controls_spec.js | 2 +- .../ide/components/terminal/terminal_spec.js | 16 +- .../ide/components/terminal/view_spec.js | 8 +- .../terminal_sync_status_safe_spec.js | 4 +- .../terminal_sync_status_spec.js | 8 +- .../ide/lib/common/model_manager_spec.js | 4 +- spec/frontend/ide/lib/diff/diff_spec.js | 8 +- spec/frontend/ide/stores/actions/file_spec.js | 8 +- spec/frontend/ide/stores/actions/tree_spec.js | 2 +- spec/frontend/ide/stores/getters_spec.js | 6 +- .../ide/stores/modules/commit/getters_spec.js | 38 +- .../ide/stores/mutations/file_spec.js | 20 +- .../stores/mutations/merge_request_spec.js | 2 +- spec/frontend/ide/utils_spec.js | 6 +- .../edit/components/dynamic_field_spec.js | 2 +- .../components/integration_overrides_spec.js | 5 +- .../components/invite_members_modal_spec.js | 44 +- .../components/members_token_select_spec.js | 34 + .../user_limit_notification_spec.js | 21 +- .../invite_members/mock_data/api_responses.js | 15 + .../invite_members/mock_data/member_modal.js | 5 + .../components/related_issuable_item_spec.js | 231 +- .../popover/components/issue_popover_spec.js | 62 +- .../components/add_issuable_form_spec.js | 4 +- .../components/related_issues_block_spec.js | 71 +- .../components/related_issues_root_spec.js | 379 +- .../list/components/issues_list_app_spec.js | 87 +- spec/frontend/issues/list/mock_data.js | 1 + .../issues/show/components/app_spec.js | 4 +- .../show/components/description_spec.js | 14 +- .../show/components/edit_actions_spec.js | 2 +- .../create_timeline_events_form_spec.js | 189 + .../show/components/incidents/mock_data.js | 28 +- .../incidents/timeline_events_form_spec.js | 117 +- ...m_spec.js => timeline_events_item_spec.js} | 4 +- .../incidents/timeline_events_list_spec.js | 2 +- .../incidents/timeline_events_tab_spec.js | 14 +- .../show/components/incidents/utils_spec.js | 2 +- .../components/project_dropdown_spec.js | 2 +- .../components/add_namespace_button_spec.js | 1 - .../components/sign_in_oauth_button_spec.js | 6 +- .../pages/sign_in/sign_in_page_spec.js | 2 +- .../components/job_log_controllers_spec.js | 154 +- .../components/sidebar_detail_row_spec.js | 2 +- spec/frontend/labels/labels_select_spec.js | 6 + spec/frontend/lib/dompurify_spec.js | 46 + spec/frontend/lib/gfm/index_spec.js | 156 +- spec/frontend/lib/utils/common_utils_spec.js | 23 +- .../confirm_modal_spec.js | 4 +- spec/frontend/lib/utils/rails_ujs_spec.js | 12 +- spec/frontend/lib/utils/recurrence_spec.js | 5 +- spec/frontend/lib/utils/sticky_spec.js | 6 +- spec/frontend/lib/utils/text_markdown_spec.js | 136 + spec/frontend/lib/utils/url_utility_spec.js | 66 +- .../access_request_action_buttons_spec.js | 4 +- .../approve_access_request_button_spec.js | 4 +- .../invite_action_buttons_spec.js | 4 +- .../action_buttons/leave_button_spec.js | 4 +- .../remove_group_link_button_spec.js | 2 +- .../resend_invite_button_spec.js | 2 +- .../user_action_buttons_spec.js | 4 +- spec/frontend/members/components/app_spec.js | 4 +- .../components/avatars/group_avatar_spec.js | 2 +- .../components/avatars/user_avatar_spec.js | 4 +- .../filter_sort/filter_sort_container_spec.js | 4 +- .../members_filtered_search_bar_spec.js | 2 +- .../filter_sort/sort_dropdown_spec.js | 4 +- .../modals/remove_group_link_modal_spec.js | 4 +- .../modals/remove_member_modal_spec.js | 2 +- .../components/table/created_at_spec.js | 2 +- .../table/expiration_datepicker_spec.js | 2 +- .../table/member_action_buttons_spec.js | 2 +- .../components/table/member_avatar_spec.js | 2 +- .../table/members_table_cell_spec.js | 2 +- .../components/table/members_table_spec.js | 20 +- .../components/table/role_dropdown_spec.js | 4 +- spec/frontend/members/index_spec.js | 2 +- .../components/charts/anomaly_spec.js | 2 +- .../monitoring/components/charts/bar_spec.js | 2 +- .../components/charts/column_spec.js | 2 +- .../components/charts/gauge_spec.js | 2 +- .../components/charts/heatmap_spec.js | 2 +- .../components/charts/single_stat_spec.js | 2 +- .../components/charts/stacked_column_spec.js | 4 +- .../components/charts/time_series_spec.js | 29 +- .../components/dashboard_actions_menu_spec.js | 4 +- .../components/dashboard_header_spec.js | 19 +- .../dashboard_panel_builder_spec.js | 22 +- .../components/dashboard_panel_spec.js | 43 +- .../monitoring/components/dashboard_spec.js | 36 +- .../components/dashboard_url_time_spec.js | 3 +- .../components/dashboards_dropdown_spec.js | 14 +- .../duplicate_dashboard_form_spec.js | 2 +- .../duplicate_dashboard_modal_spec.js | 12 +- .../components/embeds/embed_group_spec.js | 20 +- .../components/embeds/metric_embed_spec.js | 8 +- .../monitoring/components/empty_state_spec.js | 4 +- .../monitoring/components/graph_group_spec.js | 8 +- .../components/group_empty_state_spec.js | 2 +- .../components/links_section_spec.js | 2 +- .../components/refresh_button_spec.js | 6 +- .../variables/dropdown_field_spec.js | 4 +- .../components/variables_section_spec.js | 4 +- .../monitoring/pages/panel_new_page_spec.js | 4 +- spec/frontend/monitoring/router_spec.js | 10 +- spec/frontend/monitoring/store/utils_spec.js | 8 +- .../components/top_nav_dropdown_menu_spec.js | 2 +- .../components/comment_field_layout_spec.js | 4 +- .../components/diff_discussion_header_spec.js | 29 +- .../components/discussion_actions_spec.js | 22 +- .../components/discussion_counter_spec.js | 8 +- .../components/discussion_filter_note_spec.js | 4 +- .../notes/components/discussion_notes_spec.js | 4 +- .../discussion_reply_placeholder_spec.js | 2 +- .../discussion_resolve_button_spec.js | 8 +- ...scussion_resolve_with_issue_button_spec.js | 2 +- .../note_actions/reply_button_spec.js | 2 +- .../notes/components/note_actions_spec.js | 37 +- .../notes/components/note_attachment_spec.js | 4 +- .../notes/components/note_body_spec.js | 21 +- .../notes/components/note_form_spec.js | 20 +- .../notes/components/note_header_spec.js | 22 +- .../components/noteable_discussion_spec.js | 14 +- .../notes/components/noteable_note_spec.js | 18 +- .../notes/components/notes_app_spec.js | 7 +- .../notes/components/sort_discussion_spec.js | 2 +- .../notes/components/timeline_toggle_spec.js | 2 +- spec/frontend/notes/deprecated_notes_spec.js | 22 +- .../components/metrics_settings_spec.js | 11 +- .../components/details_page/tags_list_spec.js | 5 +- .../list_page/cleanup_status_spec.js | 14 +- .../container_registry/explorer/mock_data.js | 2 +- .../dependency_proxy/app_spec.js | 18 + .../shared/package_list_row_spec.js | 2 +- .../__snapshots__/package_title_spec.js.snap | 29 +- .../pypi_installation_spec.js.snap | 196 +- .../components/details/package_files_spec.js | 192 +- .../details/package_history_spec.js | 32 +- .../components/details/package_title_spec.js | 20 +- .../details/pypi_installation_spec.js | 16 +- .../components/list/package_list_row_spec.js | 2 +- .../package_registry/mock_data.js | 42 +- .../package_registry/pages/details_spec.js | 187 +- ...tainer_expiration_policy_form_spec.js.snap | 3 + .../settings/project/settings/mock_data.js | 4 +- .../account_and_limits_spec.js | 8 +- .../pages/groups/new/components/app_spec.js | 39 + .../create_group_description_details_spec.js | 57 + .../__snapshots__/code_coverage_spec.js.snap | 28 + .../projects/graphs/code_coverage_spec.js | 21 +- .../components/timezone_dropdown_spec.js | 1 - .../components/settings_panel_spec.js | 20 + .../shared/wikis/components/wiki_form_spec.js | 64 +- .../drawer/cards/first_pipeline_card_spec.js | 12 +- .../components/lint/ci_lint_spec.js | 72 - .../components/pipeline_editor_tabs_spec.js | 193 +- .../components/validate/ci_validate_spec.js | 39 +- .../pipeline_editor_home_spec.js | 6 +- .../components/pipeline_new_form_spec.js | 4 + .../components/take_ownership_modal_spec.js | 54 + .../pipeline_wizard/components/editor_spec.js | 4 +- .../pipeline_wizard/components/step_spec.js | 4 +- .../components/widgets/checklist_spec.js | 13 +- .../components/pipeline_tabs_spec.js | 4 +- .../pipelines_filtered_search_spec.js | 2 +- .../pipelines_list/pipeline_stage_spec.js | 59 +- .../pipelines/graph/linked_pipeline_spec.js | 2 +- .../performance_insights_modal_spec.js | 25 +- .../pipelines/pipeline_multi_actions_spec.js | 13 +- spec/frontend/pipelines/pipeline_url_spec.js | 4 +- spec/frontend/pipelines/pipelines_spec.js | 11 +- .../test_reports/test_reports_spec.js | 4 +- .../commits/components/author_select_spec.js | 10 +- .../projects/compare/components/app_spec.js | 3 +- .../projects/compare/components/mock_data.js | 25 +- spec/frontend/projects/project_new_spec.js | 67 +- .../branch_rules/branch_dropdown_spec.js | 17 +- .../components/protections/index_spec.js | 57 + .../protections/merge_protections_spec.js | 53 + .../protections/push_protections_spec.js | 50 + .../settings/branch_rules/mock_data.js | 10 + .../settings/branch_rules/rule_edit_spec.js | 61 +- .../components/transfer_project_form_spec.js | 164 +- .../prometheus_metrics/custom_metrics_spec.js | 46 +- .../prometheus_metrics_spec.js | 34 +- .../releases/__snapshots__/util_spec.js.snap | 10 + .../components/release_block_header_spec.js | 39 +- .../reports/components/report_section_spec.js | 212 +- .../components/blob_content_viewer_spec.js | 95 +- spec/frontend/repository/mock_data.js | 1 + spec/frontend/right_sidebar_spec.js | 2 +- .../admin_runner_edit_app_spec.js | 2 +- .../admin_runner_show_app_spec.js | 13 +- .../admin_runners/admin_runners_app_spec.js | 220 +- .../cells/runner_summary_cell_spec.js | 13 +- .../registration/registration_token_spec.js | 27 +- .../components/runner_assigned_item_spec.js | 16 +- .../runner_bulk_delete_checkbox_spec.js | 101 + .../components/runner_bulk_delete_spec.js | 176 +- .../runner_filtered_search_bar_spec.js | 6 +- .../runner/components/runner_jobs_spec.js | 3 +- .../runner/components/runner_list_spec.js | 8 +- .../components/runner_pagination_spec.js | 148 +- .../runner/components/runner_projects_spec.js | 1 + .../components/stat/runner_count_spec.js | 4 +- .../stat/runner_single_stat_spec.js | 61 + .../components/stat/runner_stats_spec.js | 37 +- .../stat/runner_status_stat_spec.js | 67 - .../runner/graphql/local_state_spec.js | 62 +- .../group_runner_show_app_spec.js | 9 +- .../group_runners/group_runners_app_spec.js | 56 +- spec/frontend/runner/mock_data.js | 43 +- .../runner/runner_search_utils_spec.js | 40 +- .../components/training_provider_list_spec.js | 2 +- spec/frontend/sidebar/assignees_spec.js | 2 +- .../sidebar_assignees_widget_spec.js | 1 + .../attention_requested_toggle_spec.js | 121 - .../sidebar_confidentiality_form_spec.js | 25 +- .../sidebar_confidentiality_widget_spec.js | 5 +- .../incidents/escalation_status_spec.js | 5 + .../sidebar_participants_widget_spec.js | 5 +- .../uncollapsed_reviewer_list_spec.js | 36 +- spec/frontend/sidebar/mock_data.js | 12 +- spec/frontend/sidebar/reviewer_title_spec.js | 4 +- spec/frontend/sidebar/reviewers_spec.js | 64 +- .../frontend/sidebar/sidebar_mediator_spec.js | 92 - .../snippet_blob_edit_spec.js.snap | 1 + .../merge_request_performance/app_spec.js | 9 + spec/frontend/test_setup.js | 5 +- spec/frontend/user_popovers_spec.js | 256 +- .../components/action_buttons.js} | 2 +- .../components/added_commit_message_spec.js | 5 - .../components/approvals/approvals_spec.js | 0 .../approvals_summary_optional_spec.js | 0 .../approvals/approvals_summary_spec.js | 0 .../approvals/humanized_text_spec.js | 0 .../components/artifacts_list_app_spec.js | 0 .../components/artifacts_list_spec.js | 0 .../extensions/child_content_spec.js | 0 .../components/extensions/index_spec.js | 0 .../components/extensions/status_icon_spec.js | 0 .../components/extensions/utils_spec.js | 0 .../mr_collapsible_extension_spec.js | 0 .../mr_widget_alert_message_spec.js | 0 .../components/mr_widget_author_spec.js | 0 .../components/mr_widget_author_time_spec.js | 0 .../components/mr_widget_container_spec.js | 0 .../mr_widget_expandable_section_spec.js | 0 .../components/mr_widget_icon_spec.js | 0 .../components/mr_widget_memory_usage_spec.js | 12 +- .../mr_widget_pipeline_container_spec.js | 0 .../components/mr_widget_pipeline_spec.js | 0 .../components/mr_widget_rebase_spec.js | 61 +- .../mr_widget_related_links_spec.js | 0 .../components/mr_widget_status_icon_spec.js | 17 - .../mr_widget_suggest_pipeline_spec.js | 0 .../components/pipeline_tour_mock_data.js | 0 .../components/review_app_link_spec.js | 0 .../mr_widget_auto_merge_enabled_spec.js.snap | 241 + .../mr_widget_pipeline_failed_spec.js.snap | 4 +- .../new_ready_to_merge_spec.js.snap | 0 .../components/states/commit_edit_spec.js | 0 .../states/merge_checks_failed_spec.js | 0 ...ailed_pipeline_confirmation_dialog_spec.js | 6 +- .../states/mr_widget_archived_spec.js | 5 - .../mr_widget_auto_merge_enabled_spec.js | 116 +- .../mr_widget_auto_merge_failed_spec.js | 6 +- .../states/mr_widget_checking_spec.js | 4 - .../states/mr_widget_closed_spec.js | 24 - .../mr_widget_commit_message_dropdown_spec.js | 0 .../states/mr_widget_commits_header_spec.js | 7 +- .../states/mr_widget_conflicts_spec.js | 4 +- .../states/mr_widget_failed_to_merge_spec.js | 28 +- .../states/mr_widget_merged_spec.js | 57 +- .../states/mr_widget_merging_spec.js | 13 - .../states/mr_widget_missing_branch_spec.js | 0 .../states/mr_widget_not_allowed_spec.js | 0 .../states/mr_widget_nothing_to_merge_spec.js | 2 +- .../states/mr_widget_pipeline_blocked_spec.js | 0 .../states/mr_widget_pipeline_failed_spec.js | 7 - .../states/mr_widget_ready_to_merge_spec.js | 164 +- .../states/mr_widget_sha_mismatch_spec.js | 0 .../mr_widget_squash_before_merge_spec.js | 0 .../mr_widget_unresolved_discussions_spec.js | 0 .../components/states/mr_widget_wip_spec.js | 16 +- .../states/new_ready_to_merge_spec.js | 0 .../components/terraform/mock_data.js | 0 .../mr_widget_terraform_container_spec.js | 0 .../terraform/terraform_plan_spec.js | 0 .../components/widget/app_spec.js | 19 + .../components/widget/widget_spec.js | 167 + .../deployment_action_button_spec.js | 0 .../deployment/deployment_actions_spec.js | 0 .../deployment/deployment_list_spec.js | 0 .../deployment/deployment_mock_data.js | 0 .../deployment/deployment_spec.js | 0 .../deployment/deployment_view_button_spec.js | 0 .../extensions/test_report/index_spec.js | 0 .../extensions/test_report/utils_spec.js | 0 .../extentions/accessibility/index_spec.js | 0 .../extentions/accessibility/mock_data.js | 0 .../extentions/code_quality/index_spec.js | 0 .../extentions/code_quality/mock_data.js | 0 .../extentions/terraform/index_spec.js | 0 .../mock_data.js | 0 .../mr_widget_how_to_merge_modal_spec.js | 0 .../mr_widget_options_spec.js | 82 +- .../stores/artifacts_list/actions_spec.js | 0 .../stores/artifacts_list/getters_spec.js | 0 .../stores/artifacts_list/mutations_spec.js | 0 .../stores/get_state_key_spec.js | 22 - .../stores/mr_widget_store_spec.js | 0 .../test_extensions.js | 0 .../mr_widget_auto_merge_enabled_spec.js.snap | 145 - .../alert_details/alert_details_spec.js | 6 +- .../alert_details/alert_metrics_spec.js | 4 +- .../alert_details/alert_status_spec.js | 2 +- .../sidebar/alert_sidebar_assignees_spec.js | 4 +- .../sidebar/alert_sidebar_spec.js | 4 +- .../alert_management_system_note_spec.js | 2 +- .../components/actions_button_spec.js | 4 +- .../components/alert_details_table_spec.js | 4 +- .../blob_viewers/rich_viewer_spec.js | 2 +- .../components/changed_file_icon_spec.js | 6 +- .../vue_shared/components/ci_icon_spec.js | 2 +- .../components/clipboard_button_spec.js | 2 +- .../components/clone_dropdown_spec.js | 12 +- .../color_picker/color_picker_spec.js | 10 +- .../vue_shared/components/commit_spec.js | 6 +- .../components/confirm_modal_spec.js | 6 +- .../components/dismissible_alert_spec.js | 4 +- .../components/dismissible_container_spec.js | 2 +- .../dropdown/dropdown_button_spec.js | 75 +- .../dropdown/dropdown_widget_spec.js | 2 +- .../components/expand_button_spec.js | 22 +- .../vue_shared/components/file_icon_spec.js | 4 +- .../vue_shared/components/file_row_spec.js | 4 +- .../vue_shared/components/file_tree_spec.js | 4 +- .../filtered_search_bar_root_spec.js | 44 +- .../filtered_search_bar/mock_data.js | 8 +- .../tokens/author_token_spec.js | 12 +- .../tokens/branch_token_spec.js | 14 +- .../tokens/crm_contact_token_spec.js | 18 +- .../tokens/crm_organization_token_spec.js | 18 +- .../tokens/emoji_token_spec.js | 22 +- .../tokens/label_token_spec.js | 18 +- .../tokens/milestone_token_spec.js | 18 +- .../components/gitlab_version_check_spec.js | 31 + .../components/gl_modal_vuex_spec.js | 10 +- .../components/help_popover_spec.js | 4 +- .../components/integration_help_text_spec.js | 12 +- .../components/markdown/field_spec.js | 7 +- .../components/markdown/header_spec.js | 17 +- .../markdown/suggestion_diff_header_spec.js | 4 +- .../markdown/suggestion_diff_spec.js | 6 +- .../markdown/toolbar_button_spec.js | 2 +- .../components/memory_graph_spec.js | 2 +- .../metric_images/metric_images_tab_spec.js | 2 +- .../namespace_select/namespace_select_spec.js | 81 +- .../components/navigation_tabs_spec.js | 2 +- .../components/notes/noteable_warning_spec.js | 13 +- .../components/notes/placeholder_note_spec.js | 2 +- ...ginated_table_with_search_and_tabs_spec.js | 18 +- .../pagination_bar/pagination_bar_spec.js | 2 +- .../components/pagination_links_spec.js | 2 +- .../components/project_avatar_spec.js | 36 + .../project_list_item_spec.js | 1 + .../project_selector/project_selector_spec.js | 6 +- .../registry/code_instruction_spec.js | 2 +- .../components/registry/details_row_spec.js | 2 +- .../components/registry/history_item_spec.js | 4 +- .../components/registry/list_item_spec.js | 2 +- .../components/registry/metadata_item_spec.js | 6 +- .../registry/registry_search_spec.js | 6 +- .../components/registry/title_area_spec.js | 2 +- .../components/rich_timestamp_tooltip_spec.js | 41 + .../runner_instructions_modal_spec.js | 6 +- .../merge_request_artifact_download_spec.js | 2 +- .../security_reports/help_icon_spec.js | 6 +- .../sidebar/issuable_move_dropdown_spec.js | 32 +- .../labels_select_vue/dropdown_button_spec.js | 6 +- .../dropdown_contents_create_view_spec.js | 16 +- .../dropdown_contents_labels_view_spec.js | 16 +- .../labels_select_vue/dropdown_title_spec.js | 4 +- .../labels_select_vue/label_item_spec.js | 2 +- .../labels_select_root_spec.js | 14 +- .../labels_select_root_spec.js | 1 + .../components/sidebar/todo_button_spec.js | 12 +- .../components/source_editor_spec.js | 26 +- .../components/chunk_line_spec.js | 29 +- .../source_viewer/components/chunk_spec.js | 2 + .../plugins/link_dependencies_spec.js | 9 +- .../source_viewer/plugins/mock_data.js | 2 + .../utils/dependency_linker_util_spec.js | 5 +- .../plugins/utils/gemspec_linker_spec.js | 14 + .../source_viewer/source_viewer_spec.js | 3 +- .../components/split_button_spec.js | 5 +- .../components/table_pagination_spec.js | 6 +- .../components/tooltip_on_truncate_spec.js | 2 +- .../upload_dropzone/upload_dropzone_spec.js | 2 +- .../components/user_access_role_badge_spec.js | 2 +- .../user_avatar/user_avatar_image_new_spec.js | 45 +- .../user_avatar/user_avatar_image_spec.js | 66 +- .../user_avatar/user_avatar_link_new_spec.js | 1 + .../user_avatar/user_avatar_link_old_spec.js | 1 + .../user_avatar/user_avatar_link_spec.js | 66 +- .../user_avatar/user_avatar_list_spec.js | 14 +- .../user_popover/user_popover_spec.js | 39 +- .../vue_shared/components/user_select_spec.js | 95 + .../components/web_ide_link_spec.js | 10 +- .../components/issuable_create_root_spec.js | 4 +- .../create/components/issuable_form_spec.js | 14 +- .../list/components/issuable_item_spec.js | 48 +- .../components/issuable_list_root_spec.js | 12 +- .../vue_shared/issuable/list/mock_data.js | 1 + .../show/components/issuable_body_spec.js | 10 +- .../components/issuable_edit_form_spec.js | 6 +- .../show/components/issuable_header_spec.js | 12 +- .../components/issuable_show_root_spec.js | 22 +- .../security_report_download_dropdown_spec.js | 4 +- .../security_reports_app_spec.js | 4 +- .../frontend/whats_new/components/app_spec.js | 4 +- .../whats_new/components/feature_spec.js | 9 +- .../work_items/components/item_state_spec.js | 16 + .../work_items/components/item_title_spec.js | 2 +- .../components/work_item_actions_spec.js | 87 +- .../components/work_item_assignees_spec.js | 120 +- .../components/work_item_detail_modal_spec.js | 130 +- .../work_item_links_form_spec.js | 89 +- .../work_item_links_menu_spec.js | 119 +- .../work_item_links/work_item_links_spec.js | 207 +- .../components/work_item_state_spec.js | 16 + .../components/work_item_title_spec.js | 21 +- .../components/work_item_type_icon_spec.js | 47 + .../components/work_item_weight_spec.js | 89 +- spec/frontend/work_items/mock_data.js | 226 +- .../work_items/pages/work_item_detail_spec.js | 213 +- .../components/app_spec.js | 8 +- .../components/hierarchy_spec.js | 7 +- .../content_editor_integration_spec.js | 70 +- .../fly_out_nav_browser_spec.js | 10 +- .../frontend_integration/ide/helpers/start.js | 5 +- .../ide/ide_integration_spec.js | 4 - .../snippets/snippets_notes_spec.js | 5 + .../test_helpers/setup/setup_globals.js | 4 - spec/graphql/features/feature_flag_spec.rb | 2 +- spec/graphql/graphql_triggers_spec.rb | 14 + .../mutations/ci/runner/bulk_delete_spec.rb | 91 + .../mutations/ci/runner/update_spec.rb | 3 +- .../timeline_event/update_spec.rb | 39 +- .../merge_requests/set_labels_spec.rb | 2 +- .../merge_requests/set_reviewers_spec.rb | 140 + .../graphql/mutations/releases/create_spec.rb | 6 +- .../graphql/mutations/releases/delete_spec.rb | 2 +- .../graphql/mutations/releases/update_spec.rb | 4 +- .../resolvers/ci/runner_jobs_resolver_spec.rb | 2 +- .../crm/contact_state_counts_resolver_spec.rb | 63 + .../resolvers/crm/contacts_resolver_spec.rb | 21 +- .../notification_email_resolver_spec.rb | 2 +- .../resolvers/project_jobs_resolver_spec.rb | 2 +- .../projects/fork_targets_resolver_spec.rb | 49 + .../grafana_integration_resolver_spec.rb | 4 +- .../resolvers/projects_resolver_spec.rb | 2 +- spec/graphql/types/base_field_spec.rb | 10 +- .../types/ci/group_variable_type_spec.rb | 9 + .../types/ci/instance_variable_type_spec.rb | 9 + .../types/ci/job_token_scope_type_spec.rb | 2 +- .../types/ci/manual_variable_type_spec.rb | 7 + .../types/ci/project_variable_type_spec.rb | 9 + ....rb => runner_upgrade_status_enum_spec.rb} | 4 +- .../types/ci/variable_input_type_spec.rb | 11 + ...ype_spec.rb => variable_interface_spec.rb} | 6 +- .../contact_sort_enum_spec.rb | 28 + .../contact_state_counts_type_spec.rb | 17 + spec/graphql/types/global_id_type_spec.rb | 6 +- spec/graphql/types/group_type_spec.rb | 51 +- spec/graphql/types/issue_type_spec.rb | 6 +- spec/graphql/types/namespace_type_spec.rb | 1 + spec/graphql/types/notes/note_type_spec.rb | 1 + spec/graphql/types/project_type_spec.rb | 6 +- .../types/projects/service_type_enum_spec.rb | 1 + spec/graphql/types/subscription_type_spec.rb | 1 + .../timelog_category_type_spec.rb | 22 + spec/graphql/types/upload_type_spec.rb | 13 + spec/graphql/types/user_type_spec.rb | 2 +- spec/graphql/types/work_item_type_spec.rb | 5 + .../types/work_items/widget_interface_spec.rb | 1 + .../widgets/assignees_input_type_spec.rb | 9 + .../work_items/widgets/labels_type_spec.rb | 11 + .../widgets/start_and_due_date_type_spec.rb | 11 + ...art_and_due_date_update_input_type_spec.rb | 9 + spec/helpers/admin/identities_helper_spec.rb | 58 + spec/helpers/application_helper_spec.rb | 8 + spec/helpers/boards_helper_spec.rb | 3 + .../helpers/ci/pipeline_editor_helper_spec.rb | 8 +- spec/helpers/ci/runners_helper_spec.rb | 4 +- spec/helpers/commits_helper_spec.rb | 18 +- spec/helpers/form_helper_spec.rb | 81 +- spec/helpers/gitlab_script_tag_helper_spec.rb | 10 + .../groups/group_members_helper_spec.rb | 2 +- spec/helpers/groups_helper_spec.rb | 75 +- ...ables_description_templates_helper_spec.rb | 127 +- spec/helpers/issuables_helper_spec.rb | 48 +- spec/helpers/members_helper_spec.rb | 33 + spec/helpers/merge_requests_helper_spec.rb | 69 +- spec/helpers/namespaces_helper_spec.rb | 33 - spec/helpers/nav/new_dropdown_helper_spec.rb | 2 +- spec/helpers/nav/top_nav_helper_spec.rb | 12 - spec/helpers/profiles_helper_spec.rb | 32 - spec/helpers/projects/pipeline_helper_spec.rb | 8 +- spec/helpers/projects_helper_spec.rb | 39 +- spec/helpers/search_helper_spec.rb | 13 +- spec/helpers/storage_helper_spec.rb | 24 +- spec/helpers/users_helper_spec.rb | 19 + spec/initializers/00_deprecations_spec.rb | 20 + spec/initializers/0_log_deprecations_spec.rb | 78 +- spec/initializers/diagnostic_reports_spec.rb | 65 + spec/initializers/global_id_spec.rb | 2 +- spec/initializers/memory_watchdog_spec.rb | 116 + .../lib/api/ci/helpers/runner_helpers_spec.rb | 4 +- .../api/entities/bulk_imports/entity_spec.rb | 1 + .../api/entities/ci/job_request/image_spec.rb | 2 +- .../api/entities/ci/job_request/port_spec.rb | 2 +- .../entities/ci/job_request/service_spec.rb | 2 +- spec/lib/api/entities/project_spec.rb | 13 + spec/lib/api/helpers/authentication_spec.rb | 2 +- spec/lib/api/helpers_spec.rb | 2 +- spec/lib/api/support/git_access_actor_spec.rb | 30 + spec/lib/backup/database_spec.rb | 24 +- spec/lib/backup/gitaly_backup_spec.rb | 70 +- spec/lib/backup/manager_spec.rb | 24 +- .../banzai/cross_project_reference_spec.rb | 2 +- ...adcast_message_placeholders_filter_spec.rb | 6 +- .../filter/commit_trailers_filter_spec.rb | 2 +- .../banzai/filter/task_list_filter_spec.rb | 34 + .../timeline_event_pipeline_spec.rb | 29 +- .../pipeline/plain_markdown_pipeline_spec.rb | 4 +- spec/lib/banzai/renderer_spec.rb | 2 +- spec/lib/bitbucket_server/connection_spec.rb | 2 +- spec/lib/bulk_imports/clients/http_spec.rb | 66 +- .../pipelines/lfs_objects_pipeline_spec.rb | 4 +- .../common/pipelines/uploads_pipeline_spec.rb | 2 +- .../group_attributes_transformer_spec.rb | 8 +- .../pipelines/releases_pipeline_spec.rb | 8 +- .../snippets_repository_pipeline_spec.rb | 2 +- .../project_attributes_transformer_spec.rb | 10 +- .../gitlab_api_client_spec.rb | 125 + spec/lib/container_registry/tag_spec.rb | 35 + spec/lib/feature_spec.rb | 4 +- .../alert_management/payload/base_spec.rb | 40 + spec/lib/gitlab/application_context_spec.rb | 2 +- .../gitlab/application_rate_limiter_spec.rb | 71 +- spec/lib/gitlab/asciidoc_spec.rb | 2 +- spec/lib/gitlab/audit/auditor_spec.rb | 258 + .../audit/ci_runner_token_author_spec.rb | 2 +- .../gitlab/audit/deploy_key_author_spec.rb | 17 + spec/lib/gitlab/audit/null_author_spec.rb | 9 + spec/lib/gitlab/audit/null_target_spec.rb | 25 + spec/lib/gitlab/audit/target_spec.rb | 47 + spec/lib/gitlab/auth/auth_finders_spec.rb | 6 +- spec/lib/gitlab/auth/ip_rate_limiter_spec.rb | 22 +- spec/lib/gitlab/auth/o_auth/auth_hash_spec.rb | 30 + spec/lib/gitlab/auth/o_auth/user_spec.rb | 1 + spec/lib/gitlab/auth_spec.rb | 71 +- .../backfill_ci_namespace_mirrors_spec.rb | 45 - .../backfill_ci_project_mirrors_spec.rb | 46 - .../backfill_ci_queuing_tables_spec.rb | 3 +- .../backfill_ci_runner_semver_spec.rb | 54 - .../backfill_group_features_spec.rb | 3 +- ...amespace_id_of_vulnerability_reads_spec.rb | 54 + .../backfill_project_import_level_spec.rb | 123 + .../backfill_projects_with_coverage_spec.rb | 3 +- .../backfill_snippet_repositories_spec.rb | 2 +- ..._vulnerability_reads_cluster_agent_spec.rb | 93 + .../batched_migration_job_spec.rb | 151 +- .../primary_key_batching_strategy_spec.rb | 15 +- ...i_builds_columns_to_security_scans_spec.rb | 51 - ...umn_using_background_migration_job_spec.rb | 58 +- ...nse_for_no_issues_no_repo_projects_spec.rb | 62 + ...se_for_one_member_no_repo_projects_spec.rb | 66 + .../drop_invalid_security_findings_spec.rb | 3 +- ...project_topics_into_separate_table_spec.rb | 3 +- ...ggings_context_from_tags_to_topics_spec.rb | 3 +- ...lify_orphan_runner_id_on_ci_builds_spec.rb | 13 +- .../backfill_project_namespaces_spec.rb | 322 +- ...e_vulnerabilities_occurrences_uuid_spec.rb | 2 +- .../remove_all_trace_expiration_dates_spec.rb | 3 +- ...duplicate_vulnerabilities_findings_spec.rb | 3 +- ..._available_for_non_public_projects_spec.rb | 57 +- ..._data_deployment_type_based_on_url_spec.rb | 41 +- spec/lib/gitlab/background_task_spec.rb | 209 + .../bare_repository_import/repository_spec.rb | 19 +- spec/lib/gitlab/batch_pop_queueing_spec.rb | 2 +- spec/lib/gitlab/chat_name_token_spec.rb | 2 +- spec/lib/gitlab/ci/ansi2html_spec.rb | 8 +- spec/lib/gitlab/ci/ansi2json_spec.rb | 14 +- spec/lib/gitlab/ci/artifacts/logger_spec.rb | 60 + spec/lib/gitlab/ci/artifacts/metrics_spec.rb | 19 + .../artifacts/adapters/zip_stream_spec.rb | 86 + .../ci/build/artifacts/metadata/entry_spec.rb | 3 + .../prerequisite/kubernetes_namespace_spec.rb | 2 +- spec/lib/gitlab/ci/build/releaser_spec.rb | 4 +- .../build/rules/rule/clause/changes_spec.rb | 98 +- .../ci/build/rules/rule/clause/if_spec.rb | 8 - spec/lib/gitlab/ci/config/entry/image_spec.rb | 6 +- .../gitlab/ci/config/entry/imageable_spec.rb | 81 + .../ci/config/entry/processable_spec.rb | 2 +- .../gitlab/ci/config/entry/release_spec.rb | 38 +- .../gitlab/ci/config/entry/reports_spec.rb | 1 + .../config/entry/rules/rule/changes_spec.rb | 27 +- .../gitlab/ci/config/entry/rules/rule_spec.rb | 7 +- .../gitlab/ci/config/entry/service_spec.rb | 6 +- spec/lib/gitlab/ci/config/entry/tags_spec.rb | 2 +- .../ci/config/external/file/base_spec.rb | 4 +- .../ci/config/external/file/local_spec.rb | 2 +- .../ci/config/external/file/remote_spec.rb | 2 +- spec/lib/gitlab/ci/config/normalizer_spec.rb | 2 +- spec/lib/gitlab/ci/config_spec.rb | 17 + spec/lib/gitlab/ci/cron_parser_spec.rb | 2 +- .../parsers/sbom/cyclonedx_properties_spec.rb | 88 + .../gitlab/ci/parsers/sbom/cyclonedx_spec.rb | 135 + .../sbom/source/dependency_scanning_spec.rb | 40 + .../cyclonedx_schema_validator_spec.rb | 132 + .../validators/schema_validator_spec.rb | 615 +- .../gitlab/ci/pipeline/chain/command_spec.rb | 4 +- .../pipeline/chain/create_deployments_spec.rb | 2 +- .../chain/evaluate_workflow_rules_spec.rb | 4 +- .../ci/pipeline/chain/seed_block_spec.rb | 2 +- .../lib/gitlab/ci/pipeline/chain/seed_spec.rb | 26 +- .../pipeline/chain/validate/external_spec.rb | 21 +- .../expression/lexeme/matches_spec.rb | 8 - .../expression/lexeme/not_matches_spec.rb | 8 - .../ci/pipeline/expression/statement_spec.rb | 18 +- .../ci/pipeline/quota/deployments_spec.rb | 2 +- .../lib/gitlab/ci/pipeline/seed/build_spec.rb | 22 +- .../gitlab/ci/reports/sbom/component_spec.rb | 23 + .../lib/gitlab/ci/reports/sbom/report_spec.rb | 54 + .../gitlab/ci/reports/sbom/reports_spec.rb | 21 + .../lib/gitlab/ci/reports/sbom/source_spec.rb | 29 + .../ci/reports/security/reports_spec.rb | 2 +- .../vulnerability_reports_comparer_spec.rb | 2 +- spec/lib/gitlab/ci/reports/test_suite_spec.rb | 4 +- spec/lib/gitlab/ci/runner_releases_spec.rb | 12 +- .../gitlab/ci/runner_upgrade_check_spec.rb | 45 +- .../gitlab/ci/status/bridge/common_spec.rb | 10 +- .../gitlab/ci/status/build/canceled_spec.rb | 2 +- .../gitlab/ci/status/build/created_spec.rb | 2 +- .../lib/gitlab/ci/status/build/manual_spec.rb | 2 +- .../gitlab/ci/status/build/pending_spec.rb | 2 +- .../gitlab/ci/status/build/skipped_spec.rb | 2 +- .../processable/waiting_for_resource_spec.rb | 2 +- .../sast_iac_latest_gitlab_ci_yaml_spec.rb | 5 +- .../auto_devops_gitlab_ci_yaml_spec.rb | 2 +- .../gitlab/ci/trace/remote_checksum_spec.rb | 4 +- spec/lib/gitlab/ci/variables/builder_spec.rb | 3 + .../gitlab/ci/variables/collection_spec.rb | 32 +- spec/lib/gitlab/ci/variables/helpers_spec.rb | 12 + spec/lib/gitlab/ci/yaml_processor_spec.rb | 54 +- spec/lib/gitlab/composer/cache_spec.rb | 2 +- .../cycle_analytics/stage_summary_spec.rb | 2 + spec/lib/gitlab/data_builder/build_spec.rb | 4 +- spec/lib/gitlab/data_builder/issuable_spec.rb | 21 + spec/lib/gitlab/data_builder/pipeline_spec.rb | 2 +- spec/lib/gitlab/data_builder/push_spec.rb | 1 + .../async_indexes/index_destructor_spec.rb | 69 + .../async_indexes/migration_helpers_spec.rb | 38 + .../postgres_async_index_spec.rb | 17 + .../lib/gitlab/database/async_indexes_spec.rb | 20 +- .../background_migration/batched_job_spec.rb | 21 +- .../batched_migration_runner_spec.rb | 12 +- .../batched_migration_spec.rb | 45 +- .../batched_migration_wrapper_spec.rb | 16 +- .../autovacuum_active_on_table_spec.rb | 2 +- .../indicators/write_ahead_log_spec.rb | 61 + .../health_status_spec.rb | 45 +- spec/lib/gitlab/database/bulk_update_spec.rb | 3 +- .../load_balancing/load_balancer_spec.rb | 10 +- .../load_balancing/rack_middleware_spec.rb | 2 + .../database/load_balancing/session_spec.rb | 6 +- .../sidekiq_server_middleware_spec.rb | 2 +- .../database/load_balancing/sticking_spec.rb | 2 + .../gitlab/database/load_balancing_spec.rb | 2 +- .../database/lock_writes_manager_spec.rb | 123 + .../database/loose_foreign_keys_spec.rb | 28 + .../restrict_gitlab_schema_spec.rb | 7 + .../database/migration_helpers/v2_spec.rb | 10 +- .../gitlab/database/migration_helpers_spec.rb | 82 +- .../background_migration_helpers_spec.rb | 6 - ...tched_background_migration_helpers_spec.rb | 117 +- .../migrations/instrumentation_spec.rb | 6 +- .../migrations/lock_retry_mixin_spec.rb | 12 +- .../gitlab/database/migrations/runner_spec.rb | 2 +- .../test_batched_background_runner_spec.rb | 15 +- .../sliding_list_strategy_spec.rb | 72 +- spec/lib/gitlab/database/partitioning_spec.rb | 2 +- ...gitlab_schemas_validate_connection_spec.rb | 25 + .../reindexing/grafana_notifier_spec.rb | 2 +- spec/lib/gitlab/database/reindexing_spec.rb | 21 + spec/lib/gitlab/database/shared_model_spec.rb | 2 +- ...h_lock_retries_outside_transaction_spec.rb | 4 +- .../gitlab/database/with_lock_retries_spec.rb | 8 +- .../common_metrics/importer_spec.rb | 2 +- spec/lib/gitlab/diff/highlight_cache_spec.rb | 14 +- spec/lib/gitlab/diff/highlight_spec.rb | 2 +- .../notebook/diff_file_helper_spec.rb | 2 +- .../pbkdf2_sha512_spec.rb | 36 + .../email/handler/create_note_handler_spec.rb | 4 +- .../handler/service_desk_handler_spec.rb | 20 +- .../in_product_marketing/admin_verify_spec.rb | 2 +- .../in_product_marketing/create_spec.rb | 2 +- .../in_product_marketing/team_short_spec.rb | 2 +- .../message/in_product_marketing/team_spec.rb | 2 +- .../in_product_marketing/trial_short_spec.rb | 2 +- .../in_product_marketing/trial_spec.rb | 2 +- .../in_product_marketing/verify_spec.rb | 2 +- .../open_api_strategy_spec.rb | 2 +- spec/lib/gitlab/error_tracking/logger_spec.rb | 2 +- .../processor/sidekiq_processor_spec.rb | 20 +- .../sleeping_lock_spec.rb | 22 + .../gitlab/exclusive_lease_helpers_spec.rb | 4 +- .../gitlab/file_markdown_link_builder_spec.rb | 2 +- .../gitlab_ui_form_builder_spec.rb | 79 +- spec/lib/gitlab/git/blame_spec.rb | 2 +- spec/lib/gitlab/git/blob_spec.rb | 3 +- spec/lib/gitlab/git/branch_spec.rb | 23 +- spec/lib/gitlab/git/commit_spec.rb | 10 +- spec/lib/gitlab/git/diff_collection_spec.rb | 4 +- spec/lib/gitlab/git/raw_diff_change_spec.rb | 2 +- spec/lib/gitlab/git/remote_repository_spec.rb | 61 - spec/lib/gitlab/git/repository_spec.rb | 73 +- .../gitlab/git/rugged_impl/use_rugged_spec.rb | 58 +- spec/lib/gitlab/git/tag_spec.rb | 37 +- spec/lib/gitlab/git/tree_spec.rb | 9 +- spec/lib/gitlab/git_access_spec.rb | 38 +- spec/lib/gitlab/git_spec.rb | 1 + .../gitaly_client/commit_service_spec.rb | 2 +- .../gitaly_client/operation_service_spec.rb | 208 +- .../gitlab/gitaly_client/ref_service_spec.rb | 24 +- .../gitaly_client/repository_service_spec.rb | 42 +- spec/lib/gitlab/github_import/client_spec.rb | 2 +- .../importer/events/base_importer_spec.rb | 15 + .../importer/events/changed_assignee_spec.rb | 95 + .../importer/events/changed_label_spec.rb | 14 +- .../importer/events/changed_milestone_spec.rb | 72 + .../importer/events/closed_spec.rb | 16 +- .../importer/events/cross_referenced_spec.rb | 40 +- .../importer/events/renamed_spec.rb | 16 +- .../importer/events/reopened_spec.rb | 16 +- .../importer/issue_event_importer_spec.rb | 36 +- .../importer/issue_events_importer_spec.rb | 122 + .../importer/issue_importer_spec.rb | 22 +- .../importer/lfs_objects_importer_spec.rb | 2 +- .../importer/pull_requests_importer_spec.rb | 2 +- ...gle_endpoint_issue_events_importer_spec.rb | 4 +- .../github_import/issuable_finder_spec.rb | 2 +- .../github_import/parallel_scheduling_spec.rb | 4 +- .../representation/issue_event_spec.rb | 83 +- .../representation/issue_spec.rb | 15 +- .../gitlab/github_import/user_finder_spec.rb | 66 +- .../lib/gitlab/global_id/deprecations_spec.rb | 15 +- spec/lib/gitlab/gpg_spec.rb | 4 +- .../loggers/token_logger_spec.rb | 34 + spec/lib/gitlab/graphql/deprecation_spec.rb | 69 +- .../conditions/not_null_condition_spec.rb | 115 - .../keyset/conditions/null_condition_spec.rb | 95 - .../keyset/connection_generic_keyset_spec.rb | 415 - .../pagination/keyset/connection_spec.rb | 663 +- .../pagination/keyset/order_info_spec.rb | 118 - .../pagination/keyset/query_builder_spec.rb | 135 - .../graphql/type_name_deprecations_spec.rb | 52 + spec/lib/gitlab/graphs/commits_spec.rb | 2 +- spec/lib/gitlab/highlight_spec.rb | 2 +- .../gitlab/hook_data/group_builder_spec.rb | 3 + .../hook_data/group_member_builder_spec.rb | 3 + spec/lib/gitlab/hook_data/key_builder_spec.rb | 4 + .../hook_data/merge_request_builder_spec.rb | 2 + .../gitlab/hook_data/project_builder_spec.rb | 4 + .../hook_data/project_member_builder_spec.rb | 3 + .../gitlab/hook_data/subgroup_builder_spec.rb | 2 + .../lib/gitlab/hook_data/user_builder_spec.rb | 4 + spec/lib/gitlab/http_io_spec.rb | 2 +- .../web_upload_strategy_spec.rb | 170 +- spec/lib/gitlab/import_export/all_models.yml | 16 + .../base/relation_factory_spec.rb | 24 + .../base/relation_object_saver_spec.rb | 6 +- ...ecompressed_archive_size_validator_spec.rb | 5 +- .../import_export/group/tree_restorer_spec.rb | 16 +- .../import_test_coverage_spec.rb | 6 +- .../import_export/json/ndjson_writer_spec.rb | 2 +- .../json/streaming_serializer_spec.rb | 48 +- .../lib/gitlab/import_export/log_util_spec.rb | 43 + .../project/relation_saver_spec.rb | 125 + .../project/tree_restorer_spec.rb | 49 +- .../import_export/project/tree_saver_spec.rb | 27 +- .../remote_stream_upload_spec.rb | 232 + .../import_export/safe_model_attributes.yml | 16 +- spec/lib/gitlab/import_export/shared_spec.rb | 10 +- .../import_export/version_checker_spec.rb | 2 +- .../lib/gitlab/instrumentation_helper_spec.rb | 22 + spec/lib/gitlab/jira/dvcs_spec.rb | 6 +- .../jira_import/issues_importer_spec.rb | 43 +- .../gitlab/kubernetes/rollout_status_spec.rb | 2 +- spec/lib/gitlab/mail_room/mail_room_spec.rb | 4 +- spec/lib/gitlab/memory/jemalloc_spec.rb | 25 +- .../memory/reports/jemalloc_stats_spec.rb | 124 + spec/lib/gitlab/memory/reports_daemon_spec.rb | 136 + spec/lib/gitlab/memory/watchdog_spec.rb | 141 +- .../metrics/background_transaction_spec.rb | 2 +- .../gitlab/metrics/web_transaction_spec.rb | 2 +- .../gitlab/middleware/compressed_json_spec.rb | 6 +- .../middleware/sidekiq_web_static_spec.rb | 2 +- spec/lib/gitlab/octokit/middleware_spec.rb | 2 +- spec/lib/gitlab/otp_key_rotator_spec.rb | 2 +- .../pagination/gitaly_keyset_pager_spec.rb | 14 + spec/lib/gitlab/pagination/keyset_spec.rb | 2 +- .../conduit/response_spec.rb | 2 +- spec/lib/gitlab/prometheus_client_spec.rb | 2 +- .../gitlab/quick_actions/extractor_spec.rb | 8 +- .../instrumented_cache_store_spec.rb | 2 +- .../gitlab/rack_attack/user_allowlist_spec.rb | 2 +- spec/lib/gitlab/redis/cache_spec.rb | 12 + spec/lib/gitlab/redis/hll_spec.rb | 8 +- spec/lib/gitlab/redis/multi_store_spec.rb | 24 +- spec/lib/gitlab/reference_counter_spec.rb | 2 +- spec/lib/gitlab/regex_spec.rb | 8 +- .../lib/gitlab/search/abuse_detection_spec.rb | 2 +- .../lib/gitlab/search_context/builder_spec.rb | 2 +- spec/lib/gitlab/seeder_spec.rb | 40 + spec/lib/gitlab/session_spec.rb | 2 +- spec/lib/gitlab/sidekiq_config_spec.rb | 2 +- .../sidekiq_daemon/memory_killer_spec.rb | 6 +- .../sidekiq_logging/structured_logger_spec.rb | 16 +- .../gitlab/sidekiq_middleware/monitor_spec.rb | 4 +- .../sidekiq_middleware/server_metrics_spec.rb | 1 + spec/lib/gitlab/slash_commands/deploy_spec.rb | 2 +- spec/lib/gitlab/spamcheck/client_spec.rb | 6 +- spec/lib/gitlab/ssh/commit_spec.rb | 82 + .../suggestions/file_suggestion_spec.rb | 2 +- .../destinations/snowplow_micro_spec.rb | 36 +- spec/lib/gitlab/tracking_spec.rb | 37 +- .../instrumentations/database_metric_spec.rb | 32 + .../usage/metrics/name_suggestion_spec.rb | 4 +- .../names_suggestions/generator_spec.rb | 2 +- .../gitlab/usage/service_ping_report_spec.rb | 8 +- .../hll_redis_counter_spec.rb | 43 +- .../ipynb_diff_activity_counter_spec.rb | 36 +- .../issue_activity_unique_counter_spec.rb | 21 +- ...e_request_widget_extension_counter_spec.rb | 9 + .../work_item_activity_unique_counter_spec.rb | 8 + spec/lib/gitlab/usage_data_spec.rb | 6 +- spec/lib/gitlab/utils/batch_loader_spec.rb | 82 + .../gitlab/utils/link_header_parser_spec.rb | 75 + .../gitlab/utils/sanitize_node_link_spec.rb | 2 +- spec/lib/gitlab/utils/strong_memoize_spec.rb | 139 +- spec/lib/gitlab/utils/usage_data_spec.rb | 2 +- spec/lib/gitlab/utils_spec.rb | 4 +- spec/lib/gitlab/verify/uploads_spec.rb | 2 +- spec/lib/gitlab/version_info_spec.rb | 19 +- .../google_api/cloud_platform/client_spec.rb | 117 +- spec/lib/json_web_token/rsa_token_spec.rb | 5 +- spec/lib/marginalia_spec.rb | 18 +- spec/lib/mattermost/session_spec.rb | 2 +- spec/lib/microsoft_teams/notifier_spec.rb | 2 +- .../validator/entry_spec.rb | 20 +- spec/lib/release_highlights/validator_spec.rb | 2 +- .../report_schema_version_matcher_spec.rb | 44 + .../menus/group_information_menu_spec.rb | 8 +- spec/lib/sidebars/menu_spec.rb | 2 +- .../gitlab/metrics_exporter_task_spec.rb | 2 +- spec/lib/unnested_in_filters/rewriter_spec.rb | 29 + .../mailers/emails/admin_notification_spec.rb | 64 - spec/mailers/emails/profile_spec.rb | 3 +- ..._data_deployment_type_based_on_url_spec.rb | 48 - ...6138_cascade_delete_freeze_periods_spec.rb | 2 +- ...45_backfill_projects_with_coverage_spec.rb | 2 +- ...duplicate_vulnerabilities_findings_spec.rb | 3 +- ...220124130028_dedup_runner_projects_spec.rb | 2 +- ...251_remove_dangling_running_builds_spec.rb | 4 +- ...lerts_to_exclude_null_fingerprints_spec.rb | 2 +- ...ate_sync_namespace_details_trigger_spec.rb | 76 + ..._project_namespace_details_trigger_spec.rb | 73 + ..._vulnerability_reads_cluster_agent_spec.rb | 24 + ...sociated_vulnerability_occurrences_spec.rb | 22 + ...se_for_one_member_no_repo_projects_spec.rb | 64 + ...se_for_no_issues_no_repo_projects_spec.rb} | 7 +- ..._available_for_non_public_projects_spec.rb | 64 + ..._data_deployment_type_based_on_url_spec.rb | 58 + ...istry_size_into_project_statistics_spec.rb | 41 + ...eactivated_user_highest_role_stats_spec.rb | 39 + ...xisting_dast_builds_with_variables_spec.rb | 70 +- .../backfill_project_import_level_spec.rb | 29 + ...change_public_projects_cost_factor_spec.rb | 11 +- .../clean_up_pending_builds_table_spec.rb | 2 +- ...cleanup_mr_attention_request_todos_spec.rb | 46 + ...ete_security_findings_without_uuid_spec.rb | 2 +- ...isable_job_token_scope_when_unused_spec.rb | 38 +- ...tected_attribute_to_pending_builds_spec.rb | 2 +- ...ll_security_related_artifact_types_spec.rb | 3 +- ...mespace_id_for_vulnerability_reads_spec.rb | 32 + ..._builds_columns_to_security_scans2_spec.rb | 44 +- ...rate_shared_vulnerability_scanners_spec.rb | 59 + ...te_status_column_of_security_scans_spec.rb | 48 - .../start_backfill_ci_queuing_tables_spec.rb | 2 +- spec/models/active_session_spec.rb | 2 +- spec/models/application_setting_spec.rb | 7 + spec/models/aws/role_spec.rb | 2 +- spec/models/board_spec.rb | 4 +- spec/models/chat_name_spec.rb | 4 +- spec/models/ci/bridge_spec.rb | 14 + spec/models/ci/build_dependencies_spec.rb | 4 +- spec/models/ci/build_metadata_spec.rb | 13 +- spec/models/ci/build_runner_session_spec.rb | 2 +- spec/models/ci/build_spec.rb | 249 +- .../daily_build_group_report_result_spec.rb | 2 +- spec/models/ci/job_artifact_spec.rb | 14 +- spec/models/ci/pipeline_schedule_spec.rb | 2 +- spec/models/ci/pipeline_spec.rb | 313 +- spec/models/ci/processable_spec.rb | 2 +- spec/models/ci/runner_spec.rb | 65 +- spec/models/ci/runner_version_spec.rb | 9 +- spec/models/ci/secure_file_spec.rb | 1 + spec/models/clusters/cluster_spec.rb | 4 +- .../commit_signatures/ssh_signature_spec.rb | 2 +- spec/models/commit_status_spec.rb | 2 +- spec/models/concerns/bulk_insert_safe_spec.rb | 4 +- .../chronic_duration_attribute_spec.rb | 12 +- spec/models/concerns/ci/artifactable_spec.rb | 24 +- .../models/concerns/counter_attribute_spec.rb | 2 +- .../cross_database_modification_spec.rb | 32 - .../concerns/database_event_tracking_spec.rb | 69 + spec/models/concerns/expirable_spec.rb | 5 + spec/models/concerns/issuable_spec.rb | 21 + spec/models/concerns/nullify_if_blank_spec.rb | 2 +- spec/models/concerns/participable_spec.rb | 26 +- .../project_features_compatibility_spec.rb | 6 +- spec/models/concerns/reactive_caching_spec.rb | 2 +- .../concerns/token_authenticatable_spec.rb | 12 +- .../container_expiration_policy_spec.rb | 2 +- spec/models/container_repository_spec.rb | 184 +- .../models/customer_relations/contact_spec.rb | 55 +- .../contact_state_counts_spec.rb | 60 + spec/models/data_list_spec.rb | 2 +- spec/models/deploy_key_spec.rb | 9 + spec/models/design_management/version_spec.rb | 8 +- spec/models/environment_spec.rb | 231 +- .../project_error_tracking_setting_spec.rb | 46 +- spec/models/event_spec.rb | 26 +- spec/models/group_group_link_spec.rb | 52 +- spec/models/group_spec.rb | 44 +- spec/models/hooks/system_hook_spec.rb | 2 +- spec/models/hooks/web_hook_spec.rb | 12 - .../issuable_escalation_status_spec.rb | 1 + .../timeline_event_spec.rb | 17 +- spec/models/integration_spec.rb | 5 +- spec/models/integrations/bamboo_spec.rb | 1 + spec/models/integrations/bugzilla_spec.rb | 1 + spec/models/integrations/buildkite_spec.rb | 1 + spec/models/integrations/campfire_spec.rb | 2 +- .../chat_message/issue_message_spec.rb | 4 +- .../chat_message/wiki_page_message_spec.rb | 2 +- .../integrations/custom_issue_tracker_spec.rb | 1 + spec/models/integrations/datadog_spec.rb | 16 - spec/models/integrations/drone_ci_spec.rb | 1 + spec/models/integrations/ewm_spec.rb | 1 + .../models/integrations/external_wiki_spec.rb | 1 + spec/models/integrations/harbor_spec.rb | 4 +- spec/models/integrations/jira_spec.rb | 22 + .../integrations/microsoft_teams_spec.rb | 1 + spec/models/integrations/pumble_spec.rb | 14 + spec/models/integrations/slack_spec.rb | 17 +- spec/models/integrations/teamcity_spec.rb | 1 + spec/models/issue_spec.rb | 179 +- spec/models/jira_import_state_spec.rb | 30 +- spec/models/lfs_object_spec.rb | 4 +- .../loose_foreign_keys/deleted_record_spec.rb | 16 - spec/models/member_spec.rb | 31 + spec/models/members/group_member_spec.rb | 90 +- spec/models/members/member_role_spec.rb | 17 + spec/models/members/project_member_spec.rb | 9 +- .../approval_removal_settings_spec.rb | 52 + spec/models/merge_request_spec.rb | 107 +- spec/models/milestone_spec.rb | 4 +- spec/models/ml/candidate_metric_spec.rb | 9 + spec/models/ml/candidate_param_spec.rb | 9 + spec/models/ml/candidate_spec.rb | 12 + spec/models/ml/experiment_spec.rb | 11 + spec/models/namespace/detail_spec.rb | 40 + .../namespace/root_storage_statistics_spec.rb | 4 +- .../namespace/traversal_hierarchy_spec.rb | 6 +- spec/models/namespace_spec.rb | 50 +- .../namespaces/project_namespace_spec.rb | 8 + spec/models/note_spec.rb | 74 +- spec/models/oauth_access_token_spec.rb | 68 +- spec/models/onboarding_progress_spec.rb | 2 +- spec/models/packages/cleanup/policy_spec.rb | 1 + spec/models/packages/conan/metadatum_spec.rb | 2 +- spec/models/packages/package_file_spec.rb | 6 +- spec/models/packages/package_spec.rb | 6 +- spec/models/personal_access_token_spec.rb | 24 +- .../postgresql/replication_slot_spec.rb | 2 +- .../preloaders/labels_preloader_spec.rb | 2 +- ...x_access_level_in_groups_preloader_spec.rb | 2 +- spec/models/project_spec.rb | 115 +- spec/models/project_statistics_spec.rb | 39 +- .../import_export/relation_export_spec.rb | 32 + spec/models/projects/topic_spec.rb | 11 + spec/models/protected_branch_spec.rb | 124 +- spec/models/release_highlight_spec.rb | 14 +- spec/models/release_spec.rb | 2 +- spec/models/releases/link_spec.rb | 2 +- spec/models/remote_mirror_spec.rb | 16 +- spec/models/repository_spec.rb | 40 +- .../snippet_input_action_collection_spec.rb | 6 +- spec/models/snippet_spec.rb | 4 +- spec/models/u2f_registration_spec.rb | 106 +- spec/models/user_spec.rb | 486 +- spec/models/user_status_spec.rb | 26 + spec/models/users/calloutable_spec.rb | 4 +- .../users/in_product_marketing_email_spec.rb | 3 + spec/models/users/project_callout_spec.rb | 24 + spec/models/webauthn_registration_spec.rb | 1 + spec/models/wiki_page/meta_spec.rb | 2 +- spec/models/work_item_spec.rb | 67 +- spec/models/work_items/parent_link_spec.rb | 64 + spec/models/work_items/type_spec.rb | 11 +- .../work_items/widgets/hierarchy_spec.rb | 6 +- spec/models/work_items/widgets/labels_spec.rb | 31 + .../widgets/start_and_due_date_spec.rb | 31 + spec/policies/group_policy_spec.rb | 29 +- spec/policies/issuable_policy_spec.rb | 40 + spec/policies/issue_policy_spec.rb | 55 +- .../project_namespace_policy_spec.rb | 42 +- .../namespaces/user_namespace_policy_spec.rb | 2 +- spec/policies/project_hook_policy_spec.rb | 31 + spec/policies/project_policy_spec.rb | 283 +- spec/policies/system_hook_policy_spec.rb | 29 + spec/policies/timelog_policy_spec.rb | 2 +- spec/policies/upload_policy_spec.rb | 76 + spec/policies/work_item_policy_spec.rb | 41 + .../alert_management/alert_presenter_spec.rb | 2 +- .../ci/build_runner_presenter_spec.rb | 63 +- .../merge_request_presenter_spec.rb | 25 +- .../simple_package_versions_presenter_spec.rb | 2 +- .../presenters/project_hook_presenter_spec.rb | 4 +- .../project_member_presenter_spec.rb | 118 +- .../broadcast_messages_controller_spec.rb | 18 + .../admin/integrations_controller_spec.rb | 1 + spec/requests/api/api_spec.rb | 50 + spec/requests/api/boards_spec.rb | 6 +- spec/requests/api/branches_spec.rb | 5 +- spec/requests/api/bulk_imports_spec.rb | 89 +- spec/requests/api/ci/jobs_spec.rb | 2 +- .../api/ci/pipeline_schedules_spec.rb | 106 +- .../api/ci/runner/jobs_request_post_spec.rb | 2 +- .../requests/api/ci/runner/jobs_trace_spec.rb | 4 +- .../api/ci/runner/runners_post_spec.rb | 9 +- spec/requests/api/ci/secure_files_spec.rb | 6 +- spec/requests/api/ci/triggers_spec.rb | 8 +- spec/requests/api/ci/variables_spec.rb | 10 +- spec/requests/api/clusters/agents_spec.rb | 4 +- spec/requests/api/commits_spec.rb | 107 +- .../api/conan_instance_packages_spec.rb | 2 +- .../api/conan_project_packages_spec.rb | 2 +- spec/requests/api/dependency_proxy_spec.rb | 2 +- spec/requests/api/deployments_spec.rb | 84 + spec/requests/api/doorkeeper_access_spec.rb | 6 +- spec/requests/api/go_proxy_spec.rb | 8 +- .../boards/board_list_issues_query_spec.rb | 2 +- .../graphql/boards/board_lists_query_spec.rb | 2 +- .../api/graphql/ci/instance_variables_spec.rb | 12 + .../api/graphql/ci/manual_variables_spec.rb | 8 +- .../requests/api/graphql/ci/pipelines_spec.rb | 29 + spec/requests/api/graphql/ci/runners_spec.rb | 4 +- .../requests/api/graphql/crm/contacts_spec.rb | 24 +- .../graphql/current_user/groups_query_spec.rb | 19 +- .../api/graphql/custom_emoji_query_spec.rb | 4 +- .../api/graphql/group/group_members_spec.rb | 18 - spec/requests/api/graphql/group_query_spec.rb | 81 + .../mutations/award_emojis/add_spec.rb | 2 +- .../mutations/award_emojis/toggle_spec.rb | 2 +- .../graphql/mutations/boards/destroy_spec.rb | 11 +- .../graphql/mutations/ci/job_retry_spec.rb | 32 + .../mutations/ci/pipeline_cancel_spec.rb | 2 +- .../merge_requests/request_attention_spec.rb | 79 - .../merge_requests/set_reviewers_spec.rb | 106 + .../update_reviewer_state_spec.rb | 65 - .../mutations/notes/create/note_spec.rb | 24 +- .../graphql/mutations/releases/create_spec.rb | 6 +- .../graphql/mutations/releases/update_spec.rb | 2 +- .../remove_attention_request_spec.rb | 79 - .../graphql/mutations/snippets/create_spec.rb | 6 +- .../graphql/mutations/timelogs/create_spec.rb | 48 + .../graphql/mutations/timelogs/delete_spec.rb | 2 +- .../graphql/mutations/uploads/delete_spec.rb | 74 + .../work_items/create_from_task_spec.rb | 3 +- .../mutations/work_items/create_spec.rb | 4 +- .../mutations/work_items/update_spec.rb | 225 +- .../namespace/root_storage_statistics_spec.rb | 2 +- .../api/graphql/packages/conan_spec.rb | 2 +- .../api/graphql/packages/helm_spec.rb | 2 +- .../api/graphql/packages/package_spec.rb | 2 +- .../api/graphql/project/base_service_spec.rb | 2 +- .../sentry_detailed_error_request_spec.rb | 6 + .../api/graphql/project/fork_targets_spec.rb | 69 + .../api/graphql/project/jira_import_spec.rb | 14 +- .../graphql/project/project_members_spec.rb | 18 - .../api/graphql/project/work_items_spec.rb | 2 +- .../api/graphql/project_query_spec.rb | 96 + spec/requests/api/graphql/work_item_spec.rb | 109 +- spec/requests/api/graphql_spec.rb | 53 +- spec/requests/api/group_variables_spec.rb | 8 +- spec/requests/api/groups_spec.rb | 2 +- spec/requests/api/helpers_spec.rb | 6 +- spec/requests/api/integrations_spec.rb | 1 + spec/requests/api/internal/base_spec.rb | 39 +- .../api/internal/error_tracking_spec.rb | 2 +- spec/requests/api/internal/kubernetes_spec.rb | 178 +- spec/requests/api/internal/workhorse_spec.rb | 1 + spec/requests/api/invitations_spec.rb | 2 +- spec/requests/api/issue_links_spec.rb | 25 +- .../api/issues/get_project_issues_spec.rb | 44 + spec/requests/api/markdown_spec.rb | 61 +- spec/requests/api/maven_packages_spec.rb | 35 +- spec/requests/api/members_spec.rb | 47 +- spec/requests/api/merge_requests_spec.rb | 125 +- .../api/metrics/dashboard/annotations_spec.rb | 2 +- spec/requests/api/notes_spec.rb | 2 +- .../requests/api/npm_project_packages_spec.rb | 14 +- .../requests/api/nuget_group_packages_spec.rb | 2 +- spec/requests/api/pages/pages_spec.rb | 2 +- spec/requests/api/pages_domains_spec.rb | 4 +- .../api/personal_access_tokens_spec.rb | 4 +- spec/requests/api/project_attributes.yml | 2 + spec/requests/api/project_import_spec.rb | 2 +- spec/requests/api/project_packages_spec.rb | 76 +- spec/requests/api/project_templates_spec.rb | 4 +- spec/requests/api/projects_spec.rb | 4 +- spec/requests/api/protected_branches_spec.rb | 62 +- spec/requests/api/pypi_packages_spec.rb | 4 +- spec/requests/api/release/links_spec.rb | 8 +- spec/requests/api/releases_spec.rb | 8 +- spec/requests/api/repositories_spec.rb | 26 + spec/requests/api/search_spec.rb | 11 + spec/requests/api/settings_spec.rb | 2 +- spec/requests/api/snippets_spec.rb | 10 +- spec/requests/api/topics_spec.rb | 16 + spec/requests/api/unleash_spec.rb | 6 +- spec/requests/api/user_counts_spec.rb | 15 - spec/requests/api/users_spec.rb | 14 +- spec/requests/git_http_spec.rb | 2 +- .../groups/milestones_controller_spec.rb | 2 +- .../subscriptions_controller_spec.rb | 4 +- spec/requests/jwt_controller_spec.rb | 13 + spec/requests/lfs_http_spec.rb | 14 +- spec/requests/oauth/tokens_controller_spec.rb | 2 +- .../projects/cycle_analytics_events_spec.rb | 6 +- .../projects/merge_requests/diffs_spec.rb | 189 +- .../merge_requests_discussions_spec.rb | 323 +- ...packages_and_registries_controller_spec.rb | 70 + spec/requests/rack_attack_global_spec.rb | 12 +- .../requests/users/namespace_callouts_spec.rb | 57 + spec/requests/users/project_callouts_spec.rb | 58 + spec/routing/project_routing_spec.rb | 16 +- spec/rubocop/code_reuse_helpers_spec.rb | 60 +- spec/rubocop/cop/code_reuse/worker_spec.rb | 19 +- .../cop/gemspec/avoid_executing_git_spec.rb | 30 + .../deprecate_track_redis_hll_event_spec.rb | 19 + .../gitlab/mark_used_feature_flags_spec.rb | 4 +- .../inject_enterprise_edition_module_spec.rb | 1 + spec/rubocop/cop_todo_spec.rb | 124 + spec/rubocop/formatter/todo_formatter_spec.rb | 12 +- spec/scripts/changed-feature-flags_spec.rb | 4 +- .../lib/glfm/update_example_snapshots_spec.rb | 12 +- spec/scripts/trigger-build_spec.rb | 9 +- .../basic_deploy_key_entity_spec.rb | 4 +- .../deploy_keys/deploy_key_entity_spec.rb | 4 +- .../environment_serializer_spec.rb | 31 + .../group_access_token_entity_spec.rb | 57 + .../group_access_token_serializer_spec.rb | 28 + .../integrations/project_entity_spec.rb | 1 + spec/serializers/issue_entity_spec.rb | 7 + .../merge_request_poll_widget_entity_spec.rb | 34 +- .../merge_request_user_entity_spec.rb | 11 +- .../personal_access_token_entity_spec.rb | 27 + .../personal_access_token_serializer_spec.rb | 21 + .../project_access_token_entity_spec.rb | 61 + .../project_access_token_serializer_spec.rb | 28 + .../process_prometheus_alert_service_spec.rb | 1 + .../audit_events/build_service_spec.rb | 154 + spec/services/auto_merge/base_service_spec.rb | 2 +- spec/services/auto_merge_service_spec.rb | 4 +- spec/services/branches/create_service_spec.rb | 142 +- .../bulk_imports/create_service_spec.rb | 6 +- .../file_download_service_spec.rb | 35 +- .../bulk_update_integration_service_spec.rb | 2 +- .../evaluate_runner_tags_spec.rb | 2 +- .../ci/create_pipeline_service/rules_spec.rb | 1028 +- .../ci/create_pipeline_service_spec.rb | 815 +- .../ci/deployments/destroy_service_spec.rb | 65 + .../ci/destroy_pipeline_service_spec.rb | 20 +- .../ci/job_artifacts/create_service_spec.rb | 8 + .../destroy_batch_service_spec.rb | 9 +- .../ci/parse_dotenv_artifact_service_spec.rb | 2 +- .../status_collection_spec.rb | 2 +- .../services/ci/process_build_service_spec.rb | 2 +- spec/services/ci/register_job_service_spec.rb | 68 +- spec/services/ci/retry_job_service_spec.rb | 61 + .../ci/runners/assign_runner_service_spec.rb | 18 +- .../bulk_delete_runners_service_spec.rb | 83 + ...cess_runner_version_update_service_spec.rb | 80 + ...e_existing_runner_versions_service_spec.rb | 77 +- .../runners/register_runner_service_spec.rb | 148 +- .../reset_registration_token_service_spec.rb | 13 +- .../runners/unassign_runner_service_spec.rb | 28 +- .../runners/unregister_runner_service_spec.rb | 7 +- .../ci/runners/update_runner_service_spec.rb | 2 +- .../stuck_builds/drop_pending_service_spec.rb | 4 +- .../drop_scheduled_service_spec.rb | 2 +- .../ci/track_failed_build_service_spec.rb | 56 + .../ci/update_build_state_service_spec.rb | 18 + .../integrations/create_service_spec.rb | 2 +- .../prometheus_health_check_service_spec.rb | 1 + ..._or_update_service_account_service_spec.rb | 2 +- .../consistency_check_service_spec.rb | 53 +- .../create_for_build_service_spec.rb | 2 +- .../update_environment_service_spec.rb | 12 +- .../delete_designs_service_spec.rb | 24 +- .../generate_image_versions_service_spec.rb | 2 +- spec/services/git/branch_push_service_spec.rb | 4 +- .../create_cloudsql_instance_service_spec.rb | 90 + .../enable_cloudsql_service_spec.rb | 39 + .../get_cloudsql_instances_service_spec.rb | 62 + .../setup_cloudsql_instance_service_spec.rb | 68 + spec/services/groups/create_service_spec.rb | 9 + spec/services/groups/destroy_service_spec.rb | 15 +- .../merge_requests_count_service_spec.rb | 2 +- .../groups/open_issues_count_service_spec.rb | 2 +- spec/services/groups/transfer_service_spec.rb | 37 + spec/services/groups/update_service_spec.rb | 40 +- .../groups/update_statistics_service_spec.rb | 2 +- spec/services/import/fogbugz_service_spec.rb | 2 +- spec/services/import/prepare_service_spec.rb | 66 + ...lidate_remote_git_endpoint_service_spec.rb | 2 +- .../timeline_events/create_service_spec.rb | 83 + .../timeline_events/update_service_spec.rb | 21 +- .../common_system_notes_service_spec.rb | 45 +- spec/services/issues/clone_service_spec.rb | 26 +- spec/services/issues/create_service_spec.rb | 12 + spec/services/issues/move_service_spec.rb | 12 +- .../issues/prepare_import_csv_service_spec.rb | 51 + .../referenced_merge_requests_service_spec.rb | 2 +- spec/services/issues/update_service_spec.rb | 58 +- .../jira_import/start_import_service_spec.rb | 2 +- spec/services/lfs/push_service_spec.rb | 2 +- .../markdown_content_rewriter_service_spec.rb | 2 +- .../members/groups/creator_service_spec.rb | 5 +- spec/services/members/invite_service_spec.rb | 6 +- .../merge_requests/approval_service_spec.rb | 128 +- ...remove_attention_requested_service_spec.rb | 49 - .../merge_requests/close_service_spec.rb | 4 - .../create_approval_event_service_spec.rb | 22 + .../create_pipeline_service_spec.rb | 10 + .../execute_approval_hooks_service_spec.rb | 33 + .../handle_assignees_change_service_spec.rb | 8 - .../check_broken_status_service_spec.rb | 7 +- .../check_ci_status_service_spec.rb | 7 +- .../check_discussions_status_service_spec.rb | 7 +- .../check_draft_status_service_spec.rb | 7 +- .../check_open_status_service_spec.rb | 7 +- .../mergeability/run_checks_service_spec.rb | 94 +- .../push_options_handler_service_spec.rb | 22 +- .../merge_requests/refresh_service_spec.rb | 2 +- ...remove_attention_requested_service_spec.rb | 183 - .../request_attention_service_spec.rb | 220 - ...toggle_attention_requested_service_spec.rb | 188 - .../update_reviewers_service_spec.rb | 162 + .../merge_requests/update_service_spec.rb | 10 +- .../milestones/transfer_service_spec.rb | 8 +- spec/services/notes/build_service_spec.rb | 10 +- spec/services/notes/copy_service_spec.rb | 6 +- spec/services/notes/create_service_spec.rb | 94 +- spec/services/notes/destroy_service_spec.rb | 26 +- spec/services/notes/update_service_spec.rb | 34 +- spec/services/notification_service_spec.rb | 45 +- .../composer/create_package_service_spec.rb | 2 +- .../create_dependency_service_spec.rb | 2 +- .../extract_deb_metadata_service_spec.rb | 2 +- .../debian/extract_metadata_service_spec.rb | 7 +- .../debian/parse_debian822_service_spec.rb | 8 +- .../debian/sign_distribution_service_spec.rb | 2 +- .../helm/process_file_service_spec.rb | 2 +- .../npm/create_package_service_spec.rb | 8 +- .../packages/npm/create_tag_service_spec.rb | 1 + .../dependency_resolver_service_spec.rb | 14 +- spec/services/pages/delete_service_spec.rb | 4 +- ...n_lets_encrypt_certificate_service_spec.rb | 2 +- .../revoke_service_spec.rb | 1 + .../projects/after_rename_service_spec.rb | 9 +- .../projects/alerting/notify_service_spec.rb | 5 +- .../third_party/delete_tags_service_spec.rb | 2 +- spec/services/projects/create_service_spec.rb | 39 +- .../enable_deploy_key_service_spec.rb | 2 +- .../migrate_repository_service_spec.rb | 6 +- .../rollback_repository_service_spec.rb | 8 +- .../import_export/export_service_spec.rb | 23 +- .../relation_export_service_spec.rb | 121 + .../lfs_download_link_list_service_spec.rb | 2 +- .../lfs_pointers/lfs_download_service_spec.rb | 2 +- .../lfs_object_download_list_service_spec.rb | 6 +- .../projects/participants_service_spec.rb | 6 +- .../prometheus/alerts/notify_service_spec.rb | 9 +- .../projects/transfer_service_spec.rb | 43 +- spec/services/projects/update_service_spec.rb | 12 + .../update_statistics_service_spec.rb | 2 +- .../protected_branches/cache_service_spec.rb | 113 + .../protected_branches/create_service_spec.rb | 29 +- .../destroy_service_spec.rb | 27 +- .../protected_branches/update_service_spec.rb | 33 +- .../quick_actions/interpret_service_spec.rb | 110 +- spec/services/releases/create_service_spec.rb | 8 - .../services/releases/destroy_service_spec.rb | 2 +- spec/services/releases/update_service_spec.rb | 2 +- .../create_service_spec.rb | 2 +- .../change_labels_service_spec.rb | 60 +- spec/services/search/group_service_spec.rb | 2 +- .../sast_parser_service_spec.rb | 1 + spec/services/snippets/update_service_spec.rb | 2 +- .../suggestions/apply_service_spec.rb | 2 +- spec/services/system_note_service_spec.rb | 86 +- .../system_notes/issuables_service_spec.rb | 108 +- .../merge_requests_service_spec.rb | 4 +- .../time_tracking_service_spec.rb | 174 +- .../terraform/remote_state_handler_spec.rb | 2 +- spec/services/timelogs/create_service_spec.rb | 47 + spec/services/timelogs/delete_service_spec.rb | 14 +- spec/services/todo_service_spec.rb | 15 +- .../todos/destroy/design_service_spec.rb | 8 +- .../destroyed_issuable_service_spec.rb | 57 +- spec/services/topics/merge_service_spec.rb | 60 + spec/services/uploads/destroy_service_spec.rb | 103 + spec/services/users/create_service_spec.rb | 15 +- .../dismiss_namespace_callout_service_spec.rb | 24 + .../dismiss_project_callout_service_spec.rb | 25 + spec/services/users/update_service_spec.rb | 2 +- spec/services/web_hook_service_spec.rb | 4 +- .../web_hooks/destroy_service_spec.rb | 75 +- .../web_hooks/log_execution_service_spec.rb | 61 - .../webauthn/authenticate_service_spec.rb | 25 +- .../create_and_link_service_spec.rb | 40 +- .../create_from_task_service_spec.rb | 2 + .../work_items/create_service_spec.rb | 10 +- .../parent_links/create_service_spec.rb | 28 +- .../parent_links/destroy_service_spec.rb | 11 +- .../work_items/update_service_spec.rb | 119 +- .../assignees_service/update_service_spec.rb | 116 + .../update_service_spec.rb | 94 +- .../hierarchy_service/update_service_spec.rb | 26 +- .../update_service_spec.rb | 62 + .../weight_service/update_service_spec.rb | 36 - spec/spec_helper.rb | 27 +- .../support/database/cross-join-allowlist.yml | 7 +- .../gitlab_schemas_validate_connection.rb | 17 + spec/support/database/multiple_databases.rb | 20 + spec/support/finder_collection_allowlist.yml | 2 + spec/support/helpers/api_helpers.rb | 13 +- spec/support/helpers/ci/template_helpers.rb | 4 + .../helpers/cycle_analytics_helpers.rb | 25 - spec/support/helpers/dns_helpers.rb | 25 +- .../helpers/features/blob_spec_helpers.rb | 8 - .../features/invite_members_modal_helper.rb | 43 +- .../{runner_helpers.rb => runners_helpers.rb} | 0 .../features/source_editor_spec_helpers.rb | 5 +- spec/support/helpers/gitaly_setup.rb | 14 +- .../helpers/global_id_deprecation_helpers.rb | 8 +- spec/support/helpers/graphql_helpers.rb | 8 +- .../helpers/javascript_fixtures_helpers.rb | 21 +- spec/support/helpers/lfs_http_helpers.rb | 4 +- spec/support/helpers/login_helpers.rb | 4 +- spec/support/helpers/query_recorder.rb | 2 +- .../helpers/rack_attack_spec_helpers.rb | 6 +- .../helpers/redis_commands/recorder.rb | 34 + .../support/helpers/runner_releases_helper.rb | 22 + spec/support/helpers/stub_member.rb | 8 + spec/support/helpers/stub_method_calls.rb | 2 +- spec/support/helpers/stubbed_member.rb | 28 + .../helpers/type_name_deprecation_helpers.rb | 15 + spec/support/matchers/event_store.rb | 4 +- spec/support/matchers/markdown_matchers.rb | 4 +- .../bulk_imports_requests_shared_context.rb | 14 +- .../integrations_shared_context.rb | 2 +- .../fixtures/analytics_shared_context.rb | 1 + .../server_metrics_shared_context.rb | 8 +- .../markdown_snapshot_shared_examples.rb | 5 +- .../policies/group_policy_shared_context.rb | 1 + .../policies/project_policy_shared_context.rb | 1 + .../project_policy_table_shared_context.rb | 57 + .../upload_type_check_shared_context.rb | 14 +- ...ion_request_cache_invalidation_examples.rb | 15 - .../boards/destroy_service_shared_examples.rb | 6 +- .../components/pajamas_shared_examples.rb | 10 +- ...s_project_authorization_shared_examples.rb | 20 + ...l_authorization_service_shared_examples.rb | 24 + .../snowplow_event_tracking_examples.rb | 21 +- .../uploads_actions_shared_examples.rb | 80 +- .../features/access_tokens_shared_examples.rb | 2 +- .../content_editor_shared_examples.rb | 5 +- .../inviting_members_shared_examples.rb | 108 +- ...ple_assignees_widget_mr_shared_examples.rb | 2 +- .../sidebar_due_date_shared_examples.rb | 4 +- .../trial_email_validation_shared_example.rb | 59 + .../user_views_tag_shared_examples.rb | 34 + .../features/variable_list_shared_examples.rb | 10 +- .../wiki/file_attachments_shared_examples.rb | 10 +- .../user_updates_wiki_page_shared_examples.rb | 2 +- .../timelogs/create_shared_examples.rb | 97 + .../update_weight_widget_shared_examples.rb | 34 - .../graphql/notes_creation_shared_examples.rb | 1 + ...tlab_style_deprecations_shared_examples.rb | 17 + .../helpers/wiki_helpers_shared_examples.rb | 2 +- .../config/inheritable_shared_examples.rb | 5 +- .../issuable_activity_shared_examples.rb | 41 +- .../chat_integration_shared_examples.rb | 2 +- .../ci/metadata_id_tokens_shared_examples.rb | 44 + .../counter_attribute_shared_examples.rb | 64 +- ...ack_mattermost_notifier_shared_examples.rb | 2 +- .../has_web_hook_shared_examples.rb | 4 + .../models/issuable_link_shared_examples.rb | 1 + .../models/member_shared_examples.rb | 19 +- .../models/project_shared_examples.rb | 35 + .../models/taskable_shared_examples.rb | 24 +- .../namespaces/traversal_scope_examples.rb | 16 - ...roject_namespace_policy_shared_examples.rb | 35 + .../api/discussions_shared_examples.rb | 4 +- .../requests/api/notes_shared_examples.rb | 27 +- .../api/npm_packages_shared_examples.rb | 8 +- .../alert_firing_shared_examples.rb | 47 +- .../alert_recovery_shared_examples.rb | 35 - .../incident_creation_shared_examples.rb | 4 +- .../incident_resolution_shared_examples.rb | 2 +- .../notifications_shared_examples.rb | 4 +- .../lists_move_service_shared_examples.rb | 160 +- .../services/issuable_shared_examples.rb | 6 +- .../services/packages_shared_examples.rb | 20 + .../snowplow_tracking_shared_examples.rb | 11 + .../create_service_shared_examples.rb | 89 + .../work_items/create_task_shared_examples.rb | 16 + ...ground_migration_worker_shared_examples.rb | 31 +- .../database/prevent_cross_joins_spec.rb | 2 +- .../helpers/redis_commands/recorder_spec.rb | 128 + spec/tasks/dev_rake_spec.rb | 25 + .../gitlab/background_migrations_rake_spec.rb | 4 +- spec/tasks/gitlab/backup_rake_spec.rb | 13 +- .../rollback/bump_ci_sequences_rake_spec.rb | 3 +- spec/tasks/gitlab/db/lock_writes_rake_spec.rb | 80 +- .../gitlab/db/validate_config_rake_spec.rb | 2 +- spec/tasks/gitlab/db_rake_spec.rb | 2 +- spec/tasks/gitlab/gitaly_rake_spec.rb | 8 +- spec/tasks/gitlab/password_rake_spec.rb | 9 +- spec/tasks/gitlab/web_hook_rake_spec.rb | 4 + spec/tooling/danger/customer_success_spec.rb | 91 + spec/tooling/graphql/docs/renderer_spec.rb | 122 + .../lib/tooling/find_codeowners_spec.rb | 43 +- spec/tooling/quality/test_level_spec.rb | 4 +- spec/uploaders/avatar_uploader_spec.rb | 2 +- .../design_v432x230_uploader_spec.rb | 2 +- spec/uploaders/favicon_uploader_spec.rb | 8 +- spec/uploaders/object_storage_spec.rb | 18 +- .../admin/identities/index.html.haml_spec.rb | 70 + .../devise/sessions/new.html.haml_spec.rb | 108 +- .../group_members/index.html.haml_spec.rb | 2 +- .../layouts/header/_new_dropdown.haml_spec.rb | 5 +- .../projects/blob/_viewer.html.haml_spec.rb | 1 + .../projects/pages/new.html.haml_spec.rb | 42 + .../_pipeline_schedule.html.haml_spec.rb | 4 +- spec/workers/archive_trace_worker_spec.rb | 31 - spec/workers/build_finished_worker_spec.rb | 88 - spec/workers/build_hooks_worker_spec.rb | 4 +- spec/workers/ci/build_finished_worker_spec.rb | 21 +- .../workers/ci/cancel_pipeline_worker_spec.rb | 50 + ...ocess_runner_version_update_worker_spec.rb | 48 + ...isting_runner_versions_cron_worker_spec.rb | 45 + .../ci/track_failed_build_worker_spec.rb | 28 + .../limited_capacity/job_tracker_spec.rb | 2 +- spec/workers/concerns/waitable_worker_spec.rb | 36 +- .../ci_database_worker_spec.rb | 2 +- ...atched_background_migration_worker_spec.rb | 2 +- spec/workers/every_sidekiq_worker_spec.rb | 1 + .../stage/import_issue_events_worker_spec.rb | 53 +- .../create_approval_event_worker_spec.rb | 51 + .../create_approval_note_worker_spec.rb | 52 + .../execute_approval_hooks_worker_spec.rb | 57 + ...esolve_todos_after_approval_worker_spec.rb | 56 + spec/workers/new_issue_worker_spec.rb | 10 + .../cleanup/execute_policy_worker_spec.rb | 2 +- .../invalidate_domain_cache_worker_spec.rb | 112 +- spec/workers/post_receive_spec.rb | 6 + spec/workers/project_cache_worker_spec.rb | 2 +- .../relation_export_worker_spec.rb | 36 + ...ve_unreferenced_lfs_objects_worker_spec.rb | 8 +- .../update_project_statistics_worker_spec.rb | 28 +- .../deactivate_dormant_users_worker_spec.rb | 21 +- storybook/yarn.lock | 6 +- tests.yml | 4 + .../qa/{package_and_qa_check => run_qa_check} | 14 +- tooling/config/CODEOWNERS.yml | 26 +- tooling/danger/customer_success.rb | 45 + tooling/danger/product_intelligence.rb | 2 +- tooling/danger/project_helper.rb | 2 + tooling/graphql/docs/helper.rb | 5 +- tooling/lib/tooling/find_codeowners.rb | 92 +- tooling/lib/tooling/helm3_client.rb | 4 +- tooling/lib/tooling/test_map_packer.rb | 2 +- tooling/overcommit/Gemfile | 8 - tooling/overcommit/Gemfile.lock | 83 - tooling/overcommit/Makefile | 7 - tooling/quality/test_level.rb | 1 - .../devise-pbkdf2-encryptable/.gitlab-ci.yml | 2 + vendor/gems/error_tracking_open_api/README.md | 18 +- .../error_tracking_open_api/docs/ErrorsApi.md | 36 +- .../error_tracking_open_api/docs/EventsApi.md | 27 +- .../docs/ProjectsApi.md | 9 +- .../error_tracking_open_api/api/errors_api.rb | 8 +- .../error_tracking_open_api/api/events_api.rb | 6 +- .../api/projects_api.rb | 2 +- .../lib/error_tracking_open_api/api_client.rb | 1 + .../error_tracking_open_api/configuration.rb | 7 + vendor/gems/ipynbdiff/.gitlab-ci.yml | 2 + vendor/gems/mail-smtp_pool/.gitlab-ci.yml | 6 +- .../gems/omniauth-azure-oauth2/.gitlab-ci.yml | 28 + .../gems/omniauth-azure-oauth2/CHANGELOG.md | 31 + vendor/gems/omniauth-azure-oauth2/Gemfile | 8 + .../gems/omniauth-azure-oauth2/Gemfile.lock | 73 + vendor/gems/omniauth-azure-oauth2/LICENSE | 22 + vendor/gems/omniauth-azure-oauth2/README.md | 161 + vendor/gems/omniauth-azure-oauth2/Rakefile | 6 + .../omniauth-azure-oauth2/examples/sinatra.rb | 31 + .../lib/omniauth-azure-oauth2.rb | 1 + .../lib/omniauth/azure_oauth2.rb | 1 + .../lib/omniauth/azure_oauth2/version.rb | 5 + .../lib/omniauth/strategies/azure_oauth2.rb | 73 + .../omniauth-azure-oauth2.gemspec | 25 + .../omniauth/strategies/azure_oauth2_spec.rb | 332 + .../omniauth-azure-oauth2/spec/spec_helper.rb | 2 + vendor/gems/omniauth-cas3/.gitlab-ci.yml | 28 + vendor/gems/omniauth-cas3/Gemfile | 4 + vendor/gems/omniauth-cas3/Gemfile.lock | 64 + vendor/gems/omniauth-cas3/LICENSE | 23 + vendor/gems/omniauth-cas3/README.md | 134 + vendor/gems/omniauth-cas3/Rakefile | 15 + .../gems/omniauth-cas3/lib/omniauth-cas3.rb | 1 + .../gems/omniauth-cas3/lib/omniauth/cas3.rb | 2 + .../lib/omniauth/cas3/version.rb | 5 + .../lib/omniauth/strategies/cas3.rb | 222 + .../strategies/cas3/logout_request.rb | 73 + .../cas3/service_ticket_validator.rb | 103 + .../gems/omniauth-cas3/omniauth-cas3.gemspec | 27 + .../spec/fixtures/cas_failure.xml | 4 + .../spec/fixtures/cas_success.xml | 14 + .../spec/fixtures/cas_success_jasig.xml | 16 + .../strategies/cas3/logout_request_spec.rb | 127 + .../cas3/service_ticket_validator_spec.rb | 55 + .../spec/omniauth/strategies/cas3_spec.rb | 250 + vendor/gems/omniauth-cas3/spec/spec_helper.rb | 13 + vendor/gems/omniauth-gitlab/.gitlab-ci.yml | 8 +- vendor/gems/omniauth_crowd/.gitlab-ci.yml | 8 +- vendor/gems/omniauth_crowd/Gemfile.lock | 86 +- .../omniauth_crowd/omniauth_crowd.gemspec | 2 +- vendor/project_templates/hugo.tar.gz | Bin 1048450 -> 26755 bytes .../.github/ISSUE_TEMPLATE/bug_report.md | 21 - .../.github/ISSUE_TEMPLATE/feature_request.md | 14 - .../github.com/alecthomas/chroma/.gitignore | 19 - .../alecthomas/chroma/.golangci.yml | 55 - .../alecthomas/chroma/.goreleaser.yml | 33 - .../github.com/alecthomas/chroma/.travis.yml | 12 - .../github.com/alecthomas/chroma/COPYING | 19 - .../github.com/alecthomas/chroma/Makefile | 19 - .../github.com/alecthomas/chroma/README.md | 267 - .../chroma/_tools/css2style/main.go | 136 - .../alecthomas/chroma/_tools/exercise/main.go | 38 - .../chroma/_tools/pygments2chroma.hlb | 29 - .../chroma/_tools/pygments2chroma.py | 197 - .../alecthomas/chroma/_tools/style.py | 62 - .../alecthomas/chroma/cmd/chroma/main.go | 284 - .../alecthomas/chroma/cmd/chromad/go.mod | 15 - .../alecthomas/chroma/cmd/chromad/go.sum | 62 - .../alecthomas/chroma/cmd/chromad/main.go | 172 - .../chroma/cmd/chromad/static/index.js | 88 - .../cmd/chromad/templates/index.html.tmpl | 86 - .../github.com/alecthomas/chroma/coalesce.go | 35 - .../alecthomas/chroma/coalesce_test.go | 19 - .../github.com/alecthomas/chroma/colour.go | 164 - .../alecthomas/chroma/colour_test.go | 42 - .../github.com/alecthomas/chroma/delegate.go | 137 - .../alecthomas/chroma/delegate_test.go | 111 - .../github.com/alecthomas/chroma/doc.go | 7 - .../github.com/alecthomas/chroma/formatter.go | 43 - .../alecthomas/chroma/formatters/api.go | 57 - .../alecthomas/chroma/formatters/html/html.go | 443 - .../chroma/formatters/html/html_test.go | 235 - .../alecthomas/chroma/formatters/json.go | 31 - .../formatters/svg/font_liberation_mono.go | 51 - .../alecthomas/chroma/formatters/svg/svg.go | 222 - .../alecthomas/chroma/formatters/tokens.go | 18 - .../chroma/formatters/tty_indexed.go | 260 - .../chroma/formatters/tty_indexed_test.go | 13 - .../chroma/formatters/tty_truecolour.go | 42 - .../github.com/alecthomas/chroma/go.mod | 18 - .../github.com/alecthomas/chroma/go.sum | 36 - .../github.com/alecthomas/chroma/iterator.go | 76 - .../github.com/alecthomas/chroma/lexer.go | 125 - .../alecthomas/chroma/lexer_test.go | 52 - .../alecthomas/chroma/lexers/README.md | 37 - .../alecthomas/chroma/lexers/a/abap.go | 56 - .../alecthomas/chroma/lexers/a/abnf.go | 38 - .../chroma/lexers/a/actionscript.go | 39 - .../chroma/lexers/a/actionscript3.go | 56 - .../alecthomas/chroma/lexers/a/ada.go | 114 - .../alecthomas/chroma/lexers/a/angular2.go | 42 - .../alecthomas/chroma/lexers/a/antlr.go | 101 - .../alecthomas/chroma/lexers/a/apache.go | 38 - .../alecthomas/chroma/lexers/a/apl.go | 36 - .../alecthomas/chroma/lexers/a/applescript.go | 55 - .../alecthomas/chroma/lexers/a/arduino.go | 110 - .../alecthomas/chroma/lexers/a/awk.go | 48 - .../alecthomas/chroma/lexers/b/ballerina.go | 46 - .../alecthomas/chroma/lexers/b/bash.go | 95 - .../alecthomas/chroma/lexers/b/batch.go | 194 - .../alecthomas/chroma/lexers/b/bibtex.go | 76 - .../alecthomas/chroma/lexers/b/blitz.go | 48 - .../alecthomas/chroma/lexers/b/bnf.go | 24 - .../alecthomas/chroma/lexers/b/brainfuck.go | 34 - .../alecthomas/chroma/lexers/c/c.go | 91 - .../alecthomas/chroma/lexers/c/capnproto.go | 61 - .../alecthomas/chroma/lexers/c/ceylon.go | 63 - .../alecthomas/chroma/lexers/c/cfengine3.go | 56 - .../alecthomas/chroma/lexers/c/chaiscript.go | 63 - .../alecthomas/chroma/lexers/c/cheetah.go | 37 - .../alecthomas/chroma/lexers/c/cl.go | 306 - .../alecthomas/chroma/lexers/c/clojure.go | 38 - .../alecthomas/chroma/lexers/c/cmake.go | 44 - .../alecthomas/chroma/lexers/c/cobol.go | 51 - .../alecthomas/chroma/lexers/c/coffee.go | 91 - .../alecthomas/chroma/lexers/c/coldfusion.go | 48 - .../alecthomas/chroma/lexers/c/coq.go | 63 - .../alecthomas/chroma/lexers/c/cpp.go | 106 - .../alecthomas/chroma/lexers/c/cpp_test.go | 27 - .../alecthomas/chroma/lexers/c/cql.go | 69 - .../alecthomas/chroma/lexers/c/crystal.go | 262 - .../alecthomas/chroma/lexers/c/csharp.go | 51 - .../alecthomas/chroma/lexers/c/css.go | 104 - .../alecthomas/chroma/lexers/c/cython.go | 135 - .../alecthomas/chroma/lexers/circular/doc.go | 2 - .../alecthomas/chroma/lexers/circular/php.go | 91 - .../alecthomas/chroma/lexers/d/d.go | 69 - .../alecthomas/chroma/lexers/d/dart.go | 91 - .../alecthomas/chroma/lexers/d/diff.go | 29 - .../alecthomas/chroma/lexers/d/django.go | 53 - .../alecthomas/chroma/lexers/d/docker.go | 31 - .../alecthomas/chroma/lexers/d/dtd.go | 69 - .../alecthomas/chroma/lexers/e/ebnf.go | 51 - .../alecthomas/chroma/lexers/e/elixir.go | 270 - .../alecthomas/chroma/lexers/e/elm.go | 59 - .../alecthomas/chroma/lexers/e/emacs.go | 582 - .../alecthomas/chroma/lexers/e/erlang.go | 66 - .../alecthomas/chroma/lexers/f/factor.go | 115 - .../alecthomas/chroma/lexers/f/fish.go | 65 - .../alecthomas/chroma/lexers/f/forth.go | 40 - .../alecthomas/chroma/lexers/f/fortran.go | 47 - .../alecthomas/chroma/lexers/f/fsharp.go | 94 - .../alecthomas/chroma/lexers/g/gas.go | 55 - .../alecthomas/chroma/lexers/g/gdscript.go | 124 - .../alecthomas/chroma/lexers/g/genshi.go | 114 - .../alecthomas/chroma/lexers/g/gherkin.go | 118 - .../alecthomas/chroma/lexers/g/glsl.go | 37 - .../alecthomas/chroma/lexers/g/gnuplot.go | 117 - .../alecthomas/chroma/lexers/g/go.go | 114 - .../alecthomas/chroma/lexers/g/go_test.go | 50 - .../alecthomas/chroma/lexers/g/graphql.go | 45 - .../alecthomas/chroma/lexers/g/groovy.go | 58 - .../alecthomas/chroma/lexers/h/handlebars.go | 56 - .../alecthomas/chroma/lexers/h/haskell.go | 99 - .../alecthomas/chroma/lexers/h/haxe.go | 642 - .../alecthomas/chroma/lexers/h/hcl.go | 69 - .../alecthomas/chroma/lexers/h/hexdump.go | 67 - .../alecthomas/chroma/lexers/h/html.go | 59 - .../alecthomas/chroma/lexers/h/http.go | 128 - .../alecthomas/chroma/lexers/h/hy.go | 51 - .../alecthomas/chroma/lexers/hlb.go | 54 - .../alecthomas/chroma/lexers/i/idris.go | 80 - .../alecthomas/chroma/lexers/i/igor.go | 32 - .../alecthomas/chroma/lexers/i/ini.go | 25 - .../alecthomas/chroma/lexers/i/io.go | 40 - .../alecthomas/chroma/lexers/internal/api.go | 161 - .../alecthomas/chroma/lexers/j/j.go | 73 - .../alecthomas/chroma/lexers/j/java.go | 51 - .../alecthomas/chroma/lexers/j/javascript.go | 73 - .../alecthomas/chroma/lexers/j/json.go | 55 - .../alecthomas/chroma/lexers/j/jsx.go | 95 - .../alecthomas/chroma/lexers/j/julia.go | 95 - .../alecthomas/chroma/lexers/j/jungle.go | 50 - .../alecthomas/chroma/lexers/k/kotlin.go | 55 - .../alecthomas/chroma/lexers/l/lighttpd.go | 30 - .../alecthomas/chroma/lexers/l/llvm.go | 43 - .../alecthomas/chroma/lexers/l/lua.go | 75 - .../chroma/lexers/lexer_benchmark_test.go | 2472 -- .../alecthomas/chroma/lexers/lexers.go | 59 - .../alecthomas/chroma/lexers/lexers_test.go | 91 - .../alecthomas/chroma/lexers/m/make.go | 54 - .../alecthomas/chroma/lexers/m/mako.go | 60 - .../alecthomas/chroma/lexers/m/markdown.go | 48 - .../alecthomas/chroma/lexers/m/mason.go | 43 - .../alecthomas/chroma/lexers/m/mathematica.go | 32 - .../alecthomas/chroma/lexers/m/matlab.go | 51 - .../alecthomas/chroma/lexers/m/minizinc.go | 41 - .../alecthomas/chroma/lexers/m/mlir.go | 43 - .../alecthomas/chroma/lexers/m/modula2.go | 115 - .../alecthomas/chroma/lexers/m/monkeyc.go | 62 - .../alecthomas/chroma/lexers/m/mwscript.go | 53 - .../alecthomas/chroma/lexers/m/myghty.go | 40 - .../alecthomas/chroma/lexers/m/mysql.go | 54 - .../alecthomas/chroma/lexers/n/nasm.go | 59 - .../alecthomas/chroma/lexers/n/newspeak.go | 55 - .../alecthomas/chroma/lexers/n/nginx.go | 47 - .../alecthomas/chroma/lexers/n/nim.go | 93 - .../alecthomas/chroma/lexers/n/nix.go | 122 - .../alecthomas/chroma/lexers/o/objectivec.go | 165 - .../alecthomas/chroma/lexers/o/ocaml.go | 66 - .../alecthomas/chroma/lexers/o/octave.go | 46 - .../alecthomas/chroma/lexers/o/openscad.go | 43 - .../alecthomas/chroma/lexers/o/org.go | 102 - .../alecthomas/chroma/lexers/p/pacman.go | 26 - .../alecthomas/chroma/lexers/p/perl.go | 138 - .../alecthomas/chroma/lexers/p/pig.go | 57 - .../alecthomas/chroma/lexers/p/pkgconfig.go | 41 - .../alecthomas/chroma/lexers/p/plaintext.go | 17 - .../alecthomas/chroma/lexers/p/plsql.go | 58 - .../alecthomas/chroma/lexers/p/postgres.go | 77 - .../alecthomas/chroma/lexers/p/postscript.go | 46 - .../alecthomas/chroma/lexers/p/povray.go | 35 - .../alecthomas/chroma/lexers/p/powershell.go | 66 - .../alecthomas/chroma/lexers/p/prolog.go | 50 - .../alecthomas/chroma/lexers/p/protobuf.go | 53 - .../alecthomas/chroma/lexers/p/puppet.go | 56 - .../alecthomas/chroma/lexers/p/python.go | 137 - .../alecthomas/chroma/lexers/p/python3.go | 137 - .../alecthomas/chroma/lexers/q/qbasic.go | 67 - .../alecthomas/chroma/lexers/r/r.go | 66 - .../alecthomas/chroma/lexers/r/racket.go | 102 - .../alecthomas/chroma/lexers/r/ragel.go | 76 - .../alecthomas/chroma/lexers/r/reasonml.go | 67 - .../alecthomas/chroma/lexers/r/regedit.go | 32 - .../alecthomas/chroma/lexers/r/rexx.go | 59 - .../alecthomas/chroma/lexers/r/rst.go | 86 - .../alecthomas/chroma/lexers/r/ruby.go | 250 - .../alecthomas/chroma/lexers/r/rust.go | 135 - .../alecthomas/chroma/lexers/s/sas.go | 94 - .../alecthomas/chroma/lexers/s/sass.go | 144 - .../alecthomas/chroma/lexers/s/scala.go | 112 - .../alecthomas/chroma/lexers/s/scheme.go | 53 - .../alecthomas/chroma/lexers/s/scilab.go | 44 - .../alecthomas/chroma/lexers/s/scss.go | 124 - .../alecthomas/chroma/lexers/s/smalltalk.go | 99 - .../alecthomas/chroma/lexers/s/smarty.go | 40 - .../alecthomas/chroma/lexers/s/sml.go | 200 - .../alecthomas/chroma/lexers/s/snobol.go | 48 - .../alecthomas/chroma/lexers/s/solidity.go | 110 - .../alecthomas/chroma/lexers/s/sparql.go | 69 - .../alecthomas/chroma/lexers/s/sql.go | 49 - .../alecthomas/chroma/lexers/s/squid.go | 38 - .../alecthomas/chroma/lexers/s/swift.go | 87 - .../alecthomas/chroma/lexers/s/systemd.go | 28 - .../chroma/lexers/s/systemverilog.go | 73 - .../alecthomas/chroma/lexers/t/tablegen.go | 42 - .../alecthomas/chroma/lexers/t/tasm.go | 61 - .../alecthomas/chroma/lexers/t/tcl.go | 116 - .../alecthomas/chroma/lexers/t/tcsh.go | 59 - .../alecthomas/chroma/lexers/t/termcap.go | 42 - .../alecthomas/chroma/lexers/t/terminfo.go | 42 - .../alecthomas/chroma/lexers/t/terraform.go | 60 - .../alecthomas/chroma/lexers/t/tex.go | 56 - .../alecthomas/chroma/lexers/t/thrift.go | 73 - .../alecthomas/chroma/lexers/t/toml.go | 29 - .../alecthomas/chroma/lexers/t/tradingview.go | 40 - .../alecthomas/chroma/lexers/t/transactsql.go | 60 - .../alecthomas/chroma/lexers/t/turing.go | 43 - .../alecthomas/chroma/lexers/t/turtle.go | 67 - .../alecthomas/chroma/lexers/t/twig.go | 54 - .../alecthomas/chroma/lexers/t/typescript.go | 97 - .../alecthomas/chroma/lexers/t/typoscript.go | 126 - .../chroma/lexers/testdata/abap.actual | 62 - .../chroma/lexers/testdata/abap.expected | 208 - .../chroma/lexers/testdata/arduino.actual | 87 - .../chroma/lexers/testdata/arduino.expected | 546 - .../chroma/lexers/testdata/ballerina.actual | 5 - .../chroma/lexers/testdata/ballerina.expected | 26 - .../chroma/lexers/testdata/bash.actual | 46 - .../chroma/lexers/testdata/bash.expected | 134 - .../chroma/lexers/testdata/bib.actual | 22 - .../chroma/lexers/testdata/bib.expected | 101 - .../chroma/lexers/testdata/cpp.actual | 26 - .../chroma/lexers/testdata/cpp.expected | 139 - .../chroma/lexers/testdata/cql.actual | 68 - .../chroma/lexers/testdata/cql.expected | 1085 - .../chroma/lexers/testdata/csharp.actual | 13 - .../chroma/lexers/testdata/csharp.expected | 74 - .../chroma/lexers/testdata/css.actual | 3 - .../chroma/lexers/testdata/css.expected | 15 - .../chroma/lexers/testdata/d.actual | 21 - .../chroma/lexers/testdata/d.expected | 103 - .../chroma/lexers/testdata/dart.actual | 50 - .../chroma/lexers/testdata/dart.expected | 345 - .../chroma/lexers/testdata/erlang.actual | 15 - .../chroma/lexers/testdata/erlang.expected | 79 - .../chroma/lexers/testdata/gdscript.actual | 56 - .../chroma/lexers/testdata/gdscript.expected | 258 - .../chroma/lexers/testdata/gherkin.actual | 88 - .../chroma/lexers/testdata/gherkin.expected | 246 - .../chroma/lexers/testdata/go.actual | 15 - .../chroma/lexers/testdata/go.expected | 62 - .../chroma/lexers/testdata/graphql.actual | 42 - .../chroma/lexers/testdata/graphql.expected | 171 - .../chroma/lexers/testdata/hlb.actual | 29 - .../chroma/lexers/testdata/hlb.expected | 148 - .../chroma/lexers/testdata/http.actual | 5 - .../chroma/lexers/testdata/http.expected | 27 - .../chroma/lexers/testdata/igor.actual | 24 - .../chroma/lexers/testdata/igor.expected | 44 - .../chroma/lexers/testdata/j.actual | 6 - .../chroma/lexers/testdata/j.expected | 119 - .../chroma/lexers/testdata/java.actual | 26 - .../chroma/lexers/testdata/java.expected | 195 - .../chroma/lexers/testdata/javascript.actual | 2 - .../lexers/testdata/javascript.expected | 29 - .../chroma/lexers/testdata/jsx.actual | 14 - .../chroma/lexers/testdata/jsx.expected | 70 - .../chroma/lexers/testdata/julia.actual | 18 - .../chroma/lexers/testdata/julia.expected | 103 - .../chroma/lexers/testdata/jungle.actual | 14 - .../chroma/lexers/testdata/jungle.expected | 105 - .../chroma/lexers/testdata/kotlin.actual | 22 - .../chroma/lexers/testdata/kotlin.expected | 125 - .../chroma/lexers/testdata/markdown.actual | 85 - .../chroma/lexers/testdata/markdown.expected | 441 - .../chroma/lexers/testdata/matlab.actual | 10 - .../chroma/lexers/testdata/matlab.expected | 69 - .../chroma/lexers/testdata/mlir.actual | 102 - .../chroma/lexers/testdata/mlir.expected | 796 - .../chroma/lexers/testdata/monkeyc.actual | 47 - .../chroma/lexers/testdata/monkeyc.expected | 343 - .../chroma/lexers/testdata/nim.actual | 7 - .../chroma/lexers/testdata/nim.expected | 45 - .../chroma/lexers/testdata/openscad.actual | 46 - .../chroma/lexers/testdata/openscad.expected | 367 - .../chroma/lexers/testdata/org.actual | 145 - .../chroma/lexers/testdata/org.expected | 365 - .../chroma/lexers/testdata/php.actual | 19 - .../chroma/lexers/testdata/php.expected | 96 - .../chroma/lexers/testdata/powershell.actual | 1 - .../lexers/testdata/powershell.expected | 22 - .../chroma/lexers/testdata/r.actual | 7 - .../chroma/lexers/testdata/r.expected | 58 - .../chroma/lexers/testdata/reasonml.actual | 70 - .../chroma/lexers/testdata/reasonml.expected | 549 - .../chroma/lexers/testdata/rust.actual | 14 - .../chroma/lexers/testdata/rust.expected | 72 - .../chroma/lexers/testdata/sas.actual | 13 - .../chroma/lexers/testdata/sas.expected | 29 - .../chroma/lexers/testdata/scala.actual | 16 - .../chroma/lexers/testdata/scala.expected | 169 - .../chroma/lexers/testdata/sml.actual | 44 - .../chroma/lexers/testdata/sml.expected | 391 - .../chroma/lexers/testdata/solidity.actual | 20 - .../chroma/lexers/testdata/solidity.expected | 102 - .../chroma/lexers/testdata/systemd.actual | 11 - .../chroma/lexers/testdata/systemd.expected | 26 - .../lexers/testdata/systemverilog.actual | 11 - .../lexers/testdata/systemverilog.expected | 35 - .../chroma/lexers/testdata/tablegen.actual | 29 - .../chroma/lexers/testdata/tablegen.expected | 100 - .../chroma/lexers/testdata/terraform.actual | 39 - .../chroma/lexers/testdata/terraform.expected | 165 - .../chroma/lexers/testdata/tex.actual | 46 - .../chroma/lexers/testdata/tex.expected | 248 - .../chroma/lexers/testdata/tradingview.actual | 14 - .../lexers/testdata/tradingview.expected | 95 - .../chroma/lexers/testdata/tsx.actual | 13 - .../chroma/lexers/testdata/tsx.expected | 65 - .../chroma/lexers/testdata/turing.actual | 7 - .../chroma/lexers/testdata/turing.expected | 61 - .../chroma/lexers/testdata/vbnet.actual | 7 - .../chroma/lexers/testdata/vbnet.expected | 36 - .../chroma/lexers/testdata/vue.actual | 15 - .../chroma/lexers/testdata/vue.expected | 68 - .../chroma/lexers/testdata/yaml.actual | 166 - .../chroma/lexers/testdata/yaml.expected | 649 - .../chroma/lexers/testdata/yang.actual | 64 - .../chroma/lexers/testdata/yang.expected | 220 - .../alecthomas/chroma/lexers/v/vb.go | 73 - .../alecthomas/chroma/lexers/v/verilog.go | 68 - .../alecthomas/chroma/lexers/v/vhdl.go | 66 - .../alecthomas/chroma/lexers/v/vim.go | 37 - .../alecthomas/chroma/lexers/v/vue.go | 107 - .../alecthomas/chroma/lexers/w/wdte.go | 29 - .../alecthomas/chroma/lexers/x/xml.go | 45 - .../alecthomas/chroma/lexers/x/xorg.go | 25 - .../alecthomas/chroma/lexers/y/yaml.go | 50 - .../alecthomas/chroma/lexers/y/yang.go | 67 - .../github.com/alecthomas/chroma/mutators.go | 131 - .../alecthomas/chroma/mutators_test.go | 57 - .../alecthomas/chroma/pygments-lexers.txt | 325 - .../alecthomas/chroma/quick/example_test.go | 19 - .../alecthomas/chroma/quick/quick.go | 44 - .../github.com/alecthomas/chroma/regexp.go | 461 - .../alecthomas/chroma/regexp_test.go | 101 - .../github.com/alecthomas/chroma/remap.go | 80 - .../alecthomas/chroma/remap_test.go | 29 - .../github.com/alecthomas/chroma/style.go | 342 - .../alecthomas/chroma/style_test.go | 50 - .../alecthomas/chroma/styles/abap.go | 18 - .../alecthomas/chroma/styles/algol.go | 25 - .../alecthomas/chroma/styles/algol_nu.go | 25 - .../alecthomas/chroma/styles/api.go | 37 - .../alecthomas/chroma/styles/arduino.go | 25 - .../alecthomas/chroma/styles/autumn.go | 43 - .../alecthomas/chroma/styles/borland.go | 33 - .../github.com/alecthomas/chroma/styles/bw.go | 30 - .../alecthomas/chroma/styles/colorful.go | 59 - .../alecthomas/chroma/styles/dracula.go | 81 - .../alecthomas/chroma/styles/emacs.go | 51 - .../alecthomas/chroma/styles/friendly.go | 51 - .../alecthomas/chroma/styles/fruity.go | 26 - .../alecthomas/chroma/styles/github.go | 51 - .../alecthomas/chroma/styles/igor.go | 16 - .../alecthomas/chroma/styles/lovelace.go | 60 - .../alecthomas/chroma/styles/manni.go | 51 - .../alecthomas/chroma/styles/monokai.go | 36 - .../alecthomas/chroma/styles/monokailight.go | 33 - .../alecthomas/chroma/styles/murphy.go | 59 - .../alecthomas/chroma/styles/native.go | 42 - .../alecthomas/chroma/styles/paraiso-dark.go | 44 - .../alecthomas/chroma/styles/paraiso-light.go | 44 - .../alecthomas/chroma/styles/pastie.go | 52 - .../alecthomas/chroma/styles/perldoc.go | 44 - .../alecthomas/chroma/styles/pygments.go | 55 - .../alecthomas/chroma/styles/rainbow_dash.go | 47 - .../alecthomas/chroma/styles/rrt.go | 20 - .../chroma/styles/solarized-dark.go | 46 - .../chroma/styles/solarized-dark256.go | 48 - .../chroma/styles/solarized-light.go | 24 - .../alecthomas/chroma/styles/swapoff.go | 25 - .../alecthomas/chroma/styles/tango.go | 79 - .../alecthomas/chroma/styles/trac.go | 42 - .../alecthomas/chroma/styles/vim.go | 36 - .../github.com/alecthomas/chroma/styles/vs.go | 23 - .../alecthomas/chroma/styles/xcode.go | 29 - .../github.com/alecthomas/chroma/table.py | 15 - .../alecthomas/chroma/tokentype_string.go | 213 - .../github.com/alecthomas/chroma/types.go | 347 - workhorse/go.mod | 44 +- workhorse/go.sum | 86 +- yarn.lock | 3703 +- 5798 files changed, 185327 insertions(+), 138032 deletions(-) create mode 100644 .gitlab/ci/review-apps/skip-qa.gitlab-ci.yml delete mode 100644 .gitlab/issue_templates/OSS_Partner.md delete mode 100644 .gitlab/issue_templates/Performance Indicator Metric.md create mode 100644 .gitlab/issue_templates/UX Theme.md delete mode 100644 .overcommit.yml.example create mode 100644 .rubocop_todo/gitlab/deprecate_track_redis_hll_event.yml delete mode 100644 .rubocop_todo/layout/space_around_method_call_operator.yml delete mode 100644 .rubocop_todo/naming/rescued_exceptions_variable_name.yml delete mode 100644 .rubocop_todo/performance/block_given_with_explicit_block.yml delete mode 100644 .rubocop_todo/performance/constant_regexp.yml delete mode 100644 .rubocop_todo/rails/pick.yml delete mode 100644 .rubocop_todo/rails/rake_environment.yml create mode 100644 .rubocop_todo/rspec/be.yml create mode 100644 .rubocop_todo/rspec/empty_line_after_hook.yml create mode 100644 .rubocop_todo/rspec/hooks_before_examples.yml delete mode 100644 .rubocop_todo/style/array_coercion.yml delete mode 100644 .rubocop_todo/style/rescue_modifier.yml delete mode 100644 app/assets/javascripts/access_tokens/components/projects_field.vue delete mode 100644 app/assets/javascripts/access_tokens/components/projects_token_selector.vue delete mode 100644 app/assets/javascripts/attention_requests/components/navigation_popover.vue delete mode 100644 app/assets/javascripts/attention_requests/index.js create mode 100644 app/assets/javascripts/batch_comments/i18n.js create mode 100644 app/assets/javascripts/behaviors/components/json_table.vue create mode 100644 app/assets/javascripts/behaviors/markdown/render_json_table.js delete mode 100644 app/assets/javascripts/behaviors/markdown/render_mermaid.js create mode 100644 app/assets/javascripts/blob/blob_links_tracking.js create mode 100644 app/assets/javascripts/ci_variable_list/components/ci_admin_variables.vue create mode 100644 app/assets/javascripts/ci_variable_list/components/ci_group_variables.vue create mode 100644 app/assets/javascripts/ci_variable_list/graphql/fragments/ci_variable.fragment.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/admin_add_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/admin_delete_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/admin_update_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/group_add_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/group_delete_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/mutations/group_update_variable.mutation.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/queries/group_variables.query.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/queries/variables.query.graphql create mode 100644 app/assets/javascripts/ci_variable_list/graphql/resolvers.js create mode 100644 app/assets/javascripts/ci_variable_list/utils.js create mode 100644 app/assets/javascripts/content_editor/components/wrappers/table_of_contents.vue create mode 100644 app/assets/javascripts/content_editor/components/wrappers/table_of_contents_heading.vue create mode 100644 app/assets/javascripts/content_editor/extensions/reference_definition.js create mode 100644 app/assets/javascripts/content_editor/services/table_of_contents_utils.js create mode 100644 app/assets/javascripts/crm/contacts/components/graphql/get_group_contacts_count_by_state.graphql create mode 100644 app/assets/javascripts/gitlab_pages/new.js delete mode 100644 app/assets/javascripts/graphql_shared/fragments/blobviewer.fragment.graphql delete mode 100644 app/assets/javascripts/graphql_shared/fragments/iteration.fragment.graphql create mode 100644 app/assets/javascripts/groups/queries/search_groups_where_user_can_create_subgroups.query.graphql create mode 100644 app/assets/javascripts/issues/show/components/incidents/create_timeline_event.vue rename app/assets/javascripts/issues/show/components/incidents/{timeline_events_list_item.vue => timeline_events_item.vue} (92%) create mode 100644 app/assets/javascripts/lib/markdown_it.js delete mode 100644 app/assets/javascripts/packages_and_registries/package_registry/graphql/mutations/destroy_package_file.mutation.graphql create mode 100644 app/assets/javascripts/packages_and_registries/package_registry/graphql/mutations/destroy_package_files.mutation.graphql delete mode 100644 app/assets/javascripts/pages/projects/ci/secure_files/show/index.js create mode 100644 app/assets/javascripts/pages/projects/pages/new/index.js delete mode 100644 app/assets/javascripts/pages/projects/tags/releases/index.js create mode 100644 app/assets/javascripts/pages/sessions/new/email_format_validator.js delete mode 100644 app/assets/javascripts/pipeline_editor/components/lint/ci_lint.vue create mode 100644 app/assets/javascripts/pipeline_schedules/components/take_ownership_modal.vue create mode 100644 app/assets/javascripts/projects/settings/branch_rules/components/protections/index.vue create mode 100644 app/assets/javascripts/projects/settings/branch_rules/components/protections/merge_protections.vue create mode 100644 app/assets/javascripts/projects/settings/branch_rules/components/protections/push_protections.vue create mode 100644 app/assets/javascripts/projects/settings/graphql/queries/search_namespaces_where_user_can_transfer_projects.query.graphql create mode 100644 app/assets/javascripts/runner/components/runner_bulk_delete_checkbox.vue create mode 100644 app/assets/javascripts/runner/components/stat/runner_single_stat.vue delete mode 100644 app/assets/javascripts/runner/components/stat/runner_status_stat.vue create mode 100644 app/assets/javascripts/runner/graphql/list/all_runners_connection.fragment.graphql create mode 100644 app/assets/javascripts/runner/graphql/list/bulk_runner_delete.mutation.graphql create mode 100644 app/assets/javascripts/runner/graphql/list/group_runner_connection.fragment.graphql delete mode 100644 app/assets/javascripts/sidebar/components/attention_requested_toggle.vue delete mode 100644 app/assets/javascripts/sidebar/queries/remove_attention_request.mutation.graphql delete mode 100644 app/assets/javascripts/sidebar/queries/request_attention.mutation.graphql delete mode 100644 app/assets/javascripts/snippets/fragments/snippet_base.fragment.graphql create mode 100644 app/assets/javascripts/visibility_level/constants.js rename app/assets/javascripts/vue_merge_request_widget/components/{extensions/actions.vue => action_buttons.vue} (88%) create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/extensions/README.md create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/state_container.vue create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/widget/app.vue create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/widget/widget.vue create mode 100644 app/assets/javascripts/vue_shared/components/rich_timestamp_tooltip.vue create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/queries/get_merge_request_reviewers.query.graphql create mode 100644 app/assets/javascripts/vue_shared/components/source_viewer/plugins/utils/gemspec_linker.js create mode 100644 app/assets/javascripts/work_items/components/work_item_type_icon.vue delete mode 100644 app/assets/javascripts/work_items/graphql/change_work_item_parent_link.mutation.graphql delete mode 100644 app/assets/stylesheets/components/rich_content_editor.scss create mode 100644 app/assets/stylesheets/page_bundles/profile.scss create mode 100644 app/assets/stylesheets/page_bundles/runner_details.scss delete mode 100644 app/assets/stylesheets/pages/settings_ci_cd.scss create mode 100644 app/components/pajamas/avatar_component.html.haml create mode 100644 app/components/pajamas/avatar_component.rb create mode 100644 app/components/pajamas/checkbox_tag_component.html.haml create mode 100644 app/components/pajamas/checkbox_tag_component.rb delete mode 100644 app/controllers/projects/ci/secure_files_controller.rb delete mode 100644 app/controllers/projects/tags/releases_controller.rb create mode 100644 app/controllers/users/namespace_callouts_controller.rb create mode 100644 app/controllers/users/project_callouts_controller.rb create mode 100644 app/events/groups/group_deleted_event.rb create mode 100644 app/events/groups/group_path_changed_event.rb create mode 100644 app/events/groups/group_transfered_event.rb create mode 100644 app/events/merge_requests/approved_event.rb create mode 100644 app/events/projects/project_archived_event.rb create mode 100644 app/events/projects/project_transfered_event.rb create mode 100644 app/finders/autocomplete/deploy_keys_with_write_access_finder.rb create mode 100644 app/finders/groups/accepting_project_transfers_finder.rb create mode 100644 app/graphql/mutations/ci/runner/bulk_delete.rb delete mode 100644 app/graphql/mutations/merge_requests/remove_attention_request.rb delete mode 100644 app/graphql/mutations/merge_requests/request_attention.rb create mode 100644 app/graphql/mutations/merge_requests/set_reviewers.rb delete mode 100644 app/graphql/mutations/merge_requests/toggle_attention_requested.rb create mode 100644 app/graphql/mutations/timelogs/base.rb create mode 100644 app/graphql/mutations/timelogs/create.rb create mode 100644 app/graphql/mutations/uploads/delete.rb create mode 100644 app/graphql/resolvers/crm/contact_state_counts_resolver.rb create mode 100644 app/graphql/resolvers/projects/fork_targets_resolver.rb create mode 100644 app/graphql/types/ci/group_variable_type.rb create mode 100644 app/graphql/types/ci/instance_variable_type.rb create mode 100644 app/graphql/types/ci/manual_variable_type.rb create mode 100644 app/graphql/types/ci/project_variable_type.rb rename app/graphql/types/ci/{runner_upgrade_status_type_enum.rb => runner_upgrade_status_enum.rb} (79%) create mode 100644 app/graphql/types/ci/variable_input_type.rb create mode 100644 app/graphql/types/ci/variable_interface.rb delete mode 100644 app/graphql/types/ci/variable_type.rb create mode 100644 app/graphql/types/customer_relations/contact_sort_enum.rb create mode 100644 app/graphql/types/customer_relations/contact_state_counts_type.rb create mode 100644 app/graphql/types/merge_requests/detailed_merge_status_enum.rb create mode 100644 app/graphql/types/time_tracking/timelog_category_type.rb create mode 100644 app/graphql/types/upload_type.rb create mode 100644 app/graphql/types/work_items/widgets/assignees_input_type.rb create mode 100644 app/graphql/types/work_items/widgets/labels_type.rb create mode 100644 app/graphql/types/work_items/widgets/start_and_due_date_type.rb create mode 100644 app/graphql/types/work_items/widgets/start_and_due_date_update_input_type.rb delete mode 100644 app/graphql/types/work_items/widgets/weight_input_type.rb delete mode 100644 app/graphql/types/work_items/widgets/weight_type.rb create mode 100644 app/helpers/admin/identities_helper.rb create mode 100644 app/models/concerns/database_event_tracking.rb create mode 100644 app/models/concerns/enums/sbom.rb create mode 100644 app/models/customer_relations/contact_state_counts.rb create mode 100644 app/models/integrations/pumble.rb create mode 100644 app/models/members/member_role.rb create mode 100644 app/models/merge_request/approval_removal_settings.rb create mode 100644 app/models/ml.rb create mode 100644 app/models/ml/candidate.rb create mode 100644 app/models/ml/candidate_metric.rb create mode 100644 app/models/ml/candidate_param.rb create mode 100644 app/models/ml/experiment.rb create mode 100644 app/models/namespace/detail.rb create mode 100644 app/models/users/project_callout.rb create mode 100644 app/models/work_items/widgets/labels.rb create mode 100644 app/models/work_items/widgets/start_and_due_date.rb delete mode 100644 app/models/work_items/widgets/weight.rb create mode 100644 app/policies/project_hook_policy.rb create mode 100644 app/policies/system_hook_policy.rb create mode 100644 app/policies/time_tracking/timelog_category_policy.rb create mode 100644 app/policies/upload_policy.rb create mode 100644 app/serializers/group_access_token_entity.rb create mode 100644 app/serializers/group_access_token_serializer.rb create mode 100644 app/serializers/personal_access_token_entity.rb create mode 100644 app/serializers/personal_access_token_serializer.rb create mode 100644 app/serializers/project_access_token_entity.rb create mode 100644 app/serializers/project_access_token_serializer.rb create mode 100644 app/services/audit_events/build_service.rb create mode 100644 app/services/ci/deployments/destroy_service.rb create mode 100644 app/services/ci/runners/bulk_delete_runners_service.rb create mode 100644 app/services/ci/runners/process_runner_version_update_service.rb create mode 100644 app/services/ci/track_failed_build_service.rb create mode 100644 app/services/google_cloud/create_cloudsql_instance_service.rb create mode 100644 app/services/google_cloud/enable_cloudsql_service.rb create mode 100644 app/services/google_cloud/get_cloudsql_instances_service.rb create mode 100644 app/services/import/prepare_service.rb create mode 100644 app/services/issues/prepare_import_csv_service.rb delete mode 100644 app/services/merge_requests/bulk_remove_attention_requested_service.rb create mode 100644 app/services/merge_requests/create_approval_event_service.rb create mode 100644 app/services/merge_requests/execute_approval_hooks_service.rb delete mode 100644 app/services/merge_requests/remove_attention_requested_service.rb delete mode 100644 app/services/merge_requests/request_attention_service.rb delete mode 100644 app/services/merge_requests/toggle_attention_requested_service.rb create mode 100644 app/services/merge_requests/update_reviewers_service.rb delete mode 100644 app/services/notification_recipients/builder/attention_requested.rb create mode 100644 app/services/projects/import_export/relation_export_service.rb create mode 100644 app/services/protected_branches/cache_service.rb create mode 100644 app/services/timelogs/create_service.rb create mode 100644 app/services/topics/merge_service.rb create mode 100644 app/services/uploads/destroy_service.rb create mode 100644 app/services/users/dismiss_namespace_callout_service.rb create mode 100644 app/services/users/dismiss_project_callout_service.rb create mode 100644 app/services/web_hooks/admin_destroy_service.rb create mode 100644 app/services/work_items/widgets/assignees_service/update_service.rb create mode 100644 app/services/work_items/widgets/start_and_due_date_service/update_service.rb delete mode 100644 app/services/work_items/widgets/weight_service/update_service.rb create mode 100644 app/validators/json_schemas/build_metadata_id_tokens.json create mode 100644 app/validators/json_schemas/cyclonedx_report.json create mode 100644 app/views/layouts/component_preview.html.haml delete mode 100644 app/views/notify/attention_requested_merge_request_email.html.haml delete mode 100644 app/views/notify/attention_requested_merge_request_email.text.erb delete mode 100644 app/views/notify/user_auto_banned_email.html.haml delete mode 100644 app/views/notify/user_auto_banned_email.text.erb delete mode 100644 app/views/projects/ci/secure_files/show.html.haml delete mode 100644 app/views/projects/hook_logs/_index.html.haml create mode 100644 app/views/projects/pages/_header.html.haml create mode 100644 app/views/projects/pages/_waiting.html.haml create mode 100644 app/views/projects/pages/disabled.html.haml create mode 100644 app/views/projects/pages/new.html.haml create mode 100644 app/views/projects/settings/packages_and_registries/cleanup_tags.html.haml create mode 100644 app/views/projects/tags/_release_link.html.haml delete mode 100644 app/views/projects/tags/releases/edit.html.haml delete mode 100644 app/views/shared/_group_form.html.haml rename app/views/{admin => shared}/hook_logs/_index.html.haml (100%) delete mode 100644 app/views/shared/issuable/_merge_request_assignees.html.haml delete mode 100644 app/views/shared/issuable/_merge_request_reviewers.html.haml delete mode 100644 app/workers/archive_trace_worker.rb delete mode 100644 app/workers/build_finished_worker.rb create mode 100644 app/workers/ci/cancel_pipeline_worker.rb create mode 100644 app/workers/ci/runners/process_runner_version_update_worker.rb create mode 100644 app/workers/ci/track_failed_build_worker.rb create mode 100644 app/workers/merge_requests/create_approval_event_worker.rb create mode 100644 app/workers/merge_requests/create_approval_note_worker.rb create mode 100644 app/workers/merge_requests/execute_approval_hooks_worker.rb create mode 100644 app/workers/merge_requests/resolve_todos_after_approval_worker.rb create mode 100644 app/workers/projects/import_export/relation_export_worker.rb delete mode 100644 config/events/1656554755_issues_edit_g_project_management_issue_added_to_epic.yml delete mode 100644 config/events/1656555050_issues_edit_g_project_management_issue_changed_epic.yml delete mode 100644 config/events/1656555272_issues_edit_g_project_management_issue_iteration_changed.yml delete mode 100644 config/events/1656555342_issues_edit_g_project_management_issue_removed_from_epic.yml delete mode 100644 config/events/1656555426_issues_edit_g_project_management_issue_weight_changed.yml create mode 100644 config/events/1658833247_integrations_class_perform_integrations_action.yml rename config/events/{1656555163_issues_edit_g_project_management_issue_health_status_changed.yml => 1659067369_issue_actions_perform_issue_acitons_.yml} (57%) create mode 100644 config/events/1659626567_analytics_usage_action_perform_analytics_usage_action.yml rename config/feature_flags/development/{linear_scopes_superset.yml => always_async_project_authorizations_refresh.yml} (68%) rename config/feature_flags/development/{enforce_auth_checks_on_uploads.yml => async_after_approval.yml} (71%) rename config/feature_flags/development/{ci_minimal_cost_factor_for_gitlab_contributors.yml => auto_ban_user_on_namespace_excessive_projects_download.yml} (57%) delete mode 100644 config/feature_flags/development/ci_fix_rules_if_comparison_with_regexp_variable.yml rename config/feature_flags/development/{rebase_without_ci_ui.yml => ci_new_public_oss_cost_factor.yml} (72%) rename config/feature_flags/development/{ci_expand_environment_name_and_url.yml => ci_rules_changes_compare.yml} (71%) rename config/feature_flags/development/{simulate_pipeline.yml => ci_stop_expanding_file_vars_for_runners.yml} (70%) rename config/feature_flags/development/{uncached_mr_attention_requests_count.yml => disabled_mr_discussions_redis_cache.yml} (70%) delete mode 100644 config/feature_flags/development/enforce_security_report_validation.yml rename config/feature_flags/development/{change_response_code_merge_status.yml => etag_merge_request_diff_batches.yml} (62%) create mode 100644 config/feature_flags/development/execute_build_hooks_inline.yml create mode 100644 config/feature_flags/development/file_line_blame.yml delete mode 100644 config/feature_flags/development/fix_sliding_list_partitioning.yml rename config/feature_flags/development/{batch_load_environment_last_deployment_group.yml => group_level_protected_environment_settings_permission.yml} (65%) rename config/feature_flags/development/{hard_failure_for_mirrors_without_license.yml => hash_based_cache_for_protected_branches.yml} (69%) rename config/feature_flags/development/{ci_retry_downstream_pipeline.yml => hash_oauth_tokens.yml} (60%) rename config/feature_flags/development/{import_relation_object_persistence.yml => import_export_web_upload_stream.yml} (70%) delete mode 100644 config/feature_flags/development/import_release_authors_from_github.yml create mode 100644 config/feature_flags/development/incident_timeline_events_from_labels.yml rename config/feature_flags/development/{use_traversal_ids_for_ancestor_scopes_with_inner_join.yml => include_groups_from_group_shares_in_project_transfer_locations.yml} (64%) rename config/feature_flags/development/{job_log_search.yml => job_log_jump_to_failures.yml} (74%) delete mode 100644 config/feature_flags/development/lfk_automatic_partition_creation.yml delete mode 100644 config/feature_flags/development/lfk_automatic_partition_dropping.yml create mode 100644 config/feature_flags/development/limit_reviewer_and_assignee_size.yml delete mode 100644 config/feature_flags/development/new_graphql_keyset_pagination.yml create mode 100644 config/feature_flags/development/only_positive_pagination_values.yml rename config/feature_flags/development/{edit_tag_release_notes_via_release_page.yml => override_group_level_protected_environment_settings_permission.yml} (63%) delete mode 100644 config/feature_flags/development/personal_access_tokens_scoped_to_projects.yml rename config/feature_flags/development/{use_redis_hll_instrumentation_classes.yml => product_intelligence_database_event_tracking.yml} (65%) create mode 100644 config/feature_flags/development/rate_limit_gitlab_shell_by_ip.yml delete mode 100644 config/feature_flags/development/refresh_authorizations_via_affected_projects_on_group_membership.yml create mode 100644 config/feature_flags/development/report_artifact_build_completed_metrics_on_build_completion.yml rename config/feature_flags/development/{custom_headers_streaming_audit_events_ui.yml => restyle_login_page.yml} (66%) rename config/feature_flags/development/{restructured_mr_widget.yml => searchable_fork_targets.yml} (63%) create mode 100644 config/feature_flags/development/timelog_categories.yml create mode 100644 config/feature_flags/development/track_agent_users_using_ci_tunnel.yml delete mode 100644 config/feature_flags/development/track_gitlab_schema_in_current_transaction.yml rename config/feature_flags/development/{group_runner_view_ui.yml => trial_email_validation.yml} (64%) create mode 100644 config/feature_flags/development/use_pipeline_wizard_for_pages.yml create mode 100644 config/feature_flags/development/work_items_create_from_markdown.yml create mode 100644 config/feature_flags/ops/authenticate_markdown_api.yml create mode 100644 config/feature_flags/ops/batched_migrations_health_status_wal.yml create mode 100644 config/feature_flags/ops/ci_build_dependencies_artifacts_logger.yml create mode 100644 config/feature_flags/ops/database_async_index_destruction.yml create mode 100644 config/feature_flags/ops/github_importer_single_endpoint_issue_events_import.yml rename config/feature_flags/{development => ops}/performance_bar_stats.yml (93%) rename config/feature_flags/{development/use_keyset_aware_user_search_query.yml => ops/report_jemalloc_stats.yml} (62%) rename config/feature_flags/{development/incremental_repository_backup.yml => ops/skip_rugged_auto_detect.yml} (64%) create mode 100644 config/initializers/00_deprecations.rb create mode 100644 config/initializers/diagnostic_reports.rb create mode 100644 config/initializers/lookbook.rb delete mode 100644 config/initializers/truncato.rb delete mode 100644 config/jsdocs.config.js create mode 100644 config/locales/devise.zh-cn.yml create mode 100644 config/metrics/counts_28d/20220708162311_i_code_review_merge_request_widget_test_summary_view_monthly.yml create mode 100644 config/metrics/counts_28d/20220708163625_i_code_review_merge_request_widget_test_summary_full_report_clicked_monthly.yml create mode 100644 config/metrics/counts_28d/20220708164545_i_code_review_merge_request_widget_test_summary_expand_monthly.yml create mode 100644 config/metrics/counts_28d/20220708165638_i_code_review_merge_request_widget_test_summary_expand_success_monthly.yml create mode 100644 config/metrics/counts_28d/20220708170514_i_code_review_merge_request_widget_test_summary_expand_warning_monthly.yml create mode 100644 config/metrics/counts_28d/20220708173741_i_code_review_merge_request_widget_test_summary_expand_failed_monthly.yml create mode 100644 config/metrics/counts_28d/20220715195415_p_ci_templates_security_fortify_fod_sast_monthly.yml create mode 100644 config/metrics/counts_28d/20220719133315_p_ci_templates_implicit_security_fortify_fod_sast_monthly.yml create mode 100644 config/metrics/counts_28d/20220725193059_users_updating_work_item_dates_monthly.yml create mode 100644 config/metrics/counts_28d/20220725210913_i_code_review_merge_request_widget_accessibility_view_monthly.yml create mode 100644 config/metrics/counts_28d/20220725210919_i_code_review_merge_request_widget_accessibility_full_report_clicked_monthly.yml create mode 100644 config/metrics/counts_28d/20220725210926_i_code_review_merge_request_widget_accessibility_expand_monthly.yml create mode 100644 config/metrics/counts_28d/20220725210935_i_code_review_merge_request_widget_accessibility_expand_success_monthly.yml create mode 100644 config/metrics/counts_28d/20220725210942_i_code_review_merge_request_widget_accessibility_expand_warning_monthly.yml create mode 100644 config/metrics/counts_28d/20220725210949_i_code_review_merge_request_widget_accessibility_expand_failed_monthly.yml create mode 100644 config/metrics/counts_28d/20220727020440_i_code_review_merge_request_widget_code_quality_view_monthly.yml create mode 100644 config/metrics/counts_28d/20220727020446_i_code_review_merge_request_widget_code_quality_full_report_clicked_monthly.yml create mode 100644 config/metrics/counts_28d/20220727020452_i_code_review_merge_request_widget_code_quality_expand_monthly.yml create mode 100644 config/metrics/counts_28d/20220727020457_i_code_review_merge_request_widget_code_quality_expand_success_monthly.yml create mode 100644 config/metrics/counts_28d/20220727020503_i_code_review_merge_request_widget_code_quality_expand_warning_monthly.yml create mode 100644 config/metrics/counts_28d/20220727020509_i_code_review_merge_request_widget_code_quality_expand_failed_monthly.yml create mode 100644 config/metrics/counts_28d/20220727045317_i_code_review_merge_request_widget_terraform_view_monthly.yml create mode 100644 config/metrics/counts_28d/20220727045323_i_code_review_merge_request_widget_terraform_full_report_clicked_monthly.yml create mode 100644 config/metrics/counts_28d/20220727045330_i_code_review_merge_request_widget_terraform_expand_monthly.yml create mode 100644 config/metrics/counts_28d/20220727045336_i_code_review_merge_request_widget_terraform_expand_success_monthly.yml create mode 100644 config/metrics/counts_28d/20220727045342_i_code_review_merge_request_widget_terraform_expand_warning_monthly.yml create mode 100644 config/metrics/counts_28d/20220727045349_i_code_review_merge_request_widget_terraform_expand_failed_monthly.yml create mode 100644 config/metrics/counts_28d/20220729001651_agent_users_using_ci_tunnel_monthly.yml create mode 100644 config/metrics/counts_7d/20220708162305_i_code_review_merge_request_widget_test_summary_view_weekly.yml create mode 100644 config/metrics/counts_7d/20220708163619_i_code_review_merge_request_widget_test_summary_full_report_clicked_weekly.yml create mode 100644 config/metrics/counts_7d/20220708164539_i_code_review_merge_request_widget_test_summary_expand_weekly.yml create mode 100644 config/metrics/counts_7d/20220708165632_i_code_review_merge_request_widget_test_summary_expand_success_weekly.yml create mode 100644 config/metrics/counts_7d/20220708170508_i_code_review_merge_request_widget_test_summary_expand_warning_weekly.yml create mode 100644 config/metrics/counts_7d/20220708173736_i_code_review_merge_request_widget_test_summary_expand_failed_weekly.yml create mode 100644 config/metrics/counts_7d/20220715195411_p_ci_templates_security_fortify_fod_sast_weekly.yml create mode 100644 config/metrics/counts_7d/20220719133311_p_ci_templates_implicit_security_fortify_fod_sast_weekly.yml create mode 100644 config/metrics/counts_7d/20220725201348_users_updating_work_item_dates_weekly.yml create mode 100644 config/metrics/counts_7d/20220725210831_i_code_review_merge_request_widget_accessibility_view_weekly.yml create mode 100644 config/metrics/counts_7d/20220725210838_i_code_review_merge_request_widget_accessibility_full_report_clicked_weekly.yml create mode 100644 config/metrics/counts_7d/20220725210845_i_code_review_merge_request_widget_accessibility_expand_weekly.yml create mode 100644 config/metrics/counts_7d/20220725210851_i_code_review_merge_request_widget_accessibility_expand_success_weekly.yml create mode 100644 config/metrics/counts_7d/20220725210858_i_code_review_merge_request_widget_accessibility_expand_warning_weekly.yml create mode 100644 config/metrics/counts_7d/20220725210906_i_code_review_merge_request_widget_accessibility_expand_failed_weekly.yml create mode 100644 config/metrics/counts_7d/20220727020407_i_code_review_merge_request_widget_code_quality_view_weekly.yml create mode 100644 config/metrics/counts_7d/20220727020413_i_code_review_merge_request_widget_code_quality_full_report_clicked_weekly.yml create mode 100644 config/metrics/counts_7d/20220727020419_i_code_review_merge_request_widget_code_quality_expand_weekly.yml create mode 100644 config/metrics/counts_7d/20220727020424_i_code_review_merge_request_widget_code_quality_expand_success_weekly.yml create mode 100644 config/metrics/counts_7d/20220727020429_i_code_review_merge_request_widget_code_quality_expand_warning_weekly.yml create mode 100644 config/metrics/counts_7d/20220727020435_i_code_review_merge_request_widget_code_quality_expand_failed_weekly.yml create mode 100644 config/metrics/counts_7d/20220727045240_i_code_review_merge_request_widget_terraform_view_weekly.yml create mode 100644 config/metrics/counts_7d/20220727045246_i_code_review_merge_request_widget_terraform_full_report_clicked_weekly.yml create mode 100644 config/metrics/counts_7d/20220727045252_i_code_review_merge_request_widget_terraform_expand_weekly.yml create mode 100644 config/metrics/counts_7d/20220727045258_i_code_review_merge_request_widget_terraform_expand_success_weekly.yml create mode 100644 config/metrics/counts_7d/20220727045304_i_code_review_merge_request_widget_terraform_expand_warning_weekly.yml create mode 100644 config/metrics/counts_7d/20220727045311_i_code_review_merge_request_widget_terraform_expand_failed_weekly.yml create mode 100644 config/metrics/counts_7d/20220729001644_agent_users_using_ci_tunnel_weekly.yml create mode 100644 config/metrics/counts_all/20220708154149_i_code_review_merge_request_widget_test_summary_count_view.yml create mode 100644 config/metrics/counts_all/20220708154156_i_code_review_merge_request_widget_test_summary_count_full_report_clicked.yml create mode 100644 config/metrics/counts_all/20220708154201_i_code_review_merge_request_widget_test_summary_count_expand.yml create mode 100644 config/metrics/counts_all/20220708154206_i_code_review_merge_request_widget_test_summary_count_expand_success.yml create mode 100644 config/metrics/counts_all/20220708154211_i_code_review_merge_request_widget_test_summary_count_expand_warning.yml create mode 100644 config/metrics/counts_all/20220708154216_i_code_review_merge_request_widget_test_summary_count_expand_failed.yml create mode 100644 config/metrics/counts_all/20220725205853_i_code_review_merge_request_widget_accessibility_count_view.yml create mode 100644 config/metrics/counts_all/20220725205901_i_code_review_merge_request_widget_accessibility_count_full_report_clicked.yml create mode 100644 config/metrics/counts_all/20220725205908_i_code_review_merge_request_widget_accessibility_count_expand.yml create mode 100644 config/metrics/counts_all/20220725205915_i_code_review_merge_request_widget_accessibility_count_expand_success.yml create mode 100644 config/metrics/counts_all/20220725205922_i_code_review_merge_request_widget_accessibility_count_expand_warning.yml create mode 100644 config/metrics/counts_all/20220725205928_i_code_review_merge_request_widget_accessibility_count_expand_failed.yml create mode 100644 config/metrics/counts_all/20220727004434_i_code_review_merge_request_widget_code_quality_count_view.yml create mode 100644 config/metrics/counts_all/20220727004440_i_code_review_merge_request_widget_code_quality_count_full_report_clicked.yml create mode 100644 config/metrics/counts_all/20220727004446_i_code_review_merge_request_widget_code_quality_count_expand.yml create mode 100644 config/metrics/counts_all/20220727004451_i_code_review_merge_request_widget_code_quality_count_expand_success.yml create mode 100644 config/metrics/counts_all/20220727004457_i_code_review_merge_request_widget_code_quality_count_expand_warning.yml create mode 100644 config/metrics/counts_all/20220727004502_i_code_review_merge_request_widget_code_quality_count_expand_failed.yml create mode 100644 config/metrics/counts_all/20220727044257_i_code_review_merge_request_widget_terraform_count_view.yml create mode 100644 config/metrics/counts_all/20220727044304_i_code_review_merge_request_widget_terraform_count_full_report_clicked.yml create mode 100644 config/metrics/counts_all/20220727044310_i_code_review_merge_request_widget_terraform_count_expand.yml create mode 100644 config/metrics/counts_all/20220727044316_i_code_review_merge_request_widget_terraform_count_expand_success.yml create mode 100644 config/metrics/counts_all/20220727044322_i_code_review_merge_request_widget_terraform_count_expand_warning.yml create mode 100644 config/metrics/counts_all/20220727044329_i_code_review_merge_request_widget_terraform_count_expand_failed.yml create mode 100644 config/metrics/counts_all/20220802141715_groups_inheriting_pumble_active.yml create mode 100644 config/metrics/counts_all/20220802141715_groups_pumble_active.yml create mode 100644 config/metrics/counts_all/20220802141715_instances_pumble_active.yml create mode 100644 config/metrics/counts_all/20220802141715_projects_inheriting_pumble_active.yml create mode 100644 config/metrics/counts_all/20220802141715_projects_pumble_active.yml create mode 100644 danger/customer_success/Dangerfile create mode 100644 danger/plugins/customer_success.rb create mode 100644 data/deprecations/15-3-deprecate-redis-5.yml create mode 100644 data/deprecations/15-3-omniauth-cas3.yml create mode 100644 data/deprecations/15-3-omniauth-crowd.yml create mode 100644 data/deprecations/15-3-pipeline_activity_limit.yml create mode 100644 data/deprecations/16-0-security_report_schemas_v14-x-x.yml rename data/removals/15_0/{removal_manage_ repository_push_audit_event.yml => removal_manage_repository_push_audit_event.yml} (100%) create mode 100644 data/whats_new/202207220001_15_2.yml create mode 100644 db/docs/README.md create mode 100644 db/docs/member_roles.yml create mode 100644 db/docs/ml_candidate_metrics.yml create mode 100644 db/docs/ml_candidate_params.yml create mode 100644 db/docs/ml_candidates.yml create mode 100644 db/docs/ml_experiments.yml create mode 100644 db/docs/namespace_details.yml create mode 100644 db/docs/user_project_callouts.yml create mode 100644 db/migrate/20220316022505_create_namespace_details.rb create mode 100644 db/migrate/20220506154054_create_sync_namespace_details_trigger.rb create mode 100644 db/migrate/20220524184149_create_sync_project_namespace_details_trigger.rb create mode 100644 db/migrate/20220619212618_add_selective_code_owner_removals_to_project_settings.rb create mode 100644 db/migrate/20220707105335_rename_chat_name_service_id_to_integration_id.rb create mode 100644 db/migrate/20220707160707_rename_slack_integration_service_id_to_integration_id.rb create mode 100644 db/migrate/20220707181910_create_member_roles.rb create mode 100644 db/migrate/20220707181920_add_member_role_id_to_members.rb create mode 100644 db/migrate/20220707181930_add_member_roles_relation_to_members.rb create mode 100644 db/migrate/20220707190546_add_plan_limits_max_size_cyclonedx_report_column.rb create mode 100644 db/migrate/20220712131513_rename_issue_tracker_data_service_id_to_integration_id.rb create mode 100644 db/migrate/20220712144843_rename_jira_tracker_data_service_id_to_integration_id.rb create mode 100644 db/migrate/20220718083945_add_unique_project_download_limit_allowlist_to_namespace_settings.rb create mode 100644 db/migrate/20220720161816_add_namespace_id_to_vulnerability_reads_table.rb create mode 100644 db/migrate/20220720162123_update_vulnerability_reads_triggers_to_set_namespace_id.rb create mode 100644 db/migrate/20220720210446_add_start_date_to_issues_table.rb create mode 100644 db/migrate/20220722123318_update_delayed_deletion_period.rb create mode 100644 db/migrate/20220722150231_create_function_gitlab_schema_prevent_write.rb create mode 100644 db/migrate/20220722203840_update_lock_writes_function_disabled_via_setting.rb create mode 100644 db/migrate/20220723120039_add_author_id_to_vulnerability_state_transitions.rb create mode 100644 db/migrate/20220726025516_add_namespace_settings_unique_project_download_limit_allowlist_size_constraint.rb create mode 100644 db/migrate/20220726154012_ensure_sbom_occurrences_is_empty.rb create mode 100644 db/migrate/20220726154013_add_component_id_to_sbom_occurrences.rb create mode 100644 db/migrate/20220726154014_add_index_to_sbom_occurrences_component_id.rb create mode 100644 db/migrate/20220726154015_add_component_foreign_key_to_sbom_occurrences.rb create mode 100644 db/migrate/20220726154016_make_component_version_nullable.rb create mode 100644 db/migrate/20220726230052_remove_tmp_index_project_membership_namespace_id_column.rb create mode 100644 db/migrate/20220728114136_make_ssh_signature_key_nullable.rb create mode 100644 db/migrate/20220729073603_index_personal_access_tokens_on_id_and_created_at.rb create mode 100644 db/migrate/20220802154757_add_deactivate_dormant_user_time_setting.rb create mode 100644 db/migrate/20220803145637_create_user_project_callout.rb create mode 100644 db/migrate/20220803154543_add_project_id_fkey_for_user_project_callout.rb create mode 100644 db/migrate/20220803154758_add_user_id_fkey_for_user_project_callout.rb create mode 100644 db/migrate/20220805154101_add_allow_run_pipelines_in_the_parent_project_setting.rb create mode 100644 db/migrate/20220808133824_add_timestamps_to_project_statistics.rb create mode 100644 db/migrate/20220808190124_add_id_token_to_ci_builds_metadata.rb create mode 100644 db/migrate/20220808194857_remove_description_html_limit.rb create mode 100644 db/migrate/20220811092243_create_ml_experiments.rb create mode 100644 db/migrate/20220811092244_create_ml_candidates.rb create mode 100644 db/migrate/20220811092245_create_ml_candidate_params.rb create mode 100644 db/migrate/20220811092246_create_ml_candidate_metrics.rb create mode 100644 db/migrate/20220811092251_add_ml_candidates_reference_to_experiment.rb create mode 100644 db/migrate/20220811092253_add_ml_experiments_reference_to_project.rb create mode 100644 db/post_migrate/20220525201022_add_temporary_index_for_vulnerability_reads_cluster_agent_id_migration.rb create mode 100644 db/post_migrate/20220525221133_schedule_backfill_vulnerability_reads_cluster_agent.rb create mode 100644 db/post_migrate/20220603173103_update_vulnerabilities_project_id_id_index.rb create mode 100644 db/post_migrate/20220607082910_add_sync_tmp_index_for_potentially_misassociated_vulnerability_occurrences.rb create mode 100644 db/post_migrate/20220614185644_update_index_vulnerabilities_project_id_id.rb create mode 100644 db/post_migrate/20220621192541_add_project_id_state_severity_default_branch_index_for_vulnerabilities.rb create mode 100644 db/post_migrate/20220629124942_remove_vulnerability_occurrences_migrated_to_new_structure_column.rb create mode 100644 db/post_migrate/20220707105529_cleanup_chat_name_service_id.rb create mode 100644 db/post_migrate/20220707160921_cleanup_slack_integration_service_id.rb create mode 100644 db/post_migrate/20220712131533_cleanup_issue_tracker_data_service_id.rb create mode 100644 db/post_migrate/20220712144900_cleanup_jira_tracker_data_service_id.rb create mode 100644 db/post_migrate/20220715152108_backfill_project_import_level.rb create mode 100644 db/post_migrate/20220715185348_add_index_on_security_findings_id_and_partition_number.rb create mode 100644 db/post_migrate/20220715185436_add_index_on_security_findings_unique_columns.rb create mode 100644 db/post_migrate/20220715190612_drop_index_on_security_findings_uuid_and_scan_id.rb create mode 100644 db/post_migrate/20220715191629_change_primary_key_of_security_findings_table.rb create mode 100644 db/post_migrate/20220719081542_drop_queued_at_index_from_ci_builds.rb create mode 100644 db/post_migrate/20220719165537_remove_ci_runners_semver_column.rb create mode 100644 db/post_migrate/20220720090354_remove_pending_builds_covering_index_from_ci_builds.rb create mode 100644 db/post_migrate/20220720121421_remove_pat_and_ssh_enforcement_columns_from_application_settings.rb create mode 100644 db/post_migrate/20220720123249_remove_token_column_from_ci_builds.rb create mode 100644 db/post_migrate/20220720171102_add_index_on_vulnerability_reads_namespace_id.rb create mode 100644 db/post_migrate/20220720171801_add_foreign_key_on_vulnerability_reads_namespace_id.rb create mode 100644 db/post_migrate/20220721031446_schedule_disable_legacy_open_source_license_for_one_member_no_repo_projects.rb create mode 100644 db/post_migrate/20220721140252_prepare_partial_trigram_indexes_for_issues.rb create mode 100644 db/post_migrate/20220722084543_schedule_disable_legacy_open_source_license_for_no_issues_no_repo_projects.rb create mode 100644 db/post_migrate/20220722110026_reschedule_set_legacy_open_source_license_available_for_non_public_projects.rb create mode 100644 db/post_migrate/20220722145845_schedule_backfilling_the_namespace_id_for_vulnerability_reads.rb create mode 100644 db/post_migrate/20220725150127_update_jira_tracker_data_deployment_type_based_on_url.rb create mode 100644 db/post_migrate/20220726182310_add_user_fk_to_vulnerability_state_transitions.rb create mode 100644 db/post_migrate/20220728134255_update_index_vulnerabilities_common_finder.rb create mode 100644 db/post_migrate/20220729033851_add_partial_legacy_open_source_license_available_index.rb create mode 100644 db/post_migrate/20220729052031_add_index_on_vulnerability_reads_namespace_id_with_report_type.rb create mode 100644 db/post_migrate/20220801144713_add_partial_trigram_index_for_issue_title.rb create mode 100644 db/post_migrate/20220801150028_add_partial_trigram_index_for_issue_description.rb create mode 100644 db/post_migrate/20220802112102_schedule_migrate_shared_vulnerability_scanners.rb create mode 100644 db/post_migrate/20220802114351_reschedule_backfill_container_registry_size_into_project_statistics.rb create mode 100644 db/post_migrate/20220802132158_index_on_integration_type_new_id_when_active_and_has_group.rb create mode 100644 db/post_migrate/20220802204737_remove_deactivated_user_highest_role_stats.rb create mode 100644 db/post_migrate/20220803042351_add_tmp_index_todos_attention_request_action.rb create mode 100644 db/post_migrate/20220803042352_cleanup_mr_attention_request_todos.rb create mode 100644 db/post_migrate/20220804235614_add_comment_to_vulnerability_state_transitions.rb create mode 100644 db/post_migrate/20220805001210_add_text_limit_to_vulnerability_state_transitions_comment.rb create mode 100644 db/post_migrate/20220808072054_prepare_index_removal_security_findings.rb create mode 100644 db/post_migrate/20220808131659_remove_ci_namespace_monthly_usages_additional_amount_available_column.rb create mode 100644 db/post_migrate/20220810093742_add_async_tmp_index_job_artifacts_id_and_expire_at.rb create mode 100644 db/schema_migrations/20220316022505 create mode 100644 db/schema_migrations/20220506154054 create mode 100644 db/schema_migrations/20220524184149 create mode 100644 db/schema_migrations/20220525201022 create mode 100644 db/schema_migrations/20220525221133 create mode 100644 db/schema_migrations/20220603173103 create mode 100644 db/schema_migrations/20220607082910 create mode 100644 db/schema_migrations/20220614185644 create mode 100644 db/schema_migrations/20220619212618 create mode 100644 db/schema_migrations/20220621192541 create mode 100644 db/schema_migrations/20220629124942 create mode 100644 db/schema_migrations/20220707105335 create mode 100644 db/schema_migrations/20220707105529 create mode 100644 db/schema_migrations/20220707160707 create mode 100644 db/schema_migrations/20220707160921 create mode 100644 db/schema_migrations/20220707181910 create mode 100644 db/schema_migrations/20220707181920 create mode 100644 db/schema_migrations/20220707181930 create mode 100644 db/schema_migrations/20220707190546 create mode 100644 db/schema_migrations/20220712131513 create mode 100644 db/schema_migrations/20220712131533 create mode 100644 db/schema_migrations/20220712144843 create mode 100644 db/schema_migrations/20220712144900 create mode 100644 db/schema_migrations/20220715152108 create mode 100644 db/schema_migrations/20220715185348 create mode 100644 db/schema_migrations/20220715185436 create mode 100644 db/schema_migrations/20220715190612 create mode 100644 db/schema_migrations/20220715191629 create mode 100644 db/schema_migrations/20220718083945 create mode 100644 db/schema_migrations/20220719081542 create mode 100644 db/schema_migrations/20220719165537 create mode 100644 db/schema_migrations/20220720090354 create mode 100644 db/schema_migrations/20220720121421 create mode 100644 db/schema_migrations/20220720123249 create mode 100644 db/schema_migrations/20220720161816 create mode 100644 db/schema_migrations/20220720162123 create mode 100644 db/schema_migrations/20220720171102 create mode 100644 db/schema_migrations/20220720171801 create mode 100644 db/schema_migrations/20220720210446 create mode 100644 db/schema_migrations/20220721031446 create mode 100644 db/schema_migrations/20220721140252 create mode 100644 db/schema_migrations/20220722084543 create mode 100644 db/schema_migrations/20220722110026 create mode 100644 db/schema_migrations/20220722123318 create mode 100644 db/schema_migrations/20220722145845 create mode 100644 db/schema_migrations/20220722150231 create mode 100644 db/schema_migrations/20220722203840 create mode 100644 db/schema_migrations/20220723120039 create mode 100644 db/schema_migrations/20220725150127 create mode 100644 db/schema_migrations/20220726025516 create mode 100644 db/schema_migrations/20220726154012 create mode 100644 db/schema_migrations/20220726154013 create mode 100644 db/schema_migrations/20220726154014 create mode 100644 db/schema_migrations/20220726154015 create mode 100644 db/schema_migrations/20220726154016 create mode 100644 db/schema_migrations/20220726182310 create mode 100644 db/schema_migrations/20220726230052 create mode 100644 db/schema_migrations/20220728114136 create mode 100644 db/schema_migrations/20220728134255 create mode 100644 db/schema_migrations/20220729033851 create mode 100644 db/schema_migrations/20220729052031 create mode 100644 db/schema_migrations/20220729073603 create mode 100644 db/schema_migrations/20220801144713 create mode 100644 db/schema_migrations/20220801150028 create mode 100644 db/schema_migrations/20220802112102 create mode 100644 db/schema_migrations/20220802114351 create mode 100644 db/schema_migrations/20220802132158 create mode 100644 db/schema_migrations/20220802154757 create mode 100644 db/schema_migrations/20220802204737 create mode 100644 db/schema_migrations/20220803042351 create mode 100644 db/schema_migrations/20220803042352 create mode 100644 db/schema_migrations/20220803145637 create mode 100644 db/schema_migrations/20220803154543 create mode 100644 db/schema_migrations/20220803154758 create mode 100644 db/schema_migrations/20220804235614 create mode 100644 db/schema_migrations/20220805001210 create mode 100644 db/schema_migrations/20220805154101 create mode 100644 db/schema_migrations/20220808072054 create mode 100644 db/schema_migrations/20220808131659 create mode 100644 db/schema_migrations/20220808133824 create mode 100644 db/schema_migrations/20220808190124 create mode 100644 db/schema_migrations/20220808194857 create mode 100644 db/schema_migrations/20220810093742 create mode 100644 db/schema_migrations/20220811092243 create mode 100644 db/schema_migrations/20220811092244 create mode 100644 db/schema_migrations/20220811092245 create mode 100644 db/schema_migrations/20220811092246 create mode 100644 db/schema_migrations/20220811092251 create mode 100644 db/schema_migrations/20220811092253 create mode 100644 doc/.vale/gitlab/HeadingDepth.yml create mode 100644 doc/.vale/gitlab/MultiLineLinks.yml create mode 100644 doc/.vale/gitlab/VersionTextSingleLine.yml delete mode 100644 doc/administration/auth/ldap/img/multi_login.png create mode 100644 doc/administration/geo/replication/container_registry.md rename doc/administration/{troubleshooting => logs}/img/database-query-dialog_v14_3.png (100%) rename doc/administration/{troubleshooting => logs}/img/network_monitor_xid.png (100%) rename doc/administration/{troubleshooting => logs}/img/obtaining-a-session-cookie-for-request_v14_3.png (100%) rename doc/administration/{troubleshooting => logs}/img/paste-request-id-into-progress-bar_v14_3.png (100%) rename doc/administration/{troubleshooting => logs}/img/select-request-id-from-request-selector-drop-down-menu_v14_3.png (100%) rename doc/administration/{troubleshooting => logs}/img/view-pg-details_v14_3.png (100%) create mode 100644 doc/administration/logs/index.md create mode 100644 doc/administration/logs/log_parsing.md create mode 100644 doc/administration/logs/tracing_correlation_id.md create mode 100644 doc/administration/sidekiq/extra_sidekiq_processes.md create mode 100644 doc/administration/sidekiq/extra_sidekiq_routing.md rename doc/administration/{troubleshooting => sidekiq}/img/sidekiq_flamegraph.png (100%) create mode 100644 doc/administration/sidekiq/index.md create mode 100644 doc/administration/sidekiq/sidekiq_health_check.md create mode 100644 doc/administration/sidekiq/sidekiq_job_migration.md create mode 100644 doc/administration/sidekiq/sidekiq_memory_killer.md create mode 100644 doc/administration/sidekiq/sidekiq_troubleshooting.md delete mode 100644 doc/administration/troubleshooting/img/Okta-SAMLsetup.png delete mode 100644 doc/administration/troubleshooting/img/Okta-advancedsettings.png delete mode 100644 doc/administration/troubleshooting/img/Okta-attributes.png delete mode 100644 doc/administration/troubleshooting/img/Okta-linkscert.png delete mode 100644 doc/administration/troubleshooting/img/okta_admin_panel_v13_9.png delete mode 100644 doc/administration/troubleshooting/img/okta_saml_settings.png create mode 100644 doc/api/packages/terraform-modules.md create mode 100644 doc/ci/pipelines/img/pipeline_mini_graph_v15_0.png create mode 100644 doc/ci/runners/img/build_isolation.png create mode 100644 doc/development/database/adding_database_indexes.md create mode 100644 doc/development/database/ci_mirrored_tables.md create mode 100644 doc/development/database/creating_enums.md create mode 100644 doc/development/database/database_debugging.md create mode 100644 doc/development/database/database_dictionary.md create mode 100644 doc/development/database/database_query_comments.md create mode 100644 doc/development/database/db_dump.md create mode 100644 doc/development/database/filtering_by_label.md create mode 100644 doc/development/database/foreign_keys.md create mode 100644 doc/development/database/hash_indexes.md create mode 100644 doc/development/database/insert_into_tables_in_batches.md create mode 100644 doc/development/database/iterating_tables_in_batches.md create mode 100644 doc/development/database/namespaces_storage_statistics.md create mode 100644 doc/development/database/ordering_table_columns.md create mode 100644 doc/development/database/polymorphic_associations.md create mode 100644 doc/development/database/query_count_limits.md create mode 100644 doc/development/database/query_performance.md create mode 100644 doc/development/database/query_recorder.md create mode 100644 doc/development/database/serializing_data.md create mode 100644 doc/development/database/sha1_as_binary.md create mode 100644 doc/development/database/single_table_inheritance.md create mode 100644 doc/development/database/swapping_tables.md create mode 100644 doc/development/database/understanding_explain_plans.md create mode 100644 doc/development/database/verifying_database_capabilities.md create mode 100644 doc/development/fe_guide/merge_request_widget_extensions.md create mode 100644 doc/development/merge_request_concepts/widget_extensions.md delete mode 100644 doc/integration/img/jenkins_gitlab_service.png delete mode 100644 doc/integration/img/jenkins_project.png delete mode 100644 doc/integration/img/omniauth_providers_v_14_6.png create mode 100644 doc/operations/incident_management/img/linked_resources_list_v15_3.png create mode 100644 doc/operations/incident_management/linked_resources.md delete mode 100644 doc/user/analytics/img/product_analytics_commits_per_mr_v14_4.png delete mode 100644 doc/user/analytics/img/productivity_analytics_time_to_merge_v14_4.png delete mode 100644 doc/user/analytics/img/productivity_analytics_trendline_v14_4.png delete mode 100644 doc/user/application_security/dast/checks/798.45.md delete mode 100644 doc/user/application_security/dast/checks/798.51.md delete mode 100644 doc/user/application_security/dast/checks/798.71.md delete mode 100644 doc/user/application_security/dast/checks/798.73.md delete mode 100644 doc/user/application_security/dast/checks/798.76.md delete mode 100644 doc/user/application_security/dast/checks/798.79.md delete mode 100644 doc/user/application_security/dast/checks/798.85.md create mode 100644 doc/user/application_security/get-started-security.md create mode 100644 doc/user/application_security/sast/customize_rulesets.md create mode 100644 doc/user/application_security/sast/img/sast_vulnerability_page_fp_detection_v15_2.png create mode 100644 doc/user/group/access_and_permissions.md create mode 100644 doc/user/group/manage.md create mode 100644 doc/user/group/saml_sso/example_saml_config.md rename doc/{administration/troubleshooting => user/group/saml_sso}/img/AzureAD-basic_SAML.png (100%) rename doc/{administration/troubleshooting => user/group/saml_sso}/img/AzureAD-claims.png (100%) rename doc/{administration/troubleshooting => user/group/saml_sso}/img/AzureAD-scim_attribute_mapping.png (100%) rename doc/{administration/troubleshooting => user/group/saml_sso}/img/AzureAD-scim_provisioning.png (100%) rename doc/{administration/troubleshooting => user/group/saml_sso}/img/GoogleWorkspace-basic-SAML_v14_10.png (100%) rename doc/{administration/troubleshooting => user/group/saml_sso}/img/GoogleWorkspace-claims_v14_10.png (100%) rename doc/{administration/troubleshooting => user/group/saml_sso}/img/GoogleWorkspace-linkscert_v14_10.png (100%) create mode 100644 doc/user/group/saml_sso/img/Okta-GroupAttribute.png create mode 100644 doc/user/group/saml_sso/img/Okta-GroupSAML.png create mode 100644 doc/user/group/saml_sso/img/Okta-SM.png create mode 100644 doc/user/group/saml_sso/img/Okta-advancedsettings.png create mode 100644 doc/user/group/saml_sso/img/Okta-attributes.png create mode 100644 doc/user/group/saml_sso/img/Okta-linkscert.png rename doc/{administration/troubleshooting => user/group/saml_sso}/img/OneLogin-SSOsettings.png (100%) rename doc/{administration/troubleshooting => user/group/saml_sso}/img/OneLogin-app_details.png (100%) rename doc/{administration/troubleshooting => user/group/saml_sso}/img/OneLogin-parameters.png (100%) rename doc/{administration/troubleshooting => user/group/saml_sso}/img/OneLogin-userAdd.png (100%) rename doc/{administration/troubleshooting => user/group/saml_sso}/img/azure_configure_group_claim.png (100%) create mode 100644 doc/user/group/saml_sso/img/okta_saml_settings.png rename doc/{administration/troubleshooting => user/group/saml_sso}/img/okta_setting_username.png (100%) delete mode 100644 doc/user/img/completed_tasks_v13_3.png create mode 100644 doc/user/img/completed_tasks_v15_3.png create mode 100644 doc/user/namespace/index.md delete mode 100644 doc/user/project/img/code_owners_invite_members_v13_4.png delete mode 100644 doc/user/project/img/code_owners_members_v13_4.png create mode 100644 doc/user/project/integrations/pumble.md delete mode 100644 doc/user/project/issues/img/related_issue_block_v12_8.png create mode 100644 doc/user/project/issues/img/related_issue_block_v15_3.png delete mode 100644 doc/user/project/issues/img/related_issues_add_v12_8.png create mode 100644 doc/user/project/issues/img/related_issues_add_v15_3.png delete mode 100644 doc/user/project/issues/img/related_issues_remove_v12_8.png create mode 100644 doc/user/project/issues/img/related_issues_remove_v15_3.png delete mode 100644 doc/user/project/merge_requests/approvals/img/scoped_to_protected_branch_v13_10.png create mode 100644 doc/user/project/merge_requests/img/license_compliance_widget_v15_3.png delete mode 100644 doc/user/project/merge_requests/img/status_checks_widget_passed_v14_0.png delete mode 100644 doc/user/project/merge_requests/img/status_checks_widget_pending_v14_0.png delete mode 100644 doc/user/project/merge_requests/reviews/img/mr_review_new_comment_v13_11.png create mode 100644 doc/user/project/merge_requests/reviews/img/mr_review_new_comment_v15_3.png delete mode 100644 doc/user/project/merge_requests/reviews/img/mr_review_resolve.png delete mode 100644 doc/user/project/merge_requests/reviews/img/mr_review_resolve2.png delete mode 100644 doc/user/project/merge_requests/reviews/img/mr_review_start.png delete mode 100644 doc/user/project/merge_requests/reviews/img/mr_review_unresolve.png create mode 100644 doc/user/project/merge_requests/reviews/img/mr_summary_comment_v15_3.png delete mode 100644 doc/user/project/pages/img/remove_pages.png create mode 100644 doc/user/project/pages/img/remove_pages_v15_3.png create mode 100644 doc/user/project/releases/release_cicd_examples.md create mode 100644 doc/user/project/releases/release_fields.md create mode 100644 lib/api/entities/merge_request_reviewer.rb create mode 100644 lib/gitlab/audit/auditor.rb create mode 100644 lib/gitlab/audit/deploy_key_author.rb create mode 100644 lib/gitlab/audit/null_target.rb create mode 100644 lib/gitlab/audit/target.rb delete mode 100644 lib/gitlab/background_migration/backfill_ci_namespace_mirrors.rb delete mode 100644 lib/gitlab/background_migration/backfill_ci_project_mirrors.rb delete mode 100644 lib/gitlab/background_migration/backfill_ci_runner_semver.rb create mode 100644 lib/gitlab/background_migration/backfill_namespace_id_of_vulnerability_reads.rb create mode 100644 lib/gitlab/background_migration/backfill_project_import_level.rb create mode 100644 lib/gitlab/background_migration/backfill_vulnerability_reads_cluster_agent.rb create mode 100644 lib/gitlab/background_migration/batching_strategies/backfill_vulnerability_reads_cluster_agent_batching_strategy.rb delete mode 100644 lib/gitlab/background_migration/copy_ci_builds_columns_to_security_scans.rb create mode 100644 lib/gitlab/background_migration/disable_legacy_open_source_license_for_no_issues_no_repo_projects.rb create mode 100644 lib/gitlab/background_migration/disable_legacy_open_source_license_for_one_member_no_repo_projects.rb create mode 100644 lib/gitlab/background_migration/migrate_shared_vulnerability_scanners.rb delete mode 100644 lib/gitlab/background_migration/populate_status_column_of_security_scans.rb create mode 100644 lib/gitlab/background_task.rb create mode 100644 lib/gitlab/ci/artifacts/logger.rb create mode 100644 lib/gitlab/ci/build/artifacts/adapters/zip_stream.rb create mode 100644 lib/gitlab/ci/config/entry/imageable.rb create mode 100644 lib/gitlab/ci/parsers/sbom/cyclonedx.rb create mode 100644 lib/gitlab/ci/parsers/sbom/cyclonedx_properties.rb create mode 100644 lib/gitlab/ci/parsers/sbom/source/dependency_scanning.rb create mode 100644 lib/gitlab/ci/parsers/sbom/validators/cyclonedx_schema_validator.rb create mode 100644 lib/gitlab/ci/reports/sbom/component.rb create mode 100644 lib/gitlab/ci/reports/sbom/report.rb create mode 100644 lib/gitlab/ci/reports/sbom/reports.rb create mode 100644 lib/gitlab/ci/reports/sbom/source.rb create mode 100644 lib/gitlab/ci/templates/Security/Fortify-FoD-sast.gitlab-ci.yml create mode 100644 lib/gitlab/database/async_indexes/index_destructor.rb create mode 100644 lib/gitlab/database/background_migration/health_status/indicators/write_ahead_log.rb create mode 100644 lib/gitlab/database/lock_writes_manager.rb create mode 100644 lib/gitlab/doorkeeper_secret_storing/pbkdf2_sha512.rb delete mode 100644 lib/gitlab/git/remote_repository.rb create mode 100644 lib/gitlab/github_import/importer/events/base_importer.rb create mode 100644 lib/gitlab/github_import/importer/events/changed_assignee.rb create mode 100644 lib/gitlab/github_import/importer/events/changed_milestone.rb create mode 100644 lib/gitlab/github_import/importer/issue_events_importer.rb create mode 100644 lib/gitlab/grape_logging/loggers/token_logger.rb create mode 100644 lib/gitlab/graphql/deprecations_base.rb delete mode 100644 lib/gitlab/graphql/pagination/keyset/conditions/base_condition.rb delete mode 100644 lib/gitlab/graphql/pagination/keyset/conditions/not_null_condition.rb delete mode 100644 lib/gitlab/graphql/pagination/keyset/conditions/null_condition.rb delete mode 100644 lib/gitlab/graphql/pagination/keyset/generic_keyset_pagination.rb delete mode 100644 lib/gitlab/graphql/pagination/keyset/order_info.rb delete mode 100644 lib/gitlab/graphql/pagination/keyset/query_builder.rb create mode 100644 lib/gitlab/graphql/type_name_deprecations.rb create mode 100644 lib/gitlab/import_export/log_util.rb create mode 100644 lib/gitlab/import_export/project/relation_saver.rb create mode 100644 lib/gitlab/import_export/remote_stream_upload.rb create mode 100644 lib/gitlab/instrumentation/global_search_api.rb create mode 100644 lib/gitlab/memory/reports/jemalloc_stats.rb create mode 100644 lib/gitlab/memory/reports_daemon.rb create mode 100644 lib/gitlab/ssh/commit.rb create mode 100644 lib/gitlab/usage_data_counters/known_events/kubernetes_agent.yml create mode 100644 lib/gitlab/usage_data_counters/merge_request_widget_extension_counter.rb create mode 100644 lib/gitlab/utils/batch_loader.rb create mode 100644 lib/gitlab/utils/link_header_parser.rb create mode 100644 lib/security/report_schema_version_matcher.rb create mode 100644 lib/tasks/contracts/pipeline_schedules.rake create mode 100644 qa/qa/page/admin/overview/users/components/impersonation_tokens.rb create mode 100644 qa/qa/page/project/settings/pages.rb create mode 100644 qa/qa/resource/group_ci_variable.rb create mode 100644 qa/qa/resource/impersonation_token.rb create mode 100644 qa/qa/resource/integrations/project.rb create mode 100644 qa/qa/scenario/test/integration/metrics.rb create mode 100644 qa/qa/specs/features/api/3_create/repository/tag_revision_trigger_prereceive_hook_spec.rb create mode 100644 qa/qa/specs/features/api/8_monitor/metrics_spec.rb rename qa/qa/specs/features/browser_ui/{14_product_intelligence => 14_analytics}/performance_bar_spec.rb (97%) rename qa/qa/specs/features/browser_ui/{14_product_intelligence => 14_analytics}/service_ping_default_enabled_spec.rb (95%) rename qa/qa/specs/features/browser_ui/{14_product_intelligence => 14_analytics}/service_ping_disabled_spec.rb (95%) create mode 100644 qa/qa/specs/features/browser_ui/1_manage/user/impersonation_token_spec.rb rename qa/qa/specs/features/browser_ui/{3_create => 2_plan}/design_management/add_design_content_spec.rb (78%) rename qa/qa/specs/features/browser_ui/{3_create => 2_plan}/design_management/archive_design_content_spec.rb (95%) rename qa/qa/specs/features/browser_ui/{3_create => 2_plan}/design_management/modify_design_content_spec.rb (91%) rename qa/qa/specs/features/browser_ui/{6_release => 3_create}/pages/pages_pipeline_spec.rb (90%) rename qa/qa/specs/features/browser_ui/{1_manage/project => 3_create/repository}/protected_tags_spec.rb (92%) create mode 100644 qa/qa/specs/features/browser_ui/3_create/source_editor/source_editor_toolbar_spec.rb rename qa/qa/specs/features/browser_ui/4_verify/pipeline/{pipeline_editor_lint_spec.rb => pipeline_editor_tabs_spec.rb} (72%) create mode 100644 qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb create mode 100644 qa/qa/support/parallel_pipeline_jobs.rb create mode 100644 qa/qa/tools/delete_user_projects.rb create mode 100644 qa/qa/tools/lib/project.rb create mode 100644 qa/qa/vendor/jenkins/README.md create mode 100644 qa/qa/vendor/jenkins/client.rb create mode 100644 qa/qa/vendor/jenkins/helpers.rb create mode 100644 qa/qa/vendor/jenkins/job.rb delete mode 100644 qa/qa/vendor/jenkins/page/base.rb delete mode 100644 qa/qa/vendor/jenkins/page/configure.rb delete mode 100644 qa/qa/vendor/jenkins/page/configure_job.rb delete mode 100644 qa/qa/vendor/jenkins/page/last_job_console.rb delete mode 100644 qa/qa/vendor/jenkins/page/login.rb delete mode 100644 qa/qa/vendor/jenkins/page/new_credentials.rb delete mode 100644 qa/qa/vendor/jenkins/page/new_job.rb create mode 100644 results.txt create mode 100644 rubocop/cop/gemspec/avoid_executing_git.rb create mode 100644 rubocop/cop/gitlab/deprecate_track_redis_hll_event.rb create mode 100644 rubocop/cop_todo.rb create mode 100755 scripts/lint-vendored-gems.sh create mode 100644 spec/components/docs/01_overview.html.erb create mode 100644 spec/components/pajamas/avatar_component_spec.rb create mode 100644 spec/components/pajamas/checkbox_tag_component_spec.rb create mode 100644 spec/components/previews/pajamas/alert_component_preview.rb create mode 100644 spec/components/previews/pajamas/avatar_component_preview.rb create mode 100644 spec/components/previews/pajamas/banner_component_preview.rb create mode 100644 spec/components/previews/pajamas/button_component_preview.rb create mode 100644 spec/components/previews/pajamas/card_component_preview.rb create mode 100644 spec/components/previews/pajamas/spinner_component_preview.rb delete mode 100644 spec/contracts/consumer/endpoints/project/pipelines.js create mode 100644 spec/contracts/consumer/fixtures/project/pipeline/create_a_new_pipeline.fixture.js create mode 100644 spec/contracts/consumer/fixtures/project/pipeline/delete_pipeline.fixture.js create mode 100644 spec/contracts/consumer/fixtures/project/pipeline_schedule/update_pipeline_schedule.fixture.js create mode 100644 spec/contracts/consumer/resources/api/pipeline_schedules.js rename spec/contracts/consumer/{endpoints => resources/api}/project/merge_requests.js (73%) create mode 100644 spec/contracts/consumer/resources/api/project/pipelines.js create mode 100644 spec/contracts/consumer/specs/project/pipeline/new.spec.js create mode 100644 spec/contracts/consumer/specs/project/pipeline_schedule/edit.spec.js create mode 100644 spec/contracts/contracts/project/pipeline/new/pipelines#new-post_create_a_new_pipeline.json create mode 100644 spec/contracts/contracts/project/pipeline/show/pipelines#show-delete_pipeline.json create mode 100644 spec/contracts/contracts/project/pipeline_schedule/edit/pipelineschedules#edit-put_edit_a_pipeline_schedule.json rename spec/contracts/provider/pact_helpers/project/merge_request/{ => show}/diffs_batch_helper.rb (76%) rename spec/contracts/provider/pact_helpers/project/merge_request/{ => show}/diffs_metadata_helper.rb (76%) rename spec/contracts/provider/pact_helpers/project/merge_request/{ => show}/discussions_helper.rb (76%) create mode 100644 spec/contracts/provider/pact_helpers/project/pipeline/index/create_a_new_pipeline_helper.rb rename spec/contracts/provider/pact_helpers/project/pipeline/{ => index}/get_list_project_pipelines_helper.rb (76%) create mode 100644 spec/contracts/provider/pact_helpers/project/pipeline/show/delete_pipeline_helper.rb rename spec/contracts/provider/pact_helpers/project/pipeline/{ => show}/get_pipeline_header_data_helper.rb (76%) create mode 100644 spec/contracts/provider/pact_helpers/project/pipeline_schedule/update_pipeline_schedule_helper.rb delete mode 100644 spec/contracts/provider/states/project/merge_request/diffs_batch_state.rb delete mode 100644 spec/contracts/provider/states/project/merge_request/diffs_metadata_state.rb delete mode 100644 spec/contracts/provider/states/project/merge_request/discussions_state.rb create mode 100644 spec/contracts/provider/states/project/merge_request/show_state.rb rename spec/contracts/provider/states/project/pipeline/{pipelines_state.rb => index_state.rb} (100%) create mode 100644 spec/contracts/provider/states/project/pipeline/new_state.rb rename spec/contracts/provider/states/project/pipeline/{pipeline_state.rb => show_state.rb} (97%) create mode 100644 spec/contracts/provider/states/project/pipeline_schedule/edit_state.rb delete mode 100644 spec/controllers/projects/ci/secure_files_controller_spec.rb delete mode 100644 spec/controllers/projects/tags/releases_controller_spec.rb delete mode 100644 spec/events/ci/pipeline_created_event_spec.rb delete mode 100644 spec/events/pages/page_deleted_event_spec.rb delete mode 100644 spec/events/pages/page_deployed_event_spec.rb delete mode 100644 spec/events/projects/project_created_event_spec.rb delete mode 100644 spec/events/projects/project_deleted_event_spec.rb delete mode 100644 spec/events/projects/project_path_changed_event_spec.rb create mode 100644 spec/factories/member_roles.rb create mode 100644 spec/factories/users/project_user_callouts.rb create mode 100644 spec/features/admin_variables_spec.rb create mode 100644 spec/features/markdown/json_table_spec.rb create mode 100644 spec/features/merge_request/user_opens_context_commits_modal_spec.rb delete mode 100644 spec/features/projects/ci/secure_files_spec.rb create mode 100644 spec/features/projects/pages/user_configures_pages_pipeline_spec.rb create mode 100644 spec/features/projects/settings/registry_settings_cleanup_tags_spec.rb create mode 100644 spec/features/projects/tags/user_views_tag_spec.rb delete mode 100644 spec/features/tags/developer_updates_tag_spec.rb create mode 100644 spec/finders/autocomplete/deploy_keys_with_write_access_finder_spec.rb create mode 100644 spec/finders/groups/accepting_project_transfers_finder_spec.rb create mode 100644 spec/fixtures/lib/gitlab/ci/build/artifacts/adapters/zip_stream/100_files.zip create mode 100644 spec/fixtures/lib/gitlab/ci/build/artifacts/adapters/zip_stream/200_mb_decompressed.zip create mode 100644 spec/fixtures/lib/gitlab/ci/build/artifacts/adapters/zip_stream/multiple_files.zip create mode 100644 spec/fixtures/lib/gitlab/ci/build/artifacts/adapters/zip_stream/single_file.zip create mode 100644 spec/fixtures/lib/gitlab/ci/build/artifacts/adapters/zip_stream/with_directory.zip create mode 100644 spec/fixtures/lib/gitlab/ci/build/artifacts/adapters/zip_stream/zipbomb.zip create mode 100644 spec/fixtures/packages/maven/my-app-1.0-20180724.124855-1.pom.sha1 delete mode 100644 spec/frontend/__helpers__/timeout.js delete mode 100644 spec/frontend/access_tokens/components/projects_field_spec.js delete mode 100644 spec/frontend/access_tokens/components/projects_token_selector_spec.js create mode 100644 spec/frontend/api/groups_api_spec.js delete mode 100644 spec/frontend/attention_requests/components/navigation_popover_spec.js create mode 100644 spec/frontend/behaviors/components/json_table_spec.js create mode 100644 spec/frontend/behaviors/markdown/render_json_table_spec.js create mode 100644 spec/frontend/blob/blob_links_tracking_spec.js create mode 100644 spec/frontend/ci_variable_list/components/ci_admin_variables_spec.js create mode 100644 spec/frontend/ci_variable_list/components/ci_environments_dropdown_spec.js create mode 100644 spec/frontend/ci_variable_list/components/ci_group_variables_spec.js create mode 100644 spec/frontend/ci_variable_list/components/ci_variable_modal_spec.js create mode 100644 spec/frontend/ci_variable_list/components/ci_variable_settings_spec.js create mode 100644 spec/frontend/ci_variable_list/components/ci_variable_table_spec.js create mode 100644 spec/frontend/ci_variable_list/mocks.js create mode 100644 spec/frontend/ci_variable_list/utils_spec.js create mode 100644 spec/frontend/content_editor/components/wrappers/__snapshots__/table_of_contents_spec.js.snap create mode 100644 spec/frontend/content_editor/components/wrappers/table_of_contents_spec.js create mode 100644 spec/frontend/content_editor/services/table_of_contents_utils_spec.js create mode 100644 spec/frontend/editor/schema/ci/yaml_tests/negative_tests/artifacts.yml create mode 100644 spec/frontend/editor/schema/ci/yaml_tests/negative_tests/rules.yml create mode 100644 spec/frontend/editor/schema/ci/yaml_tests/positive_tests/artifacts.yml create mode 100644 spec/frontend/fixtures/namespaces.rb create mode 100644 spec/frontend/gfm_auto_complete/mock_data.js create mode 100644 spec/frontend/issues/show/components/incidents/create_timeline_events_form_spec.js rename spec/frontend/issues/show/components/incidents/{timeline_events_list_item_spec.js => timeline_events_item_spec.js} (94%) create mode 100644 spec/frontend/pages/groups/new/components/app_spec.js create mode 100644 spec/frontend/pages/groups/new/components/create_group_description_details_spec.js delete mode 100644 spec/frontend/pipeline_editor/components/lint/ci_lint_spec.js create mode 100644 spec/frontend/pipeline_schedules/components/take_ownership_modal_spec.js create mode 100644 spec/frontend/projects/settings/branch_rules/components/protections/index_spec.js create mode 100644 spec/frontend/projects/settings/branch_rules/components/protections/merge_protections_spec.js create mode 100644 spec/frontend/projects/settings/branch_rules/components/protections/push_protections_spec.js create mode 100644 spec/frontend/projects/settings/branch_rules/mock_data.js create mode 100644 spec/frontend/runner/components/runner_bulk_delete_checkbox_spec.js create mode 100644 spec/frontend/runner/components/stat/runner_single_stat_spec.js delete mode 100644 spec/frontend/runner/components/stat/runner_status_stat_spec.js delete mode 100644 spec/frontend/sidebar/components/attention_requested_toggle_spec.js rename spec/frontend/{vue_mr_widget/components/extensions/actions_spec.js => vue_merge_request_widget/components/action_buttons.js} (93%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/added_commit_message_spec.js (87%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/approvals/approvals_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/approvals/approvals_summary_optional_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/approvals/approvals_summary_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/approvals/humanized_text_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/artifacts_list_app_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/artifacts_list_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/extensions/child_content_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/extensions/index_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/extensions/status_icon_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/extensions/utils_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_collapsible_extension_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_widget_alert_message_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_widget_author_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_widget_author_time_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_widget_container_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_widget_expandable_section_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_widget_icon_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_widget_memory_usage_spec.js (95%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_widget_pipeline_container_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_widget_pipeline_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_widget_rebase_spec.js (78%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_widget_related_links_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_widget_status_icon_spec.js (67%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/mr_widget_suggest_pipeline_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/pipeline_tour_mock_data.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/review_app_link_spec.js (100%) create mode 100644 spec/frontend/vue_merge_request_widget/components/states/__snapshots__/mr_widget_auto_merge_enabled_spec.js.snap rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/__snapshots__/mr_widget_pipeline_failed_spec.js.snap (87%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/__snapshots__/new_ready_to_merge_spec.js.snap (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/commit_edit_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/merge_checks_failed_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/merge_failed_pipeline_confirmation_dialog_spec.js (91%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_archived_spec.js (76%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_auto_merge_enabled_spec.js (61%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_auto_merge_failed_spec.js (91%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_checking_spec.js (84%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_closed_spec.js (57%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_commit_message_dropdown_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_commits_header_spec.js (93%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_conflicts_spec.js (98%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_failed_to_merge_spec.js (82%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_merged_spec.js (74%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_merging_spec.js (83%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_missing_branch_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_not_allowed_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_nothing_to_merge_spec.js (92%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_pipeline_blocked_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_pipeline_failed_spec.js (66%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_ready_to_merge_spec.js (86%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_sha_mismatch_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_squash_before_merge_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_unresolved_discussions_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/mr_widget_wip_spec.js (81%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/states/new_ready_to_merge_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/terraform/mock_data.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/terraform/mr_widget_terraform_container_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/components/terraform/terraform_plan_spec.js (100%) create mode 100644 spec/frontend/vue_merge_request_widget/components/widget/app_spec.js create mode 100644 spec/frontend/vue_merge_request_widget/components/widget/widget_spec.js rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/deployment/deployment_action_button_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/deployment/deployment_actions_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/deployment/deployment_list_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/deployment/deployment_mock_data.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/deployment/deployment_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/deployment/deployment_view_button_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/extensions/test_report/index_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/extensions/test_report/utils_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/extentions/accessibility/index_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/extentions/accessibility/mock_data.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/extentions/code_quality/index_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/extentions/code_quality/mock_data.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/extentions/terraform/index_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/mock_data.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/mr_widget_how_to_merge_modal_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/mr_widget_options_spec.js (93%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/stores/artifacts_list/actions_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/stores/artifacts_list/getters_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/stores/artifacts_list/mutations_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/stores/get_state_key_spec.js (80%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/stores/mr_widget_store_spec.js (100%) rename spec/frontend/{vue_mr_widget => vue_merge_request_widget}/test_extensions.js (100%) delete mode 100644 spec/frontend/vue_mr_widget/components/states/__snapshots__/mr_widget_auto_merge_enabled_spec.js.snap create mode 100644 spec/frontend/vue_shared/components/rich_timestamp_tooltip_spec.js create mode 100644 spec/frontend/vue_shared/components/source_viewer/plugins/utils/gemspec_linker_spec.js create mode 100644 spec/frontend/work_items/components/work_item_type_icon_spec.js create mode 100644 spec/graphql/mutations/ci/runner/bulk_delete_spec.rb create mode 100644 spec/graphql/mutations/merge_requests/set_reviewers_spec.rb create mode 100644 spec/graphql/resolvers/crm/contact_state_counts_resolver_spec.rb create mode 100644 spec/graphql/resolvers/projects/fork_targets_resolver_spec.rb create mode 100644 spec/graphql/types/ci/group_variable_type_spec.rb create mode 100644 spec/graphql/types/ci/instance_variable_type_spec.rb create mode 100644 spec/graphql/types/ci/manual_variable_type_spec.rb create mode 100644 spec/graphql/types/ci/project_variable_type_spec.rb rename spec/graphql/types/ci/{runner_upgrade_status_type_enum_spec.rb => runner_upgrade_status_enum_spec.rb} (90%) create mode 100644 spec/graphql/types/ci/variable_input_type_spec.rb rename spec/graphql/types/ci/{variable_type_spec.rb => variable_interface_spec.rb} (53%) create mode 100644 spec/graphql/types/customer_relations/contact_sort_enum_spec.rb create mode 100644 spec/graphql/types/customer_relations/contact_state_counts_type_spec.rb create mode 100644 spec/graphql/types/time_tracking/timelog_category_type_spec.rb create mode 100644 spec/graphql/types/upload_type_spec.rb create mode 100644 spec/graphql/types/work_items/widgets/assignees_input_type_spec.rb create mode 100644 spec/graphql/types/work_items/widgets/labels_type_spec.rb create mode 100644 spec/graphql/types/work_items/widgets/start_and_due_date_type_spec.rb create mode 100644 spec/graphql/types/work_items/widgets/start_and_due_date_update_input_type_spec.rb create mode 100644 spec/helpers/admin/identities_helper_spec.rb create mode 100644 spec/initializers/00_deprecations_spec.rb create mode 100644 spec/initializers/diagnostic_reports_spec.rb create mode 100644 spec/initializers/memory_watchdog_spec.rb create mode 100644 spec/lib/gitlab/audit/auditor_spec.rb create mode 100644 spec/lib/gitlab/audit/deploy_key_author_spec.rb create mode 100644 spec/lib/gitlab/audit/null_target_spec.rb create mode 100644 spec/lib/gitlab/audit/target_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/backfill_ci_namespace_mirrors_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/backfill_ci_project_mirrors_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/backfill_ci_runner_semver_spec.rb create mode 100644 spec/lib/gitlab/background_migration/backfill_namespace_id_of_vulnerability_reads_spec.rb create mode 100644 spec/lib/gitlab/background_migration/backfill_project_import_level_spec.rb create mode 100644 spec/lib/gitlab/background_migration/backfill_vulnerability_reads_cluster_agent_spec.rb delete mode 100644 spec/lib/gitlab/background_migration/copy_ci_builds_columns_to_security_scans_spec.rb create mode 100644 spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_no_issues_no_repo_projects_spec.rb create mode 100644 spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_one_member_no_repo_projects_spec.rb create mode 100644 spec/lib/gitlab/background_task_spec.rb create mode 100644 spec/lib/gitlab/ci/artifacts/logger_spec.rb create mode 100644 spec/lib/gitlab/ci/build/artifacts/adapters/zip_stream_spec.rb create mode 100644 spec/lib/gitlab/ci/config/entry/imageable_spec.rb create mode 100644 spec/lib/gitlab/ci/parsers/sbom/cyclonedx_properties_spec.rb create mode 100644 spec/lib/gitlab/ci/parsers/sbom/cyclonedx_spec.rb create mode 100644 spec/lib/gitlab/ci/parsers/sbom/source/dependency_scanning_spec.rb create mode 100644 spec/lib/gitlab/ci/parsers/sbom/validators/cyclonedx_schema_validator_spec.rb create mode 100644 spec/lib/gitlab/ci/reports/sbom/component_spec.rb create mode 100644 spec/lib/gitlab/ci/reports/sbom/report_spec.rb create mode 100644 spec/lib/gitlab/ci/reports/sbom/reports_spec.rb create mode 100644 spec/lib/gitlab/ci/reports/sbom/source_spec.rb create mode 100644 spec/lib/gitlab/database/async_indexes/index_destructor_spec.rb create mode 100644 spec/lib/gitlab/database/background_migration/health_status/indicators/write_ahead_log_spec.rb create mode 100644 spec/lib/gitlab/database/lock_writes_manager_spec.rb create mode 100644 spec/lib/gitlab/doorkeeper_secret_storing/pbkdf2_sha512_spec.rb delete mode 100644 spec/lib/gitlab/git/remote_repository_spec.rb create mode 100644 spec/lib/gitlab/github_import/importer/events/base_importer_spec.rb create mode 100644 spec/lib/gitlab/github_import/importer/events/changed_assignee_spec.rb create mode 100644 spec/lib/gitlab/github_import/importer/events/changed_milestone_spec.rb create mode 100644 spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb create mode 100644 spec/lib/gitlab/grape_logging/loggers/token_logger_spec.rb delete mode 100644 spec/lib/gitlab/graphql/pagination/keyset/conditions/not_null_condition_spec.rb delete mode 100644 spec/lib/gitlab/graphql/pagination/keyset/conditions/null_condition_spec.rb delete mode 100644 spec/lib/gitlab/graphql/pagination/keyset/connection_generic_keyset_spec.rb delete mode 100644 spec/lib/gitlab/graphql/pagination/keyset/order_info_spec.rb delete mode 100644 spec/lib/gitlab/graphql/pagination/keyset/query_builder_spec.rb create mode 100644 spec/lib/gitlab/graphql/type_name_deprecations_spec.rb create mode 100644 spec/lib/gitlab/import_export/log_util_spec.rb create mode 100644 spec/lib/gitlab/import_export/project/relation_saver_spec.rb create mode 100644 spec/lib/gitlab/import_export/remote_stream_upload_spec.rb create mode 100644 spec/lib/gitlab/memory/reports/jemalloc_stats_spec.rb create mode 100644 spec/lib/gitlab/memory/reports_daemon_spec.rb create mode 100644 spec/lib/gitlab/ssh/commit_spec.rb create mode 100644 spec/lib/gitlab/usage_data_counters/merge_request_widget_extension_counter_spec.rb create mode 100644 spec/lib/gitlab/utils/batch_loader_spec.rb create mode 100644 spec/lib/gitlab/utils/link_header_parser_spec.rb create mode 100644 spec/lib/security/report_schema_version_matcher_spec.rb delete mode 100644 spec/migrations/20210421163509_schedule_update_jira_tracker_data_deployment_type_based_on_url_spec.rb create mode 100644 spec/migrations/20220506154054_create_sync_namespace_details_trigger_spec.rb create mode 100644 spec/migrations/20220524184149_create_sync_project_namespace_details_trigger_spec.rb create mode 100644 spec/migrations/20220525221133_schedule_backfill_vulnerability_reads_cluster_agent_spec.rb create mode 100644 spec/migrations/20220607082910_add_sync_tmp_index_for_potentially_misassociated_vulnerability_occurrences_spec.rb create mode 100644 spec/migrations/20220721031446_schedule_disable_legacy_open_source_license_for_one_member_no_repo_projects_spec.rb rename spec/migrations/{20220520040416_schedule_set_legacy_open_source_license_available_for_non_public_projects_spec.rb => 20220722084543_schedule_disable_legacy_open_source_license_for_no_issues_no_repo_projects_spec.rb} (86%) create mode 100644 spec/migrations/20220722110026_reschedule_set_legacy_open_source_license_available_for_non_public_projects_spec.rb create mode 100644 spec/migrations/20220725150127_update_jira_tracker_data_deployment_type_based_on_url_spec.rb create mode 100644 spec/migrations/20220802114351_reschedule_backfill_container_registry_size_into_project_statistics_spec.rb create mode 100644 spec/migrations/20220802204737_remove_deactivated_user_highest_role_stats_spec.rb create mode 100644 spec/migrations/backfill_project_import_level_spec.rb create mode 100644 spec/migrations/cleanup_mr_attention_request_todos_spec.rb create mode 100644 spec/migrations/schedule_backfilling_the_namespace_id_for_vulnerability_reads_spec.rb create mode 100644 spec/migrations/schedule_migrate_shared_vulnerability_scanners_spec.rb delete mode 100644 spec/migrations/schedule_populate_status_column_of_security_scans_spec.rb create mode 100644 spec/models/concerns/database_event_tracking_spec.rb create mode 100644 spec/models/customer_relations/contact_state_counts_spec.rb create mode 100644 spec/models/integrations/pumble_spec.rb create mode 100644 spec/models/members/member_role_spec.rb create mode 100644 spec/models/merge_request/approval_removal_settings_spec.rb create mode 100644 spec/models/ml/candidate_metric_spec.rb create mode 100644 spec/models/ml/candidate_param_spec.rb create mode 100644 spec/models/ml/candidate_spec.rb create mode 100644 spec/models/ml/experiment_spec.rb create mode 100644 spec/models/namespace/detail_spec.rb create mode 100644 spec/models/users/project_callout_spec.rb create mode 100644 spec/models/work_items/widgets/labels_spec.rb create mode 100644 spec/models/work_items/widgets/start_and_due_date_spec.rb create mode 100644 spec/policies/project_hook_policy_spec.rb create mode 100644 spec/policies/system_hook_policy_spec.rb create mode 100644 spec/policies/upload_policy_spec.rb create mode 100644 spec/requests/admin/broadcast_messages_controller_spec.rb delete mode 100644 spec/requests/api/graphql/mutations/merge_requests/request_attention_spec.rb create mode 100644 spec/requests/api/graphql/mutations/merge_requests/set_reviewers_spec.rb delete mode 100644 spec/requests/api/graphql/mutations/merge_requests/update_reviewer_state_spec.rb delete mode 100644 spec/requests/api/graphql/mutations/remove_attention_request_spec.rb create mode 100644 spec/requests/api/graphql/mutations/timelogs/create_spec.rb create mode 100644 spec/requests/api/graphql/mutations/uploads/delete_spec.rb create mode 100644 spec/requests/api/graphql/project/fork_targets_spec.rb create mode 100644 spec/requests/projects/settings/packages_and_registries_controller_spec.rb create mode 100644 spec/requests/users/namespace_callouts_spec.rb create mode 100644 spec/requests/users/project_callouts_spec.rb create mode 100644 spec/rubocop/cop/gemspec/avoid_executing_git_spec.rb create mode 100644 spec/rubocop/cop/gitlab/deprecate_track_redis_hll_event_spec.rb create mode 100644 spec/rubocop/cop_todo_spec.rb create mode 100644 spec/serializers/group_access_token_entity_spec.rb create mode 100644 spec/serializers/group_access_token_serializer_spec.rb create mode 100644 spec/serializers/personal_access_token_entity_spec.rb create mode 100644 spec/serializers/personal_access_token_serializer_spec.rb create mode 100644 spec/serializers/project_access_token_entity_spec.rb create mode 100644 spec/serializers/project_access_token_serializer_spec.rb create mode 100644 spec/services/audit_events/build_service_spec.rb create mode 100644 spec/services/ci/deployments/destroy_service_spec.rb create mode 100644 spec/services/ci/runners/bulk_delete_runners_service_spec.rb create mode 100644 spec/services/ci/runners/process_runner_version_update_service_spec.rb create mode 100644 spec/services/ci/track_failed_build_service_spec.rb create mode 100644 spec/services/google_cloud/create_cloudsql_instance_service_spec.rb create mode 100644 spec/services/google_cloud/enable_cloudsql_service_spec.rb create mode 100644 spec/services/google_cloud/get_cloudsql_instances_service_spec.rb create mode 100644 spec/services/import/prepare_service_spec.rb create mode 100644 spec/services/issues/prepare_import_csv_service_spec.rb delete mode 100644 spec/services/merge_requests/bulk_remove_attention_requested_service_spec.rb create mode 100644 spec/services/merge_requests/create_approval_event_service_spec.rb create mode 100644 spec/services/merge_requests/execute_approval_hooks_service_spec.rb delete mode 100644 spec/services/merge_requests/remove_attention_requested_service_spec.rb delete mode 100644 spec/services/merge_requests/request_attention_service_spec.rb delete mode 100644 spec/services/merge_requests/toggle_attention_requested_service_spec.rb create mode 100644 spec/services/merge_requests/update_reviewers_service_spec.rb create mode 100644 spec/services/projects/import_export/relation_export_service_spec.rb create mode 100644 spec/services/protected_branches/cache_service_spec.rb create mode 100644 spec/services/timelogs/create_service_spec.rb create mode 100644 spec/services/topics/merge_service_spec.rb create mode 100644 spec/services/uploads/destroy_service_spec.rb create mode 100644 spec/services/users/dismiss_namespace_callout_service_spec.rb create mode 100644 spec/services/users/dismiss_project_callout_service_spec.rb create mode 100644 spec/services/work_items/widgets/assignees_service/update_service_spec.rb create mode 100644 spec/services/work_items/widgets/start_and_due_date_service/update_service_spec.rb delete mode 100644 spec/services/work_items/widgets/weight_service/update_service_spec.rb create mode 100644 spec/support/database/gitlab_schemas_validate_connection.rb rename spec/support/helpers/features/{runner_helpers.rb => runners_helpers.rb} (100%) create mode 100644 spec/support/helpers/redis_commands/recorder.rb create mode 100644 spec/support/helpers/runner_releases_helper.rb create mode 100644 spec/support/helpers/stub_member.rb create mode 100644 spec/support/helpers/stubbed_member.rb create mode 100644 spec/support/helpers/type_name_deprecation_helpers.rb delete mode 100644 spec/support/shared_examples/attention_request_cache_invalidation_examples.rb create mode 100644 spec/support/shared_examples/controllers/search_cross_project_authorization_shared_examples.rb create mode 100644 spec/support/shared_examples/controllers/search_external_authorization_service_shared_examples.rb create mode 100644 spec/support/shared_examples/features/trial_email_validation_shared_example.rb create mode 100644 spec/support/shared_examples/features/user_views_tag_shared_examples.rb create mode 100644 spec/support/shared_examples/graphql/mutations/timelogs/create_shared_examples.rb delete mode 100644 spec/support/shared_examples/graphql/mutations/work_items/update_weight_widget_shared_examples.rb create mode 100644 spec/support/shared_examples/models/ci/metadata_id_tokens_shared_examples.rb create mode 100644 spec/support/shared_examples/policies/group_project_namespace_policy_shared_examples.rb create mode 100644 spec/support/shared_examples/services/snowplow_tracking_shared_examples.rb create mode 100644 spec/support/shared_examples/services/timelogs/create_service_shared_examples.rb create mode 100644 spec/support/shared_examples/services/work_items/create_task_shared_examples.rb create mode 100644 spec/support_specs/helpers/redis_commands/recorder_spec.rb create mode 100644 spec/tooling/danger/customer_success_spec.rb create mode 100644 spec/views/admin/identities/index.html.haml_spec.rb create mode 100644 spec/views/projects/pages/new.html.haml_spec.rb delete mode 100644 spec/workers/archive_trace_worker_spec.rb delete mode 100644 spec/workers/build_finished_worker_spec.rb create mode 100644 spec/workers/ci/cancel_pipeline_worker_spec.rb create mode 100644 spec/workers/ci/runners/process_runner_version_update_worker_spec.rb create mode 100644 spec/workers/ci/runners/reconcile_existing_runner_versions_cron_worker_spec.rb create mode 100644 spec/workers/ci/track_failed_build_worker_spec.rb create mode 100644 spec/workers/merge_requests/create_approval_event_worker_spec.rb create mode 100644 spec/workers/merge_requests/create_approval_note_worker_spec.rb create mode 100644 spec/workers/merge_requests/execute_approval_hooks_worker_spec.rb create mode 100644 spec/workers/merge_requests/resolve_todos_after_approval_worker_spec.rb create mode 100644 spec/workers/projects/import_export/relation_export_worker_spec.rb rename tooling/bin/qa/{package_and_qa_check => run_qa_check} (65%) create mode 100644 tooling/danger/customer_success.rb delete mode 100644 tooling/overcommit/Gemfile delete mode 100644 tooling/overcommit/Gemfile.lock delete mode 100644 tooling/overcommit/Makefile create mode 100644 vendor/gems/omniauth-azure-oauth2/.gitlab-ci.yml create mode 100644 vendor/gems/omniauth-azure-oauth2/CHANGELOG.md create mode 100644 vendor/gems/omniauth-azure-oauth2/Gemfile create mode 100644 vendor/gems/omniauth-azure-oauth2/Gemfile.lock create mode 100644 vendor/gems/omniauth-azure-oauth2/LICENSE create mode 100644 vendor/gems/omniauth-azure-oauth2/README.md create mode 100644 vendor/gems/omniauth-azure-oauth2/Rakefile create mode 100644 vendor/gems/omniauth-azure-oauth2/examples/sinatra.rb create mode 100644 vendor/gems/omniauth-azure-oauth2/lib/omniauth-azure-oauth2.rb create mode 100644 vendor/gems/omniauth-azure-oauth2/lib/omniauth/azure_oauth2.rb create mode 100644 vendor/gems/omniauth-azure-oauth2/lib/omniauth/azure_oauth2/version.rb create mode 100644 vendor/gems/omniauth-azure-oauth2/lib/omniauth/strategies/azure_oauth2.rb create mode 100644 vendor/gems/omniauth-azure-oauth2/omniauth-azure-oauth2.gemspec create mode 100644 vendor/gems/omniauth-azure-oauth2/spec/omniauth/strategies/azure_oauth2_spec.rb create mode 100644 vendor/gems/omniauth-azure-oauth2/spec/spec_helper.rb create mode 100644 vendor/gems/omniauth-cas3/.gitlab-ci.yml create mode 100644 vendor/gems/omniauth-cas3/Gemfile create mode 100644 vendor/gems/omniauth-cas3/Gemfile.lock create mode 100644 vendor/gems/omniauth-cas3/LICENSE create mode 100644 vendor/gems/omniauth-cas3/README.md create mode 100644 vendor/gems/omniauth-cas3/Rakefile create mode 100644 vendor/gems/omniauth-cas3/lib/omniauth-cas3.rb create mode 100644 vendor/gems/omniauth-cas3/lib/omniauth/cas3.rb create mode 100644 vendor/gems/omniauth-cas3/lib/omniauth/cas3/version.rb create mode 100644 vendor/gems/omniauth-cas3/lib/omniauth/strategies/cas3.rb create mode 100644 vendor/gems/omniauth-cas3/lib/omniauth/strategies/cas3/logout_request.rb create mode 100644 vendor/gems/omniauth-cas3/lib/omniauth/strategies/cas3/service_ticket_validator.rb create mode 100644 vendor/gems/omniauth-cas3/omniauth-cas3.gemspec create mode 100644 vendor/gems/omniauth-cas3/spec/fixtures/cas_failure.xml create mode 100644 vendor/gems/omniauth-cas3/spec/fixtures/cas_success.xml create mode 100644 vendor/gems/omniauth-cas3/spec/fixtures/cas_success_jasig.xml create mode 100644 vendor/gems/omniauth-cas3/spec/omniauth/strategies/cas3/logout_request_spec.rb create mode 100644 vendor/gems/omniauth-cas3/spec/omniauth/strategies/cas3/service_ticket_validator_spec.rb create mode 100644 vendor/gems/omniauth-cas3/spec/omniauth/strategies/cas3_spec.rb create mode 100644 vendor/gems/omniauth-cas3/spec/spec_helper.rb delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/.github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/.github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/.gitignore delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/.golangci.yml delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/.goreleaser.yml delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/.travis.yml delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/COPYING delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/Makefile delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/README.md delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/_tools/css2style/main.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/_tools/exercise/main.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/_tools/pygments2chroma.hlb delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/_tools/pygments2chroma.py delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/_tools/style.py delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/cmd/chroma/main.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/cmd/chromad/go.mod delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/cmd/chromad/go.sum delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/cmd/chromad/main.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/cmd/chromad/static/index.js delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/cmd/chromad/templates/index.html.tmpl delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/coalesce.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/coalesce_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/colour.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/colour_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/delegate.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/delegate_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/doc.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/formatter.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/formatters/api.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/formatters/html/html.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/formatters/html/html_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/formatters/json.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/formatters/svg/font_liberation_mono.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/formatters/svg/svg.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/formatters/tokens.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/formatters/tty_indexed.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/formatters/tty_indexed_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/formatters/tty_truecolour.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/go.mod delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/go.sum delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/iterator.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexer.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexer_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/README.md delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/a/abap.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/a/abnf.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/a/actionscript.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/a/actionscript3.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/a/ada.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/a/angular2.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/a/antlr.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/a/apache.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/a/apl.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/a/applescript.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/a/arduino.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/a/awk.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/b/ballerina.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/b/bash.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/b/batch.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/b/bibtex.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/b/blitz.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/b/bnf.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/b/brainfuck.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/c.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/capnproto.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/ceylon.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cfengine3.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/chaiscript.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cheetah.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cl.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/clojure.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cmake.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cobol.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/coffee.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/coldfusion.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/coq.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cpp.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cpp_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cql.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/crystal.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/csharp.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/css.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cython.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/circular/doc.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/circular/php.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/d/d.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/d/dart.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/d/diff.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/d/django.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/d/docker.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/d/dtd.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/e/ebnf.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/e/elixir.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/e/elm.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/e/emacs.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/e/erlang.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/f/factor.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/f/fish.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/f/forth.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/f/fortran.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/f/fsharp.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/g/gas.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/g/gdscript.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/g/genshi.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/g/gherkin.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/g/glsl.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/g/gnuplot.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/g/go.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/g/go_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/g/graphql.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/g/groovy.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/h/handlebars.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/h/haskell.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/h/haxe.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/h/hcl.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/h/hexdump.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/h/html.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/h/http.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/h/hy.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/hlb.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/i/idris.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/i/igor.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/i/ini.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/i/io.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/internal/api.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/j/j.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/j/java.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/j/javascript.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/j/json.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/j/jsx.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/j/julia.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/j/jungle.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/k/kotlin.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/l/lighttpd.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/l/llvm.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/l/lua.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/lexer_benchmark_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/lexers.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/lexers_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/m/make.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mako.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/m/markdown.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mason.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mathematica.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/m/matlab.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/m/minizinc.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mlir.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/m/modula2.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/m/monkeyc.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mwscript.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/m/myghty.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mysql.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/n/nasm.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/n/newspeak.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/n/nginx.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/n/nim.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/n/nix.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/o/objectivec.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/o/ocaml.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/o/octave.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/o/openscad.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/o/org.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/pacman.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/perl.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/pig.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/pkgconfig.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/plaintext.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/plsql.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/postgres.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/postscript.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/povray.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/powershell.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/prolog.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/protobuf.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/puppet.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/python.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/p/python3.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/q/qbasic.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/r/r.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/r/racket.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/r/ragel.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/r/reasonml.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/r/regedit.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/r/rexx.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/r/rst.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/r/ruby.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/r/rust.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sas.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sass.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/scala.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/scheme.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/scilab.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/scss.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/smalltalk.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/smarty.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sml.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/snobol.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/solidity.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sparql.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sql.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/squid.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/swift.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/systemd.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/s/systemverilog.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tablegen.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tasm.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tcl.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tcsh.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/termcap.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/terminfo.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/terraform.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tex.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/thrift.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/toml.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tradingview.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/transactsql.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/turing.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/turtle.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/twig.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/typescript.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/t/typoscript.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/abap.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/abap.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/arduino.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/arduino.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/ballerina.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/ballerina.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/bash.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/bash.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/bib.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/bib.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/cpp.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/cpp.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/cql.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/cql.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/csharp.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/csharp.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/css.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/css.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/d.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/d.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/dart.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/dart.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/erlang.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/erlang.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/gdscript.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/gdscript.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/gherkin.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/gherkin.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/go.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/go.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/graphql.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/graphql.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/hlb.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/hlb.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/http.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/http.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/igor.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/igor.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/j.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/j.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/java.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/java.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/javascript.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/javascript.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/jsx.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/jsx.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/julia.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/julia.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/jungle.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/jungle.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/kotlin.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/kotlin.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/markdown.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/markdown.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/matlab.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/matlab.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/mlir.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/mlir.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/monkeyc.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/monkeyc.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/nim.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/nim.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/openscad.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/openscad.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/org.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/org.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/php.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/php.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/powershell.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/powershell.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/r.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/r.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/reasonml.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/reasonml.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/rust.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/rust.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/sas.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/sas.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/scala.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/scala.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/sml.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/sml.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/solidity.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/solidity.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/systemd.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/systemd.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/systemverilog.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/systemverilog.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/tablegen.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/tablegen.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/terraform.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/terraform.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/tex.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/tex.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/tradingview.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/tradingview.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/tsx.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/tsx.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/turing.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/turing.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/vbnet.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/vbnet.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/vue.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/vue.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/yaml.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/yaml.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/yang.actual delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/testdata/yang.expected delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/v/vb.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/v/verilog.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/v/vhdl.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/v/vim.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/v/vue.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/w/wdte.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/x/xml.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/x/xorg.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/y/yaml.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/lexers/y/yang.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/mutators.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/mutators_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/pygments-lexers.txt delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/quick/example_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/quick/quick.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/regexp.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/regexp_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/remap.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/remap_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/style.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/style_test.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/abap.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/algol.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/algol_nu.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/api.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/arduino.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/autumn.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/borland.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/bw.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/colorful.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/dracula.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/emacs.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/friendly.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/fruity.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/github.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/igor.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/lovelace.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/manni.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/monokai.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/monokailight.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/murphy.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/native.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/paraiso-dark.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/paraiso-light.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/pastie.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/perldoc.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/pygments.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/rainbow_dash.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/rrt.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/solarized-dark.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/solarized-dark256.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/solarized-light.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/swapoff.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/tango.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/trac.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/vim.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/vs.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/styles/xcode.go delete mode 100755 workhorse-vendor/github.com/alecthomas/chroma/table.py delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/tokentype_string.go delete mode 100644 workhorse-vendor/github.com/alecthomas/chroma/types.go diff --git a/.eslintrc.yml b/.eslintrc.yml index d268d73e6a..af2f1d8893 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -53,7 +53,6 @@ rules: - '^$' - '^variables$' - 'attrs?$' - '@gitlab/vue-prefer-dollar-scopedslots': error no-param-reassign: - error - props: true @@ -174,3 +173,10 @@ overrides: '@graphql-eslint/no-anonymous-operations': error '@graphql-eslint/unique-operation-name': error '@graphql-eslint/require-id-when-available': error + '@graphql-eslint/no-unused-variables': error + '@graphql-eslint/no-unused-fragments': error + '@graphql-eslint/no-duplicate-fields': error + - files: + - 'spec/contracts/consumer/**/*' + rules: + '@gitlab/require-i18n-strings': off diff --git a/.gitignore b/.gitignore index bdd3ac9887..0bd718f254 100644 --- a/.gitignore +++ b/.gitignore @@ -90,8 +90,6 @@ package-lock.json /coverage-frontend/ jsdoc/ **/tmp/rubocop_cache/** -.overcommit.yml -.overcommit.yml.backup .projections.json /qa/.rakeTasks webpack-dev-server.json diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0c06df88b3..486da5bb90 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -84,7 +84,7 @@ variables: GIT_SUBMODULE_STRATEGY: "none" GET_SOURCES_ATTEMPTS: "3" DEBIAN_VERSION: "bullseye" - CHROME_VERSION: "101" + CHROME_VERSION: "103" DOCKER_VERSION: "20.10.14" RUBY_VERSION: "2.7" @@ -114,6 +114,7 @@ variables: DOCS_REVIEW_APPS_DOMAIN: "35.193.151.162.nip.io" DOCS_GITLAB_REPO_SUFFIX: "ee" + REVIEW_APPS_IMAGE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/ruby-3.0:gcloud-383-kubectl-1.23-helm-3.5" REVIEW_APPS_DOMAIN: "gitlab-review.app" REVIEW_APPS_GCP_PROJECT: "gitlab-review-apps" REVIEW_APPS_GCP_REGION: "us-central1" diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index 777c5c54ea..6019fe636a 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -7,7 +7,7 @@ *.rake @gitlab-org/maintainers/rails-backend ^[Frontend] -*.scss @annabeldunstone @gitlab-org/maintainers/frontend +*.scss @gitlab-org/maintainers/frontend *.js @gitlab-org/maintainers/frontend /app/assets/ @gitlab-org/maintainers/frontend /ee/app/assets/ @gitlab-org/maintainers/frontend @@ -173,7 +173,7 @@ Dangerfile @gl-quality/eng-prod /config/dependency_decisions.yml @gitlab-org/legal-reviewers ^[Workhorse] -/workhorse/ @jacobvosmaer-gitlab @nick.thomas @nolith @patrickbajao +/workhorse/ @jacobvosmaer-gitlab @nolith @patrickbajao [Application Security] /app/assets/javascripts/lib/dompurify.js @gitlab-com/gl-security/appsec @@ -242,7 +242,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/administration/lfs/index.md @aqualls /doc/administration/libravatar.md @axil /doc/administration/load_balancer.md @axil -/doc/administration/logs.md @msedlakjakubowski +/doc/administration/logs/index.md @msedlakjakubowski /doc/administration/maintenance_mode/index.md @axil /doc/administration/merge_request_diffs.md @aqualls /doc/administration/monitoring/ @msedlakjakubowski @@ -283,7 +283,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/administration/timezone.md @axil /doc/administration/troubleshooting/ @axil /doc/administration/troubleshooting/elasticsearch.md @sselhorn -/doc/administration/troubleshooting/group_saml_scim.md @eread /doc/administration/troubleshooting/postgresql.md @aqualls /doc/administration/uploads.md @axil /doc/administration/user_settings.md @eread @@ -494,7 +493,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/ci/unit_test_reports.md @marcel.amirault /doc/ci/variables/ @marcel.amirault /doc/ci/yaml/ @marcel.amirault -/doc/development/adding_database_indexes.md @aqualls /doc/development/application_limits.md @axil /doc/development/approval_rules.md @aqualls /doc/development/audit_event_guide/index.md @eread @@ -513,12 +511,8 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/development/code_intelligence/index.md @aqualls /doc/development/contributing/ @sselhorn /doc/development/contributing/merge_request_workflow.md @aqualls -/doc/development/creating_enums.md @aqualls -/doc/development/database_debugging.md @aqualls -/doc/development/database_query_comments.md @aqualls /doc/development/database_review.md @aqualls /doc/development/database/ @aqualls -/doc/development/db_dump.md @aqualls /doc/development/developing_with_solargraph.md @aqualls /doc/development/diffs.md @aqualls /doc/development/distributed_tracing.md @msedlakjakubowski @@ -539,7 +533,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/development/feature_flags/controls.md @sselhorn /doc/development/feature_flags/index.md @sselhorn /doc/development/filtering_by_label.md @msedlakjakubowski -/doc/development/foreign_keys.md @aqualls /doc/development/geo.md @axil /doc/development/geo/framework.md @axil /doc/development/git_object_deduplication.md @eread @@ -553,7 +546,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/development/image_scaling.md @sselhorn /doc/development/import_export.md @eread /doc/development/index.md @sselhorn -/doc/development/insert_into_tables_in_batches.md @aqualls /doc/development/integrations/ @kpaizee /doc/development/integrations/codesandbox.md @sselhorn /doc/development/integrations/secure_partner_integration.md @rdickenson @@ -562,39 +554,28 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/development/internal_users.md @sselhorn /doc/development/issuable-like-models.md @msedlakjakubowski /doc/development/issue_types.md @msedlakjakubowski -/doc/development/iterating_tables_in_batches.md @aqualls /doc/development/kubernetes.md @sselhorn /doc/development/lfs.md @aqualls -/doc/development/licensed_feature_availability.md @sselhorn +/doc/development/ee_features.md @fneill /doc/development/logging.md @msedlakjakubowski /doc/development/maintenance_mode.md @axil -/doc/development/new_fe_guide/modules/widget_extensions.md @aqualls -/doc/development/new_fe_guide/tips.md @sselhorn /doc/development/omnibus.md @axil -/doc/development/ordering_table_columns.md @aqualls /doc/development/packages/ @claytoncornell /doc/development/permissions.md @eread /doc/development/policies.md @eread /doc/development/product_qualified_lead_guide/index.md @kpaizee /doc/development/project_templates.md @fneill /doc/development/prometheus_metrics.md @msedlakjakubowski -/doc/development/query_performance.md @aqualls -/doc/development/query_recorder.md @aqualls /doc/development/real_time.md @msedlakjakubowski /doc/development/secure_coding_guidelines.md @sselhorn -/doc/development/serializing_data.md @aqualls /doc/development/service_ping/ @claytoncornell -/doc/development/single_table_inheritance.md @aqualls /doc/development/snowplow/ @claytoncornell /doc/development/spam_protection_and_captcha/ @eread /doc/development/sql.md @aqualls -/doc/development/swapping_tables.md @aqualls /doc/development/testing_guide/best_practices.md @sselhorn /doc/development/testing_guide/end_to_end/best_practices.md @sselhorn -/doc/development/understanding_explain_plans.md @aqualls /doc/development/value_stream_analytics.md @fneill /doc/development/value_stream_analytics/value_stream_analytics_aggregated_backend.md @fneill -/doc/development/verifying_database_capabilities.md @aqualls /doc/development/wikis.md @aqualls /doc/development/work_items_widgets.md @msedlakjakubowski /doc/development/work_items.md @msedlakjakubowski @@ -618,7 +599,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/operations/feature_flags.md @rdickenson /doc/operations/product_analytics.md @claytoncornell /doc/policy/alpha-beta-support.md @axil -/doc/policy/maintenance.md @axil +/doc/policy/maintenance.md @axil @gitlab-org/delivery /doc/raketasks/ @axil /doc/raketasks/generate_sample_prometheus_data.md @msedlakjakubowski /doc/raketasks/migrate_snippets.md @aqualls @@ -710,6 +691,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/user/group/saml_sso/group_managed_accounts.md @eread /doc/user/group/saml_sso/index.md @eread /doc/user/group/saml_sso/scim_setup.md @eread +/doc/user/group/saml_sso/example_saml_config.md @eread /doc/user/group/settings/group_access_tokens.md @eread /doc/user/group/settings/import_export.md @eread /doc/user/group/subgroups/index.md @fneill @@ -804,250 +786,391 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/user/workspace/index.md @fneill [Authentication and Authorization] -/app/assets/javascripts/access_tokens/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/alerts_settings/graphql/mutations/reset_http_token.mutation.graphql @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/authentication/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/ide/components/shared/tokened_input.vue @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/invite_members/components/members_token_select.vue @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/packages_and_registries/package_registry/components/list/tokens/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pages/admin/impersonation_tokens/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pages/groups/settings/access_tokens/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pages/ldap/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pages/oauth/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pages/omniauth_callbacks/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pages/profiles/password_prompt/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pages/profiles/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pages/profiles/two_factor_auths/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pages/projects/settings/access_tokens/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pages/sessions/new/oauth_remember_me.js @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pipelines/components/pipelines_list/tokens/constants.js @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_branch_name_token.vue @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_source_token.vue @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_status_token.vue @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_tag_name_token.vue @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/projects/settings/topics/components/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/related_issues/components/issue_token.vue @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/runner/components/registration/registration_token.vue @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/runner/components/registration/registration_token_reset_dropdown_item.vue @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/runner/components/search_tokens/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/token_access/components/ @gitlab-org/manage/authentication-and-authorization -/app/assets/javascripts/token_access/index.js @gitlab-org/manage/authentication-and-authorization -/app/assets/stylesheets/page_bundles/profile_two_factor_auth.scss @gitlab-org/manage/authentication-and-authorization -/app/controllers/admin/impersonation_tokens_controller.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/concerns/access_tokens_actions.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/concerns/authenticates_with_two_factor.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/concerns/authenticates_with_two_factor_for_admin_mode.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/concerns/enforces_admin_authentication.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/concerns/enforces_two_factor_authentication.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/concerns/oauth_applications.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/concerns/project_unauthorized.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/concerns/sessionless_authentication.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/concerns/snippet_authorizations.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/concerns/workhorse_authorization.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/groups/settings/access_tokens_controller.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/ldap/ @gitlab-org/manage/authentication-and-authorization -/app/controllers/oauth/ @gitlab-org/manage/authentication-and-authorization -/app/controllers/omniauth_callbacks_controller.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/passwords_controller.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/profiles/passwords_controller.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/profiles/personal_access_tokens_controller.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/profiles/two_factor_auths_controller.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/profiles/webauthn_registrations_controller.rb @gitlab-org/manage/authentication-and-authorization -/app/controllers/projects/settings/access_tokens_controller.rb @gitlab-org/manage/authentication-and-authorization -/app/finders/groups/projects_requiring_authorizations_refresh/ @gitlab-org/manage/authentication-and-authorization -/app/finders/personal_access_tokens_finder.rb @gitlab-org/manage/authentication-and-authorization -/app/helpers/access_tokens_helper.rb @gitlab-org/manage/authentication-and-authorization -/app/helpers/auth_helper.rb @gitlab-org/manage/authentication-and-authorization -/app/models/authentication_event.rb @gitlab-org/manage/authentication-and-authorization -/app/models/concerns/admin_changed_password_notifier.rb @gitlab-org/manage/authentication-and-authorization -/app/models/concerns/mirror_authentication.rb @gitlab-org/manage/authentication-and-authorization -/app/models/concerns/select_for_project_authorization.rb @gitlab-org/manage/authentication-and-authorization -/app/models/concerns/token_authenticatable.rb @gitlab-org/manage/authentication-and-authorization -/app/models/concerns/token_authenticatable_strategies/ @gitlab-org/manage/authentication-and-authorization -/app/models/oauth_access_grant.rb @gitlab-org/manage/authentication-and-authorization -/app/models/oauth_access_token.rb @gitlab-org/manage/authentication-and-authorization -/app/models/personal_access_token.rb @gitlab-org/manage/authentication-and-authorization -/app/models/project_authorization.rb @gitlab-org/manage/authentication-and-authorization -/app/models/token_with_iv.rb @gitlab-org/manage/authentication-and-authorization -/app/models/webauthn_registration.rb @gitlab-org/manage/authentication-and-authorization -/app/policies/personal_access_token_policy.rb @gitlab-org/manage/authentication-and-authorization -/app/services/access_token_validation_service.rb @gitlab-org/manage/authentication-and-authorization -/app/services/auth/ @gitlab-org/manage/authentication-and-authorization -/app/services/authorized_project_update/ @gitlab-org/manage/authentication-and-authorization -/app/services/chat_names/authorize_user_service.rb @gitlab-org/manage/authentication-and-authorization -/app/services/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization -/app/services/projects/move_project_authorizations_service.rb @gitlab-org/manage/authentication-and-authorization -/app/services/resource_access_tokens/ @gitlab-org/manage/authentication-and-authorization -/app/services/todos/destroy/unauthorized_features_service.rb @gitlab-org/manage/authentication-and-authorization -/app/services/users/authorized_build_service.rb @gitlab-org/manage/authentication-and-authorization -/app/services/users/authorized_create_service.rb @gitlab-org/manage/authentication-and-authorization -/app/services/users/refresh_authorized_projects_service.rb @gitlab-org/manage/authentication-and-authorization -/app/services/webauthn/ @gitlab-org/manage/authentication-and-authorization -/app/validators/json_schemas/cluster_agent_authorization_configuration.json @gitlab-org/manage/authentication-and-authorization -/app/views/admin/application_settings/_external_authorization_service_form.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/admin/impersonation_tokens/ @gitlab-org/manage/authentication-and-authorization -/app/views/authentication/ @gitlab-org/manage/authentication-and-authorization -/app/views/ci/token_access/ @gitlab-org/manage/authentication-and-authorization -/app/views/dashboard/projects/_zero_authorized_projects.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/devise/mailer/password_change.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/devise/mailer/password_change.text.erb @gitlab-org/manage/authentication-and-authorization -/app/views/devise/mailer/password_change_by_admin.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/devise/mailer/password_change_by_admin.text.erb @gitlab-org/manage/authentication-and-authorization -/app/views/devise/mailer/reset_password_instructions.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/devise/mailer/reset_password_instructions.text.erb @gitlab-org/manage/authentication-and-authorization -/app/views/devise/passwords/ @gitlab-org/manage/authentication-and-authorization -/app/views/devise/shared/_omniauth_box.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/devise/shared/_signup_omniauth_provider_list.haml @gitlab-org/manage/authentication-and-authorization -/app/views/devise/shared/_signup_omniauth_providers.haml @gitlab-org/manage/authentication-and-authorization -/app/views/devise/shared/_signup_omniauth_providers_top.haml @gitlab-org/manage/authentication-and-authorization -/app/views/doorkeeper/authorizations/ @gitlab-org/manage/authentication-and-authorization -/app/views/doorkeeper/authorized_applications/ @gitlab-org/manage/authentication-and-authorization -/app/views/errors/omniauth_error.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/groups/settings/_resource_access_token_creation.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/groups/settings/_two_factor_auth.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/groups/settings/access_tokens/ @gitlab-org/manage/authentication-and-authorization -/app/views/layouts/oauth_error.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/notify/access_token_about_to_expire_email.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/notify/access_token_about_to_expire_email.text.erb @gitlab-org/manage/authentication-and-authorization -/app/views/notify/access_token_created_email.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/notify/access_token_created_email.text.erb @gitlab-org/manage/authentication-and-authorization -/app/views/notify/access_token_expired_email.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/notify/access_token_expired_email.text.erb @gitlab-org/manage/authentication-and-authorization -/app/views/profiles/passwords/ @gitlab-org/manage/authentication-and-authorization -/app/views/profiles/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization -/app/views/profiles/two_factor_auths/ @gitlab-org/manage/authentication-and-authorization -/app/views/projects/mirrors/_authentication_method.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/projects/settings/access_tokens/ @gitlab-org/manage/authentication-and-authorization -/app/views/shared/_no_password.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/shared/_two_factor_auth_recovery_settings_check.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/shared/access_tokens/ @gitlab-org/manage/authentication-and-authorization -/app/views/shared/members/_two_factor_auth_badge.html.haml @gitlab-org/manage/authentication-and-authorization -/app/views/shared/tokens/ @gitlab-org/manage/authentication-and-authorization -/app/workers/authorized_keys_worker.rb @gitlab-org/manage/authentication-and-authorization -/app/workers/authorized_project_update/ @gitlab-org/manage/authentication-and-authorization -/app/workers/authorized_projects_worker.rb @gitlab-org/manage/authentication-and-authorization -/app/workers/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/application_settings_tokens_optional_encryption.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/async_only_project_authorizations_refresh.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/enforce_auth_checks_on_uploads.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/forti_authenticator.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/forti_token_cloud.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/groups_tokens_optional_encryption.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/omniauth_login_minimal_scopes.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/personal_access_tokens_scoped_to_projects.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/projects_tokens_optional_encryption.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/refresh_authorizations_via_affected_projects_on_group_membership.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/skip_group_share_unlink_auth_refresh.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/specialized_worker_for_group_lock_update_auth_recalculation.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/update_oauth_registration_flow.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/development/webauthn.yml @gitlab-org/manage/authentication-and-authorization -/config/feature_flags/ops/block_password_auth_for_saml_users.yml @gitlab-org/manage/authentication-and-authorization -/config/initializers/01_secret_token.rb @gitlab-org/manage/authentication-and-authorization -/config/initializers/devise_dynamic_password_length_validation.rb @gitlab-org/manage/authentication-and-authorization -/config/initializers/devise_password_length.rb.example @gitlab-org/manage/authentication-and-authorization -/config/initializers/gitlab_shell_secret_token.rb @gitlab-org/manage/authentication-and-authorization -/config/initializers/omniauth.rb @gitlab-org/manage/authentication-and-authorization -/config/initializers/rails_host_authorization.rb @gitlab-org/manage/authentication-and-authorization -/config/initializers/rails_host_authorization_gitpod.rb @gitlab-org/manage/authentication-and-authorization -/config/initializers/webauthn.rb @gitlab-org/manage/authentication-and-authorization -/config/initializers_before_autoloader/100_patch_omniauth_oauth2.rb @gitlab-org/manage/authentication-and-authorization -/config/initializers_before_autoloader/100_patch_omniauth_saml.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/assets/javascripts/access_tokens/ @gitlab-org/manage/authentication-and-authorization -/ee/app/assets/javascripts/audit_events/components/tokens/ @gitlab-org/manage/authentication-and-authorization -/ee/app/assets/javascripts/audit_events/token_utils.js @gitlab-org/manage/authentication-and-authorization -/ee/app/assets/javascripts/groups/settings/components/ @gitlab-org/manage/authentication-and-authorization -/ee/app/assets/javascripts/pages/groups/omniauth_callbacks/ @gitlab-org/manage/authentication-and-authorization -/ee/app/assets/javascripts/pipelines/components/pipelines_list/ @gitlab-org/manage/authentication-and-authorization -/ee/app/assets/javascripts/requirements/components/tokens/ @gitlab-org/manage/authentication-and-authorization -/ee/app/assets/javascripts/saml_providers/scim_token_service.js @gitlab-org/manage/authentication-and-authorization -/ee/app/assets/javascripts/saml_sso/components/ @gitlab-org/manage/authentication-and-authorization -/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_auth.vue @gitlab-org/manage/authentication-and-authorization -/ee/app/controllers/concerns/ee/authenticates_with_two_factor.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/controllers/concerns/ee/enforces_two_factor_authentication.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/controllers/concerns/saml_authorization.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/controllers/ee/ldap/ @gitlab-org/manage/authentication-and-authorization -/ee/app/controllers/ee/omniauth_callbacks_controller.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/controllers/ee/passwords_controller.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/controllers/groups/omniauth_callbacks_controller.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/controllers/groups/scim_oauth_controller.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/controllers/oauth/ @gitlab-org/manage/authentication-and-authorization -/ee/app/controllers/omniauth_kerberos_spnego_controller.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/finders/auth/ @gitlab-org/manage/authentication-and-authorization -/ee/app/helpers/ee/access_tokens_helper.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/helpers/ee/auth_helper.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/helpers/ee/personal_access_tokens_helper.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/models/concerns/password_complexity.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/models/ee/personal_access_token.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/models/ee/project_authorization.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/models/scim_oauth_access_token.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/serializers/scim_oauth_access_token_entity.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/services/ee/auth/ @gitlab-org/manage/authentication-and-authorization -/ee/app/services/ee/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization -/ee/app/services/ee/resource_access_tokens/ @gitlab-org/manage/authentication-and-authorization -/ee/app/services/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization -/ee/app/services/security/token_revocation_service.rb @gitlab-org/manage/authentication-and-authorization -/ee/app/validators/password/ @gitlab-org/manage/authentication-and-authorization -/ee/app/views/admin/application_settings/_personal_access_token_expiration_policy.html.haml @gitlab-org/manage/authentication-and-authorization -/ee/app/views/credentials_inventory_mailer/personal_access_token_revoked_email.html.haml @gitlab-org/manage/authentication-and-authorization -/ee/app/views/credentials_inventory_mailer/personal_access_token_revoked_email.text.haml @gitlab-org/manage/authentication-and-authorization -/ee/app/views/groups/_personal_access_token_expiration_policy.html.haml @gitlab-org/manage/authentication-and-authorization -/ee/app/views/groups/sso/_authorize_pane.html.haml @gitlab-org/manage/authentication-and-authorization -/ee/app/views/notify/policy_revoked_personal_access_tokens_email.html.haml @gitlab-org/manage/authentication-and-authorization -/ee/app/views/notify/policy_revoked_personal_access_tokens_email.text.erb @gitlab-org/manage/authentication-and-authorization -/ee/app/views/oauth/ @gitlab-org/manage/authentication-and-authorization -/ee/app/views/shared/credentials_inventory/_personal_access_tokens.html.haml @gitlab-org/manage/authentication-and-authorization -/ee/app/views/shared/credentials_inventory/_project_access_tokens.html.haml @gitlab-org/manage/authentication-and-authorization -/ee/app/views/shared/credentials_inventory/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization -/ee/app/views/shared/credentials_inventory/project_access_tokens/ @gitlab-org/manage/authentication-and-authorization -/ee/app/workers/auth/ @gitlab-org/manage/authentication-and-authorization -/ee/app/workers/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization -/ee/config/routes/oauth.rb @gitlab-org/manage/authentication-and-authorization -/ee/lib/ee/gitlab/auth/ @gitlab-org/manage/authentication-and-authorization -/ee/lib/ee/gitlab/omniauth_initializer.rb @gitlab-org/manage/authentication-and-authorization -/ee/lib/gitlab/auth/ @gitlab-org/manage/authentication-and-authorization -/ee/lib/gitlab/auth_logger.rb @gitlab-org/manage/authentication-and-authorization -/ee/lib/gitlab/authority_analyzer.rb @gitlab-org/manage/authentication-and-authorization -/ee/lib/gitlab/geo/oauth/ @gitlab-org/manage/authentication-and-authorization -/ee/lib/gitlab/kerberos/ @gitlab-org/manage/authentication-and-authorization -/ee/lib/omni_auth/ @gitlab-org/manage/authentication-and-authorization -/ee/lib/system_check/geo/authorized_keys_check.rb @gitlab-org/manage/authentication-and-authorization -/ee/lib/system_check/geo/authorized_keys_flag_check.rb @gitlab-org/manage/authentication-and-authorization -/lib/api/entities/ci/reset_token_result.rb @gitlab-org/manage/authentication-and-authorization -/lib/api/entities/impersonation_token.rb @gitlab-org/manage/authentication-and-authorization -/lib/api/entities/impersonation_token_with_token.rb @gitlab-org/manage/authentication-and-authorization -/lib/api/entities/personal_access_token.rb @gitlab-org/manage/authentication-and-authorization -/lib/api/entities/personal_access_token_with_details.rb @gitlab-org/manage/authentication-and-authorization -/lib/api/entities/personal_access_token_with_token.rb @gitlab-org/manage/authentication-and-authorization -/lib/api/entities/resource_access_token.rb @gitlab-org/manage/authentication-and-authorization -/lib/api/entities/resource_access_token_with_token.rb @gitlab-org/manage/authentication-and-authorization -/lib/api/helpers/authentication.rb @gitlab-org/manage/authentication-and-authorization -/lib/api/helpers/packages/basic_auth_helpers.rb @gitlab-org/manage/authentication-and-authorization -/lib/api/personal_access_tokens.rb @gitlab-org/manage/authentication-and-authorization -/lib/api/resource_access_tokens.rb @gitlab-org/manage/authentication-and-authorization -/lib/api/support/token_with_expiration.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/api_authentication/ @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/auth/ @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/auth.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/auth_logger.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/authorized_keys.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/background_migration/encrypt_static_object_token.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/background_migration/expire_o_auth_tokens.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/background_migration/migrate_u2f_webauthn.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/background_migration/update_users_where_two_factor_auth_required_from_group.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/chat_name_token.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/ci/pipeline/expression/token.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/external_authorization/ @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/external_authorization.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/graphql/authorize/ @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/jwt_authenticatable.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/jwt_token.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/lfs_token.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/mail_room/ @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/omniauth_initializer.rb @gitlab-org/manage/authentication-and-authorization -/lib/gitlab/project_authorizations.rb @gitlab-org/manage/authentication-and-authorization -/lib/json_web_token/ @gitlab-org/manage/authentication-and-authorization -/lib/omni_auth/ @gitlab-org/manage/authentication-and-authorization -/lib/system_check/app/authorized_keys_permission_check.rb @gitlab-org/manage/authentication-and-authorization -/lib/system_check/incoming_email/imap_authentication_check.rb @gitlab-org/manage/authentication-and-authorization -/lib/tasks/gitlab/password.rake @gitlab-org/manage/authentication-and-authorization -/lib/tasks/tokens.rake @gitlab-org/manage/authentication-and-authorization +/app/assets/javascripts/access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/alerts_settings/graphql/mutations/reset_http_token.mutation.graphql @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/authentication/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/ide/components/shared/tokened_input.vue @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/invite_members/components/members_token_select.vue @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/packages_and_registries/package_registry/components/list/tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pages/admin/impersonation_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pages/groups/settings/access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pages/ldap/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pages/oauth/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pages/omniauth_callbacks/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pages/profiles/password_prompt/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pages/profiles/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pages/profiles/two_factor_auths/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pages/projects/settings/access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pages/sessions/new/oauth_remember_me.js @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pipelines/components/pipelines_list/tokens/constants.js @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_branch_name_token.vue @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_source_token.vue @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_status_token.vue @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_tag_name_token.vue @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/projects/settings/topics/components/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/related_issues/components/issue_token.vue @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/runner/components/registration/registration_token.vue @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/runner/components/registration/registration_token_reset_dropdown_item.vue @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/runner/components/search_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/token_access/components/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/javascripts/token_access/index.js @gitlab-org/manage/authentication-and-authorization/approvers +/app/assets/stylesheets/page_bundles/profile_two_factor_auth.scss @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/admin/impersonation_tokens_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/concerns/access_tokens_actions.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/concerns/authenticates_with_two_factor.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/concerns/authenticates_with_two_factor_for_admin_mode.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/concerns/enforces_admin_authentication.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/concerns/enforces_two_factor_authentication.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/concerns/oauth_applications.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/concerns/project_unauthorized.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/concerns/sessionless_authentication.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/concerns/snippet_authorizations.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/concerns/workhorse_authorization.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/groups/settings/access_tokens_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/ldap/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/oauth/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/omniauth_callbacks_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/passwords_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/profiles/passwords_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/profiles/personal_access_tokens_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/profiles/two_factor_auths_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/profiles/webauthn_registrations_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/controllers/projects/settings/access_tokens_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/finders/groups/projects_requiring_authorizations_refresh/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/finders/personal_access_tokens_finder.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/helpers/access_tokens_helper.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/helpers/auth_helper.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/models/authentication_event.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/models/concerns/admin_changed_password_notifier.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/models/concerns/mirror_authentication.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/models/concerns/select_for_project_authorization.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/models/concerns/token_authenticatable.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/models/concerns/token_authenticatable_strategies/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/models/oauth_access_grant.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/models/oauth_access_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/models/personal_access_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/models/project_authorization.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/models/token_with_iv.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/models/webauthn_registration.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/policies/personal_access_token_policy.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/services/access_token_validation_service.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/services/auth/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/services/authorized_project_update/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/services/chat_names/authorize_user_service.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/services/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/services/projects/move_project_authorizations_service.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/services/resource_access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/services/todos/destroy/unauthorized_features_service.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/services/users/authorized_build_service.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/services/users/authorized_create_service.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/services/users/refresh_authorized_projects_service.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/services/webauthn/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/validators/json_schemas/cluster_agent_authorization_configuration.json @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/admin/application_settings/_external_authorization_service_form.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/admin/impersonation_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/authentication/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/ci/token_access/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/dashboard/projects/_zero_authorized_projects.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/devise/mailer/password_change.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/devise/mailer/password_change.text.erb @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/devise/mailer/password_change_by_admin.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/devise/mailer/password_change_by_admin.text.erb @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/devise/mailer/reset_password_instructions.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/devise/mailer/reset_password_instructions.text.erb @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/devise/passwords/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/devise/shared/_omniauth_box.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/devise/shared/_signup_omniauth_provider_list.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/devise/shared/_signup_omniauth_providers.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/devise/shared/_signup_omniauth_providers_top.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/doorkeeper/authorizations/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/doorkeeper/authorized_applications/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/errors/omniauth_error.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/groups/settings/_resource_access_token_creation.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/groups/settings/_two_factor_auth.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/groups/settings/access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/layouts/oauth_error.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/notify/access_token_about_to_expire_email.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/notify/access_token_about_to_expire_email.text.erb @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/notify/access_token_created_email.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/notify/access_token_created_email.text.erb @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/notify/access_token_expired_email.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/notify/access_token_expired_email.text.erb @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/profiles/passwords/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/profiles/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/profiles/two_factor_auths/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/projects/mirrors/_authentication_method.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/projects/settings/access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/shared/_no_password.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/shared/_two_factor_auth_recovery_settings_check.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/shared/access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/shared/members/_two_factor_auth_badge.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/app/views/shared/tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/workers/authorized_keys_worker.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/workers/authorized_project_update/ @gitlab-org/manage/authentication-and-authorization/approvers +/app/workers/authorized_projects_worker.rb @gitlab-org/manage/authentication-and-authorization/approvers +/app/workers/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/development/access_token_pagination.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/development/application_settings_tokens_optional_encryption.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/development/enforce_auth_checks_on_uploads.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/development/forti_authenticator.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/development/forti_token_cloud.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/development/groups_tokens_optional_encryption.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/development/pbkdf2_password_encryption.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/development/pbkdf2_password_encryption_write.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/development/projects_tokens_optional_encryption.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/development/skip_group_share_unlink_auth_refresh.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/development/specialized_worker_for_group_lock_update_auth_recalculation.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/development/update_oauth_registration_flow.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/development/webauthn.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/feature_flags/ops/block_password_auth_for_saml_users.yml @gitlab-org/manage/authentication-and-authorization/approvers +/config/initializers/01_secret_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/config/initializers/devise_dynamic_password_length_validation.rb @gitlab-org/manage/authentication-and-authorization/approvers +/config/initializers/devise_password_length.rb.example @gitlab-org/manage/authentication-and-authorization/approvers +/config/initializers/gitlab_shell_secret_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/config/initializers/omniauth.rb @gitlab-org/manage/authentication-and-authorization/approvers +/config/initializers/rails_host_authorization.rb @gitlab-org/manage/authentication-and-authorization/approvers +/config/initializers/rails_host_authorization_gitpod.rb @gitlab-org/manage/authentication-and-authorization/approvers +/config/initializers/webauthn.rb @gitlab-org/manage/authentication-and-authorization/approvers +/config/initializers_before_autoloader/100_patch_omniauth_oauth2.rb @gitlab-org/manage/authentication-and-authorization/approvers +/config/initializers_before_autoloader/100_patch_omniauth_saml.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/audit_events/components/tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/audit_events/token_utils.js @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/groups/settings/components/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/pages/admin/application_settings/general/components/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/pages/groups/omniauth_callbacks/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/pages/passwords/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/pages/profiles/passwords/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/password/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/pipelines/components/pipelines_list/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/requirements/components/tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/runner/components/search_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/saml_providers/scim_token_service.js @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/saml_sso/components/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_auth.vue @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/controllers/concerns/ee/authenticates_with_two_factor.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/controllers/concerns/ee/enforces_two_factor_authentication.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/controllers/concerns/saml_authorization.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/controllers/ee/ldap/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/controllers/ee/omniauth_callbacks_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/controllers/ee/passwords_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/controllers/groups/omniauth_callbacks_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/controllers/groups/scim_oauth_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/controllers/oauth/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/controllers/omniauth_kerberos_spnego_controller.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/finders/auth/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/helpers/ee/access_tokens_helper.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/helpers/ee/auth_helper.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/helpers/ee/personal_access_tokens_helper.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/models/concerns/password_complexity.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/models/ee/personal_access_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/models/ee/project_authorization.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/models/scim_oauth_access_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/serializers/scim_oauth_access_token_entity.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/services/ee/auth/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/services/ee/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/services/ee/resource_access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/services/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/services/security/token_revocation_service.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/validators/password/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/views/admin/application_settings/_personal_access_token_expiration_policy.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/views/credentials_inventory_mailer/personal_access_token_revoked_email.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/views/credentials_inventory_mailer/personal_access_token_revoked_email.text.haml @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/views/groups/_personal_access_token_expiration_policy.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/views/groups/sso/_authorize_pane.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/views/notify/policy_revoked_personal_access_tokens_email.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/views/notify/policy_revoked_personal_access_tokens_email.text.erb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/views/oauth/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/views/shared/_password_requirements_list.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/views/shared/credentials_inventory/_personal_access_tokens.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/views/shared/credentials_inventory/_project_access_tokens.html.haml @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/views/shared/credentials_inventory/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/views/shared/credentials_inventory/project_access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/workers/auth/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/app/workers/personal_access_tokens/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/config/routes/oauth.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/lib/ee/gitlab/auth/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/lib/ee/gitlab/omniauth_initializer.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/lib/gitlab/auth/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/lib/gitlab/auth_logger.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/lib/gitlab/authority_analyzer.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/lib/gitlab/geo/oauth/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/lib/gitlab/kerberos/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/lib/omni_auth/ @gitlab-org/manage/authentication-and-authorization/approvers +/ee/lib/system_check/geo/authorized_keys_check.rb @gitlab-org/manage/authentication-and-authorization/approvers +/ee/lib/system_check/geo/authorized_keys_flag_check.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/api/entities/ci/reset_token_result.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/api/entities/impersonation_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/api/entities/impersonation_token_with_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/api/entities/personal_access_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/api/entities/personal_access_token_with_details.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/api/entities/personal_access_token_with_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/api/entities/resource_access_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/api/entities/resource_access_token_with_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/api/helpers/authentication.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/api/helpers/packages/basic_auth_helpers.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/api/personal_access_tokens.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/api/resource_access_tokens.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/api/support/token_with_expiration.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/api_authentication/ @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/auth/ @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/auth.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/auth_logger.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/authorized_keys.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/background_migration/encrypt_static_object_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/background_migration/expire_o_auth_tokens.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/background_migration/migrate_u2f_webauthn.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/background_migration/update_users_where_two_factor_auth_required_from_group.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/chat_name_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/ci/pipeline/expression/token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/external_authorization/ @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/external_authorization.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/grape_logging/loggers/token_logger.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/graphql/authorize/ @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/jwt_authenticatable.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/jwt_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/lfs_token.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/mail_room/ @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/omniauth_initializer.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/gitlab/project_authorizations.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/json_web_token/ @gitlab-org/manage/authentication-and-authorization/approvers +/lib/omni_auth/ @gitlab-org/manage/authentication-and-authorization/approvers +/lib/system_check/app/authorized_keys_permission_check.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/system_check/incoming_email/imap_authentication_check.rb @gitlab-org/manage/authentication-and-authorization/approvers +/lib/tasks/gitlab/password.rake @gitlab-org/manage/authentication-and-authorization/approvers +/lib/tasks/tokens.rake @gitlab-org/manage/authentication-and-authorization/approvers + +[Compliance] +/ee/app/services/audit_events/build_service.rb @gitlab-org/manage/compliance +/ee/spec/services/audit_events/custom_audit_event_service_spec.rb @gitlab-org/manage/compliance +/app/models/audit_event.rb @gitlab-org/manage/compliance +/app/services/audit_event_service.rb @gitlab-org/manage/compliance +/app/services/concerns/audit_event_save_type.rb @gitlab-org/manage/compliance +/app/views/profiles/audit_log.html.haml @gitlab-org/manage/compliance +/data/deprecations/14-3-repository-push-audit-events.yml @gitlab-org/manage/compliance +/data/removals/15_0/removal_manage_repository_push_audit_event.yml @gitlab-org/manage/compliance +/db/docs/audit_events.yml @gitlab-org/manage/compliance +/db/docs/audit_events_external_audit_event_destinations.yml @gitlab-org/manage/compliance +/db/docs/audit_events_streaming_headers.yml @gitlab-org/manage/compliance +/db/migrate/20210819185500_create_external_audit_event_destinations_table.rb @gitlab-org/manage/compliance +/db/migrate/20220524141800_create_audit_events_streaming_headers.rb @gitlab-org/manage/compliance +/db/post_migrate/20210331105335_drop_non_partitioned_audit_events.rb @gitlab-org/manage/compliance +/db/post_migrate/20220119094503_populate_audit_event_streaming_verification_token.rb @gitlab-org/manage/compliance +/doc/administration/audit_event_streaming.md @gitlab-org/manage/compliance +/doc/administration/audit_events.md @gitlab-org/manage/compliance +/doc/administration/audit_reports.md @gitlab-org/manage/compliance +/doc/administration/auditor_users.md @gitlab-org/manage/compliance +/doc/api/audit_events.md @gitlab-org/manage/compliance +/doc/api/graphql/audit_report.md @gitlab-org/manage/compliance +/ee/app/assets/javascripts/audit_events/components/audit_events_app.vue @gitlab-org/manage/compliance +/ee/app/assets/javascripts/audit_events/components/audit_events_export_button.vue @gitlab-org/manage/compliance +/ee/app/assets/javascripts/audit_events/components/audit_events_filter.vue @gitlab-org/manage/compliance +/ee/app/assets/javascripts/audit_events/components/audit_events_log.vue @gitlab-org/manage/compliance +/ee/app/assets/javascripts/audit_events/components/audit_events_stream.vue @gitlab-org/manage/compliance +/ee/app/assets/javascripts/audit_events/components/audit_events_table.vue @gitlab-org/manage/compliance +/ee/app/assets/javascripts/audit_events/components/tokens/shared/ @gitlab-org/manage/compliance +/ee/app/assets/javascripts/audit_events/init_audit_events.js @gitlab-org/manage/compliance +/ee/app/controllers/admin/audit_log_reports_controller.rb @gitlab-org/manage/compliance +/ee/app/controllers/admin/audit_logs_controller.rb @gitlab-org/manage/compliance +/ee/app/controllers/concerns/audit_events/audit_events_params.rb @gitlab-org/manage/compliance +/ee/app/controllers/groups/audit_events_controller.rb @gitlab-org/manage/compliance +/ee/app/controllers/projects/audit_events_controller.rb @gitlab-org/manage/compliance +/ee/app/finders/audit_event_finder.rb @gitlab-org/manage/compliance +/ee/app/graphql/types/audit_events/external_audit_event_destination_type.rb @gitlab-org/manage/compliance +/ee/app/helpers/audit_events_helper.rb @gitlab-org/manage/compliance +/ee/app/helpers/auditor_user_helper.rb @gitlab-org/manage/compliance +/ee/app/models/audit_events/external_audit_event_destination.rb @gitlab-org/manage/compliance +/ee/app/models/concerns/auditable.rb @gitlab-org/manage/compliance +/ee/app/models/ee/audit_event.rb @gitlab-org/manage/compliance +/ee/app/policies/audit_events/external_audit_event_destination_policy.rb @gitlab-org/manage/compliance +/ee/app/presenters/audit_event_presenter.rb @gitlab-org/manage/compliance +/ee/app/serializers/audit_event_entity.rb @gitlab-org/manage/compliance +/ee/app/serializers/audit_event_serializer.rb @gitlab-org/manage/compliance +/ee/app/services/ci/audit_variable_change_service.rb @gitlab-org/manage/compliance +/ee/app/services/ee/audit_event_service.rb @gitlab-org/manage/compliance +/ee/app/views/admin/users/_auditor_access_level_radio.html.haml @gitlab-org/manage/compliance +/ee/app/views/admin/users/_auditor_user_badge.html.haml @gitlab-org/manage/compliance +/ee/app/views/shared/icons/_icon_audit_events_purple.svg @gitlab-org/manage/compliance +/ee/app/views/shared/promotions/_promote_audit_events.html.haml @gitlab-org/manage/compliance +/ee/app/workers/audit_events/audit_event_streaming_worker.rb @gitlab-org/manage/compliance +/ee/config/events/1652263097_groups__audit_events__index_click_streams_tab.yml @gitlab-org/manage/compliance +/ee/config/events/202108302307_admin_audit_logs_index_click_date_range_button.yml @gitlab-org/manage/compliance +/ee/config/events/202108302307_groups__audit_events_controller_search_audit_event.yml @gitlab-org/manage/compliance +/ee/config/events/202108302307_profiles_controller_search_audit_event.yml @gitlab-org/manage/compliance +/ee/config/events/202108302307_projects__audit_events_controller_search_audit_event.yml @gitlab-org/manage/compliance +/ee/config/events/202111041910_admin__audit_logs_controller_search_audit_event.yml @gitlab-org/manage/compliance +/ee/config/feature_flags/development/audit_event_streaming_git_operations.yml @gitlab-org/manage/compliance +/ee/config/feature_flags/development/audit_log_group_level.yml @gitlab-org/manage/compliance +/ee/config/metrics/counts_28d/20210216183930_g_compliance_audit_events_monthly.yml @gitlab-org/manage/compliance +/ee/config/metrics/counts_28d/20210216183934_i_compliance_audit_events_monthly.yml @gitlab-org/manage/compliance +/ee/config/metrics/counts_28d/20210216183942_a_compliance_audit_events_api_monthly.yml @gitlab-org/manage/compliance +/ee/config/metrics/counts_28d/20211130085433_g_manage_compliance_audit_event_destinations.yml @gitlab-org/manage/compliance +/ee/config/metrics/counts_7d/20210216183906_g_compliance_audit_events.yml @gitlab-org/manage/compliance +/ee/config/metrics/counts_7d/20210216183908_i_compliance_audit_events.yml @gitlab-org/manage/compliance +/ee/config/metrics/counts_7d/20210216183912_a_compliance_audit_events_api.yml @gitlab-org/manage/compliance +/ee/config/metrics/counts_7d/20210216183928_g_compliance_audit_events_weekly.yml @gitlab-org/manage/compliance +/ee/config/metrics/counts_7d/20210216183932_i_compliance_audit_events_weekly.yml @gitlab-org/manage/compliance +/ee/config/metrics/counts_7d/20210216183940_a_compliance_audit_events_api_weekly.yml @gitlab-org/manage/compliance +/ee/config/metrics/counts_all/20211130085433_g_manage_compliance_audit_event_destinations.yml @gitlab-org/manage/compliance +/ee/lib/api/audit_events.rb @gitlab-org/manage/compliance +/ee/lib/audit/external_status_check_changes_auditor.rb @gitlab-org/manage/compliance +/ee/lib/audit/group_merge_request_approval_setting_changes_auditor.rb @gitlab-org/manage/compliance +/ee/lib/audit/group_push_rules_changes_auditor.rb @gitlab-org/manage/compliance +/ee/lib/ee/api/entities/audit_event.rb @gitlab-org/manage/compliance +/ee/lib/ee/audit/ @gitlab-org/manage/compliance +/ee/lib/ee/gitlab/audit/ @gitlab-org/manage/compliance +/ee/spec/controllers/admin/audit_log_reports_controller_spec.rb @gitlab-org/manage/compliance +/ee/spec/controllers/admin/audit_logs_controller_spec.rb @gitlab-org/manage/compliance +/ee/spec/controllers/groups/audit_events_controller_spec.rb @gitlab-org/manage/compliance +/ee/spec/controllers/projects/audit_events_controller_spec.rb @gitlab-org/manage/compliance +/ee/spec/factories/audit_events/external_audit_event_destinations.rb @gitlab-org/manage/compliance +/ee/spec/features/admin/admin_audit_logs_spec.rb @gitlab-org/manage/compliance +/ee/spec/features/groups/audit_events_spec.rb @gitlab-org/manage/compliance +/ee/spec/features/projects/audit_events_spec.rb @gitlab-org/manage/compliance +/ee/spec/finders/audit_event_finder_spec.rb @gitlab-org/manage/compliance +/ee/spec/fixtures/api/schemas/public_api/v4/audit_event.json @gitlab-org/manage/compliance +/ee/spec/fixtures/api/schemas/public_api/v4/audit_events.json @gitlab-org/manage/compliance +/ee/spec/frontend/audit_events/components/__snapshots__/ @gitlab-org/manage/compliance +/ee/spec/frontend/audit_events/components/audit_events_app_spec.js @gitlab-org/manage/compliance +/ee/spec/frontend/audit_events/components/audit_events_export_button_spec.js @gitlab-org/manage/compliance +/ee/spec/frontend/audit_events/components/audit_events_filter_spec.js @gitlab-org/manage/compliance +/ee/spec/frontend/audit_events/components/audit_events_logs_spec.js @gitlab-org/manage/compliance +/ee/spec/frontend/audit_events/components/audit_events_stream_spec.js @gitlab-org/manage/compliance +/ee/spec/frontend/audit_events/components/audit_events_table_spec.js @gitlab-org/manage/compliance +/ee/spec/frontend/audit_events/components/tokens/shared/ @gitlab-org/manage/compliance +/ee/spec/graphql/types/audit_events/exterrnal_audit_event_destination_type_spec.rb @gitlab-org/manage/compliance +/ee/spec/helpers/audit_events_helper_spec.rb @gitlab-org/manage/compliance +/ee/spec/lib/audit/external_status_check_changes_auditor_spec.rb @gitlab-org/manage/compliance +/ee/spec/lib/audit/group_merge_request_approval_setting_changes_auditor_spec.rb @gitlab-org/manage/compliance +/ee/spec/lib/audit/group_push_rules_changes_auditor_spec.rb @gitlab-org/manage/compliance +/ee/spec/lib/ee/audit/ @gitlab-org/manage/compliance +/ee/spec/lib/gitlab/audit/auditor_spec.rb @gitlab-org/manage/compliance +/ee/spec/models/audit_events/external_audit_event_destination_spec.rb @gitlab-org/manage/compliance +/ee/spec/models/concerns/auditable_spec.rb @gitlab-org/manage/compliance +/ee/spec/models/ee/audit_event_spec.rb @gitlab-org/manage/compliance +/ee/spec/presenters/audit_event_presenter_spec.rb @gitlab-org/manage/compliance +/ee/spec/requests/admin/audit_events_spec.rb @gitlab-org/manage/compliance +/ee/spec/requests/api/audit_events_spec.rb @gitlab-org/manage/compliance +/ee/spec/requests/api/graphql/group/external_audit_event_destinations_spec.rb @gitlab-org/manage/compliance +/ee/spec/requests/groups/audit_events_spec.rb @gitlab-org/manage/compliance +/ee/spec/requests/projects/audit_events_spec.rb @gitlab-org/manage/compliance +/ee/spec/serializers/audit_event_entity_spec.rb @gitlab-org/manage/compliance +/ee/spec/serializers/audit_event_serializer_spec.rb @gitlab-org/manage/compliance +/ee/spec/services/audit_event_service_spec.rb @gitlab-org/manage/compliance +/ee/spec/support/shared_contexts/audit_event_not_licensed_shared_context.rb @gitlab-org/manage/compliance +/ee/spec/support/shared_contexts/audit_event_queue_shared_context.rb @gitlab-org/manage/compliance +/ee/spec/support/shared_examples/audit/ @gitlab-org/manage/compliance +/ee/spec/support/shared_examples/features/audit_events_filter_shared_examples.rb @gitlab-org/manage/compliance +/ee/spec/support/shared_examples/services/audit_event_logging_shared_examples.rb @gitlab-org/manage/compliance +/ee/spec/workers/audit_events/audit_event_streaming_worker_spec.rb @gitlab-org/manage/compliance +/lib/gitlab/audit/auditor.rb @gitlab-org/manage/compliance +/lib/gitlab/audit_json_logger.rb @gitlab-org/manage/compliance +/spec/factories/audit_events.rb @gitlab-org/manage/compliance +/spec/lib/gitlab/audit/auditor_spec.rb @gitlab-org/manage/compliance +/spec/migrations/populate_audit_event_streaming_verification_token_spec.rb @gitlab-org/manage/compliance +/spec/models/audit_event_spec.rb @gitlab-org/manage/compliance +/spec/services/audit_event_service_spec.rb @gitlab-org/manage/compliance +/spec/services/concerns/audit_event_save_type_spec.rb @gitlab-org/manage/compliance +/spec/support/shared_examples/sends_git_audit_streaming_event_shared_examples.rb @gitlab-org/manage/compliance +/spec/views/profiles/audit_log.html.haml_spec.rb @gitlab-org/manage/compliance +/vendor/project_templates/hipaa_audit_protocol.tar.gz @gitlab-org/manage/compliance diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index 8c49d5c212..1d0218f4bd 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -65,12 +65,6 @@ compile-test-assets as-if-foss: - .frontend:rules:compile-test-assets-as-if-foss - .as-if-foss -compile-test-assets as-if-jh: - extends: - - compile-test-assets - - .frontend:rules:compile-test-assets-as-if-jh - needs: ["add-jh-folder"] - update-assets-compile-production-cache: extends: - compile-production-assets @@ -144,24 +138,12 @@ rspec-all frontend_fixture: rspec-all frontend_fixture as-if-foss: extends: - .frontend-fixtures-base - - .frontend:rules:default-frontend-jobs-as-if-foss + - .frontend:rules:frontend_fixture-as-if-foss - .as-if-foss needs: - !reference [.frontend-fixtures-base, needs] - "compile-test-assets as-if-foss" -# Builds FOSS, EE, and JH fixtures in the EE project, with the `jh/` folder added (due to `as-if-jh`). -rspec-all frontend_fixture as-if-jh: - extends: - - .frontend-fixtures-base - - .frontend:rules:default-frontend-jobs-as-if-jh - needs: - - !reference [.frontend-fixtures-base, needs] - - "compile-test-assets as-if-jh" - - "add-jh-folder" - script: - - echo "This job is currently doing nothing since there's no specific JH fixtures yet. To enable this job, remove this line." - graphql-schema-dump: variables: SETUP_DB: "false" @@ -194,7 +176,10 @@ graphql-schema-dump as-if-foss: # 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" + USE_BUNDLE_INSTALL: "false" + SETUP_DB: "false" before_script: + - !reference [.default-before_script, before_script] - *yarn-install stage: test @@ -230,6 +215,17 @@ jest minimal: script: - run_timed_command "yarn jest:ci:minimal" +jest minimal as-if-foss: + extends: + - .jest-base + - .frontend:rules:jest:minimal:as-if-foss + - .as-if-foss + needs: + - "rspec-all frontend_fixture as-if-foss" + - "detect-tests" + script: + - run_timed_command "yarn jest:ci:minimal" + jest-integration: extends: - .frontend-test-base @@ -248,14 +244,6 @@ jest-as-if-foss: needs: ["rspec-all frontend_fixture as-if-foss"] parallel: 2 -jest-as-if-jh: - extends: - - .jest-base - - .frontend:rules:default-frontend-jobs-as-if-jh - needs: ["rspec-all frontend_fixture as-if-jh", "add-jh-folder"] - script: - - echo "This job is currently doing nothing since there's no specific JH Jest tests yet. To enable this job, remove this line." - coverage-frontend: extends: - .default-retry diff --git a/.gitlab/ci/qa.gitlab-ci.yml b/.gitlab/ci/qa.gitlab-ci.yml index 12275260c0..a71aac4225 100644 --- a/.gitlab/ci/qa.gitlab-ci.yml +++ b/.gitlab/ci/qa.gitlab-ci.yml @@ -1,5 +1,5 @@ .qa-job-base: - image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-ruby-2.7:bundler-2.3-git-2.33-chrome-${CHROME_VERSION} + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-ruby-2.7:bundler-2.3-chrome-103-docker-20.10.14 extends: - .default-retry - .qa-cache @@ -97,7 +97,7 @@ populate-qa-tests-var: - tooling/bin/find_change_diffs ${CHANGES_DIFFS_DIR} script: - 'echo "QA_TESTS: $QA_TESTS"' - - exit_code=0 && tooling/bin/qa/package_and_qa_check ${CHANGES_DIFFS_DIR} || exit_code=$? + - exit_code=0 && tooling/bin/qa/run_qa_check ${CHANGES_DIFFS_DIR} || exit_code=$? - echo $exit_code - | if [ $exit_code -eq 0 ]; then @@ -105,7 +105,7 @@ populate-qa-tests-var: elif [ $exit_code -eq 1 ]; then exit 1 else - echo "Downstream jobs will not be triggered because package_and_qa_check exited with code: $exit_code" + echo "Downstream jobs will not be triggered because run_qa_check exited with code: $exit_code" fi # These jobs often time out, so temporarily use private runners and a long timeout: https://gitlab.com/gitlab-org/gitlab/-/issues/238563 tags: diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml index 6fa9d14d47..50c86313d2 100644 --- a/.gitlab/ci/rails.gitlab-ci.yml +++ b/.gitlab/ci/rails.gitlab-ci.yml @@ -84,12 +84,6 @@ - .use-pg12 needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets as-if-foss", "detect-tests"] -.rspec-base-pg12-as-if-jh: - extends: - - .rspec-base - - .use-pg12 - needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets as-if-jh", "detect-tests", "add-jh-folder"] - .rspec-base-pg13: extends: - .rspec-base @@ -117,11 +111,6 @@ - .use-pg12-opensearch1-ee - .rails:rules:run-search-tests -.rspec-jh-base-pg12: - extends: - - .rspec-base-pg12-as-if-jh - - .use-pg12-ee - .rspec-ee-base-pg13: extends: - .rspec-base @@ -503,6 +492,12 @@ db:backup_and_restore: - "lib/backup/**/*" - "lib/tasks/gitlab/backup.rake" +db:backup_and_restore single-db: + extends: + - db:backup_and_restore + - .single-db + - .rails:rules:single-db + rspec:deprecations: extends: - .default-retry @@ -738,31 +733,6 @@ rspec system pg12-as-if-foss single-db: - .single-db-rspec - .rails:rules:single-db -rspec migration pg12-as-if-jh: - extends: - - .rspec-base-pg12-as-if-jh - - .rspec-base-migration - - .rails:rules:as-if-jh-rspec - - .rspec-migration-parallel - -rspec unit pg12-as-if-jh: - extends: - - .rspec-base-pg12-as-if-jh - - .rails:rules:as-if-jh-rspec - - .rspec-unit-parallel - -rspec integration pg12-as-if-jh: - extends: - - .rspec-base-pg12-as-if-jh - - .rails:rules:as-if-jh-rspec - - .rspec-integration-parallel - -rspec system pg12-as-if-jh: - extends: - - .rspec-base-pg12-as-if-jh - - .rails:rules:as-if-jh-rspec - - .rspec-system-parallel - rspec-ee migration pg12: extends: - .rspec-ee-base-pg12 @@ -866,52 +836,6 @@ rspec-ee system pg12 single-db: - .single-db-rspec - .rails:rules:single-db -rspec-ee migration pg12-as-if-jh: - extends: - - .rspec-jh-base-pg12 - - .rspec-base-migration - - .rails:rules:as-if-jh-rspec - - .rspec-ee-migration-parallel - -rspec-ee unit pg12-as-if-jh: - extends: - - .rspec-jh-base-pg12 - - .rails:rules:as-if-jh-rspec - - .rspec-ee-unit-parallel - -rspec-ee integration pg12-as-if-jh: - extends: - - .rspec-jh-base-pg12 - - .rails:rules:as-if-jh-rspec - - .rspec-ee-integration-parallel - -rspec-ee system pg12-as-if-jh: - extends: - - .rspec-jh-base-pg12 - - .rails:rules:as-if-jh-rspec - - .rspec-ee-system-parallel - -rspec-jh migration pg12-as-if-jh: - extends: - - .rspec-jh-base-pg12 - - .rspec-base-migration - - .rails:rules:as-if-jh-rspec - -rspec-jh unit pg12-as-if-jh: - extends: - - .rspec-jh-base-pg12 - - .rails:rules:as-if-jh-rspec - -rspec-jh integration pg12-as-if-jh: - extends: - - .rspec-jh-base-pg12 - - .rails:rules:as-if-jh-rspec - -rspec-jh system pg12-as-if-jh: - extends: - - .rspec-jh-base-pg12 - - .rails:rules:as-if-jh-rspec - db:rollback geo: extends: - db:rollback diff --git a/.gitlab/ci/reports.gitlab-ci.yml b/.gitlab/ci/reports.gitlab-ci.yml index 68c71b359c..52ed85190e 100644 --- a/.gitlab/ci/reports.gitlab-ci.yml +++ b/.gitlab/ci/reports.gitlab-ci.yml @@ -13,6 +13,8 @@ code_quality: artifacts: paths: - gl-code-quality-report.json # GitLab-specific + # extends generated values cannot overwrite values from included files + # Use !reference as a workaround here rules: !reference [".reports:rules:code_quality", rules] allow_failure: true diff --git a/.gitlab/ci/review-apps/main.gitlab-ci.yml b/.gitlab/ci/review-apps/main.gitlab-ci.yml index 7f3ae70da8..37ccecc056 100644 --- a/.gitlab/ci/review-apps/main.gitlab-ci.yml +++ b/.gitlab/ci/review-apps/main.gitlab-ci.yml @@ -14,7 +14,7 @@ include: .base-before_script: &base-before_script - source ./scripts/utils.sh - source ./scripts/review_apps/review-apps.sh - - install_api_client_dependencies_with_apk + - apt-get update && apt-get install -y jq review-build-cng-env: extends: @@ -72,8 +72,7 @@ review-build-cng: .review-workflow-base: extends: - .default-retry - image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:gitlab-helm3.5-kubectl1.17 - resource_group: "review/${CI_COMMIT_REF_NAME}" + image: ${REVIEW_APPS_IMAGE} variables: HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}" DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}" @@ -139,6 +138,7 @@ review-stop: extends: - .review-stop-base - .review:rules:review-stop + resource_group: review/${CI_COMMIT_REF_SLUG}${SCHEDULE_TYPE} # CI_ENVIRONMENT_SLUG is not available here and we want this to be the same as the environment stage: deploy needs: [] script: diff --git a/.gitlab/ci/review-apps/qa.gitlab-ci.yml b/.gitlab/ci/review-apps/qa.gitlab-ci.yml index 8c48e803ad..631fe7fef3 100644 --- a/.gitlab/ci/review-apps/qa.gitlab-ci.yml +++ b/.gitlab/ci/review-apps/qa.gitlab-ci.yml @@ -88,10 +88,8 @@ download-knapsack-report: - .bundle-base - .review:rules:review-qa-reliable stage: prepare - variables: - QA_KNAPSACK_REPORTS: review-qa-reliable,review-qa-all script: - - bundle exec rake "knapsack:download" + - bundle exec rake "knapsack:download[qa]" allow_failure: true artifacts: paths: diff --git a/.gitlab/ci/review-apps/skip-qa.gitlab-ci.yml b/.gitlab/ci/review-apps/skip-qa.gitlab-ci.yml new file mode 100644 index 0000000000..1305673a4d --- /dev/null +++ b/.gitlab/ci/review-apps/skip-qa.gitlab-ci.yml @@ -0,0 +1,13 @@ +stages: + - review + +include: + - local: .gitlab/ci/global.gitlab-ci.yml + - local: .gitlab/ci/rules.gitlab-ci.yml + +no-op: + extends: + - .review:rules:start-review-app-pipeline + stage: review + script: + - echo "Skip Review App because the MR includes only quarantine changes" diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml index b2cd9d61fd..4f51409d6a 100644 --- a/.gitlab/ci/review.gitlab-ci.yml +++ b/.gitlab/ci/review.gitlab-ci.yml @@ -5,7 +5,8 @@ review-cleanup: extends: - .default-retry - .review:rules:review-cleanup - image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/ruby-3.0:gcloud-383-kubectl-1.23-helm-3.5 + image: ${REVIEW_APPS_IMAGE} + resource_group: review/${CI_COMMIT_REF_SLUG}${SCHEDULE_TYPE} # CI_ENVIRONMENT_SLUG is not available here and we want this to be the same as the environment stage: prepare environment: name: review/${CI_COMMIT_REF_SLUG}${SCHEDULE_TYPE} # No separator for SCHEDULE_TYPE so it's compatible as before and looks nice without it @@ -22,11 +23,42 @@ review-cleanup: - ruby -rrubygems scripts/review_apps/automated_cleanup.rb - gcp_cleanup +review-app-pipeline-generate: + image: ${GITLAB_DEPENDENCY_PROXY}ruby:${RUBY_VERSION} + stage: prepare + extends: + - .review:rules:start-review-app-pipeline + artifacts: + expire_in: 7d + paths: + - ${CHANGES_DIFFS_DIR}/* + - review-app-pipeline.yml + variables: + CHANGES_DIFFS_DIR: tmp/diffs + before_script: + - source scripts/utils.sh + - install_gitlab_gem + - tooling/bin/find_change_diffs ${CHANGES_DIFFS_DIR} + script: + - exit_code=0 && tooling/bin/qa/run_qa_check ${CHANGES_DIFFS_DIR} || exit_code=$? + - | + if [ $exit_code -eq 0 ]; then + echo "Review App will use the full pipeline" + cp .gitlab/ci/review-apps/main.gitlab-ci.yml review-app-pipeline.yml + elif [ $exit_code -eq 2 ]; then + echo "Skip Review App because the MR includes only quarantine changes" + cp .gitlab/ci/review-apps/skip-qa.gitlab-ci.yml review-app-pipeline.yml + else + exit $exit_code + fi + start-review-app-pipeline: extends: - .review:rules:start-review-app-pipeline + resource_group: review/${CI_COMMIT_REF_SLUG}${SCHEDULE_TYPE} # CI_ENVIRONMENT_SLUG is not available here and we want this to be the same as the environment stage: review needs: + - review-app-pipeline-generate - job: build-assets-image artifacts: false # These variables are set in the pipeline schedules. @@ -37,7 +69,8 @@ start-review-app-pipeline: DAST_RUN: $DAST_RUN trigger: include: - - local: .gitlab/ci/review-apps/main.gitlab-ci.yml + - artifact: review-app-pipeline.yml + job: review-app-pipeline-generate strategy: depend danger-review: @@ -52,12 +85,13 @@ danger-review: - bundle_install_script "--with danger" - run_timed_command "retry yarn install --frozen-lockfile" script: + # ${DANGER_DANGERFILE} is used by Jihulab for customizing danger support: https://jihulab.com/gitlab-cn/gitlab/-/blob/main-jh/jh/.gitlab-ci.yml - > if [ -z "$DANGER_GITLAB_API_TOKEN" ]; then run_timed_command danger_as_local else danger_id=$(echo -n ${DANGER_GITLAB_API_TOKEN} | md5sum | awk '{print $1}' | cut -c5-10) - run_timed_command "bundle exec danger --fail-on-errors=true --verbose --danger_id=${danger_id}" + run_timed_command "bundle exec danger --fail-on-errors=true --verbose --danger_id=\"${danger_id}\" --dangerfile=\"${DANGER_DANGERFILE:-Dangerfile}\"" fi danger-review-local: @@ -70,6 +104,8 @@ danger-review-local: reviewers-recommender: extends: - .default-retry - - .review:rules:reviewers-recommender + # extends generated values cannot overwrite values from included files + # Use !reference as a workaround here + rules: !reference [".review:rules:reviewers-recommender", rules] stage: test needs: [] diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 93790f431d..fcb853a7bd 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -252,7 +252,7 @@ - "vendor/assets/**/*" - "{,ee/,jh/}app/assets/**/*" -.frontend-patterns: &frontend-patterns +.frontend-patterns-for-as-if-foss: &frontend-patterns-for-as-if-foss - "{package.json,yarn.lock}" - ".browserslistrc" - "babel.config.js" @@ -261,7 +261,7 @@ - "Dockerfile.assets" - "config/**/*.js" - "vendor/assets/**/*" - - "{,ee/,jh/}{app/assets,app/helpers,app/presenters,app/views,locale,public,symbol}/**/*" + - "{app/assets,app/helpers,app/presenters,app/views,locale,public,spec/frontend,symbol}/**/*" .controllers-patterns: &controllers-patterns - "{,ee/,jh/}{app/controllers}/**/*" @@ -369,7 +369,6 @@ - "Dockerfile.assets" - "vendor/assets/**/*" - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - - ".gitlab-ci.yml" - "*_VERSION" - "{,jh/}Gemfile{,.lock}" - "Rakefile" @@ -400,7 +399,6 @@ - "Dockerfile.assets" - "vendor/assets/**/*" - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - - ".gitlab-ci.yml" - "*_VERSION" - "{,jh/}Gemfile{,.lock}" - "Rakefile" @@ -526,17 +524,6 @@ - <<: *if-jh when: never -.as-if-jh-default-exclusion-rules: - rules: - - <<: *if-security-merge-request - when: never - - <<: *if-merge-request-targeting-stable-branch - when: never - - <<: *if-stable-branch-refs - when: never - - <<: *if-merge-request-labels-as-if-jh - allow_failure: true - .rails:rules:minimal-default-rules: rules: - <<: *if-merge-request-approved @@ -734,6 +721,7 @@ - <<: *if-merge-request-targeting-stable-branch - <<: *if-merge-request-labels-run-review-app - <<: *if-auto-deploy-branches + - changes: *ci-build-images-patterns - changes: *code-qa-patterns - changes: *workhorse-patterns @@ -753,18 +741,6 @@ - changes: *startup-css-patterns - changes: *workhorse-patterns -.frontend:rules:compile-test-assets-as-if-jh: - rules: - - !reference [".strict-ee-only-rules", rules] - - !reference [".as-if-jh-default-exclusion-rules", rules] - - <<: *if-merge-request-labels-run-all-rspec - allow_failure: true - - changes: *code-backstage-qa-patterns - allow_failure: true - - changes: *startup-css-patterns - allow_failure: true - - changes: *workhorse-patterns - .frontend:rules:default-frontend-jobs: rules: - <<: *if-merge-request-labels-run-all-rspec @@ -782,18 +758,11 @@ - <<: *if-merge-request changes: *ci-patterns -.frontend:rules:default-frontend-jobs-as-if-jh: +.frontend:rules:frontend_fixture-as-if-foss: rules: - !reference [".strict-ee-only-rules", rules] - - !reference [".as-if-jh-default-exclusion-rules", rules] - - <<: *if-merge-request-labels-run-all-rspec - allow_failure: true - - <<: *if-merge-request - changes: *startup-css-patterns - allow_failure: true - - <<: *if-merge-request - changes: *ci-patterns - allow_failure: true + - !reference [".frontend:rules:default-frontend-jobs-as-if-foss", rules] + - !reference [".frontend:rules:jest:minimal:as-if-foss", rules] .frontend:rules:jest: rules: @@ -828,12 +797,37 @@ - <<: *if-merge-request changes: *code-backstage-patterns +.frontend:rules:jest:minimal:as-if-foss: + rules: + - !reference [".strict-ee-only-rules", rules] + - <<: *if-security-merge-request + changes: *code-backstage-patterns + when: never + - <<: *if-merge-request-labels-as-if-foss + when: never + - <<: *if-merge-request-labels-run-all-jest + when: never + - <<: *if-merge-request-labels-run-all-rspec + when: never + - <<: *if-merge-request + changes: *startup-css-patterns + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-fork-merge-request + when: never + - <<: *if-merge-request + changes: *core-frontend-patterns + - <<: *if-merge-request + changes: *code-backstage-patterns + .frontend:rules:eslint-as-if-foss: rules: - !reference [".strict-ee-only-rules", rules] - <<: *if-merge-request-labels-as-if-foss - <<: *if-merge-request - changes: *frontend-patterns + changes: *frontend-patterns-for-as-if-foss .frontend:rules:ee-mr-and-default-branch-only: rules: @@ -1300,14 +1294,6 @@ - <<: *if-merge-request-labels-as-if-foss changes: *code-backstage-patterns -.rails:rules:as-if-jh-rspec: - rules: - - !reference [".strict-ee-only-rules", rules] - - !reference [".as-if-jh-default-exclusion-rules", rules] - - <<: *if-merge-request - changes: *ci-patterns - allow_failure: true - .rails:rules:ee-and-foss-db-library-code: rules: - changes: *db-library-patterns @@ -1481,13 +1467,24 @@ changes: ["vendor/gems/ipynbdiff/**/*"] - <<: *if-merge-request-labels-run-all-rspec +.vendor:rules:omniauth-azure-oauth2: + rules: + - <<: *if-merge-request + changes: ["vendor/gems/omniauth-azure-oauth2/**/*"] + - <<: *if-merge-request-labels-run-all-rspec + +.vendor:rules:omniauth-cas3: + rules: + - <<: *if-merge-request + changes: ["vendor/gems/omniauth-cas3/**/*"] + - <<: *if-merge-request-labels-run-all-rspec + .vendor:rules:omniauth_crowd: rules: - <<: *if-merge-request changes: ["vendor/gems/omniauth_crowd/**/*"] - <<: *if-merge-request-labels-run-all-rspec - .vendor:rules:omniauth-gitlab: rules: - <<: *if-merge-request @@ -1633,7 +1630,7 @@ - <<: *if-dot-com-gitlab-org-merge-request changes: *ci-review-patterns - <<: *if-dot-com-gitlab-org-merge-request - changes: *frontend-patterns + changes: *frontend-build-patterns - <<: *if-dot-com-gitlab-org-merge-request changes: *controllers-patterns - <<: *if-dot-com-gitlab-org-merge-request @@ -1813,19 +1810,6 @@ - ".gitlab/ci/test-metadata.gitlab-ci.yml" - "scripts/rspec_helpers.sh" -.setup:rules:add-jh-folder: - rules: - - !reference [".strict-ee-only-rules", rules] - - !reference [".as-if-jh-default-exclusion-rules", rules] - - <<: *if-merge-request-labels-run-all-rspec - allow_failure: true - - changes: *code-backstage-qa-patterns - allow_failure: true - - changes: *startup-css-patterns - allow_failure: true - - changes: *workhorse-patterns - allow_failure: true - ####################### # Test metadata rules # ####################### diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml index 2da397aaab..17113b1245 100644 --- a/.gitlab/ci/setup.gitlab-ci.yml +++ b/.gitlab/ci/setup.gitlab-ci.yml @@ -172,22 +172,3 @@ detect-previous-failed-tests: expire_in: 7d paths: - ${PREVIOUS_FAILED_TESTS_DIR} - -add-jh-folder: - extends: .setup:rules:add-jh-folder - image: ${GITLAB_DEPENDENCY_PROXY}ruby:${RUBY_VERSION} - stage: prepare - before_script: - - source ./scripts/utils.sh - - install_gitlab_gem - script: - - JH_BRANCH=$(./scripts/setup/find-jh-branch.rb) - - 'echo "JH_BRANCH: ${JH_BRANCH}"' - - curl --location -o "jh-folder.tar.gz" "https://gitlab.com/gitlab-org/gitlab-jh-mirrors/gitlab/-/archive/${JH_BRANCH}/gitlab-${JH_BRANCH}.tar.gz?path=jh" - - tar -xf "jh-folder.tar.gz" - - mv "gitlab-${JH_BRANCH}-jh/jh/" ./ - - ls -l jh/ - artifacts: - expire_in: 2d - paths: - - jh/ diff --git a/.gitlab/ci/vendored-gems.gitlab-ci.yml b/.gitlab/ci/vendored-gems.gitlab-ci.yml index 8596d770a8..4408a6e462 100644 --- a/.gitlab/ci/vendored-gems.gitlab-ci.yml +++ b/.gitlab/ci/vendored-gems.gitlab-ci.yml @@ -14,6 +14,22 @@ vendor ipynbdiff: include: vendor/gems/ipynbdiff/.gitlab-ci.yml strategy: depend +vendor omniauth-azure-oauth2: + extends: + - .vendor:rules:omniauth-azure-oauth2 + needs: [] + trigger: + include: vendor/gems/omniauth-azure-oauth2/.gitlab-ci.yml + strategy: depend + +vendor omniauth-cas3: + extends: + - .vendor:rules:omniauth-cas3 + needs: [] + trigger: + include: vendor/gems/omniauth-cas3/.gitlab-ci.yml + strategy: depend + vendor omniauth_crowd: extends: - .vendor:rules:omniauth_crowd 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 e1c5928b95..7ef5287aba 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 @@ -392,7 +392,7 @@ That's all of the required database changes. ``` - [ ] Update `REGISTRY_CLASSES` in `ee/app/workers/geo/secondary/registry_consistency_worker.rb`. -- [ ] Add a custom factory name if needed in `def model_class_factory_name` in `ee/spec/services/geo/registry_consistency_service_spec.rb`. +- [ ] Add a custom factory name if needed in `def model_class_factory_name` in `ee/spec/support/helpers/ee/geo_helpers.rb`. - [ ] Update `it 'creates missing registries for each registry class'` in `ee/spec/workers/geo/secondary/registry_consistency_worker_spec.rb`. - [ ] Add `cool_widget_registry` to `ActiveSupport::Inflector.inflections` in `config/initializers_before_autoloader/000_inflections.rb`. - [ ] Create `ee/spec/factories/geo/cool_widget_registry.rb`: @@ -539,11 +539,6 @@ Metrics are gathered by `Geo::MetricsUpdateWorker`, persisted in `GeoNodeStatus` - `geo_cool_widgets_verification_total` - `geo_cool_widgets_verified` - `geo_cool_widgets_verification_failed` -- [ ] Add the following to the parameterized table in the `context 'Replicator stats' do` block in `ee/spec/models/geo_node_status_spec.rb`: - - ```ruby - Geo::CoolWidgetReplicator | :cool_widget | :geo_cool_widget_registry - ``` Cool Widget replication and verification metrics should now be available in the API, the `Admin > Geo > Nodes` view, and Prometheus. 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 9158885262..17a4dd4bc3 100644 --- a/.gitlab/issue_templates/Geo Replicate a new blob type.md +++ b/.gitlab/issue_templates/Geo Replicate a new blob type.md @@ -358,7 +358,7 @@ That's all of the required database changes. ``` - [ ] Update `REGISTRY_CLASSES` in `ee/app/workers/geo/secondary/registry_consistency_worker.rb`. -- [ ] Add a custom factory name if needed in `def model_class_factory_name` in `ee/spec/services/geo/registry_consistency_service_spec.rb`. +- [ ] Add a custom factory name if needed in `def model_class_factory_name` in `ee/spec/support/helpers/ee/geo_helpers.rb`. - [ ] Update `it 'creates missing registries for each registry class'` in `ee/spec/workers/geo/secondary/registry_consistency_worker_spec.rb`. - [ ] Add `cool_widget_registry` to `ActiveSupport::Inflector.inflections` in `config/initializers_before_autoloader/000_inflections.rb`. - [ ] Create `ee/spec/factories/geo/cool_widget_registry.rb`: @@ -503,11 +503,6 @@ Metrics are gathered by `Geo::MetricsUpdateWorker`, persisted in `GeoNodeStatus` - `geo_cool_widgets_verification_total` - `geo_cool_widgets_verified` - `geo_cool_widgets_verification_failed` -- [ ] Add the following to the parameterized table in the `context 'Replicator stats' do` block in `ee/spec/models/geo_node_status_spec.rb`: - - ```ruby - Geo::CoolWidgetReplicator | :cool_widget | :geo_cool_widget_registry - ``` Cool Widget replication and verification metrics should now be available in the API, the `Admin > Geo > Nodes` view, and Prometheus. diff --git a/.gitlab/issue_templates/Implementation.md b/.gitlab/issue_templates/Implementation.md index f57bfae4da..e09f807d3d 100644 --- a/.gitlab/issue_templates/Implementation.md +++ b/.gitlab/issue_templates/Implementation.md @@ -37,13 +37,20 @@ Add details for required items and delete others. ## Implementation plan diff --git a/.gitlab/issue_templates/Navigation - Left Sidebar Proposals.md b/.gitlab/issue_templates/Navigation - Left Sidebar Proposals.md index e9e510da11..3939fca44f 100644 --- a/.gitlab/issue_templates/Navigation - Left Sidebar Proposals.md +++ b/.gitlab/issue_templates/Navigation - Left Sidebar Proposals.md @@ -6,7 +6,7 @@ ### Checklist -- [ ] If your proposal includes changes to the top-level menu items within the left sidebar, engage the [Foundations Product Design Manager](https://about.gitlab.com/handbook/product/categories/#foundations-group) for approval. The Foundations DRI will work with UX partners in product design, research, and technical writing, as applicable. +- [ ] If your proposal includes changes to the menu items within the left sidebar, engage the [Foundations Product Manager](https://about.gitlab.com/handbook/product/categories/#foundations-group) for approval. The Foundations DRI will work with UX partners in product design, research, and technical writing, as applicable. - [ ] Follow the [product development workflow](https://about.gitlab.com/handbook/product-development-flow/#validation-phase-2-problem-validation) validation process to ensure you are solving a well understood problem and that the proposed change is understandable and non-disruptive to users. Navigation-specific research is strongly encouraged. - [ ] Engage the [Foundations](https://about.gitlab.com/handbook/product/categories/#foundations-group) team to ensure your proposal is in alignment with holistic changes happening to the left side bar. - [ ] Consider whether you need to communicate the change somehow, or if you will have an interim period in the UI where your nav item will live in more than one place. diff --git a/.gitlab/issue_templates/OSS_Partner.md b/.gitlab/issue_templates/OSS_Partner.md deleted file mode 100644 index d9c05026e7..0000000000 --- a/.gitlab/issue_templates/OSS_Partner.md +++ /dev/null @@ -1,68 +0,0 @@ - - -## Background - - - -### Goals - - - -## Quick Facts - - - - * **Timeline.** - - * **Product.** - SaaS-Ultimate/Self-Managed-Ultimate or Community Edition - * **Project's License.** What kind of OSI-approved license does your project use? - -## Current Tooling and Replacements - - - -| Tool | Feature | GitLab feature | GitLab edition | -| --- | --- | --- | --- | -| | | | | - -## Collaborators - - - -## Related Issues - - - -### Blockers - * [ ] ADD_LINK_TO_ISSUE_HERE - -### Urgent - * [ ] - -### Important but not urgent - * [ ] - -### Nice to have - * [ ] - - ------- - -/label ~"Open Source Partners" -/cc @nuritzi @greg diff --git a/.gitlab/issue_templates/Performance Indicator Metric.md b/.gitlab/issue_templates/Performance Indicator Metric.md deleted file mode 100644 index 8019be8cad..0000000000 --- a/.gitlab/issue_templates/Performance Indicator Metric.md +++ /dev/null @@ -1,23 +0,0 @@ - - -## Summary - - - -## Tasks - -- [ ] [Link to metric definition]() -- [ ] Create issue in GitLab Data Team project using [Product Performance Indicator template](https://gitlab.com/gitlab-data/analytics/-/issues/new?issuable_template=Product%20Performance%20Indicator%20Template) - -See [Product Intelligence Guide](https://docs.gitlab.com/ee/development/service_ping/performance_indicator_metrics.html) for details - -/label ~"product intelligence" ~"Data Warehouse::Impact Check" diff --git a/.gitlab/issue_templates/Pipeline Authoring Issue Implementation.md b/.gitlab/issue_templates/Pipeline Authoring Issue Implementation.md index 4544e67525..523a50dfdf 100644 --- a/.gitlab/issue_templates/Pipeline Authoring Issue Implementation.md +++ b/.gitlab/issue_templates/Pipeline Authoring Issue Implementation.md @@ -12,6 +12,21 @@ ## Proposal +## Additional details + + +Some relevant technical details, if applicable, such as: + +- Does this need a ~"feature flag"? +- Is there an example response showing the data structure that should be returned (new endpoints only)? +- What permissions should be used? +- Is this EE or CE? + - [ ] EE + - [ ] CE +- Additional comments: + ## Implementation Table + -The [Product Intelligence group](https://about.gitlab.com/handbook/engineering/development/growth/product-intelligence/) runs manual reporting of ServicePing for GitLab.com on a weekly basis. This issue captures: +The [Product Intelligence group](https://about.gitlab.com/handbook/engineering/development/analytics/product-intelligence/) runs manual reporting of ServicePing for GitLab.com on a weekly basis. This issue: - Captures the work required to complete the reporting process,. - Captures the follow-up tasks that are focused on metrics performance verification. @@ -123,7 +123,7 @@ If you get mentioned, check the failing metric and open an optimization issue. /confidential -/label ~"group::product intelligence" ~"devops::growth" ~backend ~"section::growth" ~"Category:Service Ping" +/label ~"group::product intelligence" ~"devops::analytics" ~backend ~"section::analytics" ~"Category:Service Ping" /epic https://gitlab.com/groups/gitlab-org/-/epics/6000 /weight 5 /title Monitor and Generate GitLab.com Service Ping diff --git a/.gitlab/issue_templates/UX Theme.md b/.gitlab/issue_templates/UX Theme.md new file mode 100644 index 0000000000..043cb70535 --- /dev/null +++ b/.gitlab/issue_templates/UX Theme.md @@ -0,0 +1,77 @@ + + +### UX Theme + + +---- + +### Problem to solve + + + +### Beneficiary + + +- **[Direct beneficiary]** + +#### Need & Primary JTBD + + +- **JTBD:** +- **Need:** + +#### Expected outcome + + + +#### Business objective + + + +#### Confidence + + + +| Confidence | Research | +| --- | --- | +| [High/Medium/Low] | [research/insight issue](Link) | + + +### Subthemes & Requirements + + +#### Feature/solution subthemes + + +| Issue | UX Weight | +| ---------- | --------- | +| [Issue](link) | `0 - 10` | +| [Issue](link) | `0 - 10` | +| [Issue](link) | `0 - 10` | + +#### Research subthemes + + +| Issue | Research type | Research status | +| ---------- | --------- | --------- | +| [Issue]() | | | +| [Issue]() | | | + + +/label ~"UX" ~"UX Theme" diff --git a/.gitlab/merge_request_templates/Default.md b/.gitlab/merge_request_templates/Default.md index 90d3c37d6c..ecb8505e0d 100644 --- a/.gitlab/merge_request_templates/Default.md +++ b/.gitlab/merge_request_templates/Default.md @@ -8,23 +8,23 @@ that reviewers can understand your intent. Keeping the description updated is especially important if they didn't participate in the discussion. --> -## Screenshots or screen recordings +## Screenshots or screen recordings -_These are strongly recommended to assist reviewers and reduce the time to merge your change._ +_Screenshots are required for UI changes, and strongly recommended for all other merge requests._ - -## How to set up and validate locally +## How to set up and validate locally _Numbered steps to set up and validate the change are strongly suggested._ - @@ -178,16 +216,15 @@ export default { + diff --git a/app/assets/javascripts/issuable/issuable_template_selector.js b/app/assets/javascripts/issuable/issuable_template_selector.js index cce903d388..6b8f3de8d4 100644 --- a/app/assets/javascripts/issuable/issuable_template_selector.js +++ b/app/assets/javascripts/issuable/issuable_template_selector.js @@ -17,7 +17,15 @@ export default class IssuableTemplateSelector extends TemplateSelector { name: this.dropdown.data('selected'), }; - if (initialQuery.name) this.requestFile(initialQuery); + // Only use the default template if we don't have description data from autosave + if (!initialQuery.name && this.dropdown.data('default') && !this.editor.getValue().length) { + initialQuery.name = this.dropdown.data('default'); + } + + if (initialQuery.name) { + this.requestFile(initialQuery); + this.setToggleText(initialQuery.name); + } $('.reset-template', this.dropdown.parent()).on('click', () => { this.setInputValueToTemplateContent(); @@ -53,10 +61,14 @@ export default class IssuableTemplateSelector extends TemplateSelector { } this.setInputValueToTemplateContent(); - $('.dropdown-toggle-text', this.dropdown).text(__('Choose a template')); + this.setToggleText(__('Choose a template')); this.previousSelectedIndex = null; } + setToggleText(text) { + $('.dropdown-toggle-text', this.dropdown).text(text); + } + setSelectedIndex() { this.previousSelectedIndex = this.dropdown.data('deprecatedJQueryDropdown').selectedIndex; } diff --git a/app/assets/javascripts/issuable/popover/components/issue_popover.vue b/app/assets/javascripts/issuable/popover/components/issue_popover.vue index 0cafaa1e50..945a378264 100644 --- a/app/assets/javascripts/issuable/popover/components/issue_popover.vue +++ b/app/assets/javascripts/issuable/popover/components/issue_popover.vue @@ -1,14 +1,26 @@ + + diff --git a/app/assets/javascripts/issues/show/components/incidents/timeline_events_form.vue b/app/assets/javascripts/issues/show/components/incidents/timeline_events_form.vue index 36ec6362a2..0d84fabb1b 100644 --- a/app/assets/javascripts/issues/show/components/incidents/timeline_events_form.vue +++ b/app/assets/javascripts/issues/show/components/incidents/timeline_events_form.vue @@ -1,21 +1,12 @@