rspec unit pg13 single-db-ci-connection 5/28
Passed Started
by
@fabiopitino
Fabio Pitino
1 uses one of the allowed migration classes2 migration: #<struct ActiveRecord::MigrationProxy name="AddRunnerMachinesContactedAtIndex", version=20230109121313, filename="db/migrate/20230109121313_add_runner_machines_contacted_at_index.rb", scope="">3 uses one of the allowed migration classes4 migration: #<struct ActiveRecord::MigrationProxy name="RemovePushRulesApplicationSettingsPushRuleIdFk", version=20230109144915, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230109144915_remove_push_rules_application_settings_push_rule_id_fk.rb", scope="">5 uses one of the allowed migration classes6 migration: #<struct ActiveRecord::MigrationProxy name="RemoveUsersApplicationSettingsUsageStatsSetByUserIdFk", version=20230109144928, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230109144928_remove_users_application_settings_usage_stats_set_by_user_id_fk.rb", scope="">7 uses one of the allowed migration classes8 migration: #<struct ActiveRecord::MigrationProxy name="RemoveNamespacesApplicationSettingsInstanceAdministratorsGroupIdFk", version=20230109144941, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230109144941_remove_namespaces_application_settings_instance_administrators_group_id_fk.rb", scope="">9 uses one of the allowed migration classes10 migration: #<struct ActiveRecord::MigrationProxy name="RemoveProjectsApplicationSettingsFileTemplateProjectIdFk", version=20230109144953, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230109144953_remove_projects_application_settings_file_template_project_id_fk.rb", scope="">11 uses one of the allowed migration classes12 migration: #<struct ActiveRecord::MigrationProxy name="RemoveProjectsApplicationSettingsInstanceAdministrationProjectIdFk", version=20230109145005, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230109145005_remove_projects_application_settings_instance_administration_project_id_fk.rb", scope="">13 uses one of the allowed migration classes14 migration: #<struct ActiveRecord::MigrationProxy name="RemoveNamespacesApplicationSettingsCustomProjectTemplatesGroupIdFk", version=20230109145018, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230109145018_remove_namespaces_application_settings_custom_project_templates_group_id_fk.rb", scope="">15 uses one of the allowed migration classes16 migration: #<struct ActiveRecord::MigrationProxy name="AddStorageAdminControlColumnsToPlanLimits", version=20230109215921, filename="db/migrate/20230109215921_add_storage_admin_control_columns_to_plan_limits.rb", scope="">17 uses one of the allowed migration classes18 migration: #<struct ActiveRecord::MigrationProxy name="CreateWikiRepositoryStates", version=20230109232316, filename="db/migrate/20230109232316_create_wiki_repository_states.rb", scope="">19 uses one of the allowed migration classes20 migration: #<struct ActiveRecord::MigrationProxy name="AddUsesLegacyIidToTestReports", version=20230110031131, filename="db/migrate/20230110031131_add_uses_legacy_iid_to_test_reports.rb", scope="">21 uses one of the allowed migration classes22 migration: #<struct ActiveRecord::MigrationProxy name="AddPartialIndexOnGroupPathId", version=20230110172751, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230110172751_add_partial_index_on_group_path_id.rb", scope="">23 uses one of the allowed migration classes24 migration: #<struct ActiveRecord::MigrationProxy name="AddOnUpdateActionToPostgresForeignKeys", version=20230110212906, filename="db/migrate/20230110212906_add_on_update_action_to_postgres_foreign_keys.rb", scope="">25 uses one of the allowed migration classes26 migration: #<struct ActiveRecord::MigrationProxy name="AddMigrateProjectsToBulkImportEntities", version=20230111092510, filename="db/migrate/20230111092510_add_migrate_projects_to_bulk_import_entities.rb", scope="">27 uses one of the allowed migration classes28 migration: #<struct ActiveRecord::MigrationProxy name="RemoveTmpIndexVulnsOnReportType", version=20230111124512, filename="db/migrate/20230111124512_remove_tmp_index_vulns_on_report_type.rb", scope="">29 uses one of the allowed migration classes30 migration: #<struct ActiveRecord::MigrationProxy name="AddUserIdAndSourceIdAndSourceTypeAndMemberRoleIdIndexToMembers", version=20230111125148, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230111125148_add_user_id_and_source_id_and_source_type_and_member_role_id_index_to_members.rb", scope="">31 uses one of the allowed migration classes32 migration: #<struct ActiveRecord::MigrationProxy name="DropUserIdAndSourceIdAndSourceTypeIndexFromMembers", version=20230111125150, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230111125150_drop_user_id_and_source_id_and_source_type_index_from_members.rb", scope="">33 uses one of the allowed migration classes34 migration: #<struct ActiveRecord::MigrationProxy name="UnpartitionPmPackageMetadataTables", version=20230111132621, filename="db/migrate/20230111132621_unpartition_pm_package_metadata_tables.rb", scope="">35 uses one of the allowed migration classes36 migration: #<struct ActiveRecord::MigrationProxy name="AddAllowPossibleSpamToApplicationSettings", version=20230111171355, filename="db/migrate/20230111171355_add_allow_possible_spam_to_application_settings.rb", scope="">37 uses one of the allowed migration classes38 migration: #<struct ActiveRecord::MigrationProxy name="CreateAirflowDags", version=20230111174113, filename="db/migrate/20230111174113_create_airflow_dags.rb", scope="">39 uses one of the allowed migration classes40 migration: #<struct ActiveRecord::MigrationProxy name="AddUserIndexAndFkToSshSignatures", version=20230112014822, filename="db/migrate/20230112014822_add_user_index_and_fk_to_ssh_signatures.rb", scope="">41 uses one of the allowed migration classes42 migration: #<struct ActiveRecord::MigrationProxy name="AddNotNullConstraintToOAuthAccessTokensExpiresIn", version=20230112051854, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230112051854_add_not_null_constraint_to_o_auth_access_tokens_expires_in.rb", scope="">43 uses one of the allowed migration classes44 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexEnvironmentsOnProjectIdAndId", version=20230112085143, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230112085143_add_index_environments_on_project_id_and_id.rb", scope="">45 uses one of the allowed migration classes46 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpIndexToCiBuildRunnerSession", version=20230112104253, filename="db/migrate/20230112104253_add_tmp_index_to_ci_build_runner_session.rb", scope="">47 uses one of the allowed migration classes48 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpIndexToCiPendingBuild", version=20230112104526, filename="db/migrate/20230112104526_add_tmp_index_to_ci_pending_build.rb", scope="">49 uses one of the allowed migration classes50 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpIndexToCiRunningBuild", version=20230112104636, filename="db/migrate/20230112104636_add_tmp_index_to_ci_running_build.rb", scope="">51 uses one of the allowed migration classes52 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleVulnerabilitiesFeedbackMigration2", version=20230112141236, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230112141236_schedule_vulnerabilities_feedback_migration2.rb", scope="">53 uses one of the allowed migration classes54 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpIndexToCiBuildNeed", version=20230112144946, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230112144946_add_tmp_index_to_ci_build_need.rb", scope="">55 uses one of the allowed migration classes56 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpIndexToCiPipelineVariable", version=20230112145326, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230112145326_add_tmp_index_to_ci_pipeline_variable.rb", scope="">57 uses one of the allowed migration classes58 migration: #<struct ActiveRecord::MigrationProxy name="RemoveAtlassianRefreshTokenConstraint", version=20230113003255, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230113003255_remove_atlassian_refresh_token_constraint.rb", scope="">59 uses one of the allowed migration classes60 migration: #<struct ActiveRecord::MigrationProxy name="CreateNamespaceLdapSettings", version=20230113164245, filename="db/migrate/20230113164245_create_namespace_ldap_settings.rb", scope="">61 uses one of the allowed migration classes62 migration: #<struct ActiveRecord::MigrationProxy name="PackageMetadataSetDefaultNotNull", version=20230113195141, filename="db/migrate/20230113195141_package_metadata_set_default_not_null.rb", scope="">63 uses one of the allowed migration classes64 migration: #<struct ActiveRecord::MigrationProxy name="BackfillNamespaceLdapSettings", version=20230113201308, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230113201308_backfill_namespace_ldap_settings.rb", scope="">65 uses one of the allowed migration classes66 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexOnCiBuildTokenEncrypted", version=20230116083826, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230116083826_drop_index_on_ci_build_token_encrypted.rb", scope="">67 uses one of the allowed migration classes68 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexForGroupActivityEvents", version=20230116090630, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230116090630_add_index_for_group_activity_events.rb", scope="">69 uses one of the allowed migration classes70 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexForProjectActivityEvents", version=20230116090852, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230116090852_add_index_for_project_activity_events.rb", scope="">71 uses one of the allowed migration classes72 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToEventsOnGroupIdAndId", version=20230116090920, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230116090920_add_index_to_events_on_group_id_and_id.rb", scope="">73 uses one of the allowed migration classes74 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexForEventsFollowedUsers", version=20230116091626, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230116091626_add_index_for_events_followed_users.rb", scope="">75 uses one of the allowed migration classes76 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeTodoSanitization", version=20230116111252, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230116111252_finalize_todo_sanitization.rb", scope="">77 uses one of the allowed migration classes78 migration: #<struct ActiveRecord::MigrationProxy name="AddPagesUniqueDomainColumnsToProjectSettings", version=20230116143310, filename="db/migrate/20230116143310_add_pages_unique_domain_columns_to_project_settings.rb", scope="">79 uses one of the allowed migration classes80 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectSettingsPagesUniqueDomainLimit", version=20230116143311, filename="db/migrate/20230116143311_add_project_settings_pages_unique_domain_limit.rb", scope="">81 uses one of the allowed migration classes82 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectSettingsPagesUniqueDomainUniqueIndex", version=20230116143312, filename="db/migrate/20230116143312_add_project_settings_pages_unique_domain_unique_index.rb", scope="">83 uses one of the allowed migration classes84 migration: #<struct ActiveRecord::MigrationProxy name="RemoveUserDetailsFieldsFromUser", version=20230116160904, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230116160904_remove_user_details_fields_from_user.rb", scope="">85 uses one of the allowed migration classes86 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpIndexToCiBuildReportResults", version=20230117092947, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230117092947_add_tmp_index_to_ci_build_report_results.rb", scope="">87 uses one of the allowed migration classes88 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpIndexToCiBuildsOnPartitionId", version=20230117093222, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230117093222_add_tmp_index_to_ci_builds_on_partition_id.rb", scope="">89 uses one of the allowed migration classes90 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpIndexToCiPipelinesOnPartitionId", version=20230117093736, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230117093736_add_tmp_index_to_ci_pipelines_on_partition_id.rb", scope="">91 uses one of the allowed migration classes92 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpIndexToCiStagesOnPartitionId", version=20230117093924, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230117093924_add_tmp_index_to_ci_stages_on_partition_id.rb", scope="">93 uses one of the allowed migration classes94 migration: #<struct ActiveRecord::MigrationProxy name="PrepareTmpIndexToCiBuildTraceMetadata", version=20230117094111, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230117094111_prepare_tmp_index_to_ci_build_trace_metadata.rb", scope="">95 uses one of the allowed migration classes96 migration: #<struct ActiveRecord::MigrationProxy name="PrepareTmpIndexToCiJobArtifact", version=20230117094226, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230117094226_prepare_tmp_index_to_ci_job_artifact.rb", scope="">97 uses one of the allowed migration classes98 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpIndexToCiJobVariable", version=20230117094316, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230117094316_add_tmp_index_to_ci_job_variable.rb", scope="">99 uses one of the allowed migration classes100 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpIndexToCiSourcesPipelinesOnPartitionId", version=20230117113719, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230117113719_add_tmp_index_to_ci_sources_pipelines_on_partition_id.rb", scope="">101 uses one of the allowed migration classes102 migration: #<struct ActiveRecord::MigrationProxy name="ClearDuplicateJobsCookies", version=20230117114739, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230117114739_clear_duplicate_jobs_cookies.rb", scope="">103 uses one of the allowed migration classes104 migration: #<struct ActiveRecord::MigrationProxy name="AddTokenEncryptedAndPartitionIdIndexToCiBuild", version=20230117145628, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230117145628_add_token_encrypted_and_partition_id_index_to_ci_build.rb", scope="">105 uses one of the allowed migration classes106 migration: #<struct ActiveRecord::MigrationProxy name="CreateProjectDataTransfer", version=20230117173433, filename="db/migrate/20230117173433_create_project_data_transfer.rb", scope="">107 uses one of the allowed migration classes108 migration: #<struct ActiveRecord::MigrationProxy name="RedefineForeignKeyOnCiUnitTestFailure", version=20230118083437, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230118083437_redefine_foreign_key_on_ci_unit_test_failure.rb", scope="">109 uses one of the allowed migration classes110 migration: #<struct ActiveRecord::MigrationProxy name="RedefineForeignKeyOnCiBuildPendingState", version=20230118083632, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230118083632_redefine_foreign_key_on_ci_build_pending_state.rb", scope="">111 uses one of the allowed migration classes112 migration: #<struct ActiveRecord::MigrationProxy name="RedefineForeignKeyOnCiBuildTraceChunk", version=20230118083748, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230118083748_redefine_foreign_key_on_ci_build_trace_chunk.rb", scope="">113 uses one of the allowed migration classes114 migration: #<struct ActiveRecord::MigrationProxy name="AddServiceDeskCustomEmailVerifications", version=20230118135145, filename="db/migrate/20230118135145_add_service_desk_custom_email_verifications.rb", scope="">115 uses one of the allowed migration classes116 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleMigrationForRemediation", version=20230118144623, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230118144623_schedule_migration_for_remediation.rb", scope="">117 uses one of the allowed migration classes118 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToCiRunningBuild", version=20230119085509, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119085509_add_index_to_ci_running_build.rb", scope="">119 uses one of the allowed migration classes120 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyToCiRunningBuild", version=20230119085552, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119085552_add_foreign_key_to_ci_running_build.rb", scope="">121 uses one of the allowed migration classes122 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToCiPendingBuild", version=20230119090944, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119090944_add_index_to_ci_pending_build.rb", scope="">123 uses one of the allowed migration classes124 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyToCiPendingBuild", version=20230119091027, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119091027_add_foreign_key_to_ci_pending_build.rb", scope="">125 uses one of the allowed migration classes126 migration: #<struct ActiveRecord::MigrationProxy name="AddFkIndexToCiBuildsRunnerSessionOnPartitionIdAndBuildId", version=20230119095022, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119095022_add_fk_index_to_ci_builds_runner_session_on_partition_id_and_build_id.rb", scope="">127 uses one of the allowed migration classes128 migration: #<struct ActiveRecord::MigrationProxy name="AddFkToCiBuildsRunnerSessionOnPartitionIdAndBuildId", version=20230119095023, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119095023_add_fk_to_ci_builds_runner_session_on_partition_id_and_build_id.rb", scope="">129 uses one of the allowed migration classes130 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkOnCiBuildsRunnerSessionPartitionIdAndBuildId", version=20230119095024, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119095024_validate_fk_on_ci_builds_runner_session_partition_id_and_build_id.rb", scope="">131 uses one of the allowed migration classes132 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildsCiBuildsRunnerSessionOnBuildId", version=20230119095025, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119095025_remove_fk_to_ci_builds_ci_builds_runner_session_on_build_id.rb", scope="">133 uses one of the allowed migration classes134 migration: #<struct ActiveRecord::MigrationProxy name="AddFkIndexToCiResourcesOnPartitionIdAndBuildId", version=20230119123256, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119123256_add_fk_index_to_ci_resources_on_partition_id_and_build_id.rb", scope="">135 uses one of the allowed migration classes136 migration: #<struct ActiveRecord::MigrationProxy name="AddFkToCiResourcesOnPartitionIdAndBuildId", version=20230119123257, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119123257_add_fk_to_ci_resources_on_partition_id_and_build_id.rb", scope="">137 uses one of the allowed migration classes138 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkOnCiResourcesPartitionIdAndBuildId", version=20230119123258, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119123258_validate_fk_on_ci_resources_partition_id_and_build_id.rb", scope="">139 uses one of the allowed migration classes140 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildsCiResourcesOnBuildId", version=20230119123259, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119123259_remove_fk_to_ci_builds_ci_resources_on_build_id.rb", scope="">141 uses one of the allowed migration classes142 migration: #<struct ActiveRecord::MigrationProxy name="AddTemporarySizeIndexToPackageFiles", version=20230119123908, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119123908_add_temporary_size_index_to_package_files.rb", scope="">143 uses one of the allowed migration classes144 migration: #<struct ActiveRecord::MigrationProxy name="QueueFixIncoherentPackagesSizeOnProjectStatistics", version=20230119123937, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230119123937_queue_fix_incoherent_packages_size_on_project_statistics.rb", scope="">145 uses one of the allowed migration classes146 migration: #<struct ActiveRecord::MigrationProxy name="AddSearchCurationSettingsToApplicationSettings", version=20230119150727, filename="db/migrate/20230119150727_add_search_curation_settings_to_application_settings.rb", scope="">147 uses one of the allowed migration classes148 migration: #<struct ActiveRecord::MigrationProxy name="AddUrlHashToWebHookLogs", version=20230119151636, filename="db/migrate/20230119151636_add_url_hash_to_web_hook_logs.rb", scope="">149 uses one of the allowed migration classes150 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToWebHookLogsUrlHash", version=20230119151940, filename="db/migrate/20230119151940_add_text_limit_to_web_hook_logs_url_hash.rb", scope="">151 uses one of the allowed migration classes152 migration: #<struct ActiveRecord::MigrationProxy name="AddDeactivationEmailAdditionalTextToApplicationSettings", version=20230119214643, filename="db/migrate/20230119214643_add_deactivation_email_additional_text_to_application_settings.rb", scope="">153 uses one of the allowed migration classes154 migration: #<struct ActiveRecord::MigrationProxy name="AddPackageMetadataCheckpoints", version=20230119215436, filename="db/migrate/20230119215436_add_package_metadata_checkpoints.rb", scope="">155 uses one of the allowed migration classes156 migration: #<struct ActiveRecord::MigrationProxy name="ReAddWebHookCallsColumn", version=20230120170042, filename="db/migrate/20230120170042_re_add_web_hook_calls_column.rb", scope="">157 uses one of the allowed migration classes158 migration: #<struct ActiveRecord::MigrationProxy name="DropSyncTriggersFromWebHookCallsPlanLimits", version=20230120170631, filename="db/migrate/20230120170631_drop_sync_triggers_from_web_hook_calls_plan_limits.rb", scope="">159 uses one of the allowed migration classes160 migration: #<struct ActiveRecord::MigrationProxy name="SyncPlanLimitsWebHookCallsColumns", version=20230120171818, filename="db/migrate/20230120171818_sync_plan_limits_web_hook_calls_columns.rb", scope="">161 uses one of the allowed migration classes162 migration: #<struct ActiveRecord::MigrationProxy name="CreateScanResultPolicies", version=20230123095022, filename="db/migrate/20230123095022_create_scan_result_policies.rb", scope="">163 uses one of the allowed migration classes164 migration: #<struct ActiveRecord::MigrationProxy name="AddScanResultPolicyIdToSoftwareLicensePolicies", version=20230123095023, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230123095023_add_scan_result_policy_id_to_software_license_policies.rb", scope="">165 uses one of the allowed migration classes166 migration: #<struct ActiveRecord::MigrationProxy name="AddDatetimeFieldsToBulkImportTrackers", version=20230123120004, filename="db/migrate/20230123120004_add_datetime_fields_to_bulk_import_trackers.rb", scope="">167 uses one of the allowed migration classes168 migration: #<struct ActiveRecord::MigrationProxy name="AddDeactivationEmailAdditionalTextToApplicationSettingsTextLimits", version=20230123150648, filename="db/migrate/20230123150648_add_deactivation_email_additional_text_to_application_settings_text_limits.rb", scope="">169 uses one of the allowed migration classes170 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildsCiUnitTestFailureOnBuildId", version=20230124101832, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230124101832_remove_fk_to_ci_builds_ci_unit_test_failure_on_build_id.rb", scope="">171 uses one of the allowed migration classes172 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildsCiBuildPendingStateOnBuildId", version=20230124102131, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230124102131_remove_fk_to_ci_builds_ci_build_pending_state_on_build_id.rb", scope="">173 uses one of the allowed migration classes174 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildsCiBuildTraceChunkOnBuildId", version=20230124102222, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230124102222_remove_fk_to_ci_builds_ci_build_trace_chunk_on_build_id.rb", scope="">175 uses one of the allowed migration classes176 migration: #<struct ActiveRecord::MigrationProxy name="PrepareWebHookLogsIdCreatedAtAsyncIndex", version=20230124104310, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230124104310_prepare_web_hook_logs_id_created_at_async_index.rb", scope="">177 uses one of the allowed migration classes178 migration: #<struct ActiveRecord::MigrationProxy name="AddDeployKeyIdToCreateAccessLevels", version=20230124122143, filename="db/migrate/20230124122143_add_deploy_key_id_to_create_access_levels.rb", scope="">179 uses one of the allowed migration classes180 migration: #<struct ActiveRecord::MigrationProxy name="RaiseGroupAndProjectCiVariableLimits", version=20230124173255, filename="db/migrate/20230124173255_raise_group_and_project_ci_variable_limits.rb", scope="">181 uses one of the allowed migration classes182 migration: #<struct ActiveRecord::MigrationProxy name="AddChecksumsColumnToProjectMirrorData", version=20230124183643, filename="db/migrate/20230124183643_add_checksums_column_to_project_mirror_data.rb", scope="">183 uses one of the allowed migration classes184 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexForProtectedTagCreateAccessLevels", version=20230124193917, filename="db/migrate/20230124193917_add_index_for_protected_tag_create_access_levels.rb", scope="">185 uses one of the allowed migration classes186 migration: #<struct ActiveRecord::MigrationProxy name="AddPreparedAtToMergeRequest", version=20230125090315, filename="db/migrate/20230125090315_add_prepared_at_to_merge_request.rb", scope="">187 uses one of the allowed migration classes188 migration: #<struct ActiveRecord::MigrationProxy name="RebalancePartitionIdCiPipeline", version=20230125093723, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230125093723_rebalance_partition_id_ci_pipeline.rb", scope="">189 uses one of the allowed migration classes190 migration: #<struct ActiveRecord::MigrationProxy name="RebalancePartitionIdCiBuild", version=20230125093840, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230125093840_rebalance_partition_id_ci_build.rb", scope="">191 uses one of the allowed migration classes192 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillComplianceViolations", version=20230125195503, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230125195503_queue_backfill_compliance_violations.rb", scope="">193 uses one of the allowed migration classes194 migration: #<struct ActiveRecord::MigrationProxy name="AddTimestampsToPackageMetadataTables", version=20230126023444, filename="db/migrate/20230126023444_add_timestamps_to_package_metadata_tables.rb", scope="">195 uses one of the allowed migration classes196 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueIndexToCiBuildPendingState", version=20230126091522, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230126091522_add_unique_index_to_ci_build_pending_state.rb", scope="">197 uses one of the allowed migration classes198 migration: #<struct ActiveRecord::MigrationProxy name="AddPartitionIndexToWebHookLogs", version=20230126101907, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230126101907_add_partition_index_to_web_hook_logs.rb", scope="">199 uses one of the allowed migration classes200 migration: #<struct ActiveRecord::MigrationProxy name="ChangeDefaultValueForInboundJobTokenScopeEnabled", version=20230126110439, filename="db/migrate/20230126110439_change_default_value_for_inbound_job_token_scope_enabled.rb", scope="">201 uses one of the allowed migration classes202 migration: #<struct ActiveRecord::MigrationProxy name="RemoveNotNullConstraintsForTablesWithSchemaDifferencesV3", version=20230126133531, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230126133531_remove_not_null_constraints_for_tables_with_schema_differences_v3.rb", scope="">203 uses one of the allowed migration classes204 migration: #<struct ActiveRecord::MigrationProxy name="AddCiTriggersEncryptedToken", version=20230126151622, filename="db/migrate/20230126151622_add_ci_triggers_encrypted_token.rb", scope="">205 uses one of the allowed migration classes206 migration: #<struct ActiveRecord::MigrationProxy name="AddJiraConnectPublicKeyStorageEnabledSetting", version=20230126210436, filename="db/migrate/20230126210436_add_jira_connect_public_key_storage_enabled_setting.rb", scope="">207 uses one of the allowed migration classes208 migration: #<struct ActiveRecord::MigrationProxy name="AddDatabaseApdexSettingsToApplicationSettings", version=20230127024835, filename="db/migrate/20230127024835_add_database_apdex_settings_to_application_settings.rb", scope="">209 uses one of the allowed migration classes210 migration: #<struct ActiveRecord::MigrationProxy name="AddDenyAllOutgoingRequestsToApplicationSettings", version=20230127030015, filename="db/migrate/20230127030015_add_deny_all_outgoing_requests_to_application_settings.rb", scope="">211 uses one of the allowed migration classes212 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfMergeRequestMetricsToBigint", version=20230127093353, filename="db/migrate/20230127093353_initialize_conversion_of_merge_request_metrics_to_bigint.rb", scope="">213 uses one of the allowed migration classes214 migration: #<struct ActiveRecord::MigrationProxy name="BackfillMergeRequestMetricsForBigintConversion", version=20230127101834, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230127101834_backfill_merge_request_metrics_for_bigint_conversion.rb", scope="">215 uses one of the allowed migration classes216 migration: #<struct ActiveRecord::MigrationProxy name="AddHostedPlanIdAndTrialIndexToGitlabSubscriptions", version=20230127115607, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230127115607_add_hosted_plan_id_and_trial_index_to_gitlab_subscriptions.rb", scope="">217 uses one of the allowed migration classes218 migration: #<struct ActiveRecord::MigrationProxy name="AddGitRateLimitUsersAlertlistToApplicationSettings", version=20230127121107, filename="db/migrate/20230127121107_add_git_rate_limit_users_alertlist_to_application_settings.rb", scope="">219 uses one of the allowed migration classes220 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueProjectDownloadLimitAlertlistToNamespaceSettings", version=20230127121443, filename="db/migrate/20230127121443_add_unique_project_download_limit_alertlist_to_namespace_settings.rb", scope="">221 uses one of the allowed migration classes222 migration: #<struct ActiveRecord::MigrationProxy name="AddFkIndexToCiSourcesPipelinesOnSourcePartitionIdAndSourceJobId", version=20230127123947, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230127123947_add_fk_index_to_ci_sources_pipelines_on_source_partition_id_and_source_job_id.rb", scope="">223 uses one of the allowed migration classes224 migration: #<struct ActiveRecord::MigrationProxy name="AddFkToCiSourcesPipelinesOnSourcePartitionIdAndSourceJobId", version=20230127123948, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230127123948_add_fk_to_ci_sources_pipelines_on_source_partition_id_and_source_job_id.rb", scope="">225 uses one of the allowed migration classes226 migration: #<struct ActiveRecord::MigrationProxy name="RemoveHostedPlanIdIndexFromGitlabSubscriptions", version=20230127125018, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230127125018_remove_hosted_plan_id_index_from_gitlab_subscriptions.rb", scope="">227 uses one of the allowed migration classes228 migration: #<struct ActiveRecord::MigrationProxy name="AddApplicationSettingsGitUsersAlertlistMaxUsernamesConstraint", version=20230127131835, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230127131835_add_application_settings_git_users_alertlist_max_usernames_constraint.rb", scope="">229 uses one of the allowed migration classes230 migration: #<struct ActiveRecord::MigrationProxy name="AddNamespaceSettingsUniqueProjectDownloadLimitAlertlistSizeConstraint", version=20230127131915, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230127131915_add_namespace_settings_unique_project_download_limit_alertlist_size_constraint.rb", scope="">231 uses one of the allowed migration classes232 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectPointerForAnalyticsDashboard", version=20230127151529, filename="db/migrate/20230127151529_add_project_pointer_for_analytics_dashboard.rb", scope="">233 uses one of the allowed migration classes234 migration: #<struct ActiveRecord::MigrationProxy name="MigrateProjectPointerForAnalyticsDashboard", version=20230127151530, filename="db/migrate/20230127151530_migrate_project_pointer_for_analytics_dashboard.rb", scope="">235 uses one of the allowed migration classes236 migration: #<struct ActiveRecord::MigrationProxy name="ChangeDashboardAnalyticsProjectPointerProjectNull", version=20230127151531, filename="db/migrate/20230127151531_change_dashboard_analytics_project_pointer_project_null.rb", scope="">237 uses one of the allowed migration classes238 migration: #<struct ActiveRecord::MigrationProxy name="AddFkIndexToCiBuildTraceMetadataOnPartitionIdAndBuildId", version=20230127151606, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230127151606_add_fk_index_to_ci_build_trace_metadata_on_partition_id_and_build_id.rb", scope="">239 uses one of the allowed migration classes240 migration: #<struct ActiveRecord::MigrationProxy name="AddFkToCiBuildTraceMetadataOnPartitionIdAndBuildId", version=20230127151607, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230127151607_add_fk_to_ci_build_trace_metadata_on_partition_id_and_build_id.rb", scope="">241 uses one of the allowed migration classes242 migration: #<struct ActiveRecord::MigrationProxy name="AddFkIndexToCiJobArtifactsOnPartitionIdAndJobId", version=20230127152727, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230127152727_add_fk_index_to_ci_job_artifacts_on_partition_id_and_job_id.rb", scope="">243 uses one of the allowed migration classes244 migration: #<struct ActiveRecord::MigrationProxy name="AddFkToCiJobArtifactsOnPartitionIdAndJobId", version=20230127152728, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230127152728_add_fk_to_ci_job_artifacts_on_partition_id_and_job_id.rb", scope="">245 uses one of the allowed migration classes246 migration: #<struct ActiveRecord::MigrationProxy name="AddFkIndexToCiJobVariablesOnPartitionIdAndJobId", version=20230127153229, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230127153229_add_fk_index_to_ci_job_variables_on_partition_id_and_job_id.rb", scope="">247 uses one of the allowed migration classes248 migration: #<struct ActiveRecord::MigrationProxy name="AddFkToCiJobVariablesOnPartitionIdAndJobId", version=20230127153230, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230127153230_add_fk_to_ci_job_variables_on_partition_id_and_job_id.rb", scope="">249 uses one of the allowed migration classes250 migration: #<struct ActiveRecord::MigrationProxy name="AddIdColumnToPackageMetadataJoinTable", version=20230127155217, filename="db/migrate/20230127155217_add_id_column_to_package_metadata_join_table.rb", scope="">251 uses one of the allowed migration classes252 migration: #<struct ActiveRecord::MigrationProxy name="AddTrialDateIndexToGitlabSubscribtions", version=20230127164007, filename="db/migrate/20230127164007_add_trial_date_index_to_gitlab_subscribtions.rb", scope="">253 uses one of the allowed migration classes254 migration: #<struct ActiveRecord::MigrationProxy name="AddWidgetDefinitions", version=20230129094140, filename="db/migrate/20230129094140_add_widget_definitions.rb", scope="">255 uses one of the allowed migration classes256 migration: #<struct ActiveRecord::MigrationProxy name="AddWidgetDefNamespaceFk", version=20230129154126, filename="db/migrate/20230129154126_add_widget_def_namespace_fk.rb", scope="">257 uses one of the allowed migration classes258 migration: #<struct ActiveRecord::MigrationProxy name="AddWidgetDefWorkItemTypeFk", version=20230129154202, filename="db/migrate/20230129154202_add_widget_def_work_item_type_fk.rb", scope="">259 uses one of the allowed migration classes260 migration: #<struct ActiveRecord::MigrationProxy name="AddWidgetsForWorkItemTypes", version=20230129154819, filename="db/migrate/20230129154819_add_widgets_for_work_item_types.rb", scope="">261 uses one of the allowed migration classes262 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnPackagesPackageFileFileName", version=20230130070623, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230130070623_add_index_on_packages_package_file_file_name.rb", scope="">263 uses one of the allowed migration classes264 migration: #<struct ActiveRecord::MigrationProxy name="NullifyCreatorIdOfOrphanedProjects", version=20230130073109, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230130073109_nullify_creator_id_of_orphaned_projects.rb", scope="">265 uses one of the allowed migration classes266 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleTmpIndexToCiBuildReportResults", version=20230130075434, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230130075434_schedule_tmp_index_to_ci_build_report_results.rb", scope="">267 uses one of the allowed migration classes268 migration: #<struct ActiveRecord::MigrationProxy name="DropInvalidAsyncIndexFromPostgresAsyncIndex", version=20230130084718, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230130084718_drop_invalid_async_index_from_postgres_async_index.rb", scope="">269 uses one of the allowed migration classes270 migration: #<struct ActiveRecord::MigrationProxy name="AddFkIndexToCiBuildReportResultsOnPartitionIdAndBuildId", version=20230130102855, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230130102855_add_fk_index_to_ci_build_report_results_on_partition_id_and_build_id.rb", scope="">271 uses one of the allowed migration classes272 migration: #<struct ActiveRecord::MigrationProxy name="AddFkToCiBuildReportResultsOnPartitionIdAndBuildId", version=20230130102856, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230130102856_add_fk_to_ci_build_report_results_on_partition_id_and_build_id.rb", scope="">273 uses one of the allowed migration classes274 migration: #<struct ActiveRecord::MigrationProxy name="AddFkIndexToCiBuildNeedsOnPartitionIdAndBuildId", version=20230130103957, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230130103957_add_fk_index_to_ci_build_needs_on_partition_id_and_build_id.rb", scope="">275 uses one of the allowed migration classes276 migration: #<struct ActiveRecord::MigrationProxy name="AddFkToCiBuildNeedsOnPartitionIdAndBuildId", version=20230130103958, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230130103958_add_fk_to_ci_build_needs_on_partition_id_and_build_id.rb", scope="">277 uses one of the allowed migration classes278 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfCiBuildNeedsToBigint", version=20230130104819, filename="db/migrate/20230130104819_initialize_conversion_of_ci_build_needs_to_bigint.rb", scope="">279 uses one of the allowed migration classes280 migration: #<struct ActiveRecord::MigrationProxy name="BackfillCiBuildNeedsForBigIntConversion", version=20230130110855, filename="db/migrate/20230130110855_backfill_ci_build_needs_for_big_int_conversion.rb", scope="">281 uses one of the allowed migration classes282 migration: #<struct ActiveRecord::MigrationProxy name="AddAttemptsAndLastErrorToPostgresAsyncIndexes", version=20230130125541, filename="db/migrate/20230130125541_add_attempts_and_last_error_to_postgres_async_indexes.rb", scope="">283 uses one of the allowed migration classes284 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToPostgresAsyncIndexesLastError", version=20230130130624, filename="db/migrate/20230130130624_add_text_limit_to_postgres_async_indexes_last_error.rb", scope="">285 uses one of the allowed migration classes286 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfSentNotificationsToBigint", version=20230130175512, filename="db/migrate/20230130175512_initialize_conversion_of_sent_notifications_to_bigint.rb", scope="">287 uses one of the allowed migration classes288 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleCreateVulnerabilityLinksMigration", version=20230130182412, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230130182412_schedule_create_vulnerability_links_migration.rb", scope="">289 uses one of the allowed migration classes290 migration: #<struct ActiveRecord::MigrationProxy name="BackfillSentNotificationsForBigintConversion", version=20230130202201, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230130202201_backfill_sent_notifications_for_bigint_conversion.rb", scope="">291 uses one of the allowed migration classes292 migration: #<struct ActiveRecord::MigrationProxy name="RemoveProtectedEnvironmentDefaultAccessLevel", version=20230130204743, filename="db/migrate/20230130204743_remove_protected_environment_default_access_level.rb", scope="">293 uses one of the allowed migration classes294 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfNotesIdToBigint", version=20230131004948, filename="db/migrate/20230131004948_initialize_conversion_of_notes_id_to_bigint.rb", scope="">295 uses one of the allowed migration classes296 migration: #<struct ActiveRecord::MigrationProxy name="BackfillNotesIdForBigintConversion", version=20230131005411, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230131005411_backfill_notes_id_for_bigint_conversion.rb", scope="">297 uses one of the allowed migration classes298 migration: #<struct ActiveRecord::MigrationProxy name="AddGlobalGroupApproversEnabledToApplicationSettings", version=20230131090842, filename="db/migrate/20230131090842_add_global_group_approvers_enabled_to_application_settings.rb", scope="">299 uses one of the allowed migration classes300 migration: #<struct ActiveRecord::MigrationProxy name="RaiseCiVariablesDefaultLimits", version=20230131123923, filename="db/migrate/20230131123923_raise_ci_variables_default_limits.rb", scope="">301 uses one of the allowed migration classes302 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectIdNameIdVersionIndexToInstallableNpmPackages", version=20230131125844, filename="db/migrate/20230131125844_add_project_id_name_id_version_index_to_installable_npm_packages.rb", scope="">303 uses one of the allowed migration classes304 migration: #<struct ActiveRecord::MigrationProxy name="UpdateBillableUsersIndexForServiceAccounts", version=20230131184319, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230131184319_update_billable_users_index_for_service_accounts.rb", scope="">305 uses one of the allowed migration classes306 migration: #<struct ActiveRecord::MigrationProxy name="RemoveInvalidDeployAccessLevel", version=20230131194959, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230131194959_remove_invalid_deploy_access_level.rb", scope="">307 uses one of the allowed migration classes308 migration: #<struct ActiveRecord::MigrationProxy name="PrepareIndexForVulnerabilityReadsOnProjectIdScannerIdVulnerabilityId", version=20230131210921, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230131210921_prepare_index_for_vulnerability_reads_on_project_id_scanner_id_vulnerability_id.rb", scope="">309 uses one of the allowed migration classes310 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfTodosNoteIdToBigint", version=20230201012727, filename="db/migrate/20230201012727_initialize_conversion_of_todos_note_id_to_bigint.rb", scope="">311 uses one of the allowed migration classes312 migration: #<struct ActiveRecord::MigrationProxy name="BackfillTodosNoteIdForBigintConversion", version=20230201012846, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230201012846_backfill_todos_note_id_for_bigint_conversion.rb", scope="">313 uses one of the allowed migration classes314 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfSystemNoteMetadataNoteIdToBigint", version=20230201014223, filename="db/migrate/20230201014223_initialize_conversion_of_system_note_metadata_note_id_to_bigint.rb", scope="">315 uses one of the allowed migration classes316 migration: #<struct ActiveRecord::MigrationProxy name="BackfillSystemNoteMetadataNoteIdForBigintConversion", version=20230201014238, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230201014238_backfill_system_note_metadata_note_id_for_bigint_conversion.rb", scope="">317 uses one of the allowed migration classes318 migration: #<struct ActiveRecord::MigrationProxy name="DropWebHookCallsHighColumn", version=20230201082038, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230201082038_drop_web_hook_calls_high_column.rb", scope="">319 uses one of the allowed migration classes320 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleFkIndexToCiBuildNeedsOnPartitionIdAndBuildId", version=20230201152525, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230201152525_schedule_fk_index_to_ci_build_needs_on_partition_id_and_build_id.rb", scope="">321 uses one of the allowed migration classes322 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnLfsObjectsFile", version=20230201153450, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230201153450_add_index_on_lfs_objects_file.rb", scope="">323 uses one of the allowed migration classes324 migration: #<struct ActiveRecord::MigrationProxy name="CreateContainerRepositoryStates", version=20230201165656, filename="db/migrate/20230201165656_create_container_repository_states.rb", scope="">325 uses one of the allowed migration classes326 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeBackfillEnvironmentTierMigration", version=20230201171450, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230201171450_finalize_backfill_environment_tier_migration.rb", scope="">327 uses one of the allowed migration classes328 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfEpicUserMentionsNoteIdToBigint", version=20230202002616, filename="db/migrate/20230202002616_initialize_conversion_of_epic_user_mentions_note_id_to_bigint.rb", scope="">329 uses one of the allowed migration classes330 migration: #<struct ActiveRecord::MigrationProxy name="BackfillEpicUserMentionsNoteIdForBigintConversion", version=20230202002637, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230202002637_backfill_epic_user_mentions_note_id_for_bigint_conversion.rb", scope="">331 uses one of the allowed migration classes332 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnMergeRequestDiffsExternalDiff", version=20230202004247, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230202004247_add_index_on_merge_request_diffs_external_diff.rb", scope="">333 uses one of the allowed migration classes334 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfSuggestionsNoteIdToBigint", version=20230202023208, filename="db/migrate/20230202023208_initialize_conversion_of_suggestions_note_id_to_bigint.rb", scope="">335 uses one of the allowed migration classes336 migration: #<struct ActiveRecord::MigrationProxy name="BackfillSuggestionsNoteIdForBigintConversion", version=20230202023224, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230202023224_backfill_suggestions_note_id_for_bigint_conversion.rb", scope="">337 uses one of the allowed migration classes338 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfIssueUserMentionsNoteIdToBigint", version=20230202032248, filename="db/migrate/20230202032248_initialize_conversion_of_issue_user_mentions_note_id_to_bigint.rb", scope="">339 uses one of the allowed migration classes340 migration: #<struct ActiveRecord::MigrationProxy name="BackfillIssueUserMentionsNoteIdForBigintConversion", version=20230202032302, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230202032302_backfill_issue_user_mentions_note_id_for_bigint_conversion.rb", scope="">341 uses one of the allowed migration classes342 migration: #<struct ActiveRecord::MigrationProxy name="AddDefaultSyntaxHighlightingThemeToApplicationSettings", version=20230202094723, filename="db/migrate/20230202094723_add_default_syntax_highlighting_theme_to_application_settings.rb", scope="">343 uses one of the allowed migration classes344 migration: #<struct ActiveRecord::MigrationProxy name="EncryptCiTriggerToken", version=20230202131928, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230202131928_encrypt_ci_trigger_token.rb", scope="">345 uses one of the allowed migration classes346 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillPreparedAtData", version=20230202135758, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230202135758_queue_backfill_prepared_at_data.rb", scope="">347 uses one of the allowed migration classes348 migration: #<struct ActiveRecord::MigrationProxy name="AddScanResultPolicyIdToApprovalRules", version=20230202153926, filename="db/migrate/20230202153926_add_scan_result_policy_id_to_approval_rules.rb", scope="">349 uses one of the allowed migration classes350 migration: #<struct ActiveRecord::MigrationProxy name="MigrateRedisSlotKeys", version=20230202211434, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230202211434_migrate_redis_slot_keys.rb", scope="">351 uses one of the allowed migration classes352 migration: #<struct ActiveRecord::MigrationProxy name="CreateAutomationRules", version=20230203011359, filename="db/migrate/20230203011359_create_automation_rules.rb", scope="">353 uses one of the allowed migration classes354 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleVulnerabilitiesFeedbackMigration3", version=20230203122602, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230203122602_schedule_vulnerabilities_feedback_migration3.rb", scope="">355 uses one of the allowed migration classes356 migration: #<struct ActiveRecord::MigrationProxy name="ChangePipelineNameIndex", version=20230203122609, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230203122609_change_pipeline_name_index.rb", scope="">357 uses one of the allowed migration classes358 migration: #<struct ActiveRecord::MigrationProxy name="AllowNullPipelineIdToDastPreScanVerification", version=20230203145514, filename="db/migrate/20230203145514_allow_null_pipeline_id_to_dast_pre_scan_verification.rb", scope="">359 uses one of the allowed migration classes360 migration: #<struct ActiveRecord::MigrationProxy name="CreatePostgresAsyncForeignKeyValidations", version=20230206143851, filename="db/migrate/20230206143851_create_postgres_async_foreign_key_validations.rb", scope="">361 uses one of the allowed migration classes362 migration: #<struct ActiveRecord::MigrationProxy name="AddMatchOnInclusionToScanResultPolicy", version=20230206172702, filename="db/migrate/20230206172702_add_match_on_inclusion_to_scan_result_policy.rb", scope="">363 uses one of the allowed migration classes364 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectGroupLinkOnDeleteCascadeFk", version=20230207002330, filename="db/migrate/20230207002330_add_project_group_link_on_delete_cascade_fk.rb", scope="">365 uses one of the allowed migration classes366 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfNoteDiffFilesDiffNoteIdToBigint", version=20230207003737, filename="db/migrate/20230207003737_initialize_conversion_of_note_diff_files_diff_note_id_to_bigint.rb", scope="">367 uses one of the allowed migration classes368 migration: #<struct ActiveRecord::MigrationProxy name="BackfillNoteDiffFilesDiffNoteIdForBigintConversion", version=20230207003812, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230207003812_backfill_note_diff_files_diff_note_id_for_bigint_conversion.rb", scope="">369 uses one of the allowed migration classes370 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfSnippetUserMentionsNoteIdToBigint", version=20230207005549, filename="db/migrate/20230207005549_initialize_conversion_of_snippet_user_mentions_note_id_to_bigint.rb", scope="">371 uses one of the allowed migration classes372 migration: #<struct ActiveRecord::MigrationProxy name="BackfillSnippetUserMentionsNoteIdForBigintConversion", version=20230207005701, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230207005701_backfill_snippet_user_mentions_note_id_for_bigint_conversion.rb", scope="">373 uses one of the allowed migration classes374 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfDesignUserMentionsNoteIdToBigint", version=20230207011344, filename="db/migrate/20230207011344_initialize_conversion_of_design_user_mentions_note_id_to_bigint.rb", scope="">375 uses one of the allowed migration classes376 migration: #<struct ActiveRecord::MigrationProxy name="BackfillDesignUserMentionsNoteIdForBigintConversion", version=20230207011414, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230207011414_backfill_design_user_mentions_note_id_for_bigint_conversion.rb", scope="">377 uses one of the allowed migration classes378 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfVulnerabilityUserMentionsNoteIdToBigint", version=20230207012217, filename="db/migrate/20230207012217_initialize_conversion_of_vulnerability_user_mentions_note_id_to_bigint.rb", scope="">379 uses one of the allowed migration classes380 migration: #<struct ActiveRecord::MigrationProxy name="BackfillVulnerabilityUserMentionsNoteIdForBigintConversion", version=20230207012238, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230207012238_backfill_vulnerability_user_mentions_note_id_for_bigint_conversion.rb", scope="">381 uses one of the allowed migration classes382 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfCommitUserMentionsNoteIdToBigint", version=20230207015819, filename="db/migrate/20230207015819_initialize_conversion_of_commit_user_mentions_note_id_to_bigint.rb", scope="">383 uses one of the allowed migration classes384 migration: #<struct ActiveRecord::MigrationProxy name="BackfillCommitUserMentionsNoteIdForBigintConversion", version=20230207015850, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230207015850_backfill_commit_user_mentions_note_id_for_bigint_conversion.rb", scope="">385 uses one of the allowed migration classes386 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfMergeRequestUserMentionsNoteIdToBigint", version=20230207025259, filename="db/migrate/20230207025259_initialize_conversion_of_merge_request_user_mentions_note_id_to_bigint.rb", scope="">387 uses one of the allowed migration classes388 migration: #<struct ActiveRecord::MigrationProxy name="BackfillMergeRequestUserMentionsNoteIdForBigintConversion", version=20230207025315, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230207025315_backfill_merge_request_user_mentions_note_id_for_bigint_conversion.rb", scope="">389 uses one of the allowed migration classes390 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfTimelogsNoteIdToBigint", version=20230207030244, filename="db/migrate/20230207030244_initialize_conversion_of_timelogs_note_id_to_bigint.rb", scope="">391 uses one of the allowed migration classes392 migration: #<struct ActiveRecord::MigrationProxy name="BackfillTimelogsNoteIdForBigintConversion", version=20230207030259, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230207030259_backfill_timelogs_note_id_for_bigint_conversion.rb", scope="">393 uses one of the allowed migration classes394 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleFkIndexToCiBuildTraceMetadataOnPartitionIdAndBuildId", version=20230207143602, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230207143602_schedule_fk_index_to_ci_build_trace_metadata_on_partition_id_and_build_id.rb", scope="">395 uses one of the allowed migration classes396 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleFkIndexToCiJobArtifactsOnPartitionIdAndJobId", version=20230207143844, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230207143844_schedule_fk_index_to_ci_job_artifacts_on_partition_id_and_job_id.rb", scope="">397 uses one of the allowed migration classes398 migration: #<struct ActiveRecord::MigrationProxy name="FixPartitionIdsForCiPipelineVariable", version=20230208100917, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230208100917_fix_partition_ids_for_ci_pipeline_variable.rb", scope="">399 uses one of the allowed migration classes400 migration: #<struct ActiveRecord::MigrationProxy name="FixPartitionIdsForCiJobArtifact", version=20230208103009, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230208103009_fix_partition_ids_for_ci_job_artifact.rb", scope="">401 uses one of the allowed migration classes402 migration: #<struct ActiveRecord::MigrationProxy name="RenameRunnerMachineXid", version=20230208103640, filename="db/migrate/20230208103640_rename_runner_machine_xid.rb", scope="">403 uses one of the allowed migration classes404 migration: #<struct ActiveRecord::MigrationProxy name="CleanupCiRunnerMachinesMachineXidRename", version=20230208110638, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230208110638_cleanup_ci_runner_machines_machine_xid_rename.rb", scope="">405 uses one of the allowed migration classes406 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleMigrationForLinks", version=20230208125736, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230208125736_schedule_migration_for_links.rb", scope="">407 uses one of the allowed migration classes408 migration: #<struct ActiveRecord::MigrationProxy name="NullifyLastErrorFromProjectMirrorData", version=20230208131808, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230208131808_nullify_last_error_from_project_mirror_data.rb", scope="">409 uses one of the allowed migration classes410 migration: #<struct ActiveRecord::MigrationProxy name="FixPartitionIdsForCiStage", version=20230208132608, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230208132608_fix_partition_ids_for_ci_stage.rb", scope="">411 uses one of the allowed migration classes412 migration: #<struct ActiveRecord::MigrationProxy name="FixPartitionIdsForCiBuildReportResult", version=20230209090702, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230209090702_fix_partition_ids_for_ci_build_report_result.rb", scope="">413 uses one of the allowed migration classes414 migration: #<struct ActiveRecord::MigrationProxy name="FixPartitionIdsForCiBuildTraceMetadata", version=20230209092204, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230209092204_fix_partition_ids_for_ci_build_trace_metadata.rb", scope="">415 uses one of the allowed migration classes416 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueSoftwareLicensePoliciesIndexOnProjectAndScanResultPolicy", version=20230209103650, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230209103650_add_unique_software_license_policies_index_on_project_and_scan_result_policy.rb", scope="">417 uses one of the allowed migration classes418 migration: #<struct ActiveRecord::MigrationProxy name="AddFkToApprovalRulesOnScanResultPolicyId", version=20230209103714, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230209103714_add_fk_to_approval_rules_on_scan_result_policy_id.rb", scope="">419 uses one of the allowed migration classes420 migration: #<struct ActiveRecord::MigrationProxy name="RemoveUniqueSoftwareLicensePoliciesIndexOnProject", version=20230209123006, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230209123006_remove_unique_software_license_policies_index_on_project.rb", scope="">421 uses one of the allowed migration classes422 migration: #<struct ActiveRecord::MigrationProxy name="RecountEpicCacheCountsV3", version=20230209131808, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230209131808_recount_epic_cache_counts_v3.rb", scope="">423 uses one of the allowed migration classes424 migration: #<struct ActiveRecord::MigrationProxy name="FixPartitionIdsForCiBuildMetadata", version=20230209140102, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230209140102_fix_partition_ids_for_ci_build_metadata.rb", scope="">425 uses one of the allowed migration classes426 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleVulnerabilitiesFeedbackMigration4", version=20230209171547, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230209171547_schedule_vulnerabilities_feedback_migration4.rb", scope="">427 uses one of the allowed migration classes428 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleRemoveProjectGroupLinkWithMissingGroups", version=20230209222452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230209222452_schedule_remove_project_group_link_with_missing_groups.rb", scope="">429 uses one of the allowed migration classes430 migration: #<struct ActiveRecord::MigrationProxy name="PrepareIndexApprovalRulesOnScanResultPolicyId", version=20230210113924, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230210113924_prepare_index_approval_rules_on_scan_result_policy_id.rb", scope="">431 uses one of the allowed migration classes432 migration: #<struct ActiveRecord::MigrationProxy name="AddBulkImportExportBatches", version=20230210152109, filename="db/migrate/20230210152109_add_bulk_import_export_batches.rb", scope="">433 uses one of the allowed migration classes434 migration: #<struct ActiveRecord::MigrationProxy name="AddBatchedColumnToBulkImportExports", version=20230210153420, filename="db/migrate/20230210153420_add_batched_column_to_bulk_import_exports.rb", scope="">435 uses one of the allowed migration classes436 migration: #<struct ActiveRecord::MigrationProxy name="AddBatchIdToBulkImportExportUploads", version=20230210155715, filename="db/migrate/20230210155715_add_batch_id_to_bulk_import_export_uploads.rb", scope="">437 uses one of the allowed migration classes438 migration: #<struct ActiveRecord::MigrationProxy name="AddBatchForeignKeyToBulkImportExportUploads", version=20230210160037, filename="db/migrate/20230210160037_add_batch_foreign_key_to_bulk_import_export_uploads.rb", scope="">439 uses one of the allowed migration classes440 migration: #<struct ActiveRecord::MigrationProxy name="AddBulkImportBatchTrackers", version=20230210160351, filename="db/migrate/20230210160351_add_bulk_import_batch_trackers.rb", scope="">441 uses one of the allowed migration classes442 migration: #<struct ActiveRecord::MigrationProxy name="AddBatchedColumnToBulkImportTrackers", version=20230210161002, filename="db/migrate/20230210161002_add_batched_column_to_bulk_import_trackers.rb", scope="">443 uses one of the allowed migration classes444 migration: #<struct ActiveRecord::MigrationProxy name="AddBatchIdIndexToBulkImportExportUploads", version=20230210171012, filename="db/migrate/20230210171012_add_batch_id_index_to_bulk_import_export_uploads.rb", scope="">445 uses one of the allowed migration classes446 migration: #<struct ActiveRecord::MigrationProxy name="AddAllowDeployTokensAndKeysWithExternalAuthnToApplicationSettings", version=20230210181214, filename="db/migrate/20230210181214_add_allow_deploy_tokens_and_keys_with_external_authn_to_application_settings.rb", scope="">447 uses one of the allowed migration classes448 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexForNextOverLimitCheckAt", version=20230213103019, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230213103019_add_index_for_next_over_limit_check_at.rb", scope="">449 uses one of the allowed migration classes450 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnProjectIdAndScannerIdAndVulnerabilityIdOnVulnerabilityReads", version=20230213213559, filename="db/migrate/20230213213559_add_index_on_project_id_and_scanner_id_and_vulnerability_id_on_vulnerability_reads.rb", scope="">451 uses one of the allowed migration classes452 migration: #<struct ActiveRecord::MigrationProxy name="FixPartitionIdsForCiJobVariables", version=20230214122717, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230214122717_fix_partition_ids_for_ci_job_variables.rb", scope="">453 uses one of the allowed migration classes454 migration: #<struct ActiveRecord::MigrationProxy name="RemoveTextLimitFromCiJobArtifactsOriginalFilename", version=20230214142447, filename="db/migrate/20230214142447_remove_text_limit_from_ci_job_artifacts_original_filename.rb", scope="">455 uses one of the allowed migration classes456 migration: #<struct ActiveRecord::MigrationProxy name="RemoveCiJobArtifactsOriginalFilename", version=20230214142813, filename="db/migrate/20230214142813_remove_ci_job_artifacts_original_filename.rb", scope="">457 uses one of the allowed migration classes458 migration: #<struct ActiveRecord::MigrationProxy name="FixPartitionIdsOnCiSourcesPipelines", version=20230214154101, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230214154101_fix_partition_ids_on_ci_sources_pipelines.rb", scope="">459 uses one of the allowed migration classes460 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncIndexWebHookLogs", version=20230214174335, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230214174335_prepare_async_index_web_hook_logs.rb", scope="">461 uses one of the allowed migration classes462 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeCiBuildNeedsBigIntConversion", version=20230214181633, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230214181633_finalize_ci_build_needs_big_int_conversion.rb", scope="">463 uses one of the allowed migration classes464 migration: #<struct ActiveRecord::MigrationProxy name="AddCiRunnerMachineBuildsPartitionedTable", version=20230215074223, filename="db/migrate/20230215074223_add_ci_runner_machine_builds_partitioned_table.rb", scope="">465 uses one of the allowed migration classes466 migration: #<struct ActiveRecord::MigrationProxy name="AddProvisionedByGroupAtToUserDetails", version=20230215124011, filename="db/migrate/20230215124011_add_provisioned_by_group_at_to_user_details.rb", scope="">467 uses one of the allowed migration classes468 migration: #<struct ActiveRecord::MigrationProxy name="AddHasFailuresColumnToBulkImports", version=20230215131026, filename="db/migrate/20230215131026_add_has_failures_column_to_bulk_imports.rb", scope="">469 uses one of the allowed migration classes470 migration: #<struct ActiveRecord::MigrationProxy name="IndexSbomOccurrencesOnProjectIdAndId", version=20230215180605, filename="db/migrate/20230215180605_index_sbom_occurrences_on_project_id_and_id.rb", scope="">471 uses one of the allowed migration classes472 migration: #<struct ActiveRecord::MigrationProxy name="AddSyncIndexOnPackagesPackageFileFilename", version=20230215213349, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230215213349_add_sync_index_on_packages_package_file_filename.rb", scope="">473 uses one of the allowed migration classes474 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncForeignKeyValidationForCiBuildNeeds", version=20230216035802, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230216035802_prepare_async_foreign_key_validation_for_ci_build_needs.rb", scope="">475 uses one of the allowed migration classes476 migration: #<struct ActiveRecord::MigrationProxy name="AddStatusAndResolvedAtToAbuseReports", version=20230216040505, filename="db/migrate/20230216040505_add_status_and_resolved_at_to_abuse_reports.rb", scope="">477 uses one of the allowed migration classes478 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncForeignKeyValidationForCiBuildReportResults", version=20230216052103, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230216052103_prepare_async_foreign_key_validation_for_ci_build_report_results.rb", scope="">479 uses one of the allowed migration classes480 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncForeignKeyValidationForCiJobArtifacts", version=20230216054348, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230216054348_prepare_async_foreign_key_validation_for_ci_job_artifacts.rb", scope="">481 uses one of the allowed migration classes482 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncForeignKeyValidationForCiBuildTraceMetadata", version=20230216060333, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230216060333_prepare_async_foreign_key_validation_for_ci_build_trace_metadata.rb", scope="">483 uses one of the allowed migration classes484 migration: #<struct ActiveRecord::MigrationProxy name="AddStatusCategoryAndIdIndexToAbuseReports", version=20230216071312, filename="db/migrate/20230216071312_add_status_category_and_id_index_to_abuse_reports.rb", scope="">485 uses one of the allowed migration classes486 migration: #<struct ActiveRecord::MigrationProxy name="UpdateVulnerabilityReadsTriggerToSetHasIssue", version=20230216142836, filename="db/migrate/20230216142836_update_vulnerability_reads_trigger_to_set_has_issue.rb", scope="">487 uses one of the allowed migration classes488 migration: #<struct ActiveRecord::MigrationProxy name="DropTableAirflowDags", version=20230216144719, filename="db/migrate/20230216144719_drop_table_airflow_dags.rb", scope="">489 uses one of the allowed migration classes490 migration: #<struct ActiveRecord::MigrationProxy name="AddHasFailuresColumnToBulkImportEntities", version=20230216152912, filename="db/migrate/20230216152912_add_has_failures_column_to_bulk_import_entities.rb", scope="">491 uses one of the allowed migration classes492 migration: #<struct ActiveRecord::MigrationProxy name="CreateCiRunnerCostSettings", version=20230216171309, filename="db/migrate/20230216171309_create_ci_runner_cost_settings.rb", scope="">493 uses one of the allowed migration classes494 migration: #<struct ActiveRecord::MigrationProxy name="DeleteIncorrectlyOnboardedNamespaces", version=20230216191507, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230216191507_delete_incorrectly_onboarded_namespaces.rb", scope="">495 uses one of the allowed migration classes496 migration: #<struct ActiveRecord::MigrationProxy name="AddSyncIndexOnLfsObjectsFile", version=20230216222956, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230216222956_add_sync_index_on_lfs_objects_file.rb", scope="">497 uses one of the allowed migration classes498 migration: #<struct ActiveRecord::MigrationProxy name="AddSyncIndexOnMergeRequestDiffsExternalDiff", version=20230216232404, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230216232404_add_sync_index_on_merge_request_diffs_external_diff.rb", scope="">499 uses one of the allowed migration classes500 migration: #<struct ActiveRecord::MigrationProxy name="RemoveApplicationSettingsSendUserConfirmationEmailColumn", version=20230216233937, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230216233937_remove_application_settings_send_user_confirmation_email_column.rb", scope="">501 uses one of the allowed migration classes502 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectsApiRateLimitUnauthenticatedToApplicationSettings", version=20230217065736, filename="db/migrate/20230217065736_add_projects_api_rate_limit_unauthenticated_to_application_settings.rb", scope="">503 uses one of the allowed migration classes504 migration: #<struct ActiveRecord::MigrationProxy name="AddCheckTypeToPreScanStep", version=20230217144421, filename="db/migrate/20230217144421_add_check_type_to_pre_scan_step.rb", scope="">505 uses one of the allowed migration classes506 migration: #<struct ActiveRecord::MigrationProxy name="AddStateChangedInToVulnerabilityStateTransitions", version=20230217232554, filename="db/migrate/20230217232554_add_state_changed_in_to_vulnerability_state_transitions.rb", scope="">507 uses one of the allowed migration classes508 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexUsersOnUpdatedAt", version=20230218145930, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230218145930_add_index_users_on_updated_at.rb", scope="">509 uses one of the allowed migration classes510 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexNamespacesOnUpdatedAt", version=20230218145940, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230218145940_add_index_namespaces_on_updated_at.rb", scope="">511 uses one of the allowed migration classes512 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkOnCiJobArtifactsPartitionIdAndJobId", version=20230218152729, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230218152729_validate_fk_on_ci_job_artifacts_partition_id_and_job_id.rb", scope="">513 uses one of the allowed migration classes514 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildsCiJobArtifactsOnJobId", version=20230218152730, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230218152730_remove_fk_to_ci_builds_ci_job_artifacts_on_job_id.rb", scope="">515 uses one of the allowed migration classes516 migration: #<struct ActiveRecord::MigrationProxy name="AddPipelineFkToVulnerabilityStateTransitions", version=20230219191034, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230219191034_add_pipeline_fk_to_vulnerability_state_transitions.rb", scope="">517 uses one of the allowed migration classes518 migration: #<struct ActiveRecord::MigrationProxy name="AddStatusAndIdIndexToAbuseReports", version=20230220035034, filename="db/migrate/20230220035034_add_status_and_id_index_to_abuse_reports.rb", scope="">519 uses one of the allowed migration classes520 migration: #<struct ActiveRecord::MigrationProxy name="SwapColumnsCiBuildNeedsBigIntConversion", version=20230220102212, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230220102212_swap_columns_ci_build_needs_big_int_conversion.rb", scope="">521 uses one of the allowed migration classes522 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceUniqIndexOnPostgresAsyncForeignKeyValidations", version=20230220112930, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230220112930_replace_uniq_index_on_postgres_async_foreign_key_validations.rb", scope="">523 uses one of the allowed migration classes524 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkOnCiBuildReportResultsPartitionIdAndBuildId", version=20230220132409, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230220132409_validate_fk_on_ci_build_report_results_partition_id_and_build_id.rb", scope="">525 uses one of the allowed migration classes526 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildsCiBuildReportResultsOnBuildId", version=20230220132410, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230220132410_remove_fk_to_ci_builds_ci_build_report_results_on_build_id.rb", scope="">527 uses one of the allowed migration classes528 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkOnCiBuildNeedsPartitionIdAndBuildId", version=20230220134145, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230220134145_validate_fk_on_ci_build_needs_partition_id_and_build_id.rb", scope="">529 uses one of the allowed migration classes530 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildsCiBuildNeedsOnBuildId", version=20230220134146, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230220134146_remove_fk_to_ci_builds_ci_build_needs_on_build_id.rb", scope="">531 uses one of the allowed migration classes532 migration: #<struct ActiveRecord::MigrationProxy name="CreateCatalogResourcesTable", version=20230220163141, filename="db/migrate/20230220163141_create_catalog_resources_table.rb", scope="">533 uses one of the allowed migration classes534 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToApprovalRulesOnScanResultPolicyId", version=20230220165240, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230220165240_add_index_to_approval_rules_on_scan_result_policy_id.rb", scope="">535 uses one of the allowed migration classes536 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncForeignKeyValidationForCiSourcesPipelines", version=20230221010522, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230221010522_prepare_async_foreign_key_validation_for_ci_sources_pipelines.rb", scope="">537 uses one of the allowed migration classes538 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncForeignKeyValidationForCiJobVariables", version=20230221011750, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230221011750_prepare_async_foreign_key_validation_for_ci_job_variables.rb", scope="">539 uses one of the allowed migration classes540 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpPartialIndexOnVulnerabilityReportTypes", version=20230221093533, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230221093533_add_tmp_partial_index_on_vulnerability_report_types.rb", scope="">541 uses one of the allowed migration classes542 migration: #<struct ActiveRecord::MigrationProxy name="AddSyncTmpPartialIndexOnVulnerabilityReportTypes", version=20230221093535, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230221093535_add_sync_tmp_partial_index_on_vulnerability_report_types.rb", scope="">543 uses one of the allowed migration classes544 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleMigrateSharedVulnerabilityIdentifiers", version=20230221093536, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230221093536_schedule_migrate_shared_vulnerability_identifiers.rb", scope="">545 uses one of the allowed migration classes546 migration: #<struct ActiveRecord::MigrationProxy name="CreateInitialPartitionForCiRunnerMachineBuilds", version=20230221110256, filename="db/migrate/20230221110256_create_initial_partition_for_ci_runner_machine_builds.rb", scope="">547 uses one of the allowed migration classes548 migration: #<struct ActiveRecord::MigrationProxy name="AddFkToPCiBuildsMetadataPartitionsOnPartitionIdAndBuildId", version=20230221125148, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230221125148_add_fk_to_p_ci_builds_metadata_partitions_on_partition_id_and_build_id.rb", scope="">549 uses one of the allowed migration classes550 migration: #<struct ActiveRecord::MigrationProxy name="RaiseCiVariableLimitsOnGitlabCom", version=20230221162222, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230221162222_raise_ci_variable_limits_on_gitlab_com.rb", scope="">551 uses one of the allowed migration classes552 migration: #<struct ActiveRecord::MigrationProxy name="RemoveIncorrectlyOnboardedNamespacesFromOnboardingProgress", version=20230221214519, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230221214519_remove_incorrectly_onboarded_namespaces_from_onboarding_progress.rb", scope="">553 uses one of the allowed migration classes554 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncIndexRemovalOfTokenForCiBuilds", version=20230222035805, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230222035805_prepare_async_index_removal_of_token_for_ci_builds.rb", scope="">555 uses one of the allowed migration classes556 migration: #<struct ActiveRecord::MigrationProxy name="RemoveConcurrentIndexOnTokenEncryptedForCiBuilds", version=20230222055510, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230222055510_remove_concurrent_index_on_token_encrypted_for_ci_builds.rb", scope="">557 uses one of the allowed migration classes558 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildCiPendingBuildOnBuildId", version=20230222101420, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230222101420_remove_fk_to_ci_build_ci_pending_build_on_build_id.rb", scope="">559 uses one of the allowed migration classes560 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildCiRunningBuildOnBuildId", version=20230222102421, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230222102421_remove_fk_to_ci_build_ci_running_build_on_build_id.rb", scope="">561 uses one of the allowed migration classes562 migration: #<struct ActiveRecord::MigrationProxy name="AddWikiAsciidocAllowUriIncludes", version=20230222131512, filename="db/migrate/20230222131512_add_wiki_asciidoc_allow_uri_includes.rb", scope="">563 uses one of the allowed migration classes564 migration: #<struct ActiveRecord::MigrationProxy name="AddRegistrySizeEstimatedToNamespaceRootStorageStatistics", version=20230222153048, filename="db/migrate/20230222153048_add_registry_size_estimated_to_namespace_root_storage_statistics.rb", scope="">565 uses one of the allowed migration classes566 migration: #<struct ActiveRecord::MigrationProxy name="AddCustomJiraRegexToJiraTrackerData", version=20230222161226, filename="db/migrate/20230222161226_add_custom_jira_regex_to_jira_tracker_data.rb", scope="">567 uses one of the allowed migration classes568 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToCustomJiraRegexFields", version=20230222161954, filename="db/migrate/20230222161954_add_text_limit_to_custom_jira_regex_fields.rb", scope="">569 uses one of the allowed migration classes570 migration: #<struct ActiveRecord::MigrationProxy name="ChangePublicProjectsMinutesCostFactorDefaultTo1", version=20230222193845, filename="db/migrate/20230222193845_change_public_projects_minutes_cost_factor_default_to_1.rb", scope="">571 uses one of the allowed migration classes572 migration: #<struct ActiveRecord::MigrationProxy name="ValidateNotNullConstraintOnOauthAccessTokensExpiresIn", version=20230223014251, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230223014251_validate_not_null_constraint_on_oauth_access_tokens_expires_in.rb", scope="">573 uses one of the allowed migration classes574 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeNullifyCreatorIdOfOrphanedProjects", version=20230223065753, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230223065753_finalize_nullify_creator_id_of_orphaned_projects.rb", scope="">575 uses one of the allowed migration classes576 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleFkValidationForPCiBuildsMetadataPartitionsAndCiBuilds", version=20230223082752, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230223082752_schedule_fk_validation_for_p_ci_builds_metadata_partitions_and_ci_builds.rb", scope="">577 uses one of the allowed migration classes578 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyOnCreatorIdOnProjects", version=20230223093704, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230223093704_add_foreign_key_on_creator_id_on_projects.rb", scope="">579 uses one of the allowed migration classes580 migration: #<struct ActiveRecord::MigrationProxy name="UpdateIssuesInternalIdScope", version=20230224085743, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230224085743_update_issues_internal_id_scope.rb", scope="">581 uses one of the allowed migration classes582 migration: #<struct ActiveRecord::MigrationProxy name="AddConstraintTypeToPostgresAsyncConstraintValidation", version=20230224130315, filename="db/migrate/20230224130315_add_constraint_type_to_postgres_async_constraint_validation.rb", scope="">583 uses one of the allowed migration classes584 migration: #<struct ActiveRecord::MigrationProxy name="MigrateEvidencesFromRawMetadata", version=20230224144233, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230224144233_migrate_evidences_from_raw_metadata.rb", scope="">585 uses one of the allowed migration classes586 migration: #<struct ActiveRecord::MigrationProxy name="AddSamlGroupLockToApplicationSettings", version=20230224161346, filename="db/migrate/20230224161346_add_saml_group_lock_to_application_settings.rb", scope="">587 uses one of the allowed migration classes588 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkOnCiSourcesPipelinesSourcePartitionIdAndSourceJobId", version=20230227123949, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230227123949_validate_fk_on_ci_sources_pipelines_source_partition_id_and_source_job_id.rb", scope="">589 uses one of the allowed migration classes590 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildsCiSourcesPipelinesOnSourceJobId", version=20230227123950, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230227123950_remove_fk_to_ci_builds_ci_sources_pipelines_on_source_job_id.rb", scope="">591 uses one of the allowed migration classes592 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkOnCiBuildTraceMetadataPartitionIdAndBuildId", version=20230227151608, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230227151608_validate_fk_on_ci_build_trace_metadata_partition_id_and_build_id.rb", scope="">593 uses one of the allowed migration classes594 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildsCiBuildTraceMetadataOnBuildId", version=20230227151609, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230227151609_remove_fk_to_ci_builds_ci_build_trace_metadata_on_build_id.rb", scope="">595 uses one of the allowed migration classes596 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkOnCiJobVariablesPartitionIdAndJobId", version=20230227153231, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230227153231_validate_fk_on_ci_job_variables_partition_id_and_job_id.rb", scope="">597 uses one of the allowed migration classes598 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildsCiJobVariablesOnJobId", version=20230227153232, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230227153232_remove_fk_to_ci_builds_ci_job_variables_on_job_id.rb", scope="">599 uses one of the allowed migration classes600 migration: #<struct ActiveRecord::MigrationProxy name="EnsureTimelogsNoteIdBigintBackfillIsFinishedForGitlabDotCom", version=20230228021910, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230228021910_ensure_timelogs_note_id_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">601 uses one of the allowed migration classes602 migration: #<struct ActiveRecord::MigrationProxy name="SwapTimelogsNoteIdToBigintForGitlabDotCom", version=20230228023014, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230228023014_swap_timelogs_note_id_to_bigint_for_gitlab_dot_com.rb", scope="">603 uses one of the allowed migration classes604 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexNextOverLimitCheckAtAscOrderSynchronously", version=20230228092612, filename="db/migrate/20230228092612_add_index_next_over_limit_check_at_asc_order_synchronously.rb", scope="">605 uses one of the allowed migration classes606 migration: #<struct ActiveRecord::MigrationProxy name="AddDesignDescription", version=20230228133011, filename="db/migrate/20230228133011_add_design_description.rb", scope="">607 uses one of the allowed migration classes608 migration: #<struct ActiveRecord::MigrationProxy name="AddDesignDescriptionLimit", version=20230228135034, filename="db/migrate/20230228135034_add_design_description_limit.rb", scope="">609 uses one of the allowed migration classes610 migration: #<struct ActiveRecord::MigrationProxy name="AddNotificationsWorkItemWidget", version=20230228142350, filename="db/migrate/20230228142350_add_notifications_work_item_widget.rb", scope="">611 uses one of the allowed migration classes612 migration: #<struct ActiveRecord::MigrationProxy name="AddPartitioningInfoToPostgresForeignKeys", version=20230228183644, filename="db/migrate/20230228183644_add_partitioning_info_to_postgres_foreign_keys.rb", scope="">613 uses one of the allowed migration classes614 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexUserDetailsOnUserIdForEnterpriseUsersWithoutDate", version=20230228212427, filename="db/migrate/20230228212427_add_index_user_details_on_user_id_for_enterprise_users_without_date.rb", scope="">615 uses one of the allowed migration classes616 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexUserDetailsOnUserIdForEnterpriseUsersWithDate", version=20230228212905, filename="db/migrate/20230228212905_add_index_user_details_on_user_id_for_enterprise_users_with_date.rb", scope="">617 uses one of the allowed migration classes618 migration: #<struct ActiveRecord::MigrationProxy name="EnsureMrUserMentionsNoteIdBigintBackfillIsFinishedForGitlabDotCom", version=20230301020246, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230301020246_ensure_mr_user_mentions_note_id_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">619 uses one of the allowed migration classes620 migration: #<struct ActiveRecord::MigrationProxy name="SwapMergeRequestUserMentionsNoteIdToBigint", version=20230301020356, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230301020356_swap_merge_request_user_mentions_note_id_to_bigint.rb", scope="">621 uses one of the allowed migration classes622 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnExpiredUnlockedNonTraceJobArtifacts", version=20230301065107, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230301065107_add_index_on_expired_unlocked_non_trace_job_artifacts.rb", scope="">623 uses one of the allowed migration classes624 migration: #<struct ActiveRecord::MigrationProxy name="AddAsyncIndexOnUnlockedNonTraceJobArtifactsExpireAt", version=20230302090155, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230302090155_add_async_index_on_unlocked_non_trace_job_artifacts_expire_at.rb", scope="">625 uses one of the allowed migration classes626 migration: #<struct ActiveRecord::MigrationProxy name="DropRunnerMachinesConstraintOnCiBuildsMetadata", version=20230302123258, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230302123258_drop_runner_machines_constraint_on_ci_builds_metadata.rb", scope="">627 uses one of the allowed migration classes628 migration: #<struct ActiveRecord::MigrationProxy name="EnsureCiRunnerMachinesIsEmpty", version=20230302123259, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230302123259_ensure_ci_runner_machines_is_empty.rb", scope="">629 uses one of the allowed migration classes630 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnRunnerMachineIdOnRunnerMachineBuilds", version=20230302123301, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230302123301_add_index_on_runner_machine_id_on_runner_machine_builds.rb", scope="">631 uses one of the allowed migration classes632 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToOauthAccessGrantsApplicationId", version=20230302163339, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230302163339_add_index_to_oauth_access_grants_application_id.rb", scope="">633 uses one of the allowed migration classes634 migration: #<struct ActiveRecord::MigrationProxy name="QueueFixVulnerabilityReadsHasIssues", version=20230302185739, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230302185739_queue_fix_vulnerability_reads_has_issues.rb", scope="">635 uses one of the allowed migration classes636 migration: #<struct ActiveRecord::MigrationProxy name="QueueDeleteOrphanedPackagesDependencies", version=20230303105806, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230303105806_queue_delete_orphaned_packages_dependencies.rb", scope="">637 uses one of the allowed migration classes638 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleTemporaryPartitioningIndexesRemoval", version=20230303120531, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230303120531_schedule_temporary_partitioning_indexes_removal.rb", scope="">639 uses one of the allowed migration classes640 migration: #<struct ActiveRecord::MigrationProxy name="UniqueIndexOnCatalogResourcesProject", version=20230303144424, filename="db/migrate/20230303144424_unique_index_on_catalog_resources_project.rb", scope="">641 uses one of the allowed migration classes642 migration: #<struct ActiveRecord::MigrationProxy name="AddUserTypeMigrationIndexes", version=20230303154314, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230303154314_add_user_type_migration_indexes.rb", scope="">643 uses one of the allowed migration classes644 migration: #<struct ActiveRecord::MigrationProxy name="AddRoleApproversToScanResultPolicies", version=20230303232426, filename="db/migrate/20230303232426_add_role_approvers_to_scan_result_policies.rb", scope="">645 uses one of the allowed migration classes646 migration: #<struct ActiveRecord::MigrationProxy name="DropRevokableFromAchievements", version=20230304184416, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230304184416_drop_revokable_from_achievements.rb", scope="">647 uses one of the allowed migration classes648 migration: #<struct ActiveRecord::MigrationProxy name="ValidatePartitioningFkOnPCiBuildsMetadataPartitions", version=20230306071456, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230306071456_validate_partitioning_fk_on_p_ci_builds_metadata_partitions.rb", scope="">649 uses one of the allowed migration classes650 migration: #<struct ActiveRecord::MigrationProxy name="AddPartitionedFkToPCiBuildsMetadataOnPartitionIdAndBuildId", version=20230306072532, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230306072532_add_partitioned_fk_to_p_ci_builds_metadata_on_partition_id_and_build_id.rb", scope="">651 uses one of the allowed migration classes652 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkToCiBuildsPCiBuildsMetadataOnBuildId", version=20230306082852, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230306082852_remove_fk_to_ci_builds_p_ci_builds_metadata_on_build_id.rb", scope="">653 uses one of the allowed migration classes654 migration: #<struct ActiveRecord::MigrationProxy name="PrepareCiBuildsPrimaryKeyForPartitioning", version=20230306143322, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230306143322_prepare_ci_builds_primary_key_for_partitioning.rb", scope="">655 uses one of the allowed migration classes656 migration: #<struct ActiveRecord::MigrationProxy name="AddProductAnalyticsDataCollectorHostToApplicationSettings", version=20230306145230, filename="db/migrate/20230306145230_add_product_analytics_data_collector_host_to_application_settings.rb", scope="">657 uses one of the allowed migration classes658 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillProjectWikiRepositories", version=20230306195007, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230306195007_queue_backfill_project_wiki_repositories.rb", scope="">659 uses one of the allowed migration classes660 migration: #<struct ActiveRecord::MigrationProxy name="CreateDesignManagementRepository", version=20230307000000, filename="db/migrate/20230307000000_create_design_management_repository.rb", scope="">661 uses one of the allowed migration classes662 migration: #<struct ActiveRecord::MigrationProxy name="TrackCiRunnerMachineRecordChanges", version=20230307085644, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230307085644_track_ci_runner_machine_record_changes.rb", scope="">663 uses one of the allowed migration classes664 migration: #<struct ActiveRecord::MigrationProxy name="AddStatusReporterIdAndIdIndexToAbuseReports", version=20230307091216, filename="db/migrate/20230307091216_add_status_reporter_id_and_id_index_to_abuse_reports.rb", scope="">665 uses one of the allowed migration classes666 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToApplicationSettingsProductAnalyticsDataCollectorHost", version=20230307122838, filename="db/migrate/20230307122838_add_text_limit_to_application_settings_product_analytics_data_collector_host.rb", scope="">667 uses one of the allowed migration classes668 migration: #<struct ActiveRecord::MigrationProxy name="CreateSchemaInconsistencies", version=20230307132729, filename="db/migrate/20230307132729_create_schema_inconsistencies.rb", scope="">669 uses one of the allowed migration classes670 migration: #<struct ActiveRecord::MigrationProxy name="RenameConstraintFkRailsF601258b28OnEventsTable", version=20230307160251, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230307160251_rename_constraint_fk_rails_f601258b28_on_events_table.rb", scope="">671 uses one of the allowed migration classes672 migration: #<struct ActiveRecord::MigrationProxy name="RemoveCreateLearnGitlabWorkerJobInstances", version=20230307212637, filename="db/migrate/20230307212637_remove_create_learn_gitlab_worker_job_instances.rb", scope="">673 uses one of the allowed migration classes674 migration: #<struct ActiveRecord::MigrationProxy name="AddPublicRunnerReleaseVersionFetchSetting", version=20230307233631, filename="db/migrate/20230307233631_add_public_runner_release_version_fetch_setting.rb", scope="">675 uses one of the allowed migration classes676 migration: #<struct ActiveRecord::MigrationProxy name="AddPackageIdToMlCandidates", version=20230308154243, filename="db/migrate/20230308154243_add_package_id_to_ml_candidates.rb", scope="">677 uses one of the allowed migration classes678 migration: #<struct ActiveRecord::MigrationProxy name="AddPackageIdForeignKeyToMlCandidates", version=20230308154244, filename="db/migrate/20230308154244_add_package_id_foreign_key_to_ml_candidates.rb", scope="">679 uses one of the allowed migration classes680 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnPackageIdForMlCandidates", version=20230308154245, filename="db/migrate/20230308154245_add_index_on_package_id_for_ml_candidates.rb", scope="">681 uses one of the allowed migration classes682 migration: #<struct ActiveRecord::MigrationProxy name="CreateContainerRegistryDataRepairDetails", version=20230308163018, filename="db/migrate/20230308163018_create_container_registry_data_repair_details.rb", scope="">683 uses one of the allowed migration classes684 migration: #<struct ActiveRecord::MigrationProxy name="AddExternalIdentifiersToImportFailures", version=20230309000957, filename="db/migrate/20230309000957_add_external_identifiers_to_import_failures.rb", scope="">685 uses one of the allowed migration classes686 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueIndexMrUserMentionsNoteIdConvertToBigint", version=20230309010000, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230309010000_add_unique_index_mr_user_mentions_note_id_convert_to_bigint.rb", scope="">687 uses one of the allowed migration classes688 migration: #<struct ActiveRecord::MigrationProxy name="AddFkOnMrUserMentionsNoteIdConvertToIdBigint", version=20230309010931, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230309010931_add_fk_on_mr_user_mentions_note_id_convert_to_id_bigint.rb", scope="">689 uses one of the allowed migration classes690 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkOnMrUserMentionsNoteIdConvertToIdBigint", version=20230309020422, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230309020422_validate_fk_on_mr_user_mentions_note_id_convert_to_id_bigint.rb", scope="">691 uses one of the allowed migration classes692 migration: #<struct ActiveRecord::MigrationProxy name="DeleteSecurityPolicyBotUsers", version=20230309071242, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230309071242_delete_security_policy_bot_users.rb", scope="">693 uses one of the allowed migration classes694 migration: #<struct ActiveRecord::MigrationProxy name="PrepareCiBuildsConstraintsForListPartitioning", version=20230309085547, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230309085547_prepare_ci_builds_constraints_for_list_partitioning.rb", scope="">695 uses one of the allowed migration classes696 migration: #<struct ActiveRecord::MigrationProxy name="DropIdPartitionIdIndexFromPCiBuildMetadata", version=20230309103016, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230309103016_drop_id_partition_id_index_from_p_ci_build_metadata.rb", scope="">697 uses one of the allowed migration classes698 migration: #<struct ActiveRecord::MigrationProxy name="SwapMergeRequestUserMentionsNoteIdToBigint2", version=20230310020356, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230310020356_swap_merge_request_user_mentions_note_id_to_bigint_2.rb", scope="">699 uses one of the allowed migration classes700 migration: #<struct ActiveRecord::MigrationProxy name="RecreateUserTypeMigrationIndexes", version=20230310111859, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230310111859_recreate_user_type_migration_indexes.rb", scope="">701 uses one of the allowed migration classes702 migration: #<struct ActiveRecord::MigrationProxy name="SyncSecurityPolicyRuleSchedulesThatMayHaveBeenDeletedByABug", version=20230310213308, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230310213308_sync_security_policy_rule_schedules_that_may_have_been_deleted_by_a_bug.rb", scope="">703 uses one of the allowed migration classes704 migration: #<struct ActiveRecord::MigrationProxy name="CreateSearchIndices", version=20230313012226, filename="db/migrate/20230313012226_create_search_indices.rb", scope="">705 uses one of the allowed migration classes706 migration: #<struct ActiveRecord::MigrationProxy name="CreateSearchNamespaceIndexAssignments", version=20230313012609, filename="db/migrate/20230313012609_create_search_namespace_index_assignments.rb", scope="">707 uses one of the allowed migration classes708 migration: #<struct ActiveRecord::MigrationProxy name="AddSearchIndexForeignKeyToSearchNamespaceIndexAssignments", version=20230313014038, filename="db/migrate/20230313014038_add_search_index_foreign_key_to_search_namespace_index_assignments.rb", scope="">709 uses one of the allowed migration classes710 migration: #<struct ActiveRecord::MigrationProxy name="CreateResourceLinkEvents", version=20230313031351, filename="db/migrate/20230313031351_create_resource_link_events.rb", scope="">711 uses one of the allowed migration classes712 migration: #<struct ActiveRecord::MigrationProxy name="EnsureCommitUserMentionsNoteIdBigintBackfillIsFinishedForGitlabDotCom", version=20230313031629, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230313031629_ensure_commit_user_mentions_note_id_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">713 uses one of the allowed migration classes714 migration: #<struct ActiveRecord::MigrationProxy name="AddStatusCreatedAtAndUpdatedAtIndexesToAbuseReports", version=20230313054226, filename="db/migrate/20230313054226_add_status_created_at_and_updated_at_indexes_to_abuse_reports.rb", scope="">715 uses one of the allowed migration classes716 migration: #<struct ActiveRecord::MigrationProxy name="AddStartEndAndCurrentValuesToWiProgressess", version=20230313092109, filename="db/migrate/20230313092109_add_start_end_and_current_values_to_wi_progressess.rb", scope="">717 uses one of the allowed migration classes718 migration: #<struct ActiveRecord::MigrationProxy name="AddGitlabDedicatedInstanceToApplicationSettings", version=20230313100920, filename="db/migrate/20230313100920_add_gitlab_dedicated_instance_to_application_settings.rb", scope="">719 uses one of the allowed migration classes720 migration: #<struct ActiveRecord::MigrationProxy name="EnsureMergeRequestMetricsIdBigintBackfillIsFinishedForGitlabDotCom", version=20230313133001, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230313133001_ensure_merge_request_metrics_id_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">721 uses one of the allowed migration classes722 migration: #<struct ActiveRecord::MigrationProxy name="BackfillMlCandidatesPackageId", version=20230313142631, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230313142631_backfill_ml_candidates_package_id.rb", scope="">723 uses one of the allowed migration classes724 migration: #<struct ActiveRecord::MigrationProxy name="SwapMergeRequestMetricsIdToBigintForGitlabDotCom", version=20230313143033, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230313143033_swap_merge_request_metrics_id_to_bigint_for_gitlab_dot_com.rb", scope="">725 uses one of the allowed migration classes726 migration: #<struct ActiveRecord::MigrationProxy name="RescheduleMigrationForRemediation", version=20230313150531, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230313150531_reschedule_migration_for_remediation.rb", scope="">727 uses one of the allowed migration classes728 migration: #<struct ActiveRecord::MigrationProxy name="CreatePackagesNpmMetadataCaches", version=20230313181536, filename="db/migrate/20230313181536_create_packages_npm_metadata_caches.rb", scope="">729 uses one of the allowed migration classes730 migration: #<struct ActiveRecord::MigrationProxy name="AddTempIndexForSoftwareLicenseCleanup", version=20230313184306, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230313184306_add_temp_index_for_software_license_cleanup.rb", scope="">731 uses one of the allowed migration classes732 migration: #<struct ActiveRecord::MigrationProxy name="CleanupOrphanSoftwareLicenses", version=20230313185145, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230313185145_cleanup_orphan_software_licenses.rb", scope="">733 uses one of the allowed migration classes734 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexFromWebauthnRegistrationsOnU2fRegistrationId", version=20230314094210, filename="db/migrate/20230314094210_drop_index_from_webauthn_registrations_on_u2f_registration_id.rb", scope="">735 uses one of the allowed migration classes736 migration: #<struct ActiveRecord::MigrationProxy name="RescheduleMigrationForLinks", version=20230314144640, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230314144640_reschedule_migration_for_links.rb", scope="">737 uses one of the allowed migration classes738 migration: #<struct ActiveRecord::MigrationProxy name="SetEmailConfirmationSettingFromSoftEmailConfirmationFf", version=20230314210657, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230314210657_set_email_confirmation_setting_from_soft_email_confirmation_ff.rb", scope="">739 uses one of the allowed migration classes740 migration: #<struct ActiveRecord::MigrationProxy name="AddScreenshotToAbuseReports", version=20230315053635, filename="db/migrate/20230315053635_add_screenshot_to_abuse_reports.rb", scope="">741 uses one of the allowed migration classes742 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeIssuesIidScopingToNamespace", version=20230315084704, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230315084704_finalize_issues_iid_scoping_to_namespace.rb", scope="">743 uses one of the allowed migration classes744 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeSetNotificationsBigintConversionBackfill", version=20230315161408, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230315161408_finalize_set_notifications_bigint_conversion_backfill.rb", scope="">745 uses one of the allowed migration classes746 migration: #<struct ActiveRecord::MigrationProxy name="RemoveIndexOnEventsActionAsync", version=20230316014650, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230316014650_remove_index_on_events_action_async.rb", scope="">747 uses one of the allowed migration classes748 migration: #<struct ActiveRecord::MigrationProxy name="RemoveIndexOnEventsAction", version=20230316014651, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230316014651_remove_index_on_events_action.rb", scope="">749 uses one of the allowed migration classes750 migration: #<struct ActiveRecord::MigrationProxy name="BackfillCurrentValueWithProgressWorkItemProgresses", version=20230316073726, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230316073726_backfill_current_value_with_progress_work_item_progresses.rb", scope="">751 uses one of the allowed migration classes752 migration: #<struct ActiveRecord::MigrationProxy name="InsertDailyInvitesTrialPlanLimits", version=20230316093433, filename="db/migrate/20230316093433_insert_daily_invites_trial_plan_limits.rb", scope="">753 uses one of the allowed migration classes754 migration: #<struct ActiveRecord::MigrationProxy name="CreateServiceDeskCustomEmailCredentials", version=20230316095948, filename="db/migrate/20230316095948_create_service_desk_custom_email_credentials.rb", scope="">755 uses one of the allowed migration classes756 migration: #<struct ActiveRecord::MigrationProxy name="SwapCiRunnerMachineBuildsPrimaryKey", version=20230316114426, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230316114426_swap_ci_runner_machine_builds_primary_key.rb", scope="">757 uses one of the allowed migration classes758 migration: #<struct ActiveRecord::MigrationProxy name="RemovePackagesEventsPackageIdFk", version=20230316164917, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230316164917_remove_packages_events_package_id_fk.rb", scope="">759 uses one of the allowed migration classes760 migration: #<struct ActiveRecord::MigrationProxy name="DropPackagesEventsTable", version=20230316185746, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230316185746_drop_packages_events_table.rb", scope="">761 uses one of the allowed migration classes762 migration: #<struct ActiveRecord::MigrationProxy name="MigrateDailyRedisHllEventsToWeeklyAggregation", version=20230317004428, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230317004428_migrate_daily_redis_hll_events_to_weekly_aggregation.rb", scope="">763 uses one of the allowed migration classes764 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpUniquePackagesIndexWhenDebian", version=20230317075852, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230317075852_add_tmp_unique_packages_index_when_debian.rb", scope="">765 uses one of the allowed migration classes766 migration: #<struct ActiveRecord::MigrationProxy name="EnsureUniqueDebianPackages", version=20230317080000, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230317080000_ensure_unique_debian_packages.rb", scope="">767 uses one of the allowed migration classes768 migration: #<struct ActiveRecord::MigrationProxy name="AddUniquePackagesIndexWhenDebian", version=20230317080137, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230317080137_add_unique_packages_index_when_debian.rb", scope="">769 uses one of the allowed migration classes770 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFromToStateConstraint", version=20230317151841, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230317151841_remove_from_to_state_constraint.rb", scope="">771 uses one of the allowed migration classes772 migration: #<struct ActiveRecord::MigrationProxy name="AddCurrentUserTodosWorkItemWidget", version=20230317162059, filename="db/migrate/20230317162059_add_current_user_todos_work_item_widget.rb", scope="">773 uses one of the allowed migration classes774 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncSentNotificationsIndex", version=20230317195228, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230317195228_prepare_async_sent_notifications_index.rb", scope="">775 uses one of the allowed migration classes776 migration: #<struct ActiveRecord::MigrationProxy name="RemoveMemberRoleDownloadCode", version=20230319105436, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230319105436_remove_member_role_download_code.rb", scope="">777 uses one of the allowed migration classes778 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToVulnerabilityFindingsOnUuid", version=20230320110802, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230320110802_add_index_to_vulnerability_findings_on_uuid.rb", scope="">779 uses one of the allowed migration classes780 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToNamespaceDetails", version=20230320155635, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230320155635_add_index_to_namespace_details.rb", scope="">781 uses one of the allowed migration classes782 migration: #<struct ActiveRecord::MigrationProxy name="SwapCommitUserMentionsNoteIdToBigintForGitlabDotCom", version=20230321003252, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230321003252_swap_commit_user_mentions_note_id_to_bigint_for_gitlab_dot_com.rb", scope="">783 uses one of the allowed migration classes784 migration: #<struct ActiveRecord::MigrationProxy name="EnsureVumBigintBackfillIsFinishedForGlDotCom", version=20230321011529, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230321011529_ensure_vum_bigint_backfill_is_finished_for_gl_dot_com.rb", scope="">785 uses one of the allowed migration classes786 migration: #<struct ActiveRecord::MigrationProxy name="SwapVulnerabilityUserMentionsNoteIdToBigintForGitlabDotCom", version=20230321011903, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230321011903_swap_vulnerability_user_mentions_note_id_to_bigint_for_gitlab_dot_com.rb", scope="">787 uses one of the allowed migration classes788 migration: #<struct ActiveRecord::MigrationProxy name="EnsureDesignUserMentionsNoteIdBigintBackfillIsFinishedForGitlabDotCom", version=20230321024333, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230321024333_ensure_design_user_mentions_note_id_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">789 uses one of the allowed migration classes790 migration: #<struct ActiveRecord::MigrationProxy name="SwapDesignUserMentionsNoteIdToBigintForGitlabDotCom", version=20230321024903, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230321024903_swap_design_user_mentions_note_id_to_bigint_for_gitlab_dot_com.rb", scope="">791 uses one of the allowed migration classes792 migration: #<struct ActiveRecord::MigrationProxy name="AddColumnToUsersStatistisc", version=20230321085011, filename="db/migrate/20230321085011_add_column_to_users_statistisc.rb", scope="">793 uses one of the allowed migration classes794 migration: #<struct ActiveRecord::MigrationProxy name="RemoveNamespacesBroadcastMessagesNamespaceIdFk", version=20230321095759, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230321095759_remove_namespaces_broadcast_messages_namespace_id_fk.rb", scope="">795 uses one of the allowed migration classes796 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexesToMergeRequestComplianceViolations", version=20230321113956, filename="db/migrate/20230321113956_add_indexes_to_merge_request_compliance_violations.rb", scope="">797 uses one of the allowed migration classes798 migration: #<struct ActiveRecord::MigrationProxy name="RemoveCiBuildsPartitionIdDefault", version=20230321124837, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230321124837_remove_ci_builds_partition_id_default.rb", scope="">799 uses one of the allowed migration classes800 migration: #<struct ActiveRecord::MigrationProxy name="AddPackageIdCreatedAtDescIndexToPackageFiles", version=20230321153035, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230321153035_add_package_id_created_at_desc_index_to_package_files.rb", scope="">801 uses one of the allowed migration classes802 migration: #<struct ActiveRecord::MigrationProxy name="RenameMlCandidatesIidToEid", version=20230321153304, filename="db/migrate/20230321153304_rename_ml_candidates_iid_to_eid.rb", scope="">803 uses one of the allowed migration classes804 migration: #<struct ActiveRecord::MigrationProxy name="CleanupMlCandidatesIidRename", version=20230321153337, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230321153337_cleanup_ml_candidates_iid_rename.rb", scope="">805 uses one of the allowed migration classes806 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectAccessTokenLimitToPlanLimits", version=20230321161218, filename="db/migrate/20230321161218_add_project_access_token_limit_to_plan_limits.rb", scope="">807 uses one of the allowed migration classes808 migration: #<struct ActiveRecord::MigrationProxy name="InsertProjectAccessTokenLimit", version=20230321161441, filename="db/migrate/20230321161441_insert_project_access_token_limit.rb", scope="">809 uses one of the allowed migration classes810 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectIdToMlCandidates", version=20230321162810, filename="db/migrate/20230321162810_add_project_id_to_ml_candidates.rb", scope="">811 uses one of the allowed migration classes812 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnProjectIdOnMlCandidates", version=20230321162902, filename="db/migrate/20230321162902_add_index_on_project_id_on_ml_candidates.rb", scope="">813 uses one of the allowed migration classes814 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectIdForeignKeyToMlCandidates", version=20230321163051, filename="db/migrate/20230321163051_add_project_id_foreign_key_to_ml_candidates.rb", scope="">815 uses one of the allowed migration classes816 migration: #<struct ActiveRecord::MigrationProxy name="CleanupConversionBigIntCiBuildNeeds", version=20230321163547, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230321163547_cleanup_conversion_big_int_ci_build_needs.rb", scope="">817 uses one of the allowed migration classes818 migration: #<struct ActiveRecord::MigrationProxy name="BackfillMlCandidatesProjectId", version=20230321163947, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230321163947_backfill_ml_candidates_project_id.rb", scope="">819 uses one of the allowed migration classes820 migration: #<struct ActiveRecord::MigrationProxy name="AddInternalIdToMlCandidates", version=20230321170734, filename="db/migrate/20230321170734_add_internal_id_to_ml_candidates.rb", scope="">821 uses one of the allowed migration classes822 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnProjectIdOnInternalIdToMlCandidates", version=20230321170803, filename="db/migrate/20230321170803_add_index_on_project_id_on_internal_id_to_ml_candidates.rb", scope="">823 uses one of the allowed migration classes824 migration: #<struct ActiveRecord::MigrationProxy name="BackfillMlCandidatesInternalId", version=20230321170823, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230321170823_backfill_ml_candidates_internal_id.rb", scope="">825 uses one of the allowed migration classes826 migration: #<struct ActiveRecord::MigrationProxy name="EnsureSnippetUserMentionsBigintBackfillIsFinishedForGitlabDotCom", version=20230322011220, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230322011220_ensure_snippet_user_mentions_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">827 uses one of the allowed migration classes828 migration: #<struct ActiveRecord::MigrationProxy name="SwapSnippetUserMentionsNoteIdToBigintForGitlabDotCom", version=20230322012209, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230322012209_swap_snippet_user_mentions_note_id_to_bigint_for_gitlab_dot_com.rb", scope="">829 uses one of the allowed migration classes830 migration: #<struct ActiveRecord::MigrationProxy name="EnsureNoteDiffFilesBigintBackfillIsFinishedForGitlabDotCom", version=20230322023442, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230322023442_ensure_note_diff_files_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">831 uses one of the allowed migration classes832 migration: #<struct ActiveRecord::MigrationProxy name="RemoveUserNamespaceRecordsFromVsaAggregation", version=20230322085041, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230322085041_remove_user_namespace_records_from_vsa_aggregation.rb", scope="">833 uses one of the allowed migration classes834 migration: #<struct ActiveRecord::MigrationProxy name="ValidatePartitioningConstraintOnCiBuilds", version=20230322085852, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230322085852_validate_partitioning_constraint_on_ci_builds.rb", scope="">835 uses one of the allowed migration classes836 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectIdForeignKeyToPackagesNpmMetadataCaches", version=20230322145403, filename="db/migrate/20230322145403_add_project_id_foreign_key_to_packages_npm_metadata_caches.rb", scope="">837 uses one of the allowed migration classes838 migration: #<struct ActiveRecord::MigrationProxy name="RerunRemoveInvalidDeployAccessLevel", version=20230322151605, filename="db/migrate/20230322151605_rerun_remove_invalid_deploy_access_level.rb", scope="">839 uses one of the allowed migration classes840 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForMergeRequestMetrics", version=20230322151635, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230322151635_cleanup_bigint_conversion_for_merge_request_metrics.rb", scope="">841 uses one of the allowed migration classes842 migration: #<struct ActiveRecord::MigrationProxy name="AddValidDeployAccessLevelConstraint", version=20230322162512, filename="db/migrate/20230322162512_add_valid_deploy_access_level_constraint.rb", scope="">843 uses one of the allowed migration classes844 migration: #<struct ActiveRecord::MigrationProxy name="CreateDesignManagementRepositoryStates", version=20230322164031, filename="db/migrate/20230322164031_create_design_management_repository_states.rb", scope="">845 uses one of the allowed migration classes846 migration: #<struct ActiveRecord::MigrationProxy name="ChangeUserTypeDefault", version=20230322203927, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230322203927_change_user_type_default.rb", scope="">847 uses one of the allowed migration classes848 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueIndexDiffNoteIdConvertToBigintForGitlabCom", version=20230323005730, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230323005730_add_unique_index_diff_note_id_convert_to_bigint_for_gitlab_com.rb", scope="">849 uses one of the allowed migration classes850 migration: #<struct ActiveRecord::MigrationProxy name="AddFkOnDiffNoteIdConvertToBigintForGitlabCom", version=20230323010111, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230323010111_add_fk_on_diff_note_id_convert_to_bigint_for_gitlab_com.rb", scope="">851 uses one of the allowed migration classes852 migration: #<struct ActiveRecord::MigrationProxy name="AsyncValidateFkNoteDiffFilesDiffNoteIdConvertToBigintForGitlabCom", version=20230323013251, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230323013251_async_validate_fk_note_diff_files_diff_note_id_convert_to_bigint_for_gitlab_com.rb", scope="">853 uses one of the allowed migration classes854 migration: #<struct ActiveRecord::MigrationProxy name="AddSilentModeEnabledToApplicationSettings", version=20230323021618, filename="db/migrate/20230323021618_add_silent_mode_enabled_to_application_settings.rb", scope="">855 uses one of the allowed migration classes856 migration: #<struct ActiveRecord::MigrationProxy name="AddAwardEmojiWorkItemWidget", version=20230323101138, filename="db/migrate/20230323101138_add_award_emoji_work_item_widget.rb", scope="">857 uses one of the allowed migration classes858 migration: #<struct ActiveRecord::MigrationProxy name="CreateDoraPerformanceScores", version=20230323120601, filename="db/migrate/20230323120601_create_dora_performance_scores.rb", scope="">859 uses one of the allowed migration classes860 migration: #<struct ActiveRecord::MigrationProxy name="RemoveMachineIdFromBuildsMetadata", version=20230323131521, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230323131521_remove_machine_id_from_builds_metadata.rb", scope="">861 uses one of the allowed migration classes862 migration: #<struct ActiveRecord::MigrationProxy name="AddRootDirectoryToPagesDeployment", version=20230323140745, filename="db/migrate/20230323140745_add_root_directory_to_pages_deployment.rb", scope="">863 uses one of the allowed migration classes864 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToPagesDeploymentRootDirectory", version=20230323140746, filename="db/migrate/20230323140746_add_text_limit_to_pages_deployment_root_directory.rb", scope="">865 uses one of the allowed migration classes866 migration: #<struct ActiveRecord::MigrationProxy name="TrackPushRulesDeletions", version=20230323153042, filename="db/migrate/20230323153042_track_push_rules_deletions.rb", scope="">867 uses one of the allowed migration classes868 migration: #<struct ActiveRecord::MigrationProxy name="TrackTagsDeletions", version=20230323153328, filename="db/migrate/20230323153328_track_tags_deletions.rb", scope="">869 uses one of the allowed migration classes870 migration: #<struct ActiveRecord::MigrationProxy name="FixApplicationSettingPushRuleIdFk", version=20230323153433, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230323153433_fix_application_setting_push_rule_id_fk.rb", scope="">871 uses one of the allowed migration classes872 migration: #<struct ActiveRecord::MigrationProxy name="AddShardSettingsToSearchIndices", version=20230323191750, filename="db/migrate/20230323191750_add_shard_settings_to_search_indices.rb", scope="">873 uses one of the allowed migration classes874 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToAbuseReportsScreenshot", version=20230327074932, filename="db/migrate/20230327074932_add_text_limit_to_abuse_reports_screenshot.rb", scope="">875 uses one of the allowed migration classes876 migration: #<struct ActiveRecord::MigrationProxy name="QueueMigrateHumanUserType", version=20230327103401, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230327103401_queue_migrate_human_user_type.rb", scope="">877 uses one of the allowed migration classes878 migration: #<struct ActiveRecord::MigrationProxy name="BackfillProductAnalyticsDataCollectorHost", version=20230327123333, filename="db/migrate/20230327123333_backfill_product_analytics_data_collector_host.rb", scope="">879 uses one of the allowed migration classes880 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToVulnerabilityFindingSignaturesOnSignatureSha", version=20230327125705, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230327125705_add_index_to_vulnerability_finding_signatures_on_signature_sha.rb", scope="">881 uses one of the allowed migration classes882 migration: #<struct ActiveRecord::MigrationProxy name="RemoveCiBuildsPartitionIdDefaultV2", version=20230327144152, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230327144152_remove_ci_builds_partition_id_default_v2.rb", scope="">883 uses one of the allowed migration classes884 migration: #<struct ActiveRecord::MigrationProxy name="DeleteUnusedIndexOnMergeRequestsOnStateIdAndMergeStatus", version=20230328020316, filename="db/migrate/20230328020316_delete_unused_index_on_merge_requests_on_state_id_and_merge_status.rb", scope="">885 uses one of the allowed migration classes886 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfAwardEmojiAwardableIdToBigint", version=20230328023535, filename="db/migrate/20230328023535_initialize_conversion_of_award_emoji_awardable_id_to_bigint.rb", scope="">887 uses one of the allowed migration classes888 migration: #<struct ActiveRecord::MigrationProxy name="BackfillAwardEmojiAwardableIdForBigintConversion", version=20230328023554, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230328023554_backfill_award_emoji_awardable_id_for_bigint_conversion.rb", scope="">889 uses one of the allowed migration classes890 migration: #<struct ActiveRecord::MigrationProxy name="AddSecureflagTrainingProvider", version=20230328030101, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230328030101_add_secureflag_training_provider.rb", scope="">891 uses one of the allowed migration classes892 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfEventsTargetIdToBigint", version=20230328031720, filename="db/migrate/20230328031720_initialize_conversion_of_events_target_id_to_bigint.rb", scope="">893 uses one of the allowed migration classes894 migration: #<struct ActiveRecord::MigrationProxy name="BackfillEventsTargetIdForBigintConversion", version=20230328031838, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230328031838_backfill_events_target_id_for_bigint_conversion.rb", scope="">895 uses one of the allowed migration classes896 migration: #<struct ActiveRecord::MigrationProxy name="TruncateErrorTrackingTables", version=20230328100534, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230328100534_truncate_error_tracking_tables.rb", scope="">897 uses one of the allowed migration classes898 migration: #<struct ActiveRecord::MigrationProxy name="ReMigrateRedisSlotKeys", version=20230328111013, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230328111013_re_migrate_redis_slot_keys.rb", scope="">899 uses one of the allowed migration classes900 migration: #<struct ActiveRecord::MigrationProxy name="AddRetriedAtToStatusCheckResponses", version=20230328150343, filename="db/migrate/20230328150343_add_retried_at_to_status_check_responses.rb", scope="">901 uses one of the allowed migration classes902 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncIndexForSecurityScansOnPipelineIdAndScanType", version=20230328151756, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230328151756_prepare_async_index_for_security_scans_on_pipeline_id_and_scan_type.rb", scope="">903 uses one of the allowed migration classes904 migration: #<struct ActiveRecord::MigrationProxy name="AddDisabledFollowingToUserPreferences", version=20230328165313, filename="db/migrate/20230328165313_add_disabled_following_to_user_preferences.rb", scope="">905 uses one of the allowed migration classes906 migration: #<struct ActiveRecord::MigrationProxy name="SwapSentNotificationsIdColumns", version=20230328184031, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230328184031_swap_sent_notifications_id_columns.rb", scope="">907 uses one of the allowed migration classes908 migration: #<struct ActiveRecord::MigrationProxy name="AddLockVersionToTerraformState", version=20230329032129, filename="db/migrate/20230329032129_add_lock_version_to_terraform_state.rb", scope="">909 uses one of the allowed migration classes910 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyToResourceLinkEventsOnUser", version=20230329085754, filename="db/migrate/20230329085754_add_foreign_key_to_resource_link_events_on_user.rb", scope="">911 uses one of the allowed migration classes912 migration: #<struct ActiveRecord::MigrationProxy name="TruncatePCiRunnerMachineBuilds", version=20230329091107, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230329091107_truncate_p_ci_runner_machine_builds.rb", scope="">913 uses one of the allowed migration classes914 migration: #<struct ActiveRecord::MigrationProxy name="SwapCiRunnerMachineBuildsPrimaryKeyV2", version=20230329091300, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230329091300_swap_ci_runner_machine_builds_primary_key_v2.rb", scope="">915 uses one of the allowed migration classes916 migration: #<struct ActiveRecord::MigrationProxy name="DropSoftwareLicensesTempIndex", version=20230329100222, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230329100222_drop_software_licenses_temp_index.rb", scope="">917 uses one of the allowed migration classes918 migration: #<struct ActiveRecord::MigrationProxy name="AddAchievementsEnabledToUserPreferences", version=20230329152410, filename="db/migrate/20230329152410_add_achievements_enabled_to_user_preferences.rb", scope="">919 uses one of the allowed migration classes920 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToSecurityScansOnPipelineIdAndScanType", version=20230329163232, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230329163232_add_index_to_security_scans_on_pipeline_id_and_scan_type.rb", scope="">921 uses one of the allowed migration classes922 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexPackagesDebianFileMetadataWhenUnknown", version=20230329194244, filename="db/migrate/20230329194244_add_index_packages_debian_file_metadata_when_unknown.rb", scope="">923 uses one of the allowed migration classes924 migration: #<struct ActiveRecord::MigrationProxy name="AddDiagramsnetToApplicationSettings", version=20230329235300, filename="db/migrate/20230329235300_add_diagramsnet_to_application_settings.rb", scope="">925 uses one of the allowed migration classes926 migration: #<struct ActiveRecord::MigrationProxy name="RemoveTmpIndexVulnOccurrencesOnReportType", version=20230330080731, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230330080731_remove_tmp_index_vuln_occurrences_on_report_type.rb", scope="">927 uses one of the allowed migration classes928 migration: #<struct ActiveRecord::MigrationProxy name="CreateFkMlCandidateParamsOnCandidateId", version=20230330101438, filename="db/migrate/20230330101438_create_fk_ml_candidate_params_on_candidate_id.rb", scope="">929 uses one of the allowed migration classes930 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkMlCandidateParamsOnCandidateId", version=20230330101439, filename="db/migrate/20230330101439_validate_fk_ml_candidate_params_on_candidate_id.rb", scope="">931 uses one of the allowed migration classes932 migration: #<struct ActiveRecord::MigrationProxy name="RemoveOldFkMlCandidateParamsOnCandidateId", version=20230330101440, filename="db/migrate/20230330101440_remove_old_fk_ml_candidate_params_on_candidate_id.rb", scope="">933 uses one of the allowed migration classes934 migration: #<struct ActiveRecord::MigrationProxy name="CreateFkMlCandidateMetricsOnCandidateId", version=20230330101441, filename="db/migrate/20230330101441_create_fk_ml_candidate_metrics_on_candidate_id.rb", scope="">935 uses one of the allowed migration classes936 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkMlCandidateMetricsOnCandidateId", version=20230330101442, filename="db/migrate/20230330101442_validate_fk_ml_candidate_metrics_on_candidate_id.rb", scope="">937 uses one of the allowed migration classes938 migration: #<struct ActiveRecord::MigrationProxy name="RemoveOldFkMlCandidateMetricsOnCandidateId", version=20230330101443, filename="db/migrate/20230330101443_remove_old_fk_ml_candidate_metrics_on_candidate_id.rb", scope="">939 uses one of the allowed migration classes940 migration: #<struct ActiveRecord::MigrationProxy name="RescheduleMigrateEvidences", version=20230330103104, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230330103104_reschedule_migrate_evidences.rb", scope="">941 uses one of the allowed migration classes942 migration: #<struct ActiveRecord::MigrationProxy name="RemoveUnusedProjectJiraIndexes", version=20230330215636, filename="db/migrate/20230330215636_remove_unused_project_jira_indexes.rb", scope="">943 uses one of the allowed migration classes944 migration: #<struct ActiveRecord::MigrationProxy name="AddOpenAiApiKeyApplicationSetting", version=20230331142006, filename="db/migrate/20230331142006_add_open_ai_api_key_application_setting.rb", scope="">945 uses one of the allowed migration classes946 migration: #<struct ActiveRecord::MigrationProxy name="AddDatabaseMaxRunningBatchedBackgroundMigrationsToApplicationSettings", version=20230403023440, filename="db/migrate/20230403023440_add_database_max_running_batched_background_migrations_to_application_settings.rb", scope="">947 uses one of the allowed migration classes948 migration: #<struct ActiveRecord::MigrationProxy name="SetMaxRunningBatchedBackgroundMigrationsForGitlabCom", version=20230403023441, filename="db/migrate/20230403023441_set_max_running_batched_background_migrations_for_gitlab_com.rb", scope="">949 uses one of the allowed migration classes950 migration: #<struct ActiveRecord::MigrationProxy name="SwapNoteDiffFilesNoteIdToBigintForGitlabDotCom", version=20230403023828, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230403023828_swap_note_diff_files_note_id_to_bigint_for_gitlab_dot_com.rb", scope="">951 uses one of the allowed migration classes952 migration: #<struct ActiveRecord::MigrationProxy name="EnsureIssueUserMentionsBigintBackfillIsFinishedForGitlabDotCom", version=20230403041642, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230403041642_ensure_issue_user_mentions_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">953 uses one of the allowed migration classes954 migration: #<struct ActiveRecord::MigrationProxy name="SwapIssueUserMentionsNoteIdToBigintForGitlabDotCom", version=20230403041917, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230403041917_swap_issue_user_mentions_note_id_to_bigint_for_gitlab_dot_com.rb", scope="">955 uses one of the allowed migration classes956 migration: #<struct ActiveRecord::MigrationProxy name="AddTmpPartialIndexOnVulnerabilityReportTypes2", version=20230403085957, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230403085957_add_tmp_partial_index_on_vulnerability_report_types2.rb", scope="">957 uses one of the allowed migration classes958 migration: #<struct ActiveRecord::MigrationProxy name="AddSyncTmpPartialIndexOnVulnerabilityReportTypes2", version=20230403085958, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230403085958_add_sync_tmp_partial_index_on_vulnerability_report_types2.rb", scope="">959 uses one of the allowed migration classes960 migration: #<struct ActiveRecord::MigrationProxy name="EnsurePackagesNpmMetadataCachesIsEmpty", version=20230403093349, filename="db/migrate/20230403093349_ensure_packages_npm_metadata_caches_is_empty.rb", scope="">961 uses one of the allowed migration classes962 migration: #<struct ActiveRecord::MigrationProxy name="AddPinnedNavItemsToUserPreference", version=20230403113620, filename="db/migrate/20230403113620_add_pinned_nav_items_to_user_preference.rb", scope="">963 uses one of the allowed migration classes964 migration: #<struct ActiveRecord::MigrationProxy name="AddPurlSyncToSettings", version=20230403145705, filename="db/migrate/20230403145705_add_purl_sync_to_settings.rb", scope="">965 uses one of the allowed migration classes966 migration: #<struct ActiveRecord::MigrationProxy name="AddForkStorageSizeColumnsToRootStorageStatistics", version=20230403164454, filename="db/migrate/20230403164454_add_fork_storage_size_columns_to_root_storage_statistics.rb", scope="">967 uses one of the allowed migration classes968 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToSecurityScansOnScanType", version=20230403190527, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230403190527_add_index_to_security_scans_on_scan_type.rb", scope="">969 uses one of the allowed migration classes970 migration: #<struct ActiveRecord::MigrationProxy name="ResyncScanResultPoliciesForNamespaces", version=20230403221928, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230403221928_resync_scan_result_policies_for_namespaces.rb", scope="">971 uses one of the allowed migration classes972 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueIndexIssueUserMentionsNoteIdConvertToBigintForGitlabCom", version=20230403231455, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230403231455_add_unique_index_issue_user_mentions_note_id_convert_to_bigint_for_gitlab_com.rb", scope="">973 uses one of the allowed migration classes974 migration: #<struct ActiveRecord::MigrationProxy name="AddFkOnIssueUserMentionsNoteIdConvertToBigintForGitlabCom", version=20230403231841, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230403231841_add_fk_on_issue_user_mentions_note_id_convert_to_bigint_for_gitlab_com.rb", scope="">975 uses one of the allowed migration classes976 migration: #<struct ActiveRecord::MigrationProxy name="AsyncValidateFkIssueUserMentionsNoteIdConvertToBigintForGitlabCom", version=20230403232121, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230403232121_async_validate_fk_issue_user_mentions_note_id_convert_to_bigint_for_gitlab_com.rb", scope="">977 uses one of the allowed migration classes978 migration: #<struct ActiveRecord::MigrationProxy name="EnsureSuggestionsNoteIdBigintBackfillIsFinishedForGitlabDotCom", version=20230404023648, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230404023648_ensure_suggestions_note_id_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">979 uses one of the allowed migration classes980 migration: #<struct ActiveRecord::MigrationProxy name="SwapSuggestionsNoteIdToBigintForGitlabDotCom", version=20230404023915, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230404023915_swap_suggestions_note_id_to_bigint_for_gitlab_dot_com.rb", scope="">981 uses one of the allowed migration classes982 migration: #<struct ActiveRecord::MigrationProxy name="EnsureEpicUserMentionsBigintBackfillIsFinishedForGitlabDotCom", version=20230404030757, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230404030757_ensure_epic_user_mentions_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">983 uses one of the allowed migration classes984 migration: #<struct ActiveRecord::MigrationProxy name="SwapEpicUserMentionsNoteIdToBigintForGitlabDotCom", version=20230404031041, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230404031041_swap_epic_user_mentions_note_id_to_bigint_for_gitlab_dot_com.rb", scope="">985 uses one of the allowed migration classes986 migration: #<struct ActiveRecord::MigrationProxy name="DropAsyncIndexCiJobArtifactsOnExpireAtForRemoval", version=20230404044338, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230404044338_drop_async_index_ci_job_artifacts_on_expire_at_for_removal.rb", scope="">987 uses one of the allowed migration classes988 migration: #<struct ActiveRecord::MigrationProxy name="RemoveUnusedMergeRequestJiraIndexes", version=20230404050414, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230404050414_remove_unused_merge_request_jira_indexes.rb", scope="">989 uses one of the allowed migration classes990 migration: #<struct ActiveRecord::MigrationProxy name="DropSyncIndexCiJobArtifactsOnExpireAtForRemoval", version=20230404061832, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230404061832_drop_sync_index_ci_job_artifacts_on_expire_at_for_removal.rb", scope="">991 uses one of the allowed migration classes992 migration: #<struct ActiveRecord::MigrationProxy name="AddFirstContributionToMergeRequestMetrics", version=20230404111427, filename="db/migrate/20230404111427_add_first_contribution_to_merge_request_metrics.rb", scope="">993 uses one of the allowed migration classes994 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncIndexForOverrideUuidsLogic", version=20230404132544, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230404132544_prepare_async_index_for_override_uuids_logic.rb", scope="">995 uses one of the allowed migration classes996 migration: #<struct ActiveRecord::MigrationProxy name="AddStatusToDataRepairDetails", version=20230404160131, filename="db/migrate/20230404160131_add_status_to_data_repair_details.rb", scope="">997 uses one of the allowed migration classes998 migration: #<struct ActiveRecord::MigrationProxy name="RemoveMrMentionsTempIndex", version=20230404194907, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230404194907_remove_mr_mentions_temp_index.rb", scope="">999 uses one of the allowed migration classes1000 migration: #<struct ActiveRecord::MigrationProxy name="RemoveMrStateIdTempIndex", version=20230404194908, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230404194908_remove_mr_state_id_temp_index.rb", scope="">1001 uses one of the allowed migration classes1002 migration: #<struct ActiveRecord::MigrationProxy name="AddObjectStorageKeyToPackagesNpmMetadataCaches", version=20230405071033, filename="db/migrate/20230405071033_add_object_storage_key_to_packages_npm_metadata_caches.rb", scope="">1003 uses one of the allowed migration classes1004 migration: #<struct ActiveRecord::MigrationProxy name="RemovePCiBuildsMetadataPartitionIdDefault", version=20230405072302, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230405072302_remove_p_ci_builds_metadata_partition_id_default.rb", scope="">1005 uses one of the allowed migration classes1006 migration: #<struct ActiveRecord::MigrationProxy name="CreateIndexForOverrideUuidsLogicOnVulnerabilityOccurrences", version=20230405094230, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230405094230_create_index_for_override_uuids_logic_on_vulnerability_occurrences.rb", scope="">1007 uses one of the allowed migration classes1008 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueNamespaceIndexToStorageLimitExclusions", version=20230405102815, filename="db/migrate/20230405102815_add_unique_namespace_index_to_storage_limit_exclusions.rb", scope="">1009 uses one of the allowed migration classes1010 migration: #<struct ActiveRecord::MigrationProxy name="RemoveSamlProviderAndIdentitiesNonRootGroup", version=20230405132104, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230405132104_remove_saml_provider_and_identities_non_root_group.rb", scope="">1011 uses one of the allowed migration classes1012 migration: #<struct ActiveRecord::MigrationProxy name="RemoveScimTokenAndScimIdentityNonRootGroup", version=20230405132855, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230405132855_remove_scim_token_and_scim_identity_non_root_group.rb", scope="">1013 uses one of the allowed migration classes1014 migration: #<struct ActiveRecord::MigrationProxy name="RequeueBackfillProjectWikiRepositories", version=20230405200858, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230405200858_requeue_backfill_project_wiki_repositories.rb", scope="">1015 uses one of the allowed migration classes1016 migration: #<struct ActiveRecord::MigrationProxy name="AddSystemNoteMetadataIdToResourceLinkEvents", version=20230406040908, filename="db/migrate/20230406040908_add_system_note_metadata_id__to_resource_link_events.rb", scope="">1017 uses one of the allowed migration classes1018 migration: #<struct ActiveRecord::MigrationProxy name="AllowNullFileMd5ToDebianProjectComponentFiles", version=20230406041555, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230406041555_allow_null_file_md5_to_debian_project_component_files.rb", scope="">1019 uses one of the allowed migration classes1020 migration: #<struct ActiveRecord::MigrationProxy name="AllowNullFileMd5ToDebianGroupComponentFiles", version=20230406041629, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230406041629_allow_null_file_md5_to_debian_group_component_files.rb", scope="">1021 uses one of the allowed migration classes1022 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueIndexToResourceLinkEventsOnSystemNoteMetadataId", version=20230406042906, filename="db/migrate/20230406042906_add_unique_index_to_resource_link_events_on_system_note_metadata_id.rb", scope="">1023 uses one of the allowed migration classes1024 migration: #<struct ActiveRecord::MigrationProxy name="AddSystemNoteMetadataForeignKeyToResourceLinkEvents", version=20230406043900, filename="db/migrate/20230406043900_add_system_note_metadata_foreign_key_to_resource_link_events.rb", scope="">1025 uses one of the allowed migration classes1026 migration: #<struct ActiveRecord::MigrationProxy name="CreateInstanceExternalAuditEventDestinations", version=20230406060452, filename="db/migrate/20230406060452_create_instance_external_audit_event_destinations.rb", scope="">1027 uses one of the allowed migration classes1028 migration: #<struct ActiveRecord::MigrationProxy name="ValidateForeignKeyForResourceLinkEventsOnSystemNoteMetadataId", version=20230406073847, filename="db/migrate/20230406073847_validate_foreign_key_for_resource_link_events_on_system_note_metadata_id.rb", scope="">1029 uses one of the allowed migration classes1030 migration: #<struct ActiveRecord::MigrationProxy name="RequeueBackfillAdminModeScopeForPersonalAccessTokens", version=20230406093640, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230406093640_requeue_backfill_admin_mode_scope_for_personal_access_tokens.rb", scope="">1031 uses one of the allowed migration classes1032 migration: #<struct ActiveRecord::MigrationProxy name="AddPaConfiguratorBaseToAppSettings", version=20230406095544, filename="db/migrate/20230406095544_add_pa_configurator_base_to_app_settings.rb", scope="">1033 uses one of the allowed migration classes1034 migration: #<struct ActiveRecord::MigrationProxy name="AddDiagramsnetTextLimit", version=20230406115900, filename="db/migrate/20230406115900_add_diagramsnet_text_limit.rb", scope="">1035 uses one of the allowed migration classes1036 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillDesignManagementRepositories", version=20230406121544, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230406121544_queue_backfill_design_management_repositories.rb", scope="">1037 uses one of the allowed migration classes1038 migration: #<struct ActiveRecord::MigrationProxy name="AddIdentityToggleToUserPreferences", version=20230406134436, filename="db/migrate/20230406134436_add_identity_toggle_to_user_preferences.rb", scope="">1039 uses one of the allowed migration classes1040 migration: #<struct ActiveRecord::MigrationProxy name="CreateAgentUserAccessProjectAuthorizationsTable", version=20230406150254, filename="db/migrate/20230406150254_create_agent_user_access_project_authorizations_table.rb", scope="">1041 uses one of the allowed migration classes1042 migration: #<struct ActiveRecord::MigrationProxy name="CreateAgentUserAccessGroupAuthorizationsTable", version=20230406150354, filename="db/migrate/20230406150354_create_agent_user_access_group_authorizations_table.rb", scope="">1043 uses one of the allowed migration classes1044 migration: #<struct ActiveRecord::MigrationProxy name="AddFksToAgentUserAccessAuthorizations", version=20230406150454, filename="db/migrate/20230406150454_add_fks_to_agent_user_access_authorizations.rb", scope="">1045 uses one of the allowed migration classes1046 migration: #<struct ActiveRecord::MigrationProxy name="AddCodeSuggestionsToNamespaceSettings", version=20230407164616, filename="db/migrate/20230407164616_add_code_suggestions_to_namespace_settings.rb", scope="">1047 uses one of the allowed migration classes1048 migration: #<struct ActiveRecord::MigrationProxy name="AddProductAnalyticsInstrumentationKeyToProjectSettings", version=20230410092450, filename="db/migrate/20230410092450_add_product_analytics_instrumentation_key_to_project_settings.rb", scope="">1049 uses one of the allowed migration classes1050 migration: #<struct ActiveRecord::MigrationProxy name="AsyncValidateFkProjectsCreatorId", version=20230410111251, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230410111251_async_validate_fk_projects_creator_id.rb", scope="">1051 uses one of the allowed migration classes1052 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkProjectsCreatorId", version=20230410123709, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230410123709_validate_fk_projects_creator_id.rb", scope="">1053 uses one of the allowed migration classes1054 migration: #<struct ActiveRecord::MigrationProxy name="AddTempIndexToNullDismissedInfoVulnerabilities", version=20230411011959, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230411011959_add_temp_index_to_null_dismissed_info_vulnerabilities.rb", scope="">1055 uses one of the allowed migration classes1056 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForSentNotifications", version=20230411153310, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230411153310_cleanup_bigint_conversion_for_sent_notifications.rb", scope="">1057 uses one of the allowed migration classes1058 migration: #<struct ActiveRecord::MigrationProxy name="CreateAbuseTrustScores", version=20230411171001, filename="db/migrate/20230411171001_create_abuse_trust_scores.rb", scope="">1059 uses one of the allowed migration classes1060 migration: #<struct ActiveRecord::MigrationProxy name="CreatePackageMetadataAdvisoryInfo", version=20230411205121, filename="db/migrate/20230411205121_create_package_metadata_advisory_info.rb", scope="">1061 uses one of the allowed migration classes1062 migration: #<struct ActiveRecord::MigrationProxy name="EnsureSystemNoteMetadataBigintBackfillIsFinishedForGitlabDotCom", version=20230412013251, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412013251_ensure_system_note_metadata_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">1063 uses one of the allowed migration classes1064 migration: #<struct ActiveRecord::MigrationProxy name="CreateIssueAssignmentEvents", version=20230412073614, filename="db/migrate/20230412073614_create_issue_assignment_events.rb", scope="">1065 uses one of the allowed migration classes1066 migration: #<struct ActiveRecord::MigrationProxy name="AddConcurrentFkToIssueAssignmentEvents", version=20230412080242, filename="db/migrate/20230412080242_add_concurrent_fk_to_issue_assignment_events.rb", scope="">1067 uses one of the allowed migration classes1068 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToGroupGroupLinks", version=20230412104514, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412104514_add_index_to_group_group_links.rb", scope="">1069 uses one of the allowed migration classes1070 migration: #<struct ActiveRecord::MigrationProxy name="RescheduleLinksAvoidingDuplication", version=20230412141541, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412141541_reschedule_links_avoiding_duplication.rb", scope="">1071 uses one of the allowed migration classes1072 migration: #<struct ActiveRecord::MigrationProxy name="AddCiJobArtifactsFileFinalPath", version=20230412151659, filename="db/migrate/20230412151659_add_ci_job_artifacts_file_final_path.rb", scope="">1073 uses one of the allowed migration classes1074 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToCiJobArtifactsFileFinalPath", version=20230412152538, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412152538_add_text_limit_to_ci_job_artifacts_file_final_path.rb", scope="">1075 uses one of the allowed migration classes1076 migration: #<struct ActiveRecord::MigrationProxy name="QueuePopulateVulnerabilityDismissalFields", version=20230412185837, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412185837_queue_populate_vulnerability_dismissal_fields.rb", scope="">1077 uses one of the allowed migration classes1078 migration: #<struct ActiveRecord::MigrationProxy name="ValidateCiJobArtifactsFileFinalPath", version=20230412185920, filename="db/migrate/20230412185920_validate_ci_job_artifacts_file_final_path.rb", scope="">1079 uses one of the allowed migration classes1080 migration: #<struct ActiveRecord::MigrationProxy name="RemoveClustersApplicationsCertManagersFk", version=20230412201517, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412201517_remove_clusters_applications_cert_managers_fk.rb", scope="">1081 uses one of the allowed migration classes1082 migration: #<struct ActiveRecord::MigrationProxy name="RemoveClustersApplicationsCiliumFk", version=20230412201528, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412201528_remove_clusters_applications_cilium_fk.rb", scope="">1083 uses one of the allowed migration classes1084 migration: #<struct ActiveRecord::MigrationProxy name="RemoveClustersApplicationsCrossplaneFk", version=20230412201539, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412201539_remove_clusters_applications_crossplane_fk.rb", scope="">1085 uses one of the allowed migration classes1086 migration: #<struct ActiveRecord::MigrationProxy name="RemoveClustersApplicationsHelmFk", version=20230412201549, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412201549_remove_clusters_applications_helm_fk.rb", scope="">1087 uses one of the allowed migration classes1088 migration: #<struct ActiveRecord::MigrationProxy name="RemoveClustersApplicationsIngressFk", version=20230412201600, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412201600_remove_clusters_applications_ingress_fk.rb", scope="">1089 uses one of the allowed migration classes1090 migration: #<struct ActiveRecord::MigrationProxy name="RemoveClustersApplicationsJupyterFk", version=20230412201611, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412201611_remove_clusters_applications_jupyter_fk.rb", scope="">1091 uses one of the allowed migration classes1092 migration: #<struct ActiveRecord::MigrationProxy name="RemoveClustersApplicationsKnativeFk", version=20230412201621, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412201621_remove_clusters_applications_knative_fk.rb", scope="">1093 uses one of the allowed migration classes1094 migration: #<struct ActiveRecord::MigrationProxy name="RemoveClustersApplicationsPrometheusFk", version=20230412201632, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412201632_remove_clusters_applications_prometheus_fk.rb", scope="">1095 uses one of the allowed migration classes1096 migration: #<struct ActiveRecord::MigrationProxy name="RemoveClustersApplicationsRunnersFk", version=20230412201642, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412201642_remove_clusters_applications_runners_fk.rb", scope="">1097 uses one of the allowed migration classes1098 migration: #<struct ActiveRecord::MigrationProxy name="RemoveClustersApplicationsJupyterOauthFk", version=20230412203234, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412203234_remove_clusters_applications_jupyter_oauth_fk.rb", scope="">1099 uses one of the allowed migration classes1100 migration: #<struct ActiveRecord::MigrationProxy name="RemoveServerlessDomainClusterPagesFk", version=20230412204143, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412204143_remove_serverless_domain_cluster_pages_fk.rb", scope="">1101 uses one of the allowed migration classes1102 migration: #<struct ActiveRecord::MigrationProxy name="RemoveServerlessDomainClusterKnativeFk", version=20230412204201, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412204201_remove_serverless_domain_cluster_knative_fk.rb", scope="">1103 uses one of the allowed migration classes1104 migration: #<struct ActiveRecord::MigrationProxy name="RemoveServerlessDomainClusterCreatorFk", version=20230412204224, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412204224_remove_serverless_domain_cluster_creator_fk.rb", scope="">1105 uses one of the allowed migration classes1106 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeEncryptCiTriggerToken", version=20230412214119, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230412214119_finalize_encrypt_ci_trigger_token.rb", scope="">1107 uses one of the allowed migration classes1108 migration: #<struct ActiveRecord::MigrationProxy name="RemoveIndexSyncIndexOnMergeRequestsOnStateIdAndMergeStatus", version=20230413012807, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230413012807_remove_index_sync_index_on_merge_requests_on_state_id_and_merge_status.rb", scope="">1109 uses one of the allowed migration classes1110 migration: #<struct ActiveRecord::MigrationProxy name="SwapIssueUserMentionsNoteIdToBigintForGitlabDotCom2", version=20230413041917, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230413041917_swap_issue_user_mentions_note_id_to_bigint_for_gitlab_dot_com_2.rb", scope="">1111 uses one of the allowed migration classes1112 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueIndexSystemNoteMetadataNoteIdConvertToBigintForGitlabCom", version=20230413041918, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230413041918_add_unique_index_system_note_metadata_note_id_convert_to_bigint_for_gitlab_com.rb", scope="">1113 uses one of the allowed migration classes1114 migration: #<struct ActiveRecord::MigrationProxy name="AddFkOnSystemNoteMetadataNoteIdConvertToBigintForGitlabCom", version=20230413041919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230413041919_add_fk_on_system_note_metadata_note_id_convert_to_bigint_for_gitlab_com.rb", scope="">1115 uses one of the allowed migration classes1116 migration: #<struct ActiveRecord::MigrationProxy name="AsyncValidateFkSystemNoteMetadataNoteIdConvertToBigintForGitlabCom", version=20230413041920, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230413041920_async_validate_fk_system_note_metadata_note_id_convert_to_bigint_for_gitlab_com.rb", scope="">1117 uses one of the allowed migration classes1118 migration: #<struct ActiveRecord::MigrationProxy name="CreateMergeRequestAssignmentEvents", version=20230413080906, filename="db/migrate/20230413080906_create_merge_request_assignment_events.rb", scope="">1119 uses one of the allowed migration classes1120 migration: #<struct ActiveRecord::MigrationProxy name="AddConcurrentFkToMergeRequestAssignmentEvents", version=20230413080918, filename="db/migrate/20230413080918_add_concurrent_fk_to_merge_request_assignment_events.rb", scope="">1121 uses one of the allowed migration classes1122 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToProjectSettingsInstrumentationKey", version=20230413153140, filename="db/migrate/20230413153140_add_text_limit_to_project_settings_instrumentation_key.rb", scope="">1123 uses one of the allowed migration classes1124 migration: #<struct ActiveRecord::MigrationProxy name="AddNamespacesByTopLevelNamespaceIndex", version=20230414075119, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230414075119_add_namespaces_by_top_level_namespace_index.rb", scope="">1125 uses one of the allowed migration classes1126 migration: #<struct ActiveRecord::MigrationProxy name="AddIssuesIncidentTypeTempIndexAsyncDotCom", version=20230414140202, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230414140202_add_issues_incident_type_temp_index_async_dot_com.rb", scope="">1127 uses one of the allowed migration classes1128 migration: #<struct ActiveRecord::MigrationProxy name="AddIssuesIncidentTypeTempIndex", version=20230414150202, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230414150202_add_issues_incident_type_temp_index.rb", scope="">1129 uses one of the allowed migration classes1130 migration: #<struct ActiveRecord::MigrationProxy name="AddProductAnalyticsToProjectSettings", version=20230414190012, filename="db/migrate/20230414190012_add_product_analytics_to_project_settings.rb", scope="">1131 uses one of the allowed migration classes1132 migration: #<struct ActiveRecord::MigrationProxy name="RescheduleIncidentWorkItemTypeIdBackfill", version=20230414200202, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230414200202_reschedule_incident_work_item_type_id_backfill.rb", scope="">1133 uses one of the allowed migration classes1134 migration: #<struct ActiveRecord::MigrationProxy name="AddExternalIdentifiersIndexToImportFailures", version=20230414230535, filename="db/migrate/20230414230535_add_external_identifiers_index_to_import_failures.rb.rb", scope="rb">1135 uses one of the allowed migration classes1136 migration: #<struct ActiveRecord::MigrationProxy name="AddVisibilityPipelineIdTypeToUserPreferences", version=20230417145900, filename="db/migrate/20230417145900_add_visibility_pipeline_id_type_to_user_preferences.rb", scope="">1137 uses one of the allowed migration classes1138 migration: #<struct ActiveRecord::MigrationProxy name="ChangeCodeSuggestionsDefaultInNamespaceSettings", version=20230418154454, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230418154454_change_code_suggestions_default_in_namespace_settings.rb", scope="">1139 uses one of the allowed migration classes1140 migration: #<struct ActiveRecord::MigrationProxy name="QueueUpdateCodeSuggestionsForNamespaceSettings", version=20230418164957, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230418164957_queue_update_code_suggestions_for_namespace_settings.rb", scope="">1141 uses one of the allowed migration classes1142 migration: #<struct ActiveRecord::MigrationProxy name="CreateProjectStates", version=20230418183540, filename="db/migrate/20230418183540_create_project_states.rb", scope="">1143 uses one of the allowed migration classes1144 migration: #<struct ActiveRecord::MigrationProxy name="AddAssigneeWidgetToIncidents", version=20230418215853, filename="db/migrate/20230418215853_add_assignee_widget_to_incidents.rb", scope="">1145 uses one of the allowed migration classes1146 migration: #<struct ActiveRecord::MigrationProxy name="EnsureTodosBigintBackfillIsFinishedForGitlabDotCom", version=20230419010332, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230419010332_ensure_todos_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">1147 uses one of the allowed migration classes1148 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexTodosNoteIdConvertToBigintForGitlabCom", version=20230419010551, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230419010551_add_index_todos_note_id_convert_to_bigint_for_gitlab_com.rb", scope="">1149 uses one of the allowed migration classes1150 migration: #<struct ActiveRecord::MigrationProxy name="AddFkOnTodosNoteIdConvertToBigintForGitlabCom", version=20230419012426, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230419012426_add_fk_on_todos_note_id_convert_to_bigint_for_gitlab_com.rb", scope="">1151 uses one of the allowed migration classes1152 migration: #<struct ActiveRecord::MigrationProxy name="AsyncValidateFkTodosNoteIdConvertToBigintForGitlabCom", version=20230419012621, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230419012621_async_validate_fk_todos_note_id_convert_to_bigint_for_gitlab_com.rb", scope="">1153 uses one of the allowed migration classes1154 migration: #<struct ActiveRecord::MigrationProxy name="EnsureMergeRequestMetricsIdBigintBackfillIsFinishedForSelfHosts", version=20230419094535, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230419094535_ensure_merge_request_metrics_id_bigint_backfill_is_finished_for_self_hosts.rb", scope="">1155 uses one of the allowed migration classes1156 migration: #<struct ActiveRecord::MigrationProxy name="SwapMergeRequestMetricsIdToBigintForSelfHosts", version=20230419094939, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230419094939_swap_merge_request_metrics_id_to_bigint_for_self_hosts.rb", scope="">1157 uses one of the allowed migration classes1158 migration: #<struct ActiveRecord::MigrationProxy name="RemovePhabricatorFromApplicationSettings", version=20230419105225, filename="db/migrate/20230419105225_remove_phabricator_from_application_settings.rb", scope="">1159 uses one of the allowed migration classes1160 migration: #<struct ActiveRecord::MigrationProxy name="AddNamespacesByTopLevelNamespaceIndexV2", version=20230419121943, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230419121943_add_namespaces_by_top_level_namespace_index_v2.rb", scope="">1161 uses one of the allowed migration classes1162 migration: #<struct ActiveRecord::MigrationProxy name="RemoveGithubImportJobInstances", version=20230419130952, filename="db/migrate/20230419130952_remove_github_import_job_instances.rb", scope="">1163 uses one of the allowed migration classes1164 migration: #<struct ActiveRecord::MigrationProxy name="ChangeCodeSuggestionsDefaultFalseInNamespaceSettings", version=20230419164438, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230419164438_change_code_suggestions_default_false_in_namespace_settings.rb", scope="">1165 uses one of the allowed migration classes1166 migration: #<struct ActiveRecord::MigrationProxy name="AddBotUserIdToSecurityOrchestrationPolicyConfigurations", version=20230419192748, filename="db/migrate/20230419192748_add_bot_user_id_to_security_orchestration_policy_configurations.rb", scope="">1167 uses one of the allowed migration classes1168 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyForBotUserIdToSecurityOrchestrationPolicyConfigurations", version=20230419193807, filename="db/migrate/20230419193807_add_foreign_key_for_bot_user_id_to_security_orchestration_policy_configurations.rb", scope="">1169 uses one of the allowed migration classes1170 migration: #<struct ActiveRecord::MigrationProxy name="SwapTodosNoteIdToBigintForGitlabDotCom", version=20230420002547, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230420002547_swap_todos_note_id_to_bigint_for_gitlab_dot_com.rb", scope="">1171 uses one of the allowed migration classes1172 migration: #<struct ActiveRecord::MigrationProxy name="EnsureAwardEmojiBigintBackfillIsFinishedForGitlabDotCom", version=20230420005610, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230420005610_ensure_award_emoji_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">1173 uses one of the allowed migration classes1174 migration: #<struct ActiveRecord::MigrationProxy name="SwapAwardEmojiNoteIdToBigintForGitlabDotCom", version=20230420005930, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230420005930_swap_award_emoji_note_id_to_bigint_for_gitlab_dot_com.rb", scope="">1175 uses one of the allowed migration classes1176 migration: #<struct ActiveRecord::MigrationProxy name="CreateOrganizations", version=20230420012220, filename="db/migrate/20230420012220_create_organizations.rb", scope="">1177 uses one of the allowed migration classes1178 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfCiPipelines", version=20230420040912, filename="db/migrate/20230420040912_initialize_conversion_of_ci_pipelines.rb", scope="">1179 uses one of the allowed migration classes1180 migration: #<struct ActiveRecord::MigrationProxy name="BackfillCiPipelinesForBigintConversion", version=20230420041344, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230420041344_backfill_ci_pipelines_for_bigint_conversion.rb", scope="">1181 uses one of the allowed migration classes1182 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeFixIncoherentPackagesSizeOnProjectStatistics", version=20230420065656, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230420065656_finalize_fix_incoherent_packages_size_on_project_statistics.rb", scope="">1183 uses one of the allowed migration classes1184 migration: #<struct ActiveRecord::MigrationProxy name="DropTmpIdxPackageFilesOnNonZeroSize", version=20230420070009, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230420070009_drop_tmp_idx_package_files_on_non_zero_size.rb", scope="">1185 uses one of the allowed migration classes1186 migration: #<struct ActiveRecord::MigrationProxy name="AddAiSettingsToNamespaceSettings", version=20230420115733, filename="db/migrate/20230420115733_add_ai_settings_to_namespace_settings.rb", scope="">1187 uses one of the allowed migration classes1188 migration: #<struct ActiveRecord::MigrationProxy name="CreateNamespacesByTopLevelNamespaceIndex", version=20230420120431, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230420120431_create_namespaces_by_top_level_namespace_index.rb", scope="">1189 uses one of the allowed migration classes1190 migration: #<struct ActiveRecord::MigrationProxy name="AddPartitionedVsdCountsTable", version=20230420131608, filename="db/migrate/20230420131608_add_partitioned_vsd_counts_table.rb", scope="">1191 uses one of the allowed migration classes1192 migration: #<struct ActiveRecord::MigrationProxy name="CreateCiAiConversation", version=20230420132910, filename="db/migrate/20230420132910_create_ci_ai_conversation.rb", scope="">1193 uses one of the allowed migration classes1194 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexSecurityScansOnPipelineId", version=20230420144418, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230420144418_drop_index_security_scans_on_pipeline_id.rb", scope="">1195 uses one of the allowed migration classes1196 migration: #<struct ActiveRecord::MigrationProxy name="CreateNoteMetadata", version=20230421035557, filename="db/migrate/20230421035557_create_note_metadata.rb", scope="">1197 uses one of the allowed migration classes1198 migration: #<struct ActiveRecord::MigrationProxy name="AddAuthTypeToJiraTrackerData", version=20230421081907, filename="db/migrate/20230421081907_add_auth_type_to_jira_tracker_data.rb", scope="">1199 uses one of the allowed migration classes1200 migration: #<struct ActiveRecord::MigrationProxy name="EpicBoardsShowColors", version=20230421124302, filename="db/migrate/20230421124302_epic_boards_show_colors.rb", scope="">1201 uses one of the allowed migration classes1202 migration: #<struct ActiveRecord::MigrationProxy name="AddCiMaxIncludesToApplicationSettings", version=20230421165020, filename="db/migrate/20230421165020_add_ci_max_includes_to_application_settings.rb", scope="">1203 uses one of the allowed migration classes1204 migration: #<struct ActiveRecord::MigrationProxy name="SwapSystemNoteMetadataNoteIdToBigintForGitlabDotCom", version=20230422013640, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230422013640_swap_system_note_metadata_note_id_to_bigint_for_gitlab_dot_com.rb", scope="">1205 uses one of the allowed migration classes1206 migration: #<struct ActiveRecord::MigrationProxy name="AddReadVulnerabilityToMemberRoles", version=20230424094117, filename="db/migrate/20230424094117_add_read_vulnerability_to_member_roles.rb", scope="">1207 uses one of the allowed migration classes1208 migration: #<struct ActiveRecord::MigrationProxy name="AddCiBuildIdToMlCandidate", version=20230424122236, filename="db/migrate/20230424122236_add_ci_build_id_to_ml_candidate.rb", scope="">1209 uses one of the allowed migration classes1210 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnCiBuildIdToMlCandidates", version=20230424131551, filename="db/migrate/20230424131551_add_index_on_ci_build_id_to_ml_candidates.rb", scope="">1211 uses one of the allowed migration classes1212 migration: #<struct ActiveRecord::MigrationProxy name="AddLicensesFieldToPackageMetadataPackages", version=20230424155321, filename="db/migrate/20230424155321_add_licenses_field_to_package_metadata_packages.rb", scope="">1213 uses one of the allowed migration classes1214 migration: #<struct ActiveRecord::MigrationProxy name="AddTofaApplicationSettings", version=20230424194721, filename="db/migrate/20230424194721_add_tofa_application_settings.rb", scope="">1215 uses one of the allowed migration classes1216 migration: #<struct ActiveRecord::MigrationProxy name="RemoveCreateCrossProjectPipelineWorkerJobInstances", version=20230425101542, filename="db/migrate/20230425101542_remove_create_cross_project_pipeline_worker_job_instances.rb", scope="">1217 uses one of the allowed migration classes1218 migration: #<struct ActiveRecord::MigrationProxy name="RemoveApplicationSettingsClickhouseConnectionString", version=20230425114355, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230425114355_remove_application_settings_clickhouse_connection_string.rb", scope="">1219 uses one of the allowed migration classes1220 migration: #<struct ActiveRecord::MigrationProxy name="CreateMergeRequestDiffLlmSummary", version=20230425173111, filename="db/migrate/20230425173111_create_merge_request_diff_llm_summary.rb", scope="">1221 uses one of the allowed migration classes1222 migration: #<struct ActiveRecord::MigrationProxy name="DropMergeRequestMentionsTempIndex", version=20230425521418, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230425521418_drop_merge_request_mentions_temp_index.rb", scope="">1223 uses one of the allowed migration classes1224 migration: #<struct ActiveRecord::MigrationProxy name="IndexSystemNoteMetadataOnIdForRelateAndUnrelateActions", version=20230426030342, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230426030342_index_system_note_metadata_on_id_for_relate_and_unrelate_actions.rb", scope="">1225 uses one of the allowed migration classes1226 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillResourceLinkEvents", version=20230426085615, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230426085615_queue_backfill_resource_link_events.rb", scope="">1227 uses one of the allowed migration classes1228 migration: #<struct ActiveRecord::MigrationProxy name="FixImportSourcesOnApplicationSettingsAfterPhabricatorRemoval", version=20230426102200, filename="db/migrate/20230426102200_fix_import_sources_on_application_settings_after_phabricator_removal.rb", scope="">1229 uses one of the allowed migration classes1230 migration: #<struct ActiveRecord::MigrationProxy name="AddUserForeignKeyToMergeRequestDiffLlmSummary", version=20230426161259, filename="db/migrate/20230426161259_add_user_foreign_key_to_merge_request_diff_llm_summary.rb", scope="">1231 uses one of the allowed migration classes1232 migration: #<struct ActiveRecord::MigrationProxy name="AddMergeRequestDiffForeignKeyToMergeRequestDiffLlmSummary", version=20230426161341, filename="db/migrate/20230426161341_add_merge_request_diff_foreign_key_to_merge_request_diff_llm_summary.rb", scope="">1233 uses one of the allowed migration classes1234 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfCiPipelineVariables", version=20230427065641, filename="db/migrate/20230427065641_initialize_conversion_of_ci_pipeline_variables.rb", scope="">1235 uses one of the allowed migration classes1236 migration: #<struct ActiveRecord::MigrationProxy name="BackfillCiPipelineVariablesForBigintConversion", version=20230427065942, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230427065942_backfill_ci_pipeline_variables_for_bigint_conversion.rb", scope="">1237 uses one of the allowed migration classes1238 migration: #<struct ActiveRecord::MigrationProxy name="CreateAnalyticsValueStreamDashboardAggregations", version=20230427094534, filename="db/migrate/20230427094534_create_analytics_value_stream_dashboard_aggregations.rb", scope="">1239 uses one of the allowed migration classes1240 migration: #<struct ActiveRecord::MigrationProxy name="DropForeignKeysFromCycleAnalyticsUnusedTables", version=20230427190005, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230427190005_drop_foreign_keys_from_cycle_analytics_unused_tables.rb", scope="">1241 uses one of the allowed migration classes1242 migration: #<struct ActiveRecord::MigrationProxy name="DropCycleAnalyticsUnusedTables", version=20230427194552, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230427194552_drop_cycle_analytics_unused_tables.rb", scope="">1243 uses one of the allowed migration classes1244 migration: #<struct ActiveRecord::MigrationProxy name="PrepareIndexToSystemNoteMetadataOnIdForRelateAndUnrelateActions", version=20230428065426, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230428065426_prepare_index_to_system_note_metadata_on_id_for_relate_and_unrelate_actions.rb", scope="">1245 uses one of the allowed migration classes1246 migration: #<struct ActiveRecord::MigrationProxy name="AddAllowAccountDeletionToApplicationSettings", version=20230428070443, filename="db/migrate/20230428070443_add_allow_account_deletion_to_application_settings.rb", scope="">1247 uses one of the allowed migration classes1248 migration: #<struct ActiveRecord::MigrationProxy name="RemoveShimoZentaoIntegrationRecords", version=20230428085332, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230428085332_remove_shimo_zentao_integration_records.rb", scope="">1249 uses one of the allowed migration classes1250 migration: #<struct ActiveRecord::MigrationProxy name="CreateAbuseReportEvents", version=20230428101217, filename="db/migrate/20230428101217_create_abuse_report_events.rb", scope="">1251 uses one of the allowed migration classes1252 migration: #<struct ActiveRecord::MigrationProxy name="DeleteCreateCrossProjectPipelineWorkerJobInstances", version=20230428134334, filename="db/migrate/20230428134334_delete_create_cross_project_pipeline_worker_job_instances.rb", scope="">1253 uses one of the allowed migration classes1254 migration: #<struct ActiveRecord::MigrationProxy name="AddTypeToHttpIntegrations", version=20230428165514, filename="db/migrate/20230428165514_add_type_to_http_integrations.rb", scope="">1255 uses one of the allowed migration classes1256 migration: #<struct ActiveRecord::MigrationProxy name="ConvertCiBuildsToListPartitioning", version=20230501090213, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230501090213_convert_ci_builds_to_list_partitioning.rb", scope="">1257 uses one of the allowed migration classes1258 migration: #<struct ActiveRecord::MigrationProxy name="PrepareRemovalPartialIndexDeploymentsForProjectIdAndTag", version=20230501094322, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230501094322_prepare_removal_partial_index_deployments_for_project_id_and_tag.rb", scope="">1259 uses one of the allowed migration classes1260 migration: #<struct ActiveRecord::MigrationProxy name="AddUsersFkToAbuseReportEvents", version=20230501111636, filename="db/migrate/20230501111636_add_users_fk_to_abuse_report_events.rb", scope="">1261 uses one of the allowed migration classes1262 migration: #<struct ActiveRecord::MigrationProxy name="AddRememberMeEnabledToApplicationSettings", version=20230501163253, filename="db/migrate/20230501163253_add_remember_me_enabled_to_application_settings.rb", scope="">1263 uses one of the allowed migration classes1264 migration: #<struct ActiveRecord::MigrationProxy name="RemoveSoftwareLicensePoliciesWithoutScanResultPolicyId", version=20230501165244, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230501165244_remove_software_license_policies_without_scan_result_policy_id.rb", scope="">1265 uses one of the allowed migration classes1266 migration: #<struct ActiveRecord::MigrationProxy name="DropClustersApplicationsCertManagers", version=20230501180958, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230501180958_drop_clusters_applications_cert_managers.rb", scope="">1267 uses one of the allowed migration classes1268 migration: #<struct ActiveRecord::MigrationProxy name="DropPartialIndexDeploymentsForProjectIdAndTag", version=20230502014227, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230502014227_drop_partial_index_deployments_for_project_id_and_tag.rb", scope="">1269 uses one of the allowed migration classes1270 migration: #<struct ActiveRecord::MigrationProxy name="AddAbuseReportsFkToAbuseReportEvents", version=20230502083003, filename="db/migrate/20230502083003_add_abuse_reports_fk_to_abuse_report_events.rb", scope="">1271 uses one of the allowed migration classes1272 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleIndexToMembersOnSourceAndTypeAndAccessLevel", version=20230502102832, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230502102832_schedule_index_to_members_on_source_and_type_and_access_level.rb", scope="">1273 uses one of the allowed migration classes1274 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToMembersOnSourceAndTypeAndAccessLevel", version=20230502102833, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230502102833_add_index_to_members_on_source_and_type_and_access_level.rb", scope="">1275 uses one of the allowed migration classes1276 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleIndexToProjectAuthorizationsOnProjectUserAccessLevel", version=20230502120021, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230502120021_schedule_index_to_project_authorizations_on_project_user_access_level.rb", scope="">1277 uses one of the allowed migration classes1278 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToProjectAuthorizationsOnProjectUserAccessLevel", version=20230502120022, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230502120022_add_index_to_project_authorizations_on_project_user_access_level.rb", scope="">1279 uses one of the allowed migration classes1280 migration: #<struct ActiveRecord::MigrationProxy name="DropClustersApplicationsCilium", version=20230502134532, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230502134532_drop_clusters_applications_cilium.rb", scope="">1281 uses one of the allowed migration classes1282 migration: #<struct ActiveRecord::MigrationProxy name="DropClustersApplicationsCrossplane", version=20230502182754, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230502182754_drop_clusters_applications_crossplane.rb", scope="">1283 uses one of the allowed migration classes1284 migration: #<struct ActiveRecord::MigrationProxy name="DropClustersApplicationsHelm", version=20230502193525, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230502193525_drop_clusters_applications_helm.rb", scope="">1285 uses one of the allowed migration classes1286 migration: #<struct ActiveRecord::MigrationProxy name="DropClustersApplicationsIngress", version=20230502201251, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230502201251_drop_clusters_applications_ingress.rb", scope="">1287 uses one of the allowed migration classes1288 migration: #<struct ActiveRecord::MigrationProxy name="RemoveRedundantIndexFromContainerRepositories", version=20230503032750, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230503032750_remove_redundant_index_from_container_repositories.rb", scope="">1289 uses one of the allowed migration classes1290 migration: #<struct ActiveRecord::MigrationProxy name="AddVersionFormatAndDataTypeToCheckpoints", version=20230503100753, filename="db/migrate/20230503100753_add_version_format_and_data_type_to_checkpoints.rb", scope="">1291 uses one of the allowed migration classes1292 migration: #<struct ActiveRecord::MigrationProxy name="DropClustersApplicationsJupyter", version=20230503115918, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230503115918_drop_clusters_applications_jupyter.rb", scope="">1293 uses one of the allowed migration classes1294 migration: #<struct ActiveRecord::MigrationProxy name="DropClustersApplicationsKnative", version=20230503152349, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230503152349_drop_clusters_applications_knative.rb", scope="">1295 uses one of the allowed migration classes1296 migration: #<struct ActiveRecord::MigrationProxy name="DropClustersApplicationsPrometheus", version=20230503173101, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230503173101_drop_clusters_applications_prometheus.rb", scope="">1297 uses one of the allowed migration classes1298 migration: #<struct ActiveRecord::MigrationProxy name="DropClustersApplicationsRunners", version=20230503175406, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230503175406_drop_clusters_applications_runners.rb", scope="">1299 uses one of the allowed migration classes1300 migration: #<struct ActiveRecord::MigrationProxy name="DropServerlessDomainCluster", version=20230503181808, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230503181808_drop_serverless_domain_cluster.rb", scope="">1301 uses one of the allowed migration classes1302 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToPackagesNpmMetadataCachesObjectStorageKey", version=20230503191056, filename="db/migrate/20230503191056_add_text_limit_to_packages_npm_metadata_caches_object_storage_key.rb", scope="">1303 uses one of the allowed migration classes1304 migration: #<struct ActiveRecord::MigrationProxy name="EnsureNotesBigintBackfillIsFinishedForGitlabDotCom", version=20230504010535, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230504010535_ensure_notes_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">1305 uses one of the allowed migration classes1306 migration: #<struct ActiveRecord::MigrationProxy name="RemoveGitlabImportSource", version=20230504084524, filename="db/migrate/20230504084524_remove_gitlab_import_source.rb", scope="">1307 uses one of the allowed migration classes1308 migration: #<struct ActiveRecord::MigrationProxy name="AddAnthropicApiKeyApplicationSetting", version=20230504112809, filename="db/migrate/20230504112809_add_anthropic_api_key_application_setting.rb", scope="">1309 uses one of the allowed migration classes1310 migration: #<struct ActiveRecord::MigrationProxy name="AddPaConfiguratorBaseToProjectSettings", version=20230504182314, filename="db/migrate/20230504182314_add_pa_configurator_base_to_project_settings.rb", scope="">1311 uses one of the allowed migration classes1312 migration: #<struct ActiveRecord::MigrationProxy name="AddAuthorsAndDescriptionToNugetMetadatum", version=20230505115558, filename="db/migrate/20230505115558_add_authors_and_description_to_nuget_metadatum.rb", scope="">1313 uses one of the allowed migration classes1314 migration: #<struct ActiveRecord::MigrationProxy name="AddLockVersionToMilestones", version=20230505122015, filename="db/migrate/20230505122015_add_lock_version_to_milestones.rb", scope="">1315 uses one of the allowed migration classes1316 migration: #<struct ActiveRecord::MigrationProxy name="CreateAuditEventsGoogleCloudLoggingConfigurations", version=20230507192028, filename="db/migrate/20230507192028_create_audit_events_google_cloud_logging_configurations.rb", scope="">1317 uses one of the allowed migration classes1318 migration: #<struct ActiveRecord::MigrationProxy name="NotesBigintCreateIndexesAsyncForGitlabDotCom", version=20230508034422, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230508034422_notes_bigint_create_indexes_async_for_gitlab_dot_com.rb", scope="">1319 uses one of the allowed migration classes1320 migration: #<struct ActiveRecord::MigrationProxy name="AddGoogleCloudLoggingConfigurationLimitToPlanLimits", version=20230508074515, filename="db/migrate/20230508074515_add_google_cloud_logging_configuration_limit_to_plan_limits.rb", scope="">1321 uses one of the allowed migration classes1322 migration: #<struct ActiveRecord::MigrationProxy name="CreatePackageManagerNameIndex", version=20230508093910, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230508093910_create_package_manager_name_index.rb", scope="">1323 uses one of the allowed migration classes1324 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectShortcutButtonsToUserPreferences", version=20230508095017, filename="db/migrate/20230508095017_add_project_shortcut_buttons_to_user_preferences.rb", scope="">1325 uses one of the allowed migration classes1326 migration: #<struct ActiveRecord::MigrationProxy name="RescheduleEvidencesHandlingUnicode", version=20230508150219, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230508150219_reschedule_evidences_handling_unicode.rb", scope="">1327 uses one of the allowed migration classes1328 migration: #<struct ActiveRecord::MigrationProxy name="BackfillCorrectedSecureFilesExpirations", version=20230508175057, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230508175057_backfill_corrected_secure_files_expirations.rb", scope="">1329 uses one of the allowed migration classes1330 migration: #<struct ActiveRecord::MigrationProxy name="RemoveClearSharedRunnersMinutesWorkerJobInstances", version=20230509013743, filename="db/migrate/20230509013743_remove_clear_shared_runners_minutes_worker_job_instances.rb", scope="">1331 uses one of the allowed migration classes1332 migration: #<struct ActiveRecord::MigrationProxy name="DropUnusedSequenceByRecreatingVsaTable", version=20230509072635, filename="db/migrate/20230509072635_drop_unused_sequence_by_recreating_vsa_table.rb", scope="">1333 uses one of the allowed migration classes1334 migration: #<struct ActiveRecord::MigrationProxy name="ChangeOrganizationsSequence", version=20230509085428, filename="db/migrate/20230509085428_change_organizations_sequence.rb", scope="">1335 uses one of the allowed migration classes1336 migration: #<struct ActiveRecord::MigrationProxy name="AddNameToOrganization", version=20230509115525, filename="db/migrate/20230509115525_add_name_to_organization.rb", scope="">1337 uses one of the allowed migration classes1338 migration: #<struct ActiveRecord::MigrationProxy name="AddDefaultOrganization", version=20230509131736, filename="db/migrate/20230509131736_add_default_organization.rb", scope="">1339 uses one of the allowed migration classes1340 migration: #<struct ActiveRecord::MigrationProxy name="DeleteDropOlderDeploymentsWorkerQueues", version=20230509144234, filename="db/migrate/20230509144234_delete_drop_older_deployments_worker_queues.rb", scope="">1341 uses one of the allowed migration classes1342 migration: #<struct ActiveRecord::MigrationProxy name="CleanupNotesBigintPreparation", version=20230510013754, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230510013754_cleanup_notes_bigint_preparation.rb", scope="">1343 uses one of the allowed migration classes1344 migration: #<struct ActiveRecord::MigrationProxy name="QueueCleanupPersonalAccessTokensWithNilExpiresAt", version=20230510062503, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230510062503_queue_cleanup_personal_access_tokens_with_nil_expires_at.rb", scope="">1345 uses one of the allowed migration classes1346 migration: #<struct ActiveRecord::MigrationProxy name="RemoveCiTriggersRefColumn", version=20230510130050, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230510130050_remove_ci_triggers_ref_column.rb", scope="">1347 uses one of the allowed migration classes1348 migration: #<struct ActiveRecord::MigrationProxy name="AddUserIdToImportFailures", version=20230510141454, filename="db/migrate/20230510141454_add_user_id_to_import_failures.rb", scope="">1349 uses one of the allowed migration classes1350 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnUserIdToImportFailures", version=20230510142316, filename="db/migrate/20230510142316_add_index_on_user_id_to_import_failures.rb", scope="">1351 uses one of the allowed migration classes1352 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyForUserIdToImportFailures", version=20230510142931, filename="db/migrate/20230510142931_add_foreign_key_for_user_id_to_import_failures.rb", scope="">1353 uses one of the allowed migration classes1354 migration: #<struct ActiveRecord::MigrationProxy name="RemoveMrStateIdTempIndexWithRightColumn", version=20230510152153, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230510152153_remove_mr_state_id_temp_index_with_right_column.rb", scope="">1355 uses one of the allowed migration classes1356 migration: #<struct ActiveRecord::MigrationProxy name="CreateComponentIdIndex", version=20230511132140, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230511132140_create_component_id_index.rb", scope="">1357 uses one of the allowed migration classes1358 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAuditEventsGroupIndex", version=20230512023321, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230512023321_prepare_audit_events_group_index.rb", scope="">1359 uses one of the allowed migration classes1360 migration: #<struct ActiveRecord::MigrationProxy name="AddAuditEventsGroupIndex", version=20230512104238, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230512104238_add_audit_events_group_index.rb", scope="">1361 uses one of the allowed migration classes1362 migration: #<struct ActiveRecord::MigrationProxy name="AddGroupIdToDependencyListExports", version=20230512141931, filename="db/migrate/20230512141931_add_group_id_to_dependency_list_exports.rb", scope="">1363 uses one of the allowed migration classes1364 migration: #<struct ActiveRecord::MigrationProxy name="RemoveDependencyListExportsProjectIdNotNullConstraint", version=20230512143000, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230512143000_remove_dependency_list_exports_project_id_not_null_constraint.rb", scope="">1365 uses one of the allowed migration classes1366 migration: #<struct ActiveRecord::MigrationProxy name="IndexGroupIdOnDependencyListExports", version=20230515101208, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230515101208_index_group_id_on_dependency_list_exports.rb", scope="">1367 uses one of the allowed migration classes1368 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyToGroupIdOnDependencyListExports", version=20230515102353, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230515102353_add_foreign_key_to_group_id_on_dependency_list_exports.rb", scope="">1369 uses one of the allowed migration classes1370 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitOnOrganizationName", version=20230515111314, filename="db/migrate/20230515111314_add_text_limit_on_organization_name.rb", scope="">1371 uses one of the allowed migration classes1372 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueIndexForMlModelPackages", version=20230515142300, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230515142300_add_unique_index_for_ml_model_packages.rb", scope="">1373 uses one of the allowed migration classes1374 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeBackFillPreparedAtMergeRequests", version=20230515153600, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230515153600_finalize_back_fill_prepared_at_merge_requests.rb", scope="">1375 uses one of the allowed migration classes1376 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueNotesIdConvertToBigintForGitlabCom", version=20230516032545, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230516032545_add_unique_notes_id_convert_to_bigint_for_gitlab_com.rb", scope="">1377 uses one of the allowed migration classes1378 migration: #<struct ActiveRecord::MigrationProxy name="AddReferencingBigintFksForNotesOnGitlabCom", version=20230516033729, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230516033729_add_referencing_bigint_fks_for_notes_on_gitlab_com.rb", scope="">1379 uses one of the allowed migration classes1380 migration: #<struct ActiveRecord::MigrationProxy name="AddOrganizationIdToNamespace", version=20230516044606, filename="db/migrate/20230516044606_add_organization_id_to_namespace.rb", scope="">1381 uses one of the allowed migration classes1382 migration: #<struct ActiveRecord::MigrationProxy name="TrackOrganizationRecordChanges", version=20230516045238, filename="db/migrate/20230516045238_track_organization_record_changes.rb", scope="">1383 uses one of the allowed migration classes1384 migration: #<struct ActiveRecord::MigrationProxy name="PrepareIndexForOrgIdOnNamespaces", version=20230516045442, filename="db/migrate/20230516045442_prepare_index_for_org_id_on_namespaces.rb", scope="">1385 uses one of the allowed migration classes1386 migration: #<struct ActiveRecord::MigrationProxy name="AddVertexProjectToApplicationSettings", version=20230516072100, filename="db/migrate/20230516072100_add_vertex_project_to_application_settings.rb", scope="">1387 uses one of the allowed migration classes1388 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceVsdIndexWithNullsFirstOrder", version=20230516080816, filename="db/migrate/20230516080816_replace_vsd_index_with_nulls_first_order.rb", scope="">1389 uses one of the allowed migration classes1390 migration: #<struct ActiveRecord::MigrationProxy name="AddMlModelMaxFileSizeToPlanLimits", version=20230516110414, filename="db/migrate/20230516110414_add_ml_model_max_file_size_to_plan_limits.rb", scope="">1391 uses one of the allowed migration classes1392 migration: #<struct ActiveRecord::MigrationProxy name="IncreaseCorrelationIdSizeLimitInAbuseTrustScores", version=20230516115259, filename="db/migrate/20230516115259_increase_correlation_id_size_limit_in_abuse_trust_scores.rb", scope="">1393 uses one of the allowed migration classes1394 migration: #<struct ActiveRecord::MigrationProxy name="PrepareIssuesWorkItemTypeIdProjectIdIndex", version=20230516172446, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230516172446_prepare_issues_work_item_type_id_project_id_index.rb", scope="">1395 uses one of the allowed migration classes1396 migration: #<struct ActiveRecord::MigrationProxy name="CreateInstanceAuditEventsStreamingHeaders", version=20230516175449, filename="db/migrate/20230516175449_create_instance_audit_events_streaming_headers.rb", scope="">1397 uses one of the allowed migration classes1398 migration: #<struct ActiveRecord::MigrationProxy name="AddContainerRegistryDataRepairWorkerMaxConcurrencyToApplicationSettings", version=20230516183736, filename="db/migrate/20230516183736_add_container_registry_data_repair_worker_max_concurrency_to_application_settings.rb", scope="">1399 uses one of the allowed migration classes1400 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncIndexForCiPipelineVariablesBigintId", version=20230517001535, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230517001535_prepare_async_index_for_ci_pipeline_variables_bigint_id.rb", scope="">1401 uses one of the allowed migration classes1402 migration: #<struct ActiveRecord::MigrationProxy name="AddNamespaceAggregationScheduleLeaseDurationToApplicationSettings", version=20230517090826, filename="db/migrate/20230517090826_add_namespace_aggregation_schedule_lease_duration_to_application_settings.rb", scope="">1403 uses one of the allowed migration classes1404 migration: #<struct ActiveRecord::MigrationProxy name="AddAgentIdColumnToEnvironments", version=20230517151041, filename="db/migrate/20230517151041_add_agent_id_column_to_environments.rb", scope="">1405 uses one of the allowed migration classes1406 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToAgentIdColumnEnvironments", version=20230517151141, filename="db/migrate/20230517151141_add_index_to_agent_id_column_environments.rb", scope="">1407 uses one of the allowed migration classes1408 migration: #<struct ActiveRecord::MigrationProxy name="AddAgentIdForeignKeyToEnvironments", version=20230517151241, filename="db/migrate/20230517151241_add_agent_id_foreign_key_to_environments.rb", scope="">1409 uses one of the allowed migration classes1410 migration: #<struct ActiveRecord::MigrationProxy name="AddFieldsToAbuseReports", version=20230517182802, filename="db/migrate/20230517182802_add_fields_to_abuse_reports.rb", scope="">1411 uses one of the allowed migration classes1412 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyConstraintsToAbuseReports", version=20230517182958, filename="db/migrate/20230517182958_add_foreign_key_constraints_to_abuse_reports.rb", scope="">1413 uses one of the allowed migration classes1414 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyToAbuseReportsForAssignee", version=20230517183403, filename="db/migrate/20230517183403_add_foreign_key_to_abuse_reports_for_assignee.rb", scope="">1415 uses one of the allowed migration classes1416 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillCodeSuggestionsNamespaceSettings", version=20230518071251, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230518071251_queue_backfill_code_suggestions_namespace_settings.rb", scope="">1417 uses one of the allowed migration classes1418 migration: #<struct ActiveRecord::MigrationProxy name="RemoveTimeFormatIn24hColumn", version=20230518121320, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230518121320_remove_time_format_in_24h_column.rb", scope="">1419 uses one of the allowed migration classes1420 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleToRemoveInvalidDeployAccessLevelGroups", version=20230519011151, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230519011151_schedule_to_remove_invalid_deploy_access_level_groups.rb", scope="">1421 uses one of the allowed migration classes1422 migration: #<struct ActiveRecord::MigrationProxy name="TruncateSchemaInconsistenciesTable", version=20230519103034, filename="db/migrate/20230519103034_truncate_schema_inconsistencies_table.rb", scope="">1423 uses one of the allowed migration classes1424 migration: #<struct ActiveRecord::MigrationProxy name="AddDiffColumnToSchemaInconsistencies", version=20230519112106, filename="db/migrate/20230519112106_add_diff_column_to_schema_inconsistencies.rb", scope="">1425 uses one of the allowed migration classes1426 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitForDiff", version=20230519135414, filename="db/migrate/20230519135414_add_text_limit_for_diff.rb", scope="">1427 uses one of the allowed migration classes1428 migration: #<struct ActiveRecord::MigrationProxy name="DropMergeRequestStateIdTempIndex", version=20230521521419, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230521521419_drop_merge_request_state_id_temp_index.rb", scope="">1429 uses one of the allowed migration classes1430 migration: #<struct ActiveRecord::MigrationProxy name="RemoveGitHubImportDeprecatedWorkers", version=20230522103433, filename="db/migrate/20230522103433_remove_git_hub_import_deprecated_workers.rb", scope="">1431 uses one of the allowed migration classes1432 migration: #<struct ActiveRecord::MigrationProxy name="AddModelExperimentsAccessLevelToProjectFeature", version=20230522132239, filename="db/migrate/20230522132239_add_model_experiments_access_level_to_project_feature.rb", scope="">1433 uses one of the allowed migration classes1434 migration: #<struct ActiveRecord::MigrationProxy name="EnsureIncidentWorkItemTypeBackfillIsFinished", version=20230522220709, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230522220709_ensure_incident_work_item_type_backfill_is_finished.rb", scope="">1435 uses one of the allowed migration classes1436 migration: #<struct ActiveRecord::MigrationProxy name="RemoveTmpIndexIssuesOnIssueTypeAndIdOnlyIncidents", version=20230522225610, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230522225610_remove_tmp_index_issues_on_issue_type_and_id_only_incidents.rb", scope="">1437 uses one of the allowed migration classes1438 migration: #<struct ActiveRecord::MigrationProxy name="AddNewAsyncIndexTableNameLengthConstraint", version=20230523073455, filename="db/migrate/20230523073455_add_new_async_index_table_name_length_constraint.rb", scope="">1439 uses one of the allowed migration classes1440 migration: #<struct ActiveRecord::MigrationProxy name="ValidateAsyncIndexTableNameLengthConstraint", version=20230523074248, filename="db/migrate/20230523074248_validate_async_index_table_name_length_constraint.rb", scope="">1441 uses one of the allowed migration classes1442 migration: #<struct ActiveRecord::MigrationProxy name="RemoveOldAsyncIndexTableNameLengthConstraint", version=20230523074517, filename="db/migrate/20230523074517_remove_old_async_index_table_name_length_constraint.rb", scope="">1443 uses one of the allowed migration classes1444 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeUserTypeMigration", version=20230523101514, filename="db/migrate/20230523101514_finalize_user_type_migration.rb", scope="">1445 uses one of the allowed migration classes1446 migration: #<struct ActiveRecord::MigrationProxy name="AddEncryptedAiAccessToken", version=20230523122242, filename="db/migrate/20230523122242_add_encrypted_ai_access_token.rb", scope="">1447 uses one of the allowed migration classes1448 migration: #<struct ActiveRecord::MigrationProxy name="RemoveProjectCiCdSettingOptInJwtColumn", version=20230523125245, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230523125245_remove_project_ci_cd_setting_opt_in_jwt_column.rb", scope="">1449 uses one of the allowed migration classes1450 migration: #<struct ActiveRecord::MigrationProxy name="AddDismissalReasonToVulnerabilityRead", version=20230523125430, filename="db/migrate/20230523125430_add_dismissal_reason_to_vulnerability_read.rb", scope="">1451 uses one of the allowed migration classes1452 migration: #<struct ActiveRecord::MigrationProxy name="RecreateIndexOnVulnerabilityReads", version=20230523131914, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230523131914_recreate_index_on_vulnerability_reads.rb", scope="">1453 uses one of the allowed migration classes1454 migration: #<struct ActiveRecord::MigrationProxy name="RecreateIndexOnVulnerabilityReads2", version=20230523132647, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230523132647_recreate_index_on_vulnerability_reads2.rb", scope="">1455 uses one of the allowed migration classes1456 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFileMd5FromDebianProjectComponentFiles", version=20230523210653, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230523210653_remove_file_md5_from_debian_project_component_files.rb", scope="">1457 uses one of the allowed migration classes1458 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFileMd5FromDebianGroupComponentFiles", version=20230523210758, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230523210758_remove_file_md5_from_debian_group_component_files.rb", scope="">1459 uses one of the allowed migration classes1460 migration: #<struct ActiveRecord::MigrationProxy name="AddVertexAiHostToApplicationSettings", version=20230524012641, filename="db/migrate/20230524012641_add_vertex_ai_host_to_application_settings.rb", scope="">1461 uses one of the allowed migration classes1462 migration: #<struct ActiveRecord::MigrationProxy name="AddAsyncIndexToVsaIssues", version=20230524093249, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524093249_add_async_index_to_vsa_issues.rb", scope="">1463 uses one of the allowed migration classes1464 migration: #<struct ActiveRecord::MigrationProxy name="AddAsyncIndexToVsaMrs", version=20230524093355, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524093355_add_async_index_to_vsa_mrs.rb", scope="">1465 uses one of the allowed migration classes1466 migration: #<struct ActiveRecord::MigrationProxy name="RemoveIndexOnNameOnOrganization", version=20230524095108, filename="db/migrate/20230524095108_remove_index_on_name_on_organization.rb", scope="">1467 uses one of the allowed migration classes1468 migration: #<struct ActiveRecord::MigrationProxy name="RemoveIndexUserDetailsOnUserIdForEnterpriseUsersWithoutDate", version=20230524150232, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524150232_remove_index_user_details_on_user_id_for_enterprise_users_without_date.rb", scope="">1469 uses one of the allowed migration classes1470 migration: #<struct ActiveRecord::MigrationProxy name="RemoveIndexUserDetailsOnUserIdForEnterpriseUsersWithDate", version=20230524150438, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524150438_remove_index_user_details_on_user_id_for_enterprise_users_with_date.rb", scope="">1471 uses one of the allowed migration classes1472 migration: #<struct ActiveRecord::MigrationProxy name="AddServiceDeskEnabledToServiceDeskSettings", version=20230525064706, filename="db/migrate/20230525064706_add_service_desk_enabled_to_service_desk_settings.rb", scope="">1473 uses one of the allowed migration classes1474 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexWorkItemTypesOnBaseTypeId", version=20230525180605, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230525180605_add_index_work_item_types_on_base_type_id.rb", scope="">1475 uses one of the allowed migration classes1476 migration: #<struct ActiveRecord::MigrationProxy name="RecreateBillableIndex", version=20230529182720, filename="db/migrate/20230529182720_recreate_billable_index.rb", scope="">1477 uses one of the allowed migration classes1478 migration: #<struct ActiveRecord::MigrationProxy name="RemoveTemporaryBillableIndex", version=20230529183648, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230529183648_remove_temporary_billable_index.rb", scope="">1479 uses one of the allowed migration classes1480 migration: #<struct ActiveRecord::MigrationProxy name="RecreatedActivityIndex", version=20230529184716, filename="db/migrate/20230529184716_recreated_activity_index.rb", scope="">1481 uses one of the allowed migration classes1482 migration: #<struct ActiveRecord::MigrationProxy name="CleanupTemporaryActivityIndex", version=20230529185110, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230529185110_cleanup_temporary_activity_index.rb", scope="">1483 uses one of the allowed migration classes1484 migration: #<struct ActiveRecord::MigrationProxy name="RenameTofaSettings", version=20230530003417, filename="db/migrate/20230530003417_rename_tofa_settings.rb", scope="">1485 uses one of the allowed migration classes1486 migration: #<struct ActiveRecord::MigrationProxy name="CleanupTofaSettings", version=20230530003634, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530003634_cleanup_tofa_settings.rb", scope="">1487 uses one of the allowed migration classes1488 migration: #<struct ActiveRecord::MigrationProxy name="ChangeUserTypeNull", version=20230530100400, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530100400_change_user_type_null.rb", scope="">1489 uses one of the allowed migration classes1490 migration: #<struct ActiveRecord::MigrationProxy name="AddInstanceCodeSuggestionEnabledToAppSettings", version=20230530162437, filename="db/migrate/20230530162437_add_instance_code_suggestion_enabled_to_app_settings.rb", scope="">1491 uses one of the allowed migration classes1492 migration: #<struct ActiveRecord::MigrationProxy name="AddUnconfirmedUserDeletionToApplicationSettings", version=20230601035558, filename="db/migrate/20230601035558_add_unconfirmed_user_deletion_to_application_settings.rb", scope="">1493 uses one of the allowed migration classes1494Git::BranchPushService1495 Push branches1496 new branch1497 is expected to be truthy1498 calls the after_push_commit hook1499 calls the after_create_branch hook1500 existing branch1501 is expected to be truthy1502 calls the after_push_commit hook1503 rm branch1504 is expected to be truthy1505 calls the after_push_commit hook1506 calls the after_remove_branch hook1507 Pipelines1508 creates a pipeline with the right parameters1509 creates a new pipeline1510 when pipeline has errors1511 reports an error1512 with push options1513 sanitizes push options1514 when .gitlab-ci.yml file is invalid1515 persists an error pipeline1516 Updates merge requests1517 when pushing a new branch for the first time1518 Updates git attributes1519 for default branch1520 calls the copy attributes method for changes to the default branch1521 when first push1522 calls the copy attributes method for the first push to the default branch1523 for non-default branch1524 does not call copy attributes method1525 Webhooks1526 when pushing a branch for the first time1527 executes webhooks1528 with default branch protection disabled1529 with default branch protection set to 'developers can push'1530 with an existing branch permission configured1531 with default branch protection set to 'developers can merge'1532 when pushing new commits to existing branch1533 executes webhooks1534 cross-reference notes1535 creates a note if a pushed commit mentions an issue1536 only creates a cross-reference note if one doesn't already exist1537 defaults to the pushing user if the commit's author is not known1538 when first push on a non-default branch1539 finds references1540 issue metrics1541 while saving the 'first_mentioned_in_commit_at' metric for an issue1542 sets the metric for referenced issues1543 does not set the metric for non-referenced issues1544 closing issues from pushed commits containing a closing reference1545 to default branches1546 closes issues1547 adds a note indicating that the issue is now closed1548 doesn't create additional cross-reference notes1549 to non-default branches1550 creates cross-reference notes1551 doesn't close issues1552 for jira issue tracker1553 mentioning an issue1554 initiates one api call to jira server to mention the issue1555 closing an issue1556 using right markdown1557 initiates one api call to jira server to close the issue1558 initiates one api call to jira server to comment on the issue1559 using internal issue reference1560 when internal issues are disabled1561 does not initiates one api call to jira server to close the issue1562 does not initiates one api call to jira server to comment on the issue1563 when internal issues are enabled1564 initiates one api call to jira server to close the jira issue1565 initiates one api call to jira server to comment on the jira issue1566 closes the internal issue1567 adds a note indicating that the issue is now closed1568 empty project1569 push to first branch updates HEAD1570 CI environments1571 create branch1572 does nothing1573 update branch1574 does nothing1575 delete branch1576 stops environments1577 artifacts1578 create branch1579 does nothing1580 update branch1581 does nothing1582 delete branch1583 unlocks artifacts1584 Hooks1585 run on a branch1586 delegates to Git::BranchHooksService1587 run on a tag1588 does nothing1589 Jira Connect hooks1590 with a Jira subscription1591 branch name contains Jira issue key1592 behaves like enqueues Jira sync worker1593 batch_delay_jira_branch_sync_worker feature flag is enabled1594 aggregate_failures1595 batch_delay_jira_branch_sync_worker feature flag is disabled1596 aggregate_failures1597 commit message contains Jira issue key1598 behaves like enqueues Jira sync worker1599 batch_delay_jira_branch_sync_worker feature flag is enabled1600 aggregate_failures1601 batch_delay_jira_branch_sync_worker feature flag is disabled1602 aggregate_failures1603 batch requests1604 enqueues multiple jobs1605 branch name and commit message does not contain Jira issue key1606 behaves like does not enqueue Jira sync worker1607 is expected not to change `Array#size`1608 without a Jira subscription1609 behaves like does not enqueue Jira sync worker1610 is expected not to change `Array#size`1611 project target platforms detection1612 calls enqueue_record_project_target_platforms on the project1613Namespace::TraversalHierarchy1614 .for_namespace1615 with root group1616 is expected to eq #<Group id:26 @group1>1617 with child group1618 is expected to eq #<Group id:111 @group86>1619 with group outside of hierarchy1620 is expected not to eq #<Group id:196 @group171>1621 .new1622 with root group1623 is expected to eq #<Group id:282 @group257>1624 with child group1625 is expected to raise StandardError with "Must specify a root node"1626 #incorrect_traversal_ids1627 is expected to contain exactly #<Group id:452 @group427>, #<Group id:453 @group427/group428>, #<Group id:454 @group427/group428/group429>, #<Group id:455 @group427/group428/group429/group430>, #<Group id:456 @group427/group428/group429/group431>, #<Group id:457 @group427/group428/group429/group432>, #<Group id:458 @group427/group428/group429/group433>, #<Group id:459 @group427/group428/group434>, #<Group id:460 @group427/group428/group434/group435>, #<Group id:461 @group427/group428/group434/group436>, #<Group id:462 @group427/group428/group434/group437>, #<Group id:463 @group427/group428/group434/group438>, #<Group id:464 @group427/group428/group439>, #<Group id:465 @group427/group428/group439/group440>, #<Group id:466 @group427/group428/group439/group441>, #<Group id:467 @group427/group428/group439/group442>, #<Group id:468 @group427/group428/group439/group443>, #<Group id:469 @group427/group428/group444>, #<Group id:470 @group427/group428/group444/group445>, #<Group id:471 @group427/group428/group444/group446>, #<Group id:472 @group427/group428/group444/group447>, #<Group id:473 @group427/group428/group444/group448>, #<Group id:474 @group427/group449>, #<Group id:475 @group427/group449/group450>, #<Group id:476 @group427/group449/group450/group451>, #<Group id:477 @group427/group449/group450/group452>, #<Group id:478 @group427/group449/group450/group453>, #<Group id:479 @group427/group449/group450/group454>, #<Group id:480 @group427/group449/group455>, #<Group id:481 @group427/group449/group455/group456>, #<Group id:482 @group427/group449/group455/group457>, #<Group id:483 @group427/group449/group455/group458>, #<Group id:484 @group427/group449/group455/group459>, #<Group id:485 @group427/group449/group460>, #<Group id:486 @group427/group449/group460/group461>, #<Group id:487 @group427/group449/group460/group462>, #<Group id:488 @group427/group449/group460/group463>, #<Group id:489 @group427/group449/group460/group464>, #<Group id:490 @group427/group449/group465>, #<Group id:491 @group427/group449/group465/group466>, #<Group id:492 @group427/group449/group465/group467>, #<Group id:493 @group427/group449/group465/group468>, #<Group id:494 @group427/group449/group465/group469>, #<Group id:495 @group427/group470>, #<Group id:496 @group427/group470/group471>, #<Group id:497 @group427/group470/group471/group472>, #<Group id:498 @group427/group470/group471/group473>, #<Group id:499 @group427/group470/group471/group474>, #<Group id:500 @group427/group470/group471/group475>, #<Group id:501 @group427/group470/group476>, #<Group id:502 @group427/group470/group476/group477>, #<Group id:503 @group427/group470/group476/group478>, #<Group id:504 @group427/group470/group476/group479>, #<Group id:505 @group427/group470/group476/group480>, #<Group id:506 @group427/group470/group481>, #<Group id:507 @group427/group470/group481/group482>, #<Group id:508 @group427/group470/group481/group483>, #<Group id:509 @group427/group470/group481/group484>, #<Group id:510 @group427/group470/group481/group485>, #<Group id:511 @group427/group470/group486>, #<Group id:512 @group427/group470/group486/group487>, #<Group id:513 @group427/group470/group486/group488>, #<Group id:514 @group427/group470/group486/group489>, #<Group id:515 @group427/group470/group486/group490>, #<Group id:516 @group427/group491>, #<Group id:517 @group427/group491/group492>, #<Group id:518 @group427/group491/group492/group493>, #<Group id:519 @group427/group491/group492/group494>, #<Group id:520 @group427/group491/group492/group495>, #<Group id:521 @group427/group491/group492/group496>, #<Group id:522 @group427/group491/group497>, #<Group id:523 @group427/group491/group497/group498>, #<Group id:524 @group427/group491/group497/group499>, #<Group id:525 @group427/group491/group497/group500>, #<Group id:526 @group427/group491/group497/group501>, #<Group id:527 @group427/group491/group502>, #<Group id:528 @group427/group491/group502/group503>, #<Group id:529 @group427/group491/group502/group504>, #<Group id:530 @group427/group491/group502/group505>, #<Group id:531 @group427/group491/group502/group506>, #<Group id:532 @group427/group491/group507>, #<Group id:533 @group427/group491/group507/group508>, #<Group id:534 @group427/group491/group507/group509>, #<Group id:535 @group427/group491/group507/group510>, and #<Group id:536 @group427/group491/group507/group511>1628 #sync_traversal_ids!1629 is expected to be empty1630 behaves like hierarchy with traversal_ids1631 will be valid1632 behaves like locked row1633 has locked row1634 when deadlocked1635 is expected to raise ActiveRecord::Deadlocked1636 increment db_deadlock counter1637WorkItems::ParentLink1638 associations1639 is expected to belong to work_item required: false1640 is expected to belong to work_item_parent class_name => WorkItem required: false1641 validations1642 is expected to validate that :work_item cannot be empty/falsy1643 is expected to validate that :work_item_parent cannot be empty/falsy1644 is expected to validate that :work_item is case-sensitively unique1645 hierarchy1646 is valid if issue parent has task child1647 is valid if incident parent has task child1648 is not valid if parent is in other project1649 when assigning to various parent types1650 parent_type_sym: :issue, child_type_sym: :task, is_valid: true1651 validates if child can be added to the parent1652 parent_type_sym: :incident, child_type_sym: :task, is_valid: true1653 validates if child can be added to the parent1654 parent_type_sym: :task, child_type_sym: :issue, is_valid: false1655 validates if child can be added to the parent1656 parent_type_sym: :issue, child_type_sym: :issue, is_valid: false1657 validates if child can be added to the parent1658 parent_type_sym: :objective, child_type_sym: :objective, is_valid: true1659 validates if child can be added to the parent1660 parent_type_sym: :objective, child_type_sym: :key_result, is_valid: true1661 validates if child can be added to the parent1662 parent_type_sym: :key_result, child_type_sym: :objective, is_valid: false1663 validates if child can be added to the parent1664 parent_type_sym: :key_result, child_type_sym: :key_result, is_valid: false1665 validates if child can be added to the parent1666 parent_type_sym: :objective, child_type_sym: :issue, is_valid: false1667 validates if child can be added to the parent1668 parent_type_sym: :task, child_type_sym: :objective, is_valid: false1669 validates if child can be added to the parent1670 with nested ancestors1671 #validate_depth1672 is valid if depth is in limit1673 is not valid when maximum depth is reached1674 #validate_cyclic_reference1675 is not valid if parent and child are same1676 is not valid if child is already in ancestors1677 when parent already has maximum number of links1678 is not valid when another link is added1679 existing link is still valid1680 when setting confidentiality1681 confidential_parent: false, confidential_child: false, valid: true1682 validates if child confidentiality is compatible with parent1683 confidential_parent: true, confidential_child: true, valid: true1684 validates if child confidentiality is compatible with parent1685 confidential_parent: false, confidential_child: true, valid: true1686 validates if child confidentiality is compatible with parent1687 confidential_parent: true, confidential_child: false, valid: false1688 validates if child confidentiality is compatible with parent1689 scopes1690 for_parents1691 includes the correct records1692 with confidential work items1693 .has_public_children?1694 with confidential child1695 is expected to be falsey1696 with also public child1697 is expected to be truthy1698 .has_confidential_parent?1699 with confidential parent1700 is expected to be truthy1701 with public parent1702 is expected to be falsey1703 with relative positioning1704 behaves like a class that supports relative positioning1705 #scoped_items1706 includes all items with the same scope1707 #relative_siblings1708 includes all items with the same scope, except self1709 .move_nulls_to_end1710 moves items with null relative_position to the end1711 preserves relative position1712 moves the item near the start position when there are no existing positions1713 does not perform any moves if all items have their relative_position set1714 manages to move nulls to the end even if there is a sequence at the end1715 manages to move nulls to the end even if there is not enough space1716 manages to move nulls to the end, stacking if we cannot create enough space1717 manages to move nulls found in the relative scope1718 can move many nulls1719 does not have an N+1 issue1720 .move_nulls_to_start1721 moves items with null relative_position to the start1722 moves the item near the start position when there are no existing positions1723 preserves relative position1724 does not perform any moves if all items have their relative_position set1725 manages to move nulls to the start even if there is not enough space1726 manages to move nulls to the end, stacking if we cannot create enough space1727 #move_before1728 moves item before1729 can move the item before an item at the start1730 can move the item before an item at MIN_POSITION1731 can move the item before an item bunched up at MIN_POSITION1732 when there is no space1733 moves items correctly1734 leap-frogging to the left1735 can leap-frog STEPS times before needing to rebalance1736 there is no space to the left after moving STEPS times1737 rebalances to the right1738 #move_after1739 moves item after1740 can move the item after an item bunched up at MAX_POSITION1741 when there is no space1742 can move the item after an item at MAX_POSITION1743 moves items correctly1744 leap-frogging1745 rebalances after STEPS jumps1746 #move_to_start1747 places items at most IDEAL_DISTANCE from the start when the range is open1748 moves item to the end1749 positions the item at MIN_POSITION when there is only one space left1750 rebalances when there is already an item at the MIN_POSITION1751 deals with a run of elements at the start1752 #move_to_end1753 places items at most IDEAL_DISTANCE from the start when the range is open1754 moves item to the end1755 positions the item at MAX_POSITION when there is only one space left1756 rebalances when there is already an item at the MAX_POSITION1757 deals with a run of elements at the end1758 #move_between1759 positions item between two other1760 positions item between on top1761 positions item between to end1762 positions items even when after and before positions are the same1763 positions item in the middle of other two if distance is big enough1764 positions item closer to the middle if we are at the very top1765 positions item closer to the middle if we are at the very bottom1766 positions item in the middle of other two1767 positions item right if we pass non-sequential parameters1768 avoids N+1 queries when rebalancing other items1769 the two items are next to each other1770 behaves like moves item between1771 moves the middle item to between left and right1772 there is no space1773 behaves like moves item between1774 moves the middle item to between left and right1775 there is a bunch of items1776 handles bunches correctly1777 behaves like moves item between1778 moves the middle item to between left and right1779ProjectsHelper1780 #project_incident_management_setting1781 when incident_management_setting exists1782 return project_incident_management_setting1783 when incident_management_setting does not exist1784 builds incident_management_setting1785 #error_tracking_setting_project_json1786 error tracking setting does not exist1787 returns nil1788 error tracking setting exists1789 api_url present1790 returns error tracking json1791 api_url not present1792 returns nil1793 #project_status_css_class1794 returns appropriate class1795 can_change_visibility_level?1796 returns false if there are no appropriate permissions1797 returns true if there are permissions1798 #can_disable_emails?1799 returns true for the project owner1800 returns false for anyone else1801 returns false if group emails disabled1802 readme_cache_key1803 returns a valid cach key1804 returns a valid cache key if HEAD does not exist1805 #project_list_cache_key1806 includes the route1807 includes the project1808 includes the last activity date1809 includes the controller name1810 includes the controller action1811 includes the application settings1812 includes a version1813 includes whether or not the user can read cross project1814 includes the pipeline status when there is a status1815 includes the user locale1816 includes the user max member access1817 #load_pipeline_status1818 loads the pipeline status in batch1819 #last_pipeline_from_status_cache1820 without a pipeline1821 returns nil1822 when pipeline_status is loaded1823 returns nil without calling gitaly when there is no pipeline1824 when FF load_last_pipeline_from_pipeline_status is disabled1825 returns nil1826 with a pipeline1827 returns the latest pipeline1828 when pipeline_status is loaded1829 returns the latest pipeline without calling gitaly1830 when FF load_last_pipeline_from_pipeline_status is disabled1831 returns the latest pipeline1832 #show_no_ssh_key_message?1833 user has no keys1834 returns true1835 user has an ssh key1836 returns false1837 #show_no_password_message?1838 user has password set1839 returns false1840 user has hidden the message1841 returns false1842 user requires a password for Git1843 returns true1844 user requires a personal access token for Git1845 returns true1846 #no_password_message1847 password authentication is enabled for Git1848 returns message prompting user to set password or set up a PAT1849 password authentication is disabled for Git1850 returns message prompting user to set up a PAT1851 #link_to_project1852 returns an HTML link to the project1853 #link_to_member_avatar1854 returns image tag for member avatar1855 returns image tag with avatar class1856 #link_to_member1857 using the default options1858 returns an HTML link to the user1859 HTML escapes the name of the user1860 when user is nil1861 returns "(deleted)"1862 default_clone_protocol1863 when user is not logged in and gitlab protocol is HTTP1864 returns HTTP1865 when user is not logged in and gitlab protocol is HTTPS1866 returns HTTPS1867 #last_push_event1868 returns recent push on the current project1869 when there is no current_user1870 returns nil1871 #show_projects1872 returns true when there are projects1873 returns true when there are no projects but a name is given1874 returns true when there are no projects but personal is present1875 returns false when there are no projects and there is no name1876 #push_to_create_project_command1877 returns the command to push to create project over HTTP1878 returns the command to push to create project over SSH1879 #any_projects?1880 returns true when projects will be returned1881 returns false when no projects will be returned1882 returns true when using a non-empty Array1883 returns false when using an empty Array1884 only executes a single query when a LIMIT is applied1885 #git_user_name1886 parses quotes in name1887 #git_user_email1888 not logged-in1889 returns your@email.com1890 user logged in1891 user has no configured commit email1892 returns the primary email1893 user has a configured commit email1894 returns the commit email1895 show_xcode_link1896 when the repository is xcode compatible1897 returns false if the visitor is not using macos1898 returns true if the visitor is using macos1899 when the repository is not xcode compatible1900 returns false if the visitor is not using macos1901 returns false if the visitor is using macos1902 #explore_projects_tab?1903 returns true when on the "All" tab under "Explore projects"1904 returns true when on the "Trending" tab under "Explore projects"1905 returns true when on the "Starred" tab under "Explore projects"1906 returns false when on the "Your projects" tab1907 #show_count?1908 enabled flag1909 returns true if compact mode is disabled1910 returns false if compact mode is enabled1911 disabled flag1912 returns false if disabled flag is true1913 returns true if disabled flag is false1914 #show_auto_devops_implicitly_enabled_banner?1915 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false1916 is expected to eq false1917 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false1918 is expected to eq false1919 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false1920 is expected to eq false1921 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false1922 is expected to eq false1923 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false1924 is expected to eq false1925 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false1926 is expected to eq false1927 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false1928 is expected to eq false1929 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false1930 is expected to eq false1931 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false1932 is expected to eq false1933 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false1934 is expected to eq false1935 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: true1936 is expected to eq true1937 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: true1938 is expected to eq true1939 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false1940 is expected to eq false1941 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false1942 is expected to eq false1943 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false1944 is expected to eq false1945 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false1946 is expected to eq false1947 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false1948 is expected to eq false1949 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false1950 is expected to eq false1951 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false1952 is expected to eq false1953 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false1954 is expected to eq false1955 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false1956 is expected to eq false1957 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false1958 is expected to eq false1959 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: false1960 is expected to eq false1961 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: false1962 is expected to eq false1963 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false1964 is expected to eq false1965 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false1966 is expected to eq false1967 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false1968 is expected to eq false1969 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false1970 is expected to eq false1971 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false1972 is expected to eq false1973 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false1974 is expected to eq false1975 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false1976 is expected to eq false1977 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false1978 is expected to eq false1979 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false1980 is expected to eq false1981 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false1982 is expected to eq false1983 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: false1984 is expected to eq false1985 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: false1986 is expected to eq false1987 #show_mobile_devops_project_promo?1988 hide_cookie: false, feature_flag_enabled: true, mobile_target_platform: true, result: true1989 resolves if the user can import members1990 hide_cookie: false, feature_flag_enabled: false, mobile_target_platform: true, result: false1991 resolves if the user can import members1992 hide_cookie: false, feature_flag_enabled: false, mobile_target_platform: false, result: false1993 resolves if the user can import members1994 hide_cookie: false, feature_flag_enabled: true, mobile_target_platform: false, result: false1995 resolves if the user can import members1996 hide_cookie: true, feature_flag_enabled: false, mobile_target_platform: false, result: false1997 resolves if the user can import members1998 hide_cookie: true, feature_flag_enabled: true, mobile_target_platform: false, result: false1999 resolves if the user can import members2000 hide_cookie: true, feature_flag_enabled: true, mobile_target_platform: true, result: false2001 resolves if the user can import members2002 hide_cookie: true, feature_flag_enabled: false, mobile_target_platform: true, result: false2003 resolves if the user can import members2004 #can_admin_project_member?2005 when user is project owner2006 returns true for owner of project2007 when user is not a project owner2008 user_project_role: :maintainer, can_admin: true2009 resolves if the user can import members2010 user_project_role: :developer, can_admin: false2011 resolves if the user can import members2012 user_project_role: :reporter, can_admin: false2013 resolves if the user can import members2014 user_project_role: :guest, can_admin: false2015 resolves if the user can import members2016 #metrics_external_dashboard_url2017 metrics_setting exists2018 returns external_dashboard_url2019 metrics_setting does not exist2020 returns nil2021 #grafana_integration_url2022 is expected to eq nil2023 grafana integration exists2024 is expected to eq "https://grafana.example.com"2025 #grafana_integration_token2026 is expected to eq nil2027 grafana integration exists2028 is expected to eq "************************************************"2029 #grafana_integration_enabled?2030 is expected to eq nil2031 grafana integration exists2032 is expected to eq true2033 #project_license_name(project)2034 gitaly is working appropriately2035 returns the license name2036 memoizes the value2037 gitaly is unreachable2038 Gitlab::Git::CommandError2039 behaves like returns nil and tracks exception2040 is expected to be nil2041 tracks the exception2042 memoizes the nil value2043 GRPC::Unavailable2044 behaves like returns nil and tracks exception2045 is expected to be nil2046 tracks the exception2047 memoizes the nil value2048 GRPC::DeadlineExceeded2049 behaves like returns nil and tracks exception2050 is expected to be nil2051 tracks the exception2052 memoizes the nil value2053 #show_terraform_banner?2054 the project does not contain terraform files2055 is expected to be falsey2056 the project contains terraform files2057 is expected to be truthy2058 the project already has a terraform state2059 is expected to be falsey2060 the :show_terraform_banner feature flag is disabled2061 is expected to be falsey2062 #project_title2063 enqueues the elements in the breadcrumb schema list2064 #project_permissions_panel_data2065 includes project_permissions_settings2066 includes membersPagePath2067 #project_classes2068 is expected to be a kind of String2069 PUC highlighting enabled2070 is expected to include "project-highlight-puc"2071 PUC highlighting disabled2072 is expected not to include "project-highlight-puc"2073 #delete_confirm_phrase2074 includes the project path with namespace2075 fork security helpers2076 #able_to_see_merge_requests?2077 can_read_merge_request: false, merge_requests_enabled: false, expected: false2078 returns the correct response2079 can_read_merge_request: true, merge_requests_enabled: false, expected: false2080 returns the correct response2081 can_read_merge_request: false, merge_requests_enabled: true, expected: false2082 returns the correct response2083 can_read_merge_request: true, merge_requests_enabled: true, expected: true2084 returns the correct response2085 #able_to_see_issues?2086 can_read_issues: false, issues_enabled: false, expected: false2087 returns the correct response2088 can_read_issues: true, issues_enabled: false, expected: false2089 returns the correct response2090 can_read_issues: false, issues_enabled: true, expected: false2091 returns the correct response2092 can_read_issues: true, issues_enabled: true, expected: true2093 returns the correct response2094 #able_to_see_forks_count?2095 can_read_code: false, forking_enabled: false, expected: false2096 returns the correct response2097 can_read_code: true, forking_enabled: false, expected: false2098 returns the correct response2099 can_read_code: false, forking_enabled: true, expected: false2100 returns the correct response2101 can_read_code: true, forking_enabled: true, expected: true2102 returns the correct response2103 #fork_button_disabled_tooltip2104 has_user: false, can_fork_project: false, can_create_fork: false, expected: nil2105 returns tooltip text when user lacks privilege2106 has_user: true, can_fork_project: true, can_create_fork: true, expected: nil2107 returns tooltip text when user lacks privilege2108 has_user: true, can_fork_project: false, can_create_fork: true, expected: "You don't have permission to fork this project"2109 returns tooltip text when user lacks privilege2110 has_user: true, can_fork_project: true, can_create_fork: false, expected: "You have reached your project limit"2111 returns tooltip text when user lacks privilege2112 #import_from_bitbucket_message2113 behaves like configure import method modal2114 as a user2115 returns a link to contact an administrator2116 as an administrator2117 returns a link to configure bitbucket2118 #import_from_gitlab_message2119 behaves like configure import method modal2120 as a user2121 returns a link to contact an administrator2122 as an administrator2123 returns a link to configure bitbucket2124 #show_inactive_project_deletion_banner?2125 with no project2126 behaves like does not show the banner2127 is expected to equal false2128 with unsaved project2129 behaves like does not show the banner2130 is expected to equal false2131 with the setting disabled2132 behaves like does not show the banner2133 is expected to equal false2134 with the setting enabled2135 with an active project2136 behaves like does not show the banner2137 is expected to equal false2138 with an inactive project2139 shows the banner2140 #inactive_project_deletion_date2141 returns the deletion date2142 #can_admin_associated_clusters?2143 when project has a cluster2144 if user can admin cluster2145 is expected to be truthy2146 if user can not admin cluster2147 is expected to be falsey2148 when project has a group cluster2149 if user can admin cluster2150 is expected to be truthy2151 if user can not admin cluster2152 is expected to be falsey2153 when project doesn't have a cluster2154 if user can admin cluster2155 is expected to be falsey2156 if user can not admin cluster2157 is expected to be falsey2158 #show_clusters_alert?2159 is_gitlab_com: false, user_can_admin_cluster: false, expected: false2160 is expected to eq false2161 is_gitlab_com: false, user_can_admin_cluster: true, expected: false2162 is expected to eq false2163 is_gitlab_com: true, user_can_admin_cluster: false, expected: false2164 is expected to eq false2165 is_gitlab_com: true, user_can_admin_cluster: true, expected: true2166 is expected to eq true2167 #clusters_deprecation_alert_message2168 if user has an active licence2169 displays the correct messagee2170 if user doesn't have an active licence2171 displays the correct message2172 #project_coverage_chart_data_attributes2173 returns project data to render coverage chart2174 #localized_project_human_access2175 key: 0, localized_project_human_access: "No access"2176 with correct key2177 key: 5, localized_project_human_access: "Minimal Access"2178 with correct key2179 key: 10, localized_project_human_access: "Guest"2180 with correct key2181 key: 20, localized_project_human_access: "Reporter"2182 with correct key2183 key: 30, localized_project_human_access: "Developer"2184 with correct key2185 key: 40, localized_project_human_access: "Maintainer"2186 with correct key2187 key: 50, localized_project_human_access: "Owner"2188 with correct key2189 #vue_fork_divergence_data2190 returns empty hash when fork source is not available2191 when fork source is available2192 returns the data related to fork divergence2193 returns view_mr_path if a merge request for the branch exists2194 when a user cannot create a merge request2195 project_role: :guest, source_project_role: :developer2196 create_mr_path is nil2197 project_role: :developer, source_project_role: :guest2198 create_mr_path is nil2199 #remote_mirror_setting_enabled?2200 returns false2201 #http_clone_url_to_repo2202 is expected to eq "http_url_to_repo"2203 #ssh_clone_url_to_repo2204 is expected to eq "ssh_url_to_repo"2205FileUploader2206 legacy storage2207 behaves like builds correct legacy storage paths2208 #store_dir2209 behaves like matches the method pattern2210 is expected to match /awesome\/project\/\h+/2211 #cache_dir2212 behaves like matches the method pattern2213 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2214 #work_dir2215 behaves like matches the method pattern2216 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2217 #upload_path2218 behaves like matches the method pattern2219 is expected to match /\h+\/<filename>/2220 #relative_path2221 is relative (PENDING: Path not set, skipping.)2222 .absolute_path2223 behaves like matches the method pattern2224 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/awesome\/project\/55dc16aa0edd05693fd98b5051e83321\/foo.jpg/2225 .base_dir2226 behaves like matches the method pattern2227 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2228 path traversal exploits2229 throws an exception2230 uses hashed storage2231 when rolled out attachments2232 #store_dir2233 behaves like matches the method pattern2234 is expected to match /@hashed\/\h{2}\/\h{2}\/\h+/2235 #cache_dir2236 behaves like matches the method pattern2237 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2238 #work_dir2239 behaves like matches the method pattern2240 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2241 #upload_path2242 behaves like matches the method pattern2243 is expected to match /\h+\/<filename>/2244 #relative_path2245 is relative (PENDING: Path not set, skipping.)2246 .absolute_path2247 behaves like matches the method pattern2248 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2249 .base_dir2250 behaves like matches the method pattern2251 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2252 path traversal exploits2253 throws an exception2254 when only repositories are rolled out2255 behaves like builds correct legacy storage paths2256 #store_dir2257 behaves like matches the method pattern2258 is expected to match /awesome\/project\/\h+/2259 #cache_dir2260 behaves like matches the method pattern2261 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2262 #work_dir2263 behaves like matches the method pattern2264 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2265 #upload_path2266 behaves like matches the method pattern2267 is expected to match /\h+\/<filename>/2268 #relative_path2269 is relative (PENDING: Path not set, skipping.)2270 .absolute_path2271 behaves like matches the method pattern2272 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/awesome\/project\/55dc16aa0edd05693fd98b5051e83321\/foo.jpg/2273 .base_dir2274 behaves like matches the method pattern2275 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2276 path traversal exploits2277 throws an exception2278 object store is remote2279 behaves like builds correct paths2280 #store_dir2281 behaves like matches the method pattern2282 is expected to match /@hashed\/\h{2}\/\h{2}\/\h+/2283 #cache_dir2284 behaves like matches the method pattern2285 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2286 #work_dir2287 behaves like matches the method pattern2288 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2289 #upload_path2290 behaves like matches the method pattern2291 is expected to match /@hashed\/\h{2}\/\h{2}\/\h+\/\h+\/<filename>/2292 #relative_path2293 is relative (PENDING: Path not set, skipping.)2294 .absolute_path2295 behaves like matches the method pattern2296 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2297 .base_dir2298 behaves like matches the method pattern2299 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2300 path traversal exploits2301 throws an exception2302 initialize2303 accepts a secret parameter2304 callbacks2305 #prune_store_dir after :remove2306 is called2307 prune the store directory2308 copy_to2309 files are stored locally2310 copies the file to the correct location2311 returned uploader2312 generates a new secret2313 creates new upload correctly2314 copies the file2315 files are stored remotely2316 copies the file to the correct location2317 returned uploader2318 generates a new secret2319 creates new upload correctly2320 copies the file2321 .extract_dynamic_path2322 with an absolute path without a slash in the beginning2323 behaves like a valid secret2324 with a 32-byte hexadecimal secret2325 extracts the secret2326 extracts the identifier2327 with a 10-byte hexadecimal secret2328 extracts the secret2329 extracts the identifier2330 with an invalid secret2331 returns nil2332 with an absolute path with a slash in the beginning2333 behaves like a valid secret2334 with a 32-byte hexadecimal secret2335 extracts the secret2336 extracts the identifier2337 with a 10-byte hexadecimal secret2338 extracts the secret2339 extracts the identifier2340 with an invalid secret2341 returns nil2342 with an relative path without a slash in the beginning2343 behaves like a valid secret2344 with a 32-byte hexadecimal secret2345 extracts the secret2346 extracts the identifier2347 with a 10-byte hexadecimal secret2348 extracts the secret2349 extracts the identifier2350 with an invalid secret2351 returns nil2352 with an relative path with a slash in the beginning2353 behaves like a valid secret2354 with a 32-byte hexadecimal secret2355 extracts the secret2356 extracts the identifier2357 with a 10-byte hexadecimal secret2358 extracts the secret2359 extracts the identifier2360 with an invalid secret2361 returns nil2362 #secret2363 generates a secret if none is provided2364 validation2365 32-byte hexadecimal2366 returns the secret2367 10-byte hexadecimal2368 returns the secret2369 invalid secret supplied2370 raises an exception2371 #migrate!2372 behaves like migrates2373 returns corresponding file type2374 does nothing when migrating to the current store2375 migrate to the specified store2376 removes the original file after the migration2377 can access to the original file during migration2378 when migrate! is not occupied by another process2379 executes migrate!2380 executes use_file2381 when migrate! is occupied by another process2382 does not execute migrate!2383 does not execute use_file2384 migration is unsuccessful2385 when the store is not supported2386 does not update the object_store2387 does not delete the original file2388 upon a fog failure2389 does not update the object_store2390 does not delete the original file2391 upon a database failure2392 does not update the object_store2393 does not delete the original file2394 behaves like migrates2395 returns corresponding file type2396 does nothing when migrating to the current store2397 migrate to the specified store2398 removes the original file after the migration2399 can access to the original file during migration2400 when migrate! is not occupied by another process2401 executes migrate!2402 executes use_file2403 when migrate! is occupied by another process2404 does not execute migrate!2405 does not execute use_file2406 migration is unsuccessful2407 when the store is not supported2408 does not update the object_store2409 does not delete the original file2410 upon a fog failure2411 does not update the object_store2412 does not delete the original file2413 upon a database failure2414 does not update the object_store2415 does not delete the original file2416 #upload=2417 handles nil2418 extract the uploader context from it2419 #replace_file_without_saving!2420 replaces an existing file without changing its metadata2421 when remote file is used2422 #cache!2423 file is stored remotely in permament location with sanitized name2424 #to_h2425 generates URL using original file name instead of filename returned by object storage2426Gitlab::RackAttack::Request2427 FILES_PATH_REGEX2428 is expected to match "/api/v4/projects/1/repository/files/README"2429 is expected to match "/api/v4/projects/1/repository/files/README?ref=master"2430 is expected to match "/api/v4/projects/1/repository/files/README/blame"2431 is expected to match "/api/v4/projects/1/repository/files/README/raw"2432 is expected to match "/api/v4/projects/some%2Fnested%2Frepo/repository/files/README"2433 is expected not to match "/api/v4/projects/some/nested/repo/repository/files/README"2434 #api_request?2435 path: "/", expected: false2436 is expected to eq false2437 when the application is mounted at a relative URL2438 is expected to eq false2439 path: "/groups", expected: false2440 is expected to eq false2441 when the application is mounted at a relative URL2442 is expected to eq false2443 path: "/foo/api", expected: false2444 is expected to eq false2445 when the application is mounted at a relative URL2446 is expected to eq false2447 path: "/api", expected: true2448 is expected to eq true2449 when the application is mounted at a relative URL2450 is expected to eq true2451 path: "/api/v4/groups/1", expected: true2452 is expected to eq true2453 when the application is mounted at a relative URL2454 is expected to eq true2455 #api_internal_request?2456 path: "/", expected: false2457 is expected to eq false2458 when the application is mounted at a relative URL2459 is expected to eq false2460 path: "/groups", expected: false2461 is expected to eq false2462 when the application is mounted at a relative URL2463 is expected to eq false2464 path: "/api", expected: false2465 is expected to eq false2466 when the application is mounted at a relative URL2467 is expected to eq false2468 path: "/api/v4/groups/1", expected: false2469 is expected to eq false2470 when the application is mounted at a relative URL2471 is expected to eq false2472 path: "/api/v4/internal", expected: false2473 is expected to eq false2474 when the application is mounted at a relative URL2475 is expected to eq false2476 path: "/foo/api/v4/internal", expected: false2477 is expected to eq false2478 when the application is mounted at a relative URL2479 is expected to eq false2480 path: "/api/v4/internal/", expected: true2481 is expected to eq true2482 when the application is mounted at a relative URL2483 is expected to eq true2484 path: "/api/v4/internal/foo", expected: true2485 is expected to eq true2486 when the application is mounted at a relative URL2487 is expected to eq true2488 path: "/api/v1/internal/foo", expected: true2489 is expected to eq true2490 when the application is mounted at a relative URL2491 is expected to eq true2492 #health_check_request?2493 path: "/", expected: false2494 is expected to eq false2495 when the application is mounted at a relative URL2496 is expected to eq false2497 path: "/groups", expected: false2498 is expected to eq false2499 when the application is mounted at a relative URL2500 is expected to eq false2501 path: "/foo/-/health", expected: false2502 is expected to eq false2503 when the application is mounted at a relative URL2504 is expected to eq false2505 path: "/-/health", expected: true2506 is expected to eq true2507 when the application is mounted at a relative URL2508 is expected to eq true2509 path: "/-/liveness", expected: true2510 is expected to eq true2511 when the application is mounted at a relative URL2512 is expected to eq true2513 path: "/-/readiness", expected: true2514 is expected to eq true2515 when the application is mounted at a relative URL2516 is expected to eq true2517 path: "/-/metrics", expected: true2518 is expected to eq true2519 when the application is mounted at a relative URL2520 is expected to eq true2521 path: "/-/health/foo", expected: true2522 is expected to eq true2523 when the application is mounted at a relative URL2524 is expected to eq true2525 path: "/-/liveness/foo", expected: true2526 is expected to eq true2527 when the application is mounted at a relative URL2528 is expected to eq true2529 path: "/-/readiness/foo", expected: true2530 is expected to eq true2531 when the application is mounted at a relative URL2532 is expected to eq true2533 path: "/-/metrics/foo", expected: true2534 is expected to eq true2535 when the application is mounted at a relative URL2536 is expected to eq true2537 #container_registry_event?2538 path: "/", expected: false2539 is expected to eq false2540 when the application is mounted at a relative URL2541 is expected to eq false2542 path: "/groups", expected: false2543 is expected to eq false2544 when the application is mounted at a relative URL2545 is expected to eq false2546 path: "/api/v4/container_registry_event", expected: false2547 is expected to eq false2548 when the application is mounted at a relative URL2549 is expected to eq false2550 path: "/foo/api/v4/container_registry_event/", expected: false2551 is expected to eq false2552 when the application is mounted at a relative URL2553 is expected to eq false2554 path: "/api/v4/container_registry_event/", expected: true2555 is expected to eq true2556 when the application is mounted at a relative URL2557 is expected to eq true2558 path: "/api/v4/container_registry_event/foo", expected: true2559 is expected to eq true2560 when the application is mounted at a relative URL2561 is expected to eq true2562 path: "/api/v1/container_registry_event/foo", expected: true2563 is expected to eq true2564 when the application is mounted at a relative URL2565 is expected to eq true2566 #product_analytics_collector_request?2567 path: "/", expected: false2568 is expected to eq false2569 when the application is mounted at a relative URL2570 is expected to eq false2571 path: "/groups", expected: false2572 is expected to eq false2573 when the application is mounted at a relative URL2574 is expected to eq false2575 path: "/-/collector", expected: false2576 is expected to eq false2577 when the application is mounted at a relative URL2578 is expected to eq false2579 path: "/-/collector/foo", expected: false2580 is expected to eq false2581 when the application is mounted at a relative URL2582 is expected to eq false2583 path: "/foo/-/collector/i", expected: false2584 is expected to eq false2585 when the application is mounted at a relative URL2586 is expected to eq false2587 path: "/-/collector/i", expected: true2588 is expected to eq true2589 when the application is mounted at a relative URL2590 is expected to eq true2591 path: "/-/collector/ifoo", expected: true2592 is expected to eq true2593 when the application is mounted at a relative URL2594 is expected to eq true2595 path: "/-/collector/i/foo", expected: true2596 is expected to eq true2597 when the application is mounted at a relative URL2598 is expected to eq true2599 #should_be_skipped?2600 api_internal_request: true, health_check_request: true, container_registry_event: true2601 returns true if any condition is true2602 api_internal_request: true, health_check_request: true, container_registry_event: false2603 returns true if any condition is true2604 api_internal_request: true, health_check_request: false, container_registry_event: true2605 returns true if any condition is true2606 api_internal_request: true, health_check_request: false, container_registry_event: false2607 returns true if any condition is true2608 api_internal_request: false, health_check_request: true, container_registry_event: true2609 returns true if any condition is true2610 api_internal_request: false, health_check_request: true, container_registry_event: false2611 returns true if any condition is true2612 api_internal_request: false, health_check_request: false, container_registry_event: true2613 returns true if any condition is true2614 api_internal_request: false, health_check_request: false, container_registry_event: false2615 returns true if any condition is true2616 #web_request?2617 path: "/", expected: true2618 is expected to eq true2619 when the application is mounted at a relative URL2620 is expected to eq true2621 path: "/groups", expected: true2622 is expected to eq true2623 when the application is mounted at a relative URL2624 is expected to eq true2625 path: "/foo/api", expected: true2626 is expected to eq true2627 when the application is mounted at a relative URL2628 is expected to eq true2629 path: "/api", expected: false2630 is expected to eq false2631 when the application is mounted at a relative URL2632 is expected to eq false2633 path: "/api/v4/groups/1", expected: false2634 is expected to eq false2635 when the application is mounted at a relative URL2636 is expected to eq false2637 #protected_path?2638 path: "/", expected: false2639 is expected to eq false2640 when the application is mounted at a relative URL2641 is expected to eq false2642 path: "/groups", expected: false2643 is expected to eq false2644 when the application is mounted at a relative URL2645 is expected to eq false2646 path: "/foo/protected", expected: false2647 is expected to eq false2648 when the application is mounted at a relative URL2649 is expected to eq false2650 path: "/foo/secure", expected: false2651 is expected to eq false2652 when the application is mounted at a relative URL2653 is expected to eq false2654 path: "/protected", expected: true2655 is expected to eq true2656 when the application is mounted at a relative URL2657 is expected to eq true2658 path: "/secure", expected: true2659 is expected to eq true2660 when the application is mounted at a relative URL2661 is expected to eq true2662 path: "/secure/", expected: true2663 is expected to eq true2664 when the application is mounted at a relative URL2665 is expected to eq true2666 path: "/secure/foo", expected: true2667 is expected to eq true2668 when the application is mounted at a relative URL2669 is expected to eq true2670 #frontend_request?2671 session: {}, env: {}, expected: false2672 is expected to eq false2673 session: {}, env: {"HTTP_X_CSRF_TOKEN"=>"ET62gkIRbRIOh/dDLZ1MDq1zN415V4epK+i3UAnARLo="}, expected: false2674 is expected to eq false2675 session: {:_csrf_token=>"ET62gkIRbRIOh/dDLZ1MDq1zN415V4epK+i3UAnARLo="}, env: {"HTTP_X_CSRF_TOKEN"=>"ZdUIrKDQwBQmyotG0Wr7l/QjqVXZdrVwFj1U9rPA7TI="}, expected: false2676 is expected to eq false2677 session: {:_csrf_token=>"ET62gkIRbRIOh/dDLZ1MDq1zN415V4epK+i3UAnARLo="}, env: {"HTTP_X_CSRF_TOKEN"=>"ET62gkIRbRIOh/dDLZ1MDq1zN415V4epK+i3UAnARLo="}, expected: true2678 is expected to eq true2679 #deprecated_api_request?2680 path: "/", query: "", expected: false2681 is expected to eq false2682 when the application is mounted at a relative URL2683 is expected to eq false2684 path: "/api/v4/groups/1/", query: "", expected: true2685 is expected to eq true2686 when the application is mounted at a relative URL2687 is expected to eq true2688 path: "/api/v4/groups/1", query: "", expected: true2689 is expected to eq true2690 when the application is mounted at a relative URL2691 is expected to eq true2692 path: "/api/v4/groups/foo/", query: "", expected: true2693 is expected to eq true2694 when the application is mounted at a relative URL2695 is expected to eq true2696 path: "/api/v4/groups/foo", query: "", expected: true2697 is expected to eq true2698 when the application is mounted at a relative URL2699 is expected to eq true2700 path: "/api/v4/groups/1", query: "with_projects=", expected: true2701 is expected to eq true2702 when the application is mounted at a relative URL2703 is expected to eq true2704 path: "/api/v4/groups/1", query: "with_projects=1", expected: true2705 is expected to eq true2706 when the application is mounted at a relative URL2707 is expected to eq true2708 path: "/api/v4/groups/1", query: "with_projects=0", expected: false2709 is expected to eq false2710 when the application is mounted at a relative URL2711 is expected to eq false2712 path: "/foo/api/v4/groups/1", query: "", expected: false2713 is expected to eq false2714 when the application is mounted at a relative URL2715 is expected to eq false2716 path: "/api/v4/groups/1/foo", query: "", expected: false2717 is expected to eq false2718 when the application is mounted at a relative URL2719 is expected to eq false2720 path: "/api/v4/groups/nested%2Fgroup", query: "", expected: true2721 is expected to eq true2722 when the application is mounted at a relative URL2723 is expected to eq true2724Gitlab::Utils::StrongMemoize2725 # order random2726 #strong_memoize_with2727 with value2728 only calls the block once2729 returns and defines the instance variable for the exact value2730 with value false2731 only calls the block once2732 returns and defines the instance variable for the exact value2733 with value true2734 only calls the block once2735 returns and defines the instance variable for the exact value2736 with value value2737 only calls the block once2738 returns and defines the instance variable for the exact value2739 with value 02740 only calls the block once2741 returns and defines the instance variable for the exact value2742 with value [0]2743 only calls the block once2744 returns and defines the instance variable for the exact value2745 .strong_memoize_attr2746 with value ''2747 memoized after method definition2748 calls the existing .method_added2749 retains method arity2750 behaves like caching the value2751 only calls the block once2752 returns and defines the instance variable for the exact value2753 with value 'false'2754 memoized after method definition2755 calls the existing .method_added2756 retains method arity2757 behaves like caching the value2758 only calls the block once2759 returns and defines the instance variable for the exact value2760 with value 'true'2761 memoized after method definition2762 calls the existing .method_added2763 retains method arity2764 behaves like caching the value2765 only calls the block once2766 returns and defines the instance variable for the exact value2767 with value 'value'2768 memoized after method definition2769 calls the existing .method_added2770 retains method arity2771 behaves like caching the value2772 only calls the block once2773 returns and defines the instance variable for the exact value2774 with value '0'2775 memoized after method definition2776 calls the existing .method_added2777 retains method arity2778 behaves like caching the value2779 only calls the block once2780 returns and defines the instance variable for the exact value2781 with value '[0]'2782 memoized after method definition2783 calls the existing .method_added2784 retains method arity2785 behaves like caching the value2786 only calls the block once2787 returns and defines the instance variable for the exact value2788 method visibility2789 sets private visibility2790 sets protected visibility2791 sets public visibility2792 when method doesn't exist2793 fails when strong-memoizing a nonexistent method2794 when memoized method has parameters2795 raises an error2796 #clear_memoization2797 behaves like clearing memoization2798 removes the instance variable2799 behaves like clearing memoization2800 removes the instance variable2801 .normalize_key2802 input: :key, output: :key, valid: true2803 is expected to eq :key2804 is a valid ivar name2805 input: "key", output: "key", valid: true2806 is expected to eq "key"2807 is a valid ivar name2808 input: :key?, output: "key?", valid: true2809 is expected to eq "key?"2810 is a valid ivar name2811 input: "key?", output: "key?", valid: true2812 is expected to eq "key?"2813 is a valid ivar name2814 input: :key!, output: "key!", valid: true2815 is expected to eq "key!"2816 is a valid ivar name2817 input: "key!", output: "key!", valid: true2818 is expected to eq "key!"2819 is a valid ivar name2820 input: :"ke?y", output: :"ke?y", valid: false2821 is expected to eq :"ke?y"2822 raises a NameError error2823 input: "ke?y", output: "ke?y", valid: false2824 is expected to eq "ke?y"2825 raises a NameError error2826 input: :"ke!y", output: :"ke!y", valid: false2827 is expected to eq :"ke!y"2828 raises a NameError error2829 input: "ke!y", output: "ke!y", valid: false2830 is expected to eq "ke!y"2831 raises a NameError error2832 #strong_memoize_with_expiration2833 with value2834 raises exception for invalid type as key2835 raises exception for invalid characters in key2836 behaves like caching the value2837 only calls the block once2838 returns and defines the instance variable for the exact value2839 with value false2840 raises exception for invalid type as key2841 raises exception for invalid characters in key2842 behaves like caching the value2843 only calls the block once2844 returns and defines the instance variable for the exact value2845 with value true2846 raises exception for invalid type as key2847 raises exception for invalid characters in key2848 behaves like caching the value2849 only calls the block once2850 returns and defines the instance variable for the exact value2851 with value value2852 raises exception for invalid type as key2853 raises exception for invalid characters in key2854 behaves like caching the value2855 only calls the block once2856 returns and defines the instance variable for the exact value2857 with value 02858 raises exception for invalid type as key2859 raises exception for invalid characters in key2860 behaves like caching the value2861 only calls the block once2862 returns and defines the instance variable for the exact value2863 with value [0]2864 raises exception for invalid type as key2865 raises exception for invalid characters in key2866 behaves like caching the value2867 only calls the block once2868 returns and defines the instance variable for the exact value2869 value memoization test2870 caches the value for specified number of seconds2871 #strong_memoized?2872 behaves like memoization check2873 for method_name2874 returns false if the value is uncached2875 returns true if the value is cached2876 behaves like memoization check2877 for enabled?2878 returns false if the value is uncached2879 returns true if the value is cached2880 #strong_memoize2881 with value2882 raises exception for invalid type as key2883 raises exception for invalid characters in key2884 behaves like caching the value2885 only calls the block once2886 returns and defines the instance variable for the exact value2887 with value false2888 raises exception for invalid type as key2889 raises exception for invalid characters in key2890 behaves like caching the value2891 only calls the block once2892 returns and defines the instance variable for the exact value2893 with value true2894 raises exception for invalid type as key2895 raises exception for invalid characters in key2896 behaves like caching the value2897 only calls the block once2898 returns and defines the instance variable for the exact value2899 with value value2900 raises exception for invalid type as key2901 raises exception for invalid characters in key2902 behaves like caching the value2903 only calls the block once2904 returns and defines the instance variable for the exact value2905 with value 02906 raises exception for invalid type as key2907 raises exception for invalid characters in key2908 behaves like caching the value2909 only calls the block once2910 returns and defines the instance variable for the exact value2911 with value [0]2912 raises exception for invalid type as key2913 raises exception for invalid characters in key2914 behaves like caching the value2915 only calls the block once2916 returns and defines the instance variable for the exact value2917 memory allocation2918 for Symbol2919 does allocate exactly one string when fetching value2920 does allocate exactly one string when storing value2921 for String2922 does allocate exactly one string when fetching value2923 does allocate exactly one string when storing value2924Members::ApproveAccessRequestService2925 when an access requester is found2926 when current user is nil2927 and :ldap option is not given2928 behaves like a service raising Gitlab::Access::AccessDeniedError2929 raises Gitlab::Access::AccessDeniedError2930 behaves like a service raising Gitlab::Access::AccessDeniedError2931 raises Gitlab::Access::AccessDeniedError2932 and :skip_authorization option is false2933 behaves like a service raising Gitlab::Access::AccessDeniedError2934 raises Gitlab::Access::AccessDeniedError2935 behaves like a service raising Gitlab::Access::AccessDeniedError2936 raises Gitlab::Access::AccessDeniedError2937 and :skip_authorization option is true2938 behaves like a service approving an access request2939 succeeds2940 returns a <Source>Member2941 calls the method to resolve access request for the approver2942 resolves the todos for the access requests2943 with a custom access level2944 returns a ProjectMember with the custom access level2945 behaves like a service approving an access request2946 succeeds2947 returns a <Source>Member2948 calls the method to resolve access request for the approver2949 resolves the todos for the access requests2950 with a custom access level2951 returns a ProjectMember with the custom access level2952 when current user cannot approve access request to the project2953 behaves like a service raising Gitlab::Access::AccessDeniedError2954 raises Gitlab::Access::AccessDeniedError2955 behaves like a service raising Gitlab::Access::AccessDeniedError2956 raises Gitlab::Access::AccessDeniedError2957 when current user can approve access request to the project2958 behaves like a service approving an access request2959 succeeds2960 returns a <Source>Member2961 calls the method to resolve access request for the approver2962 resolves the todos for the access requests2963 with a custom access level2964 returns a ProjectMember with the custom access level2965 behaves like a service approving an access request2966 succeeds2967 returns a <Source>Member2968 calls the method to resolve access request for the approver2969 resolves the todos for the access requests2970 with a custom access level2971 returns a ProjectMember with the custom access level2972 in a project2973 maintainers2974 cannot approve the access request of a requester to give them OWNER permissions2975 behaves like a service raising Gitlab::Access::AccessDeniedError2976 raises Gitlab::Access::AccessDeniedError2977 owners2978 can approve the access request of a requester to give them OWNER permissions2979 behaves like a service approving an access request2980 succeeds2981 returns a <Source>Member2982 calls the method to resolve access request for the approver2983 resolves the todos for the access requests2984 with a custom access level2985 returns a ProjectMember with the custom access level2986Ci::JobArtifacts::DestroyAllExpiredService2987 .execute2988 when artifact is expired2989 with preloaded relationships2990 performs a consistent number of queries2991 when artifact is not locked2992 deletes job artifact record2993 when the artifact does not have a file attached to it2994 does not create deleted objects2995 when the artifact has a file attached to it2996 creates a deleted object2997 resets project statistics2998 does not remove the files2999 when the project in which the arfifact belongs to is undergoing stats refresh3000 does not destroy job artifact3001 when artifact is locked3002 does not destroy job artifact3003 when artifact is not expired3004 does not destroy expired job artifacts3005 when artifact is permanent3006 does not destroy expired job artifacts3007 when failed to destroy artifact3008 when the import fails3009 raises an exception and stop destroying3010 when the delete fails3011 raises an exception rolls back the insert3012 when exclusive lease has already been taken by the other instance3013 raises an error and does not start destroying3014 with a second artifact and batch size of 13015 when timeout happens3016 destroys one artifact3017 reports the number of destroyed artifacts3018 when loop reached loop limit3019 destroys one artifact3020 reports the number of destroyed artifacts3021 when the number of artifacts is greater than than batch size3022 destroys all expired artifacts3023 reports the number of destroyed artifacts3024 when there are no artifacts3025 does not raise error3026 reports the number of destroyed artifacts3027 when some artifacts are locked3028 destroys only unlocked artifacts3029 when some artifacts are trace3030 destroys only non trace artifacts3031 when all artifacts are locked3032 destroys no artifacts3033gitlab:seed:group_seed rake task3034 performs group seed successfully3035Repositories::ChangelogService3036 #execute3037 generates and commits a changelog section3038 ignores a commit when it's both added and reverted in the same range3039 includes a revert commit when it has a trailer3040 uses the target branch when "to" is unspecified3041 avoids N+1 queries3042 with commit_to_changelog: false3043 generates changelog section3044 when one of commits does not exist3045 raises an exception3046 when commit range exceeds the limit3047 raises an exception3048 when feature flag is off3049 returns the changelog3050 with specified changelog config file path3051 return specified changelog content3052 #start_of_commit_range3053 when the "from" argument is specified3054 returns the value of the argument3055 when the "from" argument is unspecified3056 returns the tag commit of the previous version3057 raises an error when no tag is found3058Gitlab::GitAccessWiki3059 #push_access_check3060 when user can :create_wiki3061 is expected not to raise Exception3062 when in a read-only GitLab instance3063 behaves like forbidden git access3064 prevents access3065 the user cannot :create_wiki3066 is expected to raise wiki not found3067 #check_download_access!3068 when actor is a user3069 behaves like download wiki access by level3070 project_visibility: 0, project_member?: true, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :no_error3071 provides access by level3072 project_visibility: 0, project_member?: true, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :no_error3073 provides access by level3074 project_visibility: 0, project_member?: true, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :forbidden_wiki3075 provides access by level3076 project_visibility: 0, project_member?: true, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3077 provides access by level3078 project_visibility: 0, project_member?: true, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3079 provides access by level3080 project_visibility: 0, project_member?: true, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3081 provides access by level3082 project_visibility: 0, project_member?: false, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :not_found_wiki3083 provides access by level3084 project_visibility: 0, project_member?: false, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :not_found_wiki3085 provides access by level3086 project_visibility: 0, project_member?: false, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :not_found_wiki3087 provides access by level3088 project_visibility: 0, project_member?: false, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3089 provides access by level3090 project_visibility: 0, project_member?: false, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3091 provides access by level3092 project_visibility: 0, project_member?: false, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3093 provides access by level3094 project_visibility: 20, project_member?: true, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :no_error3095 provides access by level3096 project_visibility: 20, project_member?: true, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :no_error3097 provides access by level3098 project_visibility: 20, project_member?: true, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :forbidden_wiki3099 provides access by level3100 project_visibility: 20, project_member?: true, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3101 provides access by level3102 project_visibility: 20, project_member?: true, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3103 provides access by level3104 project_visibility: 20, project_member?: true, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3105 provides access by level3106 project_visibility: 20, project_member?: false, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :no_error3107 provides access by level3108 project_visibility: 20, project_member?: false, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :forbidden_wiki3109 provides access by level3110 project_visibility: 20, project_member?: false, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :forbidden_wiki3111 provides access by level3112 project_visibility: 20, project_member?: false, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3113 provides access by level3114 project_visibility: 20, project_member?: false, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3115 provides access by level3116 project_visibility: 20, project_member?: false, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3117 provides access by level3118 when the actor is a deploy token3119 when the wiki feature is enabled3120 is expected not to raise Exception3121 when the wiki feature is disabled3122 is expected to raise wiki forbidden3123 when the wiki feature is private3124 is expected to raise wiki forbidden3125 when the actor is a deploy key3126 when the wiki is enabled3127 is expected not to raise Exception3128 when the wiki is disabled3129 is expected to raise wiki forbidden3130 when actor is a user provided by build via CI_JOB_TOKEN3131 behaves like download wiki access by level3132 project_visibility: 0, project_member?: true, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :no_error3133 provides access by level3134 project_visibility: 0, project_member?: true, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :no_error3135 provides access by level3136 project_visibility: 0, project_member?: true, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :forbidden_wiki3137 provides access by level3138 project_visibility: 0, project_member?: true, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3139 provides access by level3140 project_visibility: 0, project_member?: true, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3141 provides access by level3142 project_visibility: 0, project_member?: true, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3143 provides access by level3144 project_visibility: 0, project_member?: false, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :not_found_wiki3145 provides access by level3146 project_visibility: 0, project_member?: false, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :not_found_wiki3147 provides access by level3148 project_visibility: 0, project_member?: false, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :not_found_wiki3149 provides access by level3150 project_visibility: 0, project_member?: false, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3151 provides access by level3152 project_visibility: 0, project_member?: false, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3153 provides access by level3154 project_visibility: 0, project_member?: false, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3155 provides access by level3156 project_visibility: 20, project_member?: true, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :no_error3157 provides access by level3158 project_visibility: 20, project_member?: true, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :no_error3159 provides access by level3160 project_visibility: 20, project_member?: true, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :forbidden_wiki3161 provides access by level3162 project_visibility: 20, project_member?: true, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3163 provides access by level3164 project_visibility: 20, project_member?: true, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3165 provides access by level3166 project_visibility: 20, project_member?: true, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3167 provides access by level3168 project_visibility: 20, project_member?: false, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :no_error3169 provides access by level3170 project_visibility: 20, project_member?: false, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :forbidden_wiki3171 provides access by level3172 project_visibility: 20, project_member?: false, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :forbidden_wiki3173 provides access by level3174 project_visibility: 20, project_member?: false, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3175 provides access by level3176 project_visibility: 20, project_member?: false, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3177 provides access by level3178 project_visibility: 20, project_member?: false, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3179 provides access by level3180User TokenAuthenticatable3181 behaves like TokenAuthenticatable3182 dynamically defined methods3183 is expected to respond to #find_by_feed_token3184 is expected to respond to #ensure_feed_token3185 is expected to respond to #set_feed_token3186 is expected to respond to #reset_feed_token!3187 SensitiveSerializableHash3188 includes the token field in list of sensitive attributes prevented from serialization3189 ensures authentication token3190 is expected to be a kind of String3191ApplicationSetting TokenAuthenticatable3192 behaves like TokenAuthenticatable3193 dynamically defined methods3194 is expected to respond to #find_by_runners_registration_token3195 is expected to respond to #ensure_runners_registration_token3196 is expected to respond to #set_runners_registration_token3197 is expected to respond to #reset_runners_registration_token!3198 SensitiveSerializableHash3199 includes the token field in list of sensitive attributes prevented from serialization3200 generating new token3201 token is not generated yet3202 token field accessor3203 is expected not to be blank3204 ensure_runners_registration_token3205 is expected to be a kind of String3206 is expected not to be blank3207 does not persist token3208 ensure_runners_registration_token!3209 persists new token as an encrypted string3210 does not persist token in a clear text3211 token is generated3212 persists a new token3213 setting new token3214 is expected to eq "0123456789"3215 multiple token fields3216 is expected to respond to #ensure_runners_registration_token3217 is expected to respond to #ensure_error_tracking_access_token3218 is expected to respond to #ensure_yet_another_token3219 setting same token field multiple times3220 raises error3221PersonalAccessToken TokenAuthenticatable3222 .find_by_token3223 finds the token3224 #set_token3225 sets new token3226 #ensure_token3227 token_digest does not exist3228 behaves like changes personal access token3229 sets new token3230 token_digest already generated3231 behaves like does not change personal access token3232 sets new token3233 #ensure_token!3234 token_digest does not exist3235 behaves like changes personal access token3236 sets new token3237 token_digest already generated3238 behaves like does not change personal access token3239 sets new token3240 #reset_token!3241 token_digest does not exist3242 behaves like changes personal access token3243 sets new token3244 token_digest already generated3245 behaves like changes personal access token3246 sets new token3247Ci::Build TokenAuthenticatable3248 behaves like TokenAuthenticatable3249 dynamically defined methods3250 is expected to respond to #find_by_token3251 is expected to respond to #ensure_token3252 is expected to respond to #set_token3253 is expected to respond to #reset_token!3254 SensitiveSerializableHash3255 includes the token field in list of sensitive attributes prevented from serialization3256 generating new token3257 token is not generated yet3258 token field accessor3259 does not generate a token when saving a build3260 ensure_token3261 is expected to be a kind of String3262 is expected not to be blank3263 does not persist token3264 ensure_token!3265 persists a new token3266 persists new token as an encrypted string3267 does not persist a token in a clear text3268 #reset_token!3269 persists a new token3270 setting a new token3271 returns the token3272 writes a new encrypted token3273 does not write a new cleartext token3274 #token_with_expiration3275 #expirable?3276 is expected to eq false3277Ci::Runner TokenAuthenticatable3278 #token_expired?3279 when runner has no token expiration3280 is expected to eq false3281 when runner token is not expired3282 is expected to eq false3283 when runner token is expired3284 is expected to eq true3285 #token_with_expiration3286 #token3287 is expected to eq "DRKcrxRu249Y3rN1pjGj"3288 #token_expires_at3289 is expected to eq 2023-06-02 06:36:41.501515755 +00003290 #expirable?3291 is expected to eq true3292 .find_by_token3293 when runner has no token expiration3294 is expected to eq #<Ci::Runner id: 1, token: nil, created_at: "2023-06-02 06:36:36.482835958 +0000", updated_at: "2023-...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>3295 when runner token is not expired3296 is expected to eq #<Ci::Runner id: 2, token: nil, created_at: "2023-06-02 06:36:36.496512517 +0000", updated_at: "2023-... +0000", allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>3297 when runner token is expired3298 is expected to be nil3299Project TokenAuthenticatable3300 behaves like prefixed token rotation3301 ensure_runners_token3302 token is not set3303 generates a new token3304 token is set, but does not match the prefix3305 generates a new token3306 token is set and matches prefix3307 leaves the token unchanged3308 ensure_runners_token!3309 token is not set3310 generates a new token3311 token is set, but does not match the prefix3312 generates a new token3313 token is set and matches prefix3314 leaves the token unchanged3315Group TokenAuthenticatable3316 behaves like prefixed token rotation3317 ensure_runners_token3318 token is not set3319 generates a new token3320 token is set, but does not match the prefix3321 generates a new token3322 token is set and matches prefix3323 leaves the token unchanged3324 ensure_runners_token!3325 token is not set3326 generates a new token3327 token is set, but does not match the prefix3328 generates a new token3329 token is set and matches prefix3330 leaves the token unchanged3331CacheMarkdownField3332 for Active record classes3333 behaves like a class with cached markdown fields3334 #cached_html_up_to_date?3335 returns false when the version is absent3336 returns false when the version is too early3337 returns false when the version is too late3338 returns false when the local version was bumped3339 returns true when the local version is default3340 returns true when the cached version is just right3341 #latest_cached_markdown_version3342 returns default version3343 #refresh_markdown_cache3344 fills all html fields3345 does not save the result3346 updates the markdown cache version3347 #refresh_markdown_cache!3348 fills all html fields3349 saves the changes3350 #banzai_render_context3351 sets project to nil if the object lacks a project3352 excludes author if the object lacks an author3353 raises if the context for an unrecognised field is requested3354 includes the pipeline3355 returns copies of the context template3356 with a project3357 sets the project in the context3358 with an author3359 sets the author in the context3360 with a parent_user3361 sets the user in the context3362 when the personal_snippet_reference_filters flag is disabled3363 does not set the user in the context3364 #updated_cached_html_for3365 when the markdown cache is outdated3366 calls #refresh_markdown_cache!3367 when the markdown field does not exist3368 returns nil3369 when the markdown cache is up to date3370 does not call #refresh_markdown_cache!3371 #rendered_field_content3372 when a field can be cached3373 returns the html3374 when a field cannot be cached3375 returns nil3376 behaves like a class with mentionable markdown fields3377 when klass is a Mentionable3378 #mentionable_attributes_changed?3379 returns true with key string3380 returns false with key symbol3381 returns false when no attr_mentionable keys3382 #save3383 when cache is outdated3384 when the markdown field also a mentionable attribute3385 calls #store_mentions!3386 when the markdown field is not mentionable attribute3387 does not call #store_mentions!3388 when the markdown field does not exist3389 does not call #store_mentions!3390 #attribute_invalidated?3391 returns true when cached_markdown_version is different3392 returns true when markdown is changed3393 returns true when both markdown and HTML are changed3394 returns false when there are no changes3395 returns false if skip_markdown_cache_validation is true3396 when cache version is updated3397 correctly updates cached HTML even if refresh_markdown_cache is called before updating the attribute3398 for other classes3399 behaves like a class with cached markdown fields3400 #cached_html_up_to_date?3401 returns false when the version is absent3402 returns false when the version is too early3403 returns false when the version is too late3404 returns false when the local version was bumped3405 returns true when the local version is default3406 returns true when the cached version is just right3407 #latest_cached_markdown_version3408 returns default version3409 #refresh_markdown_cache3410 fills all html fields3411 does not save the result3412 updates the markdown cache version3413 #refresh_markdown_cache!3414 fills all html fields3415 saves the changes3416 #banzai_render_context3417 sets project to nil if the object lacks a project3418 excludes author if the object lacks an author3419 raises if the context for an unrecognised field is requested3420 includes the pipeline3421 returns copies of the context template3422 with a project3423 sets the project in the context3424 with an author3425 sets the author in the context3426 with a parent_user3427 sets the user in the context3428 when the personal_snippet_reference_filters flag is disabled3429 does not set the user in the context3430 #updated_cached_html_for3431 when the markdown cache is outdated3432 calls #refresh_markdown_cache!3433 when the markdown field does not exist3434 returns nil3435 when the markdown cache is up to date3436 does not call #refresh_markdown_cache!3437 #rendered_field_content3438 when a field can be cached3439 returns the html3440 when a field cannot be cached3441 returns nil3442CommitStatusPresenter3443 inherits from Gitlab::View::Presenter::Delegated3444 #callout_failure_message3445 when troubleshooting doc is available3446 appends the troubleshooting link3447 covers all failure reasons3448 unknown_failure3449 is a valid status3450 script_failure3451 is a valid status3452 api_failure3453 is a valid status3454 stuck_or_timeout_failure3455 is a valid status3456 runner_system_failure3457 is a valid status3458 missing_dependency_failure3459 is a valid status3460 runner_unsupported3461 is a valid status3462 stale_schedule3463 is a valid status3464 job_execution_timeout3465 is a valid status3466 archived_failure3467 is a valid status3468 unmet_prerequisites3469 is a valid status3470 scheduler_failure3471 is a valid status3472 data_integrity_failure3473 is a valid status3474 forward_deployment_failure3475 is a valid status3476 user_blocked3477 is a valid status3478 project_deleted3479 is a valid status3480 ci_quota_exceeded3481 is a valid status3482 pipeline_loop_detected3483 is a valid status3484 no_matching_runner3485 is a valid status3486 trace_size_exceeded3487 is a valid status3488 builds_disabled3489 is a valid status3490 environment_creation_failure3491 is a valid status3492 deployment_rejected3493 is a valid status3494 failed_outdated_deployment_job3495 is a valid status3496 protected_environment_failure3497 is a valid status3498 insufficient_bridge_permissions3499 is a valid status3500 downstream_bridge_project_not_found3501 is a valid status3502 invalid_bridge_trigger3503 is a valid status3504 upstream_bridge_project_not_found3505 is a valid status3506 insufficient_upstream_permissions3507 is a valid status3508 bridge_pipeline_is_child_pipeline3509 is a valid status3510 downstream_pipeline_creation_failed3511 is a valid status3512 secrets_provider_not_found3513 is a valid status3514 reached_max_descendant_pipelines_depth3515 is a valid status3516 ip_restriction_failure3517 is a valid status3518 reached_max_pipeline_hierarchy_size3519 is a valid status3520 invalid failure message3521 is an invalid status3522Banzai::ReferenceParser::UserParser3523 #referenced_by3524 when the link has a data-group attribute3525 using an existing group ID3526 returns an empty Array when the group has no users3527 when group has members3528 returns the users of the group3529 returns an empty Array when the group has mentions disabled3530 using a non-existing group ID3531 returns an empty Array3532 when the link has a data-user attribute3533 returns an Array of users3534 when RequestStore is active3535 does not return users from the first call in the second3536 when the link has a data-project attribute3537 using an existing project ID3538 returns the members of a project3539 using a non-existing project ID3540 returns an empty Array3541 #nodes_visible_to_user3542 when the link has a data-group attribute3543 using an existing group ID3544 returns the nodes if the user can read the group3545 returns an empty Array if the user can not read the group3546 when the link does not have a data-group attribute3547 with a data-project attribute3548 returns the nodes if the attribute value equals the current project ID3549 returns the nodes if the user can read the project3550 returns an empty Array if the user can not read the project3551 without a data-project attribute3552 returns the nodes3553 #nodes_user_can_reference3554 when the link has a data-author attribute3555 returns the nodes when the user is a member of the project3556 returns an empty Array when the project could not be found3557 returns an empty Array when the user could not be found3558 returns an empty Array when the user is not a team member3559 returns the nodes if the project attribute value equals the current project ID3560 when the link does not have a data-author attribute3561 returns the nodes3562Resolvers::NamespaceProjectsResolver3563 has an high complexity regardless of arguments3564 with a group3565 #resolve3566 finds all projects3567 finds all projects including the subgroups3568 with an user namespace3569 finds all projects3570 finds all projects including the subgroups3571 search and similarity sorting3572 returns projects ordered by similarity to the search input3573 filters out result that do not match the search input3574 when `search` parameter is not given3575 returns projects not ordered by similarity3576 when only search term is given3577 filters out result that do not match the search input, but does not sort them3578 ids filtering3579 when ids is provided3580 returns matching project3581 when ids is nil3582 returns all projects3583 when passing a non existent, batch loaded namespace3584 returns nil without breaking3585Ci::PlayBuildService#execute3586 when project does not have repository yet3587 allows user to play build if protected branch rules are met3588 does not allow user with developer role to play build3589 when project has repository3590 allows user with developer role to play a build3591 prevents a blocked developer from playing a build3592 when build is a playable manual action3593 enqueues the build3594 reassignes build user correctly3595 when a subsequent job is skipped3596 marks the subsequent job as processable3597 when variables are supplied3598 assigns the variables to the build3599 and variables are invalid3600 resets the attributes of the build3601 when user defined variables are restricted3602 when user is maintainer3603 assigns the variables to the build3604 when user is developer3605 raises an error3606 when build is not a playable manual action3607 duplicates the build3608 assigns users correctly3609 and is not retryable3610 does not duplicate the build3611 does not enqueue the build3612 when build is not action3613 raises an error3614 when user does not have ability to trigger action3615 raises an error3616ErrorTracking::SentryClient::Issue3617 # order random3618 #update_issue3619 returns a truthy result3620 behaves like Sentry API response size limit3621 raises an exception when response is too large3622 behaves like calls sentry api3623 calls sentry api3624 when error is encountered3625 raises the error3626 #list_issues3627 behaves like calls sentry api3628 calls sentry api3629 behaves like issues have correct return type3630 returns objects of type Gitlab::ErrorTracking::Error3631 behaves like issues have correct length3632 is expected to eq 33633 behaves like maps Sentry exceptions3634 HTTParty::Error3635 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"3636 Net::OpenTimeout3637 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"3638 SocketError3639 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"3640 OpenSSL::SSL::SSLError3641 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"3642 Errno::ECONNREFUSED3643 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"3644 StandardError3645 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"3646 behaves like Sentry API response size limit3647 raises an exception when response is too large3648 when response has a pagination info3649 parses the pagination3650 when error object created from sentry response3651 error_object: :id, sentry_response: :id3652 is expected to eq "11"3653 error_object: :first_seen, sentry_response: :firstSeen3654 is expected to eq "2018-12-17T12:00:14Z"3655 error_object: :last_seen, sentry_response: :lastSeen3656 is expected to eq "2018-12-31T12:00:11Z"3657 error_object: :title, sentry_response: :title3658 is expected to eq "gaierror: [Errno -2] Name or service not known"3659 error_object: :type, sentry_response: :type3660 is expected to eq "error"3661 error_object: :user_count, sentry_response: :userCount3662 is expected to eq 03663 error_object: :count, sentry_response: :count3664 is expected to eq "21"3665 error_object: :message, sentry_response: [:metadata, :value]3666 is expected to eq "[Errno -2] Name or service not known"3667 error_object: :culprit, sentry_response: :culprit3668 is expected to eq "sentry.tasks.reports.deliver_organization_user_report"3669 error_object: :short_id, sentry_response: :shortId3670 is expected to eq "INTERNAL-4"3671 error_object: :status, sentry_response: :status3672 is expected to eq "unresolved"3673 error_object: :frequency, sentry_response: [:stats, "24h"]3674 is expected to eq [[1546437600, 0]]3675 error_object: :project_id, sentry_response: [:project, :id]3676 is expected to eq "1"3677 error_object: :project_name, sentry_response: [:project, :name]3678 is expected to eq "Internal"3679 error_object: :project_slug, sentry_response: [:project, :slug]3680 is expected to eq "internal"3681 behaves like has correct external_url3682 #external_url3683 is constructed correctly3684 with redirects3685 behaves like no Sentry redirects3686 does not follow redirects3687 with sort parameter in sentry api3688 calls the sentry api with sort params3689 with invalid sort params3690 throws an error3691 with older sentry versions where keys are not present3692 behaves like calls sentry api3693 calls sentry api3694 behaves like issues have correct return type3695 returns objects of type Gitlab::ErrorTracking::Error3696 behaves like issues have correct length3697 is expected to eq 13698 behaves like has correct external_url3699 #external_url3700 is constructed correctly3701 when essential keys are missing in API response3702 raises exception3703 when search term is present3704 behaves like calls sentry api3705 calls sentry api3706 behaves like issues have correct return type3707 returns objects of type Gitlab::ErrorTracking::Error3708 behaves like issues have correct length3709 is expected to eq 33710 when cursor is present3711 behaves like calls sentry api3712 calls sentry api3713 behaves like issues have correct return type3714 returns objects of type Gitlab::ErrorTracking::Error3715 behaves like issues have correct length3716 is expected to eq 33717 behaves like non-numeric input handling in Sentry response3718 with non-numeric error id3719 id_input: "string"3720 raises exception3721 id_input: "-1"3722 raises exception3723 id_input: "1\\n2"3724 raises exception3725 #issue_details3726 behaves like maps Sentry exceptions3727 HTTParty::Error3728 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"3729 Net::OpenTimeout3730 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"3731 SocketError3732 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"3733 OpenSSL::SSL::SSLError3734 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"3735 Errno::ECONNREFUSED3736 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"3737 StandardError3738 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"3739 behaves like Sentry API response size limit3740 raises an exception when response is too large3741 with error object created from sentry response3742 has a correct external URL3743 issue has a correct external base url3744 has a correct GitLab issue url3745 has an integrated attribute set to false3746 has the correct tags3747 error_object: :id, sentry_response: :id3748 is expected to eq "11"3749 error_object: :first_seen, sentry_response: :firstSeen3750 is expected to eq "2018-11-06T21:19:55Z"3751 error_object: :last_seen, sentry_response: :lastSeen3752 is expected to eq "2018-11-06T21:19:55Z"3753 error_object: :title, sentry_response: :title3754 is expected to eq "This is an example Python exception"3755 error_object: :type, sentry_response: :type3756 is expected to eq "default"3757 error_object: :user_count, sentry_response: :userCount3758 is expected to eq 03759 error_object: :count, sentry_response: :count3760 is expected to eq "1"3761 error_object: :message, sentry_response: [:metadata, :value]3762 is expected to eq nil3763 error_object: :culprit, sentry_response: :culprit3764 is expected to eq "raven.scripts.runner in main"3765 error_object: :short_id, sentry_response: :shortId3766 is expected to eq "PUMP-STATION-1"3767 error_object: :status, sentry_response: :status3768 is expected to eq "unresolved"3769 error_object: :frequency, sentry_response: [:stats, "24h"]3770 is expected to eq [[1541451600.0, 557], [1541455200.0, 473], [1541458800.0, 914], [1541462400.0, 991], [1541466000.0, 9...1523600.0, 111], [1541527200.0, 926], [1541530800.0, 772], [1541534400.0, 400], [1541538000.0, 943]]3771 error_object: :project_id, sentry_response: [:project, :id]3772 is expected to eq "2"3773 error_object: :project_name, sentry_response: [:project, :name]3774 is expected to eq "Pump Station"3775 error_object: :project_slug, sentry_response: [:project, :slug]3776 is expected to eq "pump-station"3777 error_object: :first_release_last_commit, sentry_response: [:firstRelease, :lastCommit]3778 is expected to eq nil3779 error_object: :last_release_last_commit, sentry_response: [:lastRelease, :lastCommit]3780 is expected to eq {}3781 error_object: :first_release_short_version, sentry_response: [:firstRelease, :shortVersion]3782 is expected to eq "1764232"3783 error_object: :last_release_short_version, sentry_response: [:lastRelease, :shortVersion]3784 is expected to eq "27de6b42eb4"3785 error_object: :first_release_version, sentry_response: [:firstRelease, :version]3786 is expected to eq "17642328ead24b51867165985996d04b29310337"3787 error_object: :last_release_version, sentry_response: [:lastRelease, :version]3788 is expected to eq "17642328ead24b51867165985996d04b29321448"3789 when issue annotations exist3790 has a correct GitLab issue url3791 when no GitLab issue is linked3792 does not find a GitLab issue3793 behaves like non-numeric input handling in Sentry response3794 with non-numeric error id3795 id_input: "string"3796 raises exception3797 id_input: "-1"3798 raises exception3799 id_input: "1\\n2"3800 raises exception3801Terraform::StateVersion3802 is expected to be a kind of FileStoreMounter3803 is expected to be a kind of EachBatch3804 is expected to belong to terraform_state required: true3805 is expected to belong to created_by_user class_name => User optional: true3806 is expected to belong to build class_name => Ci::Build optional: true3807 default attributes3808 is expected to eq 53809 is expected to eq 33810 scopes3811 .ordered_by_version_desc3812 is expected to eq [5, 4, 3, 2, 1]3813 .with_files_stored_locally3814 includes states with local storage3815 excludes states without local storage3816 file storage3817 #file3818 returns the saved file3819 #file_store3820 returns the value3821 #update_file_store3822 when file is stored in object storage3823 sets file_store to remote3824 when file is stored locally3825 sets file_store to local3826 behaves like cleanup by a loose foreign key3827 cleans up (delete or nullify) the model3828Gitlab::CurrentSettings3829 .expire_current_application_settings3830 expires the cache3831 .signup_limited?3832 when there are allowed domains3833 is expected to be truthy3834 when there are email restrictions3835 is expected to be truthy3836 when the admin has to approve signups3837 is expected to be truthy3838 when new users are set to external3839 is expected to be truthy3840 when there are no restrictions3841 is expected to be falsey3842 .signup_disabled?3843 when signup is enabled3844 is expected to be falsey3845 when signup is disabled3846 is expected to be truthy3847 #current_application_settings3848 allows keys to be called directly3849 when ENV["IN_MEMORY_APPLICATION_SETTINGS"] is true3850 returns an in-memory ApplicationSetting object3851 in a Rake task with DB unavailable3852 and no settings in cache3853 returns a FakeApplicationSettings object3854 does not issue any query3855 with DB available3856 and settings in cache3857 fetches the settings from cache3858 and no settings in cache3859 creates default ApplicationSettings if none are present3860 with RequestStore enabled3861 fetches the settings from DB only once3862 when we hit a recursive loop3863 recovers and returns in-memory settings3864 when ApplicationSettings does not have a primary key3865 raises an exception if ApplicationSettings does not have a primary key3866 with pending migrations3867 in a Rake task3868 returns a FakeApplicationSettings object3869 behaves like a non-persisted ApplicationSetting object3870 uses the default value from ApplicationSetting.defaults3871 uses the default value from custom ApplicationSetting accessors3872 responds to predicate methods3873 when a new column is used before being migrated3874 uses the default value if present3875 with no ApplicationSetting DB record3876 behaves like a non-persisted ApplicationSetting object3877 uses the default value from ApplicationSetting.defaults3878 uses the default value from custom ApplicationSetting accessors3879 responds to predicate methods3880 with an existing ApplicationSetting DB record3881 uses the value from the DB attribute if present and not overridden by an accessor3882 behaves like a non-persisted ApplicationSetting object3883 uses the default value from ApplicationSetting.defaults3884 uses the default value from custom ApplicationSetting accessors3885 responds to predicate methods3886 when ApplicationSettings.current is present3887 returns the existing application settings3888 #current_application_settings?3889 returns true when settings exist3890 returns false when settings do not exist3891 with cache3892 returns an in-memory ApplicationSetting object3893PrometheusMetric3894 is expected to belong to project required: false3895 is expected to validate that :title cannot be empty/falsy3896 is expected to validate that :query cannot be empty/falsy3897 is expected to validate that :group cannot be empty/falsy3898 is expected to validate that :identifier is case-sensitively unique within the scope of :project_id as long as it is not nil3899 behaves like having unique enum values3900 has unique values in "group"3901 common metrics3902 common: false, with_project: true, result: true3903 is expected to eq true3904 common: false, with_project: false, result: false3905 is expected to eq false3906 common: true, with_project: true, result: false3907 is expected to eq false3908 common: true, with_project: false, result: true3909 is expected to eq true3910 #query_series3911 legend: "Some other legend", type: NilClass3912 is expected to be a kind of NilClass3913 legend: "Status Code", type: Array3914 is expected to be a kind of Array3915 #group_title3916 behaves like group_title3917 returns text Response metrics (NGINX Ingress VTS) for group nginx_ingress_vts3918 behaves like group_title3919 returns text Response metrics (NGINX Ingress) for group nginx_ingress3920 behaves like group_title3921 returns text Response metrics (HA Proxy) for group ha_proxy3922 behaves like group_title3923 returns text Response metrics (AWS ELB) for group aws_elb3924 behaves like group_title3925 returns text Response metrics (NGINX) for group nginx3926 behaves like group_title3927 returns text System metrics (Kubernetes) for group kubernetes3928 behaves like group_title3929 returns text Business metrics (Custom) for group business3930 behaves like group_title3931 returns text Response metrics (Custom) for group response3932 behaves like group_title3933 returns text System metrics (Custom) for group system3934 behaves like group_title3935 returns text Cluster Health for group cluster_health3936 #priority3937 group: :nginx_ingress_vts, priority: 103938 is expected to eq 103939 group: :nginx_ingress, priority: 103940 is expected to eq 103941 group: :ha_proxy, priority: 103942 is expected to eq 103943 group: :aws_elb, priority: 103944 is expected to eq 103945 group: :nginx, priority: 103946 is expected to eq 103947 group: :kubernetes, priority: 53948 is expected to eq 53949 group: :business, priority: 03950 is expected to eq 03951 group: :response, priority: -53952 is expected to eq -53953 group: :system, priority: -103954 is expected to eq -103955 group: :cluster_health, priority: 103956 is expected to eq 103957 #required_metrics3958 group: :nginx_ingress_vts, required_metrics: ["nginx_upstream_responses_total", "nginx_upstream_response_msecs_avg"]3959 is expected to eq ["nginx_upstream_responses_total", "nginx_upstream_response_msecs_avg"]3960 group: :nginx_ingress, required_metrics: ["nginx_ingress_controller_requests", "nginx_ingress_controller_ingress_upstream_latency_seconds_sum"]3961 is expected to eq ["nginx_ingress_controller_requests", "nginx_ingress_controller_ingress_upstream_latency_seconds_sum"]3962 group: :ha_proxy, required_metrics: ["haproxy_frontend_http_requests_total", "haproxy_frontend_http_responses_total"]3963 is expected to eq ["haproxy_frontend_http_requests_total", "haproxy_frontend_http_responses_total"]3964 group: :aws_elb, required_metrics: ["aws_elb_request_count_sum", "aws_elb_latency_average", "aws_elb_httpcode_backend_5_xx_sum"]3965 is expected to eq ["aws_elb_request_count_sum", "aws_elb_latency_average", "aws_elb_httpcode_backend_5_xx_sum"]3966 group: :nginx, required_metrics: ["nginx_server_requests", "nginx_server_requestMsec"]3967 is expected to eq ["nginx_server_requests", "nginx_server_requestMsec"]3968 group: :kubernetes, required_metrics: ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]3969 is expected to eq ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]3970 group: :business, required_metrics: []3971 is expected to eq []3972 group: :response, required_metrics: []3973 is expected to eq []3974 group: :system, required_metrics: []3975 is expected to eq []3976 group: :cluster_health, required_metrics: ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]3977 is expected to eq ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]3978 #to_query_metric3979 converts to queryable metric object3980 queryable metric object has title3981 queryable metric object has y_label3982 queryable metric has no required_metric3983 queryable metrics has query description3984 #to_metric_hash3985 returns a hash suitable for inclusion on a metrics dashboard3986MergeRequests::Conflicts::ListService3987 #can_be_resolved_in_ui?3988 returns a falsey value when the MR can be merged without conflicts3989 returns a falsey value when the MR is marked as having conflicts, but has none3990 returns a falsey value when one of the MR branches is missing3991 returns a falsey value when the MR does not support new diff notes3992 returns a falsey value when the conflicts contain a large file3993 returns a falsey value when the conflicts contain a binary file3994 returns a falsey value when the conflicts contain a file edited in one branch and deleted in another3995 returns a truthy value when the conflicts are resolvable in the UI3996 returns a truthy value when the conflicts have to be resolved in an editor3997 returns a falsey value when the MR has a missing ref after a force push3998 returns a falsey value when the MR has a missing revision after a force push3999 returns a falsey value when the conflict is in a submodule revision4000Gitlab::Gfm::UploadsRewriter4001 text contains links to uploads4002 does not rewrite plain links as embedded4003 does not casue a timeout on pathological text4004 file are stored locally4005 #rewrite4006 rewrites content4007 copies files4008 does not remove old files4009 generates a new secret for each file4010 skips nil files do4011 skips non-existant files4012 files are stored remotely4013 #rewrite4014 rewrites content4015 copies files4016 does not remove old files4017 generates a new secret for each file4018 skips nil files do4019 skips non-existant files4020 #needs_rewrite?4021 is expected to eq true4022Gitlab::LegacyGithubImport::IssueFormatter4023 when importing a GitHub project4024 behaves like Gitlab::LegacyGithubImport::IssueFormatter#attributes4025 when issue is open4026 returns formatted attributes4027 when issue is closed4028 returns formatted attributes4029 when it is assigned to someone4030 returns nil as assignee_id when is not a GitLab user4031 returns GitLab user id associated with GitHub id as assignee_id4032 returns GitLab user id associated with GitHub email as assignee_id4033 when it has a milestone4034 returns nil when milestone does not exist4035 returns milestone when it exists4036 when author is a GitLab user4037 returns project creator_id as author_id when is not a GitLab user4038 returns GitLab user id associated with GitHub id as author_id4039 returns GitLab user id associated with GitHub email as author_id4040 returns description without created at tag line4041 behaves like Gitlab::LegacyGithubImport::IssueFormatter#number4042 returns issue number4043 when importing a Gitea project4044 behaves like Gitlab::LegacyGithubImport::IssueFormatter#attributes4045 when issue is open4046 returns formatted attributes4047 when issue is closed4048 returns formatted attributes4049 when it is assigned to someone4050 returns nil as assignee_id when is not a GitLab user4051 returns GitLab user id associated with GitHub id as assignee_id4052 returns GitLab user id associated with GitHub email as assignee_id4053 when it has a milestone4054 returns nil when milestone does not exist4055 returns milestone when it exists4056 when author is a GitLab user4057 returns project creator_id as author_id when is not a GitLab user4058 returns GitLab user id associated with GitHub id as author_id4059 returns GitLab user id associated with GitHub email as author_id4060 returns description without created at tag line4061 behaves like Gitlab::LegacyGithubImport::IssueFormatter#number4062 returns issue number4063 #has_comments?4064 when number of comments is greater than zero4065 returns true4066 when number of comments is equal to zero4067 returns false4068 #pull_request?4069 when mention a pull request4070 returns true4071 when does not mention a pull request4072 returns false4073UserPolicy4074 reading a user's information4075 is expected to be allowed :read_user4076 reading a different user's Personal Access Tokens4077 when user is admin4078 when admin mode is enabled4079 is expected to be allowed :read_user_personal_access_tokens4080 when admin mode is disabled4081 is expected not to be allowed :read_user_personal_access_tokens4082 when user is not an admin4083 requesting their own personal access tokens4084 is expected to be allowed :read_user_personal_access_tokens4085 requesting a different user's personal access tokens4086 is expected not to be allowed :read_user_personal_access_tokens4087 creating a different user's Personal Access Tokens4088 when current_user is admin4089 when admin mode is enabled and current_user is not blocked4090 is expected to be allowed :create_user_personal_access_token4091 when admin mode is enabled and current_user is blocked4092 is expected not to be allowed :create_user_personal_access_token4093 when admin mode is disabled4094 is expected not to be allowed :create_user_personal_access_token4095 when current_user is not an admin4096 creating their own personal access tokens4097 when current_user is not blocked4098 is expected to be allowed :create_user_personal_access_token4099 when current_user is blocked4100 is expected not to be allowed :create_user_personal_access_token4101 creating a different user's personal access tokens4102 is expected not to be allowed :create_user_personal_access_token4103 reading a user's associations count4104 when current_user is not an admin4105 fetching their own data4106 when current_user is not blocked4107 is expected to be allowed :get_user_associations_count4108 when current_user is blocked4109 is expected not to be allowed :get_user_associations_count4110 fetching a different user's data4111 is expected not to be allowed :get_user_associations_count4112 when current_user is an admin4113 fetching their own data4114 when current_user is not blocked4115 is expected to be allowed :get_user_associations_count4116 when current_user is blocked4117 is expected not to be allowed :get_user_associations_count4118 fetching a different user's data4119 is expected to be allowed :get_user_associations_count4120 updating a user's status4121 behaves like changing a user4122 when a regular user tries to destroy another regular user4123 is expected not to be allowed :update_user_status4124 when a regular user tries to destroy themselves4125 is expected to be allowed :update_user_status4126 when an admin user tries to destroy a regular user4127 when admin mode is enabled4128 is expected to be allowed :update_user_status4129 when admin mode is disabled4130 is expected to be disallowed :update_user_status4131 when an admin user tries to destroy a ghost user4132 is expected not to be allowed :update_user_status4133 destroying a user4134 behaves like changing a user4135 when a regular user tries to destroy another regular user4136 is expected not to be allowed :destroy_user4137 when a regular user tries to destroy themselves4138 is expected to be allowed :destroy_user4139 when an admin user tries to destroy a regular user4140 when admin mode is enabled4141 is expected to be allowed :destroy_user4142 when admin mode is disabled4143 is expected to be disallowed :destroy_user4144 when an admin user tries to destroy a ghost user4145 is expected not to be allowed :destroy_user4146 updating a user4147 behaves like changing a user4148 when a regular user tries to destroy another regular user4149 is expected not to be allowed :update_user4150 when a regular user tries to destroy themselves4151 is expected to be allowed :update_user4152 when an admin user tries to destroy a regular user4153 when admin mode is enabled4154 is expected to be allowed :update_user4155 when admin mode is disabled4156 is expected to be disallowed :update_user4157 when an admin user tries to destroy a ghost user4158 is expected not to be allowed :update_user4159 disabling two-factor authentication4160 disabling their own two-factor authentication4161 is expected to be allowed :disable_two_factor4162 disabling the two-factor authentication of another user4163 when the executor is an admin4164 is expected to be allowed :disable_two_factor4165 when the executor is not an admin4166 is expected not to be allowed :disable_two_factor4167 reading a user's group count4168 when current_user is an admin4169 is expected to be allowed :read_group_count4170 for self users4171 is expected to be allowed :read_group_count4172 when accessing a different user's group count4173 is expected not to be allowed :read_group_count4174 :read_user_profile4175 when the user is unconfirmed4176 is expected not to be allowed :read_user_profile4177 when the user is confirmed4178 is expected to be allowed :read_user_profile4179 :read_user_groups4180 when user is admin4181 when admin mode is enabled4182 is expected to be allowed :read_user_groups4183 when admin mode is disabled4184 is expected not to be allowed :read_user_groups4185 when user is not an admin4186 requesting their own manageable groups4187 is expected to be allowed :read_user_groups4188 requesting a different user's manageable groups4189 is expected not to be allowed :read_user_groups4190 :read_user_email_address4191 when user is admin4192 when admin mode is enabled4193 is expected to be allowed :read_user_email_address4194 when admin mode is disabled4195 is expected not to be allowed :read_user_email_address4196 when user is not an admin4197 requesting their own4198 is expected to be allowed :read_user_email_address4199 requesting a different user's4200 is expected not to be allowed :read_user_email_address4201MergeRequests::RemoveApprovalService4202 #execute4203 with a user who has approved4204 removes the approval4205 creates an unapproval note, triggers a web hook, and sends a notification4206 tracks merge request unapprove action4207 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated4208 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:37 namespace345/project-365!1>) 1 time4209 behaves like triggers GraphQL subscription mergeRequestReviewersUpdated4210 is expected to receive merge_request_reviewers_updated(#<MergeRequest id:38 namespace346/project-366!1>) 1 time4211 behaves like triggers GraphQL subscription mergeRequestApprovalStateUpdated4212 is expected to receive merge_request_approval_state_updated(#<MergeRequest id:39 namespace347/project-367!1>) 1 time4213 with a user who has not approved4214 does not create an unapproval note and triggers web hook4215 does not track merge request unapprove action4216 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated4217 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times4218 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated4219 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times4220 behaves like does not trigger GraphQL subscription mergeRequestApprovalStateUpdated4221 is expected not to receive merge_request_approval_state_updated(*(any args)) 0 times4222Gitlab::Ci::Reports::TestSuite4223 is expected to eq "Rspec"4224 #add_test_case4225 when status of the test case is success4226 stores data correctly4227 when status of the test case is failed4228 stores data correctly4229 when two test cases are added4230 sums up total time4231 #total_count4232 is expected to eq 44233 #total_status4234 when all test cases succeeded4235 is expected to eq "success"4236 when a test case failed4237 is expected to eq "failed"4238 when a test case errored4239 is expected to eq "failed"4240 #with_attachment4241 when test cases do not contain an attachment4242 returns an empty hash4243 when test cases contain an attachment4244 returns failed test cases with attachment4245 #set_suite_error4246 when @suite_error is nil4247 returns message4248 sets the new message4249 when a suite_error has already been set4250 overwrites the existing message4251 #+4252 when adding multiple suites together4253 returns a new test suite4254 returns the suite name4255 returns the sum for total_time4256 merges tests cases hash4257 #sorted4258 when there are multiple failed test cases4259 returns test cases sorted by execution time desc4260 when there are multiple test cases4261 returns test cases sorted by status4262 #error4263 when error test case exists4264 returns all success test cases4265 when error test case do not exist4266 returns nothing4267 #failed4268 when failed test case exists4269 returns all success test cases4270 when failed test case do not exist4271 returns nothing4272 #success4273 when success test case exists4274 returns all success test cases4275 when success test case do not exist4276 returns nothing4277 #skipped4278 when skipped test case exists4279 returns all success test cases4280 when skipped test case do not exist4281 returns nothing4282 #each_test_case4283 yields each test case to given block4284 #error_count4285 when error test case exists4286 returns the count4287 when error test case do not exist4288 returns nothing4289 #failed_count4290 when failed test case exists4291 returns the count4292 when failed test case do not exist4293 returns nothing4294 #success_count4295 when success test case exists4296 returns the count4297 when success test case do not exist4298 returns nothing4299 #skipped_count4300 when skipped test case exists4301 returns the count4302 when skipped test case do not exist4303 returns nothing4304AlertManagement::HttpIntegration4305 associations4306 is expected to belong to project required: false4307 default values4308 is expected to be present4309 is expected to eq "test"4310 validations4311 is expected to validate that :project cannot be empty/falsy4312 is expected to validate that :name cannot be empty/falsy4313 is expected to validate that :type_identifier cannot be empty/falsy4314 is expected to validate that the length of :name is at most 2554315 when active4316 is expected to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active4317 when inactive4318 is expected not to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active4319 payload_attribute_mapping4320 with valid JSON schema4321 is expected to be valid4322 with invalid JSON schema4323 when property is not an object4324 behaves like is invalid record4325 is expected to eq ["must be a valid json schema"]4326 when property missing required attributes4327 behaves like is invalid record4328 is expected to eq ["must be a valid json schema"]4329 when property has extra attributes4330 behaves like is invalid record4331 is expected to eq ["must be a valid json schema"]4332 scopes4333 .for_endpoint_identifier4334 is expected to contain exactly #<AlertManagement::HttpIntegration id: 3, created_at: "2023-06-02 06:39:17.755837315 +0000", updated_... "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil>4335 .for_type4336 is expected to contain exactly #<AlertManagement::HttpIntegration id: 5, created_at: "2023-06-02 06:39:17.768660898 +0000", updated_...Dog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "prometheus", token: nil>4337 .for_project4338 is expected to contain exactly #<AlertManagement::HttpIntegration id: 4, created_at: "2023-06-02 06:39:17.760776176 +0000", updated_... "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil> and #<AlertManagement::HttpIntegration id: 5, created_at: "2023-06-02 06:39:17.768660898 +0000", updated_...Dog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "prometheus", token: nil>4339 with project_ids array4340 is expected to contain exactly #<AlertManagement::HttpIntegration id: 3, created_at: "2023-06-02 06:39:17.755837315 +0000", updated_... "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil>4341 .active4342 is expected to contain exactly #<AlertManagement::HttpIntegration id: 3, created_at: "2023-06-02 06:39:17.755837315 +0000", updated_... "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil> and #<AlertManagement::HttpIntegration id: 5, created_at: "2023-06-02 06:39:17.768660898 +0000", updated_...Dog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "prometheus", token: nil>4343 .legacy4344 is expected to contain exactly #<AlertManagement::HttpIntegration id: 6, created_at: "2023-06-02 06:39:18.001036174 +0000", updated_... "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil>4345 .ordered_by_type_and_id4346 is expected to eq [#<AlertManagement::HttpIntegration id: 3, created_at: "2023-06-02 06:39:17.755837315 +0000", updated...og", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "prometheus", token: nil>]4347 before validation4348 #ensure_payload_example_not_nil4349 when the payload_example is nil4350 sets the payload_example to empty JSON4351 when the payload_example is not nil4352 sets the payload_example to specified value4353 #token4354 when unsaved4355 when assigned4356 is expected not to eq "random_token"4357 behaves like valid token4358 is expected to match /\A\h{32}\z/4359 when persisted4360 behaves like valid token4361 is expected to match /\A\h{32}\z/4362 when resetting4363 is expected not to eq "741597862a280f1741c497008d7564f2"4364 behaves like valid token4365 is expected to match /\A\h{32}\z/4366 when reassigning4367 is expected to eq "97064fdbeb00d7145e11bd432b5b5ed1"4368 behaves like valid token4369 is expected to match /\A\h{32}\z/4370 #endpoint_identifier4371 when defined on initialize4372 is expected to match /\A\h{16}\z/4373 when included in initialization args4374 is expected to eq "legacy"4375 when reassigning4376 does not allow reassignment4377 #url4378 is expected to eq "http://localhost/namespace379/project-399/alerts/notify/datadog/e4051041.json"4379 when name is not defined4380 is expected to eq "http://localhost/namespace355/project-375/alerts/notify/http-endpoint/d546d43fdf31a8c4.json"4381 for a legacy integration4382 is expected to eq "http://localhost/namespace380/project-400/alerts/notify.json"4383 for a prometheus integration4384 is expected to eq "http://localhost/namespace381/project-401/alerts/notify/datadog/6f8ea9fa.json"4385 for a legacy integration4386 is expected to eq "http://localhost/namespace382/project-402/prometheus/alerts/notify.json"4387Gitlab::Git::Tag4388 #tags4389 is expected to be > 04390 unsigned tag4391 is expected to eq "v1.0.0"4392 is expected to eq "f4e6814c3e4e7a0de82a9e7cd20c626cc963a2f8"4393 is expected to eq "6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9"4394 is expected to eq "Release"4395 is expected to be falsey4396 is expected to eq :NONE4397 is expected to be nil4398 is expected to eq "Dmitriy Zaporozhets"4399 is expected to eq "dmitriy.zaporozhets@gmail.com"4400 is expected to eq 2014-02-27 08:54:59.000000000 +00004401 signed tag4402 is expected to eq "v1.1.1"4403 is expected to eq "8f03acbcd11c53d9c9468078f32a2622005a4841"4404 is expected to eq "189a6c924013fc3fe40d6f1ec1dc20214183bc97"4405 is expected to eq "x509 signed tag\n-----BEGIN SIGNED MESSAGE-----\nMIISfwYJKoZIhvcNAQcCoIIScDCCEmwCAQExDTALBglghkgBZQM...dZmMbJ7jNk1FbewSwWO\nSDH1i0K32NyFbnh0BSos7njq7ELqKlYBsoB/sZfaH2vKy5U=\n-----END SIGNED MESSAGE-----"4406 is expected to be truthy4407 is expected to eq :X5094408 is expected not to be nil4409 is expected to eq "Roger Meier"4410 is expected to eq "r.meier@siemens.com"4411 is expected to eq 2019-11-20 14:56:20.000000000 +00004412 .get_message4413 gets tag messages4414 gets messages in one batch4415 .extract_signature_lazily4416 when the tag is signed4417 returns signature and signed text4418 when the tag has no signature4419 returns empty signature and message as signed text4420 when the tag cannot be found4421 raises GRPC::Internal4422 when the tag ID is invalid4423 raises GRPC::Internal4424 when loading signatures in batch once4425 fetches signatures in batch once4426 tag into from Gitaly tag4427 message_size != message.size4428 message_size less than threshold4429 fetches tag message separately4430 message_size greater than threshold4431 returns a notice about message size4432 #cache_key4433 returns a cache key that changes based on changeable values4434Gitlab::Zentao::Client4435 #new4436 if integration is nil4437 raises ConfigError4438 integration is provided4439 is initialized successfully4440 #fetch_product4441 with valid product4442 fetches the product4443 with invalid product4444 fetches the empty product4445 with invalid response4446 fetches the empty product4447 #ping4448 with valid resource4449 responds with success4450 with deleted resource4451 responds with unsuccess4452 #fetch_issues4453 returns the response4454 marking the issues as seen in the product4455 adds issue ids to the cache4456 does not add issue ids to the cache if max set size has been reached4457 does not duplicate issue ids in the cache4458 touches the cache ttl every time issues are fetched4459 #fetch_issue4460 with invalid id4461 raises Error4462 with valid id4463 when issue has been seen on the index4464 fetches the issue4465 when issue has not been seen on the index4466 raises RequestError4467 #url4468 api url4469 no ends slash4470 verify url4471 ends slash4472 verify url4473 no api url4474 joins url correctly4475AppearancesHelper4476 pwa icon scaled4477 returns path of maskable logo4478 with custom icon4479 behaves like gets icon path4480 returns path of icon4481 behaves like gets icon path4482 returns path of icon4483 with default icon4484 behaves like gets icon path4485 returns path of icon4486 behaves like gets icon path4487 returns path of icon4488 with wrong input4489 behaves like gets icon path4490 returns path of icon4491 when path is append to root4492 appends root and path4493 #appearance_pwa_name4494 returns the default value4495 returns the customized value4496 #appearance_pwa_short_name4497 returns the default value4498 returns the customized value4499 #appearance_pwa_description4500 returns the default value4501 returns the customized value4502 .current_appearance4503 memoizes empty appearance4504 memoizes custom appearance4505 #header_message4506 returns nil when header message field is not set4507 when header message is set4508 includes current message4509 #footer_message4510 returns nil when footer message field is not set4511 when footer message is set4512 includes current message4513 #brand_image4514 when there is a logo4515 returns a path4516 when there is no associated upload4517 falls back to using the original path4518 when there is no logo4519 returns path of GitLab logo4520 when there is a title4521 returns the title4522 when there is no title4523 returns the default title4524 #brand_image_path4525 with a custom logo4526 returns path of custom logo4527 with no custom logo4528 returns path of GitLab logo4529 #brand_header_logo4530 renders shared/logo by default4531 with header logo4532 renders image tag4533 with add_gitlab_white_text option4534 renders shared/logo_with_white_text partial4535 with add_gitlab_black_text option4536 renders shared/logo_with_black_text partial4537 #brand_title4538 returns the default title when no appearance is present4539 #default_brand_title4540 returns the default title4541Gitlab::Ci::Badge::Release::Metadata4542 behaves like badge metadata4543 #to_html4544 points to link4545 contains clickable image4546 #to_markdown4547 is expected to include "http://localhost/namespace408/project-428/-/badges/release.svg"4548 is expected to include "http://localhost/namespace409/project-429/-/releases"4549 #to_asciidoc4550 is expected to include "http://localhost/namespace410/project-430/-/badges/release.svg"4551 is expected to include "http://localhost/namespace411/project-431/-/releases"4552 is expected to include "image:"4553 is expected to include "link="4554 is expected to include "title="4555 #title4556 returns latest release title4557 #image_url4558 returns valid url4559 #link_url4560 returns valid link4561Gitlab::Metrics::Dashboard::Finder4562 .find4563 behaves like misconfigured dashboard service response4564 returns an appropriate message and status code4565 when the dashboard exists4566 behaves like valid dashboard service response4567 behaves like valid dashboard service response for schema4568 returns a json representation of the dashboard4569 when the dashboard is configured incorrectly4570 behaves like misconfigured dashboard service response4571 returns an appropriate message and status code4572 when the dashboard contains a metric without a query4573 behaves like misconfigured dashboard service response4574 returns an appropriate message and status code4575 when the system dashboard is specified4576 behaves like valid dashboard service response4577 behaves like valid dashboard service response for schema4578 returns a json representation of the dashboard4579 when no dashboard is specified4580 behaves like valid dashboard service response4581 behaves like valid dashboard service response for schema4582 returns a json representation of the dashboard4583 when the dashboard is expected to be embedded4584 behaves like valid embedded dashboard service response4585 behaves like valid dashboard service response for schema4586 returns a json representation of the dashboard4587 when params are incomplete4588 behaves like valid embedded dashboard service response4589 behaves like valid dashboard service response for schema4590 returns a json representation of the dashboard4591 when the panel is specified4592 as a custom metric4593 behaves like misconfigured dashboard service response4594 returns an appropriate message and status code4595 when the metric exists4596 behaves like valid embedded dashboard service response4597 behaves like valid dashboard service response for schema4598 returns a json representation of the dashboard4599 as a project-defined panel4600 behaves like misconfigured dashboard service response4601 returns an appropriate message and status code4602 when the metric exists4603 behaves like valid embedded dashboard service response4604 behaves like valid dashboard service response for schema4605 returns a json representation of the dashboard4606 .find_raw4607 is expected to eq {"dashboard"=>"Environment metrics", "panel_groups"=>[{"group"=>"System metrics (Kubernetes)", "panel..., "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_label"=>"HTTP Errors (%)"}]}], "priority"=>1}4608 when the system dashboard is specified4609 is expected to eq {"dashboard"=>"Environment metrics", "panel_groups"=>[{"group"=>"System metrics (Kubernetes)", "panel..., "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_label"=>"HTTP Errors (%)"}]}], "priority"=>1}4610 when an existing project dashboard is specified4611 is expected to eq {"dashboard"=>"Test Dashboard", "links"=>[{"title"=>"Link 1", "url"=>"https://gitlab.com"}, {"title"=...s"=>{"default_value"=>"default"}, "type"=>"text"}, "text_variable_simple_syntax"=>"default value"}}}4612 .find_all_paths4613 includes OOTB dashboards by default4614 when the project contains dashboards4615 includes OOTB and project dashboards4616Gitlab::Diff::DiffRefs4617 #==4618 when shas are missing4619 returns false4620 when shas are equal4621 returns true4622 when shas are unequal4623 returns false4624 when shas are truncated4625 when sha prefixes are too short4626 returns false4627 when sha prefixes are equal4628 returns true4629 when sha prefixes are unequal4630 returns false4631 #compare_in4632 with diff refs for the initial commit4633 returns an appropriate comparison4634 with diff refs for a commit4635 returns an appropriate comparison4636 with diff refs for a comparison through the base4637 returns an appropriate comparison4638 with diff refs for a straight comparison4639 returns an appropriate comparison4640Notes::CopyService4641 #initialize4642 validates that we cannot copy notes to the same Noteable4643 #execute4644 rewriting the note body4645 simple notes4646 rewrites existing notes in valid order4647 copies all the issue notes4648 does not change the note attributes4649 copies the award emojis4650 copies system_note_metadata for system note4651 returns success4652 copies rendered markdown from note_html4653 notes with mentions4654 saves user mentions with actual mentions for new issue4655 notes with reference4656 rewrites the references correctly4657 does not copy rendered markdown from note_html4658 notes with upload4659 rewrites note content correctly4660 does not copy rendered markdown from note_html4661 discussion notes4662 rewrites discussion correctly4663Gitlab::Ci::Build::AutoRetry4664 #allowed?4665 description: "retries are disabled", retry_count: 0, options: {:max=>0}, failure_reason: nil, result: false4666 is expected to eq false4667 description: "max equals count", retry_count: 2, options: {:max=>2}, failure_reason: nil, result: false4668 is expected to eq false4669 description: "max is higher than count", retry_count: 1, options: {:max=>2}, failure_reason: nil, result: true4670 is expected to eq true4671 description: "max is a string", retry_count: 1, options: {:max=>"2"}, failure_reason: nil, result: true4672 is expected to eq true4673 description: "matching failure reason", retry_count: 0, options: {:when=>["api_failure"], :max=>2}, failure_reason: :api_failure, result: true4674 is expected to eq true4675 description: "not matching with always", retry_count: 0, options: {:when=>["always"], :max=>2}, failure_reason: :api_failure, result: true4676 is expected to eq true4677 description: "not matching reason", retry_count: 0, options: {:when=>["script_error"], :max=>2}, failure_reason: :api_failure, result: false4678 is expected to eq false4679 description: "scheduler failure override", retry_count: 1, options: {:when=>["scheduler_failure"], :max=>1}, failure_reason: :scheduler_failure, result: false4680 is expected to eq false4681 description: "default for scheduler failure", retry_count: 1, options: {}, failure_reason: :scheduler_failure, result: true4682 is expected to eq true4683 description: "quota is exceeded", retry_count: 0, options: {:max=>2}, failure_reason: :ci_quota_exceeded, result: false4684 is expected to eq false4685 description: "no matching runner", retry_count: 0, options: {:max=>2}, failure_reason: :no_matching_runner, result: false4686 is expected to eq false4687 description: "missing dependencies", retry_count: 0, options: {:max=>2}, failure_reason: :missing_dependency_failure, result: false4688 is expected to eq false4689 description: "forward deployment failure", retry_count: 0, options: {:max=>2}, failure_reason: :forward_deployment_failure, result: false4690 is expected to eq false4691 description: "environment creation failure", retry_count: 0, options: {:max=>2}, failure_reason: :environment_creation_failure, result: false4692 is expected to eq false4693 when build is not retryable4694 is expected to eq false4695 #options_retry_max4696 with retries max config option4697 returns the number of configured max retries4698 without retries max config option4699 returns nil4700 when build is degenerated4701 returns nil4702 with integer only config option4703 returns the number of configured max retries4704 #options_retry_when4705 with retries when config option4706 returns the configured when4707 without retries when config option4708 returns always array4709 with integer only config option4710 returns always array4711 with retry[:when] set to nil4712 returns always array4713Gitlab::Ci::Config::Entry::Root4714 .nodes4715 returns a hash4716 when filtering all the entry/node names4717 contains the expected node names4718 when configuration is valid4719 when top-level entries are defined4720 #compose!4721 creates nodes hash4722 creates node object for each entry4723 creates node object using valid class4724 sets correct description for nodes4725 sets correct variables value4726 #leaf?4727 is not leaf4728 when composed4729 #errors4730 has no errors4731 #stages_value4732 when stages key defined4733 returns array of stages4734 #jobs_value4735 returns jobs configuration4736 when a mix of top-level and default entries is used4737 when composed4738 tracks log entries4739 #errors4740 has no errors4741 #jobs_value4742 returns jobs configuration4743 when most of entires not defined4744 #nodes4745 instantizes all nodes4746 contains unspecified nodes4747 #variables_value4748 returns root value for variables4749 #stages_value4750 returns an array of root stages4751 #cache_value4752 returns correct cache definition4753 when variables resembles script-type job4754 #variables_value4755 returns root value for variables4756 #jobs_value4757 returns one job4758 when entries are specified but not defined4759 #variables_value4760 undefined entry returns a root value4761 when variables have `options` data4762 and the value is in the `options` array4763 returns correct value4764 and the value is not in the `options` array4765 returns an error4766 when variables have "expand" data4767 returns correct value4768 when configuration is not valid4769 when before script is a number4770 #valid?4771 is not valid4772 #errors4773 reports errors from child nodes4774 when job does not have commands4775 #errors4776 reports errors about missing script or trigger4777 when a variable has an invalid data key4778 #errors4779 reports errors about the invalid variable4780 when value is not a hash4781 #valid?4782 is not valid4783 #errors4784 returns error about invalid type4785 #specified?4786 is concrete entry that is defined4787 #[]4788 when entry exists4789 returns correct entry4790 when entry does not exist4791 always return unspecified node4792Metrics::Dashboard::DynamicEmbedService4793 .valid_params?4794 is expected to be truthy4795 missing embedded4796 is expected to be falsey4797 not embedded4798 is expected to be falsey4799 undefined dashboard4800 is expected to be truthy4801 missing dashboard4802 is expected to be truthy4803 missing group4804 is expected to be falsey4805 missing title4806 is expected to be falsey4807 undefined y-axis label4808 is expected to be falsey4809 #get_dashboard4810 when the dashboard does not exist4811 behaves like misconfigured dashboard service response4812 returns an appropriate message and status code4813 when the dashboard is exists4814 caches the unprocessed dashboard for subsequent calls4815 behaves like valid embedded dashboard service response4816 behaves like valid dashboard service response for schema4817 returns a json representation of the dashboard4818 behaves like raises error for users with insufficient permissions4819 when the user does not have sufficient access4820 behaves like misconfigured dashboard service response4821 returns an appropriate message and status code4822 when the user is anonymous4823 behaves like misconfigured dashboard service response4824 returns an appropriate message and status code4825 when the specified group is not present on the dashboard4826 behaves like misconfigured dashboard service response4827 returns an appropriate message and status code4828 when the specified title is not present on the dashboard4829 behaves like misconfigured dashboard service response4830 returns an appropriate message and status code4831 when the specified y-axis label is not present on the dashboard4832 behaves like misconfigured dashboard service response4833 returns an appropriate message and status code4834 when the dashboard is nil4835 behaves like uses system dashboard4836 uses the overview dashboard4837 when the dashboard is not present4838 behaves like uses system dashboard4839 uses the overview dashboard4840Security::WeakPasswords4841 # order random4842 #weak_for_user?4843 password: "d2262d56", too_weak: false4844 is expected to eq false4845 password: "password", too_weak: true4846 is expected to eq true4847 password: "pAssWord", too_weak: true4848 is expected to eq true4849 password: "princeofdarkness", too_weak: true4850 is expected to eq true4851 password: "A1B2gitlabC3", too_weak: true4852 is expected to eq true4853 password: "gitlab123", too_weak: true4854 is expected to eq true4855 password: "theonedevopsplatform", too_weak: true4856 is expected to eq true4857 password: "A1gitlib", too_weak: false4858 is expected to eq false4859 password: "Aweakést", too_weak: true4860 is expected to eq true4861 password: "!@mCwEaKy", too_weak: true4862 is expected to eq true4863 password: "A1B2pass", too_weak: true4864 is expected to eq true4865 password: "A1B2C3jr", too_weak: false4866 is expected to eq false4867 password: "3e18a7f60a908e329958396d68131d39e1b66a03ea420725e2a0fce7cb17pass", too_weak: false4868 is expected to eq false4869 password: "56d4ab689a", too_weak: true4870 is expected to eq true4871 password: "56d4ab689a_win", too_weak: true4872 is expected to eq true4873 password: "56d4ab68", too_weak: false4874 is expected to eq false4875 password: "A1B2Cwin", too_weak: false4876 is expected to eq false4877 password: "predictāble.ZZZ+seventeen@examplecorp.com", too_weak: true4878 is expected to eq true4879 password: "predictable.ZZZ+seventeen@examplecorp.com", too_weak: true4880 is expected to eq true4881 password: "predictāble.ZZZ+seventeen", too_weak: true4882 is expected to eq true4883 password: "examplecorp.com", too_weak: true4884 is expected to eq true4885 password: "!@exAmplecorp", too_weak: true4886 is expected to eq true4887 password: "predictāble123", too_weak: true4888 is expected to eq true4889 password: "seventeen", too_weak: true4890 is expected to eq true4891 password: "predictable", too_weak: false4892 is expected to eq false4893 password: "A1B2CZzZ", too_weak: false4894 is expected to eq false4895 password: "fortunate@acme.com", too_weak: false4896 is expected to eq false4897 password: "A1B2acme", too_weak: false4898 is expected to eq false4899 password: "fortunate", too_weak: false4900 is expected to eq false4901 password: "1", too_weak: false4902 is expected to eq false4903 password: "1234567", too_weak: false4904 is expected to eq false4905 password: "gitlab", too_weak: true4906 is expected to eq true4907 password: "pass", too_weak: true4908 is expected to eq true4909 with a user who has short email parts4910 password: "11111111", too_weak: true4911 is expected to eq true4912 password: "1.ioABCD", too_weak: true4913 is expected to eq true4914 password: "sid@1.io", too_weak: true4915 is expected to eq true4916 password: "sid@1.ioAB", too_weak: true4917 is expected to eq true4918 password: "sid1ioAB", too_weak: false4919 is expected to eq false4920 password: "sidsidsi", too_weak: false4921 is expected to eq false4922 password: "ioioioio", too_weak: false4923 is expected to eq false4924 with a user who is missing attributes4925 password: "d2262d56", too_weak: false4926 is expected to eq false4927 password: "password", too_weak: true4928 is expected to eq true4929 password: "gitlab123", too_weak: true4930 is expected to eq true4931Gitlab::Diff::Rendered::Notebook::DiffFile4932 #old_blob and #new_blob4933 when file is changed4934 transforms the old blob4935 transforms the new blob4936 when file is added4937 old_blob is empty4938 new_blob is transformed4939 when file is removed4940 old_blob is transformed4941 new_blob is empty4942 #diff4943 for valid notebooks4944 returns the transformed diff4945 for invalid notebooks4946 returns nil4947 timeout4948 utilizes timeout for web4949 falls back to nil on timeout4950 utilizes longer timeout for sidekiq4951 #has_renderable?4952 notebook diff is empty4953 is false4954 notebook is valid4955 is true4956 when old blob file is truncated4957 is false4958 when new blob file is truncated4959 is false4960 #highlighted_diff_lines?4961 when line transformed line is not part of the diff4962 line is not discussable4963 when line transformed line part of the diff4964 line is not discussable4965 assigns the correct position4966 computes the first line where the remove would appear4967 has image4968 replaces rich text with img to the embedded image4969 adds image to src4970 when embedded image has injected html4971 prevents injected html to be rendered as html4972 keeps the injected html as part of the string4973Gitlab::Auth::Saml::User4974 #save4975 account exists on server4976 and should bind with SAML4977 adds the SAML identity to the existing user4978 external groups4979 are defined4980 marks the user as external4981 are defined but the user does not belong there4982 does not mark the user as external4983 user was external, now should not be4984 makes user internal4985 no account exists on server4986 external groups4987 are defined4988 marks the user as external4989 are defined but the user does not belong there4990 does not mark the user as external4991 with auto_link_ldap_user disabled (default)4992 with allow_single_sign_on enabled4993 creates a user from SAML4994 with allow_single_sign_on default (["saml"])4995 does not throw an error4996 with allow_single_sign_on disabled4997 throws an error4998 with auto_link_ldap_user enabled4999 and at least one LDAP provider is defined5000 and a corresponding LDAP person5001 and no account for the LDAP user5002 creates a user with dual LDAP and SAML identities5003 and LDAP user has an account already5004 adds the omniauth identity to the LDAP account5005 saves successfully on subsequent tries, when both identities are present5006 when uid is an uid5007 behaves like find LDAP person5008 adds the omniauth identity to the LDAP account5009 when uid is a dn5010 behaves like find LDAP person5011 adds the omniauth identity to the LDAP account5012 when uid is an email5013 behaves like find LDAP person5014 adds the omniauth identity to the LDAP account5015 user has SAML user, and wants to add their LDAP identity5016 adds the LDAP identity to the existing SAML user5017 when signup is disabled5018 creates the user5019 when user confirmation email is enabled5020 creates and confirms the user anyway5021 when the current minimum password length is different from the default minimum password length5022 creates the user5023 blocking5024 signup with SAML only5025 dont block on create5026 does not block the user5027 block on create5028 blocks user5029 sign-in5030 dont block on create5031 is expected not to be blocked5032 block on create5033 is expected not to be blocked5034 #find_user5035 raw info hash attributes empty5036 does not mark user as external5037 #bypass_two_factor?5038 with authn_contexts_worth_two_factors configured5039 returns true when authn_context is worth two factors5040 returns false when authn_context is not worth two factors5041 returns false when authn_context is blank5042 without auth_contexts_worth_two_factors_configured5043 returns false when authn_context is present5044 returns false when authn_context is blank5045Gitlab::Memory::Reporter5046 # order random5047 #run_report5048 when reports path is specified directly5049 behaves like runs and stores reports5050 runs the given report and returns true5051 logs start and finish event5052 increments Prometheus duration counter5053 when the report returns invalid file path5054 logs `0` as `perf_report_size_bytes`5055 when an error occurs5056 when cause was an error being raised5057 behaves like handles errors gracefully5058 logs the error and returns false5059 when compression process is still running5060 terminates the process5061 when cause was compression command failing5062 behaves like handles errors gracefully5063 logs the error and returns false5064 when compression process is still running5065 terminates the process5066 when a report is disabled5067 does nothing and returns false5068 when reports path is specified via environment5069 behaves like runs and stores reports5070 runs the given report and returns true5071 logs start and finish event5072 increments Prometheus duration counter5073 when the report returns invalid file path5074 logs `0` as `perf_report_size_bytes`5075 when an error occurs5076 when cause was an error being raised5077 behaves like handles errors gracefully5078 logs the error and returns false5079 when compression process is still running5080 terminates the process5081 when cause was compression command failing5082 behaves like handles errors gracefully5083 logs the error and returns false5084 when compression process is still running5085 terminates the process5086 when a report is disabled5087 does nothing and returns false5088 when reports path is not specified5089 defaults to a temporary location5090 behaves like runs and stores reports5091 runs the given report and returns true5092 logs start and finish event5093 increments Prometheus duration counter5094 when the report returns invalid file path5095 logs `0` as `perf_report_size_bytes`5096 when an error occurs5097 when cause was an error being raised5098 behaves like handles errors gracefully5099 logs the error and returns false5100 when compression process is still running5101 terminates the process5102 when cause was compression command failing5103 behaves like handles errors gracefully5104 logs the error and returns false5105 when compression process is still running5106 terminates the process5107 when a report is disabled5108 does nothing and returns false5109MergeRequests::ReloadDiffsService5110 #execute5111 creates new merge request diff5112 calls update_diff_discussion_positions with correct params5113 does not change existing merge request diff5114 cache clearing5115 clears the cache for older diffs on the merge request5116 avoids N+1 queries5117Gitlab::Cleanup::OrphanLfsFileReferences5118 dry run5119 prints messages and does not delete references5120 regular run5121 prints messages and deletes invalid reference5122 does nothing if the project has no LFS objects5123 LFS object is in design repository5124 is not removed5125 LFS object is in wiki repository5126 is not removed5127 LFS for project snippets5128 is disabled5129Gitlab::Runtime5130 when unknown5131 .identify5132 raises an exception when trying to identify5133 .safe_identify5134 returns nil5135 with Puma5136 .puma?5137 returns true5138 on multiple matches5139 .identify5140 raises an exception when trying to identify5141 .safe_identify5142 returns nil5143 puma without cli_config5144 behaves like valid runtime5145 identifies itself5146 does not identify as others5147 reports its maximum concurrency5148 puma with cli_config5149 identifies as an application runtime5150 behaves like valid runtime5151 identifies itself5152 does not identify as others5153 reports its maximum concurrency5154 when ActionCable worker pool size is configured5155 behaves like valid runtime5156 identifies itself5157 does not identify as others5158 reports its maximum concurrency5159 .puma_in_clustered_mode?5160 when Puma is set up with workers > 05161 is expected to equal true5162 when Puma is set up with workers = 05163 is expected to equal false5164 sidekiq5165 identifies as an application runtime5166 behaves like valid runtime5167 identifies itself5168 does not identify as others5169 reports its maximum concurrency5170 console5171 does not identify as an application runtime5172 behaves like valid runtime5173 identifies itself5174 does not identify as others5175 reports its maximum concurrency5176 test suite5177 does not identify as an application runtime5178 behaves like valid runtime5179 identifies itself5180 does not identify as others5181 reports its maximum concurrency5182 geo log cursor5183 behaves like valid runtime5184 identifies itself5185 does not identify as others5186 reports its maximum concurrency5187 rails runner5188 does not identify as an application runtime5189 behaves like valid runtime5190 identifies itself5191 does not identify as others5192 reports its maximum concurrency5193AutoDevops::DisableWorker#perform5194 disables auto devops for project5195 when project owner is a user5196 sends an email to pipeline user and project owner(s)5197 when project does not have owner5198 sends an email to pipeline user5199 when pipeline is not related to a user and project does not have owner5200 does not send an email5201gitlab:smtp:secret rake tasks5202 :show5203 displays error when file does not exist5204 displays error when key does not exist5205 displays error when key is changed5206 outputs the unencrypted content when present5207 edit5208# password: '123'5209# user_name: 'gitlab-inst'5210 creates encrypted file5211 displays error when key does not exist5212 displays error when key is changed5213 displays error when write directory does not exist5214somevalue shows a warning when content is invalid5215 displays error when $EDITOR is not set5216 write5217 creates encrypted file from stdin5218 displays error when key does not exist5219 displays error when write directory does not exist5220somevalue shows a warning when content is invalid5221Files::CreateService5222 #execute5223 when file matches LFS filter5224 with LFS disabled5225 skips gitattributes check5226 doesn't create LFS pointers5227 with LFS enabled5228 creates an LFS pointer5229 creates an LfsObject with the file's content5230 links the LfsObject to the project5231 commit attribute5232 uses the commit email5233Mutations::IncidentManagement::TimelineEvent::Update5234 # order random5235 #resolve5236 when user has permissions to update the timeline event5237 when timeline event exists5238 updates the timeline event5239 returns updated timeline event5240 when there is a validation error5241 when note is blank5242 does not update the timeline event5243 responds with error5244 when occurred_at is blank5245 does not update the timeline event5246 responds with error5247 when occurred_at is invalid5248 does not update the timeline event5249 responds with error5250 when timeline event tag do not exist5251 does not update the timeline event5252 responds with error5253 when timeline event tags are passed5254 returns updated timeline event5255 removes tag1 and assigns tag2 to the event5256 when timeline event cannot be found5257 behaves like failed update with a top-level access error5258 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "The resource that you are attempting to access does not exist or you don't have permission to perform this action"5259 when user does not have permissions to update the timeline event5260 behaves like failed update with a top-level access error5261 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "The resource that you are attempting to access does not exist or you don't have permission to perform this action"5262Gitlab::Ci::Trace::Checksum5263 when build pending state exists5264 when matching persisted trace chunks exist5265 calculates combined trace chunks CRC32 correctly5266 when trace chunks were persisted in a wrong order5267 makes trace checksum invalid but not corrupted5268 when one of the trace chunks is missing5269 makes trace checksum invalid and corrupted5270 when checksums of persisted trace chunks do not match5271 makes trace checksum invalid but not corrupted5272 when persisted trace chunks are missing5273 makes trace checksum invalid5274 when build pending state is missing5275 #state_crc325276 returns nil5277 #valid?5278 is expected not to be valid5279 #trace_chunks5280 does not load raw_data from a database store5281 #last_chunk5282 when there are no chunks5283 returns nil5284 is not a valid trace5285 is not a corrupted trace5286 when there are multiple chunks5287 returns chunk with the highest index5288 is not a valid trace5289 is not a corrupted trace5290 #trace_size5291 returns total trace size in bytes5292ResourceEvents::SyntheticLabelNotesBuilderService5293 #execute5294 returns the expected synthetic notes5295 behaves like filters by paginated notes5296 only returns given notes5297 when paginated notes is empty5298 does not return any notes5299MergeRequests::ReloadMergeHeadDiffService5300 #execute5301 creates a merge head diff5302 when merge ref head is not present5303 returns error5304 when failed to create merge head diff5305 returns error5306 when there is existing merge head diff5307 recreates merge head diff5308Gitlab::Database::BackgroundMigration::PrometheusMetrics5309 #track5310 reports batch_size5311 reports sub_batch_size5312 reports interval5313 reports job duration5314 increments updated tuples (currently based on batch_size)5315 reports migrated tuples5316 reports the total tuple count for the migration5317 reports last updated at timestamp5318 reports summary of query timings5319 when the tracking record does not having timing metrics5320 does not attempt to report query timings5321Review5322 associations5323 is expected to belong to author class_name => User required: false inverse_of => reviews5324 is expected to belong to merge_request required: false inverse_of => reviews5325 is expected to belong to project required: false inverse_of => reviews5326 is expected to have many notes order => id inverse_of => review5327 modules5328 is expected to includes the Participable module5329 is expected to includes the Mentionable module5330 #all_references5331 returns an extractor with the correct referenced users5332 #participants5333 includes the review author5334Security::CiConfiguration::SastBuildAction5335 with existing .gitlab-ci.yml5336 sast has not been included5337 template includes are array5338 generates the correct YML5339 template include is not an array5340 generates the correct YML5341 reports defaults have been overwritten5342 sast template include is not an array5343 generates the correct YML5344 with default values5345 generates the correct YML5346 reports defaults have not been overwritten5347 analyzer section5348 generates the correct YML5349 analyzers are disabled5350 writes SAST_EXCLUDED_ANALYZERS5351 all analyzers are enabled5352 does not write SAST_EXCLUDED_ANALYZERS5353 with update stage and SEARCH_MAX_DEPTH and set SECURE_ANALYZERS_PREFIX to default5354 generates the correct YML5355 with no existing variables5356 generates the correct YML5357 with no existing sast config5358 generates the correct YML5359 with no existing sast variables5360 generates the correct YML5361 with no .gitlab-ci.yml5362 autodevops disabled5363 with one empty parameter5364 generates the correct YML5365 with all parameters5366 generates the correct YML5367 with autodevops enabled5368 generates the correct YML5369gitlab:db:lock_writes5370 lock_writes5371 when environment sets DRY_RUN to true5372 creates TablesLocker with dry run set and calls lock_writes5373 when environment sets DRY_RUN to false5374 creates TablesLocker with dry run set and calls lock_writes5375 when environment does not define DRY_RUN5376 creates TablesLocker with dry run set and calls lock_writes5377 when environment sets VERBOSE to true5378 creates TablesLocker with dry run set and calls lock_writes5379 when environment sets VERBOSE to false5380 creates TablesLocker with dry run set and calls lock_writes5381 when environment does not define VERBOSE5382 creates TablesLocker with dry run set and calls lock_writes5383 unlock_writes5384 when environment sets DRY_RUN to true5385 creates TablesLocker with dry run set and calls unlock_writes5386 when environment sets DRY_RUN to false5387 creates TablesLocker with dry run set and calls unlock_writes5388 when environment does not define DRY_RUN5389 creates TablesLocker with dry run set and calls unlock_writes5390 when environment sets VERBOSE to true5391 creates TablesLocker with dry run set and calls lock_writes5392 when environment sets VERBOSE to false5393 creates TablesLocker with dry run set and calls lock_writes5394 when environment does not define VERBOSE5395 creates TablesLocker with dry run set and calls lock_writes5396Sbom::PackageUrl::Encoder5397 # order random5398 #encode5399 valid maven purl5400 is expected to eq "pkg:maven/org.apache.commons/io@1.3.4"5401 basic valid maven purl without version5402 is expected to eq "pkg:maven/org.apache.commons/io"5403 valid go purl without version and with subpath5404 is expected to eq "pkg:golang/google.golang.org/genproto#googleapis/api/annotations"5405 valid go purl with version and subpath5406 is expected to eq "pkg:golang/google.golang.org/genproto@abcdedf#googleapis/api/annotations"5407 bitbucket namespace and name should be lowercased5408 is expected to eq "pkg:bitbucket/birkenfeld/pygments-main@244fd47e07d1014f0aed9c"5409 github namespace and name should be lowercased5410 is expected to eq "pkg:github/package-url/purl-spec@244fd47e07d1004f0aed9c"5411 debian can use qualifiers5412 is expected to eq "pkg:deb/debian/curl@7.50.3-1?arch=i386&distro=jessie"5413 docker uses qualifiers and hash image id as versions5414 is expected to eq "pkg:docker/customer/dockerimage@sha256%3A244fd47e07d1004f0aed9c?repository_url=gcr.io"5415 Java gem can use a qualifier5416 is expected to eq "pkg:gem/jruby-launcher@1.1.2?platform=java"5417 maven often uses qualifiers5418 is expected to eq "pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?classifier=sources&repository_url=repo.spring.io%2Frelease"5419 maven pom reference5420 is expected to eq "pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?extension=pom&repository_url=repo.spring.io%2Frelease"5421 maven can come with a type qualifier5422 is expected to eq "pkg:maven/net.sf.jacob-project/jacob@1.14.3?classifier=x86&type=dll"5423 npm can be scoped5424 is expected to eq "pkg:npm/%40angular/animation@12.3.1"5425 nuget names are case sensitive5426 is expected to eq "pkg:nuget/EnterpriseLibrary.Common@6.0.1304"5427 pypi names have special rules and not case sensitive5428 is expected to eq "pkg:pypi/django-package@1.11.1.dev1"5429 rpm often use qualifiers5430 is expected to eq "pkg:rpm/fedora/curl@7.50.3-1.fc25?arch=i386&distro=fedora-25"5431 slash / after scheme is not significant5432 is expected to eq "pkg:maven/org.apache.commons/io"5433 double slash // after scheme is not significant5434 is expected to eq "pkg:maven/org.apache.commons/io"5435 slash /// after type is not significant5436 is expected to eq "pkg:maven/org.apache.commons/io"5437 valid maven purl with case sensitive namespace and name5438 is expected to eq "pkg:maven/HTTPClient/HTTPClient@0.3-3"5439 valid maven purl containing a space in the version and qualifier5440 is expected to eq "pkg:maven/mygroup/myartifact@1.0.0+Final?mykey=my+value"5441 valid conan purl5442 is expected to eq "pkg:conan/cctz@2.3"5443 valid conan purl with namespace and qualifier channel5444 is expected to eq "pkg:conan/bincrafters/cctz@2.3?channel=stable"5445 valid conda purl with qualifiers5446 is expected to eq "pkg:conda/absl-py@0.4.1?build=py36h06a4308_0&channel=main&subdir=linux-64&type=tar.bz2"5447 valid cran purl5448 is expected to eq "pkg:cran/A3@0.9.1"5449 valid swift purl5450 is expected to eq "pkg:swift/github.com/Alamofire/Alamofire@5.4.3"5451 valid hackage purl5452 is expected to eq "pkg:hackage/AC-HalfInteger@1.2.1"5453Integrations::EmailsOnPush5454 Validations5455 when integration is active5456 is expected to validate that :recipients cannot be empty/falsy5457 when integration is inactive5458 is expected not to validate that :recipients cannot be empty/falsy5459 validates number of recipients5460 valid number of recipients5461 does not count duplicates and invalid emails5462 invalid number of recipients5463 is expected not to be valid5464 adds an error message5465 when integration is not active5466 is expected to be valid5467 .new5468 when properties is missing branches_to_be_notified5469 sets the default value to all5470 when branches_to_be_notified is already set5471 does not overwrite it with the default value5472 .valid_recipients5473 removes invalid email addresses and removes duplicates by keeping the original capitalization5474 #execute5475 when emails are disabled on the project5476 does not send emails5477 when emails are enabled on the project5478 pushing to a random branch and notification configured for all branches5479 sends email5480 pushing to the default branch and notification configured for all branches5481 sends email5482 pushing to a protected branch and notification configured for all branches5483 sends email5484 pushing to a random branch and notification configured for default branch only5485 does not send email5486 pushing to the default branch and notification configured for default branch only5487 sends email5488 pushing to a protected branch and notification configured for default branch only5489 does not send email5490 pushing to a random branch and notification configured for protected branches only5491 does not send email5492 pushing to the default branch and notification configured for protected branches only5493 does not send email5494 pushing to a protected branch and notification configured for protected branches only5495 sends email5496 pushing to a random branch and notification configured for default and protected branches only5497 does not send email5498 pushing to the default branch and notification configured for default and protected branches only5499 sends email5500 pushing to a protected branch and notification configured for default and protected branches only5501 sends email5502Projects::ErrorTrackingHelper5503 #error_tracking_data5504 without error_tracking_setting5505 returns frontend configuration5506 with error_tracking_setting5507 when enabled5508 show error tracking enabled5509 when disabled5510 show error tracking not enabled5511 with integrated error tracking feature5512 feature_flag: false, enabled: true, settings_integrated: true, show_alert: true, integrated_enabled: false5513 is expected to include {"show-integrated-tracking-disabled-alert" => "true", "integrated-error-tracking-enabled" => "false"}5514 feature_flag: false, enabled: true, settings_integrated: false, show_alert: false, integrated_enabled: false5515 is expected to include {"show-integrated-tracking-disabled-alert" => "false", "integrated-error-tracking-enabled" => "false"}5516 feature_flag: false, enabled: false, settings_integrated: true, show_alert: false, integrated_enabled: false5517 is expected to include {"show-integrated-tracking-disabled-alert" => "false", "integrated-error-tracking-enabled" => "false"}5518 feature_flag: false, enabled: false, settings_integrated: false, show_alert: false, integrated_enabled: false5519 is expected to include {"show-integrated-tracking-disabled-alert" => "false", "integrated-error-tracking-enabled" => "false"}5520 feature_flag: true, enabled: true, settings_integrated: true, show_alert: false, integrated_enabled: true5521 is expected to include {"show-integrated-tracking-disabled-alert" => "false", "integrated-error-tracking-enabled" => "true"}5522 feature_flag: true, enabled: true, settings_integrated: false, show_alert: false, integrated_enabled: false5523 is expected to include {"show-integrated-tracking-disabled-alert" => "false", "integrated-error-tracking-enabled" => "false"}5524 feature_flag: true, enabled: false, settings_integrated: true, show_alert: false, integrated_enabled: false5525 is expected to include {"show-integrated-tracking-disabled-alert" => "false", "integrated-error-tracking-enabled" => "false"}5526 feature_flag: true, enabled: false, settings_integrated: false, show_alert: false, integrated_enabled: false5527 is expected to include {"show-integrated-tracking-disabled-alert" => "false", "integrated-error-tracking-enabled" => "false"}5528 when user is not maintainer5529 shows error tracking enablement as disabled5530 #error_details_data5531 returns the correct issue id5532 returns the correct project path5533 returns the correct stack trace path5534 creates an issue and redirects to issue show page5535 with integrated error tracking feature5536 feature_flag: false, enabled: true, settings_integrated: true, integrated_enabled: false5537 is expected to eq "false"5538 feature_flag: false, enabled: true, settings_integrated: false, integrated_enabled: false5539 is expected to eq "false"5540 feature_flag: false, enabled: false, settings_integrated: true, integrated_enabled: false5541 is expected to eq "false"5542 feature_flag: false, enabled: false, settings_integrated: false, integrated_enabled: false5543 is expected to eq "false"5544 feature_flag: true, enabled: true, settings_integrated: true, integrated_enabled: true5545 is expected to eq "true"5546 feature_flag: true, enabled: true, settings_integrated: false, integrated_enabled: false5547 is expected to eq "false"5548 feature_flag: true, enabled: false, settings_integrated: true, integrated_enabled: false5549 is expected to eq "false"5550 feature_flag: true, enabled: false, settings_integrated: false, integrated_enabled: false5551 is expected to eq "false"5552Gitlab::HotlinkingDetector5553 .intercept_hotlinking?5554 hotlinked as media5555 return_value: false, accept_header: "*/*"5556 is expected to equal false5557 return_value: false, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"5558 is expected to equal false5559 return_value: false, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"5560 is expected to equal false5561 return_value: false, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"5562 is expected to equal false5563 return_value: false, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"5564 is expected to equal false5565 return_value: false, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"5566 is expected to equal false5567 return_value: false, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"5568 is expected to equal false5569 return_value: false, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"5570 is expected to equal false5571 return_value: true, accept_header: "image/webp,*/*"5572 is expected to equal true5573 return_value: true, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"5574 is expected to equal true5575 return_value: true, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"5576 is expected to equal true5577 return_value: true, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"5578 is expected to equal true5579 return_value: true, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"5580 is expected to equal true5581 return_value: true, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"5582 is expected to equal true5583 return_value: true, accept_header: "text/css,*/*;q=0.1"5584 is expected to equal true5585 return_value: true, accept_header: "text/css"5586 is expected to equal true5587 return_value: true, accept_header: "text/css,*/*;q=0.1"5588 is expected to equal true5589 return_value: true, accept_header: "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"5590 is expected to equal true5591 hotlinked as a script5592 return_value: false, fetch_mode: "navigate"5593 is expected to equal false5594 return_value: false, fetch_mode: "nested-navigate"5595 is expected to equal false5596 return_value: false, fetch_mode: "same-origin"5597 is expected to equal false5598 return_value: true, fetch_mode: "cors"5599 is expected to equal true5600 return_value: true, fetch_mode: "no-cors"5601 is expected to equal true5602 return_value: true, fetch_mode: "websocket"5603 is expected to equal true5604Gitlab::Identifier5605 #identify5606 without an identifier5607 returns nil5608 with a user identifier5609 identifies the user using a user ID5610 with an SSH key identifier5611 identifies the user using an SSH key ID5612 #identify_using_user5613 returns the User for an existing ID in the identifier5614 returns nil for a non existing user ID5615 caches the found users per ID5616 #identify_using_ssh_key5617 returns the User for an existing SSH key5618 returns nil for an invalid SSH key5619 caches the found users per key5620Identity5621 relations5622 is expected to belong to user required: false5623 fields5624 is expected to respond to #provider5625 is expected to respond to #extern_uid5626 validations5627 with existing user and provider5628 returns false for a duplicate entry5629 returns true when a different provider is used5630 with newly-created user5631 successfully validates even with a nil user_id5632 #is_ldap?5633 returns true if it is a ldap identity5634 returns false if it is not a ldap identity5635 .with_extern_uid5636 LDAP identity5637 finds the identity when the DN is formatted differently5638 any other provider5639 the extern_uid lookup is case insensitive5640 .with_any_extern_uid5641 provider with extern uid5642 finds any extern uids associated with a provider5643 provider with nil extern uid5644 has no results when there are no extern uids5645 no provider5646 has no results when there is no associated provider5647 callbacks5648 before_save5649 normalizes extern uid5650 if extern_uid changes5651 if current_uid is nil5652 if extern_uid changed and not nil5653 after_destroy5654 if user synced attributes metadada provider5655 matches the identity provider5656 removes the user synced attributes5657 does not matche the identity provider5658 does not remove the user synced attributes5659MilestonesFinder5660 without filters5661 returns milestones for projects5662 returns milestones for groups5663 milestones for groups and project5664 returns milestones for groups and projects5665 orders milestones by due date5666 when grouping and sorting by expired_last5667 current milestones are returned first, then milestones without due date followed by expired milestones, sorted by due date in ascending order5668 #find_by5669 finds a single milestone5670 with filters5671 filters by id5672 filters by active state5673 filters by closed state5674 filters by title5675 filters by search_title5676 filters by search (title, description)5677 by timeframe5678 returns milestones with start_date and due_date between timeframe5679 returns milestones which starts before the timeframe5680 returns milestones which ends after the timeframe5681 by updated_at5682 returns milestones updated before a given date5683 returns milestones updated after a given date5684 returns milestones updated between the given dates5685 by iids5686 returns milestone for the given iids5687 when include_parent_milestones is true5688 ignores the iid filter5689Achievements::UserAchievementPolicy5690 # order random5691 is readable to everyone when user has public profile5692 when group is private5693 for achievement owner5694 is visible5695 for group maintainer5696 is visible5697 for others5698 is visible5699 when user has private profile5700 for achievement owner5701 is visible5702 for group maintainer5703 is visible5704 for others5705 is hidden5706Gitlab::Ci::Pipeline::Chain::Populate5707 when pipeline doesn not have seeds block5708 does not persist the pipeline5709 does not break the chain5710 populates pipeline with stages5711 correctly assigns user5712 has pipeline iid5713 when pipeline is empty5714 breaks the chain5715 appends an error about missing stages5716 wastes pipeline iid5717 increments the error metric5718 pipeline protect5719 when ref is protected5720 does not protect the pipeline5721 when ref is not protected5722 does not protect the pipeline5723 when pipeline has validation errors5724 breaks the chain5725 appends validation error5726 wastes pipeline iid5727 when there is a seed blocks present5728 when seeds block builds some resources5729 populates pipeline with resources described in the seeds block5730 has pipeline iid5731 when seeds block tries to persist some resources5732 raises error5733 when pipeline gets persisted during the process5734 raises error5735 when variables policy is specified5736 when using only/except build policies5737 behaves like a correct pipeline5738 populates pipeline according to used policies5739 when variables expression is specified5740 when pipeline iid is the subject5741 behaves like a correct pipeline5742 populates pipeline according to used policies5743Gitlab::Prometheus::AdditionalMetricsParser5744 #load_groups_from_yaml5745 parsing sample yaml5746 parses to two metric groups with 2 and 1 metric respectively5747 provide group data5748 provides metrics data5749 provides query data5750 group required fields5751 behaves like required field5752 when metrics is nil5753 throws parsing error5754 when metrics are not specified5755 throws parsing error5756 behaves like required field5757 when name is nil5758 throws parsing error5759 when name are not specified5760 throws parsing error5761 behaves like required field5762 when priority is nil5763 throws parsing error5764 when priority are not specified5765 throws parsing error5766 metrics fields parsing5767 behaves like required field5768 when title is nil5769 throws parsing error5770 when title are not specified5771 throws parsing error5772 behaves like required field5773 when required metrics is nil5774 throws parsing error5775 when required metrics are not specified5776 throws parsing error5777 behaves like required field5778 when weight is nil5779 throws parsing error5780 when weight are not specified5781 throws parsing error5782 behaves like required field5783 when queries is nil5784 throws parsing error5785 when queries are not specified5786 throws parsing error5787Gitlab::Config::Entry::Factory5788 #create!5789 when setting a concrete value5790 creates entry with valid value5791 when setting description5792 configures description5793 creates entry with description5794 when setting inherit5795 makes object inheritable5796 when setting key5797 creates entry with custom key5798 when setting a parent5799 creates entry with valid parent5800 when not setting a value5801 raises error5802 when creating entry with nil value5803 creates an unspecified entry5804 when passing metadata5805 passes metadata as a parameter5806 when setting deprecation information5807 passes deprecation as a parameter5808Gitlab::Ci::Jwt5809 #payload5810 has correct values for the standard JWT attributes5811 has correct values for the custom attributes5812 skips user related custom attributes if build has no user assigned5813 references5814 with a branch pipepline5815 is "branch"5816 with a tag pipeline5817 is "tag"5818 with a merge request pipeline5819 is "branch"5820 ref_protected5821 is false when ref is not protected5822 is true when ref is protected5823 environment5824 has correct values for environment attributes5825 deployment_tier5826 when build options specifies a different deployment_tier5827 uses deployment_tier from build options5828 .for_build5829 when ci_jwt_signing_key is present5830 behaves like generating JWT for build5831 when signing key is present5832 generates JWT with key id5833 generates JWT for the given job with ttl equal to build timeout5834 generates JWT for the given job with default ttl if build timeout is not set5835 when signing key is missing5836 raises NoSigningKeyError5837Ci::PipelineSuccessUnlockArtifactsWorker5838 #perform5839 is labeled as idempotent5840 performs multiple times sequentially without raising an exception5841 unlocks the artifacts from older pipelines5842 when pipeline exists5843 when pipeline has erasable artifacts5844 calls the unlock service5845 when pipeline has no erasable artifacts5846 does not call the unlock service5847 when pipeline does not exist5848 does not call service5849gitlab:praefect:replicas5850 replicas5851 when a valid project id is used as the argument5852 calls praefect info service's replicas method5853 prints out the expected row5854 when a non existent project id is used as the argument5855 does not call praefect info service's replicas method5856 when replicas throws an exception5857 aborts with the correct error message5858Bitbucket::Representation::Issue5859 #iid5860 is expected to eq 15861 #kind5862 is expected to eq "bug"5863 #milestone5864 is expected to eq "1.0"5865 is expected to be nil5866 #author5867 is expected to eq "Ben"5868 is expected to be nil5869 #description5870 is expected to eq "Text"5871 is expected to be nil5872 #state5873 is expected to eq "closed"5874 is expected to eq "closed"5875 is expected to eq "closed"5876 is expected to eq "closed"5877 is expected to eq "closed"5878 is expected to eq "opened"5879 #title5880 is expected to eq "Issue"5881 #created_at5882 is expected to eq Fri, 02 Jun 20235883 #updated_at5884 is expected to eq Fri, 02 Jun 20235885Boards::CreateService5886 #execute5887 when board parent is a project5888 behaves like boards create service5889 when parent does not have a board5890 creates a new board5891 creates the default lists5892 when parent has a board5893 does not create a new board5894 when board parent is a group5895 behaves like boards create service5896 when parent does not have a board5897 creates a new board5898 creates the default lists5899 when parent has a board5900 does not create a new board5901Users::CalloutsHelper5902 .show_gke_cluster_integration_callout?5903 when user can create a cluster5904 when user has not dismissed5905 when active_nav_link is in the operations section5906 is expected to equal true5907 when active_nav_link is not in the operations section5908 is expected to equal false5909 when user dismissed5910 is expected to equal false5911 when user can not create a cluster5912 is expected to equal false5913 .show_feature_flags_new_version?5914 when the feature flags new version info has not been dismissed5915 is expected to be truthy5916 when the feature flags new version has been dismissed5917 is expected to be falsy5918 .show_registration_enabled_user_callout?5919 gitlab_com: false, current_user: admin, signup_enabled: true, user_dismissed: false, controller_path: "admin/users", expected_result: true5920 is expected to equal true5921 gitlab_com: true, current_user: admin, signup_enabled: true, user_dismissed: false, controller_path: "admin/users", expected_result: false5922 is expected to equal false5923 gitlab_com: false, current_user: user, signup_enabled: true, user_dismissed: false, controller_path: "admin/users", expected_result: false5924 is expected to equal false5925 gitlab_com: false, current_user: admin, signup_enabled: false, user_dismissed: false, controller_path: "admin/users", expected_result: false5926 is expected to equal false5927 gitlab_com: false, current_user: admin, signup_enabled: true, user_dismissed: true, controller_path: "admin/users", expected_result: false5928 is expected to equal false5929 gitlab_com: false, current_user: admin, signup_enabled: true, user_dismissed: false, controller_path: "projects/issues", expected_result: false5930 is expected to equal false5931 .show_unfinished_tag_cleanup_callout?5932 when user has not dismissed5933 is expected to equal true5934 when user dismissed5935 is expected to equal false5936 .show_security_newsletter_user_callout?5937 when `current_user` is not an admin5938 is expected to equal false5939 when user has dismissed callout5940 is expected to equal false5941 when `current_user` is an admin and user has not dismissed callout5942 is expected to equal true5943 .show_pages_menu_callout?5944 when user has not dismissed5945 is expected to equal true5946 when user dismissed5947 is expected to equal false5948 #web_hook_disabled_dismissed?5949 without a project5950 is false5951 with a project5952 when the web-hook failure callout has never been dismissed5953 is false5954 when the web-hook failure callout has been dismissed5955 is true5956 is true when passed as a presenter5957 when there was an older failure5958 is true5959 when there has been a more recent failure5960 is false5961GitlabSettings::Options5962 # order random5963 #to_hash5964 returns the hash representation of the config5965 #merge5966 merges a hash to the existing options5967 when the merge hash replaces existing configs5968 merges a hash to the existing options5969 .build5970 when argument is a hash5971 creates a new GitlabSettings::Options instance5972 #[]=5973 changes the configuration key as string5974 changes the configuration key as symbol5975 when key does not exist5976 creates a new configuration by string key5977 creates a new configuration by string key5978 #method_missing5979 when method is an option5980 delegates methods to options keys5981 uses methods to change options values5982 when method is not an option5983 delegates the method to the internal options hash5984 when method is not an option and does not exist in hash5985 raises GitlabSettings::MissingSetting5986 #is_a?5987 returns false for anything different of Hash or GitlabSettings::Options5988 #key?5989 checks if a string key exists5990 checks if a symbol key exists5991 #deep_merge5992 merges a hash to the existing options5993 when the merge hash replaces existing configs5994 merges a hash to the existing options5995 #[]5996 accesses the configuration key as string5997 accesses the configuration key as symbol5998Projects::InactiveProjectsDeletionNotificationWorker5999 #perform6000 invokes NotificationService and calls inactive_project_deletion_warning6001 adds the project_id to redis key that tracks the deletion warning emails6002 rescues and logs the exception if project does not exist6003 behaves like an idempotent worker6004 is labeled as idempotent6005 performs multiple times sequentially without raising an exception6006Ci::GenerateCoverageReportsService6007 #execute6008 when head pipeline has coverage reports6009 returns status and data6010 when head pipeline does not have a coverage report artifact6011 returns status and error message6012 when head pipeline has coverage reports and no merge request associated6013 returns status and error message6014 #latest?6015 when cache key is latest6016 is expected to be truthy6017 when head pipeline has been updated6018 is expected to be falsy6019 when cache key is empty6020 is expected to be falsy6021 when the pipeline has a child that is updated6022 is expected to be falsy6023Gitlab::Metrics::Sli6024 Class methods6025 does not allow them to be called on the parent module6026 allows different SLIs to be defined on each subclass6027 Gitlab::Metrics::Sli::Apdex6028 Class methods6029 .[]6030 returns and stores a new, uninitialized SLI6031 returns the same object for multiple accesses6032 .initialize_sli6033 returns and stores a new initialized SLI6034 does not change labels for an already-initialized SLI6035 .initialized?6036 is true when an SLI was initialized with labels6037 is false when an SLI was not initialized with labels6038 #initialize_counters6039 initializes counters for the passed label combinations6040 #increment6041 increments both counters for labels when success is true6042 only increments the total counters for labels when success is false6043 Gitlab::Metrics::Sli::ErrorRate6044 Class methods6045 .[]6046 returns and stores a new, uninitialized SLI6047 returns the same object for multiple accesses6048 .initialize_sli6049 returns and stores a new initialized SLI6050 does not change labels for an already-initialized SLI6051 .initialized?6052 is true when an SLI was initialized with labels6053 is false when an SLI was not initialized with labels6054 #initialize_counters6055 initializes counters for the passed label combinations6056 #increment6057 increments both counters for labels when error is true6058 only increments the total counters for labels when error is false6059ProtectedBranch::MergeAccessLevel6060 is expected to validate that :access_level is either ‹30›, ‹40›, ‹60›, or ‹0›6061 is expected to validate that :access_level cannot be empty/falsy6062 is expected to belong to protected_branch required: false6063 when not role?6064 is expected not to validate that :access_level cannot be empty/falsy6065 ::human_access_levels6066 is expected to eq {30=>"Developers + Maintainers", 40=>"Maintainers", 60=>"Instance admins", 0=>"No one"}6067 #check_access6068 when current_user is nil6069 is expected to eq false6070 when access_level is NO_ACCESS6071 is expected to eq false6072 when instance admin access is configured6073 when current_user is a maintainer6074 is expected to eq false6075 when current_user is admin6076 is expected to eq true6077 when current_user can push_code to project6078 and member access is high enough6079 is expected to eq true6080 when external authorization denies access6081 is expected to be falsey6082 and member access is too low6083 is expected to eq false6084 when current_user cannot push_code to project6085 is expected to eq false6086 #project6087 delegates project to protected_branch association6088 ::allowed_access_levels6089 when running on Gitlab.com?6090 is expected to contain exactly 30, 40, and 06091 when self hosted?6092 is expected to contain exactly 30, 40, 60, and 06093Tooling::Danger::FeatureFlag6094 #feature_flag_files6095 retrieves added feature flag files6096 with added added feature flag files6097 returns an array of Found objects6098 without added added feature flag files6099 returns an array of Found objects6100 retrieves modified feature flag files6101 with modified modified feature flag files6102 returns an array of Found objects6103 without modified modified feature flag files6104 returns an array of Found objects6105 retrieves deleted feature flag files6106 with deleted deleted feature flag files6107 returns an array of Found objects6108 without deleted deleted feature flag files6109 returns an array of Found objects6110 #stage_label6111 when there is no stage label6112 returns nil6113 when there is a stage label6114 returns the stage label6115 Tooling::Danger::FeatureFlag::Found6116 #name6117 returns value from the YAML6118 #introduced_by_url6119 returns value from the YAML6120 #rollout_issue_url6121 returns value from the YAML6122 #milestone6123 returns value from the YAML6124 #type6125 returns value from the YAML6126 #group6127 returns value from the YAML6128 #default_enabled6129 returns value from the YAML6130 #raw6131 returns the raw YAML6132 #group_match_mr_label?6133 when group is nil6134 is true only if MR has no group label6135 when group is not nil6136 is true only if MR has the same group label6137Gitlab::Usage::Metrics::Instrumentations::InProductMarketingEmailSentMetric6138 # order random6139 options_key: :series, valid_value: 1, invalid_value: 56140 raises an exception if option is not present6141 raises an exception if option has invalid value6142 doesn't raise exceptions if option has valid value6143 options_key: :track, valid_value: "admin_verify", invalid_value: "invite_team"6144 raises an exception if option is not present6145 raises an exception if option has invalid value6146 doesn't raise exceptions if option has valid value6147 behaves like a correct instrumented metric value and query6148 behaves like a correct instrumented metric value6149 has correct value6150 behaves like a correct instrumented metric query6151 has correct generate query6152BulkImports::Common::Pipelines::LfsObjectsPipeline6153 #run6154 imports lfs objects into destination project and removes tmpdir6155 #extract6156 downloads & extracts lfs objects filepaths6157 #load6158 when file path is lfs json6159 returns6160 when file path is tar file6161 returns6162 when lfs json read failed6163 raises an error6164 when file path is being traversed6165 raises an error6166 when file path is not under tmpdir6167 returns6168 when file path is symlink6169 returns6170 when path is a directory6171 returns6172 lfs objects project6173 when lfs objects json is invalid6174 when oid value is not Array6175 does not create lfs objects project6176 when oid value is nil6177 does not create lfs objects project6178 when oid value is not allowed6179 does not create lfs objects project6180 when repository type is duplicated6181 creates only one lfs objects project6182 when lfs objects project fails to be created6183 logs the failure6184 #after_run6185 removes tmpdir6186 when tmpdir does not exist6187 does not attempt to remove tmpdir6188ObjectStorage::PendingDirectUpload6189 # order random6190 .complete6191 deletes the redis entry for the given path6192 #stale?6193 when timestamp is older than 3 hours ago6194 is expected to eq true6195 when timestamp is not older than 3 hours ago6196 is expected to eq false6197 #delete6198 deletes the object from storage and also the redis entry6199 .redis_key6200 is expected to eq "artifacts:some/path/123"6201 .exists?6202 when there is a matching redis entry for the given path under the location identifier6203 is expected to eq true6204 when there is a matching redis entry for the given path under a different location identifier6205 is expected to eq false6206 when there is no matching redis entry for the given path under the location identifier6207 is expected to eq false6208 .prepare6209 creates a redis entry for the given location identifier and path6210 .each6211 yields each pending direct upload object6212 .count6213 is expected to eq 36214Gitlab::Git::Conflict::File6215 #lines6216 when the content contains non-UTF-8 characters6217 raises UnsupportedEncoding6218 when the content can be converted to UTF-86219 sets lines to the lines6220 sets the type to text6221 #content6222 when the content contains non-UTF-8 characters6223 raises UnsupportedEncoding6224 when the content can be converted to UTF-86225 returns a valid UTF-8 string6226 #path6227 returns our_path6228 when our_path is not present6229 returns their_path6230Ci::JobArtifacts::TrackArtifactReportWorker6231 # order random6232 #perform6233 when pipeline is found6234 executed service6235 behaves like an idempotent worker6236 is labeled as idempotent6237 performs multiple times sequentially without raising an exception6238 does not try to increment again for the test event6239 does not try to increment again for the coverage event6240 when pipeline is not found6241 does not execute service6242Gitlab::Checks::PushCheck6243 #validate!6244 does not raise any error6245 when the user is not allowed to push to the repo6246 raises an error6247 when using a DeployKeyAccess instance6248 when the deploy key cannot push to the targetted branch6249 raises an error6250 when the deploy key can push to the targetted branch6251 is valid6252Gitlab::Database::AsyncIndexes::IndexDestructor6253 #perform6254 creates the index while controlling lock timeout6255 removes the index preparation record from postgres_async_indexes6256 skips logic if not able to acquire exclusive lease6257 logs messages around execution6258 when the index does not exist6259 skips index destruction6260 removes the index preparation record from postgres_async_indexes6261 logs an appropriate message6262MergeRequestMergeabilityCheckWorker6263 #perform6264 when merge request does not exist6265 does not execute MergeabilityCheckService6266 when merge request exists6267 executes MergeabilityCheckService6268 structurally logs a failed mergeability check6269 behaves like an idempotent worker6270 is labeled as idempotent6271 performs multiple times sequentially without raising an exception6272 is mergeable6273Gitlab::Graphql::Present::FieldExtension6274 when the object does not declare a presenter6275 does not affect normal resolution6276 when the field is declared on an interface, and implemented by a presenter6277 resolves the interface field using the implementation from the presenter6278 when the implementation is inherited6279 resolves the interface field using the implementation from the presenter6280 interactions with inheritance6281 can resolve value, foo and bar6282 when the object declares a presenter6283 when the presenter overrides the original method6284 behaves like calling the presenter method6285 calls the presenter method6286 when the presenter provides a new method6287 when we select the original field6288 is unaffected6289 when we select the new field6290 behaves like calling the presenter method6291 calls the presenter method6292Gitlab::MarkerRange6293 is expected to eq 1..106294 behaves like a Range6295 #mode6296 is expected to be nil6297 when mode is provided6298 is expected to eq :deletion6299 #to_range6300 is expected to eq 1..106301 when mode is provided6302 is omitted during transformation6303 .from_range6304 converts Range to MarkerRange object6305 keeps correct range6306 when range excludes end6307 keeps correct range6308 when range is already a MarkerRange6309 is expected to equal 1, 2, 3, 4, 5, 6, 7, 8, 9, and 106310 #==6311 is expected to be truthy6312 when marker ranges have different modes6313 is expected to be falsey6314 when marker ranges have different ranges6315 is expected to be falsey6316 when marker ranges is a simple range6317 is expected to be falsey6318DependencyProxy::AuthTokenService6319 .user_or_deploy_token_from_jwt6320 with a user6321 is expected to eq #<User id:1060 @user615>6322 with an invalid user id6323 raises an not found error6324 behaves like handling token errors6325 with a decoding error6326 is expected to eq nil6327 with an immature signature error6328 is expected to eq nil6329 with an expired signature error6330 returns nil6331 with a deploy token6332 is expected to eq #<DeployToken id: 12, revoked: false, read_repository: true, read_registry: true, expires_at: "2023-0...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>6333 with an invalid token6334 is expected to eq nil6335 behaves like handling token errors6336 with a decoding error6337 is expected to eq nil6338 with an immature signature error6339 is expected to eq nil6340 with an expired signature error6341 returns nil6342 with an empty token payload6343 is expected to eq nil6344Gitlab::GithubImport::Importer::Events::ChangedReviewer6345 # order random6346 #execute6347 behaves like process review_requested & review_request_removed MR events6348 when importing a review_requested event6349 behaves like create expected notes6350 creates expected note6351 creates expected system note metadata6352 when importing a review_request_removed event6353 behaves like create expected notes6354 creates expected note6355 creates expected system note metadata6356Analytics::UsageTrends::Measurement6357 validation6358 is expected to validate that :recorded_at cannot be empty/falsy6359 is expected to validate that :identifier cannot be empty/falsy6360 is expected to validate that :count cannot be empty/falsy6361 is expected to validate that :recorded_at is case-sensitively unique within the scope of :identifier6362 identifiers enum6363 maps to the correct values6364 scopes6365 .order_by_latest6366 is expected to eq [#<Analytics::UsageTrends::Measurement id: 6, count: 1000, recorded_at: "2023-05-31 06:43:13.49280271...ent id: 5, count: 1000, recorded_at: "2023-05-23 06:43:13.484817328 +0000", identifier: "projects">]6367 .with_identifier6368 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 5, count: 1000, recorded_at: "2023-05-23 06:43:13.484817328 +0000", identifier: "projects"> and #<Analytics::UsageTrends::Measurement id: 6, count: 1000, recorded_at: "2023-05-31 06:43:13.492802717 +0000", identifier: "projects">6369 .recorded_after6370 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 6, count: 1000, recorded_at: "2023-05-31 06:43:13.492802717 +0000", identifier: "projects"> and #<Analytics::UsageTrends::Measurement id: 7, count: 1000, recorded_at: "2023-05-28 06:43:13.498699966 +0000", identifier: "groups">6371 when nil is given6372 does not apply filtering6373 .recorded_before6374 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 5, count: 1000, recorded_at: "2023-05-23 06:43:13.484817328 +0000", identifier: "projects"> and #<Analytics::UsageTrends::Measurement id: 7, count: 1000, recorded_at: "2023-05-28 06:43:13.498699966 +0000", identifier: "groups">6375 when nil is given6376 does not apply filtering6377 .identifier_query_mapping6378 is expected to be a kind of Hash6379 .identifier_min_max_queries6380 is expected to be a kind of Hash6381 .measurement_identifier_values6382 is expected to eq 116383 .find_latest_or_fallback6384 with usage statistics6385 returns the latest stored measurement6386 without usage statistics6387 returns the realtime query of the measurement6388Integrations::ChatMessage::DeploymentMessage6389 behaves like Integrations::ChatMessage6390 when input contains link markup6391 strips all link markup characters6392 #pretext6393 returns a message with the data returned by the deployment data builder6394 returns a message for a successful deployment6395 returns a message for a failed deployment6396 returns a message for a canceled deployment6397 returns a message for a deployment to another environment6398 returns a message for a deployment with any other status6399 returns a message for a running deployment6400 #attachments6401 returns attachments with the data returned by the deployment data builder6402 returns attachments for a failed deployment6403 returns attachments for a canceled deployment6404 uses a neutral color for a deployment with any other status6405Packages::Rubygems::ExtractionWorker6406 #perform6407 processes the gem6408 handles a processing failure6409 handles processing an unaccounted for error6410 returns when there is no package file6411 returns without action6412LimitedCapacity::JobTracker6413 #register6414 adds jid to the set6415 returns false if the jid was not added6416 #remove6417 removes jid from the set6418 #clean_up6419 with running jobs6420 does not remove the jid from the set6421 does only one Redis call to get the job ids6422 with completed jobs6423 removes the jid from the set6424 gets the job ids, removes them, and updates the counter with only two Redis calls6425Issues::RebalancingWorker6426 has the `until_executed` deduplicate strategy6427 #perform6428 without root_namespace param6429 is labeled as idempotent6430 performs multiple times sequentially without raising an exception6431 is labeled as idempotent6432 performs multiple times sequentially without raising an exception6433 behaves like running the worker6434 runs an instance of Issues::RelativePositionRebalancingService6435 anticipates there being too many concurent rebalances6436 takes no action if the value is nil6437 does not schedule a new rebalance if it finished under 1h ago6438 behaves like safely handles non-existent ids6439 anticipates the inability to find the issue6440 with root_namespace param6441 is labeled as idempotent6442 performs multiple times sequentially without raising an exception6443 is labeled as idempotent6444 performs multiple times sequentially without raising an exception6445 behaves like running the worker6446 runs an instance of Issues::RelativePositionRebalancingService6447 anticipates there being too many concurent rebalances6448 takes no action if the value is nil6449 does not schedule a new rebalance if it finished under 1h ago6450 behaves like safely handles non-existent ids6451 anticipates the inability to find the issue6452Mutations::Clusters::Agents::Create6453 is expected to require graphql authorizations :create_cluster6454 #resolve6455 without project permissions6456 raises an error if the resource is not accessible to the user6457 with user permissions6458 creates a new clusters_agent6459 invalid params6460 generates an error message when name is invalid6461Ci::JobArtifacts::DestroyAssociationsService6462 #destroy_records6463 removes all types of artifacts without updating statistics6464 with a locked artifact6465 removes all artifacts6466 when there are no artifacts6467 does not raise error6468 #update_statistics6469 updates project statistics6470 when there are no artifacts6471 does not raise error6472DeleteUserWorker6473 calls the DeleteUserWorker with the params it was given6474 uses symbolized keys6475 when user is banned6476 behaves like does nothing6477 does not instantiate a DeleteUserWorker6478 when delay_delete_own_user feature flag is disabled6479 proceeds with deletion6480 when user to delete does not exist6481 behaves like does nothing6482 does not instantiate a DeleteUserWorker6483 when current user does not exist6484 behaves like does nothing6485 does not instantiate a DeleteUserWorker6486 when user to delete and current user do not exist6487 behaves like does nothing6488 does not instantiate a DeleteUserWorker6489JiraImport::CloudUsersMapperService6490 #execute6491 behaves like mapping jira users6492 jira_users is nil6493 returns an empty array6494 when jira_users is present6495 returns users mapped to Gitlab6496 runs only 4 queries6497Labels::UpdateService6498 #execute6499 with color in hex-code6500 updates the label6501 with color in allowed name6502 updates the label6503 with color in up-case allowed name6504 updates the label6505 with color surrounded by spaces6506 updates the label6507 with unknown color6508 doesn't update the label6509 with no color6510 doesn't update the label6511#<GitlabSettings::Settings:0x00007ff02a36e508>6512 #ldap6513 can be accessed with dot syntax all the way down6514 can be accessed in a very specific way that breaks without reassigning each element6515 #host_without_www6516 URL with protocol6517 returns the host6518 URL without protocol6519 returns the host6520 URL with user/port6521 returns the host6522 #weak_passwords_digest_set6523 is a Set6524 contains 4500 password digests6525 includes 8 char weak password digest6526 includes 16 char weak password digest6527 includes long char weak password digest6528 does not include 7 char weak password digest6529 does not include plaintext6530Ci::PendingBuilds::UpdateProjectWorker6531 #perform6532 when a project is not provided6533 does not call the service6534 when everything is ok6535 calls the service6536 is labeled as idempotent6537 performs multiple times sequentially without raising an exception6538 updates the pending builds6539Gitlab::Usage::ServicePing::LegacyMetricMetadataDecorator6540 metric_value: 1, error: nil, metric_class: Integer6541 exposes a duration with the correct value6542 exposes error with the correct value6543 imitates wrapped class6544 metric_value: "value", error: nil, metric_class: String6545 exposes a duration with the correct value6546 exposes error with the correct value6547 imitates wrapped class6548 metric_value: true, error: nil, metric_class: TrueClass6549 exposes a duration with the correct value6550 exposes error with the correct value6551 imitates wrapped class6552 metric_value: false, error: nil, metric_class: FalseClass6553 exposes a duration with the correct value6554 exposes error with the correct value6555 imitates wrapped class6556 metric_value: nil, error: nil, metric_class: NilClass6557 exposes a duration with the correct value6558 exposes error with the correct value6559 imitates wrapped class6560 metric_value: nil, error: #<StandardError: StandardError>, metric_class: NilClass6561 exposes a duration with the correct value6562 exposes error with the correct value6563 imitates wrapped class6564Gitlab::SidekiqDaemon::Monitor6565 #within_job6566 tracks thread, jid and worker_class6567 when job is canceled6568 does not execute a block6569 raises exception6570 #jobs6571 returns running jobs hash6572 #run_thread when notification channel not enabled6573 return directly6574 #run_thread when notification channel enabled6575 when structured logging is used6576 logs start message6577 logs stop message6578 logs StandardError message6579 logs and raises Exception message6580 when StandardError is raised6581 does retry connection6582 when message is published6583 and message is valid6584 processes cancel6585 and message is not valid json6586 skips processing6587 #stop6588#<Thread:0x00007ff02b38b1c0 /builds/gitlab-org/gitlab/lib/gitlab/daemon.rb:56 run> terminated with exception (report_on_exception is true):6589Interrupt (Interrupt)6590 does stop the thread6591 #process_job_cancel6592 when jid is missing6593 does not run thread6594 when jid is provided6595 when jid is not found6596 does not log cancellation message6597 when jid is found6598#<Thread:0x00007ff019be9db0 /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:237 run> terminated with exception (report_on_exception is true):6599/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:237:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)6600 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:237:in `block (6 levels) in <top (required)>'6601 does log cancellation message6602#<Thread:0x00007ff013113950 /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:237 run> terminated with exception (report_on_exception is true):6603/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:237:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)6604 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:237:in `block (6 levels) in <top (required)>'6605 does cancel the thread6606 .cancel_job6607 sets a redis key6608 notifies all workers6609 #notification_channel_enabled?6610 return nil when SIDEKIQ_MONITOR_WORKER is not set6611 return nil when SIDEKIQ_MONITOR_WORKER set to 06612 return 1 when SIDEKIQ_MONITOR_WORKER set to 16613Gitlab::UsageDataCounters::NoteCounter6614 behaves like a note usage counter6615 .count(create)6616 increments the Note create counter by 16617 .read(create)6618 returns the total number of create events6619 behaves like a note usage counter6620 .count(create)6621 increments the Note create counter by 16622 .read(create)6623 returns the total number of create events6624 behaves like a note usage counter6625 .count(create)6626 increments the Note create counter by 16627 .read(create)6628 returns the total number of create events6629 .totals6630 can report all totals6631 unknown events or noteable_type6632 event: :create, noteable_type: "Snippet", expected_count: 1, should_raise: false6633 handles event6634 event: :wibble, noteable_type: "Snippet", expected_count: 0, should_raise: true6635 handles event6636 event: :create, noteable_type: "MergeRequest", expected_count: 1, should_raise: false6637 handles event6638 event: :wibble, noteable_type: "MergeRequest", expected_count: 0, should_raise: true6639 handles event6640 event: :create, noteable_type: "Commit", expected_count: 1, should_raise: false6641 handles event6642 event: :wibble, noteable_type: "Commit", expected_count: 0, should_raise: true6643 handles event6644 event: :create, noteable_type: "Issue", expected_count: 0, should_raise: false6645 handles event6646 event: :wibble, noteable_type: "Issue", expected_count: 0, should_raise: false6647 handles event6648Gitlab::Middleware::RequestContext6649 #call6650 setting the client ip6651 with X-Forwarded-For headers6652 returns the load balancer IP6653 request6654 sets the `client_ip`6655 sets the `request_start_time`6656 sets the `spam_params`6657Gitlab::Ci::Reports::Security::Scanner6658 #initialize6659 when all params are given6660 initializes an instance6661 when attribute external_id is missing6662 raises an error6663 when attribute name is missing6664 raises an error6665 #key6666 returns external_id6667 #to_hash6668 returns expected hash6669 when vendor is not defined6670 returns expected hash6671 #==6672 when external_id is equal6673 returns true6674 when external_id is different6675 returns false6676 #<=>6677 when the `external_id` of the scanners are different6678 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16679 is expected to eq -16680 scanner_1_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16681 is expected to eq -16682 scanner_1_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: 16683 is expected to eq 16684 scanner_1_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16685 is expected to eq -16686 scanner_1_attributes: {:external_id=>"spotbugs", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16687 is expected to eq -16688 scanner_1_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"unknown", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16689 is expected to eq -16690 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>nil}, expected_comparison_result: 16691 is expected to eq 16692 when the `external_id` of the scanners are equal6693 when the `name` of the scanners are different6694 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"a", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"b", :vendor=>"bar"}, expected_comparison_result: -16695 is expected to eq -16696 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"d", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"c", :vendor=>"bar"}, expected_comparison_result: 16697 is expected to eq 16698 when the `name` of the scanners are equal6699 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 06700 is expected to eq 06701 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, expected_comparison_result: -16702 is expected to eq -16703 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 16704 is expected to eq 16705UserGroupsCounter6706 #execute6707 returns authorized group count for the user6708 when request to join group is pending6709 does not include pending group in the count6710 when user is part of sub group6711 includes sub group in the count6712 when user is part of namespaced project6713 includes the project group6714IssueEmailParticipant6715 Associations6716 is expected to belong to issue required: false6717 Modules6718 is expected to includes the Presentable module6719 Validations6720 is expected to validate that :issue cannot be empty/falsy6721 is expected to validate that :email is unique within the scope of :issue_id6722 is invalid if the email is nil6723 behaves like an object with RFC3696 compliant email-formatted attributes6724 specifically its :email attribute6725 with a value of 'info@example.com'6726 is valid6727 with a value of 'info+test@example.com'6728 is valid6729 with a value of 'o'reilly@example.com'6730 is valid6731 with a value of 'foobar'6732 is invalid6733 with a value of 'test@test@example.com'6734 is invalid6735 with a value of 'test.test.@example.com'6736 is invalid6737 with a value of '.test.test@example.com'6738 is invalid6739 with a value of 'mailto:test@example.com'6740 is invalid6741 with a value of 'lol!'+=?><#$%^&*()@gmail.com'6742 is invalid6743Gitlab::Ci::Build::Rules::Rule6744 #matches?6745 with one matching clause if6746 is expected to eq true6747 with one matching clause changes6748 is expected to eq true6749 with two matching clauses6750 is expected to eq true6751 with a matching and non-matching clause6752 is expected to eq false6753 with two non-matching clauses6754 is expected to eq false6755GenerateRspecPipeline6756 # order random6757 #generate!6758 when rspec_files and pipeline_template_path exists6759 generates the pipeline config with default parallelization6760 when parallelization > 06761 generates the pipeline config6762 when parallelization > MAX_NODES_COUNT6763 generates the pipeline config with max parallelization of 506764 when knapsack_report_path is given6765 generates the pipeline config with parallelization based on Knapsack6766 and Knapsack report does not contain valid JSON6767 generates the pipeline config with default parallelization6768 when test_suite_prefix is given6769 generates the pipeline config based on the test_suite_prefix6770 when generated_pipeline_path is given6771 writes the pipeline config in the given generated_pipeline_path6772 when rspec_files does not exist6773 generates the pipeline config using the no-op template6774 when pipeline_template_path does not exist6775 generates the pipeline config using the no-op template6776projects/pages/new6777 with onboarding wizard feature enabled6778 shows the onboarding wizard6779 with onboarding wizard feature disabled6780 does not show the onboarding wizard6781 renders the usage instructions6782Gitlab::Octokit::Middleware6783 #call6784 when the URL is a public URL6785 behaves like Allowed URL6786 does not raise an error6787 with failed address check6788 behaves like Blocked URL6789 raises an error6790 with disabled dns rebinding check6791 behaves like Allowed URL6792 does not raise an error6793 when the URL is a localhost address6794 when localhost requests are not allowed6795 behaves like Blocked URL6796 raises an error6797 when localhost requests are allowed6798 behaves like Allowed URL6799 does not raise an error6800 when the URL is a local network address6801 when local network requests are not allowed6802 behaves like Blocked URL6803 raises an error6804 when local network requests are allowed6805 behaves like Allowed URL6806 does not raise an error6807 when a non HTTP/HTTPS URL is provided6808 raises an error6809notify/import_issues_csv_email.html.haml6810 # order random6811 when no errors found while importing6812 renders correctly6813 when parse error reported while importing6814 renders with parse error6815 when import errors reported6816 renders correctly6817Clusters::Kubernetes6818 is expected to be const defined :GITLAB_SERVICE_ACCOUNT_NAME6819 is expected to be const defined :GITLAB_SERVICE_ACCOUNT_NAMESPACE6820 is expected to be const defined :GITLAB_ADMIN_TOKEN_NAME6821 is expected to be const defined :GITLAB_CLUSTER_ROLE_BINDING_NAME6822 is expected to be const defined :GITLAB_CLUSTER_ROLE_NAME6823 is expected to be const defined :PROJECT_CLUSTER_ROLE_NAME6824 is expected to be const defined :GITLAB_KNATIVE_SERVING_ROLE_NAME6825 is expected to be const defined :GITLAB_KNATIVE_SERVING_ROLE_BINDING_NAME6826 is expected to be const defined :GITLAB_CROSSPLANE_DATABASE_ROLE_NAME6827 is expected to be const defined :GITLAB_CROSSPLANE_DATABASE_ROLE_BINDING_NAME6828Users::SavedReplies::DestroyService6829 #execute6830 when destroy fails6831 does not remove Saved Reply from database6832 is expected not to be success6833 when destroy succeeds6834 is expected to be success6835 removes Saved Reply from database6836 returns saved reply6837Gitlab::AuthorizedKeys6838 #accessible?6839 authorized_keys file exists6840 can open file6841 is expected to be truthy6842 cannot open file6843 is expected to be falsey6844 authorized_keys file does not exist6845 is expected to be falsey6846 #create6847 authorized_keys file exists6848 is expected to be truthy6849 authorized_keys file does not exist6850 creates authorized_keys file6851 cannot create file6852 is expected to be falsey6853 #add_key6854 authorized_keys file exists6855 adds a line at the end of the file and strips trailing garbage6856 authorized_keys file does not exist6857 creates the file6858 #batch_add_keys6859 authorized_keys file exists6860 adds lines at the end of the file6861 invalid key6862 doesn't add keys6863 authorized_keys file does not exist6864 creates the file6865 #remove_key6866 authorized_keys file exists6867 removes the right line6868 authorized_keys file does not exist6869 is expected to be falsey6870 #clear6871 authorized_keys file exists6872 is expected to be truthy6873 authorized_keys file does not exist6874 is expected to be truthy6875 #list_key_ids6876 authorized_keys file exists6877 is expected to eq [1, 2, 3, 9000]6878 authorized_keys file does not exist6879 is expected to be empty6880Ci::FindExposedArtifactsService6881 #for_pipeline6882 with jobs having no exposed artifacts6883 behaves like does not find any matches6884 returns empty array6885 with jobs having no artifacts (metadata)6886 behaves like does not find any matches6887 returns empty array6888 with jobs having at most 1 matching exposed artifact6889 behaves like finds a single match6890 returns the artifact with exact location6891 with jobs having more than 1 matching exposed artifacts6892 behaves like finds multiple matches6893 returns the path to the artifacts browser6894 with jobs having more than 1 matching exposed artifacts inside a directory6895 behaves like finds multiple matches6896 returns the path to the artifacts browser6897 with jobs having paths with glob expression6898 behaves like finds a single match6899 returns the artifact with exact location6900 limiting results6901 returns first 2 results6902 cross-project MR6903 returns the correct path for cross-project MRs6904JiraConnect::PublicKey6905 # order random6906 .create!6907 only accepts valid public keys6908 with OpenSSL::PKey::RSA object6909 behaves like creates a jira connect public key6910 generates a Uuid6911 sets the key attribute6912 persists the values6913 with string public key6914 behaves like creates a jira connect public key6915 generates a Uuid6916 sets the key attribute6917 persists the values6918 #save!6919 persists the values6920 returns itself6921 .find6922 raises an error6923 when the public key exists6924 loads the public key6925BulkImports::Common::Pipelines::LabelsPipeline6926 #run6927 imports group labels into destination group and removes tmpdir6928 #load6929 when label is not persisted6930 saves the label6931 when label is missing6932 returns6933WorkItems::Widgets::Description6934 .type6935 is expected to eq :description6936 #type6937 is expected to eq :description6938 #description6939 is expected to eq "Title"6940 #edited?6941 is expected to be truthy6942 #last_edited_at6943 is expected to eq 2023-05-23 06:44:04.861624000 +00006944 #last_edited_by6945 when the work item is edited6946 when last edited user still exists in the DB6947 is expected to eq #<User id:1144 @user653>6948 when last edited user no longer exists6949 is expected to eq #<User id:1146 @ghost>6950 when the work item is not edited yet6951 is expected to be nil6952Gitlab::Ci::Status::SuccessWarning6953 #test6954 is expected to eq "passed"6955 #label6956 is expected to eq "passed with warnings"6957 #icon6958 is expected to eq "status_warning"6959 #group6960 is expected to eq "success-with-warnings"6961 .matches?6962 when matchable subject is successful6963 when matchable subject has warnings6964 is a correct match6965 when matchable subject does not have warnings6966 does not match6967 when matchable subject is not successful6968 when matchable subject has warnings6969 does not match6970 when matchable subject does not have warnings6971 does not match6972API::Ci::Helpers::Runner6973 #get_runner_details_from_request6974 when no runner info is present6975 returns the runner IP6976 when runner info is present6977 extracts the runner details6978 #log_artifacts_filesize6979 behaves like storing arguments in the application context6980 places the expected params in the application context6981 behaves like not executing any extra queries for the application context6982 does not execute more queries than without adding anything to the application context6983Packages::Rubygems::CreateDependenciesService6984 #execute6985 creates dependencies6986 links dependencies to the package6987PrometheusAlertPresenter6988 #humanized_text6989 is expected to eq "exceeded 1.0m/s"6990 when operator is eq6991 is expected to eq "is equal to 1.0m/s"6992 when operator is lt6993 is expected to eq "is less than 1.0m/s"6994Gitlab::Ci::Config::Entry::Kubernetes6995 attributes6996 is expected to respond to #namespace6997 is expected to respond to #has_namespace?6998 validations6999 config7000 is a hash containing known keys7001 is expected to be valid7002 is a hash containing an unknown key7003 is expected not to be valid7004 is a string7005 is expected not to be valid7006 namespace7007 is a string7008 is expected to be valid7009 is a hash7010 is expected not to be valid7011 is not present7012 is expected not to be valid7013Gitlab::GitalyClient::RemoteService7014 #find_remote_root_ref7015 sends an find_remote_root_ref message and returns the root ref7016 ensure ref is a valid UTF-8 string7017 #update_remote_mirror7018 sends an update_remote_mirror message7019 .exists?7020 when the remote doesn't exist7021 returns false7022Gitlab::Metrics::Samplers::DatabaseSampler7023 behaves like metrics sampler7024 when sampling interval is passed explicitly7025 is expected to eq 427026 when sampling interval is passed through the environment7027 is expected to eq 427028 when no sampling interval is passed anywhere7029 uses the hardcoded default7030 #start7031 calls the sample method on the sampler thread7032 with warmup set to true7033 calls the sample method first on the caller thread7034 #safe_sample7035 calls #sample once7036 when sampling fails with error7037 recovers from errors7038 with logger7039 logs errors7040 #sample7041 when all base models are connected7042 samples connection pool statistics for all primaries7043 when replica hosts are configured7044 samples connection pool statistics for primaries and replicas7045 when a base model is not connected7046 records no samples for that primary7047 when the base model has replica connections7048 still records the replica metrics7049IncidentManagement::IssuableEscalationStatuses::CreateService7050 # order random7051 creates an escalation status for the incident with no policy set7052 existing escalation status7053 exits without changing anything7054license metadata tags7055 # order random7056 does not apply the with_license metadata tag by default7057 applies the without_license metadata tag by default7058 does not have a current license7059 with without_license tag7060 does not have a current license7061 with with_license tag7062 has a current license7063Users::RejectService7064 #execute7065 failures7066 when the executor user is not allowed to reject users7067 returns error result7068 when the executor user is an admin in admin mode7069 when user is not in pending approval state7070 returns error result7071 success7072 when the executor user is an admin in admin mode7073 initiates user removal7074 emails the user on rejection7075 logs rejection in application logs7076 audit events7077 when not licensed7078 does not log any audit event7079Gitlab::Ci::Config::Entry::Imageable7080 when entry value is correct7081 #valid?7082 is valid7083 when entry value is not correct7084 #errors7085 saves errors7086 #valid?7087 is not valid7088 when unexpected key is specified7089 #errors7090 saves errors7091 #valid?7092 is not valid7093Resolvers::Ci::RunnerJobsResolver7094 #resolve7095 with authorized user7096 with statuses argument7097 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-06-02 08:53:29.000000000 +0000", created_at: "2023-...rocessed: false, scheduling_type: "stage", id: 171, stage_id: 143, partition_id: 100, tag_list: nil> and #<Ci::Build status: "success", finished_at: "2023-06-02 08:53:29.000000000 +0000", created_at: "2023-...rocessed: false, scheduling_type: "stage", id: 172, stage_id: 143, partition_id: 100, tag_list: nil>7098 without statuses argument7099 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-06-02 08:53:29.000000000 +0000", created_at: "2023-...rocessed: false, scheduling_type: "stage", id: 175, stage_id: 145, partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-06-02 08:53:29.000000000 +0000", created_at: "2023-...rocessed: false, scheduling_type: "stage", id: 176, stage_id: 145, partition_id: 100, tag_list: nil>, and #<Ci::Build status: "failed", finished_at: "2023-06-02 08:53:29.000000000 +0000", created_at: "2023-0...rocessed: false, scheduling_type: "stage", id: 177, stage_id: 145, partition_id: 100, tag_list: nil>7100 with unauthorized user7101 is expected to be nil7102Ml::ExperimentTracking::HandleCandidateGitlabMetadataService7103 # order random7104 execute7105 when metadata includes gitlab.CI_JOB_ID and gitlab.CI_JOB_ID is valid7106 updates candidate correctly7107 when metadata includes gitlab.CI_JOB_ID and gitlab.CI_JOB_ID is invalid7108 raises error7109LooseIndexScan7110 loading distinct author_ids7111 when using ascending order7112 behaves like assert distinct values example7113 loads the distinct values in the correct order7114 when null values are present7115 behaves like assert distinct values example7116 loads the distinct values in the correct order7117 when using descending order7118 behaves like assert distinct values example7119 loads the distinct values in the correct order7120Gitlab::Database::LoadBalancing::Resolver7121 #resolve7122 when nameserver is an IP7123 returns an IPAddr object7124 when nameserver is not an IP7125 looks the nameserver up in the hosts file7126 when nameserver is not in the hosts file7127 looks the nameserver up in DNS7128 when nameserver is not in DNS7129 raises an exception7130 when DNS does not respond7131 raises an exception7132ProjectSerializer7133 when serializer option is :import7134 represents with ProjectImportEntity7135 when serializer option is omitted7136 represents with ProjectEntity7137Gitlab::Ci::Status::Group::Common7138 does not have action7139 has details7140 has no details_path7141Gitlab::Analytics::InternalEventsGenerator7142 # order random7143 Creating metric definition file7144 for single time frame7145 creates a metric definition file using the template7146 for ultimate only feature7147 creates a metric definition file using the template7148 with invalid time frame7149 raises error7150 with duplicated key path7151 raises error7152 without at least one tier available7153 raises error7154 with unknown tier7155 raises error7156 without obligatory parameter7157 raises error7158 with to short description7159 asks again for description7160 for multiple time frames7161 creates a metric definition file using the template7162 with default time frames7163 creates a metric definition file using the template7164 Creating known event entry7165 creates a metric definition file using the template7166 for ultimate only feature7167 creates a metric definition file using the template7168Types::Notes::NoteType7169 exposes the expected fields7170 is expected to expose permissions using Types::PermissionTypes::Note7171 is expected to require graphql authorizations :read_note7172AuthorizedProjectUpdate::ProjectRecalculateWorker7173 is labeled as high urgency7174 is labeled as idempotent7175 performs multiple times sequentially without raising an exception7176 does not change authorizations when run twice7177 #perform7178 does not fail if the project does not exist7179 calls AuthorizedProjectUpdate::ProjectRecalculateService7180 exclusive lease7181 when exclusive lease has not been taken7182 obtains a new exclusive lease7183 when exclusive lease has already been taken7184 raises an error7185Snippets::CountService7186 #new7187 raises an error if no author or project7188 uses the SnippetsFinder to scope snippets by user7189 allows scoping to project7190 #execute7191 returns a hash of counts7192 only counts snippets the user has access to7193 returns an empty hash if select returns nil7194Groups::ObservabilityHelper7195 # order random7196 #observability_iframe_src7197 returns the iframe src for action: dashboards7198 returns the iframe src for action: manage7199 returns the iframe src for action: explore7200 returns the iframe src for action: datasources7201 returns the iframe src when action is not recognised7202 returns the iframe src when observability_path is missing7203 #observability_page_title7204 returns the title for action: dashboards7205 returns the title for action: manage7206 returns the title for action: explore7207 returns the title for action: datasources7208 returns the default title for unknown action7209Ensure kramdown detects invalid syntax highlighting formatters7210 with invalid formatter7211 falls back to standard HTML and disallows CSV7212 with valid formatter7213 allows formatter7214Gitlab::Config::Loader::MultiDocYaml7215 # order random7216 #load!7217 when a simple single delimiter is being used7218 returns the loaded YAML with all keys as symbols7219 when the delimiter has a trailing configuration7220 returns the loaded YAML with all keys as symbols7221 when the YAML file has a leading delimiter7222 returns the loaded YAML with all keys as symbols7223 when the delimiter is followed by content on the same line7224 loads the content as part of the document7225 when the delimiter does not have trailing whitespace7226 is not a valid delimiter7227 when the YAML file has whitespace preceding the content7228 loads everything correctly7229 when the YAML file is empty7230 returns an empty array7231 when there are more than the maximum number of documents7232 stops splitting documents after the maximum number7233 when the YAML contains empty documents7234 raises an error7235 when reject_empty: true7236 loads only non empty documents7237 #valid?7238 when a document is invalid7239 returns false7240 when the number of documents is below the maximum and all documents are valid7241 returns true7242 #load_raw!7243 returns the loaded YAML with all keys as strings7244Types::WorkItems::NotesFilterTypeEnum7245 # order random7246 exposes all the existing widget type values7247 is expected to eq "NotesFilterType"7248Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies7249 .for7250 returns the right class for `until_executing`7251 returns the right class for `until_executed`7252 returns the right class for `none`7253 raises an UnknownStrategyError when passing an unknown key7254Mutations::Pages::MarkOnboardingComplete7255 #resolve7256 when the current user has access to update pages7257 calls mark_pages_onboarding_complete on the project7258 returns onboarding_complete state7259 returns no errors7260 when the current user doesn't have access to update pages7261 raises an error7262API::Entities::Nuget::SearchResult7263 is expected to eq {:@type=>"Package", :authors=>"Author", :iconUrl=>"http://sandbox.com/icon", :id=>"PackageTest", :lic..."1.2.3", :versions=>[{:@id=>"http://sandbox.com/json/package", :downloads=>100, :version=>"1.2.3"}]}7264Gitlab::FogbugzImport::ProjectCreator7265 creates project with private visibility level7266 creates project with provided name and path7267RecoverableByAnyEmail7268 # order random7269 .send_reset_password_instructions7270 with user primary email7271 behaves like sends the password reset email7272 finds the user7273 sends the email7274 with user verified email7275 behaves like sends the password reset email7276 finds the user7277 sends the email7278 with user unverified email7279 behaves like does not send the password reset email7280 does not find the user7281 does not send any email7282 #send_reset_password_instructions7283 sends the email7284 calls send_reset_password_instructions_notification with correct arguments7285 returns the generated token7286FlushCounterIncrementsWorker7287 #perform7288 commits increments to database7289 when model class does not exist7290 does nothing7291 when record does not exist7292 does nothing7293AfterCommitQueue7294 #run_after_commit7295 runs after record is saved7296 runs after transaction is committed7297 #run_after_commit_or_now7298 runs immediately if not within a transction7299 runs after transaction has completed7300 multiple databases - Ci::ApplicationRecord models7301 runs immediately if not within a transaction7302 runs after transaction has completed7303Tooling::Helm3Client7304 #releases7305Running command: `helm list --max 256 --offset 0 --output json`7306 raises an error if the Helm command fails7307Running command: `helm list --max 256 --offset 0 --output json`7308Ignoring this JSON parsing error: unexpected token at ''7309Response was:7310 calls helm list with default arguments7311Running command: `helm list --max 256 --offset 0 --output json --deployed`7312Ignoring this JSON parsing error: unexpected token at ''7313Response was:7314 calls helm list with extra arguments7315Running command: `helm list --max 256 --offset 0 --output json --deployed`7316Running command: `helm list --max 256 --offset 256 --output json --deployed`7317 returns a list of Release objects7318Running command: `helm list --max 256 --offset 0 --output json`7319Running command: `helm list --max 256 --offset 256 --output json`7320Running command: `helm list --max 256 --offset 512 --output json`7321 automatically paginates releases7322 #delete7323Running command: `helm uninstall --namespace my-release my-release`7324 raises an error if the Helm command fails7325Running command: `helm uninstall --namespace my-release my-release`7326 calls helm uninstall with default arguments7327 with multiple release names7328Running command: `helm uninstall --namespace my-release my-release`7329 raises an error if the Helm command fails7330Running command: `helm uninstall --namespace namespace my-release`7331Running command: `helm uninstall --namespace namespace my-release-2`7332 calls helm uninstall with multiple release names and a namespace7333Running command: `helm uninstall --namespace my-release my-release`7334Running command: `helm uninstall --namespace my-release-2 my-release-2`7335 calls helm uninstall with multiple release names and no namespace7336Gitlab::Ci::Build::Credentials::Factory7337 when provider is valid7338 generates an array of credentials objects7339 when provider is not valid7340 generates an array without specific credential object7341Snippets::UpdateRepositoryStorageWorker7342 behaves like an update storage move worker7343 has the `until_executed` deduplicate strategy7344 #perform7345 without repository storage move7346 calls the update repository storage service7347 with repository storage move7348 calls the update repository storage service7349Integrations::SlackInteractions::IncidentManagement::IncidentModalOpenedService7350 # order random7351 #execute7352 when triggered7353 opens the modal7354 when there are no projects with slack integration7355 does not open the modal7356 when Slack API call raises an HTTP exception7357 tracks the exception and returns an error response7358 when api returns an error7359 returns error when called7360Gitlab::Search::Query7361 is expected to be < SimpleDelegator7362 leaves undefined filters in the main query7363 parses filters7364 with an empty filter7365 ignores empty filters7366 with a pipe7367 does not escape the pipe7368 with an exclusive filter7369 negates the filter7370 with filter value in quotes7371 does not break the filter value in quotes7372 with extra white spaces between the query words7373 removes the extra whitespace between tokens7374 with mutliple filename filters7375 creates a filter for each filename in query7376 when multiple extension filters are added7377 creates a filter for each filename and extension in query7378RuboCop::Cop::Migration::DropTable7379 # order random7380 when in post-deployment migration7381 registers no offense7382 when outside of migration7383 registers no offense7384 when in deployment migration7385 with drop_table DSL method7386 when in down method7387 does not register an offense7388 when in up method7389 registers an offense7390 when in change method7391 registers an offense7392 with DROP TABLE SQL literal7393 does not register an offense7394 when in up method7395 registers an offense7396 when in change method7397 registers an offense7398CustomerRelations::Organizations::CreateService7399 #execute7400 creates a crm_organization7401 returns an error when user does not have permission7402 returns an error when the crm_organization is not persisted7403Gitlab::Diff::Formatters::TextFormatter7404 behaves like position formatter7405 #key7406 is expected to eq [123, 456, 789, "35bd01186d18c9f4842e2f377cc780a95bab7bcf", "02fa17b1a8378a17c3103dc5a6cb16a5f73a1433", 1, 2]7407 #complete?7408 when there are missing key attributes7409 is expected to be truthy7410 when old_line and new_line are nil7411 is expected to be falsy7412 #to_h7413 is expected to eq {:base_sha=>123, :head_sha=>789, :ignore_whitespace_change=>false, :line_range=>nil, :new_line=>2, :n...h=>"new_path.txt", :old_line=>1, :old_path=>"old_path.txt", :position_type=>"text", :start_sha=>456}7414 #==7415 is expected to eq #<Gitlab::Diff::Formatters::TextFormatter:0x00007fefefa585e8 @old_line=1, @new_line=2, @line_range=ni...e, @old_path="old_path.txt", @new_path="new_path.txt", @base_sha=123, @start_sha=456, @head_sha=789>7416 #line_age7417 when there is only new_line7418 is expected to eq "new"7419 when there is only old_line7420 is expected to eq "old"7421 #==7422 is false when the line_range changes7423 is true when the line_range doesn't change7424Gitlab::Database::SchemaValidation::SchemaObjects::Table7425 # order random7426 #column_exists?7427 is expected to eq true7428 is expected to eq false7429 #fetch_column_by_name7430 is expected not to be nil7431 is expected to be nil7432 #statement7433 is expected to eq "CREATE TABLE my_table (id bigint NOT NULL, col text)"7434 ignores the partition column7435 #name7436 is expected to eq "my_table"7437 #table_name7438 is expected to eq "my_table"7439Gitlab::Database::Type::SymbolizedJsonb7440 # order random7441 #deserialize7442 json: nil, value: nil7443 is expected to match nil7444 json: "{\"key\":\"value\"}", value: {:key=>"value"}7445 is expected to match {:key=>"value"}7446 json: "{\"key\":[1,2,3]}", value: {:key=>[1, 2, 3]}7447 is expected to match {:key=>[1, 2, 3]}7448 json: "{\"key\":{\"subkey\":\"value\"}}", value: {:key=>{:subkey=>"value"}}7449 is expected to match {:key=>{:subkey=>"value"}}7450 json: "{\"key\":{\"a\":[{\"b\":\"c\"},{\"d\":\"e\"}]}}", value: {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}7451 is expected to match {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}7452 when used by a model7453 is expected to match {:key=>"value"}7454 ignores changes to other attributes7455 tracks changes to options7456Gitlab::Favicon7457 .main7458 defaults to favicon.png7459 has yellow favicon for canary7460 uses the custom favicon if a favicon appearance is present7461 asset host7462 returns a relative url when the asset host is not configured7463 returns a full url when the asset host is configured7464 .ci_status_overlay7465 returns the overlay for the status7466 .mr_status_overlay7467 returns the overlay for the status7468 .available_status_names7469 returns the available status names7470Gitlab::Email::Hook::SilentModeInterceptor7471 # order random7472 when silent mode is enabled7473 prevents mail delivery7474 logs the suppression7475 when silent mode is disabled7476 does not prevent mail delivery7477 debug logs the no-op7478BulkImports::Projects::Pipelines::PipelineSchedulesPipeline7479 imports schedule into destination project7480 is active7481 imports the schedule but active is false7482UserProjectAccessChangedService7483 #execute7484 permits high-priority operation7485 permits medium-priority operation7486 sets the current caller_id as related_class in the context of all the enqueued jobs7487 for low priority operation7488 does not perform low-priority operation7489 when the feature flag `do_not_run_safety_net_auth_refresh_jobs` is disabled7490 permits low-priority operation7491 with load balancing enabled7492 sticks all the updated users and returns the original result7493 avoids N+1 cached queries7494projects/milestones/index.html.haml7495 behaves like milestone empty states7496 with no milestones7497 shows empty state7498 does not show tabs or searchbar7499 with no open milestones7500 shows tabs and searchbar7501 shows empty state7502 with no closed milestones7503 shows tabs and searchbar7504 shows empty state on closed milestones7505Ml::CandidateMetadata7506 # order random7507 uniqueness of name7508 is unique within candidate7509 associations7510 is expected to belong to candidate required: false7511Users::SavedReply7512 validations7513 is expected to validate that :user_id cannot be empty/falsy7514 is expected to validate that :name cannot be empty/falsy7515 is expected to validate that :content cannot be empty/falsy7516 is expected to validate that :name is case-sensitively unique within the scope of :user_id7517 is expected to validate that the length of :name is at most 2557518 is expected to validate that the length of :content is at most 100007519validate puma7520 for .com7521 when worker count is 07522 is expected to raise String7523 when worker count is > 07524 is expected not to raise Exception7525 for other environments7526 when worker count is 07527 is expected not to raise Exception7528 warns about running Puma in a Single mode7529 when worker count is > 07530 is expected not to raise Exception7531 does not issue a warning7532Gitlab::Middleware::MemoryReport7533 #call7534 when the Rails environment is not development7535 behaves like returns original response7536 returns original response7537 does not call the MemoryProfiler7538 when the Rails environment is development7539 when memory report is not requested7540 behaves like returns original response7541 returns original response7542 does not call the MemoryProfiler7543 when memory report is requested7544 returns a memory report7545 when something goes wrong with creating the report7546 logs the error7547 returns the error7548Security::CiConfiguration::SecretDetectionBuildAction7549 with existing .gitlab-ci.yml7550 secret_detection has not been included7551 template includes are an array7552 generates the correct YML7553 template include is not an array7554 generates the correct YML7555 secret_detection has been included7556 secret_detection template include are an array7557 generates the correct YML7558 secret_detection template include is not an array7559 generates the correct YML7560 with no .gitlab-ci.yml7561 autodevops disabled7562 generates the correct YML7563 with autodevops enabled7564 generates the correct YML7565shared/milestones/_issuables.html.haml7566 shows the issuables count if show_counter is true7567 does not show the issuables count if show_counter is false7568 a high issuables count7569 shows a delimited number if show_counter is true7570API::Helpers::LabelHelpers7571 create_service_params7572 when a project is given7573 returns the expected params7574 when a group is given7575 returns the expected params7576 when something else is given7577 raises a type error7578Notes::NoteMetadata7579 # order random7580 associations7581 is expected to belong to note required: false7582 callbacks7583 with before_save :ensure_email_participant_length7584 when email length is > 2557585 rewrites the email within max length7586 when email is within permissible length7587 saves the email as-is7588WorkItems::HierarchyRestriction7589 # order random7590 validations7591 is expected to validate that :parent_type cannot be empty/falsy7592 is expected to validate that :child_type cannot be empty/falsy7593 is expected to validate that :child_type is case-sensitively unique within the scope of :parent_type_id7594 associations7595 is expected to belong to parent_type required: false7596 is expected to belong to child_type required: false7597Keys::CreateService7598 creates a key7599 notification7600 sends a notification7601Gitlab::Tracking::Destinations::Snowplow7602 when snowplow is enabled7603 #event7604 sends event to tracker7605 increase total snowplow events counter7606 when snowplow is not enabled7607 #event7608 does not send event to tracker7609 callbacks7610 on success7611 increase gitlab_successful_snowplow_events_total counter7612 on failure7613 increase gitlab_failed_snowplow_events_total counter and logs failures7614BulkImports::Common::Extractors::JsonExtractor7615 #extract7616 returns ExtractedData7617 #remove_tmpdir7618 removes tmp dir7619Gitlab::Diff::PairSelector7620 #to_a7621 finds all pairs7622 when there are empty lines7623 is expected not to raise Exception7624 when there are only removals7625 returns empty collection7626 when there are only additions7627 returns empty collection7628 when there are no changes7629 returns empty collection7630Clusters::Agents::DeleteExpiredEventsWorker7631 #perform7632 calls the deletion service7633 agent no longer exists7634 completes without raising an error7635Gitlab::JWTToken7636 behaves like a gitlab jwt token7637 #secret7638 is expected to eq "a37f7a5854afd5c07164ad17c05c254109fc5fcf00046ec41fef68d689fdf086"7639 #decode7640 with a custom payload7641 returns the correct token7642 returns nil and logs the exception after expiration7643ResolvesGroups7644 avoids N+1 queries on the fields marked with lookahead7645Ci::DisableUserPipelineSchedulesService7646 #execute7647 when user has active pipeline schedules7648 disables all active pipeline schedules7649Preloaders::CommitStatusPreloader7650 #execute7651 prevents N+1 for specified relations7652Gitlab::ApplicationRateLimiter::IncrementPerActionedResource7653 #increment7654 increments per resource7655 sets time to live (TTL) for the key7656 #read7657 returns 0 when there is no data7658 returns the correct value7659registrations/welcome/show7660 is expected not to have visible css "label[for=\"user_setup_for_company\"]"7661 is expected to have visible button "Get started!" that is not disabled7662 is expected not to have visible css "input[name=\"user[email_opted_in]\"]"7663Gitlab::Ci::Parsers::Accessibility::Pa11y7664 #parse!7665 when data is pa11y style JSON7666 when there are no URLs provided7667 returns an accessibility report7668 when there are no errors7669 returns an accessibility report7670 when there are errors7671 returns an accessibility report7672 when data is not a valid JSON string7673 sets error_message7674Gitlab::WordDiff::PositionsCounter7675 Initial state7676 starts with predefined values7677 #increase_pos_num7678 increases old and new positions7679 #increase_obj_index7680 increases object index7681 #set_pos_num7682 sets old and new positions7683Gitlab::DataBuilder::ArchiveTrace7684 .build7685 has correct attributes7686Types::Kas::AgentConfigurationType7687 is expected to eq "AgentConfiguration"7688 is expected to eq "Configuration details for an Agent"7689 is expected to have graphql fields :agent_name7690GroupDeployKeyPolicy7691 edit a group deploy key7692 when the user does not own the group deploy key7693 is expected to be disallowed :update_group_deploy_key7694 when the user owns the group deploy key7695 is expected to be allowed :update_group_deploy_key7696Gitlab::Metrics::Dashboard::Stages::MetricEndpointInserter7697 #transform!7698 generates prometheus_endpoint_path without newlines7699 includes a path for the prometheus endpoint with each metric7700 works when query/query_range is a number7701time travel7702 :freeze_time7703 freezes time around a spec example7704 :time_travel_to7705 time-travels to the specified date7706 time-travels to the specified date & time7707Sidebars::UserSettings::Panel7708 # order random7709 implements #super_sidebar_context_header7710 behaves like a panel with uniquely identifiable menu items7711 all menu_items have unique item_id7712 all menu_items have an item_id7713Types::BoardType7714 is expected to eq "Board"7715 is expected to require graphql authorizations :read_issue_board7716 has specific fields7717Gitlab::CrossProjectAccess::CheckCollection7718 #add_collection7719 merges the checks of 2 collections7720 #should_run?7721 returns true if one of the check says it should run7722 returns false if one of the check says it should be skipped7723Sidebars::Projects::Menus::ExternalWikiMenu7724 does not contain any sub menu7725 #render?7726 when active external issue tracker7727 is present7728 returns true7729 is not present7730 returns false7731Gitlab::Search::SortOptions7732 .sort_and_direction7733 using order_by and sort7734 returns matched options7735 using just sort7736 returns matched options7737 when unknown option7738 returns unknown7739Gitlab::Email::Message::InProductMarketing::AdminVerify7740 public methods7741 returns value for series7742 #progress7743 on gitlab.com7744 is expected to eq "This is email 1 of 1 in the Admin series."7745 not on gitlab.com7746 is expected to include "This is email 1 of 1 in the Admin series" and "http://localhost/-/profile/notifications"7747Gitlab::GrapeLogging::Loggers::FilterParameters7748 # order random7749 .parameters7750 when the log_safety setting is provided7751 includes safe parameters, and filters unsafe ones7752 when the log_safety is not provided7753 behaves like the normal parameter filter7754API::Entities::Changelog7755 exposes correct attributes7756 exposes correct notes7757Gitlab::Chat7758 .available?7759 returns true when the chatops feature is available7760 returns false when the chatops feature is not available7761RuboCop::Cop::AvoidRouteRedirectLeadingSlash7762 # order random7763 does not register an offense when redirect does not have a leading slash7764 registers an offense when redirect has a leading slash and corrects7765Types::BranchType7766 is expected to eq "Branch"7767 is expected to have graphql fields :name and :commit7768BulkImports::Common::Extractors::GraphqlExtractor7769 #extract7770 returns ExtractedData7771Types::CommitEncodingEnum7772 is expected to eq "CommitEncoding"7773 exposes all the existing encoding option7774Types::Clusters::Agents::Authorizations::UserAccessType7775 # order random7776 is expected to have graphql fields :agent and :config7777 is expected to eq "ClusterAgentAuthorizationUserAccess"7778JiraConnect::GroupEntity7779 contains all necessary elements of the group7780Banzai::Filter::OutputSafety7781 when given HTML is safe7782 returns safe HTML7783 when given HTML is not safe7784 returns escaped HTML7785ScheduleMigrateExternalDiffsWorker7786 #perform7787 triggers a scan for diffs to migrate7788 will not run if the lease is already taken7789FileHookWorker7790 #perform7791 executes Gitlab::FileHook with expected values7792 logs message in case of file_hook execution failure7793RuboCop::QAHelpers7794 # order random7795 #in_qa_file?7796 returns true for a node in the qa/ directory7797 returns false for a node outside the qa/ directory7798API::Entities::UserCounts7799 # order random7800 represents user counts7801Gitlab::GithubImport::ImportCollaboratorWorker7802 # order random7803 #import7804 imports a collaborator7805Routing::PackagesHelper7806 # order random7807 #package_path7808 creates package's path7809Gitlab::Usage::Metrics::Instrumentations::UuidMetric7810 behaves like a correct instrumented metric value7811 has correct value7812TodosDestroyer::ProjectPrivateWorker7813 calls the Todos::Destroy::ProjectPrivateService with the params it was given7814Gitlab::Asciidoc::Html5Converter7815 convert AsciiDoc to HTML57816 appends user-content- prefix on ref (anchor)7817Bitbucket::Paginator7818 items7819 return items and raises StopIteration in the end7820Types::DependencyProxy::ManifestType7821 includes dependency proxy manifest fields7822Types::Ci::AnalyticsType7823 exposes the expected fields7824MemberPresenter7825 # order random7826 #last_owner?7827 raises `NotImplementedError`7828CreateMergeRequestDiscussion7829 # order random7830 #execute7831 requests commit_merge_requests from the gitlab client7832AuthorizedProjectUpdate::ProjectAccessChangedService7833 #execute7834 executes projects_authorizations refresh7835Knapsack report was generated. Preview:7836{7837 "spec/db/migration_spec.rb": 80.269649088,7838 "spec/services/git/branch_push_service_spec.rb": 94.89876359499999,7839 "spec/models/namespace/traversal_hierarchy_spec.rb": 94.13091015399993,7840 "spec/models/work_items/parent_link_spec.rb": 50.98176569399993,7841 "spec/helpers/projects_helper_spec.rb": 26.306756451999945,7842 "spec/uploaders/file_uploader_spec.rb": 34.427488615000016,7843 "spec/lib/gitlab/rack_attack/request_spec.rb": 6.436778887999935,7844 "spec/lib/gitlab/utils/strong_memoize_spec.rb": 22.789900501000034,7845 "spec/services/members/approve_access_request_service_spec.rb": 35.29717801100003,7846 "spec/services/ci/job_artifacts/destroy_all_expired_service_spec.rb": 27.441744678000077,7847 "spec/tasks/gitlab/seed/group_seed_rake_spec.rb": 50.087332776999915,7848 "spec/services/repositories/changelog_service_spec.rb": 36.14588490499989,7849 "spec/lib/gitlab/git_access_wiki_spec.rb": 11.441798327000015,7850 "spec/models/concerns/token_authenticatable_spec.rb": 11.102181889000121,7851 "spec/models/concerns/cache_markdown_field_spec.rb": 4.630946047000066,7852 "spec/presenters/commit_status_presenter_spec.rb": 16.61009917800004,7853 "spec/lib/banzai/reference_parser/user_parser_spec.rb": 12.928355107000016,7854 "spec/graphql/resolvers/namespace_projects_resolver_spec.rb": 22.100707342999954,7855 "spec/services/ci/play_build_service_spec.rb": 14.707671776999973,7856 "spec/lib/error_tracking/sentry_client/issue_spec.rb": 6.842513080999993,7857 "spec/models/terraform/state_version_spec.rb": 16.959150244999933,7858 "spec/lib/gitlab/current_settings_spec.rb": 11.092741753999917,7859 "spec/models/prometheus_metric_spec.rb": 3.676620909999997,7860 "spec/services/merge_requests/conflicts/list_service_spec.rb": 14.918052497999952,7861 "spec/lib/gitlab/gfm/uploads_rewriter_spec.rb": 12.74585824899998,7862 "spec/lib/gitlab/legacy_github_import/issue_formatter_spec.rb": 3.576764646000015,7863 "spec/policies/user_policy_spec.rb": 3.7261922010000035,7864 "spec/services/merge_requests/remove_approval_service_spec.rb": 9.342423005,7865 "spec/lib/gitlab/ci/reports/test_suite_spec.rb": 2.749421886999926,7866 "spec/models/alert_management/http_integration_spec.rb": 5.331536344999904,7867 "spec/lib/gitlab/git/tag_spec.rb": 6.506283826000072,7868 "spec/lib/gitlab/zentao/client_spec.rb": 8.514165539000032,7869 "spec/helpers/appearances_helper_spec.rb": 6.942733626999825,7870 "spec/lib/gitlab/ci/badge/release/metadata_spec.rb": 8.699883840999973,7871 "spec/lib/gitlab/metrics/dashboard/finder_spec.rb": 5.895042208999939,7872 "spec/lib/gitlab/diff/diff_refs_spec.rb": 8.391594040999962,7873 "spec/services/notes/copy_service_spec.rb": 7.966220560000011,7874 "spec/lib/gitlab/ci/build/auto_retry_spec.rb": 4.7016983329999675,7875 "spec/lib/gitlab/ci/config/entry/root_spec.rb": 1.852827267000066,7876 "spec/services/metrics/dashboard/dynamic_embed_service_spec.rb": 5.835005418000037,7877 "spec/lib/security/weak_passwords_spec.rb": 2.371849093000037,7878 "spec/lib/gitlab/diff/rendered/notebook/diff_file_spec.rb": 5.21823663799978,7879 "spec/lib/gitlab/auth/saml/user_spec.rb": 5.836093192999897,7880 "spec/lib/gitlab/memory/reporter_spec.rb": 2.817380571000058,7881 "spec/services/merge_requests/reload_diffs_service_spec.rb": 7.323339665999811,7882 "spec/lib/gitlab/cleanup/orphan_lfs_file_references_spec.rb": 6.647121435999907,7883 "spec/lib/gitlab/runtime_spec.rb": 1.9670047270001305,7884 "spec/workers/auto_devops/disable_worker_spec.rb": 6.308227261999946,7885 "spec/tasks/gitlab/smtp_rake_spec.rb": 4.081878507000056,7886 "spec/services/files/create_service_spec.rb": 7.419762836000018,7887 "spec/graphql/mutations/incident_management/timeline_event/update_spec.rb": 6.441960940999934,7888 "spec/lib/gitlab/ci/trace/checksum_spec.rb": 8.922575397000173,7889 "spec/services/resource_events/synthetic_label_notes_builder_service_spec.rb": 5.072683977999986,7890 "spec/services/merge_requests/reload_merge_head_diff_service_spec.rb": 5.473545408000064,7891 "spec/lib/gitlab/database/background_migration/prometheus_metrics_spec.rb": 3.9449141240002064,7892 "spec/models/review_spec.rb": 3.744296459999987,7893 "spec/lib/security/ci_configuration/sast_build_action_spec.rb": 0.9929942420001225,7894 "spec/tasks/gitlab/db/lock_writes_rake_spec.rb": 3.5115411209999365,7895 "spec/lib/sbom/package_url/encoder_spec.rb": 1.494406662000074,7896 "spec/models/integrations/emails_on_push_spec.rb": 2.738696269000002,7897 "spec/helpers/projects/error_tracking_helper_spec.rb": 2.528730837000012,7898 "spec/lib/gitlab/hotlinking_detector_spec.rb": 1.377809133000028,7899 "spec/lib/gitlab/identifier_spec.rb": 1.3128370649999397,7900 "spec/models/identity_spec.rb": 1.638318677000143,7901 "spec/finders/milestones_finder_spec.rb": 1.918539896000084,7902 "spec/policies/achievements/user_achievement_policy_spec.rb": 4.643115758000022,7903 "spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb": 3.9179998779998186,7904 "spec/lib/gitlab/prometheus/additional_metrics_parser_spec.rb": 1.207379044000163,7905 "spec/lib/gitlab/config/entry/factory_spec.rb": 0.8940572899998642,7906 "spec/lib/gitlab/ci/jwt_spec.rb": 1.8540705379998599,7907 "spec/workers/ci/pipeline_success_unlock_artifacts_worker_spec.rb": 4.123157831999833,7908 "spec/tasks/gitlab/praefect_rake_spec.rb": 4.931210876000023,7909 "spec/lib/bitbucket/representation/issue_spec.rb": 1.1461265249999997,7910 "spec/services/boards/create_service_spec.rb": 2.0700066499998684,7911 "spec/helpers/users/callouts_helper_spec.rb": 2.8548766379999506,7912 "spec/lib/gitlab_settings/options_spec.rb": 1.032458305000091,7913 "spec/workers/projects/inactive_projects_deletion_notification_worker_spec.rb": 0.6961597960000745,7914 "spec/services/ci/generate_coverage_reports_service_spec.rb": 4.163902043999997,7915 "spec/lib/gitlab/metrics/sli_spec.rb": 2.6434459569998126,7916 "spec/models/protected_branch/merge_access_level_spec.rb": 1.4799541160000445,7917 "spec/tooling/danger/feature_flag_spec.rb": 1.029744221999863,7918 "spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_sent_metric_spec.rb": 4.595999284000072,7919 "spec/lib/bulk_imports/common/pipelines/lfs_objects_pipeline_spec.rb": 3.9035045859998263,7920 "spec/lib/object_storage/pending_direct_upload_spec.rb": 0.7446151840001676,7921 "spec/lib/gitlab/git/conflict/file_spec.rb": 0.5395394990000568,7922 "spec/workers/ci/job_artifacts/track_artifact_report_worker_spec.rb": 1.383881545999884,7923 "spec/lib/gitlab/checks/push_check_spec.rb": 4.735866823999913,7924 "spec/lib/gitlab/database/async_indexes/index_destructor_spec.rb": 0.8808881830000246,7925 "spec/workers/merge_request_mergeability_check_worker_spec.rb": 5.110626944999922,7926 "spec/lib/gitlab/graphql/present/field_extension_spec.rb": 0.6282774030000837,7927 "spec/lib/gitlab/marker_range_spec.rb": 0.8821990240001014,7928 "spec/services/dependency_proxy/auth_token_service_spec.rb": 0.8311501470000167,7929 "spec/lib/gitlab/github_import/importer/events/changed_reviewer_spec.rb": 2.7861686199998985,7930 "spec/models/analytics/usage_trends/measurement_spec.rb": 1.0088353539999844,7931 "spec/models/integrations/chat_message/deployment_message_spec.rb": 2.219960153000102,7932 "spec/workers/packages/rubygems/extraction_worker_spec.rb": 1.1731040510001094,7933 "spec/workers/concerns/limited_capacity/job_tracker_spec.rb": 0.5169387500000084,7934 "spec/workers/issues/rebalancing_worker_spec.rb": 1.4759457479999583,7935 "spec/graphql/mutations/clusters/agents/create_spec.rb": 3.485399927000117,7936 "spec/services/ci/job_artifacts/destroy_associations_service_spec.rb": 3.5381681240000944,7937 "spec/workers/delete_user_worker_spec.rb": 2.2141560430000027,7938 "spec/services/jira_import/cloud_users_mapper_service_spec.rb": 3.532869804000029,7939 "spec/services/labels/update_service_spec.rb": 2.965825816000006,7940 "spec/initializers/settings_spec.rb": 2.392230339999969,7941 "spec/workers/ci/pending_builds/update_project_worker_spec.rb": 2.9026916819998405,7942 "spec/lib/gitlab/usage/service_ping/legacy_metric_metadata_decorator_spec.rb": 0.9884116850000737,7943 "spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb": 1.2892013829998632,7944 "spec/lib/gitlab/usage_data_counters/note_counter_spec.rb": 0.8442468860000645,7945 "spec/lib/gitlab/middleware/request_context_spec.rb": 0.3886491799999021,7946 "spec/lib/gitlab/ci/reports/security/scanner_spec.rb": 1.0598116310000023,7947 "spec/finders/user_groups_counter_spec.rb": 1.4127829839999322,7948 "spec/models/issue_email_participant_spec.rb": 1.4025480249999873,7949 "spec/lib/gitlab/ci/build/rules/rule_spec.rb": 3.161300436999909,7950 "spec/scripts/generate_rspec_pipeline_spec.rb": 0.6622358299998723,7951 "spec/views/projects/pages/new.html.haml_spec.rb": 1.6689194119999229,7952 "spec/lib/gitlab/octokit/middleware_spec.rb": 1.019883560999915,7953 "spec/views/notify/import_issues_csv_email.html.haml_spec.rb": 2.214646858000151,7954 "spec/services/clusters/kubernetes_spec.rb": 0.7048696140000175,7955 "spec/services/users/saved_replies/destroy_service_spec.rb": 1.06382157500002,7956 "spec/lib/gitlab/authorized_keys_spec.rb": 0.9102751059999719,7957 "spec/services/ci/find_exposed_artifacts_service_spec.rb": 2.345874419999973,7958 "spec/models/jira_connect/public_key_spec.rb": 1.7458350720000908,7959 "spec/lib/bulk_imports/common/pipelines/labels_pipeline_spec.rb": 1.2788842160000513,7960 "spec/models/work_items/widgets/description_spec.rb": 1.219511673999932,7961 "spec/lib/gitlab/ci/status/success_warning_spec.rb": 0.6277126850000059,7962 "spec/lib/api/ci/helpers/runner_helpers_spec.rb": 1.528359731999899,7963 "spec/services/packages/rubygems/create_dependencies_service_spec.rb": 0.9746179769999799,7964 "spec/presenters/prometheus_alert_presenter_spec.rb": 0.738432118999981,7965 "spec/lib/gitlab/ci/config/entry/kubernetes_spec.rb": 0.5915395090000857,7966 "spec/lib/gitlab/gitaly_client/remote_service_spec.rb": 1.69849335899994,7967 "spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb": 1.0077943030000824,7968 "spec/services/incident_management/issuable_escalation_statuses/create_service_spec.rb": 0.8514573239999663,7969 "spec/support_specs/license_metadata_tags_spec.rb": 0.47811628499994185,7970 "spec/services/users/reject_service_spec.rb": 1.800675844000125,7971 "spec/lib/gitlab/ci/config/entry/imageable_spec.rb": 0.46615162700004475,7972 "spec/graphql/resolvers/ci/runner_jobs_resolver_spec.rb": 2.067323217999956,7973 "spec/services/ml/experiment_tracking/handle_candidate_gitlab_metadata_service_spec.rb": 2.2440394239999932,7974 "spec/models/concerns/loose_index_scan_spec.rb": 2.401548782999953,7975 "spec/lib/gitlab/database/load_balancing/resolver_spec.rb": 0.48292874499998106,7976 "spec/serializers/project_serializer_spec.rb": 0.5425503270000718,7977 "spec/lib/gitlab/ci/status/group/common_spec.rb": 0.3458066630000758,7978 "spec/lib/generators/gitlab/analytics/internal_events_generator_spec.rb": 0.8356071050000082,7979 "spec/graphql/types/notes/note_type_spec.rb": 0.3572807919999832,7980 "spec/workers/authorized_project_update/project_recalculate_worker_spec.rb": 1.2693802669998604,7981 "spec/services/snippets/count_service_spec.rb": 1.742736973000092,7982 "spec/helpers/groups/observability_helper_spec.rb": 0.7814149230000567,7983 "spec/lib/kramdown/kramdown_spec.rb": 0.324437565999915,7984 "spec/lib/gitlab/config/loader/multi_doc_yaml_spec.rb": 2.3638033070001256,7985 "spec/graphql/types/work_items/notes_filter_type_enum_spec.rb": 0.3292616649998763,7986 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies_spec.rb": 0.39998657499995716,7987 "spec/graphql/mutations/pages/mark_onboarding_complete_spec.rb": 1.420916975999944,7988 "spec/lib/api/entities/nuget/search_result_spec.rb": 0.28369336099990505,7989 "spec/lib/gitlab/fogbugz_import/project_creator_spec.rb": 1.669505221999998,7990 "spec/models/concerns/recoverable_by_any_email_spec.rb": 1.0303105699999833,7991 "spec/workers/flush_counter_increments_worker_spec.rb": 1.4399097830000755,7992 "spec/models/concerns/after_commit_queue_spec.rb": 1.245360311000013,7993 "spec/tooling/lib/tooling/helm3_client_spec.rb": 0.6088542869999856,7994 "spec/lib/gitlab/ci/build/credentials/factory_spec.rb": 1.3885471109999799,7995 "spec/workers/snippets/update_repository_storage_worker_spec.rb": 1.085692052000013,7996 "spec/services/integrations/slack_interactions/incident_management/incident_modal_opened_service_spec.rb": 1.3035197920000883,7997 "spec/lib/gitlab/search/query_spec.rb": 0.6703776090000702,7998 "spec/rubocop/cop/migration/drop_table_spec.rb": 0.7220697010000094,7999 "spec/services/customer_relations/organizations/create_service_spec.rb": 1.2215192230000866,8000 "spec/lib/gitlab/diff/formatters/text_formatter_spec.rb": 0.5792425409999851,8001 "spec/lib/gitlab/database/schema_validation/schema_objects/table_spec.rb": 0.6010897580001711,8002 "spec/lib/gitlab/database/type/symbolized_jsonb_spec.rb": 0.7588835870001276,8003 "spec/lib/gitlab/favicon_spec.rb": 0.6621693899999173,8004 "spec/lib/gitlab/email/hook/silent_mode_interceptor_spec.rb": 1.196669547000056,8005 "spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb": 1.1443879640000887,8006 "spec/services/user_project_access_changed_service_spec.rb": 0.48478005399988433,8007 "spec/views/projects/milestones/index.html.haml_spec.rb": 0.9680533329999434,8008 "spec/models/ml/candidate_metadata_spec.rb": 0.9834927770000377,8009 "spec/models/users/saved_reply_spec.rb": 0.5411133239999799,8010 "spec/initializers/validate_puma_spec.rb": 0.4257638749998023,8011 "spec/lib/gitlab/middleware/memory_report_spec.rb": 0.585177849000047,8012 "spec/lib/security/ci_configuration/secret_detection_build_action_spec.rb": 0.44947362299990345,8013 "spec/views/shared/milestones/_issuables.html.haml_spec.rb": 0.553683073000002,8014 "spec/lib/api/helpers/label_helpers_spec.rb": 0.7690377690000787,8015 "spec/models/notes/note_metadata_spec.rb": 0.8478227219998189,8016 "spec/models/work_items/hierarchy_restriction_spec.rb": 0.5075803370000358,8017 "spec/services/keys/create_service_spec.rb": 0.7273323150000124,8018 "spec/lib/gitlab/tracking/destinations/snowplow_spec.rb": 0.48473033999994186,8019 "spec/lib/bulk_imports/common/extractors/json_extractor_spec.rb": 0.6193065950001255,8020 "spec/lib/gitlab/diff/pair_selector_spec.rb": 0.5165229059998637,8021 "spec/workers/clusters/agents/delete_expired_events_worker_spec.rb": 0.7106596059998083,8022 "spec/lib/gitlab/jwt_token_spec.rb": 0.6117440069999702,8023 "spec/graphql/resolvers/concerns/resolves_groups_spec.rb": 0.8174976249999872,8024 "spec/services/ci/disable_user_pipeline_schedules_service_spec.rb": 0.8417324819999976,8025 "spec/models/preloaders/commit_status_preloader_spec.rb": 0.9815255880000677,8026 "spec/lib/gitlab/application_rate_limiter/increment_per_actioned_resource_spec.rb": 0.40680162700004985,8027 "spec/views/registrations/welcome/show.html.haml_spec.rb": 0.6412363740000728,8028 "spec/lib/gitlab/ci/parsers/accessibility/pa11y_spec.rb": 1.4022010930000306,8029 "spec/lib/gitlab/word_diff/positions_counter_spec.rb": 1.0589997200002017,8030 "spec/lib/gitlab/data_builder/archive_trace_spec.rb": 0.7725991800000429,8031 "spec/graphql/types/kas/agent_configuration_type_spec.rb": 0.3588585229999808,8032 "spec/policies/group_deploy_key_policy_spec.rb": 0.5924371579999388,8033 "spec/lib/gitlab/metrics/dashboard/stages/metric_endpoint_inserter_spec.rb": 0.4337795249998635,8034 "spec/support_specs/time_travel_spec.rb": 0.46439963200009515,8035 "spec/lib/sidebars/user_settings/panel_spec.rb": 0.489694598999904,8036 "spec/graphql/types/board_type_spec.rb": 0.3536890329999096,8037 "spec/lib/gitlab/cross_project_access/check_collection_spec.rb": 0.36462995199985926,8038 "spec/lib/sidebars/projects/menus/external_wiki_menu_spec.rb": 0.38622646899989377,8039 "spec/lib/gitlab/search/sort_options_spec.rb": 0.33454407399995034,8040 "spec/lib/gitlab/email/message/in_product_marketing/admin_verify_spec.rb": 0.36206894199995077,8041 "spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb": 0.314893297000026,8042 "spec/lib/api/entities/changelog_spec.rb": 0.3177823169999101,8043 "spec/lib/gitlab/chat_spec.rb": 0.32373676600013823,8044 "spec/rubocop/cop/avoid_route_redirect_leading_slash_spec.rb": 0.38552896999999575,8045 "spec/graphql/types/branch_type_spec.rb": 0.30884723799999847,8046 "spec/lib/bulk_imports/common/extractors/graphql_extractor_spec.rb": 0.3813337900000988,8047 "spec/graphql/types/commit_encoding_enum_spec.rb": 0.2996933590000026,8048 "spec/graphql/types/clusters/agents/authorizations/user_access_type_spec.rb": 0.30969836700000997,8049 "spec/serializers/jira_connect/group_entity_spec.rb": 0.4325319249999211,8050 "spec/lib/banzai/filter/output_safety_spec.rb": 0.3227818870000192,8051 "spec/workers/schedule_migrate_external_diffs_worker_spec.rb": 0.3056200080000053,8052 "spec/workers/file_hook_worker_spec.rb": 0.30536299799996414,8053 "spec/rubocop/qa_helpers_spec.rb": 0.32453680599996915,8054 "spec/lib/api/entities/user_counts_spec.rb": 0.3650835720000032,8055 "spec/workers/gitlab/github_import/import_collaborator_worker_spec.rb": 0.28479243099991436,8056 "spec/helpers/routing/packages_helper_spec.rb": 0.30745307799998045,8057 "spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb": 0.2989227089999531,8058 "spec/workers/todos_destroyer/project_private_worker_spec.rb": 0.28786678999995274,8059 "spec/lib/gitlab/asciidoc/html5_converter_spec.rb": 0.2841056810000282,8060 "spec/lib/bitbucket/paginator_spec.rb": 0.2905778099998315,8061 "spec/graphql/types/dependency_proxy/manifest_type_spec.rb": 0.30398241900002176,8062 "spec/graphql/types/ci/analytics_type_spec.rb": 0.28611528000010367,8063 "spec/presenters/member_presenter_spec.rb": 0.2766331310001533,8064 "spec/scripts/api/create_merge_request_discussion_spec.rb": 0.2533451030001288,8065 "spec/services/authorized_project_update/project_access_changed_service_spec.rb": 0.284569340999951248066}8067Knapsack global time execution for tests: 18m 24s8068Pending: (Failures listed here are expected and do not affect your suite's status)8069 1) FileUploader legacy storage behaves like builds correct legacy storage paths #cache_dir behaves like matches the method pattern 8070 # No pattern provided, skipping.8071 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88072 2) FileUploader legacy storage behaves like builds correct legacy storage paths #work_dir behaves like matches the method pattern 8073 # No pattern provided, skipping.8074 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88075 3) FileUploader legacy storage behaves like builds correct legacy storage paths #relative_path is relative8076 # Path not set, skipping.8077 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408078 4) FileUploader legacy storage behaves like builds correct legacy storage paths .base_dir behaves like matches the method pattern 8079 # No pattern provided, skipping.8080 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88081 5) FileUploader legacy storage uses hashed storage when rolled out attachments #cache_dir behaves like matches the method pattern 8082 # No pattern provided, skipping.8083 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88084 6) FileUploader legacy storage uses hashed storage when rolled out attachments #work_dir behaves like matches the method pattern 8085 # No pattern provided, skipping.8086 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88087 7) FileUploader legacy storage uses hashed storage when rolled out attachments #relative_path is relative8088 # Path not set, skipping.8089 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408090 8) FileUploader legacy storage uses hashed storage when rolled out attachments .absolute_path behaves like matches the method pattern 8091 # No pattern provided, skipping.8092 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88093 9) FileUploader legacy storage uses hashed storage when rolled out attachments .base_dir behaves like matches the method pattern 8094 # No pattern provided, skipping.8095 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88096 10) FileUploader legacy storage uses hashed storage when only repositories are rolled out behaves like builds correct legacy storage paths #cache_dir behaves like matches the method pattern 8097 # No pattern provided, skipping.8098 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88099 11) FileUploader legacy storage uses hashed storage when only repositories are rolled out behaves like builds correct legacy storage paths #work_dir behaves like matches the method pattern 8100 # No pattern provided, skipping.8101 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88102 12) FileUploader legacy storage uses hashed storage when only repositories are rolled out behaves like builds correct legacy storage paths #relative_path is relative8103 # Path not set, skipping.8104 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408105 13) FileUploader legacy storage uses hashed storage when only repositories are rolled out behaves like builds correct legacy storage paths .base_dir behaves like matches the method pattern 8106 # No pattern provided, skipping.8107 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88108 14) FileUploader object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern 8109 # No pattern provided, skipping.8110 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88111 15) FileUploader object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern 8112 # No pattern provided, skipping.8113 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88114 16) FileUploader object store is remote behaves like builds correct paths #relative_path is relative8115 # Path not set, skipping.8116 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408117 17) FileUploader object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 8118 # No pattern provided, skipping.8119 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88120 18) FileUploader object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 8121 # No pattern provided, skipping.8122 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88123Finished in 18 minutes 28 seconds (files took 55.52 seconds to load)81245162 examples, 0 failures, 18 pending8125Randomized with seed 399448126[TEST PROF INFO] Time spent in factories: 08:28.367 (45.51% of total time)8127RSpec exited with 0.8128No examples to retry, congrats!8130Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8132Uploading artifacts...8133coverage/: found 5 matching artifact files and directories 8134crystalball/: found 2 matching artifact files and directories 8135WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8136knapsack/: found 4 matching artifact files and directories 8137WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8138rspec/: found 16 matching artifact files and directories 8139WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8140log/*.log: found 16 matching artifact files and directories 8141WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964322/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8142WARNING: Retrying... context=artifacts-uploader error=request redirected8143Uploading artifacts as "archive" to coordinator... 201 Created id=4400964322 responseStatus=201 Created token=64_pKAWi8144Uploading artifacts...8145rspec/rspec-*.xml: found 1 matching artifact files and directories 8146WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964322/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8147WARNING: Retrying... context=artifacts-uploader error=request redirected8148Uploading artifacts as "junit" to coordinator... 201 Created id=4400964322 responseStatus=201 Created token=64_pKAWi8150Job succeeded