rspec unit pg14 6/28
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1 uses one of the allowed migration classes2 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToAgentIdColumnEnvironments", version=20230517151141, filename="db/migrate/20230517151141_add_index_to_agent_id_column_environments.rb", scope="">3 uses one of the allowed migration classes4 migration: #<struct ActiveRecord::MigrationProxy name="AddAgentIdForeignKeyToEnvironments", version=20230517151241, filename="db/migrate/20230517151241_add_agent_id_foreign_key_to_environments.rb", scope="">5 uses one of the allowed migration classes6 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillRootStorageStatisticsForkStorageSizes", version=20230517163300, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230517163300_queue_backfill_root_storage_statistics_fork_storage_sizes.rb", scope="">7 uses one of the allowed migration classes8 migration: #<struct ActiveRecord::MigrationProxy name="AddFieldsToAbuseReports", version=20230517182802, filename="db/migrate/20230517182802_add_fields_to_abuse_reports.rb", scope="">9 uses one of the allowed migration classes10 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyConstraintsToAbuseReports", version=20230517182958, filename="db/migrate/20230517182958_add_foreign_key_constraints_to_abuse_reports.rb", scope="">11 uses one of the allowed migration classes12 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyToAbuseReportsForAssignee", version=20230517183403, filename="db/migrate/20230517183403_add_foreign_key_to_abuse_reports_for_assignee.rb", scope="">13 uses one of the allowed migration classes14 migration: #<struct ActiveRecord::MigrationProxy name="AddConcurrentIndexForCiPipelineVariablesBigintId", version=20230518005523, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230518005523_add_concurrent_index_for_ci_pipeline_variables_bigint_id.rb", scope="">15 uses one of the allowed migration classes16 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="">17 uses one of the allowed migration classes18 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="">19 uses one of the allowed migration classes20 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="">21 uses one of the allowed migration classes22 migration: #<struct ActiveRecord::MigrationProxy name="SwapCiPipelineVariablesPkWithBigint", version=20230519023720, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230519023720_swap_ci_pipeline_variables_pk_with_bigint.rb", scope="">23 uses one of the allowed migration classes24 migration: #<struct ActiveRecord::MigrationProxy name="TruncateSchemaInconsistenciesTable", version=20230519103034, filename="db/migrate/20230519103034_truncate_schema_inconsistencies_table.rb", scope="">25 uses one of the allowed migration classes26 migration: #<struct ActiveRecord::MigrationProxy name="AddDiffColumnToSchemaInconsistencies", version=20230519112106, filename="db/migrate/20230519112106_add_diff_column_to_schema_inconsistencies.rb", scope="">27 uses one of the allowed migration classes28 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitForDiff", version=20230519135414, filename="db/migrate/20230519135414_add_text_limit_for_diff.rb", scope="">29 uses one of the allowed migration classes30 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="">31 uses one of the allowed migration classes32 migration: #<struct ActiveRecord::MigrationProxy name="AddNotNullConstraintToPersonalAccessTokensExpiresAt", version=20230522073230, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230522073230_add_not_null_constraint_to_personal_access_tokens_expires_at.rb", scope="">33 uses one of the allowed migration classes34 migration: #<struct ActiveRecord::MigrationProxy name="RemoveGitHubImportDeprecatedWorkers", version=20230522103433, filename="db/migrate/20230522103433_remove_git_hub_import_deprecated_workers.rb", scope="">35 uses one of the allowed migration classes36 migration: #<struct ActiveRecord::MigrationProxy name="RescheduleMigrationForLinksFromMetadata", version=20230522111534, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230522111534_reschedule_migration_for_links_from_metadata.rb", scope="">37 uses one of the allowed migration classes38 migration: #<struct ActiveRecord::MigrationProxy name="AddModelExperimentsAccessLevelToProjectFeature", version=20230522132239, filename="db/migrate/20230522132239_add_model_experiments_access_level_to_project_feature.rb", scope="">39 uses one of the allowed migration classes40 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForMergeRequestMetricsForSelfHosts", version=20230522162742, filename="db/migrate/20230522162742_cleanup_bigint_conversion_for_merge_request_metrics_for_self_hosts.rb", scope="">41 uses one of the allowed migration classes42 migration: #<struct ActiveRecord::MigrationProxy name="CreateAbuseEvents", version=20230522180913, filename="db/migrate/20230522180913_create_abuse_events.rb", scope="">43 uses one of the allowed migration classes44 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyConstraintsToAbuseEvents", version=20230522181134, filename="db/migrate/20230522181134_add_foreign_key_constraints_to_abuse_events.rb", scope="">45 uses one of the allowed migration classes46 migration: #<struct ActiveRecord::MigrationProxy name="AddAdminVulnerabilityToMemberRoles", version=20230522210320, filename="db/migrate/20230522210320_add_admin_vulnerability_to_member_roles.rb", scope="">47 uses one of the allowed migration classes48 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="">49 uses one of the allowed migration classes50 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="">51 uses one of the allowed migration classes52 migration: #<struct ActiveRecord::MigrationProxy name="AddNewAsyncIndexTableNameLengthConstraint", version=20230523073455, filename="db/migrate/20230523073455_add_new_async_index_table_name_length_constraint.rb", scope="">53 uses one of the allowed migration classes54 migration: #<struct ActiveRecord::MigrationProxy name="ValidateAsyncIndexTableNameLengthConstraint", version=20230523074248, filename="db/migrate/20230523074248_validate_async_index_table_name_length_constraint.rb", scope="">55 uses one of the allowed migration classes56 migration: #<struct ActiveRecord::MigrationProxy name="RemoveOldAsyncIndexTableNameLengthConstraint", version=20230523074517, filename="db/migrate/20230523074517_remove_old_async_index_table_name_length_constraint.rb", scope="">57 uses one of the allowed migration classes58 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeUserTypeMigration", version=20230523101514, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230523101514_finalize_user_type_migration.rb", scope="">59 uses one of the allowed migration classes60 migration: #<struct ActiveRecord::MigrationProxy name="AddEncryptedAiAccessToken", version=20230523122242, filename="db/migrate/20230523122242_add_encrypted_ai_access_token.rb", scope="">61 uses one of the allowed migration classes62 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="">63 uses one of the allowed migration classes64 migration: #<struct ActiveRecord::MigrationProxy name="AddDismissalReasonToVulnerabilityRead", version=20230523125430, filename="db/migrate/20230523125430_add_dismissal_reason_to_vulnerability_read.rb", scope="">65 uses one of the allowed migration classes66 migration: #<struct ActiveRecord::MigrationProxy name="RecreateIndexOnVulnerabilityReads", version=20230523131914, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230523131914_recreate_index_on_vulnerability_reads.rb", scope="">67 uses one of the allowed migration classes68 migration: #<struct ActiveRecord::MigrationProxy name="RecreateIndexOnVulnerabilityReads2", version=20230523132647, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230523132647_recreate_index_on_vulnerability_reads2.rb", scope="">69 uses one of the allowed migration classes70 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="">71 uses one of the allowed migration classes72 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="">73 uses one of the allowed migration classes74 migration: #<struct ActiveRecord::MigrationProxy name="AddVertexAiHostToApplicationSettings", version=20230524012641, filename="db/migrate/20230524012641_add_vertex_ai_host_to_application_settings.rb", scope="">75 uses one of the allowed migration classes76 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="">77 uses one of the allowed migration classes78 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="">79 uses one of the allowed migration classes80 migration: #<struct ActiveRecord::MigrationProxy name="RemoveIndexOnNameOnOrganization", version=20230524095108, filename="db/migrate/20230524095108_remove_index_on_name_on_organization.rb", scope="">81 uses one of the allowed migration classes82 migration: #<struct ActiveRecord::MigrationProxy name="AddTempIndexToPackagesOnProjectIdWhenNpmAndNotPendingDestruction", version=20230524120241, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524120241_add_temp_index_to_packages_on_project_id_when_npm_and_not_pending_destruction.rb", scope="">83 uses one of the allowed migration classes84 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiBuildPendingStatesForeignKey", version=20230524135543, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135543_replace_ci_build_pending_states_foreign_key.rb", scope="">85 uses one of the allowed migration classes86 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiBuildTraceChunksForeignKey", version=20230524135555, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135555_replace_ci_build_trace_chunks_foreign_key.rb", scope="">87 uses one of the allowed migration classes88 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiUnitTestFailuresForeignKey", version=20230524135607, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135607_replace_ci_unit_test_failures_foreign_key.rb", scope="">89 uses one of the allowed migration classes90 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiSourcesPipelinesForeignKey", version=20230524135620, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135620_replace_ci_sources_pipelines_foreign_key.rb", scope="">91 uses one of the allowed migration classes92 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiResourcesForeignKey", version=20230524135632, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135632_replace_ci_resources_foreign_key.rb", scope="">93 uses one of the allowed migration classes94 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiBuildReportResultsForeignKey", version=20230524135645, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135645_replace_ci_build_report_results_foreign_key.rb", scope="">95 uses one of the allowed migration classes96 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiBuildNeedsForeignKey", version=20230524135658, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135658_replace_ci_build_needs_foreign_key.rb", scope="">97 uses one of the allowed migration classes98 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiBuildsRunnerSessionForeignKey", version=20230524135711, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135711_replace_ci_builds_runner_session_foreign_key.rb", scope="">99 uses one of the allowed migration classes100 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiPendingBuildsForeignKey", version=20230524135724, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135724_replace_ci_pending_builds_foreign_key.rb", scope="">101 uses one of the allowed migration classes102 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiBuildTraceMetadataForeignKey", version=20230524135737, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135737_replace_ci_build_trace_metadata_foreign_key.rb", scope="">103 uses one of the allowed migration classes104 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiJobArtifactsForeignKey", version=20230524135750, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135750_replace_ci_job_artifacts_foreign_key.rb", scope="">105 uses one of the allowed migration classes106 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiRunningBuildsForeignKey", version=20230524135803, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135803_replace_ci_running_builds_foreign_key.rb", scope="">107 uses one of the allowed migration classes108 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiJobVariablesForeignKey", version=20230524135815, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135815_replace_ci_job_variables_foreign_key.rb", scope="">109 uses one of the allowed migration classes110 migration: #<struct ActiveRecord::MigrationProxy name="ReplacePCiBuildsMetadataForeignKey", version=20230524135828, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135828_replace_p_ci_builds_metadata_foreign_key.rb", scope="">111 uses one of the allowed migration classes112 migration: #<struct ActiveRecord::MigrationProxy name="ReplacePCiRunnerMachineBuildsForeignKey", version=20230524135840, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524135840_replace_p_ci_runner_machine_builds_foreign_key.rb", scope="">113 uses one of the allowed migration classes114 migration: #<struct ActiveRecord::MigrationProxy name="AddEnabledZoektToUserPreferences", version=20230524142655, filename="db/migrate/20230524142655_add_enabled_zoekt_to_user_preferences.rb", scope="">115 uses one of the allowed migration classes116 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="">117 uses one of the allowed migration classes118 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="">119 uses one of the allowed migration classes120 migration: #<struct ActiveRecord::MigrationProxy name="QueueMarkDuplicateNpmPackagesForDestruction", version=20230524201454, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230524201454_queue_mark_duplicate_npm_packages_for_destruction.rb", scope="">121 uses one of the allowed migration classes122 migration: #<struct ActiveRecord::MigrationProxy name="AddServiceDeskEnabledToServiceDeskSettings", version=20230525064706, filename="db/migrate/20230525064706_add_service_desk_enabled_to_service_desk_settings.rb", scope="">123 uses one of the allowed migration classes124 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="">125 uses one of the allowed migration classes126 migration: #<struct ActiveRecord::MigrationProxy name="DropMessageFromVulnerabilityOccurrences", version=20230528203340, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230528203340_drop_message_from_vulnerability_occurrences.rb", scope="">127 uses one of the allowed migration classes128 migration: #<struct ActiveRecord::MigrationProxy name="AddShowInCliToBroadcastMessage", version=20230529163335, filename="db/migrate/20230529163335_add_show_in_cli_to_broadcast_message.rb", scope="">129 uses one of the allowed migration classes130 migration: #<struct ActiveRecord::MigrationProxy name="AddIdColumnToPmCheckpoints", version=20230529173607, filename="db/migrate/20230529173607_add_id_column_to_pm_checkpoints.rb", scope="">131 uses one of the allowed migration classes132 migration: #<struct ActiveRecord::MigrationProxy name="RecreateBillableIndex", version=20230529182720, filename="db/migrate/20230529182720_recreate_billable_index.rb", scope="">133 uses one of the allowed migration classes134 migration: #<struct ActiveRecord::MigrationProxy name="RemoveTemporaryBillableIndex", version=20230529183648, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230529183648_remove_temporary_billable_index.rb", scope="">135 uses one of the allowed migration classes136 migration: #<struct ActiveRecord::MigrationProxy name="RecreatedActivityIndex", version=20230529184716, filename="db/migrate/20230529184716_recreated_activity_index.rb", scope="">137 uses one of the allowed migration classes138 migration: #<struct ActiveRecord::MigrationProxy name="CleanupTemporaryActivityIndex", version=20230529185110, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230529185110_cleanup_temporary_activity_index.rb", scope="">139 uses one of the allowed migration classes140 migration: #<struct ActiveRecord::MigrationProxy name="RenameTofaSettings", version=20230530003417, filename="db/migrate/20230530003417_rename_tofa_settings.rb", scope="">141 uses one of the allowed migration classes142 migration: #<struct ActiveRecord::MigrationProxy name="CleanupTofaSettings", version=20230530003634, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530003634_cleanup_tofa_settings.rb", scope="">143 uses one of the allowed migration classes144 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeBackfillResourceLinkEvents", version=20230530012406, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530012406_finalize_backfill_resource_link_events.rb", scope="">145 uses one of the allowed migration classes146 migration: #<struct ActiveRecord::MigrationProxy name="SwapNotesIdToBigintForGitlabDotCom", version=20230530015535, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530015535_swap_notes_id_to_bigint_for_gitlab_dot_com.rb", scope="">147 uses one of the allowed migration classes148 migration: #<struct ActiveRecord::MigrationProxy name="ChangeUserTypeNull", version=20230530100400, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530100400_change_user_type_null.rb", scope="">149 uses one of the allowed migration classes150 migration: #<struct ActiveRecord::MigrationProxy name="AddPathToOrganizations", version=20230530112122, filename="db/migrate/20230530112122_add_path_to_organizations.rb", scope="">151 uses one of the allowed migration classes152 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitOnOrganizationPath", version=20230530112602, filename="db/migrate/20230530112602_add_text_limit_on_organization_path.rb", scope="">153 uses one of the allowed migration classes154 migration: #<struct ActiveRecord::MigrationProxy name="CleanupOrganizationsWithNullPath", version=20230530114845, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530114845_cleanup_organizations_with_null_path.rb", scope="">155 uses one of the allowed migration classes156 migration: #<struct ActiveRecord::MigrationProxy name="RemoveDefaultOnOrganizationPath", version=20230530115830, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530115830_remove_default_on_organization_path.rb", scope="">157 uses one of the allowed migration classes158 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkCiBuildPendingStatesPCiBuilds", version=20230530140456, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530140456_validate_fk_ci_build_pending_states_p_ci_builds.rb", scope="">159 uses one of the allowed migration classes160 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkCiBuildTraceChunksPCiBuilds", version=20230530140509, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530140509_validate_fk_ci_build_trace_chunks_p_ci_builds.rb", scope="">161 uses one of the allowed migration classes162 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkCiUnitTestFailuresPCiBuilds", version=20230530140521, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530140521_validate_fk_ci_unit_test_failures_p_ci_builds.rb", scope="">163 uses one of the allowed migration classes164 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkCiSourcesPipelinesPCiBuilds", version=20230530140534, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530140534_validate_fk_ci_sources_pipelines_p_ci_builds.rb", scope="">165 uses one of the allowed migration classes166 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkCiResourcesPCiBuilds", version=20230530140546, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530140546_validate_fk_ci_resources_p_ci_builds.rb", scope="">167 uses one of the allowed migration classes168 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkCiBuildReportResultsPCiBuilds", version=20230530140558, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530140558_validate_fk_ci_build_report_results_p_ci_builds.rb", scope="">169 uses one of the allowed migration classes170 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkCiBuildNeedsPCiBuilds", version=20230530140611, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530140611_validate_fk_ci_build_needs_p_ci_builds.rb", scope="">171 uses one of the allowed migration classes172 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkCiBuildsRunnerSessionPCiBuilds", version=20230530140623, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530140623_validate_fk_ci_builds_runner_session_p_ci_builds.rb", scope="">173 uses one of the allowed migration classes174 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkCiPendingBuildsPCiBuilds", version=20230530140634, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530140634_validate_fk_ci_pending_builds_p_ci_builds.rb", scope="">175 uses one of the allowed migration classes176 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkCiBuildTraceMetadataPCiBuilds", version=20230530140646, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230530140646_validate_fk_ci_build_trace_metadata_p_ci_builds.rb", scope="">177 uses one of the allowed migration classes178 migration: #<struct ActiveRecord::MigrationProxy name="AddInstanceCodeSuggestionEnabledToAppSettings", version=20230530162437, filename="db/migrate/20230530162437_add_instance_code_suggestion_enabled_to_app_settings.rb", scope="">179 uses one of the allowed migration classes180 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnPackagesIdIdToPackageBuildInfos", version=20230531054422, filename="db/migrate/20230531054422_add_index_on_packages_id_id_to_package_build_infos.rb", scope="">181 uses one of the allowed migration classes182 migration: #<struct ActiveRecord::MigrationProxy name="CreateSubscriptionAddOns", version=20230531134916, filename="db/migrate/20230531134916_create_subscription_add_ons.rb", scope="">183 uses one of the allowed migration classes184 migration: #<struct ActiveRecord::MigrationProxy name="CreateSubscriptionAddOnPurchases", version=20230531135001, filename="db/migrate/20230531135001_create_subscription_add_on_purchases.rb", scope="">185 uses one of the allowed migration classes186 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeySubscriptionAddOnIdOnSubscriptionAddOnPurchases", version=20230531142032, filename="db/migrate/20230531142032_add_foreign_key_subscription_add_on_id_on_subscription_add_on_purchases.rb", scope="">187 uses one of the allowed migration classes188 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyNamespaceIdOnSubscriptionAddOnPurchases", version=20230531142053, filename="db/migrate/20230531142053_add_foreign_key_namespace_id_on_subscription_add_on_purchases.rb", scope="">189 uses one of the allowed migration classes190 migration: #<struct ActiveRecord::MigrationProxy name="AddOperatorValueIntervalToScanResultPolicies", version=20230531164258, filename="db/migrate/20230531164258_add_operator_value_interval_to_scan_result_policies.rb", scope="">191 uses one of the allowed migration classes192 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexIssuesOnWorkItemTypeId", version=20230531165731, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230531165731_drop_index_issues_on_work_item_type_id.rb", scope="">193 uses one of the allowed migration classes194 migration: #<struct ActiveRecord::MigrationProxy name="AddUnconfirmedUserDeletionToApplicationSettings", version=20230601035558, filename="db/migrate/20230601035558_add_unconfirmed_user_deletion_to_application_settings.rb", scope="">195 uses one of the allowed migration classes196 migration: #<struct ActiveRecord::MigrationProxy name="AddMergeRequestDiffLlmSummariesUniqueIndex", version=20230601084041, filename="db/migrate/20230601084041_add_merge_request_diff_llm_summaries_unique_index.rb", scope="">197 uses one of the allowed migration classes198 migration: #<struct ActiveRecord::MigrationProxy name="CreateProjectComplianceStandardsAdherence", version=20230601085810, filename="db/migrate/20230601085810_create_project_compliance_standards_adherence.rb", scope="">199 uses one of the allowed migration classes200 migration: #<struct ActiveRecord::MigrationProxy name="AddFkToProjectsComplianceStandardsAdherenceOnProjectId", version=20230601085815, filename="db/migrate/20230601085815_add_fk_to_projects_compliance_standards_adherence_on_project_id.rb", scope="">201 uses one of the allowed migration classes202 migration: #<struct ActiveRecord::MigrationProxy name="AddFkToProjectsComplianceStandardsAdherenceOnNamespaceId", version=20230601085820, filename="db/migrate/20230601085820_add_fk_to_projects_compliance_standards_adherence_on_namespace_id.rb", scope="">203 uses one of the allowed migration classes204 migration: #<struct ActiveRecord::MigrationProxy name="AddStatusMessageToPackages", version=20230601090722, filename="db/migrate/20230601090722_add_status_message_to_packages.rb", scope="">205 uses one of the allowed migration classes206 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToPackagesStatusMessage", version=20230601153401, filename="db/migrate/20230601153401_add_text_limit_to_packages_status_message.rb", scope="">207 uses one of the allowed migration classes208 migration: #<struct ActiveRecord::MigrationProxy name="DropUnnecessaryAsyncIndexFromEvents", version=20230601184234, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230601184234_drop_unnecessary_async_index_from_events.rb", scope="">209 uses one of the allowed migration classes210 migration: #<struct ActiveRecord::MigrationProxy name="AddDetectedAtIdIndexToVulnerabilities", version=20230601211635, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230601211635_add_detected_at_id_index_to_vulnerabilities.rb", scope="">211 uses one of the allowed migration classes212 migration: #<struct ActiveRecord::MigrationProxy name="AddUuidProjectIdStateIdIndexToVulnerabilityReads", version=20230601213750, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230601213750_add_uuid_project_id_state_id_index_to_vulnerability_reads.rb", scope="">213 uses one of the allowed migration classes214 migration: #<struct ActiveRecord::MigrationProxy name="RemoveBroadcastMessagesNamespaceIdColumn", version=20230602063059, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230602063059_remove_broadcast_messages_namespace_id_column.rb", scope="">215 uses one of the allowed migration classes216 migration: #<struct ActiveRecord::MigrationProxy name="ChangeUserPreferencesDefaults", version=20230602112904, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230602112904_change_user_preferences_defaults.rb", scope="">217 uses one of the allowed migration classes218 migration: #<struct ActiveRecord::MigrationProxy name="ChangeNotifiedOfOwnActivityDefault", version=20230602131429, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230602131429_change_notified_of_own_activity_default.rb", scope="">219 uses one of the allowed migration classes220 migration: #<struct ActiveRecord::MigrationProxy name="AddFinishedAtColumnToBatchedBackgroundMigrationsTable", version=20230603174306, filename="db/migrate/20230603174306_add_finished_at_column_to_batched_background_migrations_table.rb", scope="">221 uses one of the allowed migration classes222 migration: #<struct ActiveRecord::MigrationProxy name="AddUnconfirmedCreatedAtIndexToUsers", version=20230605043258, filename="db/migrate/20230605043258_add_unconfirmed_created_at_index_to_users.rb", scope="">223 uses one of the allowed migration classes224 migration: #<struct ActiveRecord::MigrationProxy name="AddTrigramIndexForVulnerabilityReadsContainerImages", version=20230605043814, filename="db/migrate/20230605043814_add_trigram_index_for_vulnerability_reads_container_images.rb", scope="">225 uses one of the allowed migration classes226 migration: #<struct ActiveRecord::MigrationProxy name="AddNewIndexToVsaIssueStageEvents", version=20230605085936, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230605085936_add_new_index_to_vsa_issue_stage_events.rb", scope="">227 uses one of the allowed migration classes228 migration: #<struct ActiveRecord::MigrationProxy name="AddNewIndexToVsaMrStageEvents", version=20230605085957, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230605085957_add_new_index_to_vsa_mr_stage_events.rb", scope="">229 uses one of the allowed migration classes230 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexForSbomOccurrencesOnProjectIdSourceId", version=20230605093005, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230605093005_add_index_for_sbom_occurrences_on_project_id_source_id.rb", scope="">231 uses one of the allowed migration classes232 migration: #<struct ActiveRecord::MigrationProxy name="EnsureDefaultOrganization", version=20230605095810, filename="db/migrate/20230605095810_ensure_default_organization.rb", scope="">233 uses one of the allowed migration classes234 migration: #<struct ActiveRecord::MigrationProxy name="AddTrackingColumnsToNamespaceLimits", version=20230605125735, filename="db/migrate/20230605125735_add_tracking_columns_to_namespace_limits.rb", scope="">235 uses one of the allowed migration classes236 migration: #<struct ActiveRecord::MigrationProxy name="DropTmpIndexOauthAccessTokensOnIdWhereExpiresInNull", version=20230605192000, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230605192000_drop_tmp_index_oauth_access_tokens_on_id_where_expires_in_null.rb", scope="">237 uses one of the allowed migration classes238 migration: #<struct ActiveRecord::MigrationProxy name="AddDefaultBranchProtectionsJsonToApplicationSettings", version=20230606124754, filename="db/migrate/20230606124754_add_default_branch_protections_json_to_application_settings.rb", scope="">239 uses one of the allowed migration classes240 migration: #<struct ActiveRecord::MigrationProxy name="AddDefaultBranchProtectionsJsonToNamespaceSettings", version=20230606124854, filename="db/migrate/20230606124854_add_default_branch_protections_json_to_namespace_settings.rb", scope="">241 uses one of the allowed migration classes242 migration: #<struct ActiveRecord::MigrationProxy name="AddSizeConstraintToNamespaceSettingsJson", version=20230606124855, filename="db/migrate/20230606124855_add_size_constraint_to_namespace_settings_json.rb", scope="">243 uses one of the allowed migration classes244 migration: #<struct ActiveRecord::MigrationProxy name="AddSizeConstraintToApplicationSettingsJson", version=20230606124856, filename="db/migrate/20230606124856_add_size_constraint_to_application_settings_json.rb", scope="">245 uses one of the allowed migration classes246 migration: #<struct ActiveRecord::MigrationProxy name="AddEnterpriseColumnsToUserDetails", version=20230606182433, filename="db/migrate/20230606182433_add_enterprise_columns_to_user_details.rb", scope="">247 uses one of the allowed migration classes248 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexUserDetailsOnEnterpriseGroupId", version=20230606183327, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230606183327_add_index_user_details_on_enterprise_group_id.rb", scope="">249 uses one of the allowed migration classes250 migration: #<struct ActiveRecord::MigrationProxy name="CreateIndexAlertManagementAlertsOnCreatedAtProjectIdWithIssue", version=20230606193037, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230606193037_create_index_alert_management_alerts_on_created_at_project_id_with_issue.rb", scope="">251 uses one of the allowed migration classes252 migration: #<struct ActiveRecord::MigrationProxy name="AddLimitsHistoryToPlanLimits", version=20230607080200, filename="db/migrate/20230607080200_add_limits_history_to_plan_limits.rb", scope="">253 uses one of the allowed migration classes254 migration: #<struct ActiveRecord::MigrationProxy name="RemoveWebauthnRegistrationsU2fRegistrationIdColumn", version=20230607093222, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230607093222_remove_webauthn_registrations_u2f_registration_id_column.rb", scope="">255 uses one of the allowed migration classes256 migration: #<struct ActiveRecord::MigrationProxy name="AddCiJobAnnotationsTable", version=20230607101334, filename="db/migrate/20230607101334_add_ci_job_annotations_table.rb", scope="">257 uses one of the allowed migration classes258 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnCiJobAnnotations", version=20230607102017, filename="db/migrate/20230607102017_add_index_on_ci_job_annotations.rb", scope="">259 uses one of the allowed migration classes260 migration: #<struct ActiveRecord::MigrationProxy name="AddCheckConstraintsToCiJobAnnotations", version=20230607102721, filename="db/migrate/20230607102721_add_check_constraints_to_ci_job_annotations.rb", scope="">261 uses one of the allowed migration classes262 migration: #<struct ActiveRecord::MigrationProxy name="CreateCiJobAnnotationsPartitions", version=20230607102731, filename="db/migrate/20230607102731_create_ci_job_annotations_partitions.rb", scope="">263 uses one of the allowed migration classes264 migration: #<struct ActiveRecord::MigrationProxy name="CreateOrganizationSettings", version=20230607124754, filename="db/migrate/20230607124754_create_organization_settings.rb", scope="">265 uses one of the allowed migration classes266 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFkOnProjectIdOnProjectWikiRepositoryStates", version=20230607165632, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230607165632_remove_fk_on_project_id_on_project_wiki_repository_states.rb", scope="">267 uses one of the allowed migration classes268 migration: #<struct ActiveRecord::MigrationProxy name="DropProjectWikiRepositoryStates", version=20230607165718, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230607165718_drop_project_wiki_repository_states.rb", scope="">269 uses one of the allowed migration classes270 migration: #<struct ActiveRecord::MigrationProxy name="RequeueCleanupPersonalAccessTokensWithNilExpiresAt", version=20230608071301, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230608071301_requeue_cleanup_personal_access_tokens_with_nil_expires_at.rb", scope="">271 uses one of the allowed migration classes272 migration: #<struct ActiveRecord::MigrationProxy name="DeleteIndexMembersOnSourceIdAndSourceType", version=20230608081257, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230608081257_delete_index_members_on_source_id_and_source_type.rb", scope="">273 uses one of the allowed migration classes274 migration: #<struct ActiveRecord::MigrationProxy name="DeleteIndexUniqueProjectAuthorizationsOnProjectIdUserId", version=20230608081924, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230608081924_delete_index_unique_project_authorizations_on_project_id_user_id.rb", scope="">275 uses one of the allowed migration classes276 migration: #<struct ActiveRecord::MigrationProxy name="AddCiJobAnnotationsForeignKey", version=20230608101503, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230608101503_add_ci_job_annotations_foreign_key.rb", scope="">277 uses one of the allowed migration classes278 migration: #<struct ActiveRecord::MigrationProxy name="CreateOrganizationUsers", version=20230608113106, filename="db/migrate/20230608113106_create_organization_users.rb", scope="">279 uses one of the allowed migration classes280 migration: #<struct ActiveRecord::MigrationProxy name="AddPreparedAtIndexToMergeRequests", version=20230608145500, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230608145500_add_prepared_at_index_to_merge_requests.rb", scope="">281 uses one of the allowed migration classes282 migration: #<struct ActiveRecord::MigrationProxy name="RedoRemoveCreateLearnGitlabWorkerJobInstances", version=20230608195429, filename="db/migrate/20230608195429_redo_remove_create_learn_gitlab_worker_job_instances.rb", scope="">283 uses one of the allowed migration classes284 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForTodosForGitlabCom", version=20230608231452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230608231452_cleanup_bigint_conversion_for_todos_for_gitlab_com.rb", scope="">285 uses one of the allowed migration classes286 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForSystemNoteMetadataForGitlabCom", version=20230608232452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230608232452_cleanup_bigint_conversion_for_system_note_metadata_for_gitlab_com.rb", scope="">287 uses one of the allowed migration classes288 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForEpicUserMentionsForGitlabCom", version=20230608233452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230608233452_cleanup_bigint_conversion_for_epic_user_mentions_for_gitlab_com.rb", scope="">289 uses one of the allowed migration classes290 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForSuggestionsForGitlabCom", version=20230608234452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230608234452_cleanup_bigint_conversion_for_suggestions_for_gitlab_com.rb", scope="">291 uses one of the allowed migration classes292 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForIssueUserMentionsForGitlabCom", version=20230608235452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230608235452_cleanup_bigint_conversion_for_issue_user_mentions_for_gitlab_com.rb", scope="">293 uses one of the allowed migration classes294 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForNoteDiffFilesForGitlabCom", version=20230609000452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230609000452_cleanup_bigint_conversion_for_note_diff_files_for_gitlab_com.rb", scope="">295 uses one of the allowed migration classes296 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForSnippetUserMentionsForGitlabCom", version=20230609001452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230609001452_cleanup_bigint_conversion_for_snippet_user_mentions_for_gitlab_com.rb", scope="">297 uses one of the allowed migration classes298 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForDesignUserMentionsForGitlabCom", version=20230609002452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230609002452_cleanup_bigint_conversion_for_design_user_mentions_for_gitlab_com.rb", scope="">299 uses one of the allowed migration classes300 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForVulnerabilityUserMentionsForGitlabCom", version=20230609003452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230609003452_cleanup_bigint_conversion_for_vulnerability_user_mentions_for_gitlab_com.rb", scope="">301 uses one of the allowed migration classes302 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForCommitUserMentionsForGitlabCom", version=20230609004452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230609004452_cleanup_bigint_conversion_for_commit_user_mentions_for_gitlab_com.rb", scope="">303 uses one of the allowed migration classes304 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForMergeRequestUserMentionsForGitlabCom", version=20230609005452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230609005452_cleanup_bigint_conversion_for_merge_request_user_mentions_for_gitlab_com.rb", scope="">305 uses one of the allowed migration classes306 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForTimelogsForGitlabCom", version=20230609010452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230609010452_cleanup_bigint_conversion_for_timelogs_for_gitlab_com.rb", scope="">307 uses one of the allowed migration classes308 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForAwardEmojiForGitlabCom", version=20230609011452, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230609011452_cleanup_bigint_conversion_for_award_emoji_for_gitlab_com.rb", scope="">309 uses one of the allowed migration classes310 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfCiPipelineVariablesPipelineId", version=20230609065641, filename="db/migrate/20230609065641_initialize_conversion_of_ci_pipeline_variables_pipeline_id.rb", scope="">311 uses one of the allowed migration classes312 migration: #<struct ActiveRecord::MigrationProxy name="BackfillCiPipelineVariablesForPipelineIdBigintConversion", version=20230609065942, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230609065942_backfill_ci_pipeline_variables_for_pipeline_id_bigint_conversion.rb", scope="">313 uses one of the allowed migration classes314 migration: #<struct ActiveRecord::MigrationProxy name="AddGitlabShellOperationLimitToApplicationSettings", version=20230609085234, filename="db/migrate/20230609085234_add_gitlab_shell_operation_limit_to_application_settings.rb", scope="">315 uses one of the allowed migration classes316 migration: #<struct ActiveRecord::MigrationProxy name="CreateAuditEventsStreamingInstanceEventTypeFilters", version=20230609115844, filename="db/migrate/20230609115844_create_audit_events_streaming_instance_event_type_filters.rb", scope="">317 uses one of the allowed migration classes318 migration: #<struct ActiveRecord::MigrationProxy name="AddVacuumTypeToAutovacuumStatus", version=20230612072807, filename="db/migrate/20230612072807_add_vacuum_type_to_autovacuum_status.rb", scope="">319 uses one of the allowed migration classes320 migration: #<struct ActiveRecord::MigrationProxy name="AddNameToExternalAuditEventDestination", version=20230612074428, filename="db/migrate/20230612074428_add_name_to_external_audit_event_destination.rb", scope="">321 uses one of the allowed migration classes322 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiJobArtifactsForeignKeyV2", version=20230612075608, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230612075608_replace_ci_job_artifacts_foreign_key_v2.rb", scope="">323 uses one of the allowed migration classes324 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiRunningBuildsForeignKeyV2", version=20230612083337, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230612083337_replace_ci_running_builds_foreign_key_v2.rb", scope="">325 uses one of the allowed migration classes326 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiJobVariablesForeignKeyV2", version=20230612083655, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230612083655_replace_ci_job_variables_foreign_key_v2.rb", scope="">327 uses one of the allowed migration classes328 migration: #<struct ActiveRecord::MigrationProxy name="ReplacePCiBuildsMetadataForeignKeyV2", version=20230612083810, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230612083810_replace_p_ci_builds_metadata_foreign_key_v2.rb", scope="">329 uses one of the allowed migration classes330 migration: #<struct ActiveRecord::MigrationProxy name="ReplacePCiRunnerMachineBuildsForeignKeyV2", version=20230612084013, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230612084013_replace_p_ci_runner_machine_builds_foreign_key_v2.rb", scope="">331 uses one of the allowed migration classes332 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToExternalAuditEventDestinationName", version=20230612091526, filename="db/migrate/20230612091526_add_text_limit_to_external_audit_event_destination_name.rb", scope="">333 uses one of the allowed migration classes334 migration: #<struct ActiveRecord::MigrationProxy name="AddNameToInstanceAuditEventDestination", version=20230612091747, filename="db/migrate/20230612091747_add_name_to_instance_audit_event_destination.rb", scope="">335 uses one of the allowed migration classes336 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToInstanceAuditEventDestinationName", version=20230612091910, filename="db/migrate/20230612091910_add_text_limit_to_instance_audit_event_destination_name.rb", scope="">337 uses one of the allowed migration classes338 migration: #<struct ActiveRecord::MigrationProxy name="PmCheckpointsRemoveAdvisoryEntries", version=20230612162643, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230612162643_pm_checkpoints_remove_advisory_entries.rb", scope="">339 uses one of the allowed migration classes340 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillDismissalReasonInVulnerabilityReads", version=20230612232000, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230612232000_queue_backfill_dismissal_reason_in_vulnerability_reads.rb", scope="">341 uses one of the allowed migration classes342 migration: #<struct ActiveRecord::MigrationProxy name="AddVulnerabilityAttributesToScanResultPolicies", version=20230613122211, filename="db/migrate/20230613122211_add_vulnerability_attributes_to_scan_result_policies.rb", scope="">343 uses one of the allowed migration classes344 migration: #<struct ActiveRecord::MigrationProxy name="EnsureCiBuildNeedsBigIntBackfillIsFinishedForSelfHosts", version=20230613192703, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230613192703_ensure_ci_build_needs_big_int_backfill_is_finished_for_self_hosts.rb", scope="">345 uses one of the allowed migration classes346 migration: #<struct ActiveRecord::MigrationProxy name="SwapCiBuildNeedsToBigIntForSelfHosts", version=20230613192802, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230613192802_swap_ci_build_needs_to_big_int_for_self_hosts.rb", scope="">347 uses one of the allowed migration classes348 migration: #<struct ActiveRecord::MigrationProxy name="RestoreIndexForContributionAnalyticsEvents", version=20230614073136, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230614073136_restore_index_for_contribution_analytics_events.rb", scope="">349 uses one of the allowed migration classes350 migration: #<struct ActiveRecord::MigrationProxy name="AddOrganizationIdToNamespaces", version=20230614180651, filename="db/migrate/20230614180651_add_organization_id_to_namespaces.rb", scope="">351 uses one of the allowed migration classes352 migration: #<struct ActiveRecord::MigrationProxy name="TrackOrganizationDeletions", version=20230614181310, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230614181310_track_organization_deletions.rb", scope="">353 uses one of the allowed migration classes354 migration: #<struct ActiveRecord::MigrationProxy name="AddIdxIssuesOnWorkItemTypeProjectClosedAtWhereClosed", version=20230614181637, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230614181637_add_idx_issues_on_work_item_type_project_closed_at_where_closed.rb", scope="">355 uses one of the allowed migration classes356 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToNamespacesOrganizationId", version=20230614182049, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230614182049_add_index_to_namespaces_organization_id.rb", scope="">357 uses one of the allowed migration classes358 migration: #<struct ActiveRecord::MigrationProxy name="RemoveAuditEventsGroupIndex", version=20230615030402, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615030402_remove_audit_events_group_index.rb", scope="">359 uses one of the allowed migration classes360 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToAuditEventExternalDestination", version=20230615074515, filename="db/migrate/20230615074515_add_index_to_audit_event_external_destination.rb", scope="">361 uses one of the allowed migration classes362 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToInstanceAuditEventDestination", version=20230615074544, filename="db/migrate/20230615074544_add_index_to_instance_audit_event_destination.rb", scope="">363 uses one of the allowed migration classes364 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiBuildPendingStatesToBuilds", version=20230615083713, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615083713_replace_old_fk_ci_build_pending_states_to_builds.rb", scope="">365 uses one of the allowed migration classes366 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiBuildTraceChunksToBuilds", version=20230615083715, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615083715_replace_old_fk_ci_build_trace_chunks_to_builds.rb", scope="">367 uses one of the allowed migration classes368 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiUnitTestFailuresToBuilds", version=20230615083720, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615083720_replace_old_fk_ci_unit_test_failures_to_builds.rb", scope="">369 uses one of the allowed migration classes370 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiSourcesPipelinesToBuilds", version=20230615083725, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615083725_replace_old_fk_ci_sources_pipelines_to_builds.rb", scope="">371 uses one of the allowed migration classes372 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiResourcesToBuilds", version=20230615083730, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615083730_replace_old_fk_ci_resources_to_builds.rb", scope="">373 uses one of the allowed migration classes374 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiBuildReportResultsToBuilds", version=20230615083734, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615083734_replace_old_fk_ci_build_report_results_to_builds.rb", scope="">375 uses one of the allowed migration classes376 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiBuildNeedsToBuilds", version=20230615083738, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615083738_replace_old_fk_ci_build_needs_to_builds.rb", scope="">377 uses one of the allowed migration classes378 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiBuildsRunnerSessionToBuilds", version=20230615083741, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615083741_replace_old_fk_ci_builds_runner_session_to_builds.rb", scope="">379 uses one of the allowed migration classes380 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiPendingBuildsToBuilds", version=20230615083744, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615083744_replace_old_fk_ci_pending_builds_to_builds.rb", scope="">381 uses one of the allowed migration classes382 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiBuildTraceMetadataToBuilds", version=20230615083748, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615083748_replace_old_fk_ci_build_trace_metadata_to_builds.rb", scope="">383 uses one of the allowed migration classes384 migration: #<struct ActiveRecord::MigrationProxy name="AddUserIdForeignKeyToOrganizationUsers", version=20230615104902, filename="db/migrate/20230615104902_add_user_id_foreign_key_to_organization_users.rb", scope="">385 uses one of the allowed migration classes386 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiJobArtifactsForeignKeyV3", version=20230615113748, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615113748_replace_ci_job_artifacts_foreign_key_v3.rb", scope="">387 uses one of the allowed migration classes388 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiRunningBuildsForeignKeyV3", version=20230615113840, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615113840_replace_ci_running_builds_foreign_key_v3.rb", scope="">389 uses one of the allowed migration classes390 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceCiJobVariablesForeignKeyV3", version=20230615113858, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615113858_replace_ci_job_variables_foreign_key_v3.rb", scope="">391 uses one of the allowed migration classes392 migration: #<struct ActiveRecord::MigrationProxy name="ReplacePCiBuildsMetadataForeignKeyV3", version=20230615121103, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615121103_replace_p_ci_builds_metadata_foreign_key_v3.rb", scope="">393 uses one of the allowed migration classes394 migration: #<struct ActiveRecord::MigrationProxy name="ReplacePCiRunnerMachineBuildsForeignKeyV3", version=20230615121122, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615121122_replace_p_ci_runner_machine_builds_foreign_key_v3.rb", scope="">395 uses one of the allowed migration classes396 migration: #<struct ActiveRecord::MigrationProxy name="RemoveTemporaryContainerRepositoryIndexes", version=20230615144627, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615144627_remove_temporary_container_repository_indexes.rb", scope="">397 uses one of the allowed migration classes398 migration: #<struct ActiveRecord::MigrationProxy name="PrepareIndexIssuesOnProjectHealthStatusAscWorkItemType", version=20230615202125, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615202125_prepare_index_issues_on_project_health_status_asc_work_item_type.rb", scope="">399 uses one of the allowed migration classes400 migration: #<struct ActiveRecord::MigrationProxy name="PrepareIndexIssuesOnProjectHealthStatusDescWorkItemType", version=20230615202511, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230615202511_prepare_index_issues_on_project_health_status_desc_work_item_type.rb", scope="">401 uses one of the allowed migration classes402 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueIndexForNpmPackagesOnProjectIdNameVersion", version=20230616082958, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230616082958_add_unique_index_for_npm_packages_on_project_id_name_version.rb", scope="">403 uses one of the allowed migration classes404 migration: #<struct ActiveRecord::MigrationProxy name="CreateSubscriptionUserAddOnAssignments", version=20230616164309, filename="db/migrate/20230616164309_create_subscription_user_add_on_assignments.rb", scope="">405 uses one of the allowed migration classes406 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyAddOnPurchaseIdOnSubscriptionUserAddOnAssignments", version=20230616164705, filename="db/migrate/20230616164705_add_foreign_key_add_on_purchase_id_on_subscription_user_add_on_assignments.rb", scope="">407 uses one of the allowed migration classes408 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyUserIdOnSubscriptionUserAddOnAssignments", version=20230616164731, filename="db/migrate/20230616164731_add_foreign_key_user_id_on_subscription_user_add_on_assignments.rb", scope="">409 uses one of the allowed migration classes410 migration: #<struct ActiveRecord::MigrationProxy name="CreateSystemAccessMicrosoftApplication", version=20230616200440, filename="db/migrate/20230616200440_create_system_access_microsoft_application.rb", scope="">411 uses one of the allowed migration classes412 migration: #<struct ActiveRecord::MigrationProxy name="CreateSystemAccessMicrosoftGraphAccessTokens", version=20230616214220, filename="db/migrate/20230616214220_create_system_access_microsoft_graph_access_tokens.rb", scope="">413 uses one of the allowed migration classes414 migration: #<struct ActiveRecord::MigrationProxy name="FinishUserTypeMigration", version=20230618020202, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230618020202_finish_user_type_migration.rb", scope="">415 uses one of the allowed migration classes416 migration: #<struct ActiveRecord::MigrationProxy name="ChangeUnconfirmedCreatedAtIndexOnUsers", version=20230619005223, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230619005223_change_unconfirmed_created_at_index_on_users.rb", scope="">417 uses one of the allowed migration classes418 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleIndexEventsOnProjectIdAndIdDescOnMergedActionForRemoval", version=20230619072744, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230619072744_schedule_index_events_on_project_id_and_id_desc_on_merged_action_for_removal.rb", scope="">419 uses one of the allowed migration classes420 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToCiTriggersToken", version=20230619081412, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230619081412_add_index_to_ci_triggers_token.rb", scope="">421 uses one of the allowed migration classes422 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleRemovalIndexJobArtifactsIdAndExpireAt", version=20230619123701, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230619123701_schedule_removal_index_job_artifacts_id_and_expire_at.rb", scope="">423 uses one of the allowed migration classes424 migration: #<struct ActiveRecord::MigrationProxy name="PrepareIndexForVulnerabilityReadsOnCommonProjectFilters", version=20230619134106, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230619134106_prepare_index_for_vulnerability_reads_on_common_project_filters.rb", scope="">425 uses one of the allowed migration classes426 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiBuildPendingStatesToBuildsV2", version=20230620072854, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620072854_replace_old_fk_ci_build_pending_states_to_builds_v2.rb", scope="">427 uses one of the allowed migration classes428 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiBuildTraceChunksToBuildsV2", version=20230620072856, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620072856_replace_old_fk_ci_build_trace_chunks_to_builds_v2.rb", scope="">429 uses one of the allowed migration classes430 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiUnitTestFailuresToBuildsV2", version=20230620072900, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620072900_replace_old_fk_ci_unit_test_failures_to_builds_v2.rb", scope="">431 uses one of the allowed migration classes432 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiSourcesPipelinesToBuildsV2", version=20230620072905, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620072905_replace_old_fk_ci_sources_pipelines_to_builds_v2.rb", scope="">433 uses one of the allowed migration classes434 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiResourcesToBuildsV2", version=20230620072908, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620072908_replace_old_fk_ci_resources_to_builds_v2.rb", scope="">435 uses one of the allowed migration classes436 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiBuildReportResultsToBuildsV2", version=20230620072911, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620072911_replace_old_fk_ci_build_report_results_to_builds_v2.rb", scope="">437 uses one of the allowed migration classes438 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiBuildNeedsToBuildsV2", version=20230620072915, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620072915_replace_old_fk_ci_build_needs_to_builds_v2.rb", scope="">439 uses one of the allowed migration classes440 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiBuildsRunnerSessionToBuildsV2", version=20230620072917, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620072917_replace_old_fk_ci_builds_runner_session_to_builds_v2.rb", scope="">441 uses one of the allowed migration classes442 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiPendingBuildsToBuildsV2", version=20230620072920, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620072920_replace_old_fk_ci_pending_builds_to_builds_v2.rb", scope="">443 uses one of the allowed migration classes444 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiBuildTraceMetadataToBuildsV2", version=20230620072925, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620072925_replace_old_fk_ci_build_trace_metadata_to_builds_v2.rb", scope="">445 uses one of the allowed migration classes446 migration: #<struct ActiveRecord::MigrationProxy name="ChangeDefaultValueForDistroVersion", version=20230620101808, filename="db/migrate/20230620101808_change_default_value_for_distro_version.rb", scope="">447 uses one of the allowed migration classes448 migration: #<struct ActiveRecord::MigrationProxy name="AddOrganizationIdForeignKeyToOrganizationUsers", version=20230620104217, filename="db/migrate/20230620104217_add_organization_id_foreign_key_to_organization_users.rb", scope="">449 uses one of the allowed migration classes450 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiJobArtifactsToBuilds", version=20230620105919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620105919_replace_old_fk_ci_job_artifacts_to_builds.rb", scope="">451 uses one of the allowed migration classes452 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiRunningBuildsToBuilds", version=20230620110004, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620110004_replace_old_fk_ci_running_builds_to_builds.rb", scope="">453 uses one of the allowed migration classes454 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiJobVariablesToBuilds", version=20230620110021, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620110021_replace_old_fk_ci_job_variables_to_builds.rb", scope="">455 uses one of the allowed migration classes456 migration: #<struct ActiveRecord::MigrationProxy name="ValidateUserTypeConstraint", version=20230620134708, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620134708_validate_user_type_constraint.rb", scope="">457 uses one of the allowed migration classes458 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexIssuesOnProjectHealthStatusAscWorkItemType", version=20230620201738, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620201738_add_index_issues_on_project_health_status_asc_work_item_type.rb", scope="">459 uses one of the allowed migration classes460 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexIssuesOnProjectHealthStatusDescWorkItemType", version=20230620201817, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230620201817_add_index_issues_on_project_health_status_desc_work_item_type.rb", scope="">461 uses one of the allowed migration classes462 migration: #<struct ActiveRecord::MigrationProxy name="AddElasticsearchRequeueWorkersToApplicationSettings", version=20230621065943, filename="db/migrate/20230621065943_add_elasticsearch_requeue_workers_to_application_settings.rb", scope="">463 uses one of the allowed migration classes464 migration: #<struct ActiveRecord::MigrationProxy name="UpdateRequeueWorkersInApplicationSettingsForGitlabCom", version=20230621070810, filename="db/migrate/20230621070810_update_requeue_workers_in_application_settings_for_gitlab_com.rb", scope="">465 uses one of the allowed migration classes466 migration: #<struct ActiveRecord::MigrationProxy name="AddDescriptionToCiVariable", version=20230621072726, filename="db/migrate/20230621072726_add_description_to_ci_variable.rb", scope="">467 uses one of the allowed migration classes468 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToCiVariableDescription", version=20230621072848, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230621072848_add_text_limit_to_ci_variable_description.rb", scope="">469 uses one of the allowed migration classes470 migration: #<struct ActiveRecord::MigrationProxy name="AddElasticsearchNumberOfShardsToApplicationSettings", version=20230621074446, filename="db/migrate/20230621074446_add_elasticsearch_number_of_shards_to_application_settings.rb", scope="">471 uses one of the allowed migration classes472 migration: #<struct ActiveRecord::MigrationProxy name="UpdateElasticsearchNumberOfShardsInApplicationSettingsForGitlabCom", version=20230621074611, filename="db/migrate/20230621074611_update_elasticsearch_number_of_shards_in_application_settings_for_gitlab_com.rb", scope="">473 uses one of the allowed migration classes474 migration: #<struct ActiveRecord::MigrationProxy name="AddDescriptionToCiGroupVariable", version=20230621083004, filename="db/migrate/20230621083004_add_description_to_ci_group_variable.rb", scope="">475 uses one of the allowed migration classes476 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToCiGroupVariableDescription", version=20230621083052, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230621083052_add_text_limit_to_ci_group_variable_description.rb", scope="">477 uses one of the allowed migration classes478 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiJobArtifactsToBuildsV2", version=20230621102941, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230621102941_replace_old_fk_ci_job_artifacts_to_builds_v2.rb", scope="">479 uses one of the allowed migration classes480 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiRunningBuildsToBuildsV2", version=20230621103000, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230621103000_replace_old_fk_ci_running_builds_to_builds_v2.rb", scope="">481 uses one of the allowed migration classes482 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkCiJobVariablesToBuildsV2", version=20230621103043, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230621103043_replace_old_fk_ci_job_variables_to_builds_v2.rb", scope="">483 uses one of the allowed migration classes484 migration: #<struct ActiveRecord::MigrationProxy name="CreateMergeRequestReviewLlmSummary", version=20230622044119, filename="db/migrate/20230622044119_create_merge_request_review_llm_summary.rb", scope="">485 uses one of the allowed migration classes486 migration: #<struct ActiveRecord::MigrationProxy name="AddUserForeignKeyToMergeRequestReviewLlmSummary", version=20230622051925, filename="db/migrate/20230622051925_add_user_foreign_key_to_merge_request_review_llm_summary.rb", scope="">487 uses one of the allowed migration classes488 migration: #<struct ActiveRecord::MigrationProxy name="AddReviewForeignKeyToMergeRequestReviewLlmSummary", version=20230622051943, filename="db/migrate/20230622051943_add_review_foreign_key_to_merge_request_review_llm_summary.rb", scope="">489 uses one of the allowed migration classes490 migration: #<struct ActiveRecord::MigrationProxy name="AddMergeRequestDiffForeignKeyToMergeRequestReviewLlmSummary", version=20230622052015, filename="db/migrate/20230622052015_add_merge_request_diff_foreign_key_to_merge_request_review_llm_summary.rb", scope="">491 uses one of the allowed migration classes492 migration: #<struct ActiveRecord::MigrationProxy name="RemoveCiPipelineVariablesTriggerAndOldColumn", version=20230622052046, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230622052046_remove_ci_pipeline_variables_trigger_and_old_column.rb", scope="">493 uses one of the allowed migration classes494 migration: #<struct ActiveRecord::MigrationProxy name="EnsureBackfillCiPipelinesBigintIdIsCompleted", version=20230622073752, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230622073752_ensure_backfill_ci_pipelines_bigint_id_is_completed.rb", scope="">495 uses one of the allowed migration classes496 migration: #<struct ActiveRecord::MigrationProxy name="RemoveDeprecatedMetricWorkerInstances", version=20230622093921, filename="db/migrate/20230622093921_remove_deprecated_metric_worker_instances.rb", scope="">497 uses one of the allowed migration classes498 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncIndexForCiPipelinesBigintId", version=20230623073906, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230623073906_prepare_async_index_for_ci_pipelines_bigint_id.rb", scope="">499 uses one of the allowed migration classes500 migration: #<struct ActiveRecord::MigrationProxy name="BackfillInstanceAuditEventName", version=20230626065725, filename="db/migrate/20230626065725_backfill_instance_audit_event_name.rb", scope="">501 uses one of the allowed migration classes502 migration: #<struct ActiveRecord::MigrationProxy name="BackfillExternalAuditEventName", version=20230626065755, filename="db/migrate/20230626065755_backfill_external_audit_event_name.rb", scope="">503 uses one of the allowed migration classes504 migration: #<struct ActiveRecord::MigrationProxy name="DropUnusedSentNotificationColumns", version=20230626070723, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230626070723_drop_unused_sent_notification_columns.rb", scope="">505 uses one of the allowed migration classes506 migration: #<struct ActiveRecord::MigrationProxy name="AddNotNullToExternalAuditEvent", version=20230626070959, filename="db/migrate/20230626070959_add_not_null_to_external_audit_event.rb", scope="">507 uses one of the allowed migration classes508 migration: #<struct ActiveRecord::MigrationProxy name="AddNotNullToInstanceAuditEvent", version=20230626071100, filename="db/migrate/20230626071100_add_not_null_to_instance_audit_event.rb", scope="">509 uses one of the allowed migration classes510 migration: #<struct ActiveRecord::MigrationProxy name="DropTmpIndexJobArtifactsIdAndExpireAt", version=20230626072436, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230626072436_drop_tmp_index_job_artifacts_id_and_expire_at.rb", scope="">511 uses one of the allowed migration classes512 migration: #<struct ActiveRecord::MigrationProxy name="CreateIndexForVulnerabilityReadsOnCommonProjectFilters", version=20230626101519, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230626101519_create_index_for_vulnerability_reads_on_common_project_filters.rb", scope="">513 uses one of the allowed migration classes514 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectIdToScanResultPolicies", version=20230626113908, filename="db/migrate/20230626113908_add_project_id_to_scan_result_policies.rb", scope="">515 uses one of the allowed migration classes516 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToScanResultPoliciesOnProjectId", version=20230626113909, filename="db/migrate/20230626113909_add_index_to_scan_result_policies_on_project_id.rb", scope="">517 uses one of the allowed migration classes518 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectIdForeignKeyToScanResultPolicies", version=20230626113910, filename="db/migrate/20230626113910_add_project_id_foreign_key_to_scan_result_policies.rb", scope="">519 uses one of the allowed migration classes520 migration: #<struct ActiveRecord::MigrationProxy name="AddTemporaryIndexOnVulnerabilityReads", version=20230626115046, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230626115046_add_temporary_index_on_vulnerability_reads.rb", scope="">521 uses one of the allowed migration classes522 migration: #<struct ActiveRecord::MigrationProxy name="AddRuleIdxToScanResultPolicies", version=20230626142009, filename="db/migrate/20230626142009_add_rule_idx_to_scan_result_policies.rb", scope="">523 uses one of the allowed migration classes524 migration: #<struct ActiveRecord::MigrationProxy name="AddRuleIdxConstraintToScanResultPolicies", version=20230626142010, filename="db/migrate/20230626142010_add_rule_idx_constraint_to_scan_result_policies.rb", scope="">525 uses one of the allowed migration classes526 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueIndexToScanResultPoliciesOnPositionInConfiguration", version=20230626143139, filename="db/migrate/20230626143139_add_unique_index_to_scan_result_policies_on_position_in_configuration.rb", scope="">527 uses one of the allowed migration classes528 migration: #<struct ActiveRecord::MigrationProxy name="CreateCatalogResourceVersions", version=20230626211305, filename="db/migrate/20230626211305_create_catalog_resource_versions.rb", scope="">529 uses one of the allowed migration classes530 migration: #<struct ActiveRecord::MigrationProxy name="AddReleaseFkToCatalogResourceVersions", version=20230626215602, filename="db/migrate/20230626215602_add_release_fk_to_catalog_resource_versions.rb", scope="">531 uses one of the allowed migration classes532 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectFkToCatalogResourceVersions", version=20230626215614, filename="db/migrate/20230626215614_add_project_fk_to_catalog_resource_versions.rb", scope="">533 uses one of the allowed migration classes534 migration: #<struct ActiveRecord::MigrationProxy name="AddCatalogResourceFkToCatalogResourceVersions", version=20230626215638, filename="db/migrate/20230626215638_add_catalog_resource_fk_to_catalog_resource_versions.rb", scope="">535 uses one of the allowed migration classes536 migration: #<struct ActiveRecord::MigrationProxy name="ReplacePCiBuildsMetadataForeignKeyV4", version=20230627115305, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230627115305_replace_p_ci_builds_metadata_foreign_key_v4.rb", scope="">537 uses one of the allowed migration classes538 migration: #<struct ActiveRecord::MigrationProxy name="AsyncIndexForVulnerabilitiesUuidTypeMigration", version=20230627140707, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230627140707_async_index_for_vulnerabilities_uuid_type_migration.rb", scope="">539 uses one of the allowed migration classes540 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToPoolRepositories", version=20230627174139, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230627174139_add_index_to_pool_repositories.rb", scope="">541 uses one of the allowed migration classes542 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillMissingCiCdSettings", version=20230628023103, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230628023103_queue_backfill_missing_ci_cd_settings.rb", scope="">543 uses one of the allowed migration classes544 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForNotesForGitlabCom", version=20230629011859, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230629011859_cleanup_bigint_conversion_for_notes_for_gitlab_com.rb", scope="">545 uses one of the allowed migration classes546 migration: #<struct ActiveRecord::MigrationProxy name="EnsureEventsBigintBackfillIsFinishedForGitlabDotCom", version=20230629024032, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230629024032_ensure_events_bigint_backfill_is_finished_for_gitlab_dot_com.rb", scope="">547 uses one of the allowed migration classes548 migration: #<struct ActiveRecord::MigrationProxy name="EventsBigintCreateIndexeAsyncForGitlabDotCom", version=20230629024403, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230629024403_events_bigint_create_indexe_async_for_gitlab_dot_com.rb", scope="">549 uses one of the allowed migration classes550 migration: #<struct ActiveRecord::MigrationProxy name="AddLastEnforcedAtToNamespaceLimits", version=20230629071427, filename="db/migrate/20230629071427_add_last_enforced_at_to_namespace_limits.rb", scope="">551 uses one of the allowed migration classes552 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillUuidConversionColumnInVulnerabilityOccurrences", version=20230629095819, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230629095819_queue_backfill_uuid_conversion_column_in_vulnerability_occurrences.rb", scope="">553 uses one of the allowed migration classes554 migration: #<struct ActiveRecord::MigrationProxy name="CreateFkMlCandidatesOnUserId", version=20230629112833, filename="db/migrate/20230629112833_create_fk_ml_candidates_on_user_id.rb", scope="">555 uses one of the allowed migration classes556 migration: #<struct ActiveRecord::MigrationProxy name="ValidateFkMlCandidatesOnUserId", version=20230629113029, filename="db/migrate/20230629113029_validate_fk_ml_candidates_on_user_id.rb", scope="">557 uses one of the allowed migration classes558 migration: #<struct ActiveRecord::MigrationProxy name="RemoveOldFkMlCandidatesOnUserId", version=20230629113133, filename="db/migrate/20230629113133_remove_old_fk_ml_candidates_on_user_id.rb", scope="">559 uses one of the allowed migration classes560 migration: #<struct ActiveRecord::MigrationProxy name="AddPreviousPersonalAccessTokenToPersonalAccessTokens", version=20230630101337, filename="db/migrate/20230630101337_add_previous_personal_access_token_to_personal_access_tokens.rb", scope="">561 uses one of the allowed migration classes562 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToPersonalAccessTokensOnPreviousPersonalAccessTokenId", version=20230630101342, filename="db/migrate/20230630101342_add_index_to_personal_access_tokens_on_previous_personal_access_token_id.rb", scope="">563 uses one of the allowed migration classes564 migration: #<struct ActiveRecord::MigrationProxy name="AddFkToPersonalAccessTokensOnPreviousPersonalAccessTokenId", version=20230630101347, filename="db/migrate/20230630101347_add_fk_to_personal_access_tokens_on_previous_personal_access_token_id.rb", scope="">565 uses one of the allowed migration classes566 migration: #<struct ActiveRecord::MigrationProxy name="AddStateToCatalogResources", version=20230630170515, filename="db/migrate/20230630170515_add_state_to_catalog_resources.rb", scope="">567 uses one of the allowed migration classes568 migration: #<struct ActiveRecord::MigrationProxy name="EnsureBackfillForCiPipelineVariablesPipelineIdIsFinished", version=20230701043315, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230701043315_ensure_backfill_for_ci_pipeline_variables_pipeline_id_is_finished.rb", scope="">569 uses one of the allowed migration classes570 migration: #<struct ActiveRecord::MigrationProxy name="EnsureAgainBackfillForCiPipelineVariablesPipelineIdIsFinished", version=20230701053315, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230701053315_ensure_again_backfill_for_ci_pipeline_variables_pipeline_id_is_finished.rb", scope="">571 uses one of the allowed migration classes572 migration: #<struct ActiveRecord::MigrationProxy name="AddKubernetesNamespaceColumnToEnvironments", version=20230701195315, filename="db/migrate/20230701195315_add_kubernetes_namespace_column_to_environments.rb", scope="">573 uses one of the allowed migration classes574 migration: #<struct ActiveRecord::MigrationProxy name="CreateAsyncIndexForCiPiplineVariablesPipelineId", version=20230702053002, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230702053002_create_async_index_for_ci_pipline_variables_pipeline_id.rb", scope="">575 uses one of the allowed migration classes576 migration: #<struct ActiveRecord::MigrationProxy name="CleanupProjectPipelineStatusKey", version=20230703024031, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230703024031_cleanup_project_pipeline_status_key.rb", scope="">577 uses one of the allowed migration classes578 migration: #<struct ActiveRecord::MigrationProxy name="AddRelayStateAllowlistApplicationSettings", version=20230703115902, filename="db/migrate/20230703115902_add_relay_state_allowlist_application_settings.rb", scope="">579 uses one of the allowed migration classes580 migration: #<struct ActiveRecord::MigrationProxy name="AddRelayStateAllowlistSamlProviders", version=20230703121859, filename="db/migrate/20230703121859_add_relay_state_allowlist_saml_providers.rb", scope="">581 uses one of the allowed migration classes582 migration: #<struct ActiveRecord::MigrationProxy name="CreateVulnerabilityUuidTypeMigrationIndex", version=20230703122803, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230703122803_create_vulnerability_uuid_type_migration_index.rb", scope="">583 uses one of the allowed migration classes584 migration: #<struct ActiveRecord::MigrationProxy name="PrepareRemovalIndexDeploymentsOnProjectIdSha", version=20230704042302, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230704042302_prepare_removal_index_deployments_on_project_id_sha.rb", scope="">585 uses one of the allowed migration classes586 migration: #<struct ActiveRecord::MigrationProxy name="PrepareRemovalIndexDeploymentsOnProjectIdAndStatus", version=20230704044541, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230704044541_prepare_removal_index_deployments_on_project_id_and_status.rb", scope="">587 uses one of the allowed migration classes588 migration: #<struct ActiveRecord::MigrationProxy name="PrepareRemovalIndexDeploymentsOnEnvironmentIdAndIidAndProjectId", version=20230704050739, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230704050739_prepare_removal_index_deployments_on_environment_id_and_iid_and_project_id.rb", scope="">589 uses one of the allowed migration classes590 migration: #<struct ActiveRecord::MigrationProxy name="ReplacePCiBuildsMetadataForeignKeyV5", version=20230704062132, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230704062132_replace_p_ci_builds_metadata_foreign_key_v5.rb", scope="">591 uses one of the allowed migration classes592 migration: #<struct ActiveRecord::MigrationProxy name="ReplacePCiRunnerMachineBuildsForeignKeyV4", version=20230704062136, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230704062136_replace_p_ci_runner_machine_builds_foreign_key_v4.rb", scope="">593 uses one of the allowed migration classes594 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkPCiBuildsMetadataToBuilds", version=20230704074120, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230704074120_replace_old_fk_p_ci_builds_metadata_to_builds.rb", scope="">595 uses one of the allowed migration classes596 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkPCiRunnerMachineBuildsToBuilds", version=20230704074124, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230704074124_replace_old_fk_p_ci_runner_machine_builds_to_builds.rb", scope="">597 uses one of the allowed migration classes598 migration: #<struct ActiveRecord::MigrationProxy name="CreateTableBatchedGitRefUpdatesDeletions", version=20230704233431, filename="db/migrate/20230704233431_create_table_batched_git_ref_updates_deletions.rb", scope="">599 uses one of the allowed migration classes600 migration: #<struct ActiveRecord::MigrationProxy name="CreateServiceAccessTokens", version=20230705085223, filename="db/migrate/20230705085223_create_service_access_tokens.rb", scope="">601 uses one of the allowed migration classes602 migration: #<struct ActiveRecord::MigrationProxy name="CreateMlModels", version=20230705092150, filename="db/migrate/20230705092150_create_ml_models.rb", scope="">603 uses one of the allowed migration classes604 migration: #<struct ActiveRecord::MigrationProxy name="RemoveUserDetailsProvisionedByGroupAtColumn", version=20230705115215, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230705115215_remove_user_details_provisioned_by_group_at_column.rb", scope="">605 uses one of the allowed migration classes606 migration: #<struct ActiveRecord::MigrationProxy name="RollbackVulnerabilityAdvisoriesForeignKeyOnVulnerableComponentVersions", version=20230705141703, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230705141703_rollback_vulnerability_advisories_foreign_key_on_vulnerable_component_versions.rb", scope="">607 uses one of the allowed migration classes608 migration: #<struct ActiveRecord::MigrationProxy name="RollbackComponentVersionForeignKeyOnVulnerableComponentVersions", version=20230705141733, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230705141733_rollback_component_version_foreign_key_on_vulnerable_component_versions.rb", scope="">609 uses one of the allowed migration classes610 migration: #<struct ActiveRecord::MigrationProxy name="DropVulnerableComponentVersions", version=20230705142241, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230705142241_drop_vulnerable_component_versions.rb", scope="">611 uses one of the allowed migration classes612 migration: #<struct ActiveRecord::MigrationProxy name="DropVulnerabilitiesAdvisories", version=20230705142334, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230705142334_drop_vulnerabilities_advisories.rb", scope="">613 uses one of the allowed migration classes614 migration: #<struct ActiveRecord::MigrationProxy name="DropWrongIndexOnVulnerabilityOccurrences", version=20230705145827, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230705145827_drop_wrong_index_on_vulnerability_occurrences.rb", scope="">615 uses one of the allowed migration classes616 migration: #<struct ActiveRecord::MigrationProxy name="RecreateTypeMigrationIndexOnVulnerabilityOccurrences", version=20230705150100, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230705150100_recreate_type_migration_index_on_vulnerability_occurrences.rb", scope="">617 uses one of the allowed migration classes618 migration: #<struct ActiveRecord::MigrationProxy name="AddGroupMentionEventsToIntegrations", version=20230705155000, filename="db/migrate/20230705155000_add_group_mention_events_to_integrations.rb", scope="">619 uses one of the allowed migration classes620 migration: #<struct ActiveRecord::MigrationProxy name="AddUserIdForeignKeyToMlExperiments", version=20230706011541, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230706011541_add_user_id_foreign_key_to_ml_experiments.rb", scope="">621 uses one of the allowed migration classes622 migration: #<struct ActiveRecord::MigrationProxy name="RemoveIndexEventsOnProjectIdAndIdDescOnMergedAction", version=20230706073937, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230706073937_remove_index_events_on_project_id_and_id_desc_on_merged_action.rb", scope="">623 uses one of the allowed migration classes624 migration: #<struct ActiveRecord::MigrationProxy name="AddTriggerOnOrganizations", version=20230706080234, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230706080234_add_trigger_on_organizations.rb", scope="">625 uses one of the allowed migration classes626 migration: #<struct ActiveRecord::MigrationProxy name="AddColumnModelIdToMlExperiments", version=20230706130217, filename="db/migrate/20230706130217_add_column_model_id_to_ml_experiments.rb", scope="">627 uses one of the allowed migration classes628 migration: #<struct ActiveRecord::MigrationProxy name="RemoveDebianProcessChangesWorkerJobInstances", version=20230706192435, filename="db/migrate/20230706192435_remove_debian_process_changes_worker_job_instances.rb", scope="">629 uses one of the allowed migration classes630 migration: #<struct ActiveRecord::MigrationProxy name="AddExpiryNotifiedAtToMember", version=20230707003301, filename="db/migrate/20230707003301_add_expiry_notified_at_to_member.rb", scope="">631 uses one of the allowed migration classes632 migration: #<struct ActiveRecord::MigrationProxy name="AddEmailsToX509Certificates", version=20230707031923, filename="db/migrate/20230707031923_add_emails_to_x509_certificates.rb", scope="">633 uses one of the allowed migration classes634 migration: #<struct ActiveRecord::MigrationProxy name="CreateMlModelVersions", version=20230707090835, filename="db/migrate/20230707090835_create_ml_model_versions.rb", scope="">635 uses one of the allowed migration classes636 migration: #<struct ActiveRecord::MigrationProxy name="AddFkOnMlModelVersionsToMlModels", version=20230707094002, filename="db/migrate/20230707094002_add_fk_on_ml_model_versions_to_ml_models.rb", scope="">637 uses one of the allowed migration classes638 migration: #<struct ActiveRecord::MigrationProxy name="AddFkOnMlModelVersionsToPackages", version=20230707094003, filename="db/migrate/20230707094003_add_fk_on_ml_model_versions_to_packages.rb", scope="">639 uses one of the allowed migration classes640 migration: #<struct ActiveRecord::MigrationProxy name="ChangeProjectViewDefault", version=20230707114012, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230707114012_change_project_view_default.rb", scope="">641 uses one of the allowed migration classes642 migration: #<struct ActiveRecord::MigrationProxy name="DeduplicateInactiveAlertIntegrations", version=20230707211358, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230707211358_deduplicate_inactive_alert_integrations.rb", scope="">643 uses one of the allowed migration classes644 migration: #<struct ActiveRecord::MigrationProxy name="ChangeAlertIntegrationsUniqueIndex", version=20230707211359, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230707211359_change_alert_integrations_unique_index.rb", scope="">645 uses one of the allowed migration classes646 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToVulnerabilityFindingsOnUuidAgain", version=20230707220646, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230707220646_add_index_to_vulnerability_findings_on_uuid_again.rb", scope="">647 uses one of the allowed migration classes648 migration: #<struct ActiveRecord::MigrationProxy name="EnsureTodosBigintBackfillCompletedForSelfManaged", version=20230710024518, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230710024518_ensure_todos_bigint_backfill_completed_for_self_managed.rb", scope="">649 uses one of the allowed migration classes650 migration: #<struct ActiveRecord::MigrationProxy name="SwapTodosNoteIdToBigintForSelfManaged", version=20230710024903, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230710024903_swap_todos_note_id_to_bigint_for_self_managed.rb", scope="">651 uses one of the allowed migration classes652 migration: #<struct ActiveRecord::MigrationProxy name="AddProtectedPathsForGetRequestToApplicationSettings", version=20230710094027, filename="db/migrate/20230710094027_add_protected_paths_for_get_request_to_application_settings.rb", scope="">653 uses one of the allowed migration classes654 migration: #<struct ActiveRecord::MigrationProxy name="AddExpiresAtToServiceAccessTokens", version=20230710160232, filename="db/migrate/20230710160232_add_expires_at_to_service_access_tokens.rb", scope="">655 uses one of the allowed migration classes656 migration: #<struct ActiveRecord::MigrationProxy name="AddEmojiEventsToWebHooks", version=20230710200434, filename="db/migrate/20230710200434_add_emoji_events_to_web_hooks.rb", scope="">657 uses one of the allowed migration classes658 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfCiPipelineChatDataPipelineId", version=20230711032913, filename="db/migrate/20230711032913_initialize_conversion_of_ci_pipeline_chat_data_pipeline_id.rb", scope="">659 uses one of the allowed migration classes660 migration: #<struct ActiveRecord::MigrationProxy name="BackfillCiPipelineChatDataPipelineIdBigintConversion", version=20230711033030, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230711033030_backfill_ci_pipeline_chat_data_pipeline_id_bigint_conversion.rb", scope="">661 uses one of the allowed migration classes662 migration: #<struct ActiveRecord::MigrationProxy name="DropDefaultPartitionIdValueForCiTables", version=20230711093010, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230711093010_drop_default_partition_id_value_for_ci_tables.rb", scope="">663 uses one of the allowed migration classes664 migration: #<struct ActiveRecord::MigrationProxy name="AddEmailResetOfferedAtToUserDetails", version=20230711151845, filename="db/migrate/20230711151845_add_email_reset_offered_at_to_user_details.rb", scope="">665 uses one of the allowed migration classes666 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleRemoveTempIndexVulnerabilityOccurrences", version=20230711182029, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230711182029_schedule_remove_temp_index_vulnerability_occurrences.rb", scope="">667 uses one of the allowed migration classes668 migration: #<struct ActiveRecord::MigrationProxy name="RemoveTemporaryIndexFromSystemNoteMetadata", version=20230712020407, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230712020407_remove_temporary_index_from_system_note_metadata.rb", scope="">669 uses one of the allowed migration classes670 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkPCiBuildsMetadataToBuildsV2", version=20230712064637, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230712064637_replace_old_fk_p_ci_builds_metadata_to_builds_v2.rb", scope="">671 uses one of the allowed migration classes672 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkPCiRunnerMachineBuildsToBuildsV2", version=20230712064655, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230712064655_replace_old_fk_p_ci_runner_machine_builds_to_builds_v2.rb", scope="">673 uses one of the allowed migration classes674 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfCiPipelineMessagesPipelineId", version=20230712135325, filename="db/migrate/20230712135325_initialize_conversion_of_ci_pipeline_messages_pipeline_id.rb", scope="">675 uses one of the allowed migration classes676 migration: #<struct ActiveRecord::MigrationProxy name="BackfillCiPipelineMessagesPipelineIdBigintConversion", version=20230712135428, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230712135428_backfill_ci_pipeline_messages_pipeline_id_bigint_conversion.rb", scope="">677 uses one of the allowed migration classes678 migration: #<struct ActiveRecord::MigrationProxy name="RemoveChatNamesIntegrationIdColumn", version=20230712141733, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230712141733_remove_chat_names_integration_id_column.rb", scope="">679 uses one of the allowed migration classes680 migration: #<struct ActiveRecord::MigrationProxy name="DropCiJobArtifactsPartitionIdDefault", version=20230712145323, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230712145323_drop_ci_job_artifacts_partition_id_default.rb", scope="">681 uses one of the allowed migration classes682 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillMissingVulnerabilityDismissalDetails", version=20230712145557, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230712145557_queue_backfill_missing_vulnerability_dismissal_details.rb", scope="">683 uses one of the allowed migration classes684 migration: #<struct ActiveRecord::MigrationProxy name="DropCiStagesPartitionIdDefault", version=20230712145821, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230712145821_drop_ci_stages_partition_id_default.rb", scope="">685 uses one of the allowed migration classes686 migration: #<struct ActiveRecord::MigrationProxy name="DropCiBuildTraceMetadataPartitionIdDefault", version=20230712145926, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230712145926_drop_ci_build_trace_metadata_partition_id_default.rb", scope="">687 uses one of the allowed migration classes688 migration: #<struct ActiveRecord::MigrationProxy name="AddReadDependencyToMemberRoles", version=20230712214613, filename="db/migrate/20230712214613_add_read_dependency_to_member_roles.rb", scope="">689 uses one of the allowed migration classes690 migration: #<struct ActiveRecord::MigrationProxy name="ChangePmAdvisoriesUrlsConstraint", version=20230713020247, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230713020247_change_pm_advisories_urls_constraint.rb", scope="">691 uses one of the allowed migration classes692 migration: #<struct ActiveRecord::MigrationProxy name="RemoveNamespacesUsersManagingGroupIdFk", version=20230713021230, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230713021230_remove_namespaces_users_managing_group_id_fk.rb", scope="">693 uses one of the allowed migration classes694 migration: #<struct ActiveRecord::MigrationProxy name="DropCiPipelineVariablePartitionIdDefault", version=20230713100100, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230713100100_drop_ci_pipeline_variable_partition_id_default.rb", scope="">695 uses one of the allowed migration classes696 migration: #<struct ActiveRecord::MigrationProxy name="CreateIndexVulnerabilityFindingsOnUuidSync", version=20230713234121, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230713234121_create_index_vulnerability_findings_on_uuid_sync.rb", scope="">697 uses one of the allowed migration classes698 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexForMemberExpiringQuery", version=20230714015909, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230714015909_add_index_for_member_expiring_query.rb", scope="">699 uses one of the allowed migration classes700 migration: #<struct ActiveRecord::MigrationProxy name="AddNameAndDescriptionToMemberRoles", version=20230714020854, filename="db/migrate/20230714020854_add_name_and_description_to_member_roles.rb", scope="">701 uses one of the allowed migration classes702 migration: #<struct ActiveRecord::MigrationProxy name="AddIsUniqueToProjectAuthorizations", version=20230714084415, filename="db/migrate/20230714084415_add_is_unique_to_project_authorizations.rb", scope="">703 uses one of the allowed migration classes704 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleUniqueIndexProjectAuthorizationsOnUniqueProjectUser", version=20230714095946, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230714095946_schedule_unique_index_project_authorizations_on_unique_project_user.rb", scope="">705 uses one of the allowed migration classes706 migration: #<struct ActiveRecord::MigrationProxy name="AddNamespaceStorageForksCostFactorToApplicationSettings", version=20230714195649, filename="db/migrate/20230714195649_add_namespace_storage_forks_cost_factor_to_application_settings.rb", scope="">707 uses one of the allowed migration classes708 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfCiPipelinesAutoCanceledById", version=20230717055659, filename="db/migrate/20230717055659_initialize_conversion_of_ci_pipelines_auto_canceled_by_id.rb", scope="">709 uses one of the allowed migration classes710 migration: #<struct ActiveRecord::MigrationProxy name="BackfillCiPipelinesAutoCanceledByIdConversion", version=20230717055730, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230717055730_backfill_ci_pipelines_auto_canceled_by_id_conversion.rb", scope="">711 uses one of the allowed migration classes712 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfCiStagesPipelineId", version=20230717062425, filename="db/migrate/20230717062425_initialize_conversion_of_ci_stages_pipeline_id.rb", scope="">713 uses one of the allowed migration classes714 migration: #<struct ActiveRecord::MigrationProxy name="BackfillCiStagesPipelineIdConversion", version=20230717062445, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230717062445_backfill_ci_stages_pipeline_id_conversion.rb", scope="">715 uses one of the allowed migration classes716 migration: #<struct ActiveRecord::MigrationProxy name="AddPreparedAtIndexToMergeRequestsSync", version=20230717091811, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230717091811_add_prepared_at_index_to_merge_requests_sync.rb", scope="">717 uses one of the allowed migration classes718 migration: #<struct ActiveRecord::MigrationProxy name="DropCiJobArtifactsPartitionIdDefaultV2", version=20230717144729, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230717144729_drop_ci_job_artifacts_partition_id_default_v2.rb", scope="">719 uses one of the allowed migration classes720 migration: #<struct ActiveRecord::MigrationProxy name="DropCiStagesPartitionIdDefaultV2", version=20230717144744, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230717144744_drop_ci_stages_partition_id_default_v2.rb", scope="">721 uses one of the allowed migration classes722 migration: #<struct ActiveRecord::MigrationProxy name="DropCiBuildTraceMetadataPartitionIdDefaultV2", version=20230717144802, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230717144802_drop_ci_build_trace_metadata_partition_id_default_v2.rb", scope="">723 uses one of the allowed migration classes724 migration: #<struct ActiveRecord::MigrationProxy name="DropCiPipelineVariablePartitionIdDefaultV2", version=20230717144817, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230717144817_drop_ci_pipeline_variable_partition_id_default_v2.rb", scope="">725 uses one of the allowed migration classes726 migration: #<struct ActiveRecord::MigrationProxy name="AddNugetDuplicateAllowedToNamespacePackageSettings", version=20230717165532, filename="db/migrate/20230717165532_add_nuget_duplicate_allowed_to_namespace_package_settings.rb", scope="">727 uses one of the allowed migration classes728 migration: #<struct ActiveRecord::MigrationProxy name="CreateGroupWikiRepositoryStates", version=20230717200940, filename="db/migrate/20230717200940_create_group_wiki_repository_states.rb", scope="">729 uses one of the allowed migration classes730 migration: #<struct ActiveRecord::MigrationProxy name="SwapEventsTargetIdToBigintForGitlabDotCom", version=20230718020825, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230718020825_swap_events_target_id_to_bigint_for_gitlab_dot_com.rb", scope="">731 uses one of the allowed migration classes732 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForEventsForGitlabCom", version=20230718025027, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230718025027_cleanup_bigint_conversion_for_events_for_gitlab_com.rb", scope="">733 uses one of the allowed migration classes734 migration: #<struct ActiveRecord::MigrationProxy name="AddNamespaceIdToNotes", version=20230718094246, filename="db/migrate/20230718094246_add_namespace_id_to_notes.rb", scope="">735 uses one of the allowed migration classes736 migration: #<struct ActiveRecord::MigrationProxy name="PrepareNotesNamespaceIdIndex", version=20230718094501, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230718094501_prepare_notes_namespace_id_index.rb", scope="">737 uses one of the allowed migration classes738 migration: #<struct ActiveRecord::MigrationProxy name="AddColumnForwardDeploymentRollbackAllowedToCiCdSetting", version=20230718111807, filename="db/migrate/20230718111807_add_column_forward_deployment_rollback_allowed_to_ci_cd_setting.rb", scope="">739 uses one of the allowed migration classes740 migration: #<struct ActiveRecord::MigrationProxy name="AddPackageManagerColumnToSbomOccurrences", version=20230718120802, filename="db/migrate/20230718120802_add_package_manager_column_to_sbom_occurrences.rb", scope="">741 uses one of the allowed migration classes742 migration: #<struct ActiveRecord::MigrationProxy name="AddNormalizedVersionToPackagesNugetMetadatum", version=20230718124213, filename="db/migrate/20230718124213_add_normalized_version_to_packages_nuget_metadatum.rb", scope="">743 uses one of the allowed migration classes744 migration: #<struct ActiveRecord::MigrationProxy name="AddTempIndexForProjectStatisticsPipelineArtifactsSizeMigration", version=20230718145613, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230718145613_add_temp_index_for_project_statistics_pipeline_artifacts_size_migration.rb", scope="">745 uses one of the allowed migration classes746 migration: #<struct ActiveRecord::MigrationProxy name="CreateTargetBranchRules", version=20230718145747, filename="db/migrate/20230718145747_create_target_branch_rules.rb", scope="">747 uses one of the allowed migration classes748 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexPackagesNugetMetadatumOnPackageIdAndNormalizedVersion", version=20230718160522, filename="db/migrate/20230718160522_add_index_packages_nuget_metadatum_on_package_id_and_normalized_version.rb", scope="">749 uses one of the allowed migration classes750 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexPackagesPackagesOnProjectIdAndLowerNameToPackages", version=20230718160749, filename="db/migrate/20230718160749_add_index_packages_packages_on_project_id_and_lower_name_to_packages.rb", scope="">751 uses one of the allowed migration classes752 migration: #<struct ActiveRecord::MigrationProxy name="AddPatchIdToMergeRequestDiffs", version=20230718234602, filename="db/migrate/20230718234602_add_patch_id_to_merge_request_diffs.rb", scope="">753 uses one of the allowed migration classes754 migration: #<struct ActiveRecord::MigrationProxy name="BackfillProjectStatisticsStorageSizeWithoutPipelineArtifactsSize", version=20230719083202, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230719083202_backfill_project_statistics_storage_size_without_pipeline_artifacts_size.rb", scope="">755 uses one of the allowed migration classes756 migration: #<struct ActiveRecord::MigrationProxy name="AddPackageRegistryAllowAnyoneToPullOptionToApplicationSettings", version=20230720062249, filename="db/migrate/20230720062249_add_package_registry_allow_anyone_to_pull_option_to_application_settings.rb", scope="">757 uses one of the allowed migration classes758 migration: #<struct ActiveRecord::MigrationProxy name="IndexMlModelVersionsOnModelIdAndId", version=20230720142334, filename="db/migrate/20230720142334_index_ml_model_versions_on_model_id_and_id.rb", scope="">759 uses one of the allowed migration classes760 migration: #<struct ActiveRecord::MigrationProxy name="IndexProjectIdAndPackageManagerForSbomOccurrences", version=20230721134004, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230721134004_index_project_id_and_package_manager_for_sbom_occurrences.rb", scope="">761 uses one of the allowed migration classes762 migration: #<struct ActiveRecord::MigrationProxy name="IndexProjectIdComponentIdAndIdForSbomOccurrences", version=20230721134546, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230721134546_index_project_id_component_id_and_id_for_sbom_occurrences.rb", scope="">763 uses one of the allowed migration classes764 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexIssuesOnProjectIdAndCreatedAtIssueTypeIncident", version=20230721181046, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230721181046_drop_index_issues_on_project_id_and_created_at_issue_type_incident.rb", scope="">765 uses one of the allowed migration classes766 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexIssuesOnIncidentIssueType", version=20230721194757, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230721194757_drop_index_issues_on_incident_issue_type.rb", scope="">767 uses one of the allowed migration classes768 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexOnIssuesClosedIncidentsByProjectIdAndClosedAt", version=20230721200323, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230721200323_drop_index_on_issues_closed_incidents_by_project_id_and_closed_at.rb", scope="">769 uses one of the allowed migration classes770 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexOnIssuesHealthStatusAscOrder", version=20230721200810, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230721200810_drop_index_on_issues_health_status_asc_order.rb", scope="">771 uses one of the allowed migration classes772 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexOnIssuesHealthStatusDescOrder", version=20230721200849, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230721200849_drop_index_on_issues_health_status_desc_order.rb", scope="">773 uses one of the allowed migration classes774 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfCiSourcesPipelinesSource", version=20230723170936, filename="db/migrate/20230723170936_initialize_conversion_of_ci_sources_pipelines_source.rb", scope="">775 uses one of the allowed migration classes776 migration: #<struct ActiveRecord::MigrationProxy name="BackfillCiSourcesPipelinesSourceConversion", version=20230723171006, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230723171006_backfill_ci_sources_pipelines_source_conversion.rb", scope="">777 uses one of the allowed migration classes778 migration: #<struct ActiveRecord::MigrationProxy name="BackfillDefaultBranchProtectionApplicationSetting", version=20230723203612, filename="db/migrate/20230723203612_backfill_default_branch_protection_application_setting.rb", scope="">779 uses one of the allowed migration classes780 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillDefaultBranchProtectionNamespaceSetting", version=20230724071541, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230724071541_queue_backfill_default_branch_protection_namespace_setting.rb", scope="">781 uses one of the allowed migration classes782 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkPCiBuildsMetadataToBuildsV3", version=20230724085146, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230724085146_replace_old_fk_p_ci_builds_metadata_to_builds_v3.rb", scope="">783 uses one of the allowed migration classes784 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceOldFkPCiRunnerMachineBuildsToBuildsV3", version=20230724085149, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230724085149_replace_old_fk_p_ci_runner_machine_builds_to_builds_v3.rb", scope="">785 uses one of the allowed migration classes786 migration: #<struct ActiveRecord::MigrationProxy name="CleanupConversionBigIntCiBuildNeedsSelfManaged", version=20230724123547, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230724123547_cleanup_conversion_big_int_ci_build_needs_self_managed.rb", scope="">787 uses one of the allowed migration classes788 migration: #<struct ActiveRecord::MigrationProxy name="IndexProjectsOnNamespaceIdAndRepositorySizeLimit", version=20230724150939, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230724150939_index_projects_on_namespace_id_and_repository_size_limit.rb", scope="">789 uses one of the allowed migration classes790 migration: #<struct ActiveRecord::MigrationProxy name="QueueDeleteOrphanedTransferredProjectApprovalRules", version=20230724164745, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230724164745_queue_delete_orphaned_transferred_project_approval_rules.rb", scope="">791 uses one of the allowed migration classes792 migration: #<struct ActiveRecord::MigrationProxy name="PmAffectedPackagesAddVersionsAttribute", version=20230724185321, filename="db/migrate/20230724185321_pm_affected_packages_add_versions_attribute.rb", scope="">793 uses one of the allowed migration classes794 migration: #<struct ActiveRecord::MigrationProxy name="AddTemporaryIndexesForOrphanedApprovalRules", version=20230724212040, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230724212040_add_temporary_indexes_for_orphaned_approval_rules.rb", scope="">795 uses one of the allowed migration classes796 migration: #<struct ActiveRecord::MigrationProxy name="CreateSyncIndexForCiPiplineVariablesPipelineId", version=20230725035942, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230725035942_create_sync_index_for_ci_pipline_variables_pipeline_id.rb", scope="">797 uses one of the allowed migration classes798 migration: #<struct ActiveRecord::MigrationProxy name="AddUpdatedAtToPlanLimits", version=20230725075011, filename="db/migrate/20230725075011_add_updated_at_to_plan_limits.rb", scope="">799 uses one of the allowed migration classes800 migration: #<struct ActiveRecord::MigrationProxy name="UpdateRemoteDevelopmentAgentConfigsForFirewallRules", version=20230725085120, filename="db/migrate/20230725085120_update_remote_development_agent_configs_for_firewall_rules.rb", scope="">801 uses one of the allowed migration classes802 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexMlModelVersionsOnModelId", version=20230725210728, filename="db/migrate/20230725210728_drop_index_ml_model_versions_on_model_id.rb", scope="">803 uses one of the allowed migration classes804 migration: #<struct ActiveRecord::MigrationProxy name="AddNpmScopeAndProjectIndexToPackages", version=20230726072442, filename="db/migrate/20230726072442_add_npm_scope_and_project_index_to_packages.rb", scope="">805 uses one of the allowed migration classes806 migration: #<struct ActiveRecord::MigrationProxy name="AddNamespaceIdToIssueSearchData", version=20230726080527, filename="db/migrate/20230726080527_add_namespace_id_to_issue_search_data.rb", scope="">807 uses one of the allowed migration classes808 migration: #<struct ActiveRecord::MigrationProxy name="AddIssueSearchDataNamespaceIdForeignKey", version=20230726080827, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230726080827_add_issue_search_data_namespace_id_foreign_key.rb", scope="">809 uses one of the allowed migration classes810 migration: #<struct ActiveRecord::MigrationProxy name="AddNameToGoogleCloudLoggingConfiguration", version=20230726104022, filename="db/migrate/20230726104022_add_name_to_google_cloud_logging_configuration.rb", scope="">811 uses one of the allowed migration classes812 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToGoogleCloudLoggingConfigurationName", version=20230726104547, filename="db/migrate/20230726104547_add_text_limit_to_google_cloud_logging_configuration_name.rb", scope="">813 uses one of the allowed migration classes814 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToGoogleCloudLoggingConfiguration", version=20230726104616, filename="db/migrate/20230726104616_add_index_to_google_cloud_logging_configuration.rb", scope="">815 uses one of the allowed migration classes816 migration: #<struct ActiveRecord::MigrationProxy name="AddMaxFileDownloadSizeToApplicationSettings", version=20230726142141, filename="db/migrate/20230726142141_add_max_file_download_size_to_application_settings.rb", scope="">817 uses one of the allowed migration classes818 migration: #<struct ActiveRecord::MigrationProxy name="RemoveIssuesIssueTypeColumn", version=20230726201351, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230726201351_remove_issues_issue_type_column.rb", scope="">819 uses one of the allowed migration classes820 migration: #<struct ActiveRecord::MigrationProxy name="RemovePlanLimitsCiActivePipelinesColumn", version=20230726231029, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230726231029_remove_plan_limits_ci_active_pipelines_column.rb", scope="">821 uses one of the allowed migration classes822 migration: #<struct ActiveRecord::MigrationProxy name="DropPreparedAtIndex", version=20230727102936, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230727102936_drop_prepared_at_index.rb", scope="">823 uses one of the allowed migration classes824 migration: #<struct ActiveRecord::MigrationProxy name="AddPreparedAtCreatedAtIndex", version=20230727103144, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230727103144_add_prepared_at_created_at_index.rb", scope="">825 uses one of the allowed migration classes826 migration: #<struct ActiveRecord::MigrationProxy name="IndexVulnerabilityReadsOnProjectIdAndVulnerabilityId", version=20230727115635, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230727115635_index_vulnerability_reads_on_project_id_and_vulnerability_id.rb", scope="">827 uses one of the allowed migration classes828 migration: #<struct ActiveRecord::MigrationProxy name="AddLabelLockOnMerge", version=20230727144741, filename="db/migrate/20230727144741_add_label_lock_on_merge.rb", scope="">829 uses one of the allowed migration classes830 migration: #<struct ActiveRecord::MigrationProxy name="AddMaxImportRemoteFileSizeToApplicationSettings", version=20230727150416, filename="db/migrate/20230727150416_add_max_import_remote_file_size_to_application_settings.rb", scope="">831 uses one of the allowed migration classes832 migration: #<struct ActiveRecord::MigrationProxy name="DropUniqueIdxOnVulnSignatures", version=20230727203840, filename="db/migrate/20230727203840_drop_unique_idx_on_vuln_signatures.rb", scope="">833 uses one of the allowed migration classes834 migration: #<struct ActiveRecord::MigrationProxy name="RemoveApplicationSettingsIgnoredColumns", version=20230728134722, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230728134722_remove_application_settings_ignored_columns.rb", scope="">835 uses one of the allowed migration classes836 migration: #<struct ActiveRecord::MigrationProxy name="AddAuditorIndexToUsersTable", version=20230728151058, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230728151058_add_auditor_index_to_users_table.rb", scope="">837 uses one of the allowed migration classes838 migration: #<struct ActiveRecord::MigrationProxy name="AddEpicWorkItemType", version=20230728174927, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230728174927_add_epic_work_item_type.rb", scope="">839 uses one of the allowed migration classes840 migration: #<struct ActiveRecord::MigrationProxy name="AddHasMergeRequestToVulnerabilityReads", version=20230728193736, filename="db/migrate/20230728193736_add_has_merge_request_to_vulnerability_reads.rb", scope="">841 uses one of the allowed migration classes842 migration: #<struct ActiveRecord::MigrationProxy name="AddNotesNamespaceIdForeignKey", version=20230731090319, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230731090319_add_notes_namespace_id_foreign_key.rb", scope="">843 uses one of the allowed migration classes844 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnVulnerabilityReadsForFiltering", version=20230731100513, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230731100513_add_index_on_vulnerability_reads_for_filtering.rb", scope="">845 uses one of the allowed migration classes846 migration: #<struct ActiveRecord::MigrationProxy name="RemoveNotNullFromSubscriptionAddOnPurchasesNamespaceId", version=20230731121354, filename="db/migrate/20230731121354_remove_not_null_from_subscription_add_on_purchases_namespace_id.rb", scope="">847 uses one of the allowed migration classes848 migration: #<struct ActiveRecord::MigrationProxy name="RemoveInitializeAnalyticsWorkerJobInstances", version=20230731130351, filename="db/migrate/20230731130351_remove_initialize_analytics_worker_job_instances.rb", scope="">849 uses one of the allowed migration classes850 migration: #<struct ActiveRecord::MigrationProxy name="RemoveTempIndexVulnerabilityOccurrences", version=20230731210422, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230731210422_remove_temp_index_vulnerability_occurrences.rb", scope="">851 uses one of the allowed migration classes852 migration: #<struct ActiveRecord::MigrationProxy name="RetryCleanupBigintConversionForEventsForGitlabCom", version=20230801150214, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230801150214_retry_cleanup_bigint_conversion_for_events_for_gitlab_com.rb", scope="">853 uses one of the allowed migration classes854 migration: #<struct ActiveRecord::MigrationProxy name="AddMaxDecompressionArchiveSizeToApplicationSettings", version=20230802065830, filename="db/migrate/20230802065830_add_max_decompression_archive_size_to_application_settings.rb", scope="">855 uses one of the allowed migration classes856 migration: #<struct ActiveRecord::MigrationProxy name="AddApplicationSettingsMaxDecompressionSizeConstraint", version=20230802070337, filename="db/migrate/20230802070337_add_application_settings_max_decompression_size_constraint.rb", scope="">857 uses one of the allowed migration classes858 migration: #<struct ActiveRecord::MigrationProxy name="QueueFixAllowDescendantsOverrideDisabledSharedRunners", version=20230802085923, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230802085923_queue_fix_allow_descendants_override_disabled_shared_runners.rb", scope="">859 uses one of the allowed migration classes860 migration: #<struct ActiveRecord::MigrationProxy name="DropSchemaInconsistenciesTable", version=20230802090519, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230802090519_drop_schema_inconsistencies_table.rb", scope="">861 uses one of the allowed migration classes862 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueIndexProjectAuthorizationsOnUniqueProjectUser", version=20230802092922, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230802092922_add_unique_index_project_authorizations_on_unique_project_user.rb", scope="">863 uses one of the allowed migration classes864 migration: #<struct ActiveRecord::MigrationProxy name="AddComponentNameAndInputFilePathToSbomOccurrences", version=20230802124027, filename="db/migrate/20230802124027_add_component_name_and_input_file_path_to_sbom_occurrences.rb", scope="">865 uses one of the allowed migration classes866 migration: #<struct ActiveRecord::MigrationProxy name="RemoveNamespacesUserDetailsEnterpriseGroupIdFk", version=20230804121704, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230804121704_remove_namespaces_user_details_enterprise_group_id_fk.rb", scope="">867 uses one of the allowed migration classes868 migration: #<struct ActiveRecord::MigrationProxy name="RemoveNamespacesUserDetailsProvisionedByGroupIdFk", version=20230804121705, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230804121705_remove_namespaces_user_details_provisioned_by_group_id_fk.rb", scope="">869 uses one of the allowed migration classes870 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexCustomEmailVerificationsOnTriggeredAtAndStateStarted", version=20230804133028, filename="db/migrate/20230804133028_add_index_custom_email_verifications_on_triggered_at_and_state_started.rb", scope="">871 uses one of the allowed migration classes872 migration: #<struct ActiveRecord::MigrationProxy name="AddSentryClientsideTracesSampleRate", version=20230804141257, filename="db/migrate/20230804141257_add_sentry_clientside_traces_sample_rate.rb", scope="">873 uses one of the allowed migration classes874 migration: #<struct ActiveRecord::MigrationProxy name="AddSentryClientsideTracesSampleRateConstraint", version=20230804141550, filename="db/migrate/20230804141550_add_sentry_clientside_traces_sample_rate_constraint.rb", scope="">875 uses one of the allowed migration classes876 migration: #<struct ActiveRecord::MigrationProxy name="AddLinkedItemsWorkItemWidget", version=20230807083334, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230807083334_add_linked_items_work_item_widget.rb", scope="">877 uses one of the allowed migration classes878 migration: #<struct ActiveRecord::MigrationProxy name="EnsureIdUniquenessForPCiBuilds", version=20230807085752, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230807085752_ensure_id_uniqueness_for_p_ci_builds.rb", scope="">879 uses one of the allowed migration classes880 migration: #<struct ActiveRecord::MigrationProxy name="AddLabelLockOnMergeRedux", version=20230807202427, filename="db/migrate/20230807202427_add_label_lock_on_merge_redux.rb", scope="">881 uses one of the allowed migration classes882 migration: #<struct ActiveRecord::MigrationProxy name="RenameApplicationSettingsDatabaseApdexSettings", version=20230808123101, filename="db/migrate/20230808123101_rename_application_settings_database_apdex_settings.rb", scope="">883 uses one of the allowed migration classes884 migration: #<struct ActiveRecord::MigrationProxy name="CleanupApplicationSettingsDatabaseApdexSettingsRename", version=20230808123136, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230808123136_cleanup_application_settings_database_apdex_settings_rename.rb", scope="">885 uses one of the allowed migration classes886 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFreeUserCapOverLimtNotifiedAtColumn", version=20230808170646, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230808170646_remove_free_user_cap_over_limt_notified_at_column.rb", scope="">887 uses one of the allowed migration classes888Member889 default values890 is expected to eq 3891 Associations892 is expected to belong to user required: false893 is expected to belong to member_namespace required: false894 is expected to have one member_task895 Validation896 is expected to validate that :user cannot be empty/falsy897 is expected to validate that :source cannot be empty/falsy898 expires_at899 is expected not to allow :expires_at to be ‹Wed, 09 Aug 2023›900 is expected to allow :expires_at to be ‹Fri, 11 Aug 2023›901 is expected to allow :expires_at to be ‹Thu, 10 Aug 2023›902 is expected to allow :expires_at to be ‹nil›903 behaves like an object with email-formatted attributes904 specifically its :invite_email attribute905 with a value of 'info@example.com'906 is valid907 with a value of 'info+test@example.com'908 is valid909 with a value of 'o'reilly@example.com'910 is valid911 with a value of 'mailto:test@example.com'912 is valid913 with a value of 'lol!'+=?><#$%^&*()@gmail.com'914 is valid915 with a value of 'foobar'916 is invalid917 with a value of 'test@test@example.com'918 is invalid919 when an invite email is provided920 doesn't require a user921 requires a valid invite email922 requires a unique invite email scoped to this source923 when an invite email is not provided924 requires a user925 is valid otherwise926 with admin signup restrictions927 when allowed domains for signup is enabled928 adds an error message when email is not accepted929 when denylist is enabled930 adds an error message when email is denied931 when email restrictions is enabled932 adds an error message when email is not accepted933 when a child member inherits its access level934 requires a higher level935 is valid with an equal level936 is valid with a higher level937 project bots938 not a member of any group or project939 is valid940 already member of a project941 is not valid942 Scopes & finders943 .access_for_user_ids944 returns the right access levels945 .in_hierarchy946 is expected to contain exactly #<GroupMember id: 26, access_level: 50, source_id: 43, source_type: "Namespace", user_id: 28, notific..., invite_email_success: true, member_namespace_id: 43, member_role_id: nil, expiry_notified_at: nil>, #<ProjectMember id: 28, access_level: 40, source_id: 8, source_type: "Project", user_id: 31, notifica..., invite_email_success: true, member_namespace_id: 48, member_role_id: nil, expiry_notified_at: nil>, #<GroupMember id: 29, access_level: 50, source_id: 52, source_type: "Namespace", user_id: 33, notific..., invite_email_success: true, member_namespace_id: 52, member_role_id: nil, expiry_notified_at: nil>, and #<ProjectMember id: 31, access_level: 40, source_id: 10, source_type: "Project", user_id: 36, notific..., invite_email_success: true, member_namespace_id: 57, member_role_id: nil, expiry_notified_at: nil>947 with scope prefix948 is expected to contain exactly #<GroupMember id: 32, access_level: 50, source_id: 61, source_type: "Namespace", user_id: 38, notific..., invite_email_success: true, member_namespace_id: 61, member_role_id: nil, expiry_notified_at: nil>, #<GroupMember id: 35, access_level: 50, source_id: 70, source_type: "Namespace", user_id: 43, notific..., invite_email_success: true, member_namespace_id: 70, member_role_id: nil, expiry_notified_at: nil>, and #<ProjectMember id: 37, access_level: 40, source_id: 14, source_type: "Project", user_id: 46, notific..., invite_email_success: true, member_namespace_id: 75, member_role_id: nil, expiry_notified_at: nil>949 with scope suffix950 is expected to contain exactly #<GroupMember id: 38, access_level: 50, source_id: 79, source_type: "Namespace", user_id: 48, notific..., invite_email_success: true, member_namespace_id: 79, member_role_id: nil, expiry_notified_at: nil>, #<GroupMember id: 41, access_level: 50, source_id: 88, source_type: "Namespace", user_id: 53, notific..., invite_email_success: true, member_namespace_id: 88, member_role_id: nil, expiry_notified_at: nil>, and #<ProjectMember id: 43, access_level: 40, source_id: 18, source_type: "Project", user_id: 56, notific..., invite_email_success: true, member_namespace_id: 93, member_role_id: nil, expiry_notified_at: nil>951 .invite952 is expected not to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>953 is expected to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>954 is expected not to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>955 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>956 is expected not to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>957 .non_invite958 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>959 is expected not to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>960 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>961 is expected to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>962 is expected to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>963 .non_minimal_access964 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>965 is expected to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>966 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>967 is expected to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>968 is expected to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>969 is expected not to include #<GroupMember id: 25, access_level: 5, source_id: 18, source_type: "Namespace", user_id: 27, notifica..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>970 .request971 is expected not to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>972 is expected not to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>973 is expected not to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>974 is expected to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>975 is expected not to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>976 .non_request977 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>978 is expected to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>979 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>980 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>981 is expected to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>982 .not_accepted_invitations983 is expected to include #<ProjectMember id: 45, access_level: 40, source_id: 20, source_type: "Project", user_id: nil, notifi..., invite_email_success: true, member_namespace_id: 99, member_role_id: nil, expiry_notified_at: nil>984 is expected not to include #<ProjectMember id: 47, access_level: 40, source_id: 21, source_type: "Project", user_id: nil, notifi... invite_email_success: true, member_namespace_id: 102, member_role_id: nil, expiry_notified_at: nil>985 .not_accepted_invitations_by_user986 is expected to contain exactly #<ProjectMember id: 53, access_level: 40, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>987 .not_expired988 is expected not to include #<GroupMember id: 54, access_level: 50, source_id: 112, source_type: "Namespace", user_id: 68, notifi... invite_email_success: true, member_namespace_id: 112, member_role_id: nil, expiry_notified_at: nil> and #<GroupMember id: 55, access_level: 50, source_id: 114, source_type: "Namespace", user_id: 69, notifi... invite_email_success: true, member_namespace_id: 114, member_role_id: nil, expiry_notified_at: nil>989 is expected to include #<GroupMember id: 56, access_level: 50, source_id: 116, source_type: "Namespace", user_id: 70, notifi... invite_email_success: true, member_namespace_id: 116, member_role_id: nil, expiry_notified_at: nil> and #<GroupMember id: 57, access_level: 50, source_id: 118, source_type: "Namespace", user_id: 71, notifi... invite_email_success: true, member_namespace_id: 118, member_role_id: nil, expiry_notified_at: nil>990 .expiring_and_not_notified991 is expected not to include #<GroupMember id: 59, access_level: 50, source_id: 122, source_type: "Namespace", user_id: 73, notifi...r_namespace_id: 122, member_role_id: nil, expiry_notified_at: "2023-08-10 00:00:00.000000000 +0000">, #<GroupMember id: 61, access_level: 50, source_id: 126, source_type: "Namespace", user_id: 75, notifi... invite_email_success: true, member_namespace_id: 126, member_role_id: nil, expiry_notified_at: nil>, and #<GroupMember id: 62, access_level: 50, source_id: 128, source_type: "Namespace", user_id: 76, notifi... invite_email_success: true, member_namespace_id: 128, member_role_id: nil, expiry_notified_at: nil>992 is expected to include #<GroupMember id: 58, access_level: 50, source_id: 120, source_type: "Namespace", user_id: 72, notifi... invite_email_success: true, member_namespace_id: 120, member_role_id: nil, expiry_notified_at: nil> and #<GroupMember id: 60, access_level: 50, source_id: 124, source_type: "Namespace", user_id: 74, notifi... invite_email_success: true, member_namespace_id: 124, member_role_id: nil, expiry_notified_at: nil>993 .created_today994 is expected not to include #<GroupMember id: 64, access_level: 50, source_id: 132, source_type: "Namespace", user_id: 78, notifi... invite_email_success: true, member_namespace_id: 132, member_role_id: nil, expiry_notified_at: nil>995 is expected to include #<GroupMember id: 63, access_level: 50, source_id: 130, source_type: "Namespace", user_id: 77, notifi... invite_email_success: true, member_namespace_id: 130, member_role_id: nil, expiry_notified_at: nil>996 .last_ten_days_excluding_today997 is expected to include #<GroupMember id: 66, access_level: 50, source_id: 136, source_type: "Namespace", user_id: 80, notifi... invite_email_success: true, member_namespace_id: 136, member_role_id: nil, expiry_notified_at: nil>998 is expected not to include #<GroupMember id: 65, access_level: 50, source_id: 134, source_type: "Namespace", user_id: 79, notifi... invite_email_success: true, member_namespace_id: 134, member_role_id: nil, expiry_notified_at: nil> and #<GroupMember id: 67, access_level: 50, source_id: 138, source_type: "Namespace", user_id: 81, notifi... invite_email_success: true, member_namespace_id: 138, member_role_id: nil, expiry_notified_at: nil>999 .search_invite_email1000 returns only members the matching e-mail1001 .by_access_level1002 by owner1003 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1004 is expected not to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1005 is expected not to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1006 is expected not to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1007 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1008 is expected not to include nil1009 is expected not to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1010 is expected not to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1011 by maintainer1012 is expected not to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1013 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1014 is expected not to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1015 is expected not to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1016 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1017 is expected not to include nil1018 is expected not to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1019 is expected not to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1020 by developer1021 is expected not to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1022 is expected not to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1023 is expected to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1024 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1025 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1026 is expected not to include nil1027 is expected not to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1028 is expected not to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1029 by owner and maintainer1030 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1031 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1032 is expected not to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1033 is expected not to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1034 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1035 is expected not to include nil1036 is expected not to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1037 is expected not to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1038 by owner, maintainer and developer1039 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1040 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1041 is expected to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1042 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1043 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1044 is expected not to include nil1045 is expected not to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1046 is expected not to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1047 .developers1048 is expected not to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1049 is expected not to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1050 is expected to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1051 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1052 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1053 is expected to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1054 is expected not to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1055 is expected not to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1056 .owners_and_maintainers1057 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1058 is expected not to include #<GroupMember id: 15, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 16, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1059 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1060 is expected not to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1061 is expected not to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1062 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1063 is expected not to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1064 is expected not to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1065 .owners1066 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1067 is expected not to include #<GroupMember id: 15, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 16, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1068 is expected not to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1069 is expected not to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1070 is expected not to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1071 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1072 is expected not to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1073 is expected not to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1074 .all_owners1075 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1076 is expected to include #<GroupMember id: 15, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 16, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1077 is expected not to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1078 is expected not to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1079 is expected not to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1080 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1081 is expected not to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1082 is expected not to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1083 .has_access1084 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1085 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1086 is expected to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1087 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1088 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1089 is expected to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1090 is expected not to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1091 is expected not to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1092 .active1093 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1094 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1095 is expected to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1096 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1097 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1098 is expected to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1099 is expected not to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1100 is expected not to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1101 is expected not to include #<GroupMember id: 25, access_level: 5, source_id: 18, source_type: "Namespace", user_id: 27, notifica..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1102 .blocked1103 is expected not to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1104 is expected not to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1105 is expected not to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1106 is expected not to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1107 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1108 is expected not to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1109 is expected to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1110 is expected to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1111 is expected not to include #<GroupMember id: 25, access_level: 5, source_id: 18, source_type: "Namespace", user_id: 27, notifica..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1112 .active_without_invites_and_requests1113 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1114 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1115 is expected not to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1116 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1117 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1118 is expected to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1119 is expected not to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1120 is expected not to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1121 is expected not to include #<GroupMember id: 25, access_level: 5, source_id: 18, source_type: "Namespace", user_id: 27, notifica..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1122 .without_invites_and_requests1123 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1124 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1125 is expected not to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1126 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1127 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1128 is expected to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1129 is expected to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1130 is expected to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1131 is expected not to include #<GroupMember id: 25, access_level: 5, source_id: 18, source_type: "Namespace", user_id: 27, notifica..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1132 is expected not to include #<GroupMember id: 11, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 12, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1133 is expected not to include #<ProjectMember id: 13, access_level: 40, source_id: 3, source_type: "Project", user_id: 13, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1134 .connected_to_user1135 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1136 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1137 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1138 is expected to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1139 is expected to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1140 is expected to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1141 is expected to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1142 is expected to include #<GroupMember id: 25, access_level: 5, source_id: 18, source_type: "Namespace", user_id: 27, notifica..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1143 is expected not to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1144 .authorizable1145 includes the member who has an associated user record, but also having an invite_token1146 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1147 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1148 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1149 is expected to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1150 is expected to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1151 is expected to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1152 is expected not to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1153 is expected not to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1154 is expected not to include #<GroupMember id: 25, access_level: 5, source_id: 18, source_type: "Namespace", user_id: 27, notifica..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1155 is expected not to include #<GroupMember id: 11, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 12, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1156 is expected not to include #<ProjectMember id: 13, access_level: 40, source_id: 3, source_type: "Project", user_id: 13, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1157 .distinct_on_user_with_max_access_level1158 is expected not to include #<GroupMember id: 71, access_level: 30, source_id: 145, source_type: "Namespace", user_id: 15, notifi... invite_email_success: true, member_namespace_id: 145, member_role_id: nil, expiry_notified_at: nil>1159 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1160 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1161 is expected to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1162 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1163 is expected to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1164 is expected to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1165 is expected to include #<ProjectMember id: 17, access_level: 40, source_id: 3, source_type: "Project", user_id: 18, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1166 is expected to include #<ProjectMember id: 18, access_level: 30, source_id: 3, source_type: "Project", user_id: 19, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1167 is expected to include #<GroupMember id: 25, access_level: 5, source_id: 18, source_type: "Namespace", user_id: 27, notifica..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1168 with where conditions1169 is expected to eq [#<GroupMember id: 72, access_level: 50, source_id: 147, source_type: "Namespace", user_id: 85, notif...invite_email_success: true, member_namespace_id: 147, member_role_id: nil, expiry_notified_at: nil>]1170 .with_invited_user_state1171 is expected to include #<GroupMember id: 14, access_level: 50, source_id: 18, source_type: "Namespace", user_id: 15, notific..., invite_email_success: true, member_namespace_id: 18, member_role_id: nil, expiry_notified_at: nil>1172 is expected to include #<ProjectMember id: 16, access_level: 40, source_id: 3, source_type: "Project", user_id: 17, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1173 is expected to include #<ProjectMember id: 20, access_level: 30, source_id: 3, source_type: "Project", user_id: nil, notific..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1174 is expected to include #<ProjectMember id: 22, access_level: 30, source_id: 3, source_type: "Project", user_id: 24, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1175 is expected to include #<ProjectMember id: 23, access_level: 30, source_id: 3, source_type: "Project", user_id: 25, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1176 is expected to include #<ProjectMember id: 24, access_level: 30, source_id: 3, source_type: "Project", user_id: 26, notifica..., invite_email_success: true, member_namespace_id: 17, member_role_id: nil, expiry_notified_at: nil>1177 with invited pending members1178 includes invited user state1179 .with_user1180 returns the member1181 .active_state1182 includes members with an active state1183 does not include members with an awaiting state1184 .excluding_users1185 excludes members with given user ids1186 Delegate methods1187 is expected to respond to #user_name1188 is expected to respond to #user_email1189 .valid_email?1190 is a valid email format1191 is not a valid email format1192 .filter_by_user_type1193 when the user type is valid1194 returns service accounts1195 when the user type is invalid1196 returns nil1197 #accept_request1198 is expected to be truthy1199 is expected to be truthy1200 clears requested_at1201 saves the approving user1202 calls #after_accept_request1203 #invite?1204 is expected to be invite1205 #request?1206 when requests for project and group are raised1207 behaves like calls notification service and todo service1208 is expected to be request1209 behaves like calls notification service and todo service1210 is expected to be request1211 #pending?1212 is expected to be pending1213 is expected to be pending1214 #hook_prerequisites_met?1215 when the member does not have an associated user1216 returns false1217 when the member has an associated user1218 returns true1219 #accept_invite!1220 resets the invite token1221 sets the invite accepted timestamp1222 sets the user1223 calls #after_accept_invite1224 does not accept the invite if saving a new user fails1225 schedules a TasksToBeDone::CreateWorker task1226 authorized projects1227 successfully completes a refresh1228 #decline_invite!1229 destroys the member1230 calls #after_decline_invite1231 #generate_invite_token1232 sets the invite token1233 generate invite token on create1234 sets the invite token1235 when invite was already accepted1236 does not set invite token1237 .find_by_invite_token1238 finds the member1239 .pluck_user_ids1240 plucks the user ids1241 #send_invitation_reminder1242 an invited group member1243 sends a reminder1244 an invited member without a raw invite token set1245 generates a new token1246 an uninvited member1247 does not send a reminder1248 #invite_to_unknown_user?1249 when user is nil1250 is expected to eq true1251 when user is set1252 is expected to eq false1253 destroying a record1254 refreshes user's authorized projects1255 when after_commit :update_highest_role1256 member_type: :project_member, source_type: :project1257 create member1258 when lease is obtained1259 takes the lease but does not release it1260 schedules a job in the future1261 when lease cannot be obtained1262 only schedules one job1263 when member exists1264 update member1265 when access level was changed1266 when lease is obtained1267 takes the lease but does not release it1268 schedules a job in the future1269 when lease cannot be obtained1270 only schedules one job1271 when access level was not changed1272 does not obtain an exclusive lease1273 destroy member1274 when lease is obtained1275 takes the lease but does not release it1276 schedules a job in the future1277 when lease cannot be obtained1278 only schedules one job1279 member_type: :group_member, source_type: :group1280 create member1281 when lease is obtained1282 takes the lease but does not release it1283 schedules a job in the future1284 when lease cannot be obtained1285 only schedules one job1286 when member exists1287 update member1288 when access level was changed1289 when lease is obtained1290 takes the lease but does not release it1291 schedules a job in the future1292 when lease cannot be obtained1293 only schedules one job1294 when access level was not changed1295 does not obtain an exclusive lease1296 destroy member1297 when lease is obtained1298 takes the lease but does not release it1299 schedules a job in the future1300 when lease cannot be obtained1301 only schedules one job1302 log_invitation_token_cleanup1303 when on gitlab.com1304 doesn't log info for members without invitation or accepted invitation1305 logs error for accepted members with token and creates membership1306 when not on gitlab.com1307 does not log error for accepted members with token and creates membership1308 #set_member_namespace_id1309 on create1310 sets the member_namespace_id1311 .sort_by_attribute1312 sort users in ascending order by access-level1313 sort users in descending order by access-level1314 sorts users in descending order by their creation time1315 sorts users in ascending order by their creation time1316 sort users by recent last activity1317 sort users by oldest last activity1318 when sort by recent_sign_in1319 sorts users by recent sign-in time1320 pushes users who never signed in to the end1321 when sort by oldest_sign_in1322 sorts users by the oldest sign-in time1323 pushes users who never signed in to the end1324gitlab:workhorse namespace rake task1325 install1326 clones the origin and creates a gitlab-workhorse binary1327 no dir given1328 aborts and display a help message1329 when an underlying Git command fails1330 aborts and display a help message1331Gitlab::Diff::PositionTracer::LineStrategy1332 #trace1333 diff scenarios1334 when the file was created in the old diff1335 when the file is created in the new diff1336 when the position pointed at an added line in the old diff1337 when the file's content was unchanged between the old and the new diff1338 returns the new position1339 when the position is multiline1340 returns the new position along with line_range1341 when the file's content was changed between the old and the new diff1342 when that line was unchanged between the old and the new diff1343 returns the new position1344 when that line was moved between the old and the new diff1345 returns the new position1346 when that line was changed between the old and the new diff1347 returns the position of the change1348 when that line was deleted between the old and the new diff1349 returns the position of the change1350 when the file is changed in the new diff1351 when the position pointed at an added line in the old diff1352 when the file's content was unchanged between the old and the new diff1353 returns the new position1354 when the file's content was changed between the old and the new diff1355 when that line was unchanged between the old and the new diff1356 returns the new position1357 when that line was moved between the old and the new diff1358 returns the new position1359 when that line was changed between the old and the new diff1360 returns the position of the change1361 when that line was deleted between the old and the new diff1362 returns the position of the change1363 when the file is renamed in the new diff1364 when the position pointed at an added line in the old diff1365 when the file's content was unchanged between the old and the new diff1366 returns the position of the change1367 when the position is multiline1368 returns the new position1369 when the file's content was changed between the old and the new diff1370 when that line was unchanged between the old and the new diff1371 returns the new position1372 when that line was moved between the old and the new diff1373 returns the new position1374 when that line was changed between the old and the new diff1375 returns the position of the change1376 when the file is deleted in the new diff1377 when the position pointed at an added line in the old diff1378 when the file's content was unchanged between the old and the new diff1379 returns the position of the change1380 when the file's content was changed between the old and the new diff1381 when that line was unchanged between the old and the new diff1382 returns the position of the change1383 when that line was moved between the old and the new diff1384 returns the position of the change1385 when that line was changed between the old and the new diff1386 returns the position of the change1387 when that line was deleted between the old and the new diff1388 returns the position of the change1389 when the file is unchanged in the new diff1390 when the position pointed at an added line in the old diff1391 when the file's content was unchanged between the old and the new diff1392 returns the position of the change1393 when the file's content was changed between the old and the new diff1394 when that line was unchanged between the old and the new diff1395 returns the position of the change1396 when that line was moved between the old and the new diff1397 returns the position of the change1398 when that line was changed between the old and the new diff1399 returns the position of the change1400 when that line was deleted between the old and the new diff1401 returns the position of the change1402 when the file was changed in the old diff1403 when the file is created in the new diff1404 when the position pointed at an added line in the old diff1405 when the file's content was unchanged between the old and the new diff1406 returns the new position1407 when the file's content was changed between the old and the new diff1408 when that line was unchanged between the old and the new diff1409 returns the new position1410 when that line was moved between the old and the new diff1411 returns the new position1412 when that line was changed or deleted between the old and the new diff1413 returns the position of the change1414 when the position pointed at a deleted line in the old diff1415 returns the position of the change1416 when the position pointed at an unchanged line in the old diff1417 when the file's content was unchanged between the old and the new diff1418 returns the new position1419 when the file's content was changed between the old and the new diff1420 when that line was unchanged between the old and the new diff1421 returns the new position1422 when that line was moved between the old and the new diff1423 returns the new position1424 when that line was changed or deleted between the old and the new diff1425 returns the position of the change1426 when the file is changed in the new diff1427 when the position pointed at an added line in the old diff1428 when the file's content was unchanged between the old and the new diff1429 returns the new position1430 when the file's content was changed between the old and the new diff1431 when that line was unchanged between the old and the new diff1432 returns the new position1433 when that line was moved between the old and the new diff1434 returns the new position1435 when that line was changed or deleted between the old and the new diff1436 returns the position of the change1437 when the position pointed at a deleted line in the old diff1438 when the file's content was unchanged between the old and the new diff1439 returns the new position1440 typical use scenarios1441 simple push of new commit1442 returns the new positions1443 force push to overwrite last commit1444 returns the new positions1445 force push to delete last commit1446 returns the new positions1447 rebase on top of target branch1448 returns the new positions1449 merge of target branch1450 returns the new positions1451 changing target branch1452 returns the new positions1453Gitlab::ProjectSearchResults1454 with a repository_ref1455 when empty1456 is expected to eq #<Project id:114 namespace128/project-128>>1457 is expected to eq "hello world"1458 when set1459 is expected to eq #<Project id:114 namespace128/project-128>>1460 is expected to eq "refs/heads/test"1461 is expected to eq "hello world"1462 #formatted_count1463 scope: "blobs", count_method: :limited_blobs_count, expected: "99+"1464 returns the expected formatted count1465 scope: "notes", count_method: :limited_notes_count, expected: "99+"1466 returns the expected formatted count1467 scope: "wiki_blobs", count_method: :wiki_blobs_count, expected: "1234"1468 returns the expected formatted count1469 scope: "commits", count_method: :commits_count, expected: "99+"1470 returns the expected formatted count1471 scope: "projects", count_method: :limited_projects_count, expected: "99+"1472 returns the expected formatted count1473 scope: "unknown", count_method: nil, expected: nil1474 returns the expected formatted count1475 blobs1476 limits the search to 100 items1477 wiki_blobs1478 limits the search to 100 items1479 blob search1480 behaves like general blob search1481 finds by name1482 loads all blobs for path matches in single batch1483 finds by content1484 when repository is disabled1485 hides blobs from members1486 hides blobs from non-members1487 when repository is internal1488 finds blobs for members1489 hides blobs from non-members1490 behaves like blob search repository ref1491 when repository_ref exists1492 uses it1493 when repository_ref is not present1494 uses project repository default reference1495 when repository_ref is blank1496 uses project repository default reference1497 behaves like blob search pagination1498 limits search results based on the first page1499 limits search results based on the second page1500 limits search results based on the third page1501 uses the per_page value when passed1502 wiki search1503 behaves like general blob search1504 finds by name1505 loads all blobs for path matches in single batch1506 finds by content1507 when wiki is disabled1508 hides wiki_blobs from members1509 hides wiki_blobs from non-members1510 when wiki is internal1511 finds wiki_blobs for members1512 hides wiki_blobs from non-members1513 behaves like blob search repository ref1514 when repository_ref exists1515 uses it1516 when repository_ref is not present1517 uses wiki repository default reference1518 when repository_ref is blank1519 uses wiki repository default reference1520 behaves like blob search pagination1521 limits search results based on the first page1522 limits search results based on the second page1523 limits search results based on the third page1524 uses the per_page value when passed1525 return type1526 returns list of FoundWikiPage type object1527 issues search1528 does not list issues on private projects1529 confidential issues1530 when the user is non-member1531 does not list project confidential issues for non project members1532 when the member is guest1533 does not list project confidential issues for project members with guest role1534 when the user is the author1535 lists project confidential issues1536 when the user is the assignee1537 lists project confidential issues for assignee1538 when the user is a developer1539 lists project confidential issues1540 when the user is admin1541 when admin mode is enabled1542 lists all project issues1543 when admin mode is disabled1544 does not list project confidential issues1545 filtering1546 state not provided1547 returns opened and closed results1548 all state1549 returns opened and closed results1550 closed state1551 returns only closed results1552 opened state1553 returns only opened results1554 unsupported state1555 returns only opened results1556 filter not provided (all behavior)1557 returns confidential and not confidential results1558 confidential filter1559 returns only confidential results1560 not confidential filter1561 returns not confidential results1562 merge requests search1563 filtering1564 state not provided1565 returns opened and closed results1566 all state1567 returns opened and closed results1568 closed state1569 returns only closed results1570 opened state1571 returns only opened results1572 unsupported state1573 returns only opened results1574 notes search1575 with a public project1576 lists notes1577 with private issues1578 doesn't list issue notes when access is restricted1579 with private merge requests1580 doesn't list merge_request notes when access is restricted1581 #limited_notes_count1582 when count_limit is lower than total amount1583 calls note finder once to get the limited amount of notes1584 when count_limit is higher than total amount1585 calls note finder multiple times to get the limited amount of notes1586 #commits_count1587 limits the number of commits requested1588 commit search1589 pagination1590 returns the correct results for each page1591 returns the correct number of pages1592 limiting requested commits1593 on page 11594 limits to 1001595 on subsequent pages1596 limits to 100 plus page offset1597 by commit message1598 finds commit by message1599 when there are not hits1600 handles when no commit match1601 when repository_ref is provided1602 searches in the specified ref1603 behaves like access restricted commits1604 when project is internal1605 searches if user is authenticated1606 when the user is not authenticated1607 does not search1608 when project is private1609 when the user is not authenticated1610 does not show commit to stranger1611 team access1612 when the user is the creator1613 is expected to contain exactly #<Commit id:59e29889be61e6e0e5e223bfa9ac2721d31605b8 private-project-author/project-187@59e29889be61e6e0e5e223bfa9ac2721d31605b8>1614 when the user is a master1615 is expected to contain exactly #<Commit id:59e29889be61e6e0e5e223bfa9ac2721d31605b8 private-project-author/project-188@59e29889be61e6e0e5e223bfa9ac2721d31605b8>1616 when the user is a reporter1617 is expected to contain exactly #<Commit id:59e29889be61e6e0e5e223bfa9ac2721d31605b8 private-project-author/project-189@59e29889be61e6e0e5e223bfa9ac2721d31605b8>1618 by commit hash1619 shows commit by short hash id1620 shows commit by full hash id1621 handles not existing commit hash correctly1622 behaves like access restricted commits1623 when project is internal1624 searches if user is authenticated1625 when the user is not authenticated1626 does not search1627 when project is private1628 when the user is not authenticated1629 does not show commit to stranger1630 team access1631 when the user is the creator1632 is expected to contain exactly #<Commit id:0b4bc9a49b562e85de7cc9e834518ea6828729b9 private-project-author/project-196@0b4bc9a49b562e85de7cc9e834518ea6828729b9>1633 when the user is a master1634 is expected to contain exactly #<Commit id:0b4bc9a49b562e85de7cc9e834518ea6828729b9 private-project-author/project-197@0b4bc9a49b562e85de7cc9e834518ea6828729b9>1635 when the user is a reporter1636 is expected to contain exactly #<Commit id:0b4bc9a49b562e85de7cc9e834518ea6828729b9 private-project-author/project-198@0b4bc9a49b562e85de7cc9e834518ea6828729b9>1637 user search1638 returns the user belonging to the project matching the search query1639 returns the user belonging to the group matching the search query1640 when multiple projects provided1641 returns users belonging to projects matching the search query1642Ci::RetryJobService1643 #clone!1644 raises an error when an unexpected class is passed1645 when the job to be cloned is a bridge1646 behaves like clones the job1647 when the user has ability to execute job1648 marks the old job as retried1649 when there is a failed job ToDo for the MR1650 resolves the ToDo for the failed job1651 when the job has needs1652 bulk inserts all the needs1653 when the user does not have permission to execute the job1654 raises an error1655 behaves like creates associations for a deployable job1656 when a job with a deployment is retried1657 creates a new deployment1658 does not create a new environment1659 when a job with a dynamic environment is retried1660 creates a new deployment1661 does not create a new environment1662 when given variables1663 does not give variables to the new bridge1664 when the job to be cloned is a build1665 behaves like clones the job1666 when the user has ability to execute job1667 marks the old job as retried1668 when there is a failed job ToDo for the MR1669 resolves the ToDo for the failed job1670 when the job has needs1671 bulk inserts all the needs1672 when the user does not have permission to execute the job1673 raises an error1674 behaves like creates associations for a deployable job1675 when a job with a deployment is retried1676 creates a new deployment1677 does not create a new environment1678 when a job with a dynamic environment is retried1679 creates a new deployment1680 does not create a new environment1681 when given variables1682 when the build is actionable1683 gives variables to the new build1684 when the build is not actionable1685 does not give variables to the new build1686 when enqueue_if_actionable is provided1687 enqueue_if_actionable: true, trait: nil, enqueue_immediately: false1688 behaves like checks enqueue_immediately?1689 returns enqueue_immediately1690 enqueue_if_actionable: true, trait: :manual, enqueue_immediately: true1691 behaves like checks enqueue_immediately?1692 returns enqueue_immediately1693 enqueue_if_actionable: true, trait: :expired_scheduled, enqueue_immediately: true1694 behaves like checks enqueue_immediately?1695 returns enqueue_immediately1696 enqueue_if_actionable: false, trait: nil, enqueue_immediately: false1697 behaves like checks enqueue_immediately?1698 returns enqueue_immediately1699 enqueue_if_actionable: false, trait: :manual, enqueue_immediately: false1700 behaves like checks enqueue_immediately?1701 returns enqueue_immediately1702 enqueue_if_actionable: false, trait: :expired_scheduled, enqueue_immediately: false1703 behaves like checks enqueue_immediately?1704 returns enqueue_immediately1705 #execute1706 when the job to be retried is a bridge1707 and it is not retryable1708 behaves like does not retry the job1709 returns :not_retryable and :unprocessable_entity1710 behaves like retries the job1711 enqueues the new job1712 behaves like clones the job1713 when the user has ability to execute job1714 marks the old job as retried1715 when there is a failed job ToDo for the MR1716 resolves the ToDo for the failed job1717 when the job has needs1718 bulk inserts all the needs1719 when the user does not have permission to execute the job1720 raises an error1721 when there are subsequent processables that are skipped1722 resumes pipeline processing in the subsequent stage1723 updates ownership for subsequent builds1724 updates ownership for subsequent bridges1725 when the pipeline has other jobs1726 when job has a nil scheduling_type1727 populates scheduling_type of processables1728 when job has scheduling_type1729 does not call populate_scheduling_type!1730 when the pipeline is a child pipeline and the bridge uses strategy:depend1731 marks the source bridge as pending1732 when given variables1733 does not give variables to the new bridge1734 when the job to be retried is a build1735 and it is not retryable1736 behaves like does not retry the job1737 returns :not_retryable and :unprocessable_entity1738 behaves like retries the job1739 enqueues the new job1740 behaves like clones the job1741 when the user has ability to execute job1742 marks the old job as retried1743 when there is a failed job ToDo for the MR1744 resolves the ToDo for the failed job1745 when the job has needs1746 bulk inserts all the needs1747 when the user does not have permission to execute the job1748 raises an error1749 when there are subsequent processables that are skipped1750 resumes pipeline processing in the subsequent stage1751 updates ownership for subsequent builds1752 updates ownership for subsequent bridges1753 when the pipeline has other jobs1754 when job has a nil scheduling_type1755 populates scheduling_type of processables1756 when job has scheduling_type1757 does not call populate_scheduling_type!1758 when the pipeline is a child pipeline and the bridge uses strategy:depend1759 marks the source bridge as pending1760 automatic retryable build1761 creates a new build and enqueues BuildQueueWorker1762 when there are subsequent jobs that are skipped1763 does not cause an N+1 when updating the job ownership1764 when given variables1765 when the build is actionable1766 gives variables to the new build1767 when the build is not actionable1768 does not give variables to the new build1769 when job being retried has jobs in previous stages1770 previous_stage_job_status: :created, after_status: "created"1771 updates the new job status to after_status1772 previous_stage_job_status: :pending, after_status: "created"1773 updates the new job status to after_status1774 previous_stage_job_status: :running, after_status: "created"1775 updates the new job status to after_status1776 previous_stage_job_status: :manual, after_status: "created"1777 updates the new job status to after_status1778 previous_stage_job_status: :scheduled, after_status: "created"1779 updates the new job status to after_status1780 previous_stage_job_status: :success, after_status: "pending"1781 updates the new job status to after_status1782 previous_stage_job_status: :failed, after_status: "skipped"1783 updates the new job status to after_status1784 previous_stage_job_status: :skipped, after_status: "pending"1785 updates the new job status to after_status1786 when job being retried has DAG dependencies1787 dag_dependency_status: :created, after_status: "created"1788 updates the new job status to after_status1789 dag_dependency_status: :pending, after_status: "created"1790 updates the new job status to after_status1791 dag_dependency_status: :running, after_status: "created"1792 updates the new job status to after_status1793 dag_dependency_status: :manual, after_status: "created"1794 updates the new job status to after_status1795 dag_dependency_status: :scheduled, after_status: "created"1796 updates the new job status to after_status1797 dag_dependency_status: :success, after_status: "pending"1798 updates the new job status to after_status1799 dag_dependency_status: :failed, after_status: "skipped"1800 updates the new job status to after_status1801 dag_dependency_status: :skipped, after_status: "skipped"1802 updates the new job status to after_status1803 when there are other manual/scheduled jobs1804 trait: nil, enqueue_immediately: false1805 retries the given job but not the other manual/scheduled jobs1806 behaves like checks enqueue_immediately?1807 returns enqueue_immediately1808 trait: :manual, enqueue_immediately: true1809 retries the given job but not the other manual/scheduled jobs1810 behaves like checks enqueue_immediately?1811 returns enqueue_immediately1812 trait: :expired_scheduled, enqueue_immediately: true1813 retries the given job but not the other manual/scheduled jobs1814 behaves like checks enqueue_immediately?1815 returns enqueue_immediately1816Commit1817 modules1818 is expected to includes the Mentionable module1819 is expected to includes the Participable module1820 is expected to includes the Referable module1821 is expected to includes the StaticModel module1822 is expected to includes the Presentable module1823 .lazy1824 with project1825 behaves like .lazy checks1826 when the commits are found1827 batches requests for commits1828 maintains ordering1829 does not attempt to replace methods via BatchLoader1830 when not found1831 returns nil as commit1832 with personal snippet1833 behaves like .lazy checks1834 when the commits are found1835 batches requests for commits1836 maintains ordering1837 does not attempt to replace methods via BatchLoader1838 when not found1839 returns nil as commit1840 with project snippet1841 behaves like .lazy checks1842 when the commits are found1843 batches requests for commits1844 maintains ordering1845 does not attempt to replace methods via BatchLoader1846 when not found1847 returns nil as commit1848 .build_from_sidekiq_hash1849 returns a Commit1850 parses date strings into Time instances1851 #diff_refs1852 is equal to itself1853 from a factory1854 is equal to itself1855 #author1856 looks up the author in a case-insensitive way1857 caches the author1858 with a user with an unconfirmed e-mail1859 returns no user1860 using eager loading1861 executes only two SQL queries1862 preloads the authors for Commits matching a user's primary Email1863 preloads the authors for Commits using a User's alternative Email1864 preloads the authors for Commits using a User's private commit Email1865 preloads the authors for Commits using a User's outdated private commit Email1866 sets the author to Nil if an author could not be found for a Commit1867 does not execute SQL queries once the authors are preloaded1868 #committer1869 when committer_email is the user's primary email1870 when the user email is confirmed1871 returns the user1872 when the user email is unconfirmed1873 returns the user according to confirmed argument1874 when committer_email is the user's secondary email1875 when the user email is confirmed1876 returns the user1877 when the user email is unconfirmed1878 does not return the user1879 #to_reference1880 with project1881 returns a String reference to the object1882 supports a cross-project reference1883 with personal snippet1884 returns a String reference to the object1885 supports a cross-snippet reference1886 with project snippet1887 returns a String reference to the object1888 supports a cross-snippet project reference1889 .reference_valid?1890 ref: "1234567", result: true1891 is expected to eq true1892 ref: "123456", result: false1893 is expected to eq false1894 ref: "1", result: false1895 is expected to eq false1896 ref: "0000000000000000000000000000000000000000", result: true1897 is expected to eq true1898 ref: "c1acaa58bbcbc3eafe538cb8274ba387047b69f8", result: true1899 is expected to eq true1900 ref: "H1acaa58bbcbc3eafe538cb8274ba387047b69f8", result: false1901 is expected to eq false1902 ref: nil, result: false1903 is expected to eq false1904 #reference_link_text1905 with project1906 returns a String reference to the object1907 supports a cross-project reference1908 with personal snippet1909 returns a String reference to the object1910 supports a cross-snippet reference1911 with project snippet1912 returns a String reference to the object1913 supports a cross-snippet project reference1914 #title1915 returns no_commit_message when safe_message is blank1916 truncates a message without a newline at natural break to 80 characters1917 truncates a message with a newline before 80 characters at the newline1918 does not truncates a message with a newline after 80 but less 100 characters1919 #full_title1920 returns no_commit_message when safe_message is blank1921 returns entire message if there is no newline1922 returns first line of message if there is a newLine1923 truncates html representation if more than 1KiB1924 description1925 returns no_commit_message when safe_message is blank1926 returns description of commit message if title less than 100 characters1927 returns full commit message if commit title more than 100 characters1928 truncates html representation if more than 1Mib1929 delegation1930 is expected to respond to #message1931 is expected to respond to #authored_date1932 is expected to respond to #committed_date1933 is expected to respond to #committer_email1934 is expected to respond to #author_email1935 is expected to respond to #parents1936 is expected to respond to #date1937 is expected to respond to #diffs1938 is expected to respond to #id1939 behaves like a mentionable1940 generates a descriptive back-reference1941 extracts references from its reference property1942 creates cross-reference notes1943 uses the CachedMarkdownField cache instead of the Mentionable cache1944 when there are cached markdown fields1945 sends in cached markdown fields when appropriate1946 #hook_attrs1947 is expected to be a kind of Hash1948 is expected to include "adds bar folder and branch-test text file to check Repository merged_to_root_ref method"1949 is expected to eq "2016-09-27T14:37:46+00:00"1950 is expected to contain exactly "bar/branch-test.txt"1951 is expected to eq []1952 is expected to eq []1953 #cherry_pick_message1954 of a regular commit1955 is expected to include "\n\n(cherry picked from commit 88790590ed1337ab189bccaa355f068481c90bec)"1956 of a merge commit1957 that is found1958 is expected to include "\n(cherry picked from commit 29b79c748bd6d647d3882f32dd2aa69b6be4e7b6)\n\n467dc98f Add new 'videos' directory\n88790590 Upload new video file"1959 that is existing but not found1960 does not include details of the merged commits1961 #reverts_commit?1962 is expected to be falsy1963 commit has no description1964 is expected to be falsy1965 another_commit's description does not revert commit1966 is expected to be falsy1967 another_commit's description reverts commit1968 is expected to be truthy1969 another_commit's description reverts merged merge request1970 is expected to be truthy1971 #participants1972 includes the commit author1973 includes the committer1974 includes the authors of the commit notes1975 #uri_type with Gitaly enabled1976 behaves like #uri_type1977 returns the URI type at the given path1978 returns nil if the path doesn't exists1979 is nil if the path is nil or empty1980 #uri_type with Rugged enabled1981 calls out to the Rugged implementation1982 behaves like #uri_type1983 returns the URI type at the given path1984 returns nil if the path doesn't exists1985 is nil if the path is nil or empty1986 .diff_max_files1987 returns the current settings1988 .diff_max_lines1989 returns the current settings1990 .diff_safe_max_files1991 returns the commit diff max divided by the limit factor of 101992 .diff_safe_max_lines1993 returns the commit diff max divided by the limit factor of 101994 .from_hash1995 with project1996 behaves like returns Commit1997 returns a Commit1998 wraps a Gitlab::Git::Commit1999 stores the correct commit fields2000 with personal snippet2001 behaves like returns Commit2002 returns a Commit2003 wraps a Gitlab::Git::Commit2004 stores the correct commit fields2005 with project snippet2006 behaves like returns Commit2007 returns a Commit2008 wraps a Gitlab::Git::Commit2009 stores the correct commit fields2010 #draft?2011 detects the 'squash! ' prefix2012 detects the 'fixup! ' prefix2013 detects the 'draft: ' prefix2014 detects the '[Draft] ' prefix2015 detects the '(draft) ' prefix2016 detects the 'Draft: ' prefix2017 does not detect a commit just saying 'draft' as draft? == true2018 doesn't detect 'FIXUP!' at the start of the title as a draft2019 doesn't detect 'Draft - ' at the start of the title as a draft2020 doesn't detect 'Wipeout' at the start of the title as a draft2021 doesn't detect 'WIP: ' at the start of the title as a draft2022 doesn't detect '[WIP] ' at the start of the title as a draft2023 doesn't detect 'wip: ' at the start of the title as a draft2024 .valid_hash?2025 checks hash contents2026 checks hash length2027 signed commits2028 returns signature_type properly2029 returns has_signature? properly2030 #has_been_reverted?2031 returns true if the commit has been reverted2032 returns false if the commit has not been reverted2033 containing refs2034 #branches_containing2035 behaves like containing ref names2036 without arguments2037 returns branch names containing the commit2038 with limit argument2039 returns the appropriate amount branch names2040 with tipping refs excluded2041 returns branch names containing the commit without the one with the commit at tip2042 returns the appropriate amount branch names with limit argument2043 #tags_containing2044 behaves like containing ref names2045 without arguments2046 returns branch names containing the commit2047 with limit argument2048 returns the appropriate amount branch names2049 with tipping refs excluded2050 returns branch names containing the commit without the one with the commit at tip2051 returns the appropriate amount branch names with limit argument2052Gitlab::Git::Blob2053 initialize2054 handles nil data2055 records blob size2056 when untruncated2057 attempts to record gitlab_blob_truncated_false2058 when truncated2059 attempts to record gitlab_blob_truncated_true2060 .find with Gitaly enabled2061 behaves like .find2062 nil path2063 is expected to eq nil2064 utf-8 branch2065 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2066 blank path2067 is expected to eq nil2068 file in subdir2069 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2070 is expected to eq "popen.rb"2071 is expected to eq "files/ruby/popen.rb"2072 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2073 is expected to eq "require 'fi"2074 is expected to eq 6692075 is expected to eq "100644"2076 file in root2077 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"2078 is expected to eq ".gitignore"2079 is expected to eq ".gitignore"2080 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2081 is expected to eq "*.rbc\n*.sas"2082 is expected to eq 2412083 is expected to eq "100644"2084 is expected not to be binary in repo2085 file in root with leading slash2086 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"2087 is expected to eq ".gitignore"2088 is expected to eq ".gitignore"2089 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2090 is expected to eq "*.rbc\n*.sas"2091 is expected to eq 2412092 is expected to eq "100644"2093 non-exist file2094 is expected to be nil2095 six submodule2096 is expected to eq "409f37c4f05865e4fb208c771485f211a22c4c2d"2097 is expected to eq ""2098 does not get messed up by load_all_data!2099 does not mark the blob as binary2100 large file2101 is expected to eq 1118032102 is expected to eq 10002103 check that this test is sane2104 can load all data2105 marks the blob as binary2106 .find with Rugged enabled2107 calls out to the Rugged implementation2108 behaves like .find2109 nil path2110 is expected to eq nil2111 utf-8 branch2112 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2113 blank path2114 is expected to eq nil2115 file in subdir2116 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2117 is expected to eq "popen.rb"2118 is expected to eq "files/ruby/popen.rb"2119 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2120 is expected to eq "require 'fi"2121 is expected to eq 6692122 is expected to eq "100644"2123 file in root2124 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"2125 is expected to eq ".gitignore"2126 is expected to eq ".gitignore"2127 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2128 is expected to eq "*.rbc\n*.sas"2129 is expected to eq 2412130 is expected to eq "100644"2131 is expected not to be binary in repo2132 file in root with leading slash2133 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"2134 is expected to eq ".gitignore"2135 is expected to eq ".gitignore"2136 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2137 is expected to eq "*.rbc\n*.sas"2138 is expected to eq 2412139 is expected to eq "100644"2140 non-exist file2141 is expected to be nil2142 six submodule2143 is expected to eq "409f37c4f05865e4fb208c771485f211a22c4c2d"2144 is expected to eq ""2145 does not get messed up by load_all_data!2146 does not mark the blob as binary2147 large file2148 is expected to eq 1118032149 is expected to eq 10002150 check that this test is sane2151 can load all data2152 marks the blob as binary2153 .raw2154 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2155 is expected to eq "require 'fi"2156 is expected to eq 6692157 is expected to be falsey2158 is expected to be nil2159 .batch2160 is expected to eq 22161 first blob2162 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2163 is expected to eq "popen.rb"2164 is expected to eq "files/ruby/popen.rb"2165 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2166 is expected to eq "require 'fi"2167 is expected to eq 6692168 is expected to eq "100644"2169 second blob2170 is expected to eq "409f37c4f05865e4fb208c771485f211a22c4c2d"2171 is expected to eq ""2172 does not mark the blob as binary2173 limiting2174 positive2175 is expected to eq 102176 zero2177 only loads the metadata2178 negative2179 ignores MAX_DATA_DISPLAY_SIZE2180 when large number of blobs requested2181 fetches the blobs in batches2182 .batch_metadata2183 returns an empty data attribute2184 .batch_lfs_pointers2185 returns a list of Gitlab::Git::Blob2186 accepts blob IDs as a lazy enumerator2187 handles empty list of IDs gracefully2188 silently ignores non lfs objects2189 avoids loading large blobs into memory2190 encoding2191 file with russian text2192 has the correct blob attributes2193 file with Japanese text2194 has the correct blob attributes2195 file with ISO-8859 text2196 has the correct blob attributes2197 mode2198 file regular2199 is expected to eq "regex.rb"2200 is expected to eq "files/ruby/regex.rb"2201 is expected to eq 12002202 is expected to eq "100644"2203 file binary2204 is expected to eq "ls"2205 is expected to eq "files/executables/ls"2206 is expected to eq 232207 is expected to eq "100755"2208 file symlink to regular2209 is expected to eq "symlink"2210 is expected to eq "symlink"2211 is expected to eq 62212 is expected to eq "120000"2213 lfs_pointers2214 file a valid lfs pointer2215 is expected to eq true2216 is expected to eq "96f74c6fe7a2979eefb9ec74a5dfc6888fb25543cf99b77586b79afea1da6f97"2217 is expected to eq 12196962218 is expected to eq "ff0ab3afd1616ff78d0331865d922df103b64cf0"2219 is expected to eq "emoji.png"2220 is expected to eq "files/images/emoji.png"2221 is expected to eq 1322222 is expected to eq "100644"2223 #load_all_data!2224 loads missing data2225 with a fully loaded blob2226 doesn't perform any loading2227 #truncated?2228 when blob.size is nil2229 returns false2230 when blob.data is missing2231 returns false2232 when the blob is truncated2233 returns true2234 when the blob is untruncated2235 returns false2236 metrics2237 defines :gitlab_blob_truncated_true counter2238 defines :gitlab_blob_truncated_false counter2239 defines :gitlab_blob_size histogram2240 #lines2241 when the encoding cannot be detected2242 successfully splits the data2243Gitlab::Ci::Parsers::Security::Common2244 #parse!2245 signatures_enabled: true2246 schema validation2247 when the validate flag is set to `false`2248 does not instantiate the validator2249 marks the report as valid2250 keeps the execution flow as normal2251 when the validate flag is set to `true`2252nil versions are discouraged and will be deprecated in Rubygems 42253 instantiates the validator with correct params2254 when the report data is not valid according to the schema2255 adds errors to the report2256 marks the report as invalid2257 does not try to create report entities2258 when the report data is valid according to the schema2259 does not add errors to the report2260 keeps the execution flow as normal2261 and no warnings are present2262 does not add warnings to the report2263 and some warnings are present2264 does add warnings to the report2265 report parsing2266 parsing finding.name2267 when name is provided2268 sets name from the report as a name2269 when name is not provided2270 when location does not exist2271 returns only identifier name2272 when location exists2273 when CVE identifier exists2274 combines identifier with location to create name2275 when CWE identifier exists2276 combines identifier with location to create name2277 when neither CVE nor CWE identifier exist2278 combines identifier with location to create name2279 parsing finding.details2280 when details are provided2281 sets details from the report2282 when details are not provided2283 sets empty hash2284 top-level scanner2285 is the primary scanner2286 returns nil report has no scanner2287 parsing scanners2288 when the report contains top-level scanner2289 sets the scanner of finding as top-level scanner2290 when the report does not contain top-level scanner2291 sets the scanner of finding as `vulnerabilities[].scanner`2292 parsing scan2293 returns scan object for each finding2294 returns nil when scan is not a hash2295 parsing schema version2296 parses the version2297 returns nil when there is no version2298 parsing analyzer2299 associates analyzer with report2300 returns nil when analyzer data is not available2301 parsing flags2302 returns flags object for each finding2303 parsing links2304 returns links object for each finding2305 parsing evidence2306 returns evidence object for each finding2307 setting the uuid2308 sets the UUIDv5 for findings2309 setting the `found_by_pipeline` attribute2310 is expected to eq [#<Ci::Pipeline id: 8, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni...a: nil, external_pull_request_id: nil, ci_ref_id: 4, locked: "artifacts_locked", partition_id: 100>]2311 parsing tracking2312 with invalid tracking information2313 ignores invalid algorithm types2314 with valid tracking information2315 creates signatures for each signature algorithm2316 sets the uuid according to the higest priority signature2317 signatures_enabled: false2318 schema validation2319 when the validate flag is set to `false`2320 does not instantiate the validator2321 marks the report as valid2322 keeps the execution flow as normal2323 when the validate flag is set to `true`2324 instantiates the validator with correct params2325 when the report data is not valid according to the schema2326 adds errors to the report2327 marks the report as invalid2328 does not try to create report entities2329 when the report data is valid according to the schema2330 does not add errors to the report2331 keeps the execution flow as normal2332 and no warnings are present2333 does not add warnings to the report2334 and some warnings are present2335 does add warnings to the report2336 report parsing2337 parsing finding.name2338 when name is provided2339 sets name from the report as a name2340 when name is not provided2341 when location does not exist2342 returns only identifier name2343 when location exists2344 when CVE identifier exists2345 combines identifier with location to create name2346 when CWE identifier exists2347 combines identifier with location to create name2348 when neither CVE nor CWE identifier exist2349 combines identifier with location to create name2350 parsing finding.details2351 when details are provided2352 sets details from the report2353 when details are not provided2354 sets empty hash2355 top-level scanner2356 is the primary scanner2357 returns nil report has no scanner2358 parsing scanners2359 when the report contains top-level scanner2360 sets the scanner of finding as top-level scanner2361 when the report does not contain top-level scanner2362 sets the scanner of finding as `vulnerabilities[].scanner`2363 parsing scan2364 returns scan object for each finding2365 returns nil when scan is not a hash2366 parsing schema version2367 parses the version2368 returns nil when there is no version2369 parsing analyzer2370 associates analyzer with report2371 returns nil when analyzer data is not available2372 parsing flags2373 returns flags object for each finding2374 parsing links2375 returns links object for each finding2376 parsing evidence2377 returns evidence object for each finding2378 setting the uuid2379 sets the UUIDv5 for findings2380 setting the `found_by_pipeline` attribute2381 is expected to eq [#<Ci::Pipeline id: 9, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni...a: nil, external_pull_request_id: nil, ci_ref_id: 5, locked: "artifacts_locked", partition_id: 100>]2382 parsing tracking2383 with invalid tracking information2384 ignores invalid algorithm types2385 with valid tracking information2386 creates signatures for each signature algorithm2387 sets the uuid according to the higest priority signature2388Banzai::Filter::References::MergeRequestReferenceFilter2389 requires project context2390 ignores valid references contained inside 'pre' element2391 ignores valid references contained inside 'code' element2392 ignores valid references contained inside 'a' element2393 ignores valid references contained inside 'style' element2394 performance2395 does not have a N+1 query problem2396 all references2397 adds merge request iid2398 adds project data attribute with project id2399 does not add `has-tooltip` class2400 internal reference2401 links to a valid reference2402 links with adjacent text2403 ignores invalid merge IDs2404 ignores out-of-bounds merge request IDs on the referenced project2405 has the MR title in the title attribute2406 escapes the title attribute2407 includes default classes, without tooltip2408 includes a data-project attribute2409 includes a data-merge-request attribute2410 includes a data-reference-format attribute2411 includes a data-reference-format attribute for URL references2412 includes a data-reference-format attribute for extended summary URL references2413 supports an :only_path context2414 cross-project / cross-namespace complete reference2415 links to a valid reference2416 link has valid text2417 has valid text2418 has correct data attributes2419 ignores invalid merge IDs on the referenced project2420 cross-project / same-namespace complete reference2421 links to a valid reference2422 link has valid text2423 has valid text2424 ignores invalid merge IDs on the referenced project2425 cross-project shorthand reference2426 links to a valid reference2427 link has valid text2428 has valid text2429 ignores invalid merge IDs on the referenced project2430 URL reference for a commit2431 links to a valid reference2432 commit ref tag is valid2433 has valid text2434 ignores invalid commit short_ids on link text2435 cross-project URL reference2436 links to a valid reference2437 links with adjacent text2438 group context2439 links to a valid reference2440MergeRequestDiffFile2441 behaves like a BulkInsertSafe model2442 when calling class methods directly2443 raises an error when method is not bulk-insert safe2444 does not raise an error when method is bulk-insert safe2445 .bulk_insert!2446 when all items are valid2447 inserts them all2448 returns an empty array2449 when some items are invalid2450 does not insert any of them and raises an error2451 inserts them anyway when bypassing validations2452 #diff2453 when diff is not stored2454 when the diff is marked as binary2455 unpacks from base 642456 invalid base642457 returns the raw diff2458 when the diff is not marked as binary2459 returns the raw diff2460 when diff is stored in DB2461 returns UTF-8 string2462 when diff is stored in external storage2463 returns UTF-8 string2464 #utf8_diff2465 does not raise error when the diff is binary2466 calls #diff once2467 externally stored diff caching2468 when external diff is not cached2469 caches external diffs2470 when external diff is already cached2471 reads diff from cached external diff2472 when the diff is marked as binary2473 when the diff is marked as binary2474 unpacks from base 642475 invalid base642476 returns the raw diff2477 when the diff is not marked as binary2478 returns the raw diff2479 when content responds to #encoding2480 encodes content to utf8 encoding2481 when content is blank2482 returns an empty string2483 when exception is raised2484 falls back to #diff2485 when diff is not stored externally2486 calls #diff2487 when exception is raised2488 logs exception and returns an empty string2489WorkItems::UpdateService2490 #execute2491 when applying quick actions2492 when work item type is not the default Issue2493 does not apply the quick action2494 when work item type is the default Issue2495 applies the quick action2496 when title is changed2497 triggers issuable_title_updated graphql subscription2498 behaves like issue_edit snowplow tracking2499 behaves like Snowplow event tracking with RedisHLL context2500 behaves like Snowplow event tracking2501 is emitted2502 behaves like update service that triggers GraphQL work_item_updated subscription2503 triggers graphql subscription workItemUpdated2504 when title is not changed2505 does not trigger issuable_title_updated graphql subscription2506 does not emit Snowplow event2507 when dates are changed2508 tracks users updating work item dates2509 behaves like update service that triggers GraphQL work_item_updated subscription2510 triggers graphql subscription workItemUpdated2511 when decription is changed2512 triggers GraphQL description updated subscription2513 behaves like update service that triggers GraphQL work_item_updated subscription2514 triggers graphql subscription workItemUpdated2515 when decription is not changed2516 does not trigger GraphQL description updated subscription2517 when updating state_event2518 when state_event is close2519 closes the work item2520 when state_event is reopen2521 reopens the work item2522 behaves like work item widgetable service2523 executes callbacks for expected widgets2524 when updating widgets2525 when widget service is not present2526 ignores widget param2527 when the widget does not support update callback2528 ignores widget param2529 for the description widget2530 updates the description of the work item2531 behaves like update service that triggers GraphQL work_item_updated subscription2532 triggers graphql subscription workItemUpdated2533 with mentions2534 when description contains a user mention2535 behaves like creates the todo and sends email2536 creates a todo and sends email2537 when title contains a user mention2538 behaves like creates the todo and sends email2539 creates a todo and sends email2540 when work item validation fails2541 returns validation errors2542 does not execute after-update widgets2543 for start and due date widget2544 when due_date is updated2545 behaves like update service that triggers graphql dates updated subscription2546 triggers graphql subscription issueableDatesUpdated2547 when start_date is updated2548 behaves like update service that triggers graphql dates updated subscription2549 triggers graphql subscription issueableDatesUpdated2550 when no date param is updated2551 does not trigger date updated subscription2552 for the hierarchy widget2553 updates the children of the work item2554 behaves like update service that triggers GraphQL work_item_updated subscription2555 triggers graphql subscription workItemUpdated2556 when child type is invalid2557 returns error status2558 does not update work item attributes2559 when work item validation fails2560 returns validation errors2561 does not execute after-update widgets2562 for milestone widget2563 when milestone is updated2564 triggers 'issuableMilestoneUpdated'2565 behaves like update service that triggers GraphQL work_item_updated subscription2566 triggers graphql subscription workItemUpdated2567 when milestone remains unchanged2568 does not trigger 'issuableMilestoneUpdated'2569 for current user todos widget2570 when action is mark_as_done2571 marks current user todo as done2572 behaves like update service that triggers GraphQL work_item_updated subscription2573 triggers graphql subscription workItemUpdated2574 when action is add2575 adds a ToDo for the work item2576 label updates2577 when labels are changed2578 tracks users updating work item labels2579 behaves like update service that triggers GraphQL work_item_updated subscription2580 triggers graphql subscription workItemUpdated2581 behaves like broadcasting issuable labels updates2582 when label is added2583 triggers the GraphQL subscription2584 when label is removed2585 triggers the GraphQL subscription2586 when label is unchanged2587 does not trigger the GraphQL subscription2588 when labels are not changed2589 when labels param is not provided2590 behaves like work item update that does not track label updates2591 does not track users updating work item labels2592 when labels param is provided but labels remain unchanged2593 behaves like work item update that does not track label updates2594 does not track users updating work item labels2595 when labels param is provided invalid values2596 behaves like work item update that does not track label updates2597 does not track users updating work item labels2598UsersController routing2599 to #show2600 to #gpg_keys2601 to #groups2602 to #projects2603 to #contributed2604 to #snippets2605 to #ssh_keys2606 to #calendar2607 to #calendar_activities2608SearchController routing2609 to #show2610Mounted Apps routing2611 to API2612SnippetsController routing2613 to #raw2614 to #index2615 to #new2616 to #edit2617 to #show2618 to #raw from unscoped routing2619 behaves like redirecting a legacy path2620 redirects /snippets/1 to /-/snippets/12621HelpController routing2622 to #index2623 to #show2624ProfilesController routing2625 to #account2626 to #audit_log2627 to #reset_feed_token2628 to #show2629Profiles::PreferencesController routing2630 to #show2631 to #update2632Profiles::KeysController routing2633 to #index2634 to #create2635 to #show2636 to #destroy2637Profiles::GpgKeysController routing2638 to #index2639 to #create2640 to #destroy2641Profiles::EmailsController routing2642 to #index2643 to #create2644 to #destroy2645Profiles::AvatarsController routing2646 to #destroy2647DashboardController routing2648 to #index2649 to #issues2650 to #calendar_issues2651 to #merge_requests2652RootController routing2653 to #index2654Authentication routing2655 GET /users/sign_in2656 POST /users/sign_in2657 POST /users/sign_out2658 POST /users/password2659 GET /users/password/new2660 GET /users/password/edit2661 PUT /users/password2662 with LDAP configured2663 POST /users/auth/ldapmain/callback2664 with LDAP sign-in disabled2665 prevents POST /users/auth/ldapmain/callback2666 with multiple LDAP providers configured2667 POST /users/auth/ldapmain/callback2668 POST /users/auth/ldapsecondary/callback2669HealthCheckController routing2670 to #index2671 also supports passing checks in the url2672InvitesController routing2673 to #show2674SentNotificationsController routing2675 to #unsubscribe2676AutocompleteController routing2677 to #users2678 to #projects2679 to #award_emojis2680 to #merge_request_target_branches2681SandboxController routing2682 to #mermaid2683Snippets::BlobsController routing2684 to #raw2685RunnerSetupController routing2686 to #platforms2687JwksController routing2688 to #index2689Key2690 behaves like having unique enum values2691 has unique values in "usage_type"2692 Associations2693 is expected to belong to user required: false2694 Validation2695 is expected to validate that :title cannot be empty/falsy2696 is expected to validate that the length of :title is at most 2552697 is expected to validate that :key cannot be empty/falsy2698 is expected to validate that the length of :key is at most 50002699 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC98dbu7gxcbmAvwMqz/6AALhSr1jiXG0UC8FQMvoDt+ciB+uSJhg7KlxinKjYJnPGfhX+q2K+mmCGAmI/D6q7rFxE+bn09O+75qgkTHi+suDVE6KG7L3n0alGd/qSevfomR77Snh6fQPdG6sEAZz3kehcpfVnq5/IuLFq9FBrgmu52Jd4XZLQZKkDq6zYOJ69FUkGf93LZIV/OOaS+f+qkOGPCUkdKl7oEcgpVNY9SRjBCduXnvi2CyQnnJVkBguGL5VlXwFXH+17Whs7oFWmdiG+4jzBRLIMz4EuIW09b8Su5PW6+bBuXOifHA8KG5TMmjs5LYdCMPFnhTyDyO3a1 dummy@gitlab.com"›2700 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDGSD77lLtjmzewiBs6nu2R5nu6oNkrAkH/0co1fHHosKfRr+sWkSTKXOVcL7bhRu+tniGBmB5pn+i1qX7BXtrcnv//bCXWIp+me027L4RJa5/Ep077iiTJlzTpcV664xNUXC8mzBr601HR/Z2TzX5DWJvnyqqFkN7qHTYo/+IoKECnKqNzI5SQrAxgi6sbWA5DFQ/nwcqsUSBo5gCCJ/0QPrR19yVV5lJA19EY2LawOb1SJNOFo4mQupSlBZwvERZJ7IqhBTPtQIfrqqz5VJbI13jK3ViZTugIZqydWAhosUyejP3SdCj1KMexrvV95tjUtmhVFlph4tKThQO0p9pXKZNCzYsbQTye6O6Hk2rojOJLyFWqNBVKtI8Ymfu7OQWppRnuUFuhuuS515H1s888bZFMPsC74mPyo0Y7Q9wAoTnQ9Hw6b0J6OfY3PIRVphaCmxh6b7dgSPF...›2701 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACgQDxnZP0TucLH3zcrvt75DPNq+xKqOmJkCEzTytKq4S5MDH0nlx+xOZ9WykhwDHXU0iZBJF7yRdLkZweYDJVKnBzr4t7QP5Sw2/ZdLelvUMWGJjuz28x8Z+8NZ+IxL/exDz7itrhCsLupQhGO1obiIwf8xVzzPoxrQ9dxaN4x965N+QdQcld8O6xfpSE0p5Y3sRn3kp57aHWoNa/bUGZy0OHLr/ig0uc6EKyWsTmEESOgDyV94wOyHR0KNGEENyxQt4BwAbEBn3Y41HKqD358KKh+XjbECebrrBFigdDL/eYFIUlstJ07SK/HtYjZbiUZCPs8bJA+SBaLK0pGGqguM2LXRoMeMUZFwKKKS2LpRqjKGj3Qt7qMnp1SkVhiMnxNqL4nJnDOOVo07xDIPKqIBYO67/cp4Icv3IjKxy6K3EIpLr+iRCxcllpDogxolzFC+pEDVpmEvcrGEv...›2702 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQC5jMyGtgMOVX4t2GuXkbirJA0Edr+qlOH9grnRBPHPo0Npt6XE6ZN3J3hDULTQo03wmekGw42dxdNSgk+F0GjsUBrMLbqrk485MMe0cUbP4lRXNu4ao87wPVM5fAsD4E3FQiZcI6Df011ZGIL7hGTHt6eafTfr9cJheRyYSu6g06rlnFWbbtSh9oQ7Y6sfDLBcsC9ECcXwe3mwViuQXPIVomZ02EdnBbAhbGHDtA+ZbSvTfraxOMjkxkVvvdjLxXEykpwVuZf8eZ+R/Js8jQ5RKvTZMbfxJNsGEqHD32s43ml4VF549Qz2GJDXF7Cld/n3CT6wvw0mMPM0LnykL2v0CMr44bjIA3KsNEs5MhkcBO8sv5hGfcPhrpm9WwI6gd9vdZVcxarVI+iQS947owvdn4VbEZXynCDqEEv3Zh+FA5p23mf2p7DkG/swiK/IPrjr1wmsiWmwIUs...›2703 is expected to allow :key to be ‹"ssh-dss AAAAB3NzaC1kc3MAAAEBALEB3sM2kPy6LKLiyL+UlDx2vzuKrzSD2nsW2Kb70ivIqDNJu5CbqIQSkjdMzJiocs33ESFqXid6ezOtVdDwXHJQRxKGalW1kBbFAPjtMxlDbf559+7qN2zfCfcQsgTmNAZ7O+wltqJmyLv5i4QqNwPDvyeBvJ4C+770DzlcQtpkflKJX+O7i8Ylq34h6UTCTnjry+dFVm1xz97LPf7XuzXGZcAG/eGUNQgxQ2bferKnrpYOXx6cocSRj9W54nrRFMWuDeOspWp4MoYK0FRMfDQYPksUayGUnm1KQTGuDbB0ahRNCOm8b3tfP9Z+vjANAkqenzDuXCpz2PU/Oj6/N/UAAAAhAPOLyut12Mjcp3eUXLe1xSoI5IRXSLsoW9no93dcFNprAAABAQCLhpqKY+PNcwbhhPruL+f+uROghHzDwRNX+e231F4wHHeDDomfWyLVFj31XrHdDXZnS9tTTj5...›2704 is expected to allow :key to be ‹"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJZmkzTgY0fiCQ+DVReyH/fFwTFz0XoR3RUO0u+199H19KFw7mNPxRSMOVS7tEtONj3Q7FcZXfqthHvgAzDiHsc= dummy@gitlab.com"›2705 is expected to allow :key to be ‹"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIETnVTgzqC1gatgSlC4zH6aYt2CAQzgJOhDRvf59ohL6 dummy@gitlab.com"›2706 is expected to allow :key to be ‹"sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBDZ+f5tSRhlB7EN39f93SscTN5PUvbD3UQsNrlE1ZdbwPMMRul2zlPiUvwAvnJitW0jlD/vwZOW2YN+q+iZ5c0MAAAAEc3NoOg== dummy@gitlab.com"›2707 is expected to allow :key to be ‹"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIEX/dQ0v4127bEo8eeG1EV0ApO2lWbSnN6RWusn/NjqIAAAABHNzaDo= dummy@gitlab.com"›2708 is expected not to allow :key to be ‹"foo-bar"›2709 key format2710 does not allow the key that begins with an algorithm name that is unsupported2711 allows the key that begins with supported algorithm name 'ssh-rsa'2712 allows the key that begins with supported algorithm name 'ssh-dss'2713 allows the key that begins with supported algorithm name 'ecdsa-sha2-nistp256'2714 allows the key that begins with supported algorithm name 'ecdsa-sha2-nistp384'2715 allows the key that begins with supported algorithm name 'ecdsa-sha2-nistp521'2716 allows the key that begins with supported algorithm name 'ssh-ed25519'2717 allows the key that begins with supported algorithm name 'sk-ecdsa-sha2-nistp256@openssh.com'2718 allows the key that begins with supported algorithm name 'sk-ssh-ed25519@openssh.com'2719 validation of banned keys2720 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwRIdDlHaIqZXND/l1vFT7ue3rc/DvXh2yx5EFtuxGQRHVxGMazDhV4vj5ANGXDQwUYI0iZh6aOVrDy8I/y9/y+YDGCvsnqrDbuPDjW26s2bBXWgUPiC93T3TA6L2KOxhVcl7mljEOIYACRHPpJNYVGhinCxDUH9LxMrdNXgP5Ok= mateidu@localhost"2721 does not allow banned keys2722 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBnZQ+6nhlPX/JnX5i5hXpljJ89bSnnrsSs51hSPuoJGmoKowBddISK7s10AIpO0xAWGcr8PUr2FOjEBbDHqlRxoXF0Ocms9xv3ql9EYUQ5+U+M6BymWhNTFPOs6gFHUl8Bw3t6c+SRKBpfRFB0yzBj9d093gSdfTAFoz+yLo4vRw=="2723 does not allow banned keys2724 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvIhC5skTzxyHif/7iy3yhxuK6/OB13hjPqrskogkYFrcW8OK4VJT+5+Fx7wd4sQCnVn8rNqahw/x6sfcOMDI/Xvn4yKU4t8TnYf2MpUVr4ndz39L5Ds1n7Si1m2suUNxWbKv58I8+NMhlt2ITraSuTU0NGymWOc8+LNi+MHXdLk= SCCP Superuser"2725 does not allow banned keys2726 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key"2727 does not allow banned keys2728 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwRIdDlHaIqZXND/l1vFT7ue3rc/DvXh2yx5EFtuxGQRHVxGMazDhV4vj5ANGXDQwUYI0iZh6aOVrDy8I/y9/y+YDGCvsnqrDbuPDjW26s2bBXWgUPiC93T3TA6L2KOxhVcl7mljEOIYACRHPpJNYVGhinCxDUH9LxMrdNXgP5Ok= mateidu@localhost"2729 does not allow banned keys2730 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAn8LoId2N5i28cNKuEWWea3yt0I/LdT/NROrF44WZewtxch+DIwteQhM1qL6EKUSqz3Q2geX1crpOsNnyh67xy5lNo086u/QewOCSRAUGrQCXqFQ4JU8ny/qugWALQHjbIaPHj/3zMK09r4cpTSeAU7CW5nQyTKGmh7v9CAfWfcs= adam@localhost.localdomain"2731 does not allow banned keys2732 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAJTDsX+8olPZeyr58g9XE0L8PKT5030NZBPlE7np4hBqx36HoWarWq1Csn8M57dWN9StKbs03k2ggY6sYJK5AW2EWar70um3pYjKQHiZq7mITmitsozFN/K7wu2e2iKRgquUwH5SuYoOJ29n7uhaILXiKZP4/H/dDudqPRSY6tJPAAAAFQDtuWH90mDbU2L/Ms2lfl/cja/wHwAAAIAMBwSHZt2ysOHCFe1WLUvdwVDHUqk3QHTskuuAnMlwMtSvCaUxSatdHahsMZ9VCHjoQUx6j+TcgRLDbMlRLnwUlb6wpniehLBFk+qakGcREqks5NxYzFTJXwROzP72jPvVgQyOZHWq81gCild/ljL7hmrduCqYwxDIz4o7U92UKQAAAIBmhSl9CVPgVMv1xO8DAHVhM1huIIK8mNFrzMJz+JXzBx81ms1kWSeQOC/nraaXFTBlqiQsvB8tzr4xZdbaI/QzVLKNAF5C8BJ4ScNlTIx1aZJwyMil8Nzb+0YAsw5Ja+bEZZvEVlAYnd10qRWrPeEY1txLMmX3wDa+JvJL7fmuBg=="2733 does not allow banned keys2734 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAMq5EcIFdfCjJakyQnP/BBp9oc6mpaZVguf0Znp5C40twiG1lASQJZlM1qOB/hkBWYeBCHUkcOLEnVXSZzB62L+W/LGKodqnsiQPRr57AA6jPc6mNBnejHai8cSdAl9n/0s2IQjdcrxM8CPq2uEyfm0J3AV6Lrbbxr5NgE5xxM+DAAAAFQCmFk/M7Rx2jexsJ9COpHkHwUjcNQAAAIAdg18oByp/tjjDKhWhmmv+HbVIROkRqSxBvuEZEmcWlg38mLIT1bydfpSou/V4rI5ctxwCfJ1rRr66pw6GwCrz4fXmyVlhrj7TrktyQ9+zRXhynF4wdNPWErhNHb8tGlSOFiOBcUTlouX3V/ka6Dkd6ZQrZLQFaH+gjfyTZZ82HQAAAIEArsJgp7RLPOsCeLqoia/eljseBFVDazO5Q0ysUotTw9wgXGGVWREwm8wNggFNb9eCiBAAUfVZVfhVAtFT0pBf/eIVLPXyaMw3prBt7LqeBrbagODc3WAAdMTPIdYYcOKgv+YvTXa51zG64v6pQOfS8WXgKCzDl44puXfYeDk5lVQ="2735 does not allow banned keys2736 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAKwKBw7D4OA1H/uD4htdh04TBIHdbSjeXUSnWJsce8C0tvoB01Yarjv9TFj+tfeDYVWtUK1DA1JkyqSuoAtDANJzF4I6Isyd0KPrW3dHFTcg6Xlz8d3KEaHokY93NOmB/xWEkhme8b7Q0U2iZie2pgWbTLXV0FA+lhskTtPHW3+VAAAAFQDRyayUlVZKXEweF3bUe03zt9e8VQAAAIAEPK1k3Y6ErAbIl96dnUCnZjuWQ7xXy062pf63QuRWI6LYSscm3f1pEknWUNFr/erQ02pkfi2eP9uHl1TI1ql+UmJX3g3frfssLNZwWXAW0m8PbY3HZSs+f5hevM3ua32pnKDmbQ2WpvKNyycKHi81hSI14xMcdblJolhN5iY8/wAAAIAjEe5+0m/TlBtVkqQbUit+s/g+eB+PFQ+raaQdL1uztW3etntXAPH1MjxsAC/vthWYSTYXORkDFMhrO5ssE2rfg9io0NDyTIZt+VRQMGdi++dH8ptU+ldl2ZejLFdTJFwFgcfXz+iQ1mx6h9TPX1crE1KoMAVOj3yKVfKpLB1EkA== root@lbslave"2737 does not allow banned keys2738 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAN3AITryJMQyOKZjAky+mQ/8pOHIlu4q8pzmR0qotKaLm2yye5a0PY2rOaQRAzi7EPheBXbqTb8a8TrHhGXI5P7GUHaJho5HhEnw+5TwAvP72L7LcPwxMxj/rLcR/jV+uLMsVeJVWjwJcUv83yzPXoVjK0hrIm+RLLeuTM+gTylHAAAAFQD5gBdXsXAiTz1atzMg3xDFF1zlowAAAIAlLy6TCMlOBM0IcPsvP/9bEjDj0M8YZazdqt4amO2IaNUPYt9/sIsLOQfxIj8myDK1TOp8NyRJep7V5aICG4f3Q+XktlmLzdWn3sjvbWuIAXe1opjG2T69YhxfHZr8Wn7P4tpCgyqM4uHmUKrfnBzQQ9vkUUWsZoUXM2Z7vUXVfQAAAIAU6eNlphQWDwx0KOBiiYhF9BM6kDbQlyw8333rAG3G4CcjI2G8eYGtpBNliaD185UjCEsjPiudhGil/j4Zt/+VY3aGOLoi8kqXBBc8ZAML9bbkXpyhQhMgwiywx3ciFmvSn2UAin8yurStYPQxtXauZN5PYbdwCHPS7ApIStdpMA== wood@endec1"2739 does not allow banned keys2740 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAISAE3CAX4hsxTw0dRc0gx8nQ41r3Vkj9OmG6LGeKWRmpy7C6vaExuupjxid76fd4aS56lCUEEoRlJ3zE93qoK9acI6EGqGQFLuDZ0fqMyRSX+ilf+1HDo/TRyuraggxp9Hj9LMpZVbpFATMm0+d9Xs7eLmaJjuMsowNlOf8NFdHAAAAFQCwdvqOAkR6QhuiAapQ/9iVuR0UAQAAAIBpLMo4dhSeWkChfv659WLPftxRrX/HR8YMD/jqa3R4PsVM2g6dQ1191nHugtdV7uaMeOqOJ/QRWeYM+UYwT0Zgx2LqvgVSjNDfdjk+ZRY8x3SmExFi62mKFoTGSOCXfcAfuanjaoF+sepnaiLUd+SoJShGYHoqR2QWiysTRqknlwAAAIBLEgYmr9XCSqjENFDVQPFELYKT7Zs9J87PjPS1AP0qF1OoRGZ5mefK6X/6VivPAUWmmmev/BuAs8M1HtfGeGGzMzDIiU/WZQ3bScLB1Ykrcjk7TOFD6xrnk/inYAp5l29hjidoAONcXoHmUAMYOKqn63Q2AsDpExVcmfj99/BlpQ=="2741 does not allow banned keys2742 Methods2743 is expected to respond to #projects2744 is expected to respond to #publishable_key2745 #publishable_keys2746 replaces SSH key comment with simple identifier of username + hostname2747 #update_last_used_at2748 updates the last used timestamp2749 scopes2750 .for_user2751 returns keys of the specified user only2752 .order_last_used_at_desc2753 sorts by last_used_at descending, with null values at last2754 expiration scopes2755 .expired_today_and_not_notified2756 returns keys that expire today and have not been notified2757 .expiring_soon_and_not_notified2758 returns keys that will expire soon2759 usage type scopes2760 auth scope returns auth and auth_and_signing keys2761 signing scope returns signing and auth_and_signing keys2762 validation of uniqueness (based on fingerprint uniqueness)2763 accepts the key once2764 does not accept the exact same key twice2765 does not accept a duplicate key with a different comment2766 #ensure_sha256_fingerprint!2767 with a valid SHA256 fingerprint2768 does nothing2769 with a missing SHA256 fingerprint2770 fingerprints are present2771 with an invalid public key2772 does not throw an exception2773 fingerprint generation2774 generates both md5 and sha256 fingerprints2775 with FIPS mode2776 generates only sha256 fingerprint2777 validate it is a fingerprintable key2778 accepts the fingerprintable key2779 rejects the unfingerprintable key (not a key)2780 factory: :key, characters: ["\n", "\r\n"], expected_sections: 32781 accepts a key with blank space characters after stripping them2782 factory: :key, characters: [" ", " "], expected_sections: 32783 accepts a key with blank space characters after stripping them2784 factory: :key_without_comment, characters: [" ", " "], expected_sections: 22785 accepts a key with blank space characters after stripping them2786 validate it meets key restrictions2787 factory: :rsa_key_2048, minimum: 0, result: true2788 is expected to eq true2789 factory: :dsa_key_2048, minimum: 0, result: true2790 is expected to eq true2791 factory: :ecdsa_key_256, minimum: 0, result: true2792 is expected to eq true2793 factory: :ed25519_key_256, minimum: 0, result: true2794 is expected to eq true2795 factory: :ecdsa_sk_key_256, minimum: 0, result: true2796 is expected to eq true2797 factory: :ed25519_sk_key_256, minimum: 0, result: true2798 is expected to eq true2799 factory: :rsa_key_2048, minimum: 1024, result: true2800 is expected to eq true2801 factory: :rsa_key_2048, minimum: 2048, result: true2802 is expected to eq true2803 factory: :rsa_key_2048, minimum: 4096, result: false2804 is expected to eq false2805 factory: :dsa_key_2048, minimum: 1024, result: true2806 is expected to eq true2807 factory: :dsa_key_2048, minimum: 2048, result: true2808 is expected to eq true2809 factory: :dsa_key_2048, minimum: 4096, result: false2810 is expected to eq false2811 factory: :ecdsa_key_256, minimum: 256, result: true2812 is expected to eq true2813 factory: :ecdsa_key_256, minimum: 384, result: false2814 is expected to eq false2815 factory: :ed25519_key_256, minimum: 256, result: true2816 is expected to eq true2817 factory: :ed25519_key_256, minimum: 384, result: false2818 is expected to eq false2819 factory: :ecdsa_sk_key_256, minimum: 256, result: true2820 is expected to eq true2821 factory: :ecdsa_sk_key_256, minimum: 384, result: false2822 is expected to eq false2823 factory: :ed25519_sk_key_256, minimum: 256, result: true2824 is expected to eq true2825 factory: :ed25519_sk_key_256, minimum: 384, result: false2826 is expected to eq false2827 factory: :rsa_key_2048, minimum: -1, result: false2828 is expected to eq false2829 factory: :dsa_key_2048, minimum: -1, result: false2830 is expected to eq false2831 factory: :ecdsa_key_256, minimum: -1, result: false2832 is expected to eq false2833 factory: :ed25519_key_256, minimum: -1, result: false2834 is expected to eq false2835 factory: :ecdsa_sk_key_256, minimum: -1, result: false2836 is expected to eq false2837 factory: :ed25519_sk_key_256, minimum: -1, result: false2838 is expected to eq false2839 callbacks2840 authorized keys file is enabled2841 adds new key to authorized_file2842 removes key from authorized_file2843 authorized_keys file is disabled2844 does not add the key on creation2845 does not remove the key on destruction2846 #key=2847 strips white spaces2848 invalidates the public_key attribute2849 #refresh_user_cache2850 when the key belongs to a user2851 refreshes the keys count cache for the user2852 when the key does not belong to a user2853 does nothing2854 #signing?2855 returns whether a key can be used for signing2856MergeRequests::AddTodoWhenBuildFailsService2857 #execute2858 commit status with ref2859 notifies the todo service2860 commit status with non-HEAD ref2861 does not notify the todo service2862 commit status without ref2863 does not notify the todo service2864 when commit status is a build allowed to fail2865 does not create todo2866 when build belongs to a merge request pipeline2867 notifies the todo service2868 #close2869 commit status with ref2870 notifies the todo service2871 commit status with non-HEAD ref2872 does not notify the todo service2873 commit status without ref2874 does not notify the todo service2875 when build belongs to a merge request pipeline2876 notifies the todo service2877 #close_all2878 when using pipeline that belongs to merge request2879 resolves todos about failed builds for pipeline2880 when pipeline is not related to merge request2881 does not resolve any todos about failed builds2882Git::TagHooksService2883 System hooks2884 executes system hooks2885 Webhooks2886 executes hooks on the project2887 Pipelines2888 creates a new pipeline2889 Push data2890 annotated tag2891 has expected push data attributes2892 with repository data2893 has expected repository attributes2894 with commits2895 is expected to be a kind of Array2896 has 1 element2897 the commit2898 is expected to include {:timestamp => "2014-02-27T11:01:38+02:00"}2899 has expected commit attributes2900 with an author2901 has expected author attributes2902 lightweight tag2903 has expected push data attributes2904 with repository data2905 has expected repository attributes2906 with commits2907 is expected to be a kind of Array2908 has 1 element2909 the commit2910 is expected to include {:timestamp => "2014-02-27T11:01:38+02:00"}2911 has expected commit attributes2912 with an author2913 has expected author attributes2914gitlab:db namespace rake task2915 mark_migration_complete2916 with a single database2917 marks the migration complete on the given database (PENDING: Skipping because database ci exists)2918 with multiple databases2919 marks the migration complete on each database2920 when the single database task is used2921 marks the migration complete for the given database2922 with geo configured2923 does not create a task for the geo database (PENDING: Skipping because the geo database is not configured)2924 when the migration is already marked complete2925 prints a warning message2926 when an invalid version is given2927 prints an error and exits2928 configure2929 with a single database2930 when geo is not configured2931 when the schema is already loaded2932 migrates the database (PENDING: Skipping because database ci exists)2933 when the schema is not loaded2934 loads the schema and seeds the database (PENDING: Skipping because database ci exists)2935 when only a single table is present2936 loads the schema and seeds the database (PENDING: Skipping because database ci exists)2937 when loading the schema fails2938 does not seed the database (PENDING: Skipping because database ci exists)2939 SKIP_POST_DEPLOYMENT_MIGRATIONS environment variable set2940 when the schema is not loaded2941 adds the post deployment migration path before schema load (PENDING: Skipping because database ci exists)2942 when the schema is loaded2943 ignores post deployment migrations (PENDING: Skipping because database ci exists)2944 when geo is configured2945 when the main database is also configured2946 only configures the main database (PENDING: Skipping because database ci exists)2947 with multiple databases2948 when geo is not configured2949 when no database has the schema loaded2950 loads the schema and seeds all the databases2951 when both databases have the schema loaded2952 migrates the databases without seeding them2953 when only one database has the schema loaded2954 migrates and loads the schema correctly, without seeding the databases2955 when geo is configured2956 does not run tasks against geo (PENDING: Skipping because the geo database is not configured)2957 schema inconsistencies2958 prints the inconsistency message2959 dictionary generate2960 when the dictionary files do not exist2961 generate the dictionary files2962 do not generate the dictionary files for test tables2963 when a new model class is added to the codebase2964 appends new classes to the dictionary2965 when a model class is removed from the codebase2966 keeps the dictionary classes2967 unattended2968 schema_migration_table_exists: false, needs_migrations: false, rake_output: "unattended_migrations_completed"2969 outputs changed message for automation after operations happen2970 schema_migration_table_exists: false, needs_migrations: true, rake_output: "unattended_migrations_completed"2971 outputs changed message for automation after operations happen2972 schema_migration_table_exists: true, needs_migrations: false, rake_output: "unattended_migrations_static"2973 outputs changed message for automation after operations happen2974 schema_migration_table_exists: true, needs_migrations: true, rake_output: "unattended_migrations_completed"2975 outputs changed message for automation after operations happen2976 clean_structure_sql2977 can be executed multiple times within another rake task2978 drop_tables2979 with a single database2980 drops all objects for the database (PENDING: Skipping because some of the extra databases [:ci, :main_clusterwide, :embedding, :geo] are setup)2981 with multiple databases2982 drops all objects for all databases2983 when the single database task is used2984 drops all objects for the given database2985 with geo configured2986 does not create a task for the geo database (PENDING: Skipping because the geo database is not configured)2987 create_dynamic_partitions2988 with a single database2989 delegates syncing of partitions without limiting databases (PENDING: Skipping because some of the extra databases [:ci, :main_clusterwide, :embedding, :geo] are setup)2990 with multiple databases2991 when running the multi-database variant2992 delegates syncing of partitions without limiting databases2993 when running a single-database variant2994 delegates syncing of partitions for the chosen database2995 with geo configured2996 does not create a task for the geo database (PENDING: Skipping because the geo database is not configured)2997 reindex2998 with a single database2999 delegates to Gitlab::Database::Reindexing3000 when reindexing is not enabled3001 is a no-op3002 with multiple databases3003 delegates to Gitlab::Database::Reindexing without a specific database3004 when the single database task is used3005 delegates to Gitlab::Database::Reindexing with a specific database3006 when reindexing is not enabled3007 is a no-op3008 with geo configured3009 does not create a task for the geo database (PENDING: Skipping because the geo database is not configured)3010 enqueue_reindexing_action3011 creates an entry in the queue3012 defaults to main database3013 execute_async_index_operations3014 delegates ci task to Gitlab::Database::AsyncIndexes3015 delegates ci task to Gitlab::Database::AsyncIndexes with specified argument3016 delegates main task to Gitlab::Database::AsyncIndexes3017 delegates main task to Gitlab::Database::AsyncIndexes with specified argument3018 delegates all task to every database with higher default for dev3019 delegates all task to every database with lower default for prod3020 delegates all task to every database with specified argument3021 when feature is not enabled3022 is a no-op3023 with geo configured3024 does not create a task for the geo database (PENDING: Skipping because the geo database is not configured)3025 validate_async_constraints3026 delegates ci task to Gitlab::Database::AsyncConstraints3027 delegates ci task to Gitlab::Database::AsyncConstraints with specified argument3028 delegates main task to Gitlab::Database::AsyncConstraints3029 delegates main task to Gitlab::Database::AsyncConstraints with specified argument3030 delegates all task to every database with higher default for dev3031 delegates all task to every database with lower default for prod3032 delegates all task to every database with specified argument3033 when feature is not enabled3034 is a no-op3035 with geo configured3036 does not create a task for the geo database (PENDING: Skipping because the geo database is not configured)3037 active3038 needs_migration: true, project_count: nil, exit_status: 1, exit_code: false3039 exits 0 or 1 depending on user modifications to the database3040 needs_migration: false, project_count: 1, exit_status: 0, exit_code: true3041 exits 0 or 1 depending on user modifications to the database3042 needs_migration: false, project_count: 0, exit_status: 1, exit_code: false3043 exits 0 or 1 depending on user modifications to the database3044 needs_migration: false, project_count: 2, exit_status: 0, exit_code: true3045 exits 0 or 1 depending on user modifications to the database3046 #migrate_with_instrumentation3047 #up (legacy mode)3048 delegates to the migration runner in legacy mode3049 #sample_background_migrations3050 delegates to the migration runner with a default sample duration3051 delegates to the migration runner with a configured sample duration3052 db: :main3053 #up3054 delegates to the migration runner3055 #down3056 delegates to the migration runner3057 #sample_batched_background_migrations3058 delegates to the migration runner for a specified database with a default sample duration3059 delegates to the migration runner for a specified database and sample duration3060 db: :ci3061 #up3062 delegates to the migration runner3063 #down3064 delegates to the migration runner3065 #sample_batched_background_migrations3066 delegates to the migration runner for a specified database with a default sample duration3067 delegates to the migration runner for a specified database and sample duration3068 #execute_batched_migrations3069 executes all migrations3070 with multiple databases3071 db:schema:dump against a single database3072 invokes gitlab:db:clean_structure_sql3073 db:migrate against a single database3074 invokes gitlab:db:create_dynamic_partitions for the same database3075 db:migrate:geo3076 does not invoke gitlab:db:create_dynamic_partitions (PENDING: Skipping because the geo database is not configured)3077 gitlab:db:reset_as_non_superuser3078 migrate as nonsuperuser check with default username3079 migrate as nonsuperuser check with specified username3080Issues::ZoomLinkService3081 #add_link3082 without existing Zoom meeting3083 when updating an issue3084 appends the new meeting to zoom_meetings3085 tracks the add event3086 creates a zoom_link_added notification3087 issue is incident type3088 behaves like an incident management tracked event3089 .track_event3090 tracks the event using redis3091 behaves like Snowplow event tracking with RedisHLL context3092 behaves like Snowplow event tracking3093 is emitted3094 with insufficient issue update permissions3095 cannot add the meeting3096 creates no notification3097 when creating an issue3098 creates a new zoom meeting3099 with insufficient issue create permissions3100 cannot add the meeting3101 creates no notification3102 with invalid Zoom url3103 cannot add the meeting3104 creates no notification3105 with "added" Zoom meeting3106 cannot add the meeting3107 creates no notification3108 with "added" Zoom meeting and race condition3109 cannot add the meeting3110 creates no notification3111 #can_add_link?3112 without "added" zoom meeting3113 is expected to eq true3114 with insufficient issue update permissions3115 is expected to eq false3116 with Zoom meeting in the issue description3117 is expected to eq false3118 #remove_link3119 with Zoom meeting3120 with existing issue3121 creates no notification3122 can remove the meeting3123 tracks the remove event3124 without existing issue3125 cannot remove the meeting3126 creates no notification3127 with insufficient issue update permissions3128 cannot remove the meeting3129 creates no notification3130 without "added" Zoom meeting3131 cannot remove the meeting3132 creates no notification3133 #can_remove_link?3134 without Zoom meeting3135 is expected to eq false3136 with only "removed" zoom meetings3137 is expected to eq false3138 with "added" Zoom meeting3139 is expected to eq true3140 with "removed" zoom meetings3141 is expected to eq true3142 with insufficient issue update permissions3143 is expected to eq false3144 #parse_link3145 with valid Zoom links3146 description: "Some text https://zoom.us/j/123456789 more text"3147 is expected to eq "https://zoom.us/j/123456789"3148 description: "Mixed https://zoom.us/j/123456789 http://example.com"3149 is expected to eq "https://zoom.us/j/123456789"3150 description: "Multiple link https://zoom.us/my/name https://zoom.us/j/123456789"3151 is expected to eq "https://zoom.us/j/123456789"3152 with invalid Zoom links3153 description: nil3154 is expected to eq nil3155 description: ""3156 is expected to eq nil3157 description: "Text only"3158 is expected to eq nil3159 description: "Non-Zoom http://example.com"3160 is expected to eq nil3161 description: "Almost Zoom http://zoom.us"3162 is expected to eq nil3163Autocomplete::UsersFinder3164 #execute3165 is expected to contain exactly #<User id:719 @johndoe>, #<User id:722 @user244>, #<User id:723 @user245>, and #<User id:724 @user246>3166 preloads the status association3167 when current_user not passed or nil3168 is expected to contain exactly3169 when project passed3170 is expected to contain exactly #<User id:726 @namespace450>3171 when author_id passed3172 and author is active3173 is expected to contain exactly #<User id:726 @namespace450> and #<User id:719 @johndoe>3174 and author is blocked3175 is expected to contain exactly #<User id:726 @namespace450>3176 and author is banned3177 is expected to contain exactly #<User id:726 @namespace450>3178 searching with less than 3 characters3179 allows partial matches3180 when group passed and project not passed3181 is expected to contain exactly #<User id:719 @johndoe>3182 searching with less than 3 characters3183 allows partial matches3184 when passed a subgroup3185 includes users from parent groups as well3186 when filtered by search3187 is expected to contain exactly #<User id:719 @johndoe>3188 searching with less than 3 characters3189 does not allow partial matches3190 when todos exist3191 when filtered by todo_filter without todo_state_filter3192 is expected to contain exactly3193 when filtered by todo_filter with pending todo_state_filter3194 is expected to contain exactly #<User id:719 @johndoe>3195 when filtered by todo_filter with done todo_state_filter3196 is expected to contain exactly #<User id:722 @user244>3197 when filtered by current_user3198 is expected to contain exactly #<User id:720 @blocked_user>, #<User id:719 @johndoe>, #<User id:722 @user244>, and #<User id:723 @user245>3199 when filtered by author_id3200 is expected to contain exactly #<User id:719 @johndoe>, #<User id:722 @user244>, #<User id:723 @user245>, and #<User id:767 @user264>3201 when filtered by state3202 searching without states3203 is expected to contain exactly #<User id:719 @johndoe>, #<User id:722 @user244>, #<User id:723 @user245>, and #<User id:768 @user265>3204 searching with states=active3205 is expected to contain exactly #<User id:719 @johndoe>, #<User id:722 @user244>, #<User id:723 @user245>, and #<User id:769 @user266>3206 searching with states=blocked3207 is expected to contain exactly #<User id:720 @blocked_user>3208 searching with states=banned3209 is expected to contain exactly #<User id:721 @banned_user>3210 searching with states=blocked,banned3211 is expected to contain exactly #<User id:720 @blocked_user> and #<User id:721 @banned_user>3212PagesDomain3213 associations3214 is expected to belong to project required: false3215 .for_project3216 returns domains assigned to project3217 .verified3218 finds verified3219 validate domain3220 is unique3221 is expected to validate that :domain is case-insensitively unique3222 hostname3223 domain "my.domain.com" validity3224 is expected to eq true3225 domain "123.456.789" validity3226 is expected to eq true3227 domain "0x12345.com" validity3228 is expected to eq true3229 domain "0123123" validity3230 is expected to eq true3231 domain "a-reserved.com" validity3232 is expected to eq true3233 domain "a.b-reserved.com" validity3234 is expected to eq true3235 domain "reserved.com" validity3236 is expected to eq true3237 domain "_foo.com" validity3238 is expected to eq false3239 domain "a.reserved.com" validity3240 is expected to eq false3241 domain "a.b.reserved.com" validity3242 is expected to eq false3243 domain nil validity3244 is expected to eq false3245 HTTPS-only3246 pages_https_only: true, certificate: nil, key: nil, auto_ssl_enabled: false, errors_on: [:certificate, :key]3247 is adds the expected errors3248 pages_https_only: true, certificate: nil, key: nil, auto_ssl_enabled: true, errors_on: []3249 is adds the expected errors3250 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: nil, auto_ssl_enabled: false, errors_on: [:key]3251 is adds the expected errors3252 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: nil, auto_ssl_enabled: true, errors_on: [:key]3253 is adds the expected errors3254 pages_https_only: true, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: false, errors_on: [:certificate, :key]3255 is adds the expected errors3256 pages_https_only: true, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: true, errors_on: [:key]3257 is adds the expected errors3258 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: false, errors_on: []3259 is adds the expected errors3260 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: true, errors_on: []3261 is adds the expected errors3262 pages_https_only: false, certificate: nil, key: nil, auto_ssl_enabled: false, errors_on: []3263 is adds the expected errors3264 pages_https_only: false, certificate: nil, key: nil, auto_ssl_enabled: true, errors_on: []3265 is adds the expected errors3266 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: nil, auto_ssl_enabled: false, errors_on: [:key]3267 is adds the expected errors3268 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: nil, auto_ssl_enabled: true, errors_on: [:key]3269 is adds the expected errors3270 pages_https_only: false, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: false, errors_on: [:key]3271 is adds the expected errors3272 pages_https_only: false, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: true, errors_on: [:key]3273 is adds the expected errors3274 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: false, errors_on: []3275 is adds the expected errors3276 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: true, errors_on: []3277 is adds the expected errors3278 when certificate is specified3279 saves validity time3280 validate certificate3281 serverless domain3282 requires certificate and key to be present3283 with matching key3284 is expected to be valid3285 when no certificate is specified3286 is expected not to be valid3287 when no key is specified3288 is expected not to be valid3289 for not matching key3290 is expected not to be valid3291 when certificate is expired3292 when certificate is being changed3293 adds error to certificate3294 when certificate is already saved3295 doesn't add error to certificate3296 with ecdsa certificate3297 is valid3298 when curve is set explicitly by parameters3299 adds errors to private key3300 validations3301 is expected to validate that :verification_code cannot be empty/falsy3302 default values3303 defaults wildcard to false3304 defaults auto_ssl_enabled to false3305 defaults scope to project3306 defaults usage to pages3307 #verification_code3308 is set automatically with 128 bits of SecureRandom data3309 #keyed_verification_code3310 is expected to eq "gitlab-pages-verification-code=e78e88f9e61818c1caefa2c9c6013b3e"3311 #verification_domain3312 is expected to be nil3313 is a well-known subdomain if the domain is present3314 #url3315 is expected to eq "https://my34.domain.com"3316 without the certificate3317 is expected to eq "http://my35.domain.com"3318 #has_matching_key?3319 is expected to be truthy3320 for invalid key3321 is expected to be falsey3322 #has_intermediates?3323 for self signed3324 is expected to be truthy3325 for missing certificate chain3326 is expected to be falsey3327 for trusted certificate chain3328 is expected to be truthy3329 #expired?3330 for valid3331 is expected to be falsey3332 for expired3333 is expected to be truthy3334 #subject3335 is expected to eq "/CN=test-certificate"3336 #certificate_text3337 is expected not to be empty3338 #https?3339 when a certificate is present3340 is expected to be https3341 when no certificate is present3342 is expected not to be https3343 #user_provided_key3344 when certificate is provided by user3345 returns key3346 when certificate is provided by gitlab3347 returns nil3348 #user_provided_certificate3349 when certificate is provided by user3350 returns key3351 when certificate is provided by gitlab3352 returns nil3353 #user_provided_key=3354 when value has been changed3355 assignes new value to key3356 changes certificate source3357 when value has not been not changed3358 does not change certificate source3359 #gitlab_provided_key=3360 when value has been changed3361 assignes new value to key3362 changes certificate source3363 when value has not been not changed3364 does not change certificate source3365 #user_provided_certificate=3366 when value has been changed3367 assignes new value to certificate3368 changes certificate source3369 when value has not been not changed3370 does not change certificate source3371 #gitlab_provided_certificate=3372 when value has been changed3373 assignes new value to certificate3374 changes certificate source3375 when value has not been not changed3376 does not change certificate source3377 #save3378 when we failed to obtain ssl certificate3379 clears failure if auto ssl is disabled3380 does not clear failure on unrelated updates3381 .for_removal3382 when domain is not schedule for removal3383 does not return domain3384 when domain is scheduled for removal yesterday3385 returns domain3386 when domain is scheduled for removal tomorrow3387 does not return domain3388 .instance_serverless3389 returns domains that are wildcard, instance-level, and serverless3390 .need_auto_ssl_renewal3391 contains only domains needing ssl renewal3392 #validate_custom_domain_count_per_project3393 when max custom domain setting is set to 03394 returns without an error3395 when max custom domain setting is not set to 03396 returns with an error for extra domains3397 .find_by_domain_case_insensitive3398 lookup is case-insensitive3399Clusters::Kubernetes::CreateOrUpdateServiceAccountService3400 .gitlab_creator3401 with ABAC cluster3402 behaves like creates service account and token3403 creates a kubernetes service account3404 creates a kubernetes secret3405 with RBAC cluster3406 creates a cluster role binding with cluster-admin access3407 behaves like creates service account and token3408 creates a kubernetes service account3409 creates a kubernetes secret3410 .namespace_creator3411 with ABAC cluster3412 behaves like creates service account and token3413 creates a kubernetes service account3414 creates a kubernetes secret3415 With RBAC enabled cluster3416 creates a namespace object3417 creates a namespaced role binding with admin access3418 creates a role binding granting crossplane database permissions to the service account3419 creates a role and role binding granting knative serving permissions to the service account3420 creates a role and role binding granting crossplane database permissions to the service account3421 behaves like creates service account and token3422 creates a kubernetes service account3423 creates a kubernetes secret3424ReactiveCaching3425 #with_reactive_cache3426 when cache is empty3427 is expected to be nil3428 updates the cache lifespan3429 behaves like reactive worker call3430 performs caching with correct worker3431 behaves like reactive worker call3432 performs caching with correct worker3433 when the cache is full3434 behaves like a cacheable value3435 is expected to eq 43436 does not enqueue a background worker3437 updates the cache lifespan3438 and expired3439 is expected to be nil3440 behaves like reactive worker call3441 performs caching with correct worker3442 behaves like reactive worker call3443 performs caching with correct worker3444 when the cache contains non-nil but blank value3445 behaves like a cacheable value3446 is expected to eq false3447 does not enqueue a background worker3448 updates the cache lifespan3449 and expired3450 is expected to be nil3451 behaves like reactive worker call3452 performs caching with correct worker3453 behaves like reactive worker call3454 performs caching with correct worker3455 when the cache contains nil value3456 behaves like a cacheable value3457 is expected to eq nil3458 does not enqueue a background worker3459 updates the cache lifespan3460 and expired3461 is expected to be nil3462 behaves like reactive worker call3463 performs caching with correct worker3464 behaves like reactive worker call3465 performs caching with correct worker3466 #with_reactive_cache_set3467 calls with_reactive_cache3468 data returned3469 saves keys in set3470 returns the data3471 .reactive_cache_worker_finder3472 with default reactive_cache_worker_finder3473 calls the activerecord find_by method3474 with custom reactive_cache_worker_finder3475 overrides the default reactive_cache_worker_finder3476 #clear_reactive_cache!3477 is expected to be nil3478 is expected to be falsy3479 #exclusively_update_reactive_cache!3480 when the lease is free and lifetime is not exceeded3481 takes and releases the lease3482 enqueues a repeat worker3483 calls a reactive_cache_updated only once if content did not change on subsequent update3484 does not delete the value key3485 behaves like successful cache3486 caches the result of #calculate_reactive_cache3487 does not raise the exception3488 when :external_dependency cache3489 enqueues a repeat worker3490 when reactive_cache_hard_limit is set3491 when cache size is over the overridden limit3492 raises ExceededReactiveCacheLimit exception and does not cache new data3493 when reactive_cache_limit_enabled? is overridden to return false3494 behaves like successful cache3495 caches the result of #calculate_reactive_cache3496 does not raise the exception3497 when cache size is within the overridden limit3498 behaves like successful cache3499 caches the result of #calculate_reactive_cache3500 does not raise the exception3501 and #calculate_reactive_cache raises an exception3502 leaves the cache untouched3503 does not enqueue a repeat worker3504 when lifetime is exceeded3505 skips the calculation3506 deletes the value key3507 when the lease is already taken3508 skips the calculation3509 default options3510 is expected to be a kind of ActiveSupport::Duration3511 is expected to be a kind of ActiveSupport::Duration3512 is expected to be a kind of ActiveSupport::Duration3513 is expected to respond to #call3514 is expected to be nil3515 is expected to respond to #call3516 classes including this concern3517 sets reactive_cache_work_type3518Banzai::Filter::References::WorkItemReferenceFilter3519 # order random3520 subclasses from IssueReferenceFilter3521 when cross-project / same-namespace shorthand reference3522 is handled by IssueReferenceFilter, not WorkItemReferenceFilter3523 performance3524 does not have a N+1 query problem3525 when cross-project / cross-namespace complete reference3526 is handled by IssueReferenceFilter, not WorkItemReferenceFilter3527 when cross-project URL reference3528 behaves like a work item reference3529 links to a valid reference3530 links with adjacent text3531 includes a title attribute3532 escapes the title attribute3533 renders non-HTML tooltips3534 includes default classes3535 includes a data-project attribute3536 includes a data-issue attribute3537 includes data attributes for issuable popover3538 includes a data-original attribute3539 does not escape the data-original attribute3540 includes a data-reference-format attribute3541 includes a data-reference-format attribute for URL references3542 includes a data-reference-format attribute for extended summary URL references3543 does not process links containing issue numbers followed by text3544 behaves like a reference containing an element node3545 does not escape inner html3546 behaves like a reference with work item type information3547 contains work-item-type as a data attribute3548 when cross-project URL reference with comment anchor3549 links to a valid reference3550 link with trailing slash3551 links with adjacent text3552 behaves like a reference containing an element node3553 does not escape inner html3554 behaves like a reference with work item type information3555 contains work-item-type as a data attribute3556 when cross-project / same-namespace complete reference3557 is handled by IssueReferenceFilter, not WorkItemReferenceFilter3558 for group context3559 links to a valid reference for url cross-namespace3560 links to a valid reference for cross-namespace in link href3561 when standard internal reference3562 is handled by IssueReferenceFilter, not WorkItemReferenceFilter3563 when cross-project URL in link href3564 behaves like a work item reference3565 links to a valid reference3566 links with adjacent text3567 includes a title attribute3568 escapes the title attribute3569 renders non-HTML tooltips3570 includes default classes3571 includes a data-project attribute3572 includes a data-issue attribute3573 includes data attributes for issuable popover3574 includes a data-original attribute3575 does not escape the data-original attribute (PENDING: No reason given)3576 includes a data-reference-format attribute (PENDING: No reason given)3577 includes a data-reference-format attribute for URL references3578 includes a data-reference-format attribute for extended summary URL references3579 does not process links containing issue numbers followed by text3580 behaves like a reference containing an element node3581 does not escape inner html3582 behaves like a reference with work item type information3583 contains work-item-type as a data attribute3584 when cross-project reference in link href3585 is handled by IssueReferenceFilter, not WorkItemReferenceFilter3586Gitlab::Json3587 .parse3588 is aliased3589 legacy_mode is disabled by default3590 parses an object3591 parses an array3592 parses a string3593 parses a true bool3594 parses a false bool3595 legacy_mode is enabled3596 parses an object3597 parses an array3598 raises an error on a string3599 raises an error on a true bool3600 raises an error on a false bool3601 feature flag is disabled3602 parses an object3603 parses an array3604 parses a string3605 parses a true bool3606 parses a false bool3607 .parse!3608 legacy_mode is disabled by default3609 parses an object3610 parses an array3611 parses a string3612 parses a true bool3613 parses a false bool3614 legacy_mode is enabled3615 parses an object3616 parses an array3617 raises an error on a string3618 raises an error on a true bool3619 raises an error on a false bool3620 feature flag is disabled3621 parses an object3622 parses an array3623 parses a string3624 parses a true bool3625 parses a false bool3626 .dump3627 dumps an object3628 dumps an array3629 dumps a string3630 dumps a true bool3631 dumps a false bool3632 .generate3633 is aliased3634 generates JSON3635 allows you to customise the output3636 .pretty_generate3637 generates pretty JSON3638 allows you to customise the output3639 the feature table is missing3640 skips legacy mode handling3641 the database is missing3642 still parses json3643 still generates json3644 Gitlab::Json::GrapeFormatter3645 generates JSON3646 uses Gitlab::Json3647 precompiled JSON3648 renders the string directly3649 calls #to_s on the object3650 doesn't run the JSON formatter3651 Gitlab::Json::PrecompiledJson3652 #to_s3653 obj is a string3654 returns a string3655 obj is an array3656 returns a string3657 obj is an array of un-stringables3658 raises an error3659 obj is something else3660 raises an error3661 Gitlab::Json::LimitedEncoder3662 when object size is acceptable3663 returns json string3664 when object is too big3665 raises LimitExceeded error3666 when object contains ASCII-8BIT encoding3667 does not raise encoding error3668 Gitlab::Json::RailsEncoder3669 is used by ActiveSupport::JSON3670 is used by .to_json calls3671 is consistent with the original JSON implementation3672 behaves the same when processing invalid unicode data3673Gitlab::Ci::Runner::Backoff3674 #duration3675 returns backoff duration from start3676 returns an integer value3677 returns the smallest number greater than or equal to duration3678 #slot3679 started: 0, slot: 03680 falls into an appropaite backoff slot3681 started: 0.1, slot: 03682 falls into an appropaite backoff slot3683 started: 0.9, slot: 03684 falls into an appropaite backoff slot3685 started: 1, slot: 03686 falls into an appropaite backoff slot3687 started: 1.1, slot: 03688 falls into an appropaite backoff slot3689 started: 1.9, slot: 03690 falls into an appropaite backoff slot3691 started: 2, slot: 03692 falls into an appropaite backoff slot3693 started: 2.9, slot: 03694 falls into an appropaite backoff slot3695 started: 3, slot: 03696 falls into an appropaite backoff slot3697 started: 4, slot: 13698 falls into an appropaite backoff slot3699 started: 5, slot: 13700 falls into an appropaite backoff slot3701 started: 6, slot: 13702 falls into an appropaite backoff slot3703 started: 7, slot: 13704 falls into an appropaite backoff slot3705 started: 8, slot: 23706 falls into an appropaite backoff slot3707 started: 9, slot: 23708 falls into an appropaite backoff slot3709 started: 9.9, slot: 23710 falls into an appropaite backoff slot3711 started: 10, slot: 23712 falls into an appropaite backoff slot3713 started: 15, slot: 23714 falls into an appropaite backoff slot3715 started: 16, slot: 33716 falls into an appropaite backoff slot3717 started: 31, slot: 33718 falls into an appropaite backoff slot3719 started: 32, slot: 43720 falls into an appropaite backoff slot3721 started: 63, slot: 43722 falls into an appropaite backoff slot3723 started: 64, slot: 53724 falls into an appropaite backoff slot3725 started: 127, slot: 53726 falls into an appropaite backoff slot3727 started: 128, slot: 63728 falls into an appropaite backoff slot3729 started: 250, slot: 63730 falls into an appropaite backoff slot3731 started: 310, slot: 73732 falls into an appropaite backoff slot3733 started: 520, slot: 83734 falls into an appropaite backoff slot3735 started: 999, slot: 83736 falls into an appropaite backoff slot3737 #to_seconds3738 started: 0, backoff: 13739 calculates backoff based on an appropriate slot3740 started: 0.1, backoff: 13741 calculates backoff based on an appropriate slot3742 started: 0.9, backoff: 13743 calculates backoff based on an appropriate slot3744 started: 1, backoff: 13745 calculates backoff based on an appropriate slot3746 started: 1.1, backoff: 13747 calculates backoff based on an appropriate slot3748 started: 1.9, backoff: 13749 calculates backoff based on an appropriate slot3750 started: 2, backoff: 13751 calculates backoff based on an appropriate slot3752 started: 3, backoff: 13753 calculates backoff based on an appropriate slot3754 started: 4, backoff: 23755 calculates backoff based on an appropriate slot3756 started: 5, backoff: 23757 calculates backoff based on an appropriate slot3758 started: 6, backoff: 23759 calculates backoff based on an appropriate slot3760 started: 6.5, backoff: 23761 calculates backoff based on an appropriate slot3762 started: 7, backoff: 23763 calculates backoff based on an appropriate slot3764 started: 8, backoff: 43765 calculates backoff based on an appropriate slot3766 started: 9, backoff: 43767 calculates backoff based on an appropriate slot3768 started: 9.9, backoff: 43769 calculates backoff based on an appropriate slot3770 started: 10, backoff: 43771 calculates backoff based on an appropriate slot3772 started: 15, backoff: 43773 calculates backoff based on an appropriate slot3774 started: 16, backoff: 83775 calculates backoff based on an appropriate slot3776 started: 31, backoff: 83777 calculates backoff based on an appropriate slot3778 started: 32, backoff: 163779 calculates backoff based on an appropriate slot3780 started: 63, backoff: 163781 calculates backoff based on an appropriate slot3782 started: 64, backoff: 323783 calculates backoff based on an appropriate slot3784 started: 127, backoff: 323785 calculates backoff based on an appropriate slot3786 started: 128, backoff: 643787 calculates backoff based on an appropriate slot3788 started: 250, backoff: 643789 calculates backoff based on an appropriate slot3790 started: 310, backoff: 643791 calculates backoff based on an appropriate slot3792 started: 520, backoff: 643793 calculates backoff based on an appropriate slot3794 started: 999, backoff: 643795 calculates backoff based on an appropriate slot3796Issuable::DestroyService3797 #execute3798 when issuable is an issue3799 destroys the issue3800 updates open issues count cache3801 invalidates the issues count cache for the assignees3802 behaves like service deleting todos3803 behaves like service scheduling async deletes3804 destroys associated todos asynchronously3805 works inside a transaction3806 behaves like service deleting label links3807 behaves like service scheduling async deletes3808 destroys associated todos asynchronously3809 works inside a transaction3810 when issuable is a merge request3811 destroys the merge request3812 updates open merge requests count cache3813 invalidates the merge request caches for the MR assignee3814 behaves like service deleting todos3815 behaves like service scheduling async deletes3816 destroys associated todos asynchronously3817 works inside a transaction3818 behaves like service deleting label links3819 behaves like service scheduling async deletes3820 destroys associated todos asynchronously3821 works inside a transaction3822ReleasePresenter3823 #commit_path3824 returns commit path3825 when commit is not found3826 is expected to be nil3827 when user is guest3828 is expected to be nil3829 #tag_path3830 returns tag path3831 when user is guest3832 is expected to be nil3833 #self_url3834 returns its own url3835 #opened_merge_requests_url3836 returns merge requests url with state=open3837 #merged_merge_requests_url3838 returns merge requests url with state=merged3839 #closed_merge_requests_url3840 returns merge requests url with state=closed3841 #opened_issues_url3842 returns issues url with state=open3843 #closed_issues_url3844 returns issues url with state=closed3845 #edit_url3846 returns release edit url3847 when a user is not allowed to update a release3848 is expected to be nil3849 #assets_count3850 returns the number of assets associated to the release3851 when a user is not allowed to download release sources3852 returns the number of all non-source assets associated to the release3853 #name3854 returns the release name3855Resolvers::BoardListIssuesResolver3856 #resolve3857 when project boards3858 behaves like group and project board list issues resolver3859 when authorized3860 generates a mutually exclusive filter error when milestone wildcard and title are provided3861 returns the issues in the correct order3862 finds only issues matching filters3863 finds only issues filtered by milestone wildcard3864 finds only issues matching search param3865 filters issues by negated issue type3866 generates an error if both assignee_username and assignee_wildcard_id are present3867 accepts assignee wildcard id NONE3868 accepts assignee wildcard id ANY3869 when filtering by confidential3870 returns matching issue3871 when group boards3872 behaves like group and project board list issues resolver3873 when authorized3874 generates a mutually exclusive filter error when milestone wildcard and title are provided3875 returns the issues in the correct order3876 finds only issues matching filters3877 finds only issues filtered by milestone wildcard3878 finds only issues matching search param3879 filters issues by negated issue type3880 generates an error if both assignee_username and assignee_wildcard_id are present3881 accepts assignee wildcard id NONE3882 accepts assignee wildcard id ANY3883 when filtering by confidential3884 returns matching issue3885Clusters::UpdateService3886 #execute3887 when correct params3888 when enabled is true3889 enables cluster3890 when enabled is false3891 disables cluster3892 when namespace is specified3893 updates namespace3894 when service token is empty3895 does not update the token3896 when service token is not empty3897 updates the token3898 when invalid params3899 returns false3900 when cluster is provided by GCP3901 does not change cluster name3902 when cluster is being created3903 rejects changes3904 when params includes :management_project_id3905 management_project is non-existent3906 does not update management_project_id3907 project cluster3908 user is authorized to adminster manangement_project3909 updates management_project_id3910 user is not authorized to adminster manangement_project3911 does not update management_project_id3912 cluster already has a management project set3913 unsets management_project_id3914 manangement_project is outside of the namespace scope3915 does not update management_project_id3916 group cluster3917 user is authorized to adminster manangement_project3918 updates management_project_id3919 user is not authorized to adminster manangement_project3920 does not update management_project_id3921 cluster already has a management project set3922 unsets management_project_id3923 manangement_project is outside of the namespace scope3924 does not update management_project_id3925 instance cluster3926 user is authorized to adminster manangement_project3927 updates management_project_id3928 user is not authorized to adminster manangement_project3929 does not update management_project_id3930 cluster already has a management project set3931 unsets management_project_id3932Gitlab::Ci::Config::External::Mapper3933 #process3934 when single 'include' keyword is defined3935 when the string is a local file3936 returns File instances3937 behaves like logging config file fetch3938 propagates the pipeline logger3939 when the key is a local file hash3940 returns File instances3941 when the string is a remote file3942 returns File instances3943 behaves like logging config file fetch3944 propagates the pipeline logger3945 when the key is a remote file hash3946 returns File instances3947 when the key is a template file hash3948 returns File instances3949 behaves like logging config file fetch3950 propagates the pipeline logger3951 when the key is not valid3952 returns ambigious specification error3953 when the key is a hash of local and remote3954 returns ambigious specification error3955 when the key is a project's file3956 returns File instances3957 behaves like logging config file fetch3958 propagates the pipeline logger3959 when the key is project's files3960 returns two File instances3961 behaves like logging config file fetch3962 propagates the pipeline logger3963 when 'include' is defined as an array3964 returns Files instances3965 when 'include' is defined as an array of hashes3966 returns Files instances3967 when it has ambigious match3968 returns ambigious specification error3969 when 'include' is not defined3970 returns an empty array3971 when duplicate 'include's are defined3972 does not raise an exception3973 has expanset with two3974 when passing max number of files3975 does not raise an exception3976 when too many 'includes' are defined3977 raises an exception3978 when including multiple files from a project3979 raises an exception3980 when 'include' section uses project variable3981 when local file is included as a single string3982 expands the variable3983 when remote file is included as a single string3984 expands the variable3985 defined as an array3986 expands the variable3987 defined as an array of hashes3988 expands the variable3989 local file hash3990 expands the variable3991 project name3992 expands the variable3993 with multiple files3994 expands the variable3995 when include variable has an unsupported type for variable expansion3996 does not invoke expansion for the variable3997 when local file path has wildcard3998 includes the matched local files3999 when 'include' has rules4000 when the rules matches4001 includes the file4002 when the rules does not match4003 does not include the file4004 when locations are same after masking variables4005 has expanset with two4006Gitlab::Database::LoadBalancing::Host4007 #connection4008 returns a connection from the pool4009 #disconnect!4010 disconnects the pool4011 disconnects the pool when waiting for connections takes too long4012 #release_connection4013 releases the current connection from the pool4014 #offline!4015 marks the host as offline4016 #online?4017 when the replica status is recent enough4018 returns the latest status4019 returns an offline status4020 when the replica status is outdated4021 refreshes the status4022 and replica is not up to date4023 marks the host offline4024 when the replica is not online4025 returns false when ActionView::Template::Error is raised4026 returns false when ActiveRecord::StatementInvalid is raised4027 returns false when PG::Error is raised4028 returns false when ActiveRecord::ConnectionNotEstablished is raised4029 #refresh_status4030 refreshes the status4031 clears the cache for latest_lsn_query4032 #check_replica_status?4033 returns true when we need to check the replica status4034 returns false when we do not need to check the replica status4035 #replica_is_up_to_date?4036 when the lag time is below the threshold4037 returns true4038 when the lag time exceeds the threshold4039 returns true if the data is recent enough4040 returns false when the data is not recent enough4041 #replication_lag_below_threshold4042 returns true when the lag time is below the threshold4043 returns false when the lag time exceeds the threshold4044 returns false when no lag time could be calculated4045 #data_is_recent_enough?4046 returns true when the data is recent enough4047 returns false when the data is not recent enough4048 returns false when no lag size could be calculated4049 #replication_lag_time4050 returns the lag time as a Float4051 returns nil when the database query returned no rows4052 #replication_lag_size4053 returns the lag size as an Integer4054 returns nil when the database query returned no rows4055 returns nil when the database connection fails4056 when can_track_logical_lsn? is false4057 uses LATEST_LSN_WITHOUT_LOGICAL_QUERY4058 when can_track_logical_lsn? is true4059 uses LATEST_LSN_WITH_LOGICAL_QUERY4060 when CAN_TRACK_LOGICAL_LSN_QUERY raises connection errors4061 uses LATEST_LSN_WITHOUT_LOGICAL_QUERY4062 #primary_write_location4063 returns the write location of the primary4064 #caught_up?4065 returns true when a host has caught up4066 returns false when diff query returns nothing4067 returns false when a host has not caught up4068 returns false when the connection fails4069 #database_replica_location4070 returns the write ahead location of the replica4071 returns nil when the database query returned no rows4072 returns nil when the database connection fails4073 #query_and_release4074 executes a SQL query4075 releases the connection after running the query4076 returns an empty Hash in the event of an error4077 #host4078 returns the hostname4079DiscussionOnDiff4080 #truncated_diff_lines4081 when diff is greater than allowed number of truncated diff lines4082 returns fewer lines4083 with truncated diff lines diff limit set4084 when diff limit is higher than default4085 returns fewer lines than the default4086 when diff_limit is lower than default4087 returns fewer lines than the default4088 when some diff lines are meta4089 returns no meta lines4090 when the diff line does not exist on a legacy diff note4091 returns an empty array4092 when the diff line does not exist on a corrupt diff note4093 returns an empty array4094 when the discussion is on an image4095 returns an empty array4096 #line_code_in_diffs4097 when the discussion is active in the diff4098 returns the current line code4099 when the discussion was created in the diff4100 returns the original line code4101 when the discussion is unrelated to the diff4102 returns nil4103Ci::Components::FetchService4104 # order random4105 #execute4106 when address points to an external component4107 when component path is the full path to a project4108 behaves like an external component4109 when user does not have permissions to read the code4110 returns an error4111 when version is a branch name4112 behaves like component address4113 when content exists4114 returns the content4115 when content does not exist4116 returns an error4117 when version is a tag name4118 behaves like component address4119 when content exists4120 returns the content4121 when content does not exist4122 returns an error4123 when version is a commit sha4124 behaves like component address4125 when content exists4126 returns the content4127 when content does not exist4128 returns an error4129 when version is not provided4130 returns an error4131 when project does not exist4132 returns an error4133 when host is different than the current instance host4134 returns an error4135 when component path points to a directory in a project4136 behaves like an external component4137 when user does not have permissions to read the code4138 returns an error4139 when version is a branch name4140 behaves like component address4141 when content exists4142 returns the content4143 when content does not exist4144 returns an error4145 when version is a tag name4146 behaves like component address4147 when content exists4148 returns the content4149 when content does not exist4150 returns an error4151 when version is a commit sha4152 behaves like component address4153 when content exists4154 returns the content4155 when content does not exist4156 returns an error4157 when version is not provided4158 returns an error4159 when project does not exist4160 returns an error4161 when host is different than the current instance host4162 returns an error4163 when component path points to a nested directory in a project4164 behaves like an external component4165 when user does not have permissions to read the code4166 returns an error4167 when version is a branch name4168 behaves like component address4169 when content exists4170 returns the content4171 when content does not exist4172 returns an error4173 when version is a tag name4174 behaves like component address4175 when content exists4176 returns the content4177 when content does not exist4178 returns an error4179 when version is a commit sha4180 behaves like component address4181 when content exists4182 returns the content4183 when content does not exist4184 returns an error4185 when version is not provided4186 returns an error4187 when project does not exist4188 returns an error4189 when host is different than the current instance host4190 returns an error4191Issuable::DiscussionsListService4192 # order random4193 fetching notes for issue4194 behaves like listing issuable discussions4195 when user cannot read issue4196 returns no notes4197 when user can read issuable4198 with paginated results4199 returns next page notes (FAILED - 1)42011st Try error in ./spec/support/shared_examples/services/issuable/discussions_list_shared_examples.rb:23:4202expected collection contained: ["added ~9 ~10 labels"]4203actual collection contained: ["added ~10 ~9 labels"]4204the missing elements were: ["added ~9 ~10 labels"]4205the extra elements were: ["added ~10 ~9 labels"]4207RSpec::Retry: 2nd try ./spec/support/shared_examples/services/issuable/discussions_list_shared_examples.rb:234208 and cannot read confidential notes4209 returns non confidential notes4210 and can read confidential notes4211 returns all notes4212 and system notes only4213 returns system notes4214 and user comments only4215 returns user comments4216 without notes widget4217 returns no notes4218 fetching notes for merge requests4219 behaves like listing issuable discussions4220 when user cannot read issue4221 returns no notes4222 when user can read issuable4223 with paginated results4224 returns next page notes (FAILED - 2)42261st Try error in ./spec/support/shared_examples/services/issuable/discussions_list_shared_examples.rb:23:4227expected collection contained: ["added ~9 ~10 labels"]4228actual collection contained: ["added ~10 ~9 labels"]4229the missing elements were: ["added ~9 ~10 labels"]4230the extra elements were: ["added ~10 ~9 labels"]4232RSpec::Retry: 2nd try ./spec/support/shared_examples/services/issuable/discussions_list_shared_examples.rb:234233 and cannot read confidential notes4234 returns non confidential notes4235 and can read confidential notes4236 returns all notes4237 and system notes only4238 returns system notes4239 and user comments only4240 returns user comments4241Ci::JobToken::Scope4242 #outbound_projects4243 when no projects are added to the scope4244 returns the project defining the scope4245 when projects are added to the scope4246 returns all projects that can be accessed from a given scope4247 #inbound_projects4248 when no projects are added to the scope4249 returns the project defining the scope4250 when projects are added to the scope4251 returns all projects that can be accessed from a given scope4252 add!4253 with inbound4254 adds the project4255 with outbound4256 adds the project4257 with inbound only enabled4258 provides access4259 accessible?4260 with inbound and outbound scopes enabled4261 when inbound and outbound access setup4262 accessed_project: current_project, result: true4263 allows self and projects allowed from both directions4264 accessed_project: inbound_allowlist_project, result: false4265 allows self and projects allowed from both directions4266 accessed_project: unscoped_project1, result: false4267 allows self and projects allowed from both directions4268 accessed_project: unscoped_project2, result: false4269 allows self and projects allowed from both directions4270 accessed_project: outbound_allowlist_project, result: false4271 allows self and projects allowed from both directions4272 accessed_project: inbound_accessible_project, result: false4273 allows self and projects allowed from both directions4274 accessed_project: fully_accessible_project, result: true4275 allows self and projects allowed from both directions4276 with inbound scope enabled and outbound scope disabled4277 accessed_project: current_project, result: true4278 is expected to eq true4279 accessed_project: inbound_allowlist_project, result: false4280 is expected to eq false4281 accessed_project: unscoped_project1, result: false4282 is expected to eq false4283 accessed_project: unscoped_project2, result: false4284 is expected to eq false4285 accessed_project: outbound_allowlist_project, result: false4286 is expected to eq false4287 accessed_project: inbound_accessible_project, result: true4288 is expected to eq true4289 accessed_project: fully_accessible_project, result: true4290 is expected to eq true4291 with inbound scope disabled and outbound scope enabled4292 accessed_project: current_project, result: true4293 is expected to eq true4294 accessed_project: inbound_allowlist_project, result: false4295 is expected to eq false4296 accessed_project: unscoped_project1, result: false4297 is expected to eq false4298 accessed_project: unscoped_project2, result: false4299 is expected to eq false4300 accessed_project: outbound_allowlist_project, result: true4301 is expected to eq true4302 accessed_project: inbound_accessible_project, result: false4303 is expected to eq false4304 accessed_project: fully_accessible_project, result: true4305 is expected to eq true4306Gitlab::Access::BranchProtection4307 #any?4308 level: 0, result: false4309 is expected to eq false4310 level: 1, result: true4311 is expected to eq true4312 level: 3, result: true4313 is expected to eq true4314 level: 2, result: true4315 is expected to eq true4316 level: 4, result: true4317 is expected to eq true4318 #developer_can_push?4319 level: 0, result: false4320 is expected to eq false4321 level: 1, result: true4322 is expected to eq true4323 level: 3, result: false4324 is expected to eq false4325 level: 2, result: false4326 is expected to eq false4327 level: 4, result: false4328 is expected to eq false4329 #developer_can_merge?4330 level: 0, result: false4331 is expected to eq false4332 level: 1, result: false4333 is expected to eq false4334 level: 3, result: true4335 is expected to eq true4336 level: 2, result: false4337 is expected to eq false4338 level: 4, result: false4339 is expected to eq false4340 #fully_protected?4341 level: 0, result: false4342 is expected to eq false4343 level: 1, result: false4344 is expected to eq false4345 level: 3, result: false4346 is expected to eq false4347 level: 2, result: true4348 is expected to eq true4349 level: 4, result: false4350 is expected to eq false4351 #developer_can_initial_push?4352 level: 0, result: false4353 is expected to eq false4354 level: 1, result: false4355 is expected to eq false4356 level: 3, result: false4357 is expected to eq false4358 level: 2, result: false4359 is expected to eq false4360 level: 4, result: true4361 is expected to eq true4362 #to_hash4363 for allow_force_push4364 level: 0, result: true4365 is expected to eq true4366 level: 1, result: false4367 is expected to eq false4368 level: 3, result: true4369 is expected to eq true4370 level: 2, result: false4371 is expected to eq false4372 level: 4, result: true4373 is expected to eq true4374 for allowed_to_push4375 level: 0, result: [{"access_level"=>30}]4376 is expected to eq [{"access_level"=>30}]4377 level: 1, result: [{"access_level"=>30}]4378 is expected to eq [{"access_level"=>30}]4379 level: 3, result: [{"access_level"=>40}]4380 is expected to eq [{"access_level"=>40}]4381 level: 2, result: [{"access_level"=>40}]4382 is expected to eq [{"access_level"=>40}]4383 level: 4, result: [{"access_level"=>40}]4384 is expected to eq [{"access_level"=>40}]4385 for allowed_to_merge4386 level: 0, result: [{"access_level"=>30}]4387 is expected to eq [{"access_level"=>30}]4388 level: 1, result: [{"access_level"=>30}]4389 is expected to eq [{"access_level"=>30}]4390 level: 3, result: [{"access_level"=>30}]4391 is expected to eq [{"access_level"=>30}]4392 level: 2, result: [{"access_level"=>40}]4393 is expected to eq [{"access_level"=>40}]4394 level: 4, result: [{"access_level"=>30}]4395 is expected to eq [{"access_level"=>30}]4396 for developer_can_initial_push4397 level: 0, result: nil4398 is expected to eq nil4399 level: 1, result: nil4400 is expected to eq nil4401 level: 3, result: nil4402 is expected to eq nil4403 level: 2, result: nil4404 is expected to eq nil4405 level: 4, result: true4406 is expected to eq true4407DropdownsHelper4408 #dropdown_tag4409 returns the container in the content4410 returns the block in the content4411 #dropdown_toggle4412 returns the button4413 returns the buttons default label data attribute4414 returns the dropdown toggle text4415 returns the button icon in the content4416 #dropdown_toggle_link4417 returns the link4418 returns the links data attribute4419 returns the link text4420 #dropdown_title4421 with a back and close button4422 applies the justification class to the container4423 behaves like has a back button4424 contains the back button4425 behaves like has the title text4426 contains the title text4427 behaves like has a close button4428 contains the close button4429 behaves like has two icons4430 returns two icons4431 behaves like does not have the title margin class4432 does not have the title margin class4433 with a back button4434 returns the back button icon4435 behaves like has a back button4436 contains the back button4437 behaves like has the title text4438 contains the title text4439 behaves like has the title margin class4440 contains the title margin class4441 behaves like does not have a close button4442 does not contain the close button4443 with a close button4444 returns the close button icon4445 behaves like does not have a back button4446 does not contain the back button4447 behaves like has the title text4448 contains the title text4449 behaves like has the title margin class4450 contains the title margin class4451 behaves like has a close button4452 contains the close button4453 without any buttons4454 returns no button icons4455 behaves like does not have a back button4456 does not contain the back button4457 behaves like has the title text4458 contains the title text4459 behaves like does not have the title margin class4460 does not have the title margin class4461 behaves like does not have a close button4462 does not contain the close button4463 #dropdown_filter4464 returns the container4465 returns the search input4466 behaves like has two icons4467 returns two icons4468 #dropdown_content4469 without block4470 behaves like contains the container4471 returns the container in the content4472 with block4473 returns the block in the content4474 behaves like contains the container4475 returns the container in the content4476 #dropdown_footer4477 without a content class4478 behaves like contains the content4479 returns the container in the content4480 returns the block in the content4481 without a content class4482 returns the footer in the content4483 behaves like contains the content4484 returns the container in the content4485 returns the block in the content4486 #dropdown_loading4487 returns the container in the content4488 returns a gl-spinner in the content4489Gitlab::Ci::Config::External::File::Project4490 #matching?4491 when a file and project is specified4492 returns true4493 with only file is specified4494 returns false4495 with only project is specified4496 returns false4497 with a missing local key4498 returns false4499 #valid?4500 when a valid path is used4501 is expected to be truthy4502 when user does not have permission to access file4503 returns false4504 when a valid path is used in uppercase4505 is expected to be truthy4506 when a valid different case path is used4507 is expected to be truthy4508 when a valid path with custom ref is used4509 is expected to be truthy4510 when an empty file is used4511 returns false4512 when non-existing ref is used4513 returns false4514 when non-existing file is requested4515 returns false4516 when file is not a yaml file4517 returns false4518 when non-existing project is used with a masked variable4519 returns false with masked project name4520 when a project contained in an array is used with a masked variable4521 does not raise an error4522 #expand_context4523 inherits user, and target project and sha4524 #metadata4525 is expected to eq {:blob=>"http://localhost/namespace551/project-604/-/blob/056597330153e9193d28cf49f3ee34a57aa4a432/fi...ost/namespace551/project-604/-/raw/056597330153e9193d28cf49f3ee34a57aa4a432/file.yml", :type=>:file}4526 when project name and ref include masked variables4527 is expected to eq {:blob=>"http://localhost/namespace553/xxxxxxxxxxxxxxx/-/blob/646ece5cfed840eca0a4feb21bcd6a81bb19bda...namespace553/xxxxxxxxxxxxxxx/-/raw/646ece5cfed840eca0a4feb21bcd6a81bb19bda3/file.yml", :type=>:file}4528 #to_hash4529 when interpolation is being used4530 correctly interpolates the content4531PruneOldEventsWorker4532 #perform4533 prunes events older than 3 years4534 leaves fresh events4535 leaves events from 13 months ago4536 leaves events from 3 years ago4537 with ops_prune_old_events FF disabled4538 does not delete4539Gitlab::Diff::HighlightCache4540 #decorate4541 does not calculate highlighting when reading from cache4542 assigns highlighted diff lines to the DiffFile4543 assigns highlighted diff lines which rich_text are HTML-safe4544 when diff_file is uncached due to default_max_patch_bytes change4545 manually writes highlighted lines to the cache4546 assigns highlighted diff lines to the DiffFile4547 #write_if_empty4548 updates memory usage metrics if Redis version >= 44549 does not update memory usage metrics if Redis version < 44550 behaves like caches missing entries4551 filters the key/value list of entries to be caches for each invocation4552 reads from cache once4553 refreshes TTL of the key on read4554 different diff_collections for the same diffable4555 writes an uncached files in the collection to the same redis hash4556 when cache initialized with MergeRequestDiffBatch4557 behaves like caches missing entries4558 filters the key/value list of entries to be caches for each invocation4559 reads from cache once4560 refreshes TTL of the key on read4561 #write_to_redis_hash4562 creates or updates a Redis hash4563 when diff contains unsupported characters4564 does not update the cache4565 #clear4566 clears cache4567 GZip usage4568 uses ActiveSupport::Gzip when reading from the cache4569 uses ActiveSupport::Gzip to compress data when writing to cache4570 metrics4571 observes :gitlab_redis_diff_caching_memory_usage_bytes4572 records hit ratio metrics4573 #key4574 returns cache key4575 when the `diff_line_syntax_highlighting` feature flag is disabled4576 returns the original version of the cache4577Packages::Maven::Metadata::SyncService4578 #execute4579 permissions4580 role: :anonymous, expected_result: :rejected4581 behaves like returning an error service response4582 returns an error service response4583 role: :developer, expected_result: :rejected4584 behaves like returning an error service response4585 returns an error service response4586 role: :maintainer, expected_result: :accepted4587 behaves like returning a success service response4588 returns a success service response4589 with a maintainer4590 with a jar package4591 with no changes4592 behaves like returning a success service response4593 returns a success service response4594 with changes4595 behaves like returning a success service response4596 returns a success service response4597 with empty versions4598 behaves like returning a success service response4599 returns a success service response4600 with a too big maven metadata file for versions4601 behaves like returning an error service response4602 returns an error service response4603 an error from the create versions xml service4604 behaves like returning an error service response4605 returns an error service response4606 an error from the append package file service4607 behaves like returning an error service response4608 returns an error service response4609 without a package name4610 behaves like returning an error service response4611 returns an error service response4612 without a versionless package for version4613 behaves like returning a success service response4614 returns a success service response4615 without a metadata package file for versions4616 behaves like returning a success service response4617 returns a success service response4618 without a project4619 behaves like returning an error service response4620 returns an error service response4621 with a maven plugin package4622 with no changes4623 behaves like returning a success service response4624 returns a success service response4625 with changes in the versions xml4626 behaves like returning a success service response4627 returns a success service response4628 with changes in the plugin xml4629 behaves like returning a success service response4630 returns a success service response4631 with empty versions4632 behaves like returning a success service response4633 returns a success service response4634 with a too big maven metadata file for plugins4635 behaves like returning an error service response4636 returns an error service response4637 an error from the create versions xml service4638 behaves like returning an error service response4639 returns an error service response4640 an error from the append package file service4641 behaves like returning an error service response4642 returns an error service response4643 without a versionless package for plugins4644 behaves like returning a success service response4645 returns a success service response4646 without a versionless package for versions4647 behaves like returning a success service response4648 returns a success service response4649 without a metadata package file for plugins4650 behaves like returning a success service response4651 returns a success service response4652Resolvers::WorkItemsResolver4653 is expected to have nullable GraphQL type WorkItemConnection4654 with a project4655 #resolve4656 finds all items4657 filters by state4658 returns items user can see4659 batches queries that only include IIDs4660 finds a specific item with iids4661 finds multiple items with iids4662 finds only the items within the project we are looking at4663 when searching items4664 behaves like graphql query for searching issuables4665 uses search optimization4666 filters issuables by title4667 filters issuables by description4668 with in param4669 generates an error if param search is missing4670 filters issuables by title and description4671 filters issuables by description only4672 filters issuables by title only4673 sorting4674 when sorting by created4675 sorts items ascending4676 sorts items descending4677 when sorting by title4678 sorts items ascending4679 sorts items descending4680 when passing a non existent, batch loaded project4681 returns nil without breaking4682TasksToBeDone::CreateWorker4683 is labeled as idempotent4684 performs multiple times sequentially without raising an exception4685 creates 3 task issues4686 .perform4687 executes the task services for all tasks to be done4688Gitlab::Verify::Uploads4689 behaves like Gitlab::Verify::BatchVerifier subclass4690 batching4691 iterates through objects in batches4692 allows the starting ID to be specified4693 allows the finishing ID to be specified4694 #run_batches4695 passes uploads with the correct file4696 fails uploads with a missing file4697 fails uploads with a mismatched checksum4698 fails uploads with a missing precalculated checksum4699 with remote files4700 returned hash object4701 passes uploads in object storage that exist4702 fails uploads in object storage that do not exist4703 performance4704 avoids N+1 queries4705Packages::Conan::CreatePackageFileService4706 #execute4707 with temp file4708 behaves like a valid package_file4709 creates a new package file4710 behaves like assigns build to package file4711 with build info4712 assigns the pipeline to the package4713 creates a new PackageFileBuildInfo record4714 behaves like a valid recipe_file4715 creates a new recipe file4716 behaves like assigns build to package file4717 with build info4718 assigns the pipeline to the package4719 creates a new PackageFileBuildInfo record4720 with remote file4721 behaves like a valid package_file4722 creates a new package file4723 behaves like assigns build to package file4724 with build info4725 assigns the pipeline to the package4726 creates a new PackageFileBuildInfo record4727 behaves like a valid recipe_file4728 creates a new recipe file4729 behaves like assigns build to package file4730 with build info4731 assigns the pipeline to the package4732 creates a new PackageFileBuildInfo record4733 file is missing4734 raises an error4735PoolRepository4736 associations4737 is expected to belong to shard required: false4738 is expected to belong to source_project required: false4739 is expected to have many member_projects4740 validations4741 is expected to validate that :shard cannot be empty/falsy4742 is expected to validate that :source_project cannot be empty/falsy4743 #disk_path4744 sets the hashed disk_path4745 #unlink_repository4746 when the last member leaves4747 schedules pool removal4748 when skipping disconnect4749 does not change the alternates file4750 when the second member leaves4751 does not schedule pool removal4752Ci::TriggerPolicy4753 #rules4754 when owner is an user4755 when user is maintainer of the project4756 is expected to be allowed :manage_trigger4757 is expected to be allowed :admin_trigger4758 when owner is another user4759 when user is maintainer of the project4760 is expected to be allowed :manage_trigger4761 is expected not to be allowed :admin_trigger4762 when user is developer of the project4763 is expected not to be allowed :manage_trigger4764 is expected not to be allowed :admin_trigger4765 when user is not member of the project4766 is expected not to be allowed :manage_trigger4767 is expected not to be allowed :admin_trigger4768layouts/fullscreen4769 renders a flex container4770 renders flash container4771 renders top nav4772 behaves like a layout which reflects the application theme setting4773 as a themed layout4774 when no theme is explicitly selected4775 renders with the default theme4776 when user is authenticated & has selected a specific theme4777 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#292961">4778 renders with the Indigo theme4779 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#4b4ba3">4780 renders with the Light Indigo theme4781 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#1a3652">4782 renders with the Blue theme4783 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#2261a1">4784 renders with the Light Blue theme4785 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0d4524">4786 renders with the Green theme4787 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#156b39">4788 renders with the Light Green theme4789 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#691a16">4790 renders with the Red theme4791 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a62e21">4792 renders with the Light Red theme4793 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#303030">4794 renders with the Gray theme4795 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#666">4796 renders with the Light Gray theme4797 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#303030">4798 renders with the Dark Mode (alpha) theme4799 behaves like a layout which reflects the preferred language4800 when changing the a preferred language4801 renders the correct `lang` attribute in the html element4802 sidebar4803 when nav is set4804 renders the sidebar4805 adds the proper classes4806 when nav is not set4807 does not render the sidebar4808 not add classes4809 when minimal is set4810 does not render top nav4811Packages::Debian::GroupComponentFile4812 behaves like Debian Component File4813 relationships4814 with stubbed uploader4815 is expected to belong to component class_name => Packages::Debian::GroupComponent required: false inverse_of => files4816 with packages file_type4817 is expected to belong to architecture class_name => Packages::Debian::GroupArchitecture required: false inverse_of => files4818 with :sources file_type4819 is expected to belong to architecture class_name => Packages::Debian::GroupArchitecture inverse_of => files optional: true4820 validations4821 #component4822 is expected to validate that :component cannot be empty/falsy4823 #architecture4824 with packages file_type4825 is expected to validate that :architecture cannot be empty/falsy4826 with :sources file_type4827 is expected to validate that :architecture is empty/falsy4828 #file_type4829 is expected to validate that :file_type cannot be empty/falsy4830 is expected to allow :file_type to be ‹:packages›4831 #compression_type4832 is expected not to validate that :compression_type cannot be empty/falsy4833 is expected to allow :compression_type to be ‹nil›4834 is expected to allow :compression_type to be ‹:gz›4835 #file4836 the uploader api4837 is expected to respond to #store_dir4838 is expected to respond to #cache_dir4839 is expected to respond to #work_dir4840 #file_store4841 is expected to validate that :file_store cannot be empty/falsy4842 #file_sha2564843 is expected to validate that :file_sha256 cannot be empty/falsy4844 scopes4845 .with_container4846 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 6, created_at: "2023-08-10 12:36:11.766877855 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4847 .with_codename_or_suite4848 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 6, created_at: "2023-08-10 12:36:11.766877855 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4849 .with_component_name4850 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 3, created_at: "2023-08-10 12:36:11.746546116 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4851 .with_file_type4852 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 7, created_at: "2023-08-10 12:36:11.774489000 +0000", upda..._type: nil, file_store: 1, file: "Sources", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4853 .with_architecture4854 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 2, created_at: "2023-08-10 12:36:11.739092987 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4855 .with_architecture_name4856 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 2, created_at: "2023-08-10 12:36:11.739092987 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4857 .with_compression_type4858 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 4, created_at: "2023-08-10 12:36:11.753602906 +0000", upda...ype: "xz", file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4859 .with_file_sha2564860 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 5, created_at: "2023-08-10 12:36:11.760253295 +0000", upda...pe: "packages", compression_type: nil, file_store: 1, file: "Packages", file_sha256: "other_sha256">4861 .updated_before4862 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 9, created_at: "2023-08-10 12:36:12.776575744 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad"> and #<Packages::Debian::GroupComponentFile id: 10, created_at: "2023-08-10 12:36:12.784213093 +0000", upd...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4863 callbacks4864 updates metadata columns4865 #relative_path4866 with a Packages file_type4867 is expected to eq "iste1/binary-dolores1/Packages"4868 with a Source file_type4869 is expected to eq "iste1/source/Sources"4870 with a DI Packages file_type4871 is expected to eq "iste1/debian-installer/binary-dolores1/Packages"4872 with an xz compression_type4873 is expected to eq "iste1/binary-dolores1/Packages.xz"4874 #empty?4875 with a non-empty component4876 is expected to be falsey4877 with an empty component4878 is expected to be truthy4879PagesDomains::ObtainLetsEncryptCertificateService4880 when there is no acme order4881 creates acme order and schedules next step4882 when there is expired acme order4883 removes acme order and creates new one4884 there is an order in 'pending' status4885 does not raise errors4886 there is an order in 'processing' status4887 does not raise errors4888 when order is ready4889 request certificate and schedules next step4890 when order is valid4891 saves private_key and certificate for domain4892 marks certificate as gitlab_provided4893 removes order from database4894 when order is invalid4895 saves error to domain and deletes acme order4896 sends notification4897load_balancing4898 # order random4899 with replica hosts configured4900 configures load balancer with two replica hosts4901 for a clustered puma worker4902 configures load balancer to have two replica hosts4903 makes a read query successfully4904 makes a write query successfully4905Gitlab::Audit::Type::Definition4906 # order random4907 #validate!4908 param: :path, value: "audit_event/types/invalid.yml", result: /Audit event type 'group_deploy_token_destroyed' has an invalid path/4909 is expected to raise /Audit event type 'group_deploy_token_destroyed' has an invalid path/4910 param: :name, value: nil, result: /property '\/name' is not of type: string/4911 is expected to raise /property '\/name' is not of type: string/4912 param: :description, value: nil, result: /property '\/description' is not of type: string/4913 is expected to raise /property '\/description' is not of type: string/4914 param: :introduced_by_issue, value: nil, result: /property '\/introduced_by_issue' is not of type: string/4915 is expected to raise /property '\/introduced_by_issue' is not of type: string/4916 param: :introduced_by_mr, value: nil, result: /property '\/introduced_by_mr' is not of type: string/4917 is expected to raise /property '\/introduced_by_mr' is not of type: string/4918 param: :feature_category, value: nil, result: /property '\/feature_category' is not of type: string/4919 is expected to raise /property '\/feature_category' is not of type: string/4920 param: :milestone, value: nil, result: /property '\/milestone' is not of type: string/4921 is expected to raise /property '\/milestone' is not of type: string/4922 when both saved_to_database and streamed are false4923 raises an exception4924 .names_with_category4925 returns an array with just the event name and feature category4926 #key4927 returns a symbol from name4928 validate that all the YAML definitions matches the audit event type schema4929 successfully loads all the YAML definitions4930 .load_all!4931 when there are no audit event types a list of definitions is empty4932 when there's a single audit event type it properly loads them4933 when the same audit event type is stored multiple times raises exception4934 when one of the YAMLs is invalid it does raise exception4935 .event_names4936 returns names of event types as string array4937 .defined?4938 returns true if definition for the event name exists4939 returns false if definition for the event name exists4940 .definitions4941 loads the definitions for all the audit event types4942 .paths4943 returns at least one path4944 .stream_only?4945 returns true for a stream only event4946 returns false for an event that is saved to database4947 .load_from_file4948 properly loads a definition from file4949 for missing file4950 raises exception4951 for invalid definition4952 raises exception4953 .get4954 when audit event type is not defined4955 returns nil4956 when audit event type is defined4957 returns an instance of Gitlab::Audit::Type::Definition4958 returns the properties as defined for that audit event type4959Repositories::HousekeepingService4960 behaves like housekeeps repository4961 with a clean redis state4962 #execute4963 enqueues a sidekiq job4964 yields the block if given4965 resets counter after execution4966 runs the task specifically requested4967 when no lease can be obtained4968 does not enqueue a job4969 does not reset pushes_since_gc4970 does not yield4971 task type4972 goes through all three housekeeping tasks, executing only the highest task when there is overlap4973 #needed?4974 when the count is low enough4975 when the count is high enough4976 when incremental repack period is not multiple of gc period4977 #increment!4978 increments the pushes_since_gc counter4979 behaves like housekeeps repository4980 with a clean redis state4981 #execute4982 enqueues a sidekiq job4983 yields the block if given4984 resets counter after execution4985 runs the task specifically requested4986 when no lease can be obtained4987 does not enqueue a job4988 does not reset pushes_since_gc4989 does not yield4990 task type4991 goes through all three housekeeping tasks, executing only the highest task when there is overlap4992 #needed?4993 when the count is low enough4994 when the count is high enough4995 when incremental repack period is not multiple of gc period4996 #increment!4997 increments the pushes_since_gc counter4998Gitlab::SearchContext::Builder4999 #with_project5000 behaves like has a fluid interface5001 is expected to be an instance of Gitlab::SearchContext::Builder5002 #build!5003 when a project is not owned by a group5004 is expected to be for project5005 is expected to have attributes {:group => nil, :group_metadata => {}, :project => #<Project id:648 namespace632/project-684>>, :project_me...sts"), :issues_disabled => false}), :ref => nil, :search_url => "/search?project_id=648", :snippets => []}5006 when a project is owned by a group5007 delegates to `#with_group`5008 is expected to have attributes {:group => #<Group id:1908 @group108>, :group_metadata => (a hash including {:group_path => "group108", :...sts"), :issues_disabled => false}), :ref => nil, :search_url => "/search?project_id=650", :snippets => []}5009 #with_snippet5010 when there is a single snippet5011 behaves like has a fluid interface5012 is expected to be an instance of Gitlab::SearchContext::Builder5013 #build!5014 is expected to be for snippet5015 is expected to have attributes {:group => nil, :group_metadata => {}, :project => nil, :project_metadata => {}, :ref => nil, :search_url => "/search", :snippets => [#<Snippet id:5 $5>]}5016 when there are multiple snippets5017 #build!5018 is expected to be for snippet5019 is expected to have attributes {:group => nil, :group_metadata => {}, :project => nil, :project_metadata => {}, :ref => nil, :search_url => "/search", :snippets => [#<Snippet id:9 $9>, #<Snippet id:10 $10>, #<Snippet id:11 $11>]}5020 #with_group5021 behaves like has a fluid interface5022 is expected to be an instance of Gitlab::SearchContext::Builder5023 #build!5024 is expected to be for group5025 is expected to have attributes {:group => #<Group id:1923 @group111>, :group_metadata => (a hash including {:group_path => "group111", :...project => nil, :project_metadata => {}, :ref => nil, :search_url => "/search?group_id=1923", :snippets => []}5026 with group scope5027 returns nil without groups controller action5028 when on issues scope5029 search context returns issues scope5030 when on merge requests scope5031 search context returns issues scope5032 #with_ref5033 behaves like has a fluid interface5034 is expected to be an instance of Gitlab::SearchContext::Builder5035 #build!5036 is expected to have attributes {:group => nil, :group_metadata => {}, :project => nil, :project_metadata => {}, :ref => "4b825dc642cb6eb9a060e54bf8d69288fbee4904", :search_url => "/search", :snippets => []}5037 #build!5038 is expected to be a kind of Gitlab::SearchContext5039Ci::RefDeleteUnlockArtifactsWorker5040 #perform5041 is labeled as idempotent5042 performs multiple times sequentially without raising an exception5043 unlocks the artifacts from older pipelines5044 when project exists5045 when user exists5046 when ci ref exists for project5047 calls the service5048 when a locked pipeline with persisted artifacts exists5049 logs the correct extra metadata5050 when ci ref does not exist for the given project5051 does not call the service5052 when same ref path exists for a different project5053 calls the service with the correct ref_id5054 when user does not exist5055 does not call service5056 when project does not exist5057 does not call service5058Gitlab::Instrumentation::RedisClusterValidator5059 .validate5060 command: :rename, arguments: ["foo", "bar"], keys: 2, is_valid: false5061 is expected to eq 25062 command: :RENAME, arguments: ["foo", "bar"], keys: 2, is_valid: false5063 is expected to eq 25064 command: "rename", arguments: ["foo", "bar"], keys: 2, is_valid: false5065 is expected to eq 25066 command: "RENAME", arguments: ["foo", "bar"], keys: 2, is_valid: false5067 is expected to eq 25068 command: :rename, arguments: ["iaa", "ahy"], keys: 2, is_valid: true5069 is expected to eq 25070 command: :rename, arguments: ["{foo}:1", "{foo}:2"], keys: 2, is_valid: true5071 is expected to eq 25072 command: :rename, arguments: ["foo", "foo", "bar"], keys: 2, is_valid: true5073 is expected to eq 25074 command: :mget, arguments: ["foo", "bar"], keys: 2, is_valid: false5075 is expected to eq 25076 command: :mget, arguments: ["foo", "foo", "bar"], keys: 3, is_valid: false5077 is expected to eq 35078 command: :mget, arguments: ["foo", "foo"], keys: 2, is_valid: true5079 is expected to eq 25080 command: :blpop, arguments: ["foo", "bar", "1"], keys: 2, is_valid: false5081 is expected to eq 25082 command: :blpop, arguments: ["foo", "foo", "1"], keys: 2, is_valid: true5083 is expected to eq 25084 command: :mset, arguments: ["foo", "a", "bar", "a"], keys: 2, is_valid: false5085 is expected to eq 25086 command: :mset, arguments: ["foo", "a", "foo", "a"], keys: 2, is_valid: true5087 is expected to eq 25088 command: :del, arguments: ["foo", "bar"], keys: 2, is_valid: false5089 is expected to eq 25090 command: :del, arguments: [["foo", "bar"]], keys: 2, is_valid: false5091 is expected to eq 25092 command: :del, arguments: ["foo", "foo"], keys: 2, is_valid: true5093 is expected to eq 25094 command: :hset, arguments: ["foo", "bar"], keys: 1, is_valid: nil5095 is expected to eq nil5096 command: :get, arguments: ["foo"], keys: 1, is_valid: nil5097 is expected to eq nil5098 command: :mget, arguments: [], keys: 0, is_valid: true5099 is expected to eq 05100 arguments: [[:get, "foo"], [:get, "bar"]], should_raise: true, output: {:valid=>false, :key_count=>2, :command_name=>"PIPELINE/MULTI", :allowed=>false}5101 is expected to eq {:allowed=>false, :command_name=>"PIPELINE/MULTI", :key_count=>2, :valid=>false}5102 arguments: [[:get, "foo"], [:mget, "foo", "bar"]], should_raise: true, output: {:valid=>false, :key_count=>3, :command_name=>"PIPELINE/MULTI", :allowed=>false}5103 is expected to eq {:allowed=>false, :command_name=>"PIPELINE/MULTI", :key_count=>3, :valid=>false}5104 arguments: [[:get, "{foo}:name"], [:get, "{foo}:profile"]], should_raise: false, output: {:valid=>true, :key_count=>2, :command_name=>"PIPELINE/MULTI", :allowed=>false}5105 is expected to eq {:allowed=>false, :command_name=>"PIPELINE/MULTI", :key_count=>2, :valid=>true}5106 arguments: [[:del, "foo"], [:del, "bar"]], should_raise: true, output: {:valid=>false, :key_count=>2, :command_name=>"PIPELINE/MULTI", :allowed=>false}5107 is expected to eq {:allowed=>false, :command_name=>"PIPELINE/MULTI", :key_count=>2, :valid=>false}5108 arguments: [], should_raise: false, output: nil5109 is expected to eq nil5110 .allow_cross_slot_commands5111 skips validation for allowed commands5112 allows nested invocation5113Gitlab::Spamcheck::Client5114 url scheme5115 is tls5116 uses secure connection5117 is grpc5118 uses insecure connection5119 #spam?5120 issue5121 behaves like check for spam5122 includes interceptors5123 verdict_value: 0, expected: "allow", verdict_evaluated: true, verdict_score: 0.015124 returns expected spam result5125 verdict_value: 1, expected: "conditional_allow", verdict_evaluated: true, verdict_score: 0.55126 returns expected spam result5127 verdict_value: 2, expected: "disallow", verdict_evaluated: true, verdict_score: 0.755128 returns expected spam result5129 verdict_value: 3, expected: "block", verdict_evaluated: true, verdict_score: 0.995130 returns expected spam result5131 verdict_value: 4, expected: "noop", verdict_evaluated: false, verdict_score: 0.05132 returns expected spam result5133 snippet5134 behaves like check for spam5135 includes interceptors5136 verdict_value: 0, expected: "allow", verdict_evaluated: true, verdict_score: 0.015137 returns expected spam result5138 verdict_value: 1, expected: "conditional_allow", verdict_evaluated: true, verdict_score: 0.55139 returns expected spam result5140 verdict_value: 2, expected: "disallow", verdict_evaluated: true, verdict_score: 0.755141 returns expected spam result5142 verdict_value: 3, expected: "block", verdict_evaluated: true, verdict_score: 0.995143 returns expected spam result5144 verdict_value: 4, expected: "noop", verdict_evaluated: false, verdict_score: 0.05145 returns expected spam result5146 #build_protobuf5147 builds the expected issue protobuf object5148 builds the expected snippet protobuf object5149 builds the expected generic protobuf object5150 #build_user_protobuf5151 builds the expected protobuf object5152 when user has multiple email addresses5153 adds emails to the user pb object5154 #build_project_protobuf5155 builds the expected protobuf object5156 #get_spammable_mappings5157 is a defined spammable5158 is a generic spammable5159Gitlab::I18n::TranslationEntry5160 #singular_translation5161 returns the normal `msgstr` for translations without plural5162 returns the first string for entries with plurals5163 #all_translations5164 returns all translations for singular translations5165 returns all translations when including plural translations5166 #plural_translations5167 returns all translations if there is only one plural5168 returns all translations except for the first one if there are multiple5169 #has_singular_translation?5170 has a singular when the translation is not pluralized5171 has a singular when plural and singular are separately defined5172 does not have a separate singular if the plural string only has one translation5173 #msgid_contains_newlines5174 is true when the msgid is an array5175 #plural_id_contains_newlines5176 is true when the msgid is an array5177 #translations_contain_newlines5178 is true when the msgid is an array5179 #contains_unescaped_chars5180 is true when the msgid is an array5181 is false when the `%` char is escaped5182 is false when using an unnamed variable5183 is false when using a named variable5184 is true when an unnamed variable is not closed5185 is true when the string starts with a `%`5186 #msgid_contains_unescaped_chars5187 is true when the msgid contains a `%`5188 #plural_id_contains_unescaped_chars5189 is true when the plural msgid contains a `%`5190 #translations_contain_unescaped_chars5191 is true when the translation contains a `%`5192 #msgid_contains_potential_html?5193 when there are no angle brackets in the msgid5194 returns false5195 when there are angle brackets in the msgid5196 returns true5197 #plural_id_contains_potential_html?5198 when there are no angle brackets in the plural_id5199 returns false5200 when there are angle brackets in the plural_id5201 returns true5202 #translations_contain_potential_html?5203 when there are no angle brackets in the translations5204 returns false5205 when there are angle brackets in the translations5206 returns true5207Gitlab::Kubernetes::RolloutStatus5208 #deployments5209 stores the deployments5210 #instances5211 for stable track5212 stores the union of deployment instances5213 for stable track5214 sorts stable instances last5215 #completion5216 when all instances are finished5217 is expected to eq 1005218 when half of the instances are finished5219 is expected to eq 505220 with one deployment5221 sets the completion percentage when a deployment has more running pods than desired5222 with two deployments on different tracks5223 sets the completion percentage when all pods are complete5224 with two deployments that both have track set to "stable"5225 sets the completion percentage when all pods are complete5226 sets the completion percentage when no pods are complete5227 sets the completion percentage when a quarter of the pods are complete5228 with two deployments, one with track set to "stable" and one with no track label5229 sets the completion percentage when all pods are complete5230 sets the completion percentage when no pods are complete5231 sets the completion percentage when a third of the pods are complete5232 #complete?5233 when all instances are finished5234 is expected to be truthy5235 when half of the instances are finished5236 is expected to be falsy5237 #found?5238 when the specs are passed5239 is expected to be found5240 when list of specs is empty5241 is expected not to be found5242 .loading5243 is expected to be loading5244 #not_found?5245 when the specs are passed5246 is expected not to be not found5247 when list of specs is empty5248 is expected to be not found5249 #canary_ingress_exists?5250 when canary ingress exists5251 returns true5252 when canary ingress does not exist5253 returns false5254gitlab:external_diffs rake tasks5255 force_object_storage task5256 forces externally stored merge request diffs to object storage5257 limits batches according to BATCH_SIZE, START_ID, and END_ID5258Projects::RefreshBuildArtifactsSizeStatisticsService5259 #execute5260 resets the build artifacts size stats5261 resets the buffered counter5262 updates the last_job_artifact_id to the ID of the last artifact from the batch5263 updates the last_job_artifact_id to the ID of the last artifact from the project5264 requeues the refresh job5265 when an error happens after the recalculation has started5266 keeps the last_job_artifact_id unchanged5267 keeps the last_job_artifact_id_on_refresh_start unchanged5268 keeps the state of the refresh record at running5269 when there are no more artifacts to recalculate for the next refresh job5270 schedules the refresh to be finalized5271Grafana::Client5272 #get_dashboard5273 behaves like calls grafana api5274 calls grafana api5275 behaves like no redirects5276 does not follow redirects5277 behaves like handles exceptions5278 HTTParty::Error5279 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"5280 Net::OpenTimeout5281 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"5282 SocketError5283 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"5284 OpenSSL::SSL::SSLError5285 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"5286 Errno::ECONNREFUSED5287 is expected to raise Grafana::Client::Error with "Connection refused"5288 StandardError5289 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"5290 #get_datasource5291 behaves like calls grafana api5292 calls grafana api5293 behaves like no redirects5294 does not follow redirects5295 behaves like handles exceptions5296 HTTParty::Error5297 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"5298 Net::OpenTimeout5299 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"5300 SocketError5301 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"5302 OpenSSL::SSL::SSLError5303 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"5304 Errno::ECONNREFUSED5305 is expected to raise Grafana::Client::Error with "Connection refused"5306 StandardError5307 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"5308 #proxy_datasource5309 behaves like calls grafana api5310 calls grafana api5311 behaves like no redirects5312 does not follow redirects5313 behaves like handles exceptions5314 HTTParty::Error5315 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"5316 Net::OpenTimeout5317 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"5318 SocketError5319 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"5320 OpenSSL::SSL::SSLError5321 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"5322 Errno::ECONNREFUSED5323 is expected to raise Grafana::Client::Error with "Connection refused"5324 StandardError5325 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"5326WikiPage::Slug5327 Associations5328 is expected to belong to wiki_page_meta required: false5329 refers correctly to the wiki_page_meta5330 scopes5331 canonical5332 there are no slugs5333 is expected to be empty5334 there are some non-canonical slugs5335 is expected to be empty5336 there is at least one canonical slugs5337 is expected not to be empty5338 Validations5339 is expected to validate that :slug is case-sensitively unique within the scope of :wiki_page_meta_id5340 is expected to validate that the length of :slug is at most 20485341 is expected not to allow :slug to be ‹nil›5342 only_one_slug_can_be_canonical_per_meta_record5343 there are no other slugs5344 is expected to be valid5345 the current slug is canonical5346 is expected to be valid5347 there are other slugs, but they are not canonical5348 is expected to be valid5349 the current slug is canonical5350 is expected to be valid5351 there is already a canonical slug5352 is expected to be valid5353 the current slug is canonical5354 is expected not to be valid5355Integrations::Test::ProjectService5356 #execute5357 without event specified5358 tests the integration with default data5359 with Integrations::PipelinesEmail5360 behaves like tests for integration with pipeline data5361 tests the integration with pipeline data5362 with event specified5363 event not supported by integration5364 returns error message5365 push5366 executes integration5367 tag_push5368 executes integration5369 note5370 returns error message if not enough data5371 executes integration5372 issue5373 behaves like a test of an integration that operates on issues5374 returns error message if not enough data5375 executes integration5376 confidential_issue5377 behaves like a test of an integration that operates on issues5378 returns error message if not enough data5379 executes integration5380 merge_request5381 returns error message if not enough data5382 executes integration5383 deployment5384 returns error message if not enough data5385 executes integration5386 pipeline5387 returns error message if not enough data5388 executes integration5389 wiki_page5390 returns error message if wiki disabled5391 returns error message if not enough data5392 executes integration5393Gitlab::Database::Count5394 .approximate_counts5395 fallbacks5396 gets results from first strategy5397 gets more results from second strategy if some counts are missing5398 does not get more results as soon as all counts are present5399 default strategies5400 with a read-only database5401 only uses the ExactCountStrategy5402 with a read-write database5403 uses the available strategies5404Gitlab::Middleware::HandleMalformedStrings5405 does not modify the env5406 in the URL5407 rejects null bytes5408 rejects escaped null bytes5409 rejects malformed strings5410 rejects escaped malformed strings5411 in authorization headers5412 does not reject correct non-basic-auth tokens5413 does not reject correct encoded password with special characters5414 behaves like rejecting invalid input5415 rejects problematic input in the password5416 rejects problematic input in the username5417 rejects problematic input in non-basic-auth tokens5418 behaves like rejecting invalid input5419 rejects problematic input in the password5420 rejects problematic input in the username5421 rejects problematic input in non-basic-auth tokens5422 behaves like rejecting invalid input5423 rejects problematic input in the password5424 rejects problematic input in the username5425 rejects problematic input in non-basic-auth tokens5426 in params5427 with null byte5428 gives up and does not reject too deeply nested params5429 behaves like checks params5430 rejects bad params in a top level param5431 rejects bad params for hashes with strings5432 rejects bad params for arrays with strings5433 rejects bad params for arrays containing hashes with string values5434 with malformed strings5435 behaves like checks params5436 rejects bad params in a top level param5437 rejects bad params for hashes with strings5438 rejects bad params for arrays with strings5439 rejects bad params for arrays containing hashes with string values5440 without problematic input5441 does not error for strings5442 does not error with no params5443Security::CiConfiguration::SecretDetectionCreateService5444 #execute5445 user does not belong to project5446 returns an error status5447 does not track a snowplow event5448 user belongs to project5449 does track the snowplow event5450 raises exception if the user does not have permission to create a new branch5451 when exception is raised5452 when branch was created5453 tries to rm branch5454 when branch was not created5455 does not try to rm branch5456 with no parameters5457 returns the path to create a new merge request5458 when the project has a non-default ci config file5459 does track the snowplow event5460 when existing ci config contains anchors/aliases5461 returns a ServiceResponse error5462 when parsing existing ci config gives a Psych error5463 returns a ServiceResponse error5464 when parsing existing ci config gives any other error5465 is successful5466 when the project is empty5467 returns a ServiceResponse error5468KeysFinder5469 key_type5470 when `key_type` is `ssh`5471 returns only SSH keys5472 when `key_type` is not specified5473 returns all types of keys5474 fingerprint5475 with invalid fingerprint5476 with invalid MD5 fingerprint5477 raises InvalidFingerprint5478 with invalid SHA fingerprint5479 raises InvalidFingerprint5480 with valid fingerprints5481 personal key with valid MD5 params5482 with an existent fingerprint5483 returns the key5484 with FIPS mode5485 raises InvalidFingerprint5486 deploy key with an existent fingerprint5487 returns the key5488 with FIPS mode5489 raises InvalidFingerprint5490 with a non-existent fingerprint5491 returns nil5492 with FIPS mode5493 raises InvalidFingerprint5494 personal key with valid SHA256 params5495 with an existent fingerprint5496 returns key5497 deploy key with an existent fingerprint5498 returns key5499 with a non-existent fingerprint5500 returns nil5501 user5502 without user5503 contains ssh_keys of all users in the system5504 with user5505 contains ssh_keys of only the specified users5506 sort order5507 sorts in last_used_at_desc order5508BulkImports::PipelineWorker5509 behaves like successfully runs the pipeline5510 runs the given pipeline successfully5511 when exclusive lease cannot be obtained5512 does not run the pipeline5513 when the pipeline raises an exception5514 logs the error5515 when enqueued pipeline cannot be found5516 when pipeline is finished5517 logs the error5518 when pipeline is skipped5519 logs the error5520 when tracker is started5521 marks tracker as failed5522 when entity is failed5523 marks tracker as skipped and logs the skip5524 when retry pipeline error is raised5525 reenqueues the worker5526 when file extraction pipeline5527 runs the pipeline successfully5528 when export status is started5529 reenqueues pipeline worker5530 when export status is empty5531 when timeout is not reached5532 reenqueues pipeline worker5533 when empty export timeout is reached5534 marks as failed and logs the error5535 when tracker created_at is nil5536 falls back to entity created_at5537 when export status is failed5538 marks as failed and logs the error5539 when export is batched5540 enqueues pipeline batches5541 when batches count is less than 15542 marks tracker as finished5543Gitlab::GithubImport5544 github.com5545 returns a new Client with a custom token5546 returns a new Client with a token stored in the import data5547 returns the ID of the ghost user5548 caches the ghost user ID5549 when there are additional access tokens5550 returns a new ClientPool containing all tokens5551 GitHub Enterprise5552 returns a new Client with a custom token5553 returns a new Client with a token stored in the import data5554 returns the ID of the ghost user5555 caches the ghost user ID5556 formats the import url5557 .per_page5558 when project group is present5559 when github_importer_lower_per_page_limit is enabled5560 returns lower per page value5561 when github_importer_lower_per_page_limit is disabled5562 returns default per page value5563 when project group is missing5564 returns default per page value5565GroupDestroyWorker5566 is labeled as idempotent5567 performs multiple times sequentially without raising an exception5568 does not change groups when run twice5569 #perform5570 deletes the group and associated projects5571Sidebars::Panel5572 #renderable_menus5573 returns only renderable menus5574 #super_sidebar_menu_items5575 serializes every renderable menu and returns a flattened result5576 #super_sidebar_context_header5577 raises `NotImplementedError`5578 #has_renderable_menus?5579 returns false when no renderable menus5580 returns true when no renderable menus5581 #add_element5582 adds the element to the last position of the list5583 does not add nil elements5584 #insert_element_before5585 adds element before the specific element class5586 does not add nil elements5587 when reference element does not exist5588 adds the element to the top of the list5589 #insert_element_after5590 adds element after the specific element class5591 does not add nil elements5592 when reference element does not exist5593 adds the element to the end of the list5594 #replace_element5595 replace existing element in the list5596 does not add nil elements5597 does not add the element if the other element is not found5598Banzai::ReferenceParser::MilestoneParser5599 #nodes_visible_to_user5600 when the link has a data-issue attribute5601 behaves like referenced feature visibility5602 when feature is disabled5603 does not create reference5604 when feature is enabled only for team members5605 does not create reference for non member5606 creates reference for member5607 when feature is enabled5608 creates reference5609 #referenced_by5610 when the link has a data-milestone attribute5611 using an existing milestone ID5612 returns an Array of milestones5613 using a non-existing milestone ID5614 returns an empty Array5615Achievements::UserAchievementPolicy5616 # order random5617 is readable to everyone when user has public profile5618 when user has private profile5619 for achievement owner5620 is visible5621 for group maintainer5622 is visible5623 for others5624 is hidden5625 when group is private5626 for achievement owner5627 is visible5628 for group maintainer5629 is visible5630 for others5631 is visible5632Resolvers::Ci::AllJobsResolver5633 # order random5634 #resolve5635 with admin5636 when admin mode setting is disabled5637 behaves like executes as admin5638 with statuses argument5639 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 191, stage_id: 25, partition_id: 100, tag_list: nil> and #<Ci::Build status: "success", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 192, stage_id: 26, partition_id: 100, tag_list: nil>5640 with multiple statuses5641 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 191, stage_id: 25, partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 192, stage_id: 26, partition_id: 100, tag_list: nil>, and #<Ci::Build status: "failed", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-0...processed: false, scheduling_type: "stage", id: 193, stage_id: 27, partition_id: 100, tag_list: nil>5642 without statuses argument5643 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 191, stage_id: 25, partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 192, stage_id: 26, partition_id: 100, tag_list: nil>, #<Ci::Build status: "failed", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-0...processed: false, scheduling_type: "stage", id: 193, stage_id: 27, partition_id: 100, tag_list: nil>, and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-08-10 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 194, stage_id: 28, partition_id: 100, tag_list: nil>5644 when admin mode setting is enabled5645 when in admin mode5646 behaves like executes as admin5647 with statuses argument5648 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 191, stage_id: 25, partition_id: 100, tag_list: nil> and #<Ci::Build status: "success", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 192, stage_id: 26, partition_id: 100, tag_list: nil>5649 with multiple statuses5650 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 191, stage_id: 25, partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 192, stage_id: 26, partition_id: 100, tag_list: nil>, and #<Ci::Build status: "failed", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-0...processed: false, scheduling_type: "stage", id: 193, stage_id: 27, partition_id: 100, tag_list: nil>5651 without statuses argument5652 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 191, stage_id: 25, partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 192, stage_id: 26, partition_id: 100, tag_list: nil>, #<Ci::Build status: "failed", finished_at: "2023-08-10 08:53:29.000000000 +0000", created_at: "2023-0...processed: false, scheduling_type: "stage", id: 193, stage_id: 27, partition_id: 100, tag_list: nil>, and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-08-10 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 194, stage_id: 28, partition_id: 100, tag_list: nil>5653 when not in admin mode5654 is expected to be empty5655 with unauthorized user5656 is expected to be empty5657Projects::BranchesByModeService5658 #execute5659 page is passed5660 uses offset pagination5661 but the page does not contain any branches5662 uses offset pagination5663 search is passed5664 uses offset pagination5665 branch_list_keyset_pagination is disabled5666 uses offset pagination5667 uses gitaly pagination5668 returns branches for the first page5669 when second page is requested5670 returns branches for the first page5671 when last page is requested5672 returns branches after the specified branch5673 filter by mode5674 stale5675 returns stale branches5676 active5677 returns active branches5678BitbucketServer::Representation::PullRequest5679 #author5680 is expected to eq "root"5681 #author_email5682 is expected to eq "joe.montana@49ers.com"5683 #author_username5684 returns username5685 when username is absent5686 returns slug5687 when slug and username are absent5688 returns displayName5689 #description5690 is expected to eq "Test"5691 #reviewers5692 is expected to eq 25693 #iid5694 is expected to eq 75695 #state5696 is expected to eq "merged"5697 declined pull requests5698 returns closed5699 open pull requests5700 returns open5701 #merged?5702 is expected to be truthy5703 #created_at5704 is expected to eq 15306006355705 #updated_at5706 is expected to eq 15306006485707 #title5708 is expected to eq "Added a new line"5709 #source_branch_name5710 is expected to eq "refs/heads/root/CODE_OF_CONDUCTmd-1530600625006"5711 #source_branch_sha5712 is expected to eq "074e2b4dddc5b99df1bf9d4a3f66cfc15481fdc8"5713 #target_branch_name5714 is expected to eq "refs/heads/master"5715 #target_branch_sha5716 is expected to eq "839fa9a2d434eb697815b8fcafaecc51accfdbbc"5717 #to_hash5718 is expected to match (a hash including {:author_email => "joe.montana@49ers.com", :author_username => "username", :author => "root", :description => "Test", :reviewers => (contain exactly hash_including("user" => "hash_including(\"emailAddress\" => \"jane@doe.com\", \"slug\" => \"jane_doe\")") and hash_including("user" => "hash_including(\"emailAddress\" => \"john@smith.com\", \"slug\" => \"john_smith\")")), :source_branch_name => "refs/heads/root/CODE_OF_CONDUCTmd-1530600625006", :source_branch_sha => "074e2b4dddc5b99df1bf9d4a3f66cfc15481fdc8", :target_branch_name => "refs/heads/master", :target_branch_sha => "839fa9a2d434eb697815b8fcafaecc51accfdbbc", :title => "Added a new line"})5719Mutations::Todos::RestoreMany5720 #resolve5721 restores a single todo5722 handles a todo which is already pending as expected5723 ignores requests for todos which do not belong to the current user5724 restores multiple todos5725 fails if one todo does not belong to the current user5726 fails if too many todos are requested for update5727Gitlab::HTTPConnectionAdapter5728 #connection5729 when local requests are allowed5730 sets up the connection5731 when local requests are not allowed5732 sets up the connection5733 when it is a request to local network5734 raises error5735 when local request allowed5736 sets up the connection5737 when it is a request to local address5738 raises error5739 when local request allowed5740 sets up the connection5741 when port different from URL scheme is used5742 sets up the addr_port accordingly5743 when DNS rebinding protection is disabled5744 sets up the connection5745 when proxy is enabled5746 proxy stays configured5747 when no_proxy matches the request5748 proxy is disabled5749 when no_proxy does not match the request5750 proxy stays configured5751 when URL scheme is not HTTP/HTTPS5752 raises error5753Wikis::GitGarbageCollectWorker5754 behaves like can collect git garbage5755 #perform5756 with active lease_uuid5757 flushes ref caches when the task if 'gc'5758 handles gRPC errors5759 behaves like it calls Gitaly5760 is expected to receive optimize_repository(*(any args)) 1 time5761 behaves like it updates the resource statistics5762 updates the resource statistics5763 does nothing if the database is read-only5764 with different lease than the active one5765 returns silently5766 with no active lease5767 when is able to get the lease5768 flushes ref caches when the task if 'gc'5769 behaves like it calls Gitaly5770 is expected to receive optimize_repository(*(any args)) 1 time5771 behaves like it updates the resource statistics5772 updates the resource statistics5773 does nothing if the database is read-only5774 when no lease can be obtained5775 returns silently5776 prune5777 is expected to receive prune_unreachable_objects(*(any args)) 1 time5778 eager5779 is expected to receive optimize_repository({:eager=>true}) 1 time5780Gitlab::Ci::Config::Entry::AllowFailure5781 validations5782 when entry config value is valid5783 with boolean values5784 behaves like valid entry5785 #value5786 returns key value5787 #valid?5788 is valid5789 behaves like valid entry5790 #value5791 returns key value5792 #valid?5793 is valid5794 with hash values5795 behaves like valid entry5796 #value5797 returns key value5798 #valid?5799 is valid5800 behaves like valid entry5801 #value5802 returns key value5803 #valid?5804 is valid5805 when entry value is not valid5806 when it has a wrong type5807 behaves like invalid entry5808 #valid?5809 is expected not to be valid5810 is expected to include "allow failure config should be a hash or a boolean value"5811 with string exit codes5812 behaves like invalid entry5813 #valid?5814 is expected not to be valid5815 is expected to include "allow failure exit codes should be an array of integers or an integer"5816 with array of strings as exit codes5817 behaves like invalid entry5818 #valid?5819 is expected not to be valid5820 is expected to include "allow failure exit codes should be an array of integers or an integer"5821 when it has an extra keys5822 behaves like invalid entry5823 #valid?5824 is expected not to be valid5825 is expected to include "allow failure config contains unknown keys: extra"5826Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies::UntilExecuted5827 behaves like deduplicating jobs when scheduling5828 #schedule5829 checks for duplicates before yielding5830 checks worker options for scheduled jobs5831 job marking5832 adds the jid of the existing job to the job hash5833 scheduled jobs5834 scheduled in the past5835 adds the jid of the existing job to the job hash5836 scheduled in the future5837 adds the jid of the existing job to the job hash5838 when the job is not duplicate5839 does not return false nor drop the job5840 when the job is droppable5841 updates latest wal location5842 returns false to drop the job5843 logs that the job was dropped5844 logs the deduplication options of the worker5845 #perform5846 updates job hash with dedup_wal_locations5847 when latest_wal_location is empty5848 does not update job hash with dedup_wal_locations5849 #perform5850 deletes the lock after executing5851 deletes the lock even if an error occurs5852 does not reschedule the job even if deduplication happened5853 when job is reschedulable5854 reschedules the job if deduplication happened5855 does not reschedule the job if an error occurs5856Banzai::Filter::SpacedLinkFilter5857 does not process malicious input5858 converts multiple URLs5859 ignores valid links contained inside 'a' element5860 ignores valid links contained inside 'code' element5861 ignores valid links contained inside 'kbd' element5862 ignores valid links contained inside 'pre' element5863 ignores valid links contained inside 'script' element5864 ignores valid links contained inside 'style' element5865 when a link is detected5866 converts slug with spaces to a link5867 converts slug with spaces and a title to a link5868 does nothing with empty text5869 does nothing with an empty slug5870 when an image is detected5871 converts slug with spaces to an iamge5872 converts slug with spaces and a title to an image5873Packages::SemVer5874 #parse5875 behaves like #parse with a valid semver5876 with 1.0.05877 returns v1.0.0 with prefix5878 returns 1.0.0 without prefix5879 behaves like #parse with a valid semver5880 with 1.0.0-pre5881 returns v1.0.0-pre with prefix5882 returns 1.0.0-pre without prefix5883 behaves like #parse with a valid semver5884 with 1.0.0+build5885 returns v1.0.0+build with prefix5886 returns 1.0.0+build without prefix5887 behaves like #parse with a valid semver5888 with 1.0.0-pre+build5889 returns v1.0.0-pre+build with prefix5890 returns 1.0.0-pre+build without prefix5891 behaves like #parse with an invalid semver5892 with 01.0.05893 returns nil with prefix5894 returns nil without prefix5895 behaves like #parse with an invalid semver5896 with 0.01.05897 returns nil with prefix5898 returns nil without prefix5899 behaves like #parse with an invalid semver5900 with 0.0.015901 returns nil with prefix5902 returns nil without prefix5903 behaves like #parse with an invalid semver5904 with 1.0.0asdf5905 returns nil with prefix5906 returns nil without prefix5907Ml::Model5908 # order random5909 associations5910 is expected to belong to project required: false5911 is expected to have one default_experiment5912 is expected to have many versions5913 is expected to have one latest_version class_name => Ml::ModelVersion inverse_of => model5914 .find_or_create5915 when model name does not exist in the project5916 creates a model5917 when model name exists but project is different5918 creates a model5919 when model exists5920 fetches existing model5921 #valid?5922 validates a valid model version5923 name5924 ctx: "name is blank", name: ""5925 is expected to include :name5926 ctx: "name is not valid package name", name: "!!()()"5927 is expected to include :name5928 ctx: "name is too large", name: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"5929 is expected to include :name5930 ctx: "name is not unique in the project", name: "an_existing_model"5931 is expected to include :name5932 default_experiment5933 when experiment name name is different than model name5934 is expected to include :default_experiment5935 when model version project is different than model project5936 is expected to include :default_experiment5937 .by_project5938 is expected to contain exactly #<Ml::Model id: 1, created_at: "2023-08-10 12:37:38.557570769 +0000", updated_at: "2023-08-10 12:37:38.557570769 +0000", project_id: 719, name: "an_existing_model">5939 .including_latest_version5940 loads latest version5941Gitlab::Ci::Status::Bridge::Common5942 #details_path5943 when user has access to read downstream pipeline5944 is expected to have details5945 is expected to include "pipelines/49"5946 when user does not have access to read downstream pipeline5947 is expected not to have details5948 is expected to be nil5949 #label5950 returns description5951 when description is nil5952 returns core status label5953 when description is empty string5954 returns core status label5955Gitlab::GithubImport::Importer::IssueEventsImporter5956 #parallel?5957 when running in parallel mode5958 is expected to be parallel5959 when running in sequential mode5960 is expected not to be parallel5961 #execute5962 when running in parallel mode5963 imports events in parallel5964 when running in sequential mode5965 imports notes in sequence5966 #sequential_import5967 imports each event in sequence5968 #parallel_import5969 imports each note in parallel5970 #importer_class5971 is expected to eq Gitlab::GithubImport::Importer::IssueEventImporter5972 #representation_class5973 is expected to eq Gitlab::GithubImport::Representation::IssueEvent5974 #sidekiq_worker_class5975 is expected to eq Gitlab::GithubImport::ImportIssueEventWorker5976 #object_type5977 is expected to eq :issue_event5978 #collection_method5979 is expected to eq :repository_issue_events5980 #id_for_already_imported_cache5981 returns the ID of the given note5982 #collection_options5983 is expected to eq {}5984MergeRequests::Mergeability::Logger5985 # order random5986 #instrument5987 raises an error when block is not provided5988 when enabled5989 returns the block's value5990 records durations of instrumented operations5991 when block value responds to #success?5992 behaves like success state logger5993 records operation success state5994 when not successful5995 behaves like success state logger5996 records operation success state5997 with multiple observations5998 records durations of instrumented operations5999 when its a query6000 with a single query6001 includes SQL metrics6002 with multiple queries6003 includes SQL metrics6004Gitlab::Search::Query6005 is expected to be < SimpleDelegator6006 leaves undefined filters in the main query6007 parses filters6008 with an empty filter6009 ignores empty filters6010 with a pipe6011 does not escape the pipe6012 with an exclusive filter6013 negates the filter6014 with filter value in quotes6015 does not break the filter value in quotes6016 with extra white spaces between the query words6017 removes the extra whitespace between tokens6018 with mutliple filename filters6019 creates a filter for each filename in query6020 when multiple extension filters are added6021 creates a filter for each filename and extension in query6022LfsFileLock6023 is expected to belong to project required: false6024 is expected to belong to user required: false6025 is expected to validate that :project_id cannot be empty/falsy6026 is expected to validate that :user_id cannot be empty/falsy6027 is expected to validate that :path cannot be empty/falsy6028 #can_be_unlocked_by?6029 when it's forced6030 can be unlocked by the author6031 can be unlocked by a maintainer6032 can't be unlocked by other user6033 when it isn't forced6034 can be unlocked by the author6035 can't be unlocked by a maintainer6036 can't be unlocked by other user6037Gitlab::ImportExport::Json::NdjsonReader6038 #exist?6039 given valid dir_path6040 is expected to equal true6041 given invalid dir_path6042 is expected to equal false6043 #consume_attributes6044 returns the whole root tree from parsed JSON6045 when project.json is symlink or hard link6046 link_method: :link6047 raises an error6048 link_method: :symlink6049 raises an error6050 #consume_relation6051 given any key6052 returns an Enumerator6053 key has been consumed6054 yields nothing to the Enumerator6055 with mark_as_consumed: false6056 yields every relation value to the Enumerator6057 key has not been consumed6058 relation file does not exist6059 yields nothing to the Enumerator6060 when relation file is a symlink or hard link6061 link_method: :link6062 yields nothing to the Enumerator6063 link_method: :symlink6064 yields nothing to the Enumerator6065 relation file is empty6066 yields nothing to the Enumerator6067 relation file contains multiple lines6068 yields every relation value to the Enumerator6069Gitlab::Analytics::CycleAnalytics::RecordsFetcher6070 #serialized_records6071 for issue based stage6072 returns all records6073 passes a hash with all expected attributes to the serializer6074 when records are loaded by guest6075 filters out confidential issues6076 for merge request based stage6077 returns all records6078 passes a hash with all expected attributes to the serializer6079 pagination6080 limits the results6081 loads the record for the next page6082Gitlab::GithubImport::Importer::PullRequests::AllMergedByImporter6083 # order random6084 is expected to includes the Gitlab::GithubImport::ParallelScheduling module6085 #id_for_already_imported_cache6086 is expected to eq 16087 #collection_method6088 is expected to eq :pull_requests_merged_by6089 #sidekiq_worker_class6090 is expected to eq Gitlab::GithubImport::PullRequests::ImportMergedByWorker6091 #each_object_to_import6092 fetches the merged pull requests data6093 skips cached merge requests6094 #importer_class6095 is expected to eq Gitlab::GithubImport::Importer::PullRequests::MergedByImporter6096 #representation_class6097 is expected to eq Gitlab::GithubImport::Representation::PullRequest6098Projects::RepositoryLanguagesService6099 when detected_repository_languages flag is set6100 when a project is without detected programming languages6101 schedules a worker and returns the empty result6102 when a project is with detected programming languages6103 does not schedule a worker and returns the detected languages6104 sets detected_repository_languages flag6105 when detected_repository_languages flag is not set6106 returns repository languages6107Tooling::KubernetesClient6108 #cleanup_namespaces_by_created_at6109 when no namespaces are stale6110 does not delete any namespace6111 when some namespaces are stale6112 when some namespaces are not review app namespaces6113 only deletes the review app namespaces6114 when all namespaces are review app namespaces6115 deletes all of the stale namespaces6116 #delete_namespaces6117 when at least one namespace is not a review app namespace6118 does not delete any namespace6119 when all namespaces are review app namespaces6120 deletes the namespaces6121 #namespaces_created_before6122 returns an array of namespaces6123 #run_command6124 when executing a successful command6125 displays the name of the command to stdout6126 does not raise an error6127 when executing an unsuccessful command6128 displays the name of the command to stdout6129 raises an error6130UsersStarProjectsFinder6131 #execute6132 as same user6133 is expected to contain exactly #<UsersStarProject id: 2, project_id: 737, user_id: 1328, created_at: "2023-08-10 12:37:55.516827000 +0000", updated_at: "2023-08-10 12:37:55.516827000 +0000"> and #<UsersStarProject id: 1, project_id: 737, user_id: 1326, created_at: "2023-08-10 12:37:55.392189000 +0000", updated_at: "2023-08-10 12:37:55.392189000 +0000">6134 as other user6135 is expected to contain exactly #<UsersStarProject id: 4, project_id: 738, user_id: 1330, created_at: "2023-08-10 12:37:56.066597000 +0000", updated_at: "2023-08-10 12:37:56.066597000 +0000">6136 as no user6137 is expected to contain exactly #<UsersStarProject id: 7, project_id: 739, user_id: 1335, created_at: "2023-08-10 12:37:56.896664000 +0000", updated_at: "2023-08-10 12:37:56.896664000 +0000">6138 with active users only6139 ignores stars of non-active users6140Organizations::OrganizationPolicy6141 # order random6142 when the user is not an organization user6143 is expected to be disallowed :admin_organization6144 is expected to be disallowed :read_organization6145 when the user is an organization user6146 is expected to be allowed :read_organization6147 when the user is an admin6148 when admin mode is enabled6149 is expected to be allowed :admin_organization6150 is expected to be allowed :read_organization6151 when admin mode is disabled6152 is expected to be disallowed :admin_organization6153 is expected to be disallowed :read_organization6154Gitlab::Database::Type::SymbolizedJsonb6155 # order random6156 #deserialize6157 json: nil, value: nil6158 is expected to match nil6159 json: "{\"key\":\"value\"}", value: {:key=>"value"}6160 is expected to match {:key=>"value"}6161 json: "{\"key\":[1,2,3]}", value: {:key=>[1, 2, 3]}6162 is expected to match {:key=>[1, 2, 3]}6163 json: "{\"key\":{\"subkey\":\"value\"}}", value: {:key=>{:subkey=>"value"}}6164 is expected to match {:key=>{:subkey=>"value"}}6165 json: "{\"key\":{\"a\":[{\"b\":\"c\"},{\"d\":\"e\"}]}}", value: {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}6166 is expected to match {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}6167 when used by a model6168 is expected to match {:key=>"value"}6169 ignores changes to other attributes6170 tracks changes to options6171Packages::MarkPackagesForDestructionService6172 # order random6173 #execute6174 when the user is authorized6175 when it is successful6176 marks the packages as pending destruction6177 with maven packages6178 marks the packages as pending destruction6179 without version6180 marks the packages as pending destruction6181 when it is not successful6182 returns an error ServiceResponse6183 when the user is not authorized6184 returns an error ServiceResponse6185MergeRequestUserEntity6186 #as_json6187 exposes needed attributes6188 when `status` is not preloaded6189 does not expose the availability attribute6190 when the user has not approved the merge-request6191 exposes that the user has not approved the MR6192 when the user has approved the merge-request6193 exposes that the user has approved the MR6194 when `status` is preloaded6195 exposes the availibility attribute6196 performance6197 is linear in the number of merge requests (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/322549)6198Gitlab::WikiPages::FrontMatterParser6199 #parse6200 there is front matter6201 is expected to have attributes {:content => "This is the content\n", :error => (be nil), :front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]})}6202 there is no content6203 is expected to have attributes {:content => "", :error => (be nil), :front_matter => {}}6204 there is no front_matter6205 is expected to have attributes {:content => "This is the content", :front_matter => (be empty)}6206 is expected to have attributes {:reason => :no_match}6207 the feature flag is disabled6208 is expected to have attributes {:content => "---\na: 1\nb: 2\nc:\n - foo\n - bar\ndate: I am safe. Not actually a date\n---\nThis is the content\n", :front_matter => (be empty)}6209 the feature flag is enabled for the gated object6210 is expected to have attributes {:content => "This is the content\n", :front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]}), :reason => (be nil)}6211 the end divider is ...6212 is expected to have attributes {:front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]})}6213 the front-matter is not a mapping6214 is expected to have attributes {:reason => :not_mapping}6215 there is nothing in the front-matter block6216 is expected to have attributes {:reason => :no_match}6217 there is a string in the YAML block6218 is expected to have attributes {:reason => :not_mapping}6219 there is dangerous YAML in the block6220 is expected to have attributes {:error => (be present), :reason => :parse_error}6221 there is acceptably long YAML in the front-matter block6222 is expected to have attributes {:front_matter => (include {:title => (be present)})}6223 there is suspiciously long YAML in the front-matter block6224 is expected to have attributes {:reason => :too_long}6225 TOML front matter6226 is expected to have attributes {:reason => :not_yaml}6227 TOML style fences, advertised as YAML6228 is expected to have attributes {:front_matter => (include {:title => "My title"})}6229 YAML, advertised as something else6230 is expected to have attributes {:reason => :not_yaml}6231 there is text content in the YAML block, in comments6232 is expected to have attributes {:front_matter => (include {:foo => 1})}6233 there is text content in the YAML block6234 is expected to have attributes {:reason => :not_mapping}6235Gitlab::Metrics::Dashboard::Finder6236 .find6237 when the dashboard exists6238 behaves like valid dashboard service response6239 behaves like valid dashboard service response for schema6240 returns a json representation of the dashboard6241 when the system dashboard is specified6242 behaves like valid dashboard service response6243 behaves like valid dashboard service response for schema6244 returns a json representation of the dashboard6245 when no dashboard is specified6246 behaves like valid dashboard service response6247 behaves like valid dashboard service response for schema6248 returns a json representation of the dashboard6249 .find_raw6250 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}6251 when the system dashboard is specified6252 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}6253 .find_all_paths6254 includes OOTB dashboards by default6255Gitlab::Ci::Pipeline::Chain::SeedBlock6256 #perform!6257 when there is not seeds_block6258 does nothing6259 when there is seeds_block6260 executes the block6261 when the seeds_block tries to save the pipelie6262 raises error6263NewNoteWorker6264 when Note found6265 calls NotificationService#new_note6266 calls Notes::PostProcessService#execute6267 when Note not found6268 logs NewNoteWorker process skipping6269 does not raise errors6270 does not call NotificationService6271 does not call Notes::PostProcessService6272 when note does not require notification6273 does not create a new note notification6274 when Note author has been blocked6275 does not call NotificationService6276 when Note author has been deleted6277 does not call NotificationService6278JiraImport::ServerUsersMapperService6279 #execute6280 behaves like mapping jira users6281 jira_users is nil6282 returns an empty array6283 when jira_users is present6284 returns users mapped to Gitlab6285 runs only 4 queries6286Gitlab::Database::SimilarityScore6287 when passing empty values6288 when search is nil6289 orders by a constant 0 value6290 when rules are empty6291 orders by a constant 0 value6292 when similarity scoring based on the path6293 when searching for `git`6294 is expected to eq ["git", "gitlab", "gitaly"]6295 when searching for `gitlab`6296 is expected to eq ["gitlab", "gitlab-styles", "gitlab-danger"]6297 when searching for something unrelated6298 results have 0 similarity score6299 score multiplier6300 ranks `path` matches higher6301 annotation6302 annotates the generated SQL expression6303Mutations::Issues::SetSeverity6304 is expected to require graphql authorizations :update_issue and :admin_issue6305 #resolve6306 as guest6307 raises an error6308 and also author6309 raises an error6310 and also assignee6311 raises an error6312 as reporter6313 when issue type is incident6314 when severity has a correct value6315 updates severity6316 returns no errors6317 when severity has an unsuported value6318 sets severity to default6319 returns no errorsr6320 when issue type is not incident6321 does not update the issue6322MergeRequests::SetReviewerReviewedWorker6323 # order random6324 calls MergeRequests::MarkReviewerReviewedService6325 behaves like subscribes to event6326 consumes the published event6327 behaves like an idempotent worker6328 is labeled as idempotent6329 performs multiple times sequentially without raising an exception6330 when the user does not exist6331 behaves like when object does not exist6332 logs and does not call MergeRequests::MarkReviewerReviewedService6333 when the merge request does not exist6334 behaves like when object does not exist6335 logs and does not call MergeRequests::MarkReviewerReviewedService6336projects/generic_commit_statuses/_generic_commit_status.html.haml6337 won't include a column with a link to its pipeline by default6338 can include a column with a link to its pipeline6339clearing redis cache6340 # order random6341 clearing pipeline status cache6342 behaves like clears the cache6343 is expected to change `redis_keys(redis).size` by -16344 clearing set caches6345 repository set6346 behaves like clears the cache6347 is expected to change `redis_keys(redis).size` by -16348 reactive cache set6349 behaves like clears the cache6350 is expected to change `redis_keys(redis).size` by -16351PipelineHooksWorker6352 #perform6353 when pipeline exists6354 executes hooks for the pipeline6355 when pipeline does not exist6356 does not raise exception6357 when the user is blocked6358 returns early without executing6359 behaves like worker with data consistency6360 .get_data_consistency_feature_flag_enabled?6361 returns true6362 .get_data_consistency6363 returns correct data consistency6364Mutations::CustomerRelations::Contacts::Create6365 is expected to require graphql authorizations :admin_crm_contact6366 #resolve6367 when the user does not have permission6368 raises an error6369 when the user has permission6370 creates contact with correct values6371 when crm_enabled is false6372 raises an error6373 when the params are invalid6374 returns the validation error6375 when attaching to an crm_organization6376 when all ok6377 creates contact with correct values6378 when crm_organization does not exist6379 returns the relevant error6380 when crm_organzation belongs to a different group6381 returns the relevant error6382Resolvers::AlertManagement::HttpIntegrationsResolver6383 is expected to have nullable GraphQL type AlertManagementHttpIntegrationConnection6384 user does not have permission6385 is expected to be empty6386 user has developer permission6387 is expected to be empty6388 user has maintainer permission6389 is expected to contain exactly #<AlertManagement::HttpIntegration id: 1, created_at: "2023-08-10 12:38:29.282215988 +0000", updated_... "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil>6390 when HTTP Integration ID is given6391 when integration is from the current project6392 is expected to contain exactly #<AlertManagement::HttpIntegration id: 2, created_at: "2023-08-10 12:38:29.316485624 +0000", updated_... "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil>6393 when integration is from other project6394 is expected to be empty6395Mutations::Todos::MarkDone6396 is expected to require graphql authorizations :update_todo6397 #resolve6398 marks a single todo as done6399 handles a todo which is already done as expected6400 ignores requests for todos which do not belong to the current user6401AuthorizedProjectUpdate::UserRefreshWithLowUrgencyWorker6402 is labeled as low urgency6403 behaves like refreshes user's project authorizations6404 #perform6405 refreshes user's authorized projects6406 when the user is not found6407 does nothing6408 behaves like an idempotent worker6409 is labeled as idempotent6410 performs multiple times sequentially without raising an exception6411 does not change authorizations when run twice6412Gitlab::Usage::Metrics::Instrumentations::CountDeploymentsMetric6413 # order random6414 type: :failed, time_frame: "28d", expected_value: 16415 behaves like a correct instrumented metric value6416 has correct value6417 type: :all, time_frame: "all", expected_value: 66418 behaves like a correct instrumented metric value6419 has correct value6420 type: :all, time_frame: "28d", expected_value: 36421 behaves like a correct instrumented metric value6422 has correct value6423 type: :success, time_frame: "28d", expected_value: 26424 behaves like a correct instrumented metric value6425 has correct value6426 type: :success, time_frame: "all", expected_value: 46427 behaves like a correct instrumented metric value6428 has correct value6429 type: :failed, time_frame: "all", expected_value: 26430 behaves like a correct instrumented metric value6431 has correct value6432JiraConnect::CreateAsymmetricJwtService6433 # order random6434 #execute6435 raises an error6436 with proxy installation6437 stores the public key6438 behaves like produces a valid JWT6439 produces a valid JWT6440 with uninstalled event option6441 behaves like produces a valid JWT6442 produces a valid JWT6443Packages::Debian::UpdateDistributionService6444 behaves like Debian Update Distribution Service6445 with a Debian project distribution6446 with valid simple params6447 behaves like Update Debian Distribution6448 returns ServiceResponse6449 with invalid simple params6450 behaves like Update Debian Distribution6451 returns ServiceResponse6452 with valid components and architectures6453 behaves like Update Debian Distribution6454 returns ServiceResponse6455 with invalid components6456 behaves like Update Debian Distribution6457 returns ServiceResponse6458 with invalid architectures6459 behaves like Update Debian Distribution6460 returns ServiceResponse6461 behaves like Debian Update Distribution Service6462 with a Debian group distribution6463 with valid simple params6464 behaves like Update Debian Distribution6465 returns ServiceResponse6466 with invalid simple params6467 behaves like Update Debian Distribution6468 returns ServiceResponse6469 with valid components and architectures6470 behaves like Update Debian Distribution6471 returns ServiceResponse6472 with invalid components6473 behaves like Update Debian Distribution6474 returns ServiceResponse6475 with invalid architectures6476 behaves like Update Debian Distribution6477 returns ServiceResponse6478Banzai::ReferenceParser::ProjectParser6479 #referenced_by6480 when the link has a data-project attribute6481 using an existing project ID6482 returns an Array of projects6483 using a non-existing project ID6484 returns an empty Array6485 using a private project ID6486 returns an empty Array when unauthorized6487 returns an Array when authorized6488Sidebars::UserSettings::Menus::NotificationsMenu6489 # order random6490 behaves like User settings menu #render? method6491 #render?6492 when user is logged in6493 renders6494 when user is not logged in6495 does not render6496 behaves like User settings menu6497 does not contain any sub menu6498 renders the correct link6499 renders the correct title6500 renders the correct icon6501 defines correct active route6502Gitlab::Ci::Build::Policy::Variables6503 #satisfied_by?6504 is satisfied by at least one matching statement6505 is satisfied by a matching pipeline variable6506 is not satisfied by an overridden empty variable6507 is satisfied by a truthy pipeline expression6508 is not satisfied by a falsy pipeline expression6509 is satisfied by a truthy expression using undefined variable6510 is not satisfied by a falsy expression using undefined variable6511 allows to evaluate regular CI variables6512 does not persist neither pipeline nor build6513 when a bridge job is used6514 is satisfied by a matching expression for a bridge job6515 when using project ci variables in environment scope6516 is satisfied by scoped variable match6517 is not satisfied when matching against overridden variable6518Boards::VisitsFinder6519 #latest6520 when a project board6521 returns nil when there is no user6522 queries for most recent visit6523 queries for last N visits6524 when a group board6525 returns nil when there is no user6526 queries for most recent visit6527 queries for last N visits6528ForkTargetsFinder6529 #execute6530 behaves like returns namespaces and groups6531 returns all user manageable namespaces6532 returns only groups when only_groups option is passed6533 returns groups relation when only_groups option is passed6534 when search is provided6535 filters the targets by the param6536Releases::Links::CreateService6537 # order random6538 #execute6539 successfully creates a release link6540 when user does not have access to create release link6541 returns an error6542 when url is invalid6543 returns an error6544 when both direct_asset_path and filepath are provided6545 prefers direct_asset_path6546 when only filepath is set6547 uses filepath6548BulkImports::Common::Pipelines::WikiPipeline6549 #run6550 behaves like wiki pipeline imports a wiki for an entity6551 #run6552 when wiki exists6553 imports new wiki into destination project6554 when wiki does not exist6555 does not import wiki6556 when scheme is blocked6557 prevents import6558 when wiki is disabled6559 unsuccessful response6560 when response is forbidden6561 does not raise an error6562 when response is not found6563 does not raise an error6564 when response is not 4036565 marks tracker as failed6566Sidebars::Admin::Menus::MessagesMenu6567 # order random6568 behaves like Admin menu without sub menus6569 does not contain any sub menu(s)6570 defines correct active route6571 behaves like Admin menu6572 renders the correct link6573 renders the correct title6574 renders the correct icon6575 renders the separator if needed6576 #render?6577 when user is admin6578 renders6579 when user is not admin6580 does not render6581 when user is not logged in6582 does not render6583Gitlab::Analytics::DateFiller6584 # order random6585 when period=:day6586 is expected to eq [[Tue, 25 May 2021, 1], [Wed, 26 May 2021, 0], [Thu, 27 May 2021, 0], [Fri, 28 May 2021, 0], [Sat, 29...21, 0], [Wed, 02 Jun 2021, 0], [Thu, 03 Jun 2021, 10], [Fri, 04 Jun 2021, 0], [Sat, 05 Jun 2021, 0]]6587 when a custom default value is given6588 is expected to eq [[Tue, 25 May 2021, 1], [Wed, 26 May 2021, "MISSING"], [Thu, 27 May 2021, "MISSING"], [Fri, 28 May 20...1, "MISSING"], [Thu, 03 Jun 2021, 10], [Fri, 04 Jun 2021, "MISSING"], [Sat, 05 Jun 2021, "MISSING"]]6589 when a custom date formatter is given6590 is expected to eq [["2021-05-25", 1], ["2021-05-26", 0], ["2021-05-27", 0], ["2021-05-28", 0], ["2021-05-29", 0], ["202... 0], ["2021-06-01", 0], ["2021-06-02", 0], ["2021-06-03", 10], ["2021-06-04", 0], ["2021-06-05", 0]]6591 when the data contains dates outside of the requested period6592 raises error6593 when period=:week6594 is expected to eq [[Mon, 10 May 2021, 0], [Mon, 17 May 2021, 0], [Mon, 24 May 2021, 0], [Mon, 31 May 2021, 0], [Mon, 07 Jun 2021, 10]]6595 when unknown period is given6596 raises error6597 when period=:month6598 is expected to eq [[Sat, 01 May 2021, 100], [Tue, 01 Jun 2021, 0], [Thu, 01 Jul 2021, 0]]6599Gitlab::Graphs::Commits6600 #commit_per_day6601 when range is only commits from today6602 is expected to eq 26603 when range is only commits from today6604 #commit_per_day6605 is expected to eq 26606 #duration6607 is expected to eq 06608 with commits from yesterday and today6609 #commit_per_day6610 is expected to eq 1.06611 #duration6612 is expected to eq 16613Gitlab::Usage::Metrics::KeyPathProcessor6614 #unflatten_default_path6615 key_path: "uuid", value: nil, expected_hash: {:uuid=>nil}6616 is expected to eq {:uuid=>nil}6617 key_path: "uuid", value: "1111", expected_hash: {:uuid=>"1111"}6618 is expected to eq {:uuid=>"1111"}6619 key_path: "counts.issues", value: nil, expected_hash: {:counts=>{:issues=>nil}}6620 is expected to eq {:counts=>{:issues=>nil}}6621 key_path: "counts.issues", value: 100, expected_hash: {:counts=>{:issues=>100}}6622 is expected to eq {:counts=>{:issues=>100}}6623 key_path: "usage_activity_by_stage.verify.ci_builds", value: 100, expected_hash: {:usage_activity_by_stage=>{:verify=>{:ci_builds=>100}}}6624 is expected to eq {:usage_activity_by_stage=>{:verify=>{:ci_builds=>100}}}6625SystemNotes::IncidentsService6626 # order random6627 #delete_timeline_event6628 posts the correct text to the system note6629 behaves like a system note6630 has the correct attributes6631 #edit_timeline_event6632 behaves like a system note6633 has the correct attributes6634 when only timeline event's occurred_at was changed6635 posts the correct text to the system note6636 when only timeline event's note was changed6637 posts the correct text to the system note6638 when both timeline events occurred_at and note was changed6639 posts the correct text to the system note6640 when was changed reason is unknown6641 posts the correct text to the system note6642 #add_timeline_event6643 posts the correct text to the system note6644 behaves like a system note6645 has the correct attributes6646Gitlab::Changelog::Generator6647 #add6648 generates the Markdown for the first release6649 generates the Markdown for a newer release6650 generates the Markdown for a patch release6651 generates the Markdown for an old release6652Ci::DailyBuildGroupReportResultsWorker6653 #perform6654 when pipeline is found6655 executes service6656 when pipeline is not found6657 does not execute service6658Releases::Links::DestroyService6659 # order random6660 #execute6661 successfully deletes a release link6662 when user does not have access to delete release link6663 returns an error6664 when release link does not exist6665 returns an error6666 when release link deletion failed6667 returns an error6668GroupCustomAttribute6669 assocations6670 is expected to belong to group required: false6671 validations6672 is expected to validate that :group cannot be empty/falsy6673 is expected to validate that :key cannot be empty/falsy6674 is expected to validate that :value cannot be empty/falsy6675 is expected to validate that :key is case-sensitively unique within the scope of :group_id6676API::Entities::ApplicationSetting6677 housekeeping_bitmaps_enabled usage is deprecated and always enabled6678 when housekeeping_bitmaps_enabled db column is false6679 returns true6680 when housekeeping_bitmaps_enabled db column is true6681 returns true6682Gitlab::Redis::HLL6683 .add6684 when checking key format6685 for invalid keys6686 metric_key: "test", value: 16687 raise an error when using an invalid key format6688 metric_key: "test-{metric", value: 16689 raise an error when using an invalid key format6690 metric_key: "test-{metric}}", value: 16691 raise an error when using an invalid key format6692 for valid keys6693 metric_key: "test-{metric}", value: 16694 doesn't raise error when having correct format6695 metric_key: "test-{metric}-1", value: 16696 doesn't raise error when having correct format6697 metric_key: "test:{metric}-1", value: 16698 doesn't raise error when having correct format6699 metric_key: "2020-216-{project_action}", value: 16700 doesn't raise error when having correct format6701 metric_key: "i_{analytics}_dev_ops_score-2020-32", value: 16702 doesn't raise error when having correct format6703 when adding entries6704 supports single value6705 supports multiple values6706 .count6707 has 3 distinct users for weeks 32, 33, 346708 has 3 distinct users for weeks 32, 336709 has 2 distinct users for weeks 33, 346710 has one distinct user for week 336711 has 4 distinct users when one different user has an action on week 346712Gitlab::GithubGistsImport::Status6713 # order random6714 #fail!6715 sets failed status6716 #start!6717 expires the key6718 #finish!6719 sets finished status6720 #started?6721 checks if status is started6722ProductAnalytics::BuildGraphService6723 returns a valid graph hash6724Gitlab::GithubImport::Importer::PullRequests::MergedByImporter6725 # order random6726 when the merger user is not provided6727 adds a note referencing the merger user6728 when the merger user cannot be mapped to a gitlab user6729 behaves like adds a note referencing the merger user6730 adds a note referencing the merger user6731 when original user cannot be found on github6732 behaves like adds a note referencing the merger user6733 adds a note referencing the merger user6734 when the merger user can be mapped6735 assigns the merged by user when mapped6736Gitlab::WordDiff::LineProcessor6737 #extract6738 when line is a diff hunk6739 returns DiffHunk segment6740 when line has a newline delimiter6741 returns Newline segment6742 when line has only space6743 returns nil6744 when line has content6745 returns Chunk segment6746Types::Clusters::AgentTokenType6747 is expected to eq "ClusterAgentToken"6748 is expected to require graphql authorizations :read_cluster_agent6749 is expected to have graphql fields :cluster_agent, :created_at, :created_by_user, :description, :id, :last_used_at, :name, and :status6750Slack::API6751 # order random6752 #post6753 posts to the Slack API correctly6754 returns the response6755 when the slack installation has no bot token6756 raises an error6757BulkImports::Projects::Pipelines::SnippetsPipeline6758 #run6759 imports snippet into destination project6760 with award_emoji6761 restores the award_emoji6762 with notes6763 restores the notes6764Groups::AcceptingProjectCreationsFinder6765 # order random6766 #execute6767 only returns groups where the user has access to create projects6768Gitlab::Ci::Config::External::Mapper::VariablesExpander6769 # order random6770 #process6771 when locations are strings6772 expands variables6773 when locations are hashes6774 expands variables6775 when locations are arrays6776 expands variables6777Ml::ExperimentTracking::HandleCandidateGitlabMetadataService6778 # order random6779 execute6780 when metadata includes gitlab.CI_JOB_ID and gitlab.CI_JOB_ID is valid6781 updates candidate correctly6782 when metadata includes gitlab.CI_JOB_ID and gitlab.CI_JOB_ID is invalid6783 raises error6784UnnestedInFilters::Rewriter6785 #rewrite?6786 when a join table is receiving an IN list query6787 is expected to be falsey6788 when the given relation does not have an `IN` predicate6789 is expected to be falsey6790 when the given relation has an `IN` predicate6791 when there is no index coverage for the used columns6792 is expected to be falsey6793 when there is an index coverage for the used columns6794 is expected to be truthy6795 when there is an ordering6796 when the order is an Arel node6797 is expected to be truthy6798 when the order is a Keyset order6799 is expected to be truthy6800 #rewrite6801 changes the query6802 when the relation has a subquery6803 changes the query6804 when there is an order6805 when the order is an Arel node6806 changes the query6807 when the order is a Keyset order6808 changes the query6809 when the combined attributes include the primary key6810 changes the query6811 when a join table is receiving an IN list query6812 does not rewrite the in statement for the joined table6813 logging6814 logs the call6815Gitlab::HookData::ReleaseBuilder6816 #build6817 includes safe attribute6818 includes additional attrs6819 when the Release has an image in the description6820 sets the image to use an absolute URL6821notify/autodevops_disabled_email.text.erb6822 when the pipeline contains a failed job6823 renders the email correctly6824Gitlab::Kubernetes::Deployment6825 #name6826 is expected to eq :selected6827 #labels6828 is expected to eq :selected6829 #outdated?6830 when outdated6831 is expected to be truthy6832 when up to date6833 is expected to be falsy6834 when ahead of latest6835 is expected to be falsy6836 #instances6837 when unnamed6838 returns all pods with generated names and pending6839 when number of pods is less than wanted replicas6840 returns not spawned pods as pending and unknown and running6841 when outdated6842 returns all instances as named and waiting6843 with pods of each type6844 returns all instances6845 with track label6846 when marked as stable6847 returns all instances6848 when marked as canary6849 returns all instances6850Gitlab::GithubImport::ObjectCounter6851 validates the operation being incremented6852 increments the counter and saves the key to be listed in the summary later6853 does not increment the counter if the given value is <= 06854 expires etag cache of relevant realtime change endpoints on increment6855 .summary6856 when there are cached import statistics6857 includes cached object counts stats in response6858 when there are no cached import statistics6859 when project import is in progress6860 includes an empty object counts stats in response6861 when project import is not in progress6862 includes project import checksums in response6863Packages::Helm::PackageFilesFinder6864 #execute6865 with empty params6866 is expected to eq [#<Packages::PackageFile id: 40, package_id: 16, created_at: "2023-08-10 12:39:13.527672985 +0000", u...m: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>]6867 with another project6868 is expected to eq []6869 with another channel6870 is expected to eq []6871 with matching file_name6872 is expected to eq [#<Packages::PackageFile id: 40, package_id: 16, created_at: "2023-08-10 12:39:13.527672985 +0000", u...m: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>]6873 with another file_name6874 is expected to eq []6875 #most_recent!6876 is expected to eq #<Packages::PackageFile id: 40, package_id: 16, created_at: "2023-08-10 12:39:13.527672985 +0000", up...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>6877BulkImports::StuckImportWorker6878 perform6879 updates the status of bulk imports to timeout6880 updates the status of bulk import entities to timeout6881 updates the status of stale entities trackers to timeout6882 does not update the status of non-stale records6883Mutations::Environments::Stop6884 # order random6885 #resolve6886 when service execution succeeded6887 returns no errors6888 stops the environment6889 when service cannot change the status without force6890 returns an error6891 when force is set to true6892 and state transition would fail without force6893 stops the environment6894 when user is reporter who does not have permission to access the environment6895 raises an error6896GitlabScriptTagHelper6897 external script tag6898DEPRECATION WARNING: The asset "test.js" is not present in the asset pipeline.6899Falling back to an asset that may be in the public folder.6900This behavior is deprecated and will be removed.6901To bypass the asset pipeline and preserve this behavior,6902use the `skip_pipeline: true` option.6903 (called from javascript_include_tag at /builds/gitlab-org/gitlab/app/helpers/gitlab_script_tag_helper.rb:12)6904 returns a script tag with defer=true and a nonce6905DEPRECATION WARNING: The asset "test.js" is not present in the asset pipeline.6906Falling back to an asset that may be in the public folder.6907This behavior is deprecated and will be removed.6908To bypass the asset pipeline and preserve this behavior,6909use the `skip_pipeline: true` option.6910 (called from javascript_include_tag at /builds/gitlab-org/gitlab/app/helpers/gitlab_script_tag_helper.rb:12)6911 returns a script tag with defer=false and a nonce6912DEPRECATION WARNING: The asset "test.js" is not present in the asset pipeline.6913Falling back to an asset that may be in the public folder.6914This behavior is deprecated and will be removed.6915To bypass the asset pipeline and preserve this behavior,6916use the `skip_pipeline: true` option.6917 (called from javascript_include_tag at /builds/gitlab-org/gitlab/app/helpers/gitlab_script_tag_helper.rb:12)6918 returns a script tag with a nonce even nonce is set to nil6919 inline script tag6920 returns a script tag with a nonce using block syntax6921 returns a script tag with a nonce using block syntax with options6922 returns a script tag with a nonce using argument syntax6923 returns a script tag with a nonce using argument syntax with options6924 returns a script tag with a nonce using argument and block syntax with options6925 #preload_link_tag6926 returns a link tag with a nonce6927ErrorTracking::StacktraceBuilder6928 #stacktrace6929 with full error context6930 generates a correct stacktrace in expected format6931 when error context is missing6932 generates a stacktrace without context6933 when exception payload is a list6934 extracts a stracktrace6935 with empty payload6936 is expected to eq []6937 without exception field6938 is expected to eq []6939 without exception.values field6940 is expected to eq []6941 without any exception.values[].stacktrace fields6942 is expected to eq []6943 without any exception.values[].stacktrace.frame fields6944 is expected to eq []6945ActsAsTaggableOn::Tagging6946 has the same connection as Ci::ApplicationRecord6947 has the same sticking as Ci::ApplicationRecord6948SearchServicePresenter6949 #search_objects6950 objects do not respond to eager_load6951 users scope6952 does not eager load anything6953 #show_results_status?6954 with_count: true, show_snippets: true, show_sort_dropdown: true, result: true6955 is expected to eq true6956 with_count: false, show_snippets: true, show_sort_dropdown: false, result: true6957 is expected to eq true6958 with_count: false, show_snippets: false, show_sort_dropdown: true, result: true6959 is expected to eq true6960 with_count: false, show_snippets: false, show_sort_dropdown: false, result: false6961 is expected to eq false6962 #advanced_search_enabled?6963 is expected to eq false6964Gitlab::Ci::Trace::RemoteChecksum6965 #md5_checksum6966 when the file is stored locally6967 is expected to be nil6968 when object store is enabled6969 with local files6970 is expected to be nil6971 with remote files6972 with AWS as provider6973 is expected to eq "ebde71c229ce37275c8708b4e3ae5eec"6974 with Google as provider6975 when the response does not include :content_md56976 raises an exception6977 when the response include :content_md56978 is expected to eq "ebde71c229ce37275c8708b4e3ae5eec"6979 with unsupported providers6980 is expected to be nil6981Gitlab::Analytics::CycleAnalytics::Median6982 retruns nil when no results6983 returns median duration seconds as float6984Ci::Deployments::DestroyService6985 when deleting a deployment6986 delete is accepted for old deployment6987 does not delete a running deployment6988 does not delete the last deployment6989Mutations::AlertManagement::HttpIntegration::Destroy6990 is expected to require graphql authorizations :admin_operations6991 #resolve6992 user has access to project6993 when HttpIntegrations::DestroyService responds with success6994 returns the integration with no errors6995 when HttpIntegrations::DestroyService responds with an error6996 returns errors6997 when resource is not accessible to the user6998 raises an error if the resource is not accessible to the user6999Gitlab::Database::Reindexing::ReindexConcurrently#perform7000 recreates the index using REINDEX with a long statement timeout7001 when the index serves an exclusion constraint7002 raises an error7003 when attempting to reindex an expression index7004 raises an error7005 when the index is a dangling temporary index from a previous reindexing run7006 with the temporary index prefix7007 raises an error7008 with the temporary index prefix with a counter7009 raises an error7010 with dangling indexes matching TEMPORARY_INDEX_PATTERN, i.e. /some\_index\_ccnew(\d)*/7011 with normal index names7012 behaves like dropping the dangling index7013 drops the dangling indexes while controlling lock_timeout7014 with index name at 63 character limit7015 behaves like dropping the dangling index7016 drops the dangling indexes while controlling lock_timeout7017Tooling::Danger::Specs7018 #changed_specs_files7019 returns added, modified, and renamed_after files by default7020 with include_ee: :exclude7021 returns spec files without EE-specific files7022 with include_ee: :only7023 returns EE-specific spec files only7024Gitlab::SlashCommands::GlobalSlackHandler7025 # order random7026 does not serve a request if token is invalid7027 with valid token7028 calls command handler if project alias is valid7029 returns error if project alias not found7030 returns authorization request7031 calls help presenter7032 with incident declare command7033 calls command handler with no project alias7034projects/milestones/index.html.haml7035 behaves like milestone empty states7036 with no milestones7037 shows empty state7038 does not show tabs or searchbar7039 with no open milestones7040 shows tabs and searchbar7041 shows empty state7042 with no closed milestones7043 shows tabs and searchbar7044 shows empty state on closed milestones7045Types::WorkItemIdType7046 .coerce_input7047 can coerce valid issue input7048 can coerce valid work item input7049 fails for other input types7050 .coerce_result7051 can coerce issue results and return a WorkItem global ID7052 can coerce work item results7053 fails for other input types7054ExclusiveLeaseGuard7055 #try_obtain_lease7056 obtains the lease, calls internal_method and releases the lease7057 when the lease is already obtained7058 when the class does not override lease_taken_log_level7059 does not call internal_method but logs error7060 when the class overrides lease_taken_log_level to return :info7061 logs info7062 when the class overrides lease_taken_log_level to return :debug7063 logs debug7064 with overwritten lease_release?7065 does not release the lease after execution7066 #exclusive_lease7067 uses the class name as lease key7068 with overwritten lease_key7069 uses the custom lease key7070 #release_lease7071 sends a cancel message to ExclusiveLease7072 #renew_lease!7073 sends a renew message to the exclusive_lease instance7074Gitlab::Ci::Artifacts::DecompressedArtifactSizeValidator7075 # order random7076 when the file is located in the cloud7077 behaves like when file does not exceed allowed compressed size7078 passes validation7079 behaves like when file exceeds allowed decompressed size7080 raises an exception7081 when file_format is not on the list7082 passes validation7083 when file is not provided7084 passes validation7085 #validate!7086 behaves like when file does not exceed allowed compressed size7087 passes validation7088 behaves like when file exceeds allowed decompressed size7089 raises an exception7090Mutations::AlertManagement::HttpIntegration::Create7091 is expected to require graphql authorizations :admin_operations7092 #resolve7093 user has access to project7094 when HttpIntegrations::CreateService responds with success7095 returns the integration with no errors7096 when HttpIntegrations::CreateService responds with an error7097 returns errors7098 when resource is not accessible to the user7099 raises an error if the resource is not accessible to the user7100Sidebars::UserSettings::Menus::AuthenticationLogMenu7101 # order random7102 behaves like User settings menu #render? method7103 #render?7104 when user is logged in7105 renders7106 when user is not logged in7107 does not render7108 behaves like User settings menu7109 does not contain any sub menu7110 renders the correct link7111 renders the correct title7112 renders the correct icon7113 defines correct active route7114BulkImports::FinishBatchedPipelineWorker7115 # order random7116 #perform7117 finishes pipeline and enqueues entity worker7118 when import is in progress7119 re-enqueues7120 when pipeline tracker is stale7121 fails pipeline tracker and its batches7122 when pipeline is not batched7123 returns7124 when pipeline is not started7125 returns7126Gitlab::Ci::Config::Entry::Release::Assets::Link7127 validation7128 when entry config value is correct7129 #value7130 returns link configuration7131 #valid?7132 is valid7133 when entry value is not correct7134 #errors7135 when name is not a string7136 reports error7137 when name is not present7138 reports error7139 when url is not addressable7140 reports error7141 when url is not present7142 reports error7143 when there is an unknown key present7144 reports error7145Ml::CandidateMetadata7146 # order random7147 uniqueness of name7148 is unique within candidate7149 associations7150 is expected to belong to candidate required: false7151Mutations::Boards::Update7152 is expected to require graphql authorizations :admin_issue_board7153 #resolve7154 when the user cannot admin the board7155 raises an error7156 when user can update board7157 updates board with correct values7158Gitlab::Ci::Pipeline::Chain::RemoveUnwantedChatJobs7159 #perform!7160 removes unwanted jobs for chat pipelines7161 does not remove any jobs for non chat-pipelines7162PersonalAccessTokens::ExpiringWorker7163 #perform7164 when a token needs to be notified7165 uses notification service to send the email7166 marks the notification as delivered7167 when no tokens need to be notified7168 doesn't use notification service to send the email7169 doesn't change the notification delivered of the token7170 when a token is an impersonation token7171 doesn't use notification service to send the email7172 doesn't change the notification delivered of the token7173Keys::LastUsedService7174 #execute7175 when it has not been used recently7176 updates the key7177 when it has been used recently7178 does not update the key7179 #execute_async7180 when it has not been used recently7181 schedules a job to update last_used_at7182 when it has been used recently7183 does not schedule a job to update last_used_at7184 #update?7185 returns true when no last used timestamp is present7186 returns true when the key needs to be updated7187 returns false when the key does not yet need to be updated7188PushEventPayload7189 behaves like having unique enum values7190 has unique values in "action"7191 has unique values in "ref_type"7192 saving payloads7193 does not allow commit messages longer than 70 characters7194IdentityProviderPolicy7195 #rules7196 is expected to be allowed :link7197 is expected to be allowed :unlink7198 when user is anonymous7199 is expected not to be allowed :link7200 is expected not to be allowed :unlink7201 when provider is saml7202 is expected to be allowed :link7203 is expected not to be allowed :unlink7204Gitlab::Tracking::Destinations::Snowplow7205 when snowplow is enabled7206 #event7207 sends event to tracker7208 increase total snowplow events counter7209 when snowplow is not enabled7210 #event7211 does not send event to tracker7212 callbacks7213 on success7214 increase gitlab_successful_snowplow_events_total counter7215 on failure7216 increase gitlab_failed_snowplow_events_total counter and logs failures7217Achievements::CreateService7218 # order random7219 #execute7220 when user does not have permission7221 returns an error7222 when user has permission7223 creates an achievement7224 returns an error when the achievement is not persisted7225Abuse::TrustScore7226 # order random7227 create7228 if correlation ID is nil7229 adds the correlation id7230 if correlation ID is set7231 does not change the correlation id7232 validations7233 is expected to validate that :user cannot be empty/falsy7234 is expected to validate that :score cannot be empty/falsy7235 is expected to validate that :source cannot be empty/falsy7236 associations7237 is expected to belong to user required: false7238shared/projects/_inactive_project_deletion_alert7239 without a project7240 behaves like does not render7241 is expected not to have text "Due to inactivity, this project is scheduled to be deleted on 2022-04-01. Why is this scheduled?"7242 with a project7243 when the project is active7244 behaves like does not render7245 is expected not to have text "Due to inactivity, this project is scheduled to be deleted on 2022-04-01. Why is this scheduled?"7246 when the project is inactive7247 does render the alert7248admin/application_settings/repository.html.haml7249 default initial branch name7250 has the setting section7251 renders the correct setting section content7252Gitlab::AssetProxy7253 when asset proxy is disabled7254 returns the original URL7255 when asset proxy is enabled7256 returns a proxied URL7257 returns original URL for invalid domains7258 whitelisted domain7259 returns original URL for single domain whitelist7260 returns original URL for wildcard subdomain whitelist7261Gitlab::Cache::Metrics7262 # order random7263 #increment_cache_hit7264 increments number of hits7265 when labels redefine defaults7266 increments number of hits7267 #observe_cache_generation7268 updates histogram metric7269 when labels redefine defaults7270 updates histogram metric7271 #increment_cache_miss7272 increments number of misses7273 when labels redefine defaults7274 increments number of misses7275Prometheus::PidProvider7276 .worker_id7277 when running in Sidekiq server mode7278 in a clustered setup7279 is expected to eq "sidekiq_123"7280 in a single process setup7281 is expected to eq "sidekiq"7282 when running in Puma mode7283 when cluster worker id is specified in process name7284 is expected to eq "puma_1"7285 when no worker id is specified in process name7286 is expected to eq "puma_master"7287 when running in unknown mode7288 is expected to eq "process_329"7289Gitlab::Ci::Build::Artifacts::Adapters::RawStream7290 #initialize7291 when stream is passed7292 initialized7293 when stream is not passed7294 raises an error7295 #each_blob7296 when file is not empty7297 iterates content7298 when file is empty7299 does not iterate content7300Gitlab::Ci::Build::Artifacts::Adapters::GzipStream7301 #initialize7302 when stream is passed7303 initialized7304 when stream is not passed7305 raises an error7306 #each_blob7307 when stream is gzip file7308 when gzip file contains one file7309 iterates content and file_name7310 when gzip file contains three files7311 iterates content and file_name7312 when stream is zip file7313 raises an error7314validate puma7315 for .com7316 when worker count is 07317 is expected to raise String7318 when worker count is > 07319 is expected not to raise Exception7320 for other environments7321 when worker count is 07322 is expected not to raise Exception7323 warns about running Puma in a Single mode7324 when worker count is > 07325 is expected not to raise Exception7326 does not issue a warning7327API::Entities::ProjectJobTokenScope7328 # order random7329 #as_json7330 includes basic fields7331 includes basic fields7332admin/application_settings/_jira_connect.html.haml7333 # order random7334 renders the asymmetric jwt cdn url field7335 renders the application ID field7336 renders the enable public key storage checkbox7337Tooling::Danger::RequiredStops7338 # order random7339 #add_comment_for_finalized_migrations7340 when model has a newly added migration finalization7341 with regular migration7342 when model has a newly added migration finalization7343 adds comment at the correct line7344 when model does not have migration finalization statement7345 does not add comment7346 with post migration7347 when model has a newly added migration finalization7348 adds comment at the correct line7349 when model does not have migration finalization statement7350 does not add comment7351Types::DataTransfer::ProjectDataTransferType7352 # order random7353 includes the specific fields7354 #total_egress7355 returns mock data7356 when data_transfer_monitoring_mock_data is disabled7357 calls sum on active record relation7358Sidebars::YourWork::Menus::IssuesMenu7359 # order random7360 #pill_count7361 returns the assigned_open_issues_count of the user7362 memoizes the query7363 #has_pill?7364 when count is zero7365 returns false7366 when count is larger than zero7367 returns true7368RuboCop::Cop::Migration::AddConcurrentForeignKey7369 # order random7370 when in a migration7371 registers an offense when using add_foreign_key7372 does not register an offense when a `NOT VALID` foreign key is added7373 does not register an offense when `add_foreign_key` is within `with_lock_retries`7374 when outside of a migration7375 does not register any offenses7376Integrations::SlackInteractionService7377 # order random7378 #execute7379 when view is closed7380 executes the correct service7381 when view is submitted7382 executes the submission service7383 when block action service is submitted7384 executes the block actions service7385 when slack_interaction is not known7386 raises an error and does not execute a service class7387Gitlab::SidekiqMiddleware::WorkerContext::Server7388 #call7389 applies a class context7390 doesn't fail for unknown workers7391 feature category7392 takes the feature category from the worker7393 when the worker is not owned7394 takes the feature category from the surrounding context7395shared/web_hooks/_web_hook_disabled_alert7396 # order random7397 when show_project_hook_failed_callout? is false7398 does not add alert to `:after_flash_content`7399 when show_project_hook_failed_callout? is true7400 adds alert to `:after_flash_content`7401JiraConnect::ForwardEventWorker7402 #perform7403 forwards the event and deletes the installation7404 when installation does not exist7405 does nothing7406 when installation does not have an instance_url7407 forwards the event including the auth header7408API::Entities::DeployKey7409 #as_json7410 includes basic fields7411 when in FIPS mode7412 is expected not to have key :fingerprint7413BatchedGitRefUpdates::ProjectCleanupWorker7414 # order random7415 behaves like an idempotent worker7416 is labeled as idempotent7417 performs multiple times sequentially without raising an exception7418 #perform7419 delegates to ProjectCleanupService7420 logs stats7421Gitlab::Metrics::Memory7422 .gc_heap_fragmentation7423 when the Ruby heap is perfectly utilized7424 is expected to eq 07425 when the Ruby heap is greatly fragmented7426 is expected to be > 0.997427 when the Ruby heap is semi-fragmented7428 is expected to eq 0.57429API::Helpers::Version7430 .new7431 is possible to initialize it with existing API version7432 raises an error when unsupported API version is provided7433 #root_path7434 returns a root path of the API version7435 #root_url7436 returns an URL for a root path for the API version7437AbuseReportPolicy7438 # order random7439 when the user is not an admin7440 cannot read_abuse_report7441 when the user is an admin7442 can read_abuse_report7443GroupDeployKeyPolicy7444 edit a group deploy key7445 when the user does not own the group deploy key7446 is expected to be disallowed :update_group_deploy_key7447 when the user owns the group deploy key7448 is expected to be allowed :update_group_deploy_key7449Types::CustomerRelations::ContactType7450 is expected to eq "CustomerRelationsContact"7451 is expected to have graphql fields "id", "organization", "first_name", "last_name", "phone", "email", "description", "active", "created_at", and "updated_at"7452 is expected to require graphql authorizations :read_crm_contact7453Tooling::Danger::ModelValidations7454 # order random7455 #changed_model_files7456 returns added and modified files7457 #add_comment_for_added_validations7458 when model has a newly added validation7459 adds suggestions at the correct line7460 when model does not have a newly added validation7461 does not add suggestion7462Types::MergeRequestStateEnum7463 is expected to eq "MergeRequestState"7464 exposes all the existing merge request states7465 behaves like issuable state7466 exposes all the existing issuable states7467GoogleApi::Auth7468 #authorize_url7469 returns authorize_url7470 #get_token7471 returns token and expires_at7472 expects the client to receive default options7473Gitlab::Ci::Pipeline::Expression::Lexeme::Null7474 .build7475 creates a new instance of the token7476 .type7477 is a value lexeme7478 #evaluate7479 always evaluates to `nil`7480MicrosoftTeams::Notifier7481 #ping7482 expects to receive successful answer7483 #body7484 returns Markdown-based body when HTML was passed7485 fails when empty Hash was passed7486Types::CiConfiguration::Sast::EntityType7487 is expected to eq "SastCiConfigurationEntity"7488 is expected to have graphql fields :field, :label, :description, :type, :options, :default_value, :value, and :size7489Ci::TriggerRequest7490 validation7491 be invalid if saving a variable7492 be valid if not saving a variable7493Types::Ci::TestSuiteSummaryType7494 is expected to eq "TestSuiteSummary"7495 contains attributes related to a pipeline test report summary7496RuboCop::Cop::RSpec::MissingFeatureCategory7497 # order random7498 flags missing feature category in top level example group7499 does not flag if feature category is defined7500Types::QueryComplexityType7501 is expected to have graphql fields :limit and :score7502 works when executed7503Gitlab::BatchWorkerContext7504 #arguments7505 returns all the expected arguments in arrays7506 #context_for7507 returns the correct application context for the arguments7508Sidekiq::Cron::Job7509 cron jobs7510 when Fugit depends on ZoTime or EoTime7511 does not get any errors7512Gitlab::FogbugzImport::Client7513 retrieves user_map with one user7514 retrieves user_map with two users7515Types::GroupMemberRelationEnum7516 is expected to eq "GroupMemberRelation"7517 exposes all the existing group member relation type values7518explore/projects/page_out_of_bounds.html.haml7519 # order random7520 removes unsafe params from the link7521ComponentsHelper7522 #gitlab_workhorse_version7523 without a Gitlab-Workhorse header7524 shows the version from Gitlab::Workhorse.version7525 with a Gitlab-Workhorse header7526 shows the actual GitLab Workhorse version currently in use7527Import::GitlabProjects::FileAcquisitionStrategies::FileUpload7528 validation7529 validates presence of file7530 #project_params7531 returns the file to upload in the params7532Gitlab::Database::PostgresqlAdapter::DumpSchemaVersionsMixin7533 calls SchemaMigrations touch_all and skips original implementation7534 does not call touch_all in production7535Types::CiConfiguration::Sast::UiComponentSizeEnum7536 is expected to eq "SastUiComponentSize"7537 exposes all sizes of ui components7538Create security training providers in production7539 # order random7540 behaves like security training providers importer7541OK7542 upserts security training providers7543RuboCop::Cop::Gitlab::AvoidUploadedFileFromParams7544 # order random7545 when using UploadedFile.from_params7546 flags its call7547Gitlab::Diff::InlineDiffMarkdownMarker7548 #mark7549 does not escape html etities and marks the range7550BulkImports::RetryPipelineError7551 #retry_delay7552 returns retry_delay7553DeployTokensHelper7554 #deploy_token_revoke_button_data7555 returns expected hash7556Gitlab::SlashCommands::Presenters::IncidentManagement::IncidentNew7557 # order random7558 returns the ephemeral message7559GoogleCloud::FetchGoogleIpListWorker7560 # order random7561 #perform7562 returns success7563Banzai::Filter::MermaidFilter7564 adds `js-render-mermaid` class to the `code` tag7565ClusterAgentQueue7566 is expected to eq :deployment_management7567Types::MergeRequestStateEventEnum7568 has the appropriate values7569API::Entities::Projects::Topic7570 exposes correct attributes7571Knapsack report was generated. Preview:7572{7573 "spec/db/migration_spec.rb": 66.78753688199998,7574 "spec/models/member_spec.rb": 62.42221069500005,7575 "spec/tasks/gitlab/workhorse_rake_spec.rb": 90.74987585499997,7576 "spec/lib/gitlab/diff/position_tracer/line_strategy_spec.rb": 66.91174322400002,7577 "spec/lib/gitlab/project_search_results_spec.rb": 59.77083190899998,7578 "spec/services/ci/retry_job_service_spec.rb": 32.64690704099996,7579 "spec/models/commit_spec.rb": 31.79311790299994,7580 "spec/lib/gitlab/git/blob_spec.rb": 5.467548132000047,7581 "spec/lib/gitlab/ci/parsers/security/common_spec.rb": 22.037172886000008,7582 "spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb": 34.34518897099997,7583 "spec/models/merge_request_diff_file_spec.rb": 28.46231898399992,7584 "spec/services/work_items/update_service_spec.rb": 25.677559846999998,7585 "spec/routing/routing_spec.rb": 17.369126750000078,7586 "spec/models/key_spec.rb": 6.063080245000037,7587 "spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb": 23.937560341999983,7588 "spec/services/git/tag_hooks_service_spec.rb": 18.29647238000007,7589 "spec/tasks/gitlab/db_rake_spec.rb": 13.341767144000073,7590 "spec/services/issues/zoom_link_service_spec.rb": 7.678077516999906,7591 "spec/finders/autocomplete/users_finder_spec.rb": 15.972214932000043,7592 "spec/models/pages_domain_spec.rb": 5.923590080999929,7593 "spec/services/clusters/kubernetes/create_or_update_service_account_service_spec.rb": 15.803265308999926,7594 "spec/models/concerns/reactive_caching_spec.rb": 4.0426803440000185,7595 "spec/lib/banzai/filter/references/work_item_reference_filter_spec.rb": 3.7480644610000127,7596 "spec/lib/gitlab/json_spec.rb": 1.915213494999989,7597 "spec/lib/gitlab/ci/runner/backoff_spec.rb": 1.853961169999934,7598 "spec/services/issuable/destroy_service_spec.rb": 10.965387669000052,7599 "spec/presenters/release_presenter_spec.rb": 8.985799439000061,7600 "spec/graphql/resolvers/board_list_issues_resolver_spec.rb": 15.620707139000046,7601 "spec/services/clusters/update_service_spec.rb": 15.30738379599984,7602 "spec/lib/gitlab/ci/config/external/mapper_spec.rb": 4.349824144999957,7603 "spec/lib/gitlab/database/load_balancing/host_spec.rb": 4.033917681000048,7604 "spec/models/concerns/discussion_on_diff_spec.rb": 12.390190232999885,7605 "spec/services/ci/components/fetch_service_spec.rb": 5.981997668000076,7606 "spec/services/issuable/discussions_list_service_spec.rb": 9.73634524199997,7607 "spec/models/ci/job_token/scope_spec.rb": 8.066944220000096,7608 "spec/lib/gitlab/access/branch_protection_spec.rb": 1.7689892250000412,7609 "spec/helpers/dropdowns_helper_spec.rb": 2.1066104510000514,7610 "spec/lib/gitlab/ci/config/external/file/project_spec.rb": 5.974950886999977,7611 "spec/workers/prune_old_events_worker_spec.rb": 7.56626663499992,7612 "spec/lib/gitlab/diff/highlight_cache_spec.rb": 3.018324876999941,7613 "spec/services/packages/maven/metadata/sync_service_spec.rb": 4.365140940999936,7614 "spec/graphql/resolvers/work_items_resolver_spec.rb": 5.088504569999941,7615 "spec/workers/tasks_to_be_done/create_worker_spec.rb": 8.108853627000144,7616 "spec/lib/gitlab/verify/uploads_spec.rb": 8.246379327000113,7617 "spec/services/packages/conan/create_package_file_service_spec.rb": 4.916192911999815,7618 "spec/models/pool_repository_spec.rb": 5.966083287999936,7619 "spec/policies/ci/trigger_policy_spec.rb": 5.465305024000145,7620 "spec/views/layouts/fullscreen.html.haml_spec.rb": 7.174662961999957,7621 "spec/models/packages/debian/group_component_file_spec.rb": 1.8077643930000704,7622 "spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb": 4.641475562000096,7623 "spec/initializers/load_balancing_spec.rb": 7.984210866000012,7624 "spec/lib/gitlab/audit/type/definition_spec.rb": 1.20257794500003,7625 "spec/services/repositories/housekeeping_service_spec.rb": 2.4323971480000637,7626 "spec/lib/gitlab/search_context/builder_spec.rb": 4.231576306000079,7627 "spec/workers/ci/ref_delete_unlock_artifacts_worker_spec.rb": 4.168639199999916,7628 "spec/lib/gitlab/instrumentation/redis_cluster_validator_spec.rb": 0.9621168230000876,7629 "spec/lib/gitlab/spamcheck/client_spec.rb": 1.6167520619999323,7630 "spec/lib/gitlab/i18n/translation_entry_spec.rb": 0.8428200700000161,7631 "spec/lib/gitlab/kubernetes/rollout_status_spec.rb": 0.7888612019999073,7632 "spec/tasks/gitlab/external_diffs_rake_spec.rb": 5.150614571999995,7633 "spec/services/projects/refresh_build_artifacts_size_statistics_service_spec.rb": 2.724070738999899,7634 "spec/lib/grafana/client_spec.rb": 1.4987378179998814,7635 "spec/models/wiki_page/slug_spec.rb": 1.544241705999866,7636 "spec/services/integrations/test/project_service_spec.rb": 4.315425891999894,7637 "spec/lib/gitlab/database/count_spec.rb": 5.216873008999983,7638 "spec/lib/gitlab/middleware/handle_malformed_strings_spec.rb": 0.9538608439997915,7639 "spec/services/security/ci_configuration/secret_detection_create_service_spec.rb": 3.8628518650000387,7640 "spec/finders/keys_finder_spec.rb": 1.8395782810000583,7641 "spec/workers/bulk_imports/pipeline_worker_spec.rb": 1.416794751999987,7642 "spec/lib/gitlab/github_import_spec.rb": 1.5712293849999242,7643 "spec/workers/group_destroy_worker_spec.rb": 2.8011427750000166,7644 "spec/lib/sidebars/panel_spec.rb": 0.6009643710001455,7645 "spec/lib/banzai/reference_parser/milestone_parser_spec.rb": 3.3532407890002105,7646 "spec/policies/achievements/user_achievement_policy_spec.rb": 4.487629504000097,7647 "spec/graphql/resolvers/ci/all_jobs_resolver_spec.rb": 2.3549848370000745,7648 "spec/services/projects/branches_by_mode_service_spec.rb": 1.768862585000079,7649 "spec/lib/bitbucket_server/representation/pull_request_spec.rb": 0.7318802549998509,7650 "spec/graphql/mutations/todos/restore_many_spec.rb": 2.91134254099984,7651 "spec/lib/gitlab/http_connection_adapter_spec.rb": 1.2120364919999247,7652 "spec/workers/wikis/git_garbage_collect_worker_spec.rb": 2.627134913999953,7653 "spec/lib/gitlab/ci/config/entry/allow_failure_spec.rb": 0.6215749800001049,7654 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed_spec.rb": 0.6444037490000483,7655 "spec/lib/banzai/filter/spaced_link_filter_spec.rb": 0.5689462430000276,7656 "spec/models/packages/sem_ver_spec.rb": 0.6675217969998357,7657 "spec/models/ml/model_spec.rb": 2.3431036040001345,7658 "spec/lib/gitlab/ci/status/bridge/common_spec.rb": 2.409445157999926,7659 "spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb": 0.5124795759998051,7660 "spec/services/merge_requests/mergeability/logger_spec.rb": 1.428325151000081,7661 "spec/lib/gitlab/search/query_spec.rb": 0.47457074999988436,7662 "spec/models/lfs_file_lock_spec.rb": 2.9829009079999196,7663 "spec/lib/gitlab/import_export/json/ndjson_reader_spec.rb": 0.4791058499999963,7664 "spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb": 3.2170986930000254,7665 "spec/lib/gitlab/github_import/importer/pull_requests/all_merged_by_importer_spec.rb": 1.1030789040000855,7666 "spec/services/projects/repository_languages_service_spec.rb": 1.6723298150000119,7667 "spec/tooling/lib/tooling/kubernetes_client_spec.rb": 0.6779043090000414,7668 "spec/finders/users_star_projects_finder_spec.rb": 3.09409147700012,7669 "spec/policies/organizations/organization_policy_spec.rb": 0.584288959000105,7670 "spec/lib/gitlab/database/type/symbolized_jsonb_spec.rb": 0.5659526709998772,7671 "spec/services/packages/mark_packages_for_destruction_service_spec.rb": 2.1913113099999464,7672 "spec/serializers/merge_request_user_entity_spec.rb": 2.825020413999937,7673 "spec/lib/gitlab/wiki_pages/front_matter_parser_spec.rb": 0.6394773329998316,7674 "spec/lib/gitlab/metrics/dashboard/finder_spec.rb": 1.733233858999938,7675 "spec/lib/gitlab/ci/pipeline/chain/seed_block_spec.rb": 3.3342164910000065,7676 "spec/workers/new_note_worker_spec.rb": 3.4058451430000787,7677 "spec/services/jira_import/server_users_mapper_service_spec.rb": 2.8177175050000187,7678 "spec/lib/gitlab/database/similarity_score_spec.rb": 0.29191443899981095,7679 "spec/graphql/mutations/issues/set_severity_spec.rb": 2.248380705000045,7680 "spec/workers/merge_requests/set_reviewer_reviewed_worker_spec.rb": 1.5697087559999545,7681 "spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb": 2.2527116849998947,7682 "spec/tasks/cache_rake_spec.rb": 2.6584251110000423,7683 "spec/workers/pipeline_hooks_worker_spec.rb": 1.2207620720000705,7684 "spec/graphql/mutations/customer_relations/contacts/create_spec.rb": 2.477691691000018,7685 "spec/graphql/resolvers/alert_management/http_integrations_resolver_spec.rb": 2.3371992549998595,7686 "spec/graphql/mutations/todos/mark_done_spec.rb": 2.222974767000096,7687 "spec/workers/authorized_project_update/user_refresh_with_low_urgency_worker_spec.rb": 1.3742424260001371,7688 "spec/lib/gitlab/usage/metrics/instrumentations/count_deployments_metric_spec.rb": 1.3731281170000784,7689 "spec/services/jira_connect/create_asymmetric_jwt_service_spec.rb": 0.8635619000001498,7690 "spec/services/packages/debian/update_distribution_service_spec.rb": 1.7070028809998803,7691 "spec/lib/banzai/reference_parser/project_parser_spec.rb": 2.5960156479998204,7692 "spec/lib/sidebars/user_settings/menus/notifications_menu_spec.rb": 0.38309015000004365,7693 "spec/lib/gitlab/ci/build/policy/variables_spec.rb": 1.6561095629999727,7694 "spec/finders/boards/visits_finder_spec.rb": 2.25657864599998,7695 "spec/finders/fork_targets_finder_spec.rb": 2.1142451240000355,7696 "spec/services/releases/links/create_service_spec.rb": 2.0092381179999848,7697 "spec/lib/bulk_imports/common/pipelines/wiki_pipeline_spec.rb": 0.9581351649999306,7698 "spec/lib/sidebars/admin/menus/messages_menu_spec.rb": 0.42857600399997864,7699 "spec/lib/gitlab/analytics/date_filler_spec.rb": 0.32745289699983005,7700 "spec/lib/gitlab/graphs/commits_spec.rb": 2.000493299000027,7701 "spec/lib/gitlab/usage/metrics/key_path_processor_spec.rb": 0.3165179589998388,7702 "spec/services/system_notes/incidents_service_spec.rb": 1.5970594420000452,7703 "spec/lib/gitlab/changelog/generator_spec.rb": 0.4758919070000047,7704 "spec/workers/ci/daily_build_group_report_results_worker_spec.rb": 0.8838216450001255,7705 "spec/services/releases/links/destroy_service_spec.rb": 1.7815771680000125,7706 "spec/models/group_custom_attribute_spec.rb": 0.4315575539999372,7707 "spec/lib/api/entities/application_setting_spec.rb": 0.6371016769999187,7708 "spec/lib/gitlab/redis/hll_spec.rb": 0.6032613909999327,7709 "spec/lib/gitlab/github_gists_import/status_spec.rb": 0.322164278000173,7710 "spec/services/product_analytics/build_graph_service_spec.rb": 0.4867153759998928,7711 "spec/lib/gitlab/github_import/importer/pull_requests/merged_by_importer_spec.rb": 1.5292886810000255,7712 "spec/lib/gitlab/word_diff/line_processor_spec.rb": 0.22558315099990978,7713 "spec/graphql/types/clusters/agent_token_type_spec.rb": 0.20868720299995402,7714 "spec/lib/slack/api_spec.rb": 0.30778179000003547,7715 "spec/lib/bulk_imports/projects/pipelines/snippets_pipeline_spec.rb": 1.9175842299998749,7716 "spec/finders/groups/accepting_project_creations_finder_spec.rb": 1.5652554759999475,7717 "spec/lib/gitlab/ci/config/external/mapper/variables_expander_spec.rb": 0.19274581500008026,7718 "spec/services/ml/experiment_tracking/handle_candidate_gitlab_metadata_service_spec.rb": 1.6763178609999159,7719 "spec/lib/unnested_in_filters/rewriter_spec.rb": 0.5473199789998944,7720 "spec/lib/gitlab/hook_data/release_builder_spec.rb": 1.231692689000056,7721 "spec/views/notify/autodevops_disabled_email.text.erb_spec.rb": 1.4600449500001105,7722 "spec/lib/gitlab/kubernetes/deployment_spec.rb": 0.4695877889998883,7723 "spec/lib/gitlab/github_import/object_counter_spec.rb": 0.7350376740000684,7724 "spec/finders/packages/helm/package_files_finder_spec.rb": 1.2060306030000447,7725 "spec/workers/bulk_imports/stuck_import_worker_spec.rb": 1.0041876089999278,7726 "spec/graphql/mutations/environments/stop_spec.rb": 1.1026115060001302,7727 "spec/helpers/gitlab_script_tag_helper_spec.rb": 0.48807233599995925,7728 "spec/lib/error_tracking/stacktrace_builder_spec.rb": 0.3407222759999513,7729 "spec/models/acts_as_taggable_on/tagging_spec.rb": 0.17003656699989733,7730 "spec/presenters/search_service_presenter_spec.rb": 0.8036948660001144,7731 "spec/lib/gitlab/ci/trace/remote_checksum_spec.rb": 0.7760988690001795,7732 "spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb": 1.25285940699996,7733 "spec/services/ci/deployments/destroy_service_spec.rb": 1.2063844130000234,7734 "spec/graphql/mutations/alert_management/http_integration/destroy_spec.rb": 0.8027883749998637,7735 "spec/lib/gitlab/database/reindexing/reindex_concurrently_spec.rb": 0.6720535129998098,7736 "spec/tooling/danger/specs_spec.rb": 0.20496589300000778,7737 "spec/lib/gitlab/slash_commands/global_slack_handler_spec.rb": 0.743325342999924,7738 "spec/views/projects/milestones/index.html.haml_spec.rb": 0.5844126239999241,7739 "spec/graphql/types/work_item_id_type_spec.rb": 0.6445008759999382,7740 "spec/services/concerns/exclusive_lease_guard_spec.rb": 0.39873213800001395,7741 "spec/lib/gitlab/ci/artifacts/decompressed_artifact_size_validator_spec.rb": 0.3617771219999213,7742 "spec/graphql/mutations/alert_management/http_integration/create_spec.rb": 0.8202162229999885,7743 "spec/lib/sidebars/user_settings/menus/authentication_log_menu_spec.rb": 0.37895989000003283,7744 "spec/workers/bulk_imports/finish_batched_pipeline_worker_spec.rb": 0.5205888220000361,7745 "spec/lib/gitlab/ci/config/entry/release/assets/link_spec.rb": 0.5082995840000422,7746 "spec/models/ml/candidate_metadata_spec.rb": 0.671526662000133,7747 "spec/graphql/mutations/boards/update_spec.rb": 0.6194238489999861,7748 "spec/lib/gitlab/ci/pipeline/chain/remove_unwanted_chat_jobs_spec.rb": 0.8910740639998949,7749 "spec/workers/personal_access_tokens/expiring_worker_spec.rb": 0.6754657129999941,7750 "spec/services/keys/last_used_service_spec.rb": 0.4636876800000209,7751 "spec/models/push_event_payload_spec.rb": 0.6269291580001664,7752 "spec/policies/identity_provider_policy_spec.rb": 0.2821835629999896,7753 "spec/lib/gitlab/tracking/destinations/snowplow_spec.rb": 0.3002457710001636,7754 "spec/services/achievements/create_service_spec.rb": 0.6601485639998828,7755 "spec/models/abuse/trust_score_spec.rb": 0.40796824699987155,7756 "spec/views/shared/projects/_inactive_project_deletion_alert.html.haml_spec.rb": 0.7419633829999839,7757 "spec/views/admin/application_settings/repository.html.haml_spec.rb": 0.6737376820001373,7758 "spec/lib/gitlab/asset_proxy_spec.rb": 0.2542567070001951,7759 "spec/lib/gitlab/cache/metrics_spec.rb": 0.2775594039999305,7760 "spec/lib/prometheus/pid_provider_spec.rb": 0.2565605960000994,7761 "spec/lib/gitlab/ci/build/artifacts/adapters/raw_stream_spec.rb": 0.22919055000011213,7762 "spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb": 0.26287492599999496,7763 "spec/initializers/validate_puma_spec.rb": 0.2831098030001158,7764 "spec/lib/api/entities/project_job_token_scope_spec.rb": 0.48844636600006197,7765 "spec/views/admin/application_settings/_jira_connect.html.haml_spec.rb": 0.34600014499983445,7766 "spec/tooling/danger/required_stops_spec.rb": 0.2313208200000645,7767 "spec/graphql/types/data_transfer/project_data_transfer_type_spec.rb": 0.44303172199988694,7768 "spec/lib/sidebars/your_work/menus/issues_menu_spec.rb": 0.30862094000008256,7769 "spec/rubocop/cop/migration/add_concurrent_foreign_key_spec.rb": 0.27511212400008844,7770 "spec/services/integrations/slack_interaction_service_spec.rb": 0.23400879899986649,7771 "spec/lib/gitlab/sidekiq_middleware/worker_context/server_spec.rb": 0.2481829480000215,7772 "spec/views/shared/web_hooks/_web_hook_disabled_alert.html.haml_spec.rb": 0.5242363610000211,7773 "spec/workers/jira_connect/forward_event_worker_spec.rb": 0.3772221809999792,7774 "spec/lib/api/entities/deploy_key_spec.rb": 0.4785214480000377,7775 "spec/workers/batched_git_ref_updates/project_cleanup_worker_spec.rb": 0.2409374580001895,7776 "spec/lib/gitlab/metrics/memory_spec.rb": 0.19067086600011862,7777 "spec/lib/api/helpers/version_spec.rb": 0.2241369810001288,7778 "spec/policies/abuse_report_policy_spec.rb": 0.37220426199996837,7779 "spec/policies/group_deploy_key_policy_spec.rb": 0.4012612070000614,7780 "spec/graphql/types/customer_relations/contact_type_spec.rb": 0.19458531500004028,7781 "spec/tooling/danger/model_validations_spec.rb": 0.20654330299998946,7782 "spec/graphql/types/merge_request_state_enum_spec.rb": 0.199265663999995,7783 "spec/lib/google_api/auth_spec.rb": 0.2592089560000659,7784 "spec/lib/gitlab/ci/pipeline/expression/lexeme/null_spec.rb": 0.19518033400004242,7785 "spec/lib/microsoft_teams/notifier_spec.rb": 0.22122910200005208,7786 "spec/graphql/types/ci_configuration/sast/entity_type_spec.rb": 0.1611764790000052,7787 "spec/models/ci/trigger_request_spec.rb": 0.17618126699994718,7788 "spec/graphql/types/ci/test_suite_summary_type_spec.rb": 0.16368758900011926,7789 "spec/rubocop/cop/rspec/missing_feature_category_spec.rb": 0.1905276249999588,7790 "spec/graphql/types/query_complexity_type_spec.rb": 0.21853563199988457,7791 "spec/lib/gitlab/batch_worker_context_spec.rb": 0.2231816710000203,7792 "spec/sidekiq/cron/job_gem_dependency_spec.rb": 0.1944900339999549,7793 "spec/lib/gitlab/fogbugz_import/client_spec.rb": 0.17979082700003346,7794 "spec/graphql/types/group_member_relation_enum_spec.rb": 0.17269737699984944,7795 "spec/views/explore/projects/page_out_of_bounds.html.haml_spec.rb": 0.3101217500000075,7796 "spec/helpers/components_helper_spec.rb": 0.18030899600012162,7797 "spec/services/import/gitlab_projects/file_acquisition_strategies/file_upload_spec.rb": 0.17477917799988063,7798 "spec/lib/gitlab/database/postgresql_adapter/dump_schema_versions_mixin_spec.rb": 0.1668725080000968,7799 "spec/graphql/types/ci_configuration/sast/ui_component_size_enum_spec.rb": 0.16702555799997754,7800 "spec/db/production/add_security_training_providers_spec.rb": 0.2323364199999105,7801 "spec/rubocop/cop/gitlab/avoid_uploaded_file_from_params_spec.rb": 0.1382721129998572,7802 "spec/lib/gitlab/diff/inline_diff_markdown_marker_spec.rb": 0.1370132229999399,7803 "spec/lib/bulk_imports/retry_pipeline_error_spec.rb": 0.1395138819998465,7804 "spec/helpers/deploy_tokens_helper_spec.rb": 0.18536353600006805,7805 "spec/lib/gitlab/slash_commands/presenters/incident_management/incident_new_spec.rb": 0.1496915010000066,7806 "spec/workers/google_cloud/fetch_google_ip_list_worker_spec.rb": 0.1501588000000993,7807 "spec/lib/banzai/filter/mermaid_filter_spec.rb": 0.14297251099992536,7808 "spec/workers/concerns/cluster_agent_queue_spec.rb": 0.1420560619999378,7809 "spec/graphql/types/merge_request_state_event_enum_spec.rb": 0.1414933020000717,7810 "spec/lib/api/entities/projects/topic_spec.rb": 0.18033349899997127811}7812Knapsack global time execution for tests: 17m 24s7813Pending: (Failures listed here are expected and do not affect your suite's status)7814 1) gitlab:db namespace rake task mark_migration_complete with a single database marks the migration complete on the given database7815 # Skipping because database ci exists7816 # ./spec/tasks/gitlab/db_rake_spec.rb:317817 2) gitlab:db namespace rake task mark_migration_complete with multiple databases with geo configured does not create a task for the geo database7818 # Skipping because the geo database is not configured7819 # ./spec/tasks/gitlab/db_rake_spec.rb:817820 3) gitlab:db namespace rake task configure with a single database when geo is not configured when the schema is already loaded migrates the database7821 # Skipping because database ci exists7822 # ./spec/tasks/gitlab/db_rake_spec.rb:1437823 4) gitlab:db namespace rake task configure with a single database when geo is not configured when the schema is not loaded loads the schema and seeds the database7824 # Skipping because database ci exists7825 # ./spec/tasks/gitlab/db_rake_spec.rb:1557826 5) gitlab:db namespace rake task configure with a single database when geo is not configured when only a single table is present loads the schema and seeds the database7827 # Skipping because database ci exists7828 # ./spec/tasks/gitlab/db_rake_spec.rb:1677829 6) gitlab:db namespace rake task configure with a single database when geo is not configured when loading the schema fails does not seed the database7830 # Skipping because database ci exists7831 # ./spec/tasks/gitlab/db_rake_spec.rb:1797832 7) gitlab:db namespace rake task configure with a single database when geo is not configured SKIP_POST_DEPLOYMENT_MIGRATIONS environment variable set when the schema is not loaded adds the post deployment migration path before schema load7833 # Skipping because database ci exists7834 # ./spec/tasks/gitlab/db_rake_spec.rb:2027835 8) gitlab:db namespace rake task configure with a single database when geo is not configured SKIP_POST_DEPLOYMENT_MIGRATIONS environment variable set when the schema is loaded ignores post deployment migrations7836 # Skipping because database ci exists7837 # ./spec/tasks/gitlab/db_rake_spec.rb:2177838 9) gitlab:db namespace rake task configure with a single database when geo is configured when the main database is also configured only configures the main database7839 # Skipping because database ci exists7840 # ./spec/tasks/gitlab/db_rake_spec.rb:2397841 10) gitlab:db namespace rake task configure with multiple databases when geo is configured does not run tasks against geo7842 # Skipping because the geo database is not configured7843 # ./spec/tasks/gitlab/db_rake_spec.rb:3417844 11) gitlab:db namespace rake task drop_tables with a single database drops all objects for the database7845 # Skipping because some of the extra databases [:ci, :main_clusterwide, :embedding, :geo] are setup7846 # ./spec/tasks/gitlab/db_rake_spec.rb:6157847 12) gitlab:db namespace rake task drop_tables with multiple databases with geo configured does not create a task for the geo database7848 # Skipping because the geo database is not configured7849 # ./spec/tasks/gitlab/db_rake_spec.rb:6637850 13) gitlab:db namespace rake task create_dynamic_partitions with a single database delegates syncing of partitions without limiting databases7851 # Skipping because some of the extra databases [:ci, :main_clusterwide, :embedding, :geo] are setup7852 # ./spec/tasks/gitlab/db_rake_spec.rb:6937853 14) gitlab:db namespace rake task create_dynamic_partitions with geo configured does not create a task for the geo database7854 # Skipping because the geo database is not configured7855 # ./spec/tasks/gitlab/db_rake_spec.rb:7277856 15) gitlab:db namespace rake task reindex with multiple databases with geo configured does not create a task for the geo database7857 # Skipping because the geo database is not configured7858 # ./spec/tasks/gitlab/db_rake_spec.rb:7977859 16) gitlab:db namespace rake task execute_async_index_operations with geo configured does not create a task for the geo database7860 # Skipping because the geo database is not configured7861 # ./spec/tasks/gitlab/db_rake_spec.rb:8907862 17) gitlab:db namespace rake task validate_async_constraints with geo configured does not create a task for the geo database7863 # Skipping because the geo database is not configured7864 # ./spec/tasks/gitlab/db_rake_spec.rb:9647865 18) gitlab:db namespace rake task with multiple databases db:migrate:geo does not invoke gitlab:db:create_dynamic_partitions7866 # Skipping because the geo database is not configured7867 # ./spec/tasks/gitlab/db_rake_spec.rb:11607868 19) Banzai::Filter::References::WorkItemReferenceFilter when cross-project URL in link href behaves like a work item reference does not escape the data-original attribute7869 # No reason given7870 # ./spec/lib/banzai/filter/references/work_item_reference_filter_spec.rb:1067871 20) Banzai::Filter::References::WorkItemReferenceFilter when cross-project URL in link href behaves like a work item reference includes a data-reference-format attribute7872 # No reason given7873 # ./spec/lib/banzai/filter/references/work_item_reference_filter_spec.rb:1157874 21) MergeRequestUserEntity#as_json performance is linear in the number of merge requests7876 Failure/Error:7877 expect do7878 a = described_class.new(user_a, request: request, merge_request: merge_request_b)7879 b = described_class.new(user_b, request: request, merge_request: merge_request_b)7881 a.as_json7882 b.as_json7883 end.not_to exceed_query_limit(baseline)7884 Expected a maximum of 10 queries, got 20:7885 Query Diff:7886 -----------7887 SELECT "users".* FROM "users"...7888 -- (expected: 1, got: 0)7889 WHERE "users"."id" = 1350 LIMIT 17890 SELECT MAX("project_authorizations"."access_level") AS "maximum_access_level", "project_authorizations"."user_id" AS "project_authorizations_user_id" FROM "project_authorizations"...7891 -- (expected: 4, got: 0)7892 WHERE "project_authorizations"."project_id" = 745 AND "project_authorizations"."user_id" = 1353 GROUP BY "project_authorizations"."user_id"7893 -- (expected: 3, got: 0)7894 WHERE "project_authorizations"."project_id" = 745 AND "project_authorizations"."user_id" = 1350 GROUP BY "project_authorizations"."user_id"7895 -- (expected: 0, got: 4)7896 WHERE "project_authorizations"."project_id" = 746 AND "project_authorizations"."user_id" = 1353 GROUP BY "project_authorizations"."user_id"7897 -- (expected: 0, got: 6)7898 WHERE "project_authorizations"."project_id" = 746 AND "project_authorizations"."user_id" = 1350 GROUP BY "project_authorizations"."user_id"7899 -- (expected: 0, got: 4)7900 WHERE "project_authorizations"."project_id" = 746 AND "project_authorizations"."user_id" = 1354 GROUP BY "project_authorizations"."user_id"7901 SELECT "merge_requests".* FROM "merge_requests"...7902 -- (expected: 1, got: 0)7903 WHERE "merge_requests"."source_project_id" = 745 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'7904 -- (expected: 0, got: 2)7905 WHERE "merge_requests"."source_project_id" = 746 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'7906 SELECT "merge_request_reviewers".* FROM "merge_request_reviewers"...7907 -- (expected: 1, got: 0)7908 WHERE "merge_request_reviewers"."merge_request_id" = 137 AND "merge_request_reviewers"."user_id" = 1353 LIMIT 17909 -- (expected: 0, got: 1)7910 WHERE "merge_request_reviewers"."merge_request_id" = 138 AND "merge_request_reviewers"."user_id" = 1353 LIMIT 17911 -- (expected: 0, got: 1)7912 WHERE "merge_request_reviewers"."merge_request_id" = 138 AND "merge_request_reviewers"."user_id" = 1354 LIMIT 17913 SELECT "protected_branches".* FROM ((SELECT "protected_branches".* FROM "protected_branches"...7914 -- (expected: 0, got: 1)7915 WHERE "protected_branches"."project_id" = 746)) protected_branches7916 SELECT "approvals".* FROM "approvals"...7917 -- (expected: 0, got: 1)7918 WHERE "approvals"."merge_request_id" = 1387919 # ./spec/serializers/merge_request_user_entity_spec.rb:71:in `block (4 levels) in <top (required)>'7920 # ./spec/spec_helper.rb:448:in `block (3 levels) in <top (required)>'7921 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'7922 # ./spec/spec_helper.rb:439:in `block (2 levels) in <top (required)>'7923 # ./spec/spec_helper.rb:435:in `block (3 levels) in <top (required)>'7924 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'7925 # ./spec/spec_helper.rb:435:in `block (2 levels) in <top (required)>'7926 # ./spec/spec_helper.rb:266:in `block (2 levels) in <top (required)>'7927 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'7928 # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'7929 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'7930 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'7931 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'7932Failures:7933 1) Issuable::DiscussionsListService fetching notes for issue behaves like listing issuable discussions when user can read issuable with paginated results returns next page notes7934 Failure/Error:7935 expect(discussions.first.notes.map(&:note)).to match_array(7936 ["added #{label.to_reference} #{label_2.to_reference} labels"]7937 )7938 expected collection contained: ["added ~9 ~10 labels"]7939 actual collection contained: ["added ~10 ~9 labels"]7940 the missing elements were: ["added ~9 ~10 labels"]7941 the extra elements were: ["added ~10 ~9 labels"]7942 Shared Example Group: "listing issuable discussions" called from ./spec/services/issuable/discussions_list_service_spec.rb:207943 # ./spec/support/shared_examples/services/issuable/discussions_list_shared_examples.rb:29:in `block (4 levels) in <top (required)>'7944 # ./spec/spec_helper.rb:448:in `block (3 levels) in <top (required)>'7945 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'7946 # ./spec/spec_helper.rb:439:in `block (2 levels) in <top (required)>'7947 # ./spec/spec_helper.rb:435:in `block (3 levels) in <top (required)>'7948 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'7949 # ./spec/spec_helper.rb:435:in `block (2 levels) in <top (required)>'7950 # ./spec/spec_helper.rb:266:in `block (2 levels) in <top (required)>'7951 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'7952 # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'7953 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'7954 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'7955 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'7956 2) Issuable::DiscussionsListService fetching notes for merge requests behaves like listing issuable discussions when user can read issuable with paginated results returns next page notes7957 Failure/Error:7958 expect(discussions.first.notes.map(&:note)).to match_array(7959 ["added #{label.to_reference} #{label_2.to_reference} labels"]7960 )7961 expected collection contained: ["added ~9 ~10 labels"]7962 actual collection contained: ["added ~10 ~9 labels"]7963 the missing elements were: ["added ~9 ~10 labels"]7964 the extra elements were: ["added ~10 ~9 labels"]7965 Shared Example Group: "listing issuable discussions" called from ./spec/services/issuable/discussions_list_service_spec.rb:387966 # ./spec/support/shared_examples/services/issuable/discussions_list_shared_examples.rb:29:in `block (4 levels) in <top (required)>'7967 # ./spec/spec_helper.rb:448:in `block (3 levels) in <top (required)>'7968 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'7969 # ./spec/spec_helper.rb:439:in `block (2 levels) in <top (required)>'7970 # ./spec/spec_helper.rb:435:in `block (3 levels) in <top (required)>'7971 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'7972 # ./spec/spec_helper.rb:435:in `block (2 levels) in <top (required)>'7973 # ./spec/spec_helper.rb:266:in `block (2 levels) in <top (required)>'7974 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'7975 # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'7976 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'7977 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'7978 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'7979Finished in 17 minutes 27 seconds (files took 1 minute 21.31 seconds to load)79805499 examples, 2 failures, 21 pending7981Failed examples:7982rspec './spec/services/issuable/discussions_list_service_spec.rb[1:1:1:2:1:1]' # Issuable::DiscussionsListService fetching notes for issue behaves like listing issuable discussions when user can read issuable with paginated results returns next page notes7983rspec './spec/services/issuable/discussions_list_service_spec.rb[1:2:1:2:1:1]' # Issuable::DiscussionsListService fetching notes for merge requests behaves like listing issuable discussions when user can read issuable with paginated results returns next page notes7984Randomized with seed 410897985[TEST PROF INFO] Time spent in factories: 08:08.155 (45.03% of total time)7986Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected7987RSpec exited with 1.7988RSPEC_RETRIED_TESTS_REPORT_PATH: rspec/retried_tests-4841631184.txt7989Retrying the failing examples in a new RSpec process...7990$ gem install junit_merge --no-document --version 0.1.27991Successfully installed nokogiri-1.15.3-x86_64-linux7992Successfully installed junit_merge-0.1.279932 gems installed7994==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 2 seconds.7995Running RSpec command: bin/rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-retry-4841631184.json --format RspecJunitFormatter --out rspec/rspec-retry-4841631184.xml --only-failures --pattern "spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb"7996/builds/gitlab-org/gitlab/ee/app/services/remote_development/service_response_factory.rb:41: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!7997/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/create_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!7998/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/reconcile_service.rb:38: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!7999/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/update_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8000/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/main.rb:32: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8001/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8002/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8003/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8004/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8005/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8006/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:25: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8007/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8008/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8009/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8010/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_flattener.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8011/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8012/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8013/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8014/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8015/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:54: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8016/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:102: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8017/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:126: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8018/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:159: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8019/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:202: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8020/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:235: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8021/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8022/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:52: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8023/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8024/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8025/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8026/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:23: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8027/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8028/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8029/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8030/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/main.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8031/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8032/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/updater.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8033/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/agent_infos_observer.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8034/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8035/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8036/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_to_infos_converter.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8037/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_validator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8038/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/rails_infos_observer.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8039/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/workspaces_to_rails_infos_converter.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8040/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/orphaned_workspaces_observer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8041/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_from_agent_infos_updater.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8042/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_finder.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8043/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8044Run options: include {:last_run_status=>"failed"}8045Test environment set up in 0.476741612 seconds8046Issuable::DiscussionsListService8047 # order random8048 fetching notes for merge requests8049 behaves like listing issuable discussions8050 when user can read issuable8051 with paginated results8052 returns next page notes8053 fetching notes for issue8054 behaves like listing issuable discussions8055 when user can read issuable8056 with paginated results8057 returns next page notes8058Finished in 7.27 seconds (files took 52.56 seconds to load)80592 examples, 0 failures8060Randomized with seed 588288061[TEST PROF INFO] Time spent in factories: 00:02.628 (26.31% of total time)8062Loading rspec/rspec-4841631184.json...8063Merged rspec/rspec-retry-4841631184.json adding 5 results.8064Saved rspec/rspec-4841631184.json.8065A test was flaky and succeeded after being retried. Checking to see if flaky test is part of this MR...8066Flaky test was not part of this MR.8068Running after script...8069$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"8074Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8076Uploading artifacts...8077WARNING: auto_explain/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8078coverage/: found 4 matching artifact files and directories 8079crystalball/: found 2 matching artifact files and directories 8080deprecations/: found 3 matching artifact files and directories 8081knapsack/: found 4 matching artifact files and directories 8082rspec/: found 19 matching artifact files and directories 8083WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8084log/*.log: found 18 matching artifact files and directories 8085WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4841631184/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8086WARNING: Retrying... context=artifacts-uploader error=request redirected8087Uploading artifacts as "archive" to coordinator... 201 Created id=4841631184 responseStatus=201 Created token=64_aZizV8088Uploading artifacts...8089rspec/rspec-*.xml: found 2 matching artifact files and directories 8090WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4841631184/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8091WARNING: Retrying... context=artifacts-uploader error=request redirected8092Uploading artifacts as "junit" to coordinator... 201 Created id=4841631184 responseStatus=201 Created token=64_aZizV8094Job succeeded