rspec unit pg14-as-if-foss single-db-ci-connection 8/28
Passed Started
by
@vshushlin

Vladimir Shushlin
1 uses one of the allowed migration classes2 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="">3 uses one of the allowed migration classes4 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="">5 uses one of the allowed migration classes6 migration: #<struct ActiveRecord::MigrationProxy name="AddNugetDuplicateAllowedToNamespacePackageSettings", version=20230717165532, filename="db/migrate/20230717165532_add_nuget_duplicate_allowed_to_namespace_package_settings.rb", scope="">7 uses one of the allowed migration classes8 migration: #<struct ActiveRecord::MigrationProxy name="CreateGroupWikiRepositoryStates", version=20230717200940, filename="db/migrate/20230717200940_create_group_wiki_repository_states.rb", scope="">9 uses one of the allowed migration classes10 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="">11 uses one of the allowed migration classes12 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="">13 uses one of the allowed migration classes14 migration: #<struct ActiveRecord::MigrationProxy name="AddNamespaceIdToNotes", version=20230718094246, filename="db/migrate/20230718094246_add_namespace_id_to_notes.rb", scope="">15 uses one of the allowed migration classes16 migration: #<struct ActiveRecord::MigrationProxy name="PrepareNotesNamespaceIdIndex", version=20230718094501, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230718094501_prepare_notes_namespace_id_index.rb", scope="">17 uses one of the allowed migration classes18 migration: #<struct ActiveRecord::MigrationProxy name="AddColumnForwardDeploymentRollbackAllowedToCiCdSetting", version=20230718111807, filename="db/migrate/20230718111807_add_column_forward_deployment_rollback_allowed_to_ci_cd_setting.rb", scope="">19 uses one of the allowed migration classes20 migration: #<struct ActiveRecord::MigrationProxy name="AddPackageManagerColumnToSbomOccurrences", version=20230718120802, filename="db/migrate/20230718120802_add_package_manager_column_to_sbom_occurrences.rb", scope="">21 uses one of the allowed migration classes22 migration: #<struct ActiveRecord::MigrationProxy name="AddNormalizedVersionToPackagesNugetMetadatum", version=20230718124213, filename="db/migrate/20230718124213_add_normalized_version_to_packages_nuget_metadatum.rb", scope="">23 uses one of the allowed migration classes24 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="">25 uses one of the allowed migration classes26 migration: #<struct ActiveRecord::MigrationProxy name="CreateTargetBranchRules", version=20230718145747, filename="db/migrate/20230718145747_create_target_branch_rules.rb", scope="">27 uses one of the allowed migration classes28 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="">29 uses one of the allowed migration classes30 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="">31 uses one of the allowed migration classes32 migration: #<struct ActiveRecord::MigrationProxy name="AddPatchIdToMergeRequestDiffs", version=20230718234602, filename="db/migrate/20230718234602_add_patch_id_to_merge_request_diffs.rb", scope="">33 uses one of the allowed migration classes34 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="">35 uses one of the allowed migration classes36 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="">37 uses one of the allowed migration classes38 migration: #<struct ActiveRecord::MigrationProxy name="IndexMlModelVersionsOnModelIdAndId", version=20230720142334, filename="db/migrate/20230720142334_index_ml_model_versions_on_model_id_and_id.rb", scope="">39 uses one of the allowed migration classes40 migration: #<struct ActiveRecord::MigrationProxy name="DeleteOrphansScanFindingLicenseScanningApprovalRules2", version=20230721095222, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230721095222_delete_orphans_scan_finding_license_scanning_approval_rules2.rb", scope="">41 uses one of the allowed migration classes42 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="">43 uses one of the allowed migration classes44 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="">45 uses one of the allowed migration classes46 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="">47 uses one of the allowed migration classes48 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="">49 uses one of the allowed migration classes50 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="">51 uses one of the allowed migration classes52 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="">53 uses one of the allowed migration classes54 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="">55 uses one of the allowed migration classes56 migration: #<struct ActiveRecord::MigrationProxy name="InitializeConversionOfCiSourcesPipelinesSource", version=20230723170936, filename="db/migrate/20230723170936_initialize_conversion_of_ci_sources_pipelines_source.rb", scope="">57 uses one of the allowed migration classes58 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="">59 uses one of the allowed migration classes60 migration: #<struct ActiveRecord::MigrationProxy name="BackfillDefaultBranchProtectionApplicationSetting", version=20230723203612, filename="db/migrate/20230723203612_backfill_default_branch_protection_application_setting.rb", scope="">61 uses one of the allowed migration classes62 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="">63 uses one of the allowed migration classes64 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="">65 uses one of the allowed migration classes66 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="">67 uses one of the allowed migration classes68 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="">69 uses one of the allowed migration classes70 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="">71 uses one of the allowed migration classes72 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="">73 uses one of the allowed migration classes74 migration: #<struct ActiveRecord::MigrationProxy name="PmAffectedPackagesAddVersionsAttribute", version=20230724185321, filename="db/migrate/20230724185321_pm_affected_packages_add_versions_attribute.rb", scope="">75 uses one of the allowed migration classes76 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="">77 uses one of the allowed migration classes78 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="">79 uses one of the allowed migration classes80 migration: #<struct ActiveRecord::MigrationProxy name="AddUpdatedAtToPlanLimits", version=20230725075011, filename="db/migrate/20230725075011_add_updated_at_to_plan_limits.rb", scope="">81 uses one of the allowed migration classes82 migration: #<struct ActiveRecord::MigrationProxy name="UpdateRemoteDevelopmentAgentConfigsForFirewallRules", version=20230725085120, filename="db/migrate/20230725085120_update_remote_development_agent_configs_for_firewall_rules.rb", scope="">83 uses one of the allowed migration classes84 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexMlModelVersionsOnModelId", version=20230725210728, filename="db/migrate/20230725210728_drop_index_ml_model_versions_on_model_id.rb", scope="">85 uses one of the allowed migration classes86 migration: #<struct ActiveRecord::MigrationProxy name="AddNotValidForeignKeyForCiPipelineVariablesPipelineId", version=20230726024322, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230726024322_add_not_valid_foreign_key_for_ci_pipeline_variables_pipeline_id.rb", scope="">87 uses one of the allowed migration classes88 migration: #<struct ActiveRecord::MigrationProxy name="AddNpmScopeAndProjectIndexToPackages", version=20230726072442, filename="db/migrate/20230726072442_add_npm_scope_and_project_index_to_packages.rb", scope="">89 uses one of the allowed migration classes90 migration: #<struct ActiveRecord::MigrationProxy name="AddNamespaceIdToIssueSearchData", version=20230726080527, filename="db/migrate/20230726080527_add_namespace_id_to_issue_search_data.rb", scope="">91 uses one of the allowed migration classes92 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="">93 uses one of the allowed migration classes94 migration: #<struct ActiveRecord::MigrationProxy name="AddNameToGoogleCloudLoggingConfiguration", version=20230726104022, filename="db/migrate/20230726104022_add_name_to_google_cloud_logging_configuration.rb", scope="">95 uses one of the allowed migration classes96 migration: #<struct ActiveRecord::MigrationProxy name="AddTextLimitToGoogleCloudLoggingConfigurationName", version=20230726104547, filename="db/migrate/20230726104547_add_text_limit_to_google_cloud_logging_configuration_name.rb", scope="">97 uses one of the allowed migration classes98 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToGoogleCloudLoggingConfiguration", version=20230726104616, filename="db/migrate/20230726104616_add_index_to_google_cloud_logging_configuration.rb", scope="">99 uses one of the allowed migration classes100 migration: #<struct ActiveRecord::MigrationProxy name="AddMaxFileDownloadSizeToApplicationSettings", version=20230726142141, filename="db/migrate/20230726142141_add_max_file_download_size_to_application_settings.rb", scope="">101 uses one of the allowed migration classes102 migration: #<struct ActiveRecord::MigrationProxy name="RemoveIndexEventsAuthorIdAndCreatedAt", version=20230726172100, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230726172100_remove_index_events_author_id_and_created_at.rb", scope="">103 uses one of the allowed migration classes104 migration: #<struct ActiveRecord::MigrationProxy name="RemoveIssuesIssueTypeColumn", version=20230726201351, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230726201351_remove_issues_issue_type_column.rb", scope="">105 uses one of the allowed migration classes106 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="">107 uses one of the allowed migration classes108 migration: #<struct ActiveRecord::MigrationProxy name="CreateCatalogResourceComponents", version=20230727084849, filename="db/migrate/20230727084849_create_catalog_resource_components.rb", scope="">109 uses one of the allowed migration classes110 migration: #<struct ActiveRecord::MigrationProxy name="AddCatalogResourceFkToCatalogResourceComponents", version=20230727091812, filename="db/migrate/20230727091812_add_catalog_resource_fk_to_catalog_resource_components.rb", scope="">111 uses one of the allowed migration classes112 migration: #<struct ActiveRecord::MigrationProxy name="AddCatalogVersionFkToCatalogResourceComponents", version=20230727092035, filename="db/migrate/20230727092035_add_catalog_version_fk_to_catalog_resource_components.rb", scope="">113 uses one of the allowed migration classes114 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectFkToCatalogResourceComponents", version=20230727092425, filename="db/migrate/20230727092425_add_project_fk_to_catalog_resource_components.rb", scope="">115 uses one of the allowed migration classes116 migration: #<struct ActiveRecord::MigrationProxy name="DropPreparedAtIndex", version=20230727102936, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230727102936_drop_prepared_at_index.rb", scope="">117 uses one of the allowed migration classes118 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="">119 uses one of the allowed migration classes120 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="">121 uses one of the allowed migration classes122 migration: #<struct ActiveRecord::MigrationProxy name="PrepareIndexOnVulnerabilityOccurrencesUuidAsync", version=20230727132342, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230727132342_prepare_index_on_vulnerability_occurrences_uuid_async.rb", scope="">123 uses one of the allowed migration classes124 migration: #<struct ActiveRecord::MigrationProxy name="AddLabelLockOnMerge", version=20230727144741, filename="db/migrate/20230727144741_add_label_lock_on_merge.rb", scope="">125 uses one of the allowed migration classes126 migration: #<struct ActiveRecord::MigrationProxy name="AddMaxImportRemoteFileSizeToApplicationSettings", version=20230727150416, filename="db/migrate/20230727150416_add_max_import_remote_file_size_to_application_settings.rb", scope="">127 uses one of the allowed migration classes128 migration: #<struct ActiveRecord::MigrationProxy name="DropUniqueIdxOnVulnSignatures", version=20230727203840, filename="db/migrate/20230727203840_drop_unique_idx_on_vuln_signatures.rb", scope="">129 uses one of the allowed migration classes130 migration: #<struct ActiveRecord::MigrationProxy name="AddSnowplowDatabaseCollectorHostnameToApplicationSettings", version=20230728020644, filename="db/migrate/20230728020644_add_snowplow_database_collector_hostname_to_application_settings.rb", scope="">131 uses one of the allowed migration classes132 migration: #<struct ActiveRecord::MigrationProxy name="PrepareIndexOnVulnerabilityOccurrencesUuidIncludingVulnerabilityIdAsync", version=20230728122928, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230728122928_prepare_index_on_vulnerability_occurrences_uuid_including_vulnerability_id_async.rb", scope="">133 uses one of the allowed migration classes134 migration: #<struct ActiveRecord::MigrationProxy name="RemoveApplicationSettingsIgnoredColumns", version=20230728134722, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230728134722_remove_application_settings_ignored_columns.rb", scope="">135 uses one of the allowed migration classes136 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="">137 uses one of the allowed migration classes138 migration: #<struct ActiveRecord::MigrationProxy name="AddCiJobAnnotationsPlanLimits", version=20230728171609, filename="db/migrate/20230728171609_add_ci_job_annotations_plan_limits.rb", scope="">139 uses one of the allowed migration classes140 migration: #<struct ActiveRecord::MigrationProxy name="AddEpicWorkItemType", version=20230728174927, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230728174927_add_epic_work_item_type.rb", scope="">141 uses one of the allowed migration classes142 migration: #<struct ActiveRecord::MigrationProxy name="AddHasMergeRequestToVulnerabilityReads", version=20230728193736, filename="db/migrate/20230728193736_add_has_merge_request_to_vulnerability_reads.rb", scope="">143 uses one of the allowed migration classes144 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="">145 uses one of the allowed migration classes146 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="">147 uses one of the allowed migration classes148 migration: #<struct ActiveRecord::MigrationProxy name="RemoveNotNullFromSubscriptionAddOnPurchasesNamespaceId", version=20230731121354, filename="db/migrate/20230731121354_remove_not_null_from_subscription_add_on_purchases_namespace_id.rb", scope="">149 uses one of the allowed migration classes150 migration: #<struct ActiveRecord::MigrationProxy name="RemoveInitializeAnalyticsWorkerJobInstances", version=20230731130351, filename="db/migrate/20230731130351_remove_initialize_analytics_worker_job_instances.rb", scope="">151 uses one of the allowed migration classes152 migration: #<struct ActiveRecord::MigrationProxy name="RemoveTempIndexVulnerabilityOccurrences", version=20230731210422, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230731210422_remove_temp_index_vulnerability_occurrences.rb", scope="">153 uses one of the allowed migration classes154 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="">155 uses one of the allowed migration classes156 migration: #<struct ActiveRecord::MigrationProxy name="AddMaxDecompressionArchiveSizeToApplicationSettings", version=20230802065830, filename="db/migrate/20230802065830_add_max_decompression_archive_size_to_application_settings.rb", scope="">157 uses one of the allowed migration classes158 migration: #<struct ActiveRecord::MigrationProxy name="AddApplicationSettingsMaxDecompressionSizeConstraint", version=20230802070337, filename="db/migrate/20230802070337_add_application_settings_max_decompression_size_constraint.rb", scope="">159 uses one of the allowed migration classes160 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="">161 uses one of the allowed migration classes162 migration: #<struct ActiveRecord::MigrationProxy name="DropSchemaInconsistenciesTable", version=20230802090519, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230802090519_drop_schema_inconsistencies_table.rb", scope="">163 uses one of the allowed migration classes164 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="">165 uses one of the allowed migration classes166 migration: #<struct ActiveRecord::MigrationProxy name="AddComponentNameAndInputFilePathToSbomOccurrences", version=20230802124027, filename="db/migrate/20230802124027_add_component_name_and_input_file_path_to_sbom_occurrences.rb", scope="">167 uses one of the allowed migration classes168 migration: #<struct ActiveRecord::MigrationProxy name="AddAdminMergeRequestToMemberRoles", version=20230802205051, filename="db/migrate/20230802205051_add_admin_merge_request_to_member_roles.rb", scope="">169 uses one of the allowed migration classes170 migration: #<struct ActiveRecord::MigrationProxy name="AddCurrentUserTodosWidgetToEpicWorkItemType", version=20230802212443, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230802212443_add_current_user_todos_widget_to_epic_work_item_type.rb", scope="">171 uses one of the allowed migration classes172 migration: #<struct ActiveRecord::MigrationProxy name="AddHasMergeRequestOnVulnerabilityReadsTrigger", version=20230803125434, filename="db/migrate/20230803125434_add_has_merge_request_on_vulnerability_reads_trigger.rb", scope="">173 uses one of the allowed migration classes174 migration: #<struct ActiveRecord::MigrationProxy name="AddTicketWorkItemType", version=20230804053643, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230804053643_add_ticket_work_item_type.rb", scope="">175 uses one of the allowed migration classes176 migration: #<struct ActiveRecord::MigrationProxy name="AddRollupProgressToWiProgresses", version=20230804055559, filename="db/migrate/20230804055559_add_rollup_progress_to_wi_progresses.rb", scope="">177 uses one of the allowed migration classes178 migration: #<struct ActiveRecord::MigrationProxy name="BackfillGoogleCloudLoggingName", version=20230804064817, filename="db/migrate/20230804064817_backfill_google_cloud_logging_name.rb", scope="">179 uses one of the allowed migration classes180 migration: #<struct ActiveRecord::MigrationProxy name="AddNotNullToGcpConfigName", version=20230804065052, filename="db/migrate/20230804065052_add_not_null_to_gcp_config_name.rb", scope="">181 uses one of the allowed migration classes182 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="">183 uses one of the allowed migration classes184 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="">185 uses one of the allowed migration classes186 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueIndexOnUuidConvertStringToUuid", version=20230804122825, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230804122825_add_unique_index_on_uuid_convert_string_to_uuid.rb", scope="">187 uses one of the allowed migration classes188 migration: #<struct ActiveRecord::MigrationProxy name="AddUniqueIndexOnUuidConvertStringToUuidIncludingVulnerabilityId", version=20230804123252, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230804123252_add_unique_index_on_uuid_convert_string_to_uuid_including_vulnerability_id.rb", scope="">189 uses one of the allowed migration classes190 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="">191 uses one of the allowed migration classes192 migration: #<struct ActiveRecord::MigrationProxy name="AddSentryClientsideTracesSampleRate", version=20230804141257, filename="db/migrate/20230804141257_add_sentry_clientside_traces_sample_rate.rb", scope="">193 uses one of the allowed migration classes194 migration: #<struct ActiveRecord::MigrationProxy name="AddSentryClientsideTracesSampleRateConstraint", version=20230804141550, filename="db/migrate/20230804141550_add_sentry_clientside_traces_sample_rate_constraint.rb", scope="">195 uses one of the allowed migration classes196 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToAbuseReportsOnUserIdStatusAndCategory", version=20230807035953, filename="db/migrate/20230807035953_add_index_to_abuse_reports_on_user_id_status_and_category.rb", scope="">197 uses one of the allowed migration classes198 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="">199 uses one of the allowed migration classes200 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="">201 uses one of the allowed migration classes202 migration: #<struct ActiveRecord::MigrationProxy name="AddActiveToAuditEventsStreamingHeaders", version=20230807101745, filename="db/migrate/20230807101745_add_active_to_audit_events_streaming_headers.rb", scope="">203 uses one of the allowed migration classes204 migration: #<struct ActiveRecord::MigrationProxy name="AddActiveToInstanceAuditEventsStreamingHeaders", version=20230807105131, filename="db/migrate/20230807105131_add_active_to_instance_audit_events_streaming_headers.rb", scope="">205 uses one of the allowed migration classes206 migration: #<struct ActiveRecord::MigrationProxy name="AddLabelLockOnMergeRedux", version=20230807202427, filename="db/migrate/20230807202427_add_label_lock_on_merge_redux.rb", scope="">207 uses one of the allowed migration classes208 migration: #<struct ActiveRecord::MigrationProxy name="RenameApplicationSettingsDatabaseApdexSettings", version=20230808123101, filename="db/migrate/20230808123101_rename_application_settings_database_apdex_settings.rb", scope="">209 uses one of the allowed migration classes210 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="">211 uses one of the allowed migration classes212 migration: #<struct ActiveRecord::MigrationProxy name="AddMaxYamlSizeToApplicationSettings", version=20230808135706, filename="db/migrate/20230808135706_add_max_yaml_size_to_application_settings.rb", scope="">213 uses one of the allowed migration classes214 migration: #<struct ActiveRecord::MigrationProxy name="UpdateCiMaxTotalYamlSizeBytesDefaultValue", version=20230808135859, filename="db/migrate/20230808135859_update_ci_max_total_yaml_size_bytes_default_value.rb", scope="">215 uses one of the allowed migration classes216 migration: #<struct ActiveRecord::MigrationProxy name="AddFluxResourceColumnToEnvironments", version=20230808140338, filename="db/migrate/20230808140338_add_flux_resource_column_to_environments.rb", scope="">217 uses one of the allowed migration classes218 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="">219 uses one of the allowed migration classes220 migration: #<struct ActiveRecord::MigrationProxy name="RemoveApplicationSettingsDashboardColumns", version=20230808200355, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230808200355_remove_application_settings_dashboard_columns.rb", scope="">221 uses one of the allowed migration classes222 migration: #<struct ActiveRecord::MigrationProxy name="AddSearchToZoektNamespace", version=20230809011700, filename="db/migrate/20230809011700_add_search_to_zoekt_namespace.rb", scope="">223 uses one of the allowed migration classes224 migration: #<struct ActiveRecord::MigrationProxy name="EnsureIdUniquenessForPCiBuildsV2", version=20230809090349, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230809090349_ensure_id_uniqueness_for_p_ci_builds_v2.rb", scope="">225 uses one of the allowed migration classes226 migration: #<struct ActiveRecord::MigrationProxy name="EnsureEpicUserMentionsBigintBackfillIsFinishedForSelfHosts", version=20230809104007, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230809104007_ensure_epic_user_mentions_bigint_backfill_is_finished_for_self_hosts.rb", scope="">227 uses one of the allowed migration classes228 migration: #<struct ActiveRecord::MigrationProxy name="SwapEpicUserMentionsNoteIdToBigintForSelfHosts", version=20230809104753, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230809104753_swap_epic_user_mentions_note_id_to_bigint_for_self_hosts.rb", scope="">229 uses one of the allowed migration classes230 migration: #<struct ActiveRecord::MigrationProxy name="IndexSbomOccurrencesOnProjectIdComponentIdAndInputFilePath", version=20230809133249, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230809133249_index_sbom_occurrences_on_project_id_component_id_and_input_file_path.rb", scope="">231 uses one of the allowed migration classes232 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexesToExternalStatusChecksOnIdAndProjectId", version=20230809140938, filename="db/migrate/20230809140938_add_indexes_to_external_status_checks_on_id_and_project_id.rb", scope="">233 uses one of the allowed migration classes234 migration: #<struct ActiveRecord::MigrationProxy name="AddPathPrefixAndBuildRefToPagesDeployments", version=20230809165212, filename="db/migrate/20230809165212_add_path_prefix_and_build_ref_to_pages_deployments.rb", scope="">235 uses one of the allowed migration classes236 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToPathPrefixAndBuildRefToPagesDeployments", version=20230809165213, filename="db/migrate/20230809165213_add_index_to_path_prefix_and_build_ref_to_pages_deployments.rb", scope="">237 uses one of the allowed migration classes238 migration: #<struct ActiveRecord::MigrationProxy name="EnsureSystemNoteMetadataBigintBackfillIsFinishedForSelfManaged", version=20230809170822, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230809170822_ensure_system_note_metadata_bigint_backfill_is_finished_for_self_managed.rb", scope="">239 uses one of the allowed migration classes240 migration: #<struct ActiveRecord::MigrationProxy name="SwapSystemNoteMetadataNoteIdToBigintForSelfManaged", version=20230809174702, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230809174702_swap_system_note_metadata_note_id_to_bigint_for_self_managed.rb", scope="">241 uses one of the allowed migration classes242 migration: #<struct ActiveRecord::MigrationProxy name="AddFileSizeLimitToPlanLimits", version=20230809192256, filename="db/migrate/20230809192256_add_file_size_limit_to_plan_limits.rb", scope="">243 uses one of the allowed migration classes244 migration: #<struct ActiveRecord::MigrationProxy name="EnsureIssueUserMentionsBigintBackfillIsFinishedForSelfManaged", version=20230809203254, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230809203254_ensure_issue_user_mentions_bigint_backfill_is_finished_for_self_managed.rb", scope="">245 uses one of the allowed migration classes246 migration: #<struct ActiveRecord::MigrationProxy name="SwapIssueUserMentionsNoteIdToBigintForSelfManaged", version=20230809210550, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230809210550_swap_issue_user_mentions_note_id_to_bigint_for_self_managed.rb", scope="">247 uses one of the allowed migration classes248 migration: #<struct ActiveRecord::MigrationProxy name="EnsureSuggestionsNoteIdBigintBackfillIsFinishedForSelfHosts", version=20230810103141, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230810103141_ensure_suggestions_note_id_bigint_backfill_is_finished_for_self_hosts.rb", scope="">249 uses one of the allowed migration classes250 migration: #<struct ActiveRecord::MigrationProxy name="SwapSuggestionsNoteIdToBigintForSelfHosts", version=20230810103534, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230810103534_swap_suggestions_note_id_to_bigint_for_self_hosts.rb", scope="">251 uses one of the allowed migration classes252 migration: #<struct ActiveRecord::MigrationProxy name="EnsureNoteDiffFilesBigintBackfillIsFinishedForSelfHosts", version=20230810112715, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230810112715_ensure_note_diff_files_bigint_backfill_is_finished_for_self_hosts.rb", scope="">253 uses one of the allowed migration classes254 migration: #<struct ActiveRecord::MigrationProxy name="SwapNoteDiffFilesNoteIdToBigintForSelfHosts", version=20230810113227, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230810113227_swap_note_diff_files_note_id_to_bigint_for_self_hosts.rb", scope="">255 uses one of the allowed migration classes256 migration: #<struct ActiveRecord::MigrationProxy name="EnsureSnippetUserMentionsBigintBackfillIsFinishedForSelfHosts", version=20230810122746, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230810122746_ensure_snippet_user_mentions_bigint_backfill_is_finished_for_self_hosts.rb", scope="">257 uses one of the allowed migration classes258 migration: #<struct ActiveRecord::MigrationProxy name="SwapSnippetUserMentionsNoteIdToBigintForSelfHosts", version=20230810123044, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230810123044_swap_snippet_user_mentions_note_id_to_bigint_for_self_hosts.rb", scope="">259 uses one of the allowed migration classes260 migration: #<struct ActiveRecord::MigrationProxy name="ScheduleFixingNamespaceIdsOfVulnerabilityReads", version=20230810124545, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230810124545_schedule_fixing_namespace_ids_of_vulnerability_reads.rb", scope="">261 uses one of the allowed migration classes262 migration: #<struct ActiveRecord::MigrationProxy name="AddHasRemediationsToVulnerabilityReads", version=20230810132301, filename="db/migrate/20230810132301_add_has_remediations_to_vulnerability_reads.rb", scope="">263 uses one of the allowed migration classes264 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillNugetNormalizedVersion", version=20230811103457, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230811103457_queue_backfill_nuget_normalized_version.rb", scope="">265 uses one of the allowed migration classes266 migration: #<struct ActiveRecord::MigrationProxy name="EnsureVumBigintBackfillIsFinishedForSelfHosts", version=20230811103654, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230811103654_ensure_vum_bigint_backfill_is_finished_for_self_hosts.rb", scope="">267 uses one of the allowed migration classes268 migration: #<struct ActiveRecord::MigrationProxy name="SwapVulnerabilityUserMentionsNoteIdToBigintForSelfHosts", version=20230811103941, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230811103941_swap_vulnerability_user_mentions_note_id_to_bigint_for_self_hosts.rb", scope="">269 uses one of the allowed migration classes270 migration: #<struct ActiveRecord::MigrationProxy name="AddPagesMultipleVersionsEnabledToProjectSettings", version=20230811144601, filename="db/migrate/20230811144601_add_pages_multiple_versions_enabled_to_project_settings.rb", scope="">271 uses one of the allowed migration classes272 migration: #<struct ActiveRecord::MigrationProxy name="EnsureCommitUserMentionsNoteIdBigintBackfillIsFinishedForSelfManaged", version=20230811145848, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230811145848_ensure_commit_user_mentions_note_id_bigint_backfill_is_finished_for_self_managed.rb", scope="">273 uses one of the allowed migration classes274 migration: #<struct ActiveRecord::MigrationProxy name="SwapCommitUserMentionsNoteIdToBigintForSelfManaged", version=20230811150636, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230811150636_swap_commit_user_mentions_note_id_to_bigint_for_self_managed.rb", scope="">275 uses one of the allowed migration classes276 migration: #<struct ActiveRecord::MigrationProxy name="RemoveApplicationSettingsDashboardNotificationLimitColumn", version=20230811185901, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230811185901_remove_application_settings_dashboard_notification_limit_column.rb", scope="">277 uses one of the allowed migration classes278 migration: #<struct ActiveRecord::MigrationProxy name="BackfillAlertManagementPrometheusIntegrations", version=20230811211544, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230811211544_backfill_alert_management_prometheus_integrations.rb", scope="">279 uses one of the allowed migration classes280 migration: #<struct ActiveRecord::MigrationProxy name="AddJobsIndexRateLimitToApplicationSettings", version=20230814045150, filename="db/migrate/20230814045150_add_jobs_index_rate_limit_to_application_settings.rb", scope="">281 uses one of the allowed migration classes282 migration: #<struct ActiveRecord::MigrationProxy name="AddPipelineIdAndExportTypeToDependencyListExports", version=20230814055259, filename="db/migrate/20230814055259_add_pipeline_id_and_export_type_to_dependency_list_exports.rb", scope="">283 uses one of the allowed migration classes284 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexPipelineIdToDependencyListExports", version=20230814055310, filename="db/migrate/20230814055310_add_index_pipeline_id_to_dependency_list_exports.rb", scope="">285 uses one of the allowed migration classes286 migration: #<struct ActiveRecord::MigrationProxy name="EnsureTimelogsNoteIdBigintBackfillIsFinishedForSelfHosts", version=20230814143925, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230814143925_ensure_timelogs_note_id_bigint_backfill_is_finished_for_self_hosts.rb", scope="">287 uses one of the allowed migration classes288 migration: #<struct ActiveRecord::MigrationProxy name="SwapTimelogsNoteIdToBigintForSelfHosts", version=20230814144045, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230814144045_swap_timelogs_note_id_to_bigint_for_self_hosts.rb", scope="">289 uses one of the allowed migration classes290 migration: #<struct ActiveRecord::MigrationProxy name="AddDecompressArchiveFileTimeoutToApplicationSetting", version=20230814181359, filename="db/migrate/20230814181359_add_decompress_archive_file_timeout_to_application_setting.rb", scope="">291 uses one of the allowed migration classes292 migration: #<struct ActiveRecord::MigrationProxy name="AddMergedCommitShaToMergeRequests", version=20230814203548, filename="db/migrate/20230814203548_add_merged_commit_sha_to_merge_requests.rb", scope="">293 uses one of the allowed migration classes294 migration: #<struct ActiveRecord::MigrationProxy name="AddHashesToCreditCardValidations", version=20230815072912, filename="db/migrate/20230815072912_add_hashes_to_credit_card_validations.rb", scope="">295 uses one of the allowed migration classes296 migration: #<struct ActiveRecord::MigrationProxy name="QueuePopulateDenormalizedColumnsForSbomOccurrences", version=20230815140656, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230815140656_queue_populate_denormalized_columns_for_sbom_occurrences.rb", scope="">297 uses one of the allowed migration classes298 migration: #<struct ActiveRecord::MigrationProxy name="RenamePlansTitlesWithLegacyPlanNames", version=20230815160428, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230815160428_rename_plans_titles_with_legacy_plan_names.rb", scope="">299 uses one of the allowed migration classes300 migration: #<struct ActiveRecord::MigrationProxy name="EnsureIdUniquenessForPCiBuildsV3", version=20230816111730, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230816111730_ensure_id_uniqueness_for_p_ci_builds_v3.rb", scope="">301 uses one of the allowed migration classes302 migration: #<struct ActiveRecord::MigrationProxy name="EnsureDumNoteIdBigintBackfillIsFinishedForSelfManaged", version=20230816152540, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230816152540_ensure_dum_note_id_bigint_backfill_is_finished_for_self_managed.rb", scope="">303 uses one of the allowed migration classes304 migration: #<struct ActiveRecord::MigrationProxy name="SwapDesignUserMentionsNoteIdToBigIntForSelfManaged", version=20230816152639, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230816152639_swap_design_user_mentions_note_id_to_big_int_for_self_managed.rb", scope="">305 uses one of the allowed migration classes306 migration: #<struct ActiveRecord::MigrationProxy name="AddLicensesToSbomOccurrences", version=20230816210052, filename="db/migrate/20230816210052_add_licenses_to_sbom_occurrences.rb", scope="">307 uses one of the allowed migration classes308 migration: #<struct ActiveRecord::MigrationProxy name="EnsureMrUserMentionsNoteIdBigintBackfillIsFinishedForSelfManaged", version=20230816210503, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230816210503_ensure_mr_user_mentions_note_id_bigint_backfill_is_finished_for_self_managed.rb", scope="">309 uses one of the allowed migration classes310 migration: #<struct ActiveRecord::MigrationProxy name="SwapMergeRequestUserMentionsNoteIdToBigintForSelfManaged", version=20230816213228, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230816213228_swap_merge_request_user_mentions_note_id_to_bigint_for_self_managed.rb", scope="">311 uses one of the allowed migration classes312 migration: #<struct ActiveRecord::MigrationProxy name="InitBigintConversionForSharedRunnersDuration", version=20230817040352, filename="db/migrate/20230817040352_init_bigint_conversion_for_shared_runners_duration.rb", scope="">313 uses one of the allowed migration classes314 migration: #<struct ActiveRecord::MigrationProxy name="BackfillSharedRunnersDurationForProjectBigintConversion", version=20230817050946, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230817050946_backfill_shared_runners_duration_for_project_bigint_conversion.rb", scope="">315 uses one of the allowed migration classes316 migration: #<struct ActiveRecord::MigrationProxy name="EnsureEventsBigintBackfillIsFinishedForSelfHosts", version=20230817111753, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230817111753_ensure_events_bigint_backfill_is_finished_for_self_hosts.rb", scope="">317 uses one of the allowed migration classes318 migration: #<struct ActiveRecord::MigrationProxy name="SwapEventsTargetIdToBigintForSelfHosts", version=20230817111938, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230817111938_swap_events_target_id_to_bigint_for_self_hosts.rb", scope="">319 uses one of the allowed migration classes320 migration: #<struct ActiveRecord::MigrationProxy name="EnsureAwardEmojiBigintBackfillIsFinishedForSelfHosts", version=20230817143507, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230817143507_ensure_award_emoji_bigint_backfill_is_finished_for_self_hosts.rb", scope="">321 uses one of the allowed migration classes322 migration: #<struct ActiveRecord::MigrationProxy name="SwapAwardEmojiNoteIdToBigintForSelfHosts", version=20230817143637, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230817143637_swap_award_emoji_note_id_to_bigint_for_self_hosts.rb", scope="">323 uses one of the allowed migration classes324 migration: #<struct ActiveRecord::MigrationProxy name="PrepareRemovalIndexSuccessDeploymentsOnClusterIdAndEnvironmentId", version=20230818034041, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230818034041_prepare_removal_index_success_deployments_on_cluster_id_and_environment_id.rb", scope="">325 uses one of the allowed migration classes326 migration: #<struct ActiveRecord::MigrationProxy name="BackfillSharedRunnersDurationForNamespaceBigintConversion", version=20230818050946, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230818050946_backfill_shared_runners_duration_for_namespace_bigint_conversion.rb", scope="">327 uses one of the allowed migration classes328 migration: #<struct ActiveRecord::MigrationProxy name="PrepareRemovalIndexDeploymentsOnIdWhereClusterIdPresent", version=20230818055517, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230818055517_prepare_removal_index_deployments_on_id_where_cluster_id_present.rb", scope="">329 uses one of the allowed migration classes330 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillUsersWithDefaults", version=20230818083610, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230818083610_queue_backfill_users_with_defaults.rb", scope="">331 uses one of the allowed migration classes332 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillUserPreferencesWithDefaults", version=20230818085219, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230818085219_queue_backfill_user_preferences_with_defaults.rb", scope="">333 uses one of the allowed migration classes334 migration: #<struct ActiveRecord::MigrationProxy name="QueueCreateComplianceStandardsAdherence", version=20230818142801, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230818142801_queue_create_compliance_standards_adherence.rb", scope="">335 uses one of the allowed migration classes336 migration: #<struct ActiveRecord::MigrationProxy name="CreateWorkspaceVariables", version=20230821000001, filename="db/migrate/20230821000001_create_workspace_variables.rb", scope="">337 uses one of the allowed migration classes338 migration: #<struct ActiveRecord::MigrationProxy name="AddPersonalAccessTokenIdToWorkspaces", version=20230821000002, filename="db/migrate/20230821000002_add_personal_access_token_id_to_workspaces.rb", scope="">339 uses one of the allowed migration classes340 migration: #<struct ActiveRecord::MigrationProxy name="AddConfigVersionToWorkspaces", version=20230821000003, filename="db/migrate/20230821000003_add_config_version_to_workspaces.rb", scope="">341 uses one of the allowed migration classes342 migration: #<struct ActiveRecord::MigrationProxy name="AddMrRequiresSamlAuthForApprovalToGroupMrApprovalSettings", version=20230821081508, filename="db/migrate/20230821081508_add_mr_requires_saml_auth_for_approval_to_group_mr_approval_settings.rb", scope="">343 uses one of the allowed migration classes344 migration: #<struct ActiveRecord::MigrationProxy name="QueueConvertCreditCardValidationDataToHashes", version=20230821081603, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230821081603_queue_convert_credit_card_validation_data_to_hashes.rb", scope="">345 uses one of the allowed migration classes346 migration: #<struct ActiveRecord::MigrationProxy name="RemoveCrlNull", version=20230821101010, filename="db/migrate/20230821101010_remove_crl_null.rb", scope="">347 uses one of the allowed migration classes348 migration: #<struct ActiveRecord::MigrationProxy name="CreatePackagesNugetSymbols", version=20230821133549, filename="db/migrate/20230821133549_create_packages_nuget_symbols.rb", scope="">349 uses one of the allowed migration classes350 migration: #<struct ActiveRecord::MigrationProxy name="AddOrganizationIdToProject", version=20230822064649, filename="db/migrate/20230822064649_add_organization_id_to_project.rb", scope="">351 uses one of the allowed migration classes352 migration: #<struct ActiveRecord::MigrationProxy name="PrepareIndexForOrgIdOnProjects", version=20230822064841, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230822064841_prepare_index_for_org_id_on_projects.rb", scope="">353 uses one of the allowed migration classes354 migration: #<struct ActiveRecord::MigrationProxy name="DeleteProjectCalloutThree", version=20230822104028, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230822104028_delete_project_callout_three.rb", scope="">355 uses one of the allowed migration classes356 migration: #<struct ActiveRecord::MigrationProxy name="DropTemporaryIndexOnVulnerabilityReadsDismissalReason", version=20230822125256, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230822125256_drop_temporary_index_on_vulnerability_reads_dismissal_reason.rb", scope="">357 uses one of the allowed migration classes358 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFreeUserCapEmailWorkers", version=20230822151454, filename="db/migrate/20230822151454_remove_free_user_cap_email_workers.rb", scope="">359 uses one of the allowed migration classes360 migration: #<struct ActiveRecord::MigrationProxy name="RemoveFreeUserCapEmailWorkersRelatedColumns", version=20230822153124, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230822153124_remove_free_user_cap_email_workers_related_columns.rb", scope="">361 uses one of the allowed migration classes362 migration: #<struct ActiveRecord::MigrationProxy name="AddAsyncIndexOnMergeRequestsTargetProjectIdAndMergedCommitSha", version=20230822154640, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230822154640_add_async_index_on_merge_requests_target_project_id_and_merged_commit_sha.rb", scope="">363 uses one of the allowed migration classes364 migration: #<struct ActiveRecord::MigrationProxy name="AddOkrReminderFieldsToWorkItemProgresses", version=20230822175304, filename="db/migrate/20230822175304_add_okr_reminder_fields_to_work_item_progresses.rb", scope="">365 uses one of the allowed migration classes366 migration: #<struct ActiveRecord::MigrationProxy name="RemovePaJitsuRelatedSettings", version=20230822195852, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230822195852_remove_pa_jitsu_related_settings.rb", scope="">367 uses one of the allowed migration classes368 migration: #<struct ActiveRecord::MigrationProxy name="AddTempIndexForProjectStatisticsUpdatedAt", version=20230823085627, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230823085627_add_temp_index_for_project_statistics_updated_at.rb", scope="">369 uses one of the allowed migration classes370 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillProjectStatisticsStorageSizeWithRecentSize", version=20230823090001, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230823090001_queue_backfill_project_statistics_storage_size_with_recent_size.rb", scope="">371 uses one of the allowed migration classes372 migration: #<struct ActiveRecord::MigrationProxy name="CreateInstanceGoogleCloudLoggingConfigurations", version=20230823132142, filename="db/migrate/20230823132142_create_instance_google_cloud_logging_configurations.rb", scope="">373 uses one of the allowed migration classes374 migration: #<struct ActiveRecord::MigrationProxy name="AddLinkedItemsWidgetToTicketWorkItemType", version=20230823140934, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230823140934_add_linked_items_widget_to_ticket_work_item_type.rb", scope="">375 uses one of the allowed migration classes376 migration: #<struct ActiveRecord::MigrationProxy name="RemoveUsersNotificationSettingsUserIdFk", version=20230823143519, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230823143519_remove_users_notification_settings_user_id_fk.rb", scope="">377 uses one of the allowed migration classes378 migration: #<struct ActiveRecord::MigrationProxy name="RemoveUsersMembersUserIdFk", version=20230823144846, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230823144846_remove_users_members_user_id_fk.rb", scope="">379 uses one of the allowed migration classes380 migration: #<struct ActiveRecord::MigrationProxy name="EnsureNotesBigintBackfillIsFinishedForSelfManaged", version=20230823145053, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230823145053_ensure_notes_bigint_backfill_is_finished_for_self_managed.rb", scope="">381 uses one of the allowed migration classes382 migration: #<struct ActiveRecord::MigrationProxy name="SwapNotesIdToBigintForSelfManaged", version=20230823145126, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230823145126_swap_notes_id_to_bigint_for_self_managed.rb", scope="">383 uses one of the allowed migration classes384 migration: #<struct ActiveRecord::MigrationProxy name="UpdatePackageMetadataSyncSetting", version=20230823160533, filename="db/migrate/20230823160533_update_package_metadata_sync_setting.rb", scope="">385 uses one of the allowed migration classes386 migration: #<struct ActiveRecord::MigrationProxy name="RemoveNamespacesRoutesNamespaceIdFk", version=20230823161514, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230823161514_remove_namespaces_routes_namespace_id_fk.rb", scope="">387 uses one of the allowed migration classes388 migration: #<struct ActiveRecord::MigrationProxy name="AddPatchIdShaOnApprovals", version=20230823174108, filename="db/migrate/20230823174108_add_patch_id_sha_on_approvals.rb", scope="">389 uses one of the allowed migration classes390 migration: #<struct ActiveRecord::MigrationProxy name="RemovePagesDeploymentsProjectIdPathPrefixUniqueIndex", version=20230823194111, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230823194111_remove_pages_deployments_project_id_path_prefix_unique_index.rb", scope="">391 uses one of the allowed migration classes392 migration: #<struct ActiveRecord::MigrationProxy name="AddFindingIdToVulnerabilities", version=20230824015840, filename="db/migrate/20230824015840_add_finding_id_to_vulnerabilities.rb", scope="">393 uses one of the allowed migration classes394 migration: #<struct ActiveRecord::MigrationProxy name="MakeFindingIdOnVulnerabilitiesInvalidForeignKey", version=20230824022229, filename="db/migrate/20230824022229_make_finding_id_on_vulnerabilities_invalid_foreign_key.rb", scope="">395 uses one of the allowed migration classes396 migration: #<struct ActiveRecord::MigrationProxy name="EnsureBackfillForCiStagesPipelineIdIsFinished", version=20230825085648, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230825085648_ensure_backfill_for_ci_stages_pipeline_id_is_finished.rb", scope="">397 uses one of the allowed migration classes398 migration: #<struct ActiveRecord::MigrationProxy name="CreateAsyncIndexForCiStagesPipelineId", version=20230825085719, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230825085719_create_async_index_for_ci_stages_pipeline_id.rb", scope="">399 uses one of the allowed migration classes400 migration: #<struct ActiveRecord::MigrationProxy name="ExtendPushRulesRegexLimits", version=20230828153646, filename="db/migrate/20230828153646_extend_push_rules_regex_limits.rb", scope="">401 uses one of the allowed migration classes402 migration: #<struct ActiveRecord::MigrationProxy name="AddSearchRateLimitAllowlistToApplicationSettings", version=20230829045459, filename="db/migrate/20230829045459_add_search_rate_limit_allowlist_to_application_settings.rb", scope="">403 uses one of the allowed migration classes404 migration: #<struct ActiveRecord::MigrationProxy name="IndexFindingIdForVulnerabilities", version=20230829120720, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230829120720_index_finding_id_for_vulnerabilities.rb", scope="">405 uses one of the allowed migration classes406 migration: #<struct ActiveRecord::MigrationProxy name="ValidatePushRulesConstraints", version=20230830084959, filename="db/migrate/20230830084959_validate_push_rules_constraints.rb", scope="">407 uses one of the allowed migration classes408 migration: #<struct ActiveRecord::MigrationProxy name="RemovePushRulesRegexLimits", version=20230830085501, filename="db/migrate/20230830085501_remove_push_rules_regex_limits.rb", scope="">409 uses one of the allowed migration classes410 migration: #<struct ActiveRecord::MigrationProxy name="UpdateDefaultValuePm", version=20230830101525, filename="db/migrate/20230830101525_update_default_value_pm.rb", scope="">411 uses one of the allowed migration classes412 migration: #<struct ActiveRecord::MigrationProxy name="QueueUpdateUsersSetExternalIfServiceAccount", version=20230830121830, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230830121830_queue_update_users_set_external_if_service_account.rb", scope="">413 uses one of the allowed migration classes414 migration: #<struct ActiveRecord::MigrationProxy name="QueueSyncScanResultPolicies", version=20230831084632, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230831084632_queue_sync_scan_result_policies.rb", scope="">415 uses one of the allowed migration classes416 migration: #<struct ActiveRecord::MigrationProxy name="IndexOrgIdAndIdOnOrganizationUser", version=20230831101144, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230831101144_index_org_id_and_id_on_organization_user.rb", scope="">417 uses one of the allowed migration classes418 migration: #<struct ActiveRecord::MigrationProxy name="AddApprovalSettingsToScanResultPolicies", version=20230831111051, filename="db/migrate/20230831111051_add_approval_settings_to_scan_result_policies.rb", scope="">419 uses one of the allowed migration classes420 migration: #<struct ActiveRecord::MigrationProxy name="EnsureBackfillForCiSourcesPipelinesPipelineIdIsFinished", version=20230901033401, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230901033401_ensure_backfill_for_ci_sources_pipelines_pipeline_id_is_finished.rb", scope="">421 uses one of the allowed migration classes422 migration: #<struct ActiveRecord::MigrationProxy name="AddSyncForeignKeyForCiPipelineVariablesPipelineId", version=20230901044003, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230901044003_add_sync_foreign_key_for_ci_pipeline_variables_pipeline_id.rb", scope="">423 uses one of the allowed migration classes424 migration: #<struct ActiveRecord::MigrationProxy name="EnsureBackfillForCiPipelinesAutoCanceledByIdIsFinished", version=20230901050458, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230901050458_ensure_backfill_for_ci_pipelines_auto_canceled_by_id_is_finished.rb", scope="">425 uses one of the allowed migration classes426 migration: #<struct ActiveRecord::MigrationProxy name="EnsureBackfillForCiPipelineChatDataPipelineIdIsFinished", version=20230901054536, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230901054536_ensure_backfill_for_ci_pipeline_chat_data_pipeline_id_is_finished.rb", scope="">427 uses one of the allowed migration classes428 migration: #<struct ActiveRecord::MigrationProxy name="AddConcurrentIndexForCiPipelineChatDataPipelineIdConvertToBigint", version=20230901064536, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230901064536_add_concurrent_index_for_ci_pipeline_chat_data_pipeline_id_convert_to_bigint.rb", scope="">429 uses one of the allowed migration classes430 migration: #<struct ActiveRecord::MigrationProxy name="RemoveNamespaceDetailsDashboardFields", version=20230901064537, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230901064537_remove_namespace_details_dashboard_fields.rb", scope="">431 uses one of the allowed migration classes432 migration: #<struct ActiveRecord::MigrationProxy name="UpdateVulnerabilityReadsTriggerToSetHasMergeRequest", version=20230901170145, filename="db/migrate/20230901170145_update_vulnerability_reads_trigger_to_set_has_merge_request.rb", scope="">433 uses one of the allowed migration classes434 migration: #<struct ActiveRecord::MigrationProxy name="AddOkrReminderLastSentToWorkItemProgresses", version=20230901200448, filename="db/migrate/20230901200448_add_okr_reminder_last_sent_to_work_item_progresses.rb", scope="">435 uses one of the allowed migration classes436 migration: #<struct ActiveRecord::MigrationProxy name="CreateAsyncIndexForCiSourcesPipelinesPipelineId", version=20230902033401, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230902033401_create_async_index_for_ci_sources_pipelines_pipeline_id.rb", scope="">437 uses one of the allowed migration classes438 migration: #<struct ActiveRecord::MigrationProxy name="CreateAsyncIndexForCiPipelinesAutoCanceledById", version=20230902050458, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230902050458_create_async_index_for_ci_pipelines_auto_canceled_by_id.rb", scope="">439 uses one of the allowed migration classes440 migration: #<struct ActiveRecord::MigrationProxy name="EnsureBackfillForCiPipelineMessagesPipelineIdIsFinished", version=20230902054536, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230902054536_ensure_backfill_for_ci_pipeline_messages_pipeline_id_is_finished.rb", scope="">441 uses one of the allowed migration classes442 migration: #<struct ActiveRecord::MigrationProxy name="ConcurrentIndexForCiPipelineMessagesPipelineIdConvertToBigint", version=20230903064536, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230903064536_concurrent_index_for_ci_pipeline_messages_pipeline_id_convert_to_bigint.rb", scope="">443 uses one of the allowed migration classes444 migration: #<struct ActiveRecord::MigrationProxy name="AddCiJobArtifactsFileFinalPathIndex", version=20230903064537, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230903064537_add_ci_job_artifacts_file_final_path_index.rb", scope="">445 uses one of the allowed migration classes446 migration: #<struct ActiveRecord::MigrationProxy name="CreatePackagesProtectionRules", version=20230903170000, filename="db/migrate/20230903170000_create_packages_protection_rules.rb", scope="">447 uses one of the allowed migration classes448 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexDeploymentsOnIdWhereClusterIdPresent", version=20230904100544, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230904100544_drop_index_deployments_on_id_where_cluster_id_present.rb", scope="">449 uses one of the allowed migration classes450 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexSuccessfulDeploymentsOnClusterIdAndEnvironmentId", version=20230904103804, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230904103804_drop_index_successful_deployments_on_cluster_id_and_environment_id.rb", scope="">451 uses one of the allowed migration classes452 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyForCiPipelineChatDataForPipelineIdBigint", version=20230905040539, filename="db/migrate/20230905040539_add_foreign_key_for_ci_pipeline_chat_data_for_pipeline_id_bigint.rb", scope="">453 uses one of the allowed migration classes454 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyForCiPipelineMessagesPipelineIdBigint", version=20230905061815, filename="db/migrate/20230905061815_add_foreign_key_for_ci_pipeline_messages_pipeline_id_bigint.rb", scope="">455 uses one of the allowed migration classes456 migration: #<struct ActiveRecord::MigrationProxy name="PrepareAsyncForeignKeyForCiPipelineMessagesPipelineIdBigint", version=20230905071915, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230905071915_prepare_async_foreign_key_for_ci_pipeline_messages_pipeline_id_bigint.rb", scope="">457 uses one of the allowed migration classes458 migration: #<struct ActiveRecord::MigrationProxy name="SyncIndexForCiStagesPipelineIdBigint", version=20230905091059, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230905091059_sync_index_for_ci_stages_pipeline_id_bigint.rb", scope="">459 uses one of the allowed migration classes460 migration: #<struct ActiveRecord::MigrationProxy name="AddPriorityToUserAchievements", version=20230905174639, filename="db/migrate/20230905174639_add_priority_to_user_achievements.rb", scope="">461 uses one of the allowed migration classes462 migration: #<struct ActiveRecord::MigrationProxy name="CreateProjectsVisitsTables", version=20230905234948, filename="db/migrate/20230905234948_create_projects_visits_tables.rb", scope="">463 uses one of the allowed migration classes464 migration: #<struct ActiveRecord::MigrationProxy name="CreateGroupsVisitsTables", version=20230905234949, filename="db/migrate/20230905234949_create_groups_visits_tables.rb", scope="">465 uses one of the allowed migration classes466 migration: #<struct ActiveRecord::MigrationProxy name="CreateAuditEventsAmazonS3Configurations", version=20230906072349, filename="db/migrate/20230906072349_create_audit_events_amazon_s3_configurations.rb", scope="">467 uses one of the allowed migration classes468 migration: #<struct ActiveRecord::MigrationProxy name="AddMetadataColumnsToPackagesPyPiMetadata", version=20230906100001, filename="db/migrate/20230906100001_add_metadata_columns_to_packages_py_pi_metadata.rb", scope="">469 uses one of the allowed migration classes470 migration: #<struct ActiveRecord::MigrationProxy name="SyncIndexForCiSourcesPipelinesPipelineIdBigint", version=20230906102738, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230906102738_sync_index_for_ci_sources_pipelines_pipeline_id_bigint.rb", scope="">471 uses one of the allowed migration classes472 migration: #<struct ActiveRecord::MigrationProxy name="AddAuditEventsAmazonS3ConfigurationLimitToPlanLimits", version=20230906105445, filename="db/migrate/20230906105445_add_audit_events_amazon_s3_configuration_limit_to_plan_limits.rb", scope="">473 uses one of the allowed migration classes474 migration: #<struct ActiveRecord::MigrationProxy name="AddCvssToVulnerabilities", version=20230906122405, filename="db/migrate/20230906122405_add_cvss_to_vulnerabilities.rb", scope="">475 uses one of the allowed migration classes476 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceSbomOccurrencesComponentIdIndex", version=20230906175220, filename="db/migrate/20230906175220_replace_sbom_occurrences_component_id_index.rb", scope="">477 uses one of the allowed migration classes478 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToViolationsOnTargetProjId", version=20230906181457, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230906181457_add_index_to_violations_on_target_proj_id.rb", scope="">479 uses one of the allowed migration classes480 migration: #<struct ActiveRecord::MigrationProxy name="AddMarkdownFieldsToReviewLlmSummary", version=20230906185552, filename="db/migrate/20230906185552_add_markdown_fields_to_review_llm_summary.rb", scope="">481 uses one of the allowed migration classes482 migration: #<struct ActiveRecord::MigrationProxy name="RestartSelfHostedSentNotificationsBigintConversion", version=20230906204934, filename="db/migrate/20230906204934_restart_self_hosted_sent_notifications_bigint_conversion.rb", scope="">483 uses one of the allowed migration classes484 migration: #<struct ActiveRecord::MigrationProxy name="RestartSelfHostedSentNotificationsBackfill", version=20230906204935, filename="db/migrate/20230906204935_restart_self_hosted_sent_notifications_backfill.rb", scope="">485 uses one of the allowed migration classes486 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToViolationsOnTargetProjIdSync", version=20230906215669, filename="db/migrate/20230906215669_add_index_to_violations_on_target_proj_id_sync.rb", scope="">487 uses one of the allowed migration classes488 migration: #<struct ActiveRecord::MigrationProxy name="SyncIndexForCiPipelinesPipelineIdBigint", version=20230907020936, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230907020936_sync_index_for_ci_pipelines_pipeline_id_bigint.rb", scope="">489 uses one of the allowed migration classes490 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillHasMergeRequestOfVulnerabilityReads", version=20230907155247, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230907155247_queue_backfill_has_merge_request_of_vulnerability_reads.rb", scope="">491 uses one of the allowed migration classes492 migration: #<struct ActiveRecord::MigrationProxy name="AddForceFullReconciliationToWorkspaces", version=20230907162613, filename="db/migrate/20230907162613_add_force_full_reconciliation_to_workspaces.rb", scope="">493 uses one of the allowed migration classes494 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToSbomOccurrencesLicenses", version=20230907204731, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230907204731_add_index_to_sbom_occurrences_licenses.rb", scope="">495 uses one of the allowed migration classes496 migration: #<struct ActiveRecord::MigrationProxy name="SwapColumnsForCiPipelineChatDataPipelineIdBigint", version=20230908033511, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230908033511_swap_columns_for_ci_pipeline_chat_data_pipeline_id_bigint.rb", scope="">497 uses one of the allowed migration classes498 migration: #<struct ActiveRecord::MigrationProxy name="ValidateForeignKeyForCiPipelineMessagesPipelineIdBigint", version=20230908065605, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230908065605_validate_foreign_key_for_ci_pipeline_messages_pipeline_id_bigint.rb", scope="">499 uses one of the allowed migration classes500 migration: #<struct ActiveRecord::MigrationProxy name="AnalyzePCiRunnerMachineBuilds", version=20230908072558, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230908072558_analyze_p_ci_runner_machine_builds.rb", scope="">501 uses one of the allowed migration classes502 migration: #<struct ActiveRecord::MigrationProxy name="AnalyzePCiJobAnnotations", version=20230908072612, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230908072612_analyze_p_ci_job_annotations.rb", scope="">503 uses one of the allowed migration classes504 migration: #<struct ActiveRecord::MigrationProxy name="AnalyzePCiBuildsMetadata", version=20230908072626, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230908072626_analyze_p_ci_builds_metadata.rb", scope="">505 uses one of the allowed migration classes506 migration: #<struct ActiveRecord::MigrationProxy name="AnalyzePCiBuilds", version=20230908072639, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230908072639_analyze_p_ci_builds.rb", scope="">507 uses one of the allowed migration classes508 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeBackfillDefaultBranchProtectionNamespaceSetting", version=20230908082627, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230908082627_finalize_backfill_default_branch_protection_namespace_setting.rb", scope="">509 uses one of the allowed migration classes510 migration: #<struct ActiveRecord::MigrationProxy name="AddContinuousVulnScansToggleToSecurityProjectSettings", version=20230908155831, filename="db/migrate/20230908155831_add_continuous_vuln_scans_toggle_to_security_project_settings.rb", scope="">511 uses one of the allowed migration classes512 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillWorkspacePersonalAccessToken", version=20230909120000, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230909120000_queue_backfill_workspace_personal_access_token.rb", scope="">513 uses one of the allowed migration classes514 migration: #<struct ActiveRecord::MigrationProxy name="QueueUpdateWorkspacesConfigVersion", version=20230910120000, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230910120000_queue_update_workspaces_config_version.rb", scope="">515 uses one of the allowed migration classes516 migration: #<struct ActiveRecord::MigrationProxy name="AddAdminMembersToMemberRole", version=20230910143103, filename="db/migrate/20230910143103_add_admin_members_to_member_role.rb", scope="">517 uses one of the allowed migration classes518 migration: #<struct ActiveRecord::MigrationProxy name="AddRootNamespaceIdToProjectStatistics", version=20230911095016, filename="db/migrate/20230911095016_add_root_namespace_id_to_project_statistics.rb", scope="">519 uses one of the allowed migration classes520 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillFindingIdInVulnerabilities", version=20230912105945, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230912105945_queue_backfill_finding_id_in_vulnerabilities.rb", scope="">521 uses one of the allowed migration classes522 migration: #<struct ActiveRecord::MigrationProxy name="CreateVSCodeSetting", version=20230912141430, filename="db/migrate/20230912141430_create_vscode_setting.rb", scope="">523 uses one of the allowed migration classes524 migration: #<struct ActiveRecord::MigrationProxy name="DeletePagesDomainWithReservedDomains", version=20230913071219, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230913071219_delete_pages_domain_with_reserved_domains.rb", scope="">525 uses one of the allowed migration classes526 migration: #<struct ActiveRecord::MigrationProxy name="CreateSupportingIndexForUuidTypeCasting", version=20230913100953, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230913100953_create_supporting_index_for_uuid_type_casting.rb", scope="">527 uses one of the allowed migration classes528 migration: #<struct ActiveRecord::MigrationProxy name="AddPreparedAtCreatedAtIndexAsync", version=20230913115113, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230913115113_add_prepared_at_created_at_index_async.rb", scope="">529 uses one of the allowed migration classes530 migration: #<struct ActiveRecord::MigrationProxy name="RemovePreparedAtCreatedAtIndexAsync", version=20230913120111, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230913120111_remove_prepared_at_created_at_index_async.rb", scope="">531 uses one of the allowed migration classes532 migration: #<struct ActiveRecord::MigrationProxy name="IndexOrgIdOnProjects", version=20230913130629, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230913130629_index_org_id_on_projects.rb", scope="">533 uses one of the allowed migration classes534 migration: #<struct ActiveRecord::MigrationProxy name="AddDeletedAtToPagesDeployments", version=20230913171402, filename="db/migrate/20230913171402_add_deleted_at_to_pages_deployments.rb", scope="">535 uses one of the allowed migration classes536 migration: #<struct ActiveRecord::MigrationProxy name="AddPagesDeploymentsDeletedAtIndex", version=20230913171403, filename="db/migrate/20230913171403_add_pages_deployments_deleted_at_index.rb", scope="">537 uses one of the allowed migration classes538 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnMergeRequestsTargetProjectIdAndMergedCommitSha", version=20230913175529, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230913175529_add_index_on_merge_requests_target_project_id_and_merged_commit_sha.rb", scope="">539 uses one of the allowed migration classes540 migration: #<struct ActiveRecord::MigrationProxy name="ChangeGeoNodeStatusesLastEventIdIntegerToBigInt", version=20230913235822, filename="db/migrate/20230913235822_change_geo_node_statuses_last_event_id_integer_to_big_int.rb", scope="">541 uses one of the allowed migration classes542 migration: #<struct ActiveRecord::MigrationProxy name="ChangeGeoNodeStatusesCursorLastEventIdIntegerToBigInt", version=20230914001329, filename="db/migrate/20230914001329_change_geo_node_statuses_cursor_last_event_id_integer_to_big_int.rb", scope="">543 uses one of the allowed migration classes544 migration: #<struct ActiveRecord::MigrationProxy name="IndexFindingIdForVulnerabilitiesSync", version=20230914054914, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230914054914_index_finding_id_for_vulnerabilities_sync.rb", scope="">545 uses one of the allowed migration classes546 migration: #<struct ActiveRecord::MigrationProxy name="SynchronouslyCreateIndexForUuidTypeCasting", version=20230914092224, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230914092224_synchronously_create_index_for_uuid_type_casting.rb", scope="">547 uses one of the allowed migration classes548 migration: #<struct ActiveRecord::MigrationProxy name="AddKeyboardShortcutsToggleToUserPreferences", version=20230914185814, filename="db/migrate/20230914185814_add_keyboard_shortcuts_toggle_to_user_preferences.rb", scope="">549 uses one of the allowed migration classes550 migration: #<struct ActiveRecord::MigrationProxy name="AddVulnerabilitiesToSbomOccurrences", version=20230915100513, filename="db/migrate/20230915100513_add_vulnerabilities_to_sbom_occurrences.rb", scope="">551 uses one of the allowed migration classes552 migration: #<struct ActiveRecord::MigrationProxy name="CreateCiFinishedBuildChSyncEvents", version=20230915103259, filename="db/migrate/20230915103259_create_ci_finished_build_ch_sync_events.rb", scope="">553 uses one of the allowed migration classes554 migration: #<struct ActiveRecord::MigrationProxy name="CreateScanResultPolicyViolations", version=20230915111914, filename="db/migrate/20230915111914_create_scan_result_policy_violations.rb", scope="">555 uses one of the allowed migration classes556 migration: #<struct ActiveRecord::MigrationProxy name="AddScanResultPolicyFkToScanResultPolicyViolations", version=20230915111915, filename="db/migrate/20230915111915_add_scan_result_policy_fk_to_scan_result_policy_violations.rb", scope="">557 uses one of the allowed migration classes558 migration: #<struct ActiveRecord::MigrationProxy name="AddMergeRequestFkToScanResultPolicyViolations", version=20230915111916, filename="db/migrate/20230915111916_add_merge_request_fk_to_scan_result_policy_violations.rb", scope="">559 uses one of the allowed migration classes560 migration: #<struct ActiveRecord::MigrationProxy name="AddProjectFkToScanResultPolicyViolations", version=20230915111917, filename="db/migrate/20230915111917_add_project_fk_to_scan_result_policy_violations.rb", scope="">561 uses one of the allowed migration classes562 migration: #<struct ActiveRecord::MigrationProxy name="AddPackageNamePatternQueryToPackagesProtectionRule", version=20230917144717, filename="db/migrate/20230917144717_add_package_name_pattern_query_to_packages_protection_rule.rb", scope="">563 uses one of the allowed migration classes564 migration: #<struct ActiveRecord::MigrationProxy name="DropColumnsFromGeoNodeStatusTable", version=20230918084159, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230918084159_drop_columns_from_geo_node_status_table.rb", scope="">565 uses one of the allowed migration classes566 migration: #<struct ActiveRecord::MigrationProxy name="AddCrossHierarchyEnabledToHierarchyRestrictions", version=20230918091159, filename="db/migrate/20230918091159_add_cross_hierarchy_enabled_to_hierarchy_restrictions.rb", scope="">567 uses one of the allowed migration classes568 migration: #<struct ActiveRecord::MigrationProxy name="AddMaxLoginAttemptsToApplicationSettings", version=20230918122420, filename="db/migrate/20230918122420_add_max_login_attempts_to_application_settings.rb", scope="">569 uses one of the allowed migration classes570 migration: #<struct ActiveRecord::MigrationProxy name="AddApplicationSettingsMaxLoginAttemptsConstraint", version=20230918122430, filename="db/migrate/20230918122430_add_application_settings_max_login_attempts_constraint.rb", scope="">571 uses one of the allowed migration classes572 migration: #<struct ActiveRecord::MigrationProxy name="AddFailedLoginAttemptsUnlockPeriodInMinutesToApplicationSettings", version=20230918122440, filename="db/migrate/20230918122440_add_failed_login_attempts_unlock_period_in_minutes_to_application_settings.rb", scope="">573 uses one of the allowed migration classes574 migration: #<struct ActiveRecord::MigrationProxy name="AddApplicationSettingsFailedLoginAttemptsUnlockPeriodInMinutesConstraint", version=20230918122450, filename="db/migrate/20230918122450_add_application_settings_failed_login_attempts_unlock_period_in_minutes_constraint.rb", scope="">575 uses one of the allowed migration classes576 migration: #<struct ActiveRecord::MigrationProxy name="AddSprintIdAndWeightToVsaIssues", version=20230918123357, filename="db/migrate/20230918123357_add_sprint_id_and_weight_to_vsa_issues.rb", scope="">577 uses one of the allowed migration classes578 migration: #<struct ActiveRecord::MigrationProxy name="FinalizeBackfillWorkspacePersonalAccessToken", version=20230918143333, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230918143333_finalize_backfill_workspace_personal_access_token.rb", scope="">579 uses one of the allowed migration classes580 migration: #<struct ActiveRecord::MigrationProxy name="AddNotNullConstraintPersonalAccessTokenInWorkspaces", version=20230918145641, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230918145641_add_not_null_constraint_personal_access_token_in_workspaces.rb", scope="">581 uses one of the allowed migration classes582 migration: #<struct ActiveRecord::MigrationProxy name="AddMergeImmediatelyToCiCdSettings", version=20230918194153, filename="db/migrate/20230918194153_add_merge_immediately_to_ci_cd_settings.rb", scope="">583 uses one of the allowed migration classes584 migration: #<struct ActiveRecord::MigrationProxy name="AddContainerRegistryDbEnabledToApplicationSettings", version=20230919123305, filename="db/migrate/20230919123305_add_container_registry_db_enabled_to_application_settings.rb", scope="">585 uses one of the allowed migration classes586 migration: #<struct ActiveRecord::MigrationProxy name="AddCiJobArtifactsFileFinalPathIndexSynchronously", version=20230920122059, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230920122059_add_ci_job_artifacts_file_final_path_index_synchronously.rb", scope="">587 uses one of the allowed migration classes588 migration: #<struct ActiveRecord::MigrationProxy name="AddLastAssignedUsersRefreshedAtToSubscriptionAddOnPurchases", version=20230920153321, filename="db/migrate/20230920153321_add_last_assigned_users_refreshed_at_to_subscription_add_on_purchases.rb", scope="">589 uses one of the allowed migration classes590 migration: #<struct ActiveRecord::MigrationProxy name="ChangeEpicsHierarchyRestrictions", version=20230920154302, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230920154302_change_epics_hierarchy_restrictions.rb", scope="">591 uses one of the allowed migration classes592 migration: #<struct ActiveRecord::MigrationProxy name="AddForceIncludeAllResourcesToWorkspaces", version=20230920162613, filename="db/migrate/20230920162613_add_force_include_all_resources_to_workspaces.rb", scope="">593 uses one of the allowed migration classes594 migration: #<struct ActiveRecord::MigrationProxy name="AddQueuedMigrationVersionToBatchedBackgroundMigrations", version=20230921081527, filename="db/migrate/20230921081527_add_queued_migration_version_to_batched_background_migrations.rb", scope="">595 uses one of the allowed migration classes596 migration: #<struct ActiveRecord::MigrationProxy name="AddLimitToQueuedMigrationVersionInBatchedBackgroundMigrations", version=20230921082223, filename="db/migrate/20230921082223_add_limit_to_queued_migration_version_in_batched_background_migrations.rb", scope="">597 uses one of the allowed migration classes598 migration: #<struct ActiveRecord::MigrationProxy name="AddLatestReleasedAtToCatalogResources", version=20230922004506, filename="db/migrate/20230922004506_add_latest_released_at_to_catalog_resources.rb", scope="">599 uses one of the allowed migration classes600 migration: #<struct ActiveRecord::MigrationProxy name="EnsureBackfillForSharedRunnersDurationIsFinished", version=20230923094438, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230923094438_ensure_backfill_for_shared_runners_duration_is_finished.rb", scope="">601 uses one of the allowed migration classes602 migration: #<struct ActiveRecord::MigrationProxy name="SwapColumnsForCiProjectMonthlyUsagesSharedRunnersDuration", version=20230924095357, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230924095357_swap_columns_for_ci_project_monthly_usages_shared_runners_duration.rb", scope="">603 uses one of the allowed migration classes604 migration: #<struct ActiveRecord::MigrationProxy name="CleanupUuidTypeMigrationOnVulnerabilityOccurrences", version=20230924134453, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230924134453_cleanup_uuid_type_migration_on_vulnerability_occurrences.rb", scope="">605 uses one of the allowed migration classes606 migration: #<struct ActiveRecord::MigrationProxy name="DropTemporaryIndexOnUuidForTypeMigration", version=20230924154419, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230924154419_drop_temporary_index_on_uuid_for_type_migration.rb", scope="">607 uses one of the allowed migration classes608 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyForCiPipelinesPipelineIdBigint", version=20230925024201, filename="db/migrate/20230925024201_add_foreign_key_for_ci_pipelines_pipeline_id_bigint.rb", scope="">609 uses one of the allowed migration classes610 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyForCiStagesPipelineIdBigint", version=20230925062516, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230925062516_add_foreign_key_for_ci_stages_pipeline_id_bigint.rb", scope="">611 uses one of the allowed migration classes612 migration: #<struct ActiveRecord::MigrationProxy name="AsyncValidateForeignKeyForCiStagesPipelineIdBigint", version=20230925062800, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230925062800_async_validate_foreign_key_for_ci_stages_pipeline_id_bigint.rb", scope="">613 uses one of the allowed migration classes614 migration: #<struct ActiveRecord::MigrationProxy name="RemoveDeprecatedDeleteContainerRepositoryWorkerJobInstances", version=20230925095300, filename="db/migrate/20230925095300_remove_deprecated_delete_container_repository_worker_job_instances.rb", scope="">615 uses one of the allowed migration classes616 migration: #<struct ActiveRecord::MigrationProxy name="SwapColumnsForCiNamespaceMonthlyUsagesSharedRunnersDuration", version=20230925095357, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230925095357_swap_columns_for_ci_namespace_monthly_usages_shared_runners_duration.rb", scope="">617 uses one of the allowed migration classes618 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnOkrReminderFrequency", version=20230925170448, filename="db/migrate/20230925170448_add_index_on_okr_reminder_frequency.rb", scope="">619 uses one of the allowed migration classes620 migration: #<struct ActiveRecord::MigrationProxy name="AsyncValidateForeignKeyForCiPipelinesPipelineIdBigint", version=20230926024201, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230926024201_async_validate_foreign_key_for_ci_pipelines_pipeline_id_bigint.rb", scope="">621 uses one of the allowed migration classes622 migration: #<struct ActiveRecord::MigrationProxy name="AddForeignKeyForCiSourcesPipelinesPipelineIdBigint", version=20230926040722, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230926040722_add_foreign_key_for_ci_sources_pipelines_pipeline_id_bigint.rb", scope="">623 uses one of the allowed migration classes624 migration: #<struct ActiveRecord::MigrationProxy name="AsyncValidateForeignKeyForCiSourcesPipelinesPipelineIdBigint", version=20230926040755, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230926040755_async_validate_foreign_key_for_ci_sources_pipelines_pipeline_id_bigint.rb", scope="">625 uses one of the allowed migration classes626 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexToAddOnPurchasesOnLastAssignedUsersRefreshedAtAndAddOnId", version=20230926105908, filename="db/migrate/20230926105908_add_index_to_add_on_purchases_on_last_assigned_users_refreshed_at_and_add_on_id.rb", scope="">627 uses one of the allowed migration classes628 migration: #<struct ActiveRecord::MigrationProxy name="RemoveApplicationSettingsAiAccessTokenColumn", version=20230926113518, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230926113518_remove_application_settings_ai_access_token_column.rb", scope="">629 uses one of the allowed migration classes630 migration: #<struct ActiveRecord::MigrationProxy name="AddVertexAiAccessTokenToApplicationSettings", version=20230926115744, filename="db/migrate/20230926115744_add_vertex_ai_access_token_to_application_settings.rb", scope="">631 uses one of the allowed migration classes632 migration: #<struct ActiveRecord::MigrationProxy name="CreateValueStreamAnalyticsSettings", version=20230926133801, filename="db/migrate/20230926133801_create_value_stream_analytics_settings.rb", scope="">633 uses one of the allowed migration classes634 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexNamespacesOnTypeAndVisibilityAndParentId", version=20230926201357, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230926201357_drop_index_namespaces_on_type_and_visibility_and_parent_id.rb", scope="">635 uses one of the allowed migration classes636 migration: #<struct ActiveRecord::MigrationProxy name="AsyncIdxVulnerabilityOccurencesOnPrimIdenId", version=20230927045103, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230927045103_async_idx_vulnerability_occurences_on_prim_iden_id.rb", scope="">637 uses one of the allowed migration classes638 migration: #<struct ActiveRecord::MigrationProxy name="AddMastodonToUserDetails", version=20230927124202, filename="db/migrate/20230927124202_add_mastodon_to_user_details.rb", scope="">639 uses one of the allowed migration classes640 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnPagesDeploymentsDeletedAt", version=20230927141237, filename="db/migrate/20230927141237_add_index_on_pages_deployments_deleted_at.rb", scope="">641 uses one of the allowed migration classes642 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexNamespacesOnRunnersToken", version=20230928024357, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230928024357_drop_index_namespaces_on_runners_token.rb", scope="">643 uses one of the allowed migration classes644 migration: #<struct ActiveRecord::MigrationProxy name="AddApplicablePostMergeColumnToMrApprovalRules", version=20230928073320, filename="db/migrate/20230928073320_add_applicable_post_merge_column_to_mr_approval_rules.rb", scope="">645 uses one of the allowed migration classes646 migration: #<struct ActiveRecord::MigrationProxy name="SyncForeignKeyForCiStagesPipelineIdBigint", version=20230928104015, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230928104015_sync_foreign_key_for_ci_stages_pipeline_id_bigint.rb", scope="">647 uses one of the allowed migration classes648 migration: #<struct ActiveRecord::MigrationProxy name="SyncForeignKeyForCiSourcesPipelinesPipelineIdBigint", version=20230929063124, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230929063124_sync_foreign_key_for_ci_sources_pipelines_pipeline_id_bigint.rb", scope="">649 uses one of the allowed migration classes650 migration: #<struct ActiveRecord::MigrationProxy name="SyncForeignKeyForCiSourcesPipelinesSourcePipelineIdBigint", version=20230929063406, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230929063406_sync_foreign_key_for_ci_sources_pipelines_source_pipeline_id_bigint.rb", scope="">651 uses one of the allowed migration classes652 migration: #<struct ActiveRecord::MigrationProxy name="DropApplicationSettingsProductAnalyticsClusterSettings", version=20230929095008, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230929095008_drop_application_settings_product_analytics_cluster_settings.rb", scope="">653 uses one of the allowed migration classes654 migration: #<struct ActiveRecord::MigrationProxy name="DropProjectSettingsProductAnalyticsClusterSettings", version=20230929095728, filename="/builds/gitlab-org/gitlab/db/post_migrate/20230929095728_drop_project_settings_product_analytics_cluster_settings.rb", scope="">655 uses one of the allowed migration classes656 migration: #<struct ActiveRecord::MigrationProxy name="AddMathRenderingLimitsEnabled", version=20230929151451, filename="db/migrate/20230929151451_add_math_rendering_limits_enabled.rb", scope="">657 uses one of the allowed migration classes658 migration: #<struct ActiveRecord::MigrationProxy name="AddRelatedLinkRestrictions", version=20230930094139, filename="db/migrate/20230930094139_add_related_link_restrictions.rb", scope="">659 uses one of the allowed migration classes660 migration: #<struct ActiveRecord::MigrationProxy name="RequeueBackfillFindingIdInVulnerabilities", version=20231001105945, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231001105945_requeue_backfill_finding_id_in_vulnerabilities.rb", scope="">661 uses one of the allowed migration classes662 migration: #<struct ActiveRecord::MigrationProxy name="PrepareRemovalIndexDeploymentsOnProjectIdAndRef", version=20231002023318, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231002023318_prepare_removal_index_deployments_on_project_id_and_ref.rb", scope="">663 uses one of the allowed migration classes664 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexBtreeNamespacesTraversalIds", version=20231003003241, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231003003241_drop_index_btree_namespaces_traversal_ids.rb", scope="">665 uses one of the allowed migration classes666 migration: #<struct ActiveRecord::MigrationProxy name="SyncForeignKeyForCiPipelinesAutoCanceledByIdBigint", version=20231003034711, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231003034711_sync_foreign_key_for_ci_pipelines_auto_canceled_by_id_bigint.rb", scope="">667 uses one of the allowed migration classes668 migration: #<struct ActiveRecord::MigrationProxy name="CreateAbuseReportUserMentions", version=20231003073437, filename="db/migrate/20231003073437_create_abuse_report_user_mentions.rb", scope="">669 uses one of the allowed migration classes670 migration: #<struct ActiveRecord::MigrationProxy name="AddAbuseReportsForeignKeyToAbuseReportUserMentions", version=20231003073505, filename="db/migrate/20231003073505_add_abuse_reports_foreign_key_to_abuse_report_user_mentions.rb", scope="">671 uses one of the allowed migration classes672 migration: #<struct ActiveRecord::MigrationProxy name="AddNotesForeignKeyToAbuseReportUserMentions", version=20231003073526, filename="db/migrate/20231003073526_add_notes_foreign_key_to_abuse_report_user_mentions.rb", scope="">673 uses one of the allowed migration classes674 migration: #<struct ActiveRecord::MigrationProxy name="SwapColumnsForCiPipelineMessagesPipelineIdBigint", version=20231003083900, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231003083900_swap_columns_for_ci_pipeline_messages_pipeline_id_bigint.rb", scope="">675 uses one of the allowed migration classes676 migration: #<struct ActiveRecord::MigrationProxy name="AddBuildTimeoutIndex", version=20231003142534, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231003142534_add_build_timeout_index.rb", scope="">677 uses one of the allowed migration classes678 migration: #<struct ActiveRecord::MigrationProxy name="LowerProjectBuildTimeoutToRespectMaxValidation", version=20231003142706, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231003142706_lower_project_build_timeout_to_respect_max_validation.rb", scope="">679 uses one of the allowed migration classes680 migration: #<struct ActiveRecord::MigrationProxy name="RemoveBuildTimeoutIndex", version=20231003145757, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231003145757_remove_build_timeout_index.rb", scope="">681 uses one of the allowed migration classes682 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexForGroupVulnerabilitiesAysnc", version=20231004053341, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231004053341_add_index_for_group_vulnerabilities_aysnc.rb", scope="">683 uses one of the allowed migration classes684 migration: #<struct ActiveRecord::MigrationProxy name="SwapColumnsForCiStagesPipelineIdBigint", version=20231004080224, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231004080224_swap_columns_for_ci_stages_pipeline_id_bigint.rb", scope="">685 uses one of the allowed migration classes686 migration: #<struct ActiveRecord::MigrationProxy name="SwapColumnsForCiSourcesPipelinesPipelineIdBigint", version=20231004091113, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231004091113_swap_columns_for_ci_sources_pipelines_pipeline_id_bigint.rb", scope="">687 uses one of the allowed migration classes688 migration: #<struct ActiveRecord::MigrationProxy name="CreateContainerRegistryProtectionRules", version=20231004100000, filename="db/migrate/20231004100000_create_container_registry_protection_rules.rb", scope="">689 uses one of the allowed migration classes690 migration: #<struct ActiveRecord::MigrationProxy name="ChangeWorkspacesForceIncludeAllResourcesDefault", version=20231004120426, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231004120426_change_workspaces_force_include_all_resources_default.rb", scope="">691 uses one of the allowed migration classes692 migration: #<struct ActiveRecord::MigrationProxy name="AddWorkItemsRelatedLinkRestrictions", version=20231005131445, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231005131445_add_work_items_related_link_restrictions.rb", scope="">693 uses one of the allowed migration classes694 migration: #<struct ActiveRecord::MigrationProxy name="AddUuidAndVersionToVsCodeSetting", version=20231005145648, filename="db/migrate/20231005145648_add_uuid_and_version_to_vs_code_setting.rb", scope="">695 uses one of the allowed migration classes696 migration: #<struct ActiveRecord::MigrationProxy name="ReplaceValueStreamProjectIdsFilterConstraint", version=20231006154748, filename="db/migrate/20231006154748_replace_value_stream_project_ids_filter_constraint.rb", scope="">697 uses one of the allowed migration classes698 migration: #<struct ActiveRecord::MigrationProxy name="AddHolderNameHashIndexOnCreditCardValidations", version=20231009104202, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231009104202_add_holder_name_hash_index_on_credit_card_validations.rb", scope="">699 uses one of the allowed migration classes700 migration: #<struct ActiveRecord::MigrationProxy name="AddPartialMatchIndexOfHashesOnCreditCardValidations", version=20231009104325, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231009104325_add_partial_match_index_of_hashes_on_credit_card_validations.rb", scope="">701 uses one of the allowed migration classes702 migration: #<struct ActiveRecord::MigrationProxy name="IndexUsersOnEmailDomainAndId", version=20231009105056, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231009105056_index_users_on_email_domain_and_id.rb", scope="">703 uses one of the allowed migration classes704 migration: #<struct ActiveRecord::MigrationProxy name="AddDuplicateIndexRuleTypeFourAndApplicableColumn", version=20231009115743, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231009115743_add_duplicate_index_rule_type_four_and_applicable_column.rb", scope="">705 uses one of the allowed migration classes706 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexDeploymentsOnProjectIdAndRef", version=20231010011850, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231010011850_drop_index_deployments_on_project_id_and_ref.rb", scope="">707 uses one of the allowed migration classes708 migration: #<struct ActiveRecord::MigrationProxy name="ChangePushProtectedUpToAccessLevelToSmallintInPackagesProtectionRules", version=20231010101246, filename="db/migrate/20231010101246_change_push_protected_up_to_access_level_to_smallint_in_packages_protection_rules.rb", scope="">709 uses one of the allowed migration classes710 migration: #<struct ActiveRecord::MigrationProxy name="QueueBackfillHasRemediationsOfVulnerabilityReads", version=20231011142714, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231011142714_queue_backfill_has_remediations_of_vulnerability_reads.rb", scope="">711 uses one of the allowed migration classes712 migration: #<struct ActiveRecord::MigrationProxy name="AddExternalParticipantsFromCcToServiceDeskSettings", version=20231011150241, filename="db/migrate/20231011150241_add_external_participants_from_cc_to_service_desk_settings.rb", scope="">713 uses one of the allowed migration classes714 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexNamespacesOnUpdatedAt", version=20231011200058, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231011200058_drop_index_namespaces_on_updated_at.rb", scope="">715 uses one of the allowed migration classes716 migration: #<struct ActiveRecord::MigrationProxy name="SyncRemoveIndexEventsOnAuthorId", version=20231011232010, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231011232010_sync_remove_index_events_on_author_id.rb", scope="">717 uses one of the allowed migration classes718 migration: #<struct ActiveRecord::MigrationProxy name="ChangeIndexOnGpgKeyIdOfGpgSignatures", version=20231012161226, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231012161226_change_index_on_gpg_key_id_of_gpg_signatures.rb", scope="">719 uses one of the allowed migration classes720 migration: #<struct ActiveRecord::MigrationProxy name="IndexStoppingEnvironmentsOnUpdatedAt", version=20231012180342, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231012180342_index_stopping_environments_on_updated_at.rb", scope="">721 uses one of the allowed migration classes722 migration: #<struct ActiveRecord::MigrationProxy name="SwapColumnsForCiPipelinesPipelineIdBigint", version=20231013031159, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231013031159_swap_columns_for_ci_pipelines_pipeline_id_bigint.rb", scope="">723 uses one of the allowed migration classes724 migration: #<struct ActiveRecord::MigrationProxy name="AddTaskRequestAttributesToZoektShards", version=20231013135216, filename="db/migrate/20231013135216_add_task_request_attributes_to_zoekt_shards.rb", scope="">725 uses one of the allowed migration classes726 migration: #<struct ActiveRecord::MigrationProxy name="DropMemberTasksTable", version=20231013174138, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231013174138_drop_member_tasks_table.rb", scope="">727 uses one of the allowed migration classes728 migration: #<struct ActiveRecord::MigrationProxy name="RemoveTempIndexForProjectStatisticsPipelineArtifactsSizeMigration", version=20231013181758, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231013181758_remove_temp_index_for_project_statistics_pipeline_artifacts_size_migration.rb", scope="">729 uses one of the allowed migration classes730 migration: #<struct ActiveRecord::MigrationProxy name="CreateIndexVulnerabilityProjectIdAndOnIdSync", version=20231014081832, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231014081832_create_index_vulnerability_project_id_and_on_id_sync.rb", scope="">731 uses one of the allowed migration classes732 migration: #<struct ActiveRecord::MigrationProxy name="AddManageProjectAccessTokensToMemberRoles", version=20231015111533, filename="db/migrate/20231015111533_add_manage_project_access_tokens_to_member_roles.rb", scope="">733 uses one of the allowed migration classes734 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForNotesForSelfManaged", version=20231015225919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231015225919_cleanup_bigint_conversion_for_notes_for_self_managed.rb", scope="">735 uses one of the allowed migration classes736 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForTodosForSelfManaged", version=20231015230919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231015230919_cleanup_bigint_conversion_for_todos_for_self_managed.rb", scope="">737 uses one of the allowed migration classes738 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForSystemNoteMetadataForSelfManaged", version=20231015231919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231015231919_cleanup_bigint_conversion_for_system_note_metadata_for_self_managed.rb", scope="">739 uses one of the allowed migration classes740 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForEpicUserMentionsForSelfManaged", version=20231015232919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231015232919_cleanup_bigint_conversion_for_epic_user_mentions_for_self_managed.rb", scope="">741 uses one of the allowed migration classes742 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForSuggestionsForSelfManaged", version=20231015233919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231015233919_cleanup_bigint_conversion_for_suggestions_for_self_managed.rb", scope="">743 uses one of the allowed migration classes744 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForIssueUserMentionsForSelfManaged", version=20231015234919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231015234919_cleanup_bigint_conversion_for_issue_user_mentions_for_self_managed.rb", scope="">745 uses one of the allowed migration classes746 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForNoteDiffFilesForSelfManaged", version=20231015235919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231015235919_cleanup_bigint_conversion_for_note_diff_files_for_self_managed.rb", scope="">747 uses one of the allowed migration classes748 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForSnippetUserMentionsForSelfManaged", version=20231016000919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231016000919_cleanup_bigint_conversion_for_snippet_user_mentions_for_self_managed.rb", scope="">749 uses one of the allowed migration classes750 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForDesignUserMentionsForSelfManaged", version=20231016001919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231016001919_cleanup_bigint_conversion_for_design_user_mentions_for_self_managed.rb", scope="">751 uses one of the allowed migration classes752 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForVulnerabilityUserMentionsForSelfManaged", version=20231016002919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231016002919_cleanup_bigint_conversion_for_vulnerability_user_mentions_for_self_managed.rb", scope="">753 uses one of the allowed migration classes754 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForCommitUserMentionsForSelfManaged", version=20231016003919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231016003919_cleanup_bigint_conversion_for_commit_user_mentions_for_self_managed.rb", scope="">755 uses one of the allowed migration classes756 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForMergeRequestUserMentionsForSelfManaged", version=20231016004919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231016004919_cleanup_bigint_conversion_for_merge_request_user_mentions_for_self_managed.rb", scope="">757 uses one of the allowed migration classes758 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForTimelogsForSelfManaged", version=20231016005919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231016005919_cleanup_bigint_conversion_for_timelogs_for_self_managed.rb", scope="">759 uses one of the allowed migration classes760 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForAwardEmojiForSelfManaged", version=20231016010919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231016010919_cleanup_bigint_conversion_for_award_emoji_for_self_managed.rb", scope="">761 uses one of the allowed migration classes762 migration: #<struct ActiveRecord::MigrationProxy name="CleanupBigintConversionForEventsForSelfManaged", version=20231016011919, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231016011919_cleanup_bigint_conversion_for_events_for_self_managed.rb", scope="">763 uses one of the allowed migration classes764 migration: #<struct ActiveRecord::MigrationProxy name="RemoveUsersProjectsCreatorIdFk", version=20231016100238, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231016100238_remove_users_projects_creator_id_fk.rb", scope="">765 uses one of the allowed migration classes766 migration: #<struct ActiveRecord::MigrationProxy name="RemoveUsersProjectsMarkedForDeletionByUserIdFk", version=20231016101611, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231016101611_remove_users_projects_marked_for_deletion_by_user_id_fk.rb", scope="">767 uses one of the allowed migration classes768 migration: #<struct ActiveRecord::MigrationProxy name="RemoveRelayStateDomainAllowlistApplicationSettings", version=20231017055853, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231017055853_remove_relay_state_domain_allowlist_application_settings.rb", scope="">769 uses one of the allowed migration classes770 migration: #<struct ActiveRecord::MigrationProxy name="RemoveRelayStateDomainAllowlistSamlProvider", version=20231017060037, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231017060037_remove_relay_state_domain_allowlist_saml_provider.rb", scope="">771 uses one of the allowed migration classes772 migration: #<struct ActiveRecord::MigrationProxy name="SwapColumnsForCiPipelineVariablesPipelineIdBigint", version=20231017064317, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231017064317_swap_columns_for_ci_pipeline_variables_pipeline_id_bigint.rb", scope="">773 uses one of the allowed migration classes774 migration: #<struct ActiveRecord::MigrationProxy name="CreateActivityPubReleasesSubscriptions", version=20231017095738, filename="db/migrate/20231017095738_create_activity_pub_releases_subscriptions.rb", scope="">775 uses one of the allowed migration classes776 migration: #<struct ActiveRecord::MigrationProxy name="AddAutoCanceledByPartitionIdToPCiBuilds", version=20231017114131, filename="db/migrate/20231017114131_add_auto_canceled_by_partition_id_to_p_ci_builds.rb", scope="">777 uses one of the allowed migration classes778 migration: #<struct ActiveRecord::MigrationProxy name="AddIndexOnProjectsForAdjournedDeletion", version=20231017172156, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231017172156_add_index_on_projects_for_adjourned_deletion.rb", scope="">779 uses one of the allowed migration classes780 migration: #<struct ActiveRecord::MigrationProxy name="RedropMemberTasksTable", version=20231017184446, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231017184446_redrop_member_tasks_table.rb", scope="">781 uses one of the allowed migration classes782 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexNamespacesOnSharedAndExtraRunnersMinutesLimit", version=20231018093625, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231018093625_drop_index_namespaces_on_shared_and_extra_runners_minutes_limit.rb", scope="">783 uses one of the allowed migration classes784 migration: #<struct ActiveRecord::MigrationProxy name="DropIndexNamespacesOnLdapSyncLastUpdateAt", version=20231018100907, filename="/builds/gitlab-org/gitlab/db/post_migrate/20231018100907_drop_index_namespaces_on_ldap_sync_last_update_at.rb", scope="">785 uses one of the allowed migration classes786 migration: #<struct ActiveRecord::MigrationProxy name="RemoveHashedStorageMigrationWorkersJobInstances", version=20231018140154, filename="db/migrate/20231018140154_remove_hashed_storage_migration_workers_job_instances.rb", scope="">787 uses one of the allowed migration classes788 migration: #<struct ActiveRecord::MigrationProxy name="AddSemverIndexCiRunnerMachines", version=20231019122855, filename="db/migrate/20231019122855_add_semver_index_ci_runner_machines.rb", scope="">789 uses one of the allowed migration classes790Gitlab::Metrics::Subscribers::ActiveRecord791 .load_balancing_metric_counter_keys792 multiple databases793 has expected keys794 single database795 has expected keys (PENDING: Skipping because some of the extra databases [:ci, :main_clusterwide] are setup)796 does not have ci keys (PENDING: Skipping because some of the extra databases [:ci, :main_clusterwide] are setup)797 .load_balancing_metric_duration_keys798 multiple databases799 has expected keys800 single database801 has expected keys (PENDING: Skipping because some of the extra databases [:ci, :main_clusterwide] are setup)802 does not have ci keys (PENDING: Skipping because some of the extra databases [:ci, :main_clusterwide] are setup)803 #transaction804 when both web and background transaction are available805 captures the metrics for web only806 when web transaction is available807 captures the metrics for web only808 when background transaction is available809 captures the metrics for web only810 #sql811 without Marginalia comments812 behaves like track generic sql events813 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: false814 marks the current thread as using the database815 behaves like record ActiveRecord metrics816 when both web and background transaction are available817 captures the metrics for web only818 behaves like record ActiveRecord metrics in a metrics transaction819 increments only db counters820 observes sql_duration metric821 when web transaction is available822 behaves like record ActiveRecord metrics in a metrics transaction823 increments only db counters824 observes sql_duration metric825 when background transaction is available826 behaves like record ActiveRecord metrics in a metrics transaction827 increments only db counters828 observes sql_duration metric829 behaves like store ActiveRecord info in RequestStore830 prevents db counters from leaking to the next transaction831 name: "SQL", sql_query: "WITH active_milestones AS (SELECT COUNT(*), state FROM milestones GROUP BY state) SELECT * FROM active_milestones", record_query: true, record_write_query: false, record_cached_query: false832 marks the current thread as using the database833 behaves like record ActiveRecord metrics834 when both web and background transaction are available835 captures the metrics for web only836 behaves like record ActiveRecord metrics in a metrics transaction837 increments only db counters838 observes sql_duration metric839 when web transaction is available840 behaves like record ActiveRecord metrics in a metrics transaction841 increments only db counters842 observes sql_duration metric843 when background transaction is available844 behaves like record ActiveRecord metrics in a metrics transaction845 increments only db counters846 observes sql_duration metric847 behaves like store ActiveRecord info in RequestStore848 prevents db counters from leaking to the next transaction849 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10 FOR UPDATE", record_query: true, record_write_query: true, record_cached_query: false850 marks the current thread as using the database851 behaves like record ActiveRecord metrics852 when both web and background transaction are available853 captures the metrics for web only854 behaves like record ActiveRecord metrics in a metrics transaction855 increments only db counters856 observes sql_duration metric857 when web transaction is available858 behaves like record ActiveRecord metrics in a metrics transaction859 increments only db counters860 observes sql_duration metric861 when background transaction is available862 behaves like record ActiveRecord metrics in a metrics transaction863 increments only db counters864 observes sql_duration metric865 behaves like store ActiveRecord info in RequestStore866 prevents db counters from leaking to the next transaction867 name: "SQL", sql_query: "WITH archived_rows AS (SELECT * FROM users WHERE archived = true) INSERT INTO products_log SELECT * FROM archived_rows", record_query: true, record_write_query: true, record_cached_query: false868 marks the current thread as using the database869 behaves like record ActiveRecord metrics870 when both web and background transaction are available871 captures the metrics for web only872 behaves like record ActiveRecord metrics in a metrics transaction873 increments only db counters874 observes sql_duration metric875 when web transaction is available876 behaves like record ActiveRecord metrics in a metrics transaction877 increments only db counters878 observes sql_duration metric879 when background transaction is available880 behaves like record ActiveRecord metrics in a metrics transaction881 increments only db counters882 observes sql_duration metric883 behaves like store ActiveRecord info in RequestStore884 prevents db counters from leaking to the next transaction885 name: "SQL", sql_query: "DELETE FROM users where id = 10", record_query: true, record_write_query: true, record_cached_query: false886 marks the current thread as using the database887 behaves like record ActiveRecord metrics888 when both web and background transaction are available889 captures the metrics for web only890 behaves like record ActiveRecord metrics in a metrics transaction891 increments only db counters892 observes sql_duration metric893 when web transaction is available894 behaves like record ActiveRecord metrics in a metrics transaction895 increments only db counters896 observes sql_duration metric897 when background transaction is available898 behaves like record ActiveRecord metrics in a metrics transaction899 increments only db counters900 observes sql_duration metric901 behaves like store ActiveRecord info in RequestStore902 prevents db counters from leaking to the next transaction903 name: "SQL", sql_query: "INSERT INTO project_ci_cd_settings (project_id) SELECT id FROM projects", record_query: true, record_write_query: true, record_cached_query: false904 marks the current thread as using the database905 behaves like record ActiveRecord metrics906 when both web and background transaction are available907 captures the metrics for web only908 behaves like record ActiveRecord metrics in a metrics transaction909 increments only db counters910 observes sql_duration metric911 when web transaction is available912 behaves like record ActiveRecord metrics in a metrics transaction913 increments only db counters914 observes sql_duration metric915 when background transaction is available916 behaves like record ActiveRecord metrics in a metrics transaction917 increments only db counters918 observes sql_duration metric919 behaves like store ActiveRecord info in RequestStore920 prevents db counters from leaking to the next transaction921 name: "SQL", sql_query: "UPDATE users SET admin = true WHERE id = 10", record_query: true, record_write_query: true, record_cached_query: false922 marks the current thread as using the database923 behaves like record ActiveRecord metrics924 when both web and background transaction are available925 captures the metrics for web only926 behaves like record ActiveRecord metrics in a metrics transaction927 increments only db counters928 observes sql_duration metric929 when web transaction is available930 behaves like record ActiveRecord metrics in a metrics transaction931 increments only db counters932 observes sql_duration metric933 when background transaction is available934 behaves like record ActiveRecord metrics in a metrics transaction935 increments only db counters936 observes sql_duration metric937 behaves like store ActiveRecord info in RequestStore938 prevents db counters from leaking to the next transaction939 name: "CACHE", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: true940 marks the current thread as using the database941 behaves like record ActiveRecord metrics942 when both web and background transaction are available943 captures the metrics for web only944 behaves like record ActiveRecord metrics in a metrics transaction945 increments only db counters946 observes sql_duration metric947 when web transaction is available948 behaves like record ActiveRecord metrics in a metrics transaction949 increments only db counters950 observes sql_duration metric951 when background transaction is available952 behaves like record ActiveRecord metrics in a metrics transaction953 increments only db counters954 observes sql_duration metric955 behaves like store ActiveRecord info in RequestStore956 prevents db counters from leaking to the next transaction957 name: "SCHEMA", sql_query: "SELECT attr.attname FROM pg_attribute attr INNER JOIN pg_constraint cons ON attr.attrelid = cons.conrelid AND attr.attnum = any(cons.conkey) WHERE cons.contype = 'p' AND cons.conrelid = '\"projects\"'::regclass", record_query: false, record_write_query: false, record_cached_query: false958 marks the current thread as using the database959 behaves like record ActiveRecord metrics960 when both web and background transaction are available961 captures the metrics for web only962 behaves like record ActiveRecord metrics in a metrics transaction963 increments only db counters964 observes sql_duration metric965 when web transaction is available966 behaves like record ActiveRecord metrics in a metrics transaction967 increments only db counters968 observes sql_duration metric969 when background transaction is available970 behaves like record ActiveRecord metrics in a metrics transaction971 increments only db counters972 observes sql_duration metric973 behaves like store ActiveRecord info in RequestStore974 prevents db counters from leaking to the next transaction975 name: "TRANSACTION", sql_query: "BEGIN", record_query: false, record_write_query: false, record_cached_query: false976 marks the current thread as using the database977 behaves like record ActiveRecord metrics978 when both web and background transaction are available979 captures the metrics for web only980 behaves like record ActiveRecord metrics in a metrics transaction981 increments only db counters982 observes sql_duration metric983 when web transaction is available984 behaves like record ActiveRecord metrics in a metrics transaction985 increments only db counters986 observes sql_duration metric987 when background transaction is available988 behaves like record ActiveRecord metrics in a metrics transaction989 increments only db counters990 observes sql_duration metric991 behaves like store ActiveRecord info in RequestStore992 prevents db counters from leaking to the next transaction993 name: "TRANSACTION", sql_query: "COMMIT", record_query: false, record_write_query: false, record_cached_query: false994 marks the current thread as using the database995 behaves like record ActiveRecord metrics996 when both web and background transaction are available997 captures the metrics for web only998 behaves like record ActiveRecord metrics in a metrics transaction999 increments only db counters1000 observes sql_duration metric1001 when web transaction is available1002 behaves like record ActiveRecord metrics in a metrics transaction1003 increments only db counters1004 observes sql_duration metric1005 when background transaction is available1006 behaves like record ActiveRecord metrics in a metrics transaction1007 increments only db counters1008 observes sql_duration metric1009 behaves like store ActiveRecord info in RequestStore1010 prevents db counters from leaking to the next transaction1011 name: "TRANSACTION", sql_query: "ROLLBACK", record_query: false, record_write_query: false, record_cached_query: false1012 marks the current thread as using the database1013 behaves like record ActiveRecord metrics1014 when both web and background transaction are available1015 captures the metrics for web only1016 behaves like record ActiveRecord metrics in a metrics transaction1017 increments only db counters1018 observes sql_duration metric1019 when web transaction is available1020 behaves like record ActiveRecord metrics in a metrics transaction1021 increments only db counters1022 observes sql_duration metric1023 when background transaction is available1024 behaves like record ActiveRecord metrics in a metrics transaction1025 increments only db counters1026 observes sql_duration metric1027 behaves like store ActiveRecord info in RequestStore1028 prevents db counters from leaking to the next transaction1029 with Marginalia comments1030 behaves like track generic sql events1031 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: false1032 marks the current thread as using the database1033 behaves like record ActiveRecord metrics1034 when both web and background transaction are available1035 captures the metrics for web only1036 behaves like record ActiveRecord metrics in a metrics transaction1037 increments only db counters1038 observes sql_duration metric1039 when web transaction is available1040 behaves like record ActiveRecord metrics in a metrics transaction1041 increments only db counters1042 observes sql_duration metric1043 when background transaction is available1044 behaves like record ActiveRecord metrics in a metrics transaction1045 increments only db counters1046 observes sql_duration metric1047 behaves like store ActiveRecord info in RequestStore1048 prevents db counters from leaking to the next transaction1049 name: "SQL", sql_query: "WITH active_milestones AS (SELECT COUNT(*), state FROM milestones GROUP BY state) SELECT * FROM active_milestones", record_query: true, record_write_query: false, record_cached_query: false1050 marks the current thread as using the database1051 behaves like record ActiveRecord metrics1052 when both web and background transaction are available1053 captures the metrics for web only1054 behaves like record ActiveRecord metrics in a metrics transaction1055 increments only db counters1056 observes sql_duration metric1057 when web transaction is available1058 behaves like record ActiveRecord metrics in a metrics transaction1059 increments only db counters1060 observes sql_duration metric1061 when background transaction is available1062 behaves like record ActiveRecord metrics in a metrics transaction1063 increments only db counters1064 observes sql_duration metric1065 behaves like store ActiveRecord info in RequestStore1066 prevents db counters from leaking to the next transaction1067 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10 FOR UPDATE", record_query: true, record_write_query: true, record_cached_query: false1068 marks the current thread as using the database1069 behaves like record ActiveRecord metrics1070 when both web and background transaction are available1071 captures the metrics for web only1072 behaves like record ActiveRecord metrics in a metrics transaction1073 increments only db counters1074 observes sql_duration metric1075 when web transaction is available1076 behaves like record ActiveRecord metrics in a metrics transaction1077 increments only db counters1078 observes sql_duration metric1079 when background transaction is available1080 behaves like record ActiveRecord metrics in a metrics transaction1081 increments only db counters1082 observes sql_duration metric1083 behaves like store ActiveRecord info in RequestStore1084 prevents db counters from leaking to the next transaction1085 name: "SQL", sql_query: "WITH archived_rows AS (SELECT * FROM users WHERE archived = true) INSERT INTO products_log SELECT * FROM archived_rows", record_query: true, record_write_query: true, record_cached_query: false1086 marks the current thread as using the database1087 behaves like record ActiveRecord metrics1088 when both web and background transaction are available1089 captures the metrics for web only1090 behaves like record ActiveRecord metrics in a metrics transaction1091 increments only db counters1092 observes sql_duration metric1093 when web transaction is available1094 behaves like record ActiveRecord metrics in a metrics transaction1095 increments only db counters1096 observes sql_duration metric1097 when background transaction is available1098 behaves like record ActiveRecord metrics in a metrics transaction1099 increments only db counters1100 observes sql_duration metric1101 behaves like store ActiveRecord info in RequestStore1102 prevents db counters from leaking to the next transaction1103 name: "SQL", sql_query: "DELETE FROM users where id = 10", record_query: true, record_write_query: true, record_cached_query: false1104 marks the current thread as using the database1105 behaves like record ActiveRecord metrics1106 when both web and background transaction are available1107 captures the metrics for web only1108 behaves like record ActiveRecord metrics in a metrics transaction1109 increments only db counters1110 observes sql_duration metric1111 when web transaction is available1112 behaves like record ActiveRecord metrics in a metrics transaction1113 increments only db counters1114 observes sql_duration metric1115 when background transaction is available1116 behaves like record ActiveRecord metrics in a metrics transaction1117 increments only db counters1118 observes sql_duration metric1119 behaves like store ActiveRecord info in RequestStore1120 prevents db counters from leaking to the next transaction1121 name: "SQL", sql_query: "INSERT INTO project_ci_cd_settings (project_id) SELECT id FROM projects", record_query: true, record_write_query: true, record_cached_query: false1122 marks the current thread as using the database1123 behaves like record ActiveRecord metrics1124 when both web and background transaction are available1125 captures the metrics for web only1126 behaves like record ActiveRecord metrics in a metrics transaction1127 increments only db counters1128 observes sql_duration metric1129 when web transaction is available1130 behaves like record ActiveRecord metrics in a metrics transaction1131 increments only db counters1132 observes sql_duration metric1133 when background transaction is available1134 behaves like record ActiveRecord metrics in a metrics transaction1135 increments only db counters1136 observes sql_duration metric1137 behaves like store ActiveRecord info in RequestStore1138 prevents db counters from leaking to the next transaction1139 name: "SQL", sql_query: "UPDATE users SET admin = true WHERE id = 10", record_query: true, record_write_query: true, record_cached_query: false1140 marks the current thread as using the database1141 behaves like record ActiveRecord metrics1142 when both web and background transaction are available1143 captures the metrics for web only1144 behaves like record ActiveRecord metrics in a metrics transaction1145 increments only db counters1146 observes sql_duration metric1147 when web transaction is available1148 behaves like record ActiveRecord metrics in a metrics transaction1149 increments only db counters1150 observes sql_duration metric1151 when background transaction is available1152 behaves like record ActiveRecord metrics in a metrics transaction1153 increments only db counters1154 observes sql_duration metric1155 behaves like store ActiveRecord info in RequestStore1156 prevents db counters from leaking to the next transaction1157 name: "CACHE", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: true1158 marks the current thread as using the database1159 behaves like record ActiveRecord metrics1160 when both web and background transaction are available1161 captures the metrics for web only1162 behaves like record ActiveRecord metrics in a metrics transaction1163 increments only db counters1164 observes sql_duration metric1165 when web transaction is available1166 behaves like record ActiveRecord metrics in a metrics transaction1167 increments only db counters1168 observes sql_duration metric1169 when background transaction is available1170 behaves like record ActiveRecord metrics in a metrics transaction1171 increments only db counters1172 observes sql_duration metric1173 behaves like store ActiveRecord info in RequestStore1174 prevents db counters from leaking to the next transaction1175 name: "SCHEMA", sql_query: "SELECT attr.attname FROM pg_attribute attr INNER JOIN pg_constraint cons ON attr.attrelid = cons.conrelid AND attr.attnum = any(cons.conkey) WHERE cons.contype = 'p' AND cons.conrelid = '\"projects\"'::regclass", record_query: false, record_write_query: false, record_cached_query: false1176 marks the current thread as using the database1177 behaves like record ActiveRecord metrics1178 when both web and background transaction are available1179 captures the metrics for web only1180 behaves like record ActiveRecord metrics in a metrics transaction1181 increments only db counters1182 observes sql_duration metric1183 when web transaction is available1184 behaves like record ActiveRecord metrics in a metrics transaction1185 increments only db counters1186 observes sql_duration metric1187 when background transaction is available1188 behaves like record ActiveRecord metrics in a metrics transaction1189 increments only db counters1190 observes sql_duration metric1191 behaves like store ActiveRecord info in RequestStore1192 prevents db counters from leaking to the next transaction1193 name: "TRANSACTION", sql_query: "BEGIN", record_query: false, record_write_query: false, record_cached_query: false1194 marks the current thread as using the database1195 behaves like record ActiveRecord metrics1196 when both web and background transaction are available1197 captures the metrics for web only1198 behaves like record ActiveRecord metrics in a metrics transaction1199 increments only db counters1200 observes sql_duration metric1201 when web transaction is available1202 behaves like record ActiveRecord metrics in a metrics transaction1203 increments only db counters1204 observes sql_duration metric1205 when background transaction is available1206 behaves like record ActiveRecord metrics in a metrics transaction1207 increments only db counters1208 observes sql_duration metric1209 behaves like store ActiveRecord info in RequestStore1210 prevents db counters from leaking to the next transaction1211 name: "TRANSACTION", sql_query: "COMMIT", record_query: false, record_write_query: false, record_cached_query: false1212 marks the current thread as using the database1213 behaves like record ActiveRecord metrics1214 when both web and background transaction are available1215 captures the metrics for web only1216 behaves like record ActiveRecord metrics in a metrics transaction1217 increments only db counters1218 observes sql_duration metric1219 when web transaction is available1220 behaves like record ActiveRecord metrics in a metrics transaction1221 increments only db counters1222 observes sql_duration metric1223 when background transaction is available1224 behaves like record ActiveRecord metrics in a metrics transaction1225 increments only db counters1226 observes sql_duration metric1227 behaves like store ActiveRecord info in RequestStore1228 prevents db counters from leaking to the next transaction1229 name: "TRANSACTION", sql_query: "ROLLBACK", record_query: false, record_write_query: false, record_cached_query: false1230 marks the current thread as using the database1231 behaves like record ActiveRecord metrics1232 when both web and background transaction are available1233 captures the metrics for web only1234 behaves like record ActiveRecord metrics in a metrics transaction1235 increments only db counters1236 observes sql_duration metric1237 when web transaction is available1238 behaves like record ActiveRecord metrics in a metrics transaction1239 increments only db counters1240 observes sql_duration metric1241 when background transaction is available1242 behaves like record ActiveRecord metrics in a metrics transaction1243 increments only db counters1244 observes sql_duration metric1245 behaves like store ActiveRecord info in RequestStore1246 prevents db counters from leaking to the next transaction1247 Database Load Balancing enabled1248 without Marginalia comments1249 behaves like track sql events for each role1250 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: false1251 query using a connection to a replica1252 queries connection db role1253 behaves like record ActiveRecord metrics1254 when both web and background transaction are available1255 captures the metrics for web only1256 behaves like record ActiveRecord metrics in a metrics transaction1257 increments only db counters1258 observes sql_duration metric1259 when web transaction is available1260 behaves like record ActiveRecord metrics in a metrics transaction1261 increments only db counters1262 observes sql_duration metric1263 when background transaction is available1264 behaves like record ActiveRecord metrics in a metrics transaction1265 increments only db counters1266 observes sql_duration metric1267 behaves like store ActiveRecord info in RequestStore1268 prevents db counters from leaking to the next transaction1269 query using a connection to a primary1270 queries connection db role1271 behaves like record ActiveRecord metrics1272 when both web and background transaction are available1273 captures the metrics for web only1274 behaves like record ActiveRecord metrics in a metrics transaction1275 increments only db counters1276 observes sql_duration metric1277 when web transaction is available1278 behaves like record ActiveRecord metrics in a metrics transaction1279 increments only db counters1280 observes sql_duration metric1281 when background transaction is available1282 behaves like record ActiveRecord metrics in a metrics transaction1283 increments only db counters1284 observes sql_duration metric1285 behaves like store ActiveRecord info in RequestStore1286 prevents db counters from leaking to the next transaction1287 query using a connection to an unknown source1288 does not record DB role metrics1289 does not store DB roles into into RequestStore1290 name: "SQL", sql_query: "WITH active_milestones AS (SELECT COUNT(*), state FROM milestones GROUP BY state) SELECT * FROM active_milestones", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: false1291 query using a connection to a replica1292 queries connection db role1293 behaves like record ActiveRecord metrics1294 when both web and background transaction are available1295 captures the metrics for web only1296 behaves like record ActiveRecord metrics in a metrics transaction1297 increments only db counters1298 observes sql_duration metric1299 when web transaction is available1300 behaves like record ActiveRecord metrics in a metrics transaction1301 increments only db counters1302 observes sql_duration metric1303 when background transaction is available1304 behaves like record ActiveRecord metrics in a metrics transaction1305 increments only db counters1306 observes sql_duration metric1307 behaves like store ActiveRecord info in RequestStore1308 prevents db counters from leaking to the next transaction1309 query using a connection to a primary1310 queries connection db role1311 behaves like record ActiveRecord metrics1312 when both web and background transaction are available1313 captures the metrics for web only1314 behaves like record ActiveRecord metrics in a metrics transaction1315 increments only db counters1316 observes sql_duration metric1317 when web transaction is available1318 behaves like record ActiveRecord metrics in a metrics transaction1319 increments only db counters1320 observes sql_duration metric1321 when background transaction is available1322 behaves like record ActiveRecord metrics in a metrics transaction1323 increments only db counters1324 observes sql_duration metric1325 behaves like store ActiveRecord info in RequestStore1326 prevents db counters from leaking to the next transaction1327 query using a connection to an unknown source1328 does not record DB role metrics1329 does not store DB roles into into RequestStore1330 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10 FOR UPDATE", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false1331 query using a connection to a replica1332 queries connection db role1333 behaves like record ActiveRecord metrics1334 when both web and background transaction are available1335 captures the metrics for web only1336 behaves like record ActiveRecord metrics in a metrics transaction1337 increments only db counters1338 observes sql_duration metric1339 when web transaction is available1340 behaves like record ActiveRecord metrics in a metrics transaction1341 increments only db counters1342 observes sql_duration metric1343 when background transaction is available1344 behaves like record ActiveRecord metrics in a metrics transaction1345 increments only db counters1346 observes sql_duration metric1347 behaves like store ActiveRecord info in RequestStore1348 prevents db counters from leaking to the next transaction1349 query using a connection to a primary1350 queries connection db role1351 behaves like record ActiveRecord metrics1352 when both web and background transaction are available1353 captures the metrics for web only1354 behaves like record ActiveRecord metrics in a metrics transaction1355 increments only db counters1356 observes sql_duration metric1357 when web transaction is available1358 behaves like record ActiveRecord metrics in a metrics transaction1359 increments only db counters1360 observes sql_duration metric1361 when background transaction is available1362 behaves like record ActiveRecord metrics in a metrics transaction1363 increments only db counters1364 observes sql_duration metric1365 behaves like store ActiveRecord info in RequestStore1366 prevents db counters from leaking to the next transaction1367 query using a connection to an unknown source1368 does not record DB role metrics1369 does not store DB roles into into RequestStore1370 name: "SQL", sql_query: "WITH archived_rows AS (SELECT * FROM users WHERE archived = true) INSERT INTO products_log SELECT * FROM archived_rows", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false1371 query using a connection to a replica1372 queries connection db role1373 behaves like record ActiveRecord metrics1374 when both web and background transaction are available1375 captures the metrics for web only1376 behaves like record ActiveRecord metrics in a metrics transaction1377 increments only db counters1378 observes sql_duration metric1379 when web transaction is available1380 behaves like record ActiveRecord metrics in a metrics transaction1381 increments only db counters1382 observes sql_duration metric1383 when background transaction is available1384 behaves like record ActiveRecord metrics in a metrics transaction1385 increments only db counters1386 observes sql_duration metric1387 behaves like store ActiveRecord info in RequestStore1388 prevents db counters from leaking to the next transaction1389 query using a connection to a primary1390 queries connection db role1391 behaves like record ActiveRecord metrics1392 when both web and background transaction are available1393 captures the metrics for web only1394 behaves like record ActiveRecord metrics in a metrics transaction1395 increments only db counters1396 observes sql_duration metric1397 when web transaction is available1398 behaves like record ActiveRecord metrics in a metrics transaction1399 increments only db counters1400 observes sql_duration metric1401 when background transaction is available1402 behaves like record ActiveRecord metrics in a metrics transaction1403 increments only db counters1404 observes sql_duration metric1405 behaves like store ActiveRecord info in RequestStore1406 prevents db counters from leaking to the next transaction1407 query using a connection to an unknown source1408 does not record DB role metrics1409 does not store DB roles into into RequestStore1410 name: "SQL", sql_query: "DELETE FROM users where id = 10", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false1411 query using a connection to a replica1412 queries connection db role1413 behaves like record ActiveRecord metrics1414 when both web and background transaction are available1415 captures the metrics for web only1416 behaves like record ActiveRecord metrics in a metrics transaction1417 increments only db counters1418 observes sql_duration metric1419 when web transaction is available1420 behaves like record ActiveRecord metrics in a metrics transaction1421 increments only db counters1422 observes sql_duration metric1423 when background transaction is available1424 behaves like record ActiveRecord metrics in a metrics transaction1425 increments only db counters1426 observes sql_duration metric1427 behaves like store ActiveRecord info in RequestStore1428 prevents db counters from leaking to the next transaction1429 query using a connection to a primary1430 queries connection db role1431 behaves like record ActiveRecord metrics1432 when both web and background transaction are available1433 captures the metrics for web only1434 behaves like record ActiveRecord metrics in a metrics transaction1435 increments only db counters1436 observes sql_duration metric1437 when web transaction is available1438 behaves like record ActiveRecord metrics in a metrics transaction1439 increments only db counters1440 observes sql_duration metric1441 when background transaction is available1442 behaves like record ActiveRecord metrics in a metrics transaction1443 increments only db counters1444 observes sql_duration metric1445 behaves like store ActiveRecord info in RequestStore1446 prevents db counters from leaking to the next transaction1447 query using a connection to an unknown source1448 does not record DB role metrics1449 does not store DB roles into into RequestStore1450 name: "SQL", sql_query: "INSERT INTO project_ci_cd_settings (project_id) SELECT id FROM projects", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false1451 query using a connection to a replica1452 queries connection db role1453 behaves like record ActiveRecord metrics1454 when both web and background transaction are available1455 captures the metrics for web only1456 behaves like record ActiveRecord metrics in a metrics transaction1457 increments only db counters1458 observes sql_duration metric1459 when web transaction is available1460 behaves like record ActiveRecord metrics in a metrics transaction1461 increments only db counters1462 observes sql_duration metric1463 when background transaction is available1464 behaves like record ActiveRecord metrics in a metrics transaction1465 increments only db counters1466 observes sql_duration metric1467 behaves like store ActiveRecord info in RequestStore1468 prevents db counters from leaking to the next transaction1469 query using a connection to a primary1470 queries connection db role1471 behaves like record ActiveRecord metrics1472 when both web and background transaction are available1473 captures the metrics for web only1474 behaves like record ActiveRecord metrics in a metrics transaction1475 increments only db counters1476 observes sql_duration metric1477 when web transaction is available1478 behaves like record ActiveRecord metrics in a metrics transaction1479 increments only db counters1480 observes sql_duration metric1481 when background transaction is available1482 behaves like record ActiveRecord metrics in a metrics transaction1483 increments only db counters1484 observes sql_duration metric1485 behaves like store ActiveRecord info in RequestStore1486 prevents db counters from leaking to the next transaction1487 query using a connection to an unknown source1488 does not record DB role metrics1489 does not store DB roles into into RequestStore1490 name: "SQL", sql_query: "UPDATE users SET admin = true WHERE id = 10", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false1491 query using a connection to a replica1492 queries connection db role1493 behaves like record ActiveRecord metrics1494 when both web and background transaction are available1495 captures the metrics for web only1496 behaves like record ActiveRecord metrics in a metrics transaction1497 increments only db counters1498 observes sql_duration metric1499 when web transaction is available1500 behaves like record ActiveRecord metrics in a metrics transaction1501 increments only db counters1502 observes sql_duration metric1503 when background transaction is available1504 behaves like record ActiveRecord metrics in a metrics transaction1505 increments only db counters1506 observes sql_duration metric1507 behaves like store ActiveRecord info in RequestStore1508 prevents db counters from leaking to the next transaction1509 query using a connection to a primary1510 queries connection db role1511 behaves like record ActiveRecord metrics1512 when both web and background transaction are available1513 captures the metrics for web only1514 behaves like record ActiveRecord metrics in a metrics transaction1515 increments only db counters1516 observes sql_duration metric1517 when web transaction is available1518 behaves like record ActiveRecord metrics in a metrics transaction1519 increments only db counters1520 observes sql_duration metric1521 when background transaction is available1522 behaves like record ActiveRecord metrics in a metrics transaction1523 increments only db counters1524 observes sql_duration metric1525 behaves like store ActiveRecord info in RequestStore1526 prevents db counters from leaking to the next transaction1527 query using a connection to an unknown source1528 does not record DB role metrics1529 does not store DB roles into into RequestStore1530 name: "SQL", sql_query: "SELECT pg_current_wal_insert_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: true1531 query using a connection to a replica1532 queries connection db role1533 behaves like record ActiveRecord metrics1534 when both web and background transaction are available1535 captures the metrics for web only1536 behaves like record ActiveRecord metrics in a metrics transaction1537 increments only db counters1538 observes sql_duration metric1539 when web transaction is available1540 behaves like record ActiveRecord metrics in a metrics transaction1541 increments only db counters1542 observes sql_duration metric1543 when background transaction is available1544 behaves like record ActiveRecord metrics in a metrics transaction1545 increments only db counters1546 observes sql_duration metric1547 behaves like store ActiveRecord info in RequestStore1548 prevents db counters from leaking to the next transaction1549 query using a connection to a primary1550 queries connection db role1551 behaves like record ActiveRecord metrics1552 when both web and background transaction are available1553 captures the metrics for web only1554 behaves like record ActiveRecord metrics in a metrics transaction1555 increments only db counters1556 observes sql_duration metric1557 when web transaction is available1558 behaves like record ActiveRecord metrics in a metrics transaction1559 increments only db counters1560 observes sql_duration metric1561 when background transaction is available1562 behaves like record ActiveRecord metrics in a metrics transaction1563 increments only db counters1564 observes sql_duration metric1565 behaves like store ActiveRecord info in RequestStore1566 prevents db counters from leaking to the next transaction1567 query using a connection to an unknown source1568 does not record DB role metrics1569 does not store DB roles into into RequestStore1570 name: "SQL", sql_query: "SELECT pg_last_wal_replay_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: true1571 query using a connection to a replica1572 queries connection db role1573 behaves like record ActiveRecord metrics1574 when both web and background transaction are available1575 captures the metrics for web only1576 behaves like record ActiveRecord metrics in a metrics transaction1577 increments only db counters1578 observes sql_duration metric1579 when web transaction is available1580 behaves like record ActiveRecord metrics in a metrics transaction1581 increments only db counters1582 observes sql_duration metric1583 when background transaction is available1584 behaves like record ActiveRecord metrics in a metrics transaction1585 increments only db counters1586 observes sql_duration metric1587 behaves like store ActiveRecord info in RequestStore1588 prevents db counters from leaking to the next transaction1589 query using a connection to a primary1590 queries connection db role1591 behaves like record ActiveRecord metrics1592 when both web and background transaction are available1593 captures the metrics for web only1594 behaves like record ActiveRecord metrics in a metrics transaction1595 increments only db counters1596 observes sql_duration metric1597 when web transaction is available1598 behaves like record ActiveRecord metrics in a metrics transaction1599 increments only db counters1600 observes sql_duration metric1601 when background transaction is available1602 behaves like record ActiveRecord metrics in a metrics transaction1603 increments only db counters1604 observes sql_duration metric1605 behaves like store ActiveRecord info in RequestStore1606 prevents db counters from leaking to the next transaction1607 query using a connection to an unknown source1608 does not record DB role metrics1609 does not store DB roles into into RequestStore1610 name: "CACHE", sql_query: "SELECT pg_current_wal_insert_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: true, record_wal_query: true1611 query using a connection to a replica1612 queries connection db role1613 behaves like record ActiveRecord metrics1614 when both web and background transaction are available1615 captures the metrics for web only1616 behaves like record ActiveRecord metrics in a metrics transaction1617 increments only db counters1618 observes sql_duration metric1619 when web transaction is available1620 behaves like record ActiveRecord metrics in a metrics transaction1621 increments only db counters1622 observes sql_duration metric1623 when background transaction is available1624 behaves like record ActiveRecord metrics in a metrics transaction1625 increments only db counters1626 observes sql_duration metric1627 behaves like store ActiveRecord info in RequestStore1628 prevents db counters from leaking to the next transaction1629 query using a connection to a primary1630 queries connection db role1631 behaves like record ActiveRecord metrics1632 when both web and background transaction are available1633 captures the metrics for web only1634 behaves like record ActiveRecord metrics in a metrics transaction1635 increments only db counters1636 observes sql_duration metric1637 when web transaction is available1638 behaves like record ActiveRecord metrics in a metrics transaction1639 increments only db counters1640 observes sql_duration metric1641 when background transaction is available1642 behaves like record ActiveRecord metrics in a metrics transaction1643 increments only db counters1644 observes sql_duration metric1645 behaves like store ActiveRecord info in RequestStore1646 prevents db counters from leaking to the next transaction1647 query using a connection to an unknown source1648 does not record DB role metrics1649 does not store DB roles into into RequestStore1650 name: "CACHE", sql_query: "SELECT pg_last_wal_replay_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: true, record_wal_query: true1651 query using a connection to a replica1652 queries connection db role1653 behaves like record ActiveRecord metrics1654 when both web and background transaction are available1655 captures the metrics for web only1656 behaves like record ActiveRecord metrics in a metrics transaction1657 increments only db counters1658 observes sql_duration metric1659 when web transaction is available1660 behaves like record ActiveRecord metrics in a metrics transaction1661 increments only db counters1662 observes sql_duration metric1663 when background transaction is available1664 behaves like record ActiveRecord metrics in a metrics transaction1665 increments only db counters1666 observes sql_duration metric1667 behaves like store ActiveRecord info in RequestStore1668 prevents db counters from leaking to the next transaction1669 query using a connection to a primary1670 queries connection db role1671 behaves like record ActiveRecord metrics1672 when both web and background transaction are available1673 captures the metrics for web only1674 behaves like record ActiveRecord metrics in a metrics transaction1675 increments only db counters1676 observes sql_duration metric1677 when web transaction is available1678 behaves like record ActiveRecord metrics in a metrics transaction1679 increments only db counters1680 observes sql_duration metric1681 when background transaction is available1682 behaves like record ActiveRecord metrics in a metrics transaction1683 increments only db counters1684 observes sql_duration metric1685 behaves like store ActiveRecord info in RequestStore1686 prevents db counters from leaking to the next transaction1687 query using a connection to an unknown source1688 does not record DB role metrics1689 does not store DB roles into into RequestStore1690 name: "CACHE", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: true, record_wal_query: false1691 query using a connection to a replica1692 queries connection db role1693 behaves like record ActiveRecord metrics1694 when both web and background transaction are available1695 captures the metrics for web only1696 behaves like record ActiveRecord metrics in a metrics transaction1697 increments only db counters1698 observes sql_duration metric1699 when web transaction is available1700 behaves like record ActiveRecord metrics in a metrics transaction1701 increments only db counters1702 observes sql_duration metric1703 when background transaction is available1704 behaves like record ActiveRecord metrics in a metrics transaction1705 increments only db counters1706 observes sql_duration metric1707 behaves like store ActiveRecord info in RequestStore1708 prevents db counters from leaking to the next transaction1709 query using a connection to a primary1710 queries connection db role1711 behaves like record ActiveRecord metrics1712 when both web and background transaction are available1713 captures the metrics for web only1714 behaves like record ActiveRecord metrics in a metrics transaction1715 increments only db counters1716 observes sql_duration metric1717 when web transaction is available1718 behaves like record ActiveRecord metrics in a metrics transaction1719 increments only db counters1720 observes sql_duration metric1721 when background transaction is available1722 behaves like record ActiveRecord metrics in a metrics transaction1723 increments only db counters1724 observes sql_duration metric1725 behaves like store ActiveRecord info in RequestStore1726 prevents db counters from leaking to the next transaction1727 query using a connection to an unknown source1728 does not record DB role metrics1729 does not store DB roles into into RequestStore1730 name: "SCHEMA", sql_query: "SELECT attr.attname FROM pg_attribute attr INNER JOIN pg_constraint cons ON attr.attrelid = cons.conrelid AND attr.attnum = any(cons.conkey) WHERE cons.contype = 'p' AND cons.conrelid = '\"projects\"'::regclass", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false1731 query using a connection to a replica1732 queries connection db role1733 behaves like record ActiveRecord metrics1734 when both web and background transaction are available1735 captures the metrics for web only1736 behaves like record ActiveRecord metrics in a metrics transaction1737 increments only db counters1738 observes sql_duration metric1739 when web transaction is available1740 behaves like record ActiveRecord metrics in a metrics transaction1741 increments only db counters1742 observes sql_duration metric1743 when background transaction is available1744 behaves like record ActiveRecord metrics in a metrics transaction1745 increments only db counters1746 observes sql_duration metric1747 behaves like store ActiveRecord info in RequestStore1748 prevents db counters from leaking to the next transaction1749 query using a connection to a primary1750 queries connection db role1751 behaves like record ActiveRecord metrics1752 when both web and background transaction are available1753 captures the metrics for web only1754 behaves like record ActiveRecord metrics in a metrics transaction1755 increments only db counters1756 observes sql_duration metric1757 when web transaction is available1758 behaves like record ActiveRecord metrics in a metrics transaction1759 increments only db counters1760 observes sql_duration metric1761 when background transaction is available1762 behaves like record ActiveRecord metrics in a metrics transaction1763 increments only db counters1764 observes sql_duration metric1765 behaves like store ActiveRecord info in RequestStore1766 prevents db counters from leaking to the next transaction1767 query using a connection to an unknown source1768 does not record DB role metrics1769 does not store DB roles into into RequestStore1770 name: "TRANSACTION", sql_query: "BEGIN", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false1771 query using a connection to a replica1772 queries connection db role1773 behaves like record ActiveRecord metrics1774 when both web and background transaction are available1775 captures the metrics for web only1776 behaves like record ActiveRecord metrics in a metrics transaction1777 increments only db counters1778 observes sql_duration metric1779 when web transaction is available1780 behaves like record ActiveRecord metrics in a metrics transaction1781 increments only db counters1782 observes sql_duration metric1783 when background transaction is available1784 behaves like record ActiveRecord metrics in a metrics transaction1785 increments only db counters1786 observes sql_duration metric1787 behaves like store ActiveRecord info in RequestStore1788 prevents db counters from leaking to the next transaction1789 query using a connection to a primary1790 queries connection db role1791 behaves like record ActiveRecord metrics1792 when both web and background transaction are available1793 captures the metrics for web only1794 behaves like record ActiveRecord metrics in a metrics transaction1795 increments only db counters1796 observes sql_duration metric1797 when web transaction is available1798 behaves like record ActiveRecord metrics in a metrics transaction1799 increments only db counters1800 observes sql_duration metric1801 when background transaction is available1802 behaves like record ActiveRecord metrics in a metrics transaction1803 increments only db counters1804 observes sql_duration metric1805 behaves like store ActiveRecord info in RequestStore1806 prevents db counters from leaking to the next transaction1807 query using a connection to an unknown source1808 does not record DB role metrics1809 does not store DB roles into into RequestStore1810 name: "TRANSACTION", sql_query: "COMMIT", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false1811 query using a connection to a replica1812 queries connection db role1813 behaves like record ActiveRecord metrics1814 when both web and background transaction are available1815 captures the metrics for web only1816 behaves like record ActiveRecord metrics in a metrics transaction1817 increments only db counters1818 observes sql_duration metric1819 when web transaction is available1820 behaves like record ActiveRecord metrics in a metrics transaction1821 increments only db counters1822 observes sql_duration metric1823 when background transaction is available1824 behaves like record ActiveRecord metrics in a metrics transaction1825 increments only db counters1826 observes sql_duration metric1827 behaves like store ActiveRecord info in RequestStore1828 prevents db counters from leaking to the next transaction1829 query using a connection to a primary1830 queries connection db role1831 behaves like record ActiveRecord metrics1832 when both web and background transaction are available1833 captures the metrics for web only1834 behaves like record ActiveRecord metrics in a metrics transaction1835 increments only db counters1836 observes sql_duration metric1837 when web transaction is available1838 behaves like record ActiveRecord metrics in a metrics transaction1839 increments only db counters1840 observes sql_duration metric1841 when background transaction is available1842 behaves like record ActiveRecord metrics in a metrics transaction1843 increments only db counters1844 observes sql_duration metric1845 behaves like store ActiveRecord info in RequestStore1846 prevents db counters from leaking to the next transaction1847 query using a connection to an unknown source1848 does not record DB role metrics1849 does not store DB roles into into RequestStore1850 name: "TRANSACTION", sql_query: "ROLLBACK", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false1851 query using a connection to a replica1852 queries connection db role1853 behaves like record ActiveRecord metrics1854 when both web and background transaction are available1855 captures the metrics for web only1856 behaves like record ActiveRecord metrics in a metrics transaction1857 increments only db counters1858 observes sql_duration metric1859 when web transaction is available1860 behaves like record ActiveRecord metrics in a metrics transaction1861 increments only db counters1862 observes sql_duration metric1863 when background transaction is available1864 behaves like record ActiveRecord metrics in a metrics transaction1865 increments only db counters1866 observes sql_duration metric1867 behaves like store ActiveRecord info in RequestStore1868 prevents db counters from leaking to the next transaction1869 query using a connection to a primary1870 queries connection db role1871 behaves like record ActiveRecord metrics1872 when both web and background transaction are available1873 captures the metrics for web only1874 behaves like record ActiveRecord metrics in a metrics transaction1875 increments only db counters1876 observes sql_duration metric1877 when web transaction is available1878 behaves like record ActiveRecord metrics in a metrics transaction1879 increments only db counters1880 observes sql_duration metric1881 when background transaction is available1882 behaves like record ActiveRecord metrics in a metrics transaction1883 increments only db counters1884 observes sql_duration metric1885 behaves like store ActiveRecord info in RequestStore1886 prevents db counters from leaking to the next transaction1887 query using a connection to an unknown source1888 does not record DB role metrics1889 does not store DB roles into into RequestStore1890 with Marginalia comments1891 behaves like track sql events for each role1892 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: false1893 query using a connection to a replica1894 queries connection db role1895 behaves like record ActiveRecord metrics1896 when both web and background transaction are available1897 captures the metrics for web only1898 behaves like record ActiveRecord metrics in a metrics transaction1899 increments only db counters1900 observes sql_duration metric1901 when web transaction is available1902 behaves like record ActiveRecord metrics in a metrics transaction1903 increments only db counters1904 observes sql_duration metric1905 when background transaction is available1906 behaves like record ActiveRecord metrics in a metrics transaction1907 increments only db counters1908 observes sql_duration metric1909 behaves like store ActiveRecord info in RequestStore1910 prevents db counters from leaking to the next transaction1911 query using a connection to a primary1912 queries connection db role1913 behaves like record ActiveRecord metrics1914 when both web and background transaction are available1915 captures the metrics for web only1916 behaves like record ActiveRecord metrics in a metrics transaction1917 increments only db counters1918 observes sql_duration metric1919 when web transaction is available1920 behaves like record ActiveRecord metrics in a metrics transaction1921 increments only db counters1922 observes sql_duration metric1923 when background transaction is available1924 behaves like record ActiveRecord metrics in a metrics transaction1925 increments only db counters1926 observes sql_duration metric1927 behaves like store ActiveRecord info in RequestStore1928 prevents db counters from leaking to the next transaction1929 query using a connection to an unknown source1930 does not record DB role metrics1931 does not store DB roles into into RequestStore1932 name: "SQL", sql_query: "WITH active_milestones AS (SELECT COUNT(*), state FROM milestones GROUP BY state) SELECT * FROM active_milestones", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: false1933 query using a connection to a replica1934 queries connection db role1935 behaves like record ActiveRecord metrics1936 when both web and background transaction are available1937 captures the metrics for web only1938 behaves like record ActiveRecord metrics in a metrics transaction1939 increments only db counters1940 observes sql_duration metric1941 when web transaction is available1942 behaves like record ActiveRecord metrics in a metrics transaction1943 increments only db counters1944 observes sql_duration metric1945 when background transaction is available1946 behaves like record ActiveRecord metrics in a metrics transaction1947 increments only db counters1948 observes sql_duration metric1949 behaves like store ActiveRecord info in RequestStore1950 prevents db counters from leaking to the next transaction1951 query using a connection to a primary1952 queries connection db role1953 behaves like record ActiveRecord metrics1954 when both web and background transaction are available1955 captures the metrics for web only1956 behaves like record ActiveRecord metrics in a metrics transaction1957 increments only db counters1958 observes sql_duration metric1959 when web transaction is available1960 behaves like record ActiveRecord metrics in a metrics transaction1961 increments only db counters1962 observes sql_duration metric1963 when background transaction is available1964 behaves like record ActiveRecord metrics in a metrics transaction1965 increments only db counters1966 observes sql_duration metric1967 behaves like store ActiveRecord info in RequestStore1968 prevents db counters from leaking to the next transaction1969 query using a connection to an unknown source1970 does not record DB role metrics1971 does not store DB roles into into RequestStore1972 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10 FOR UPDATE", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false1973 query using a connection to a replica1974 queries connection db role1975 behaves like record ActiveRecord metrics1976 when both web and background transaction are available1977 captures the metrics for web only1978 behaves like record ActiveRecord metrics in a metrics transaction1979 increments only db counters1980 observes sql_duration metric1981 when web transaction is available1982 behaves like record ActiveRecord metrics in a metrics transaction1983 increments only db counters1984 observes sql_duration metric1985 when background transaction is available1986 behaves like record ActiveRecord metrics in a metrics transaction1987 increments only db counters1988 observes sql_duration metric1989 behaves like store ActiveRecord info in RequestStore1990 prevents db counters from leaking to the next transaction1991 query using a connection to a primary1992 queries connection db role1993 behaves like record ActiveRecord metrics1994 when both web and background transaction are available1995 captures the metrics for web only1996 behaves like record ActiveRecord metrics in a metrics transaction1997 increments only db counters1998 observes sql_duration metric1999 when web transaction is available2000 behaves like record ActiveRecord metrics in a metrics transaction2001 increments only db counters2002 observes sql_duration metric2003 when background transaction is available2004 behaves like record ActiveRecord metrics in a metrics transaction2005 increments only db counters2006 observes sql_duration metric2007 behaves like store ActiveRecord info in RequestStore2008 prevents db counters from leaking to the next transaction2009 query using a connection to an unknown source2010 does not record DB role metrics2011 does not store DB roles into into RequestStore2012 name: "SQL", sql_query: "WITH archived_rows AS (SELECT * FROM users WHERE archived = true) INSERT INTO products_log SELECT * FROM archived_rows", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false2013 query using a connection to a replica2014 queries connection db role2015 behaves like record ActiveRecord metrics2016 when both web and background transaction are available2017 captures the metrics for web only2018 behaves like record ActiveRecord metrics in a metrics transaction2019 increments only db counters2020 observes sql_duration metric2021 when web transaction is available2022 behaves like record ActiveRecord metrics in a metrics transaction2023 increments only db counters2024 observes sql_duration metric2025 when background transaction is available2026 behaves like record ActiveRecord metrics in a metrics transaction2027 increments only db counters2028 observes sql_duration metric2029 behaves like store ActiveRecord info in RequestStore2030 prevents db counters from leaking to the next transaction2031 query using a connection to a primary2032 queries connection db role2033 behaves like record ActiveRecord metrics2034 when both web and background transaction are available2035 captures the metrics for web only2036 behaves like record ActiveRecord metrics in a metrics transaction2037 increments only db counters2038 observes sql_duration metric2039 when web transaction is available2040 behaves like record ActiveRecord metrics in a metrics transaction2041 increments only db counters2042 observes sql_duration metric2043 when background transaction is available2044 behaves like record ActiveRecord metrics in a metrics transaction2045 increments only db counters2046 observes sql_duration metric2047 behaves like store ActiveRecord info in RequestStore2048 prevents db counters from leaking to the next transaction2049 query using a connection to an unknown source2050 does not record DB role metrics2051 does not store DB roles into into RequestStore2052 name: "SQL", sql_query: "DELETE FROM users where id = 10", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false2053 query using a connection to a replica2054 queries connection db role2055 behaves like record ActiveRecord metrics2056 when both web and background transaction are available2057 captures the metrics for web only2058 behaves like record ActiveRecord metrics in a metrics transaction2059 increments only db counters2060 observes sql_duration metric2061 when web transaction is available2062 behaves like record ActiveRecord metrics in a metrics transaction2063 increments only db counters2064 observes sql_duration metric2065 when background transaction is available2066 behaves like record ActiveRecord metrics in a metrics transaction2067 increments only db counters2068 observes sql_duration metric2069 behaves like store ActiveRecord info in RequestStore2070 prevents db counters from leaking to the next transaction2071 query using a connection to a primary2072 queries connection db role2073 behaves like record ActiveRecord metrics2074 when both web and background transaction are available2075 captures the metrics for web only2076 behaves like record ActiveRecord metrics in a metrics transaction2077 increments only db counters2078 observes sql_duration metric2079 when web transaction is available2080 behaves like record ActiveRecord metrics in a metrics transaction2081 increments only db counters2082 observes sql_duration metric2083 when background transaction is available2084 behaves like record ActiveRecord metrics in a metrics transaction2085 increments only db counters2086 observes sql_duration metric2087 behaves like store ActiveRecord info in RequestStore2088 prevents db counters from leaking to the next transaction2089 query using a connection to an unknown source2090 does not record DB role metrics2091 does not store DB roles into into RequestStore2092 name: "SQL", sql_query: "INSERT INTO project_ci_cd_settings (project_id) SELECT id FROM projects", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false2093 query using a connection to a replica2094 queries connection db role2095 behaves like record ActiveRecord metrics2096 when both web and background transaction are available2097 captures the metrics for web only2098 behaves like record ActiveRecord metrics in a metrics transaction2099 increments only db counters2100 observes sql_duration metric2101 when web transaction is available2102 behaves like record ActiveRecord metrics in a metrics transaction2103 increments only db counters2104 observes sql_duration metric2105 when background transaction is available2106 behaves like record ActiveRecord metrics in a metrics transaction2107 increments only db counters2108 observes sql_duration metric2109 behaves like store ActiveRecord info in RequestStore2110 prevents db counters from leaking to the next transaction2111 query using a connection to a primary2112 queries connection db role2113 behaves like record ActiveRecord metrics2114 when both web and background transaction are available2115 captures the metrics for web only2116 behaves like record ActiveRecord metrics in a metrics transaction2117 increments only db counters2118 observes sql_duration metric2119 when web transaction is available2120 behaves like record ActiveRecord metrics in a metrics transaction2121 increments only db counters2122 observes sql_duration metric2123 when background transaction is available2124 behaves like record ActiveRecord metrics in a metrics transaction2125 increments only db counters2126 observes sql_duration metric2127 behaves like store ActiveRecord info in RequestStore2128 prevents db counters from leaking to the next transaction2129 query using a connection to an unknown source2130 does not record DB role metrics2131 does not store DB roles into into RequestStore2132 name: "SQL", sql_query: "UPDATE users SET admin = true WHERE id = 10", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false2133 query using a connection to a replica2134 queries connection db role2135 behaves like record ActiveRecord metrics2136 when both web and background transaction are available2137 captures the metrics for web only2138 behaves like record ActiveRecord metrics in a metrics transaction2139 increments only db counters2140 observes sql_duration metric2141 when web transaction is available2142 behaves like record ActiveRecord metrics in a metrics transaction2143 increments only db counters2144 observes sql_duration metric2145 when background transaction is available2146 behaves like record ActiveRecord metrics in a metrics transaction2147 increments only db counters2148 observes sql_duration metric2149 behaves like store ActiveRecord info in RequestStore2150 prevents db counters from leaking to the next transaction2151 query using a connection to a primary2152 queries connection db role2153 behaves like record ActiveRecord metrics2154 when both web and background transaction are available2155 captures the metrics for web only2156 behaves like record ActiveRecord metrics in a metrics transaction2157 increments only db counters2158 observes sql_duration metric2159 when web transaction is available2160 behaves like record ActiveRecord metrics in a metrics transaction2161 increments only db counters2162 observes sql_duration metric2163 when background transaction is available2164 behaves like record ActiveRecord metrics in a metrics transaction2165 increments only db counters2166 observes sql_duration metric2167 behaves like store ActiveRecord info in RequestStore2168 prevents db counters from leaking to the next transaction2169 query using a connection to an unknown source2170 does not record DB role metrics2171 does not store DB roles into into RequestStore2172 name: "SQL", sql_query: "SELECT pg_current_wal_insert_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: true2173 query using a connection to a replica2174 queries connection db role2175 behaves like record ActiveRecord metrics2176 when both web and background transaction are available2177 captures the metrics for web only2178 behaves like record ActiveRecord metrics in a metrics transaction2179 increments only db counters2180 observes sql_duration metric2181 when web transaction is available2182 behaves like record ActiveRecord metrics in a metrics transaction2183 increments only db counters2184 observes sql_duration metric2185 when background transaction is available2186 behaves like record ActiveRecord metrics in a metrics transaction2187 increments only db counters2188 observes sql_duration metric2189 behaves like store ActiveRecord info in RequestStore2190 prevents db counters from leaking to the next transaction2191 query using a connection to a primary2192 queries connection db role2193 behaves like record ActiveRecord metrics2194 when both web and background transaction are available2195 captures the metrics for web only2196 behaves like record ActiveRecord metrics in a metrics transaction2197 increments only db counters2198 observes sql_duration metric2199 when web transaction is available2200 behaves like record ActiveRecord metrics in a metrics transaction2201 increments only db counters2202 observes sql_duration metric2203 when background transaction is available2204 behaves like record ActiveRecord metrics in a metrics transaction2205 increments only db counters2206 observes sql_duration metric2207 behaves like store ActiveRecord info in RequestStore2208 prevents db counters from leaking to the next transaction2209 query using a connection to an unknown source2210 does not record DB role metrics2211 does not store DB roles into into RequestStore2212 name: "SQL", sql_query: "SELECT pg_last_wal_replay_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: true2213 query using a connection to a replica2214 queries connection db role2215 behaves like record ActiveRecord metrics2216 when both web and background transaction are available2217 captures the metrics for web only2218 behaves like record ActiveRecord metrics in a metrics transaction2219 increments only db counters2220 observes sql_duration metric2221 when web transaction is available2222 behaves like record ActiveRecord metrics in a metrics transaction2223 increments only db counters2224 observes sql_duration metric2225 when background transaction is available2226 behaves like record ActiveRecord metrics in a metrics transaction2227 increments only db counters2228 observes sql_duration metric2229 behaves like store ActiveRecord info in RequestStore2230 prevents db counters from leaking to the next transaction2231 query using a connection to a primary2232 queries connection db role2233 behaves like record ActiveRecord metrics2234 when both web and background transaction are available2235 captures the metrics for web only2236 behaves like record ActiveRecord metrics in a metrics transaction2237 increments only db counters2238 observes sql_duration metric2239 when web transaction is available2240 behaves like record ActiveRecord metrics in a metrics transaction2241 increments only db counters2242 observes sql_duration metric2243 when background transaction is available2244 behaves like record ActiveRecord metrics in a metrics transaction2245 increments only db counters2246 observes sql_duration metric2247 behaves like store ActiveRecord info in RequestStore2248 prevents db counters from leaking to the next transaction2249 query using a connection to an unknown source2250 does not record DB role metrics2251 does not store DB roles into into RequestStore2252 name: "CACHE", sql_query: "SELECT pg_current_wal_insert_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: true, record_wal_query: true2253 query using a connection to a replica2254 queries connection db role2255 behaves like record ActiveRecord metrics2256 when both web and background transaction are available2257 captures the metrics for web only2258 behaves like record ActiveRecord metrics in a metrics transaction2259 increments only db counters2260 observes sql_duration metric2261 when web transaction is available2262 behaves like record ActiveRecord metrics in a metrics transaction2263 increments only db counters2264 observes sql_duration metric2265 when background transaction is available2266 behaves like record ActiveRecord metrics in a metrics transaction2267 increments only db counters2268 observes sql_duration metric2269 behaves like store ActiveRecord info in RequestStore2270 prevents db counters from leaking to the next transaction2271 query using a connection to a primary2272 queries connection db role2273 behaves like record ActiveRecord metrics2274 when both web and background transaction are available2275 captures the metrics for web only2276 behaves like record ActiveRecord metrics in a metrics transaction2277 increments only db counters2278 observes sql_duration metric2279 when web transaction is available2280 behaves like record ActiveRecord metrics in a metrics transaction2281 increments only db counters2282 observes sql_duration metric2283 when background transaction is available2284 behaves like record ActiveRecord metrics in a metrics transaction2285 increments only db counters2286 observes sql_duration metric2287 behaves like store ActiveRecord info in RequestStore2288 prevents db counters from leaking to the next transaction2289 query using a connection to an unknown source2290 does not record DB role metrics2291 does not store DB roles into into RequestStore2292 name: "CACHE", sql_query: "SELECT pg_last_wal_replay_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: true, record_wal_query: true2293 query using a connection to a replica2294 queries connection db role2295 behaves like record ActiveRecord metrics2296 when both web and background transaction are available2297 captures the metrics for web only2298 behaves like record ActiveRecord metrics in a metrics transaction2299 increments only db counters2300 observes sql_duration metric2301 when web transaction is available2302 behaves like record ActiveRecord metrics in a metrics transaction2303 increments only db counters2304 observes sql_duration metric2305 when background transaction is available2306 behaves like record ActiveRecord metrics in a metrics transaction2307 increments only db counters2308 observes sql_duration metric2309 behaves like store ActiveRecord info in RequestStore2310 prevents db counters from leaking to the next transaction2311 query using a connection to a primary2312 queries connection db role2313 behaves like record ActiveRecord metrics2314 when both web and background transaction are available2315 captures the metrics for web only2316 behaves like record ActiveRecord metrics in a metrics transaction2317 increments only db counters2318 observes sql_duration metric2319 when web transaction is available2320 behaves like record ActiveRecord metrics in a metrics transaction2321 increments only db counters2322 observes sql_duration metric2323 when background transaction is available2324 behaves like record ActiveRecord metrics in a metrics transaction2325 increments only db counters2326 observes sql_duration metric2327 behaves like store ActiveRecord info in RequestStore2328 prevents db counters from leaking to the next transaction2329 query using a connection to an unknown source2330 does not record DB role metrics2331 does not store DB roles into into RequestStore2332 name: "CACHE", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: true, record_wal_query: false2333 query using a connection to a replica2334 queries connection db role2335 behaves like record ActiveRecord metrics2336 when both web and background transaction are available2337 captures the metrics for web only2338 behaves like record ActiveRecord metrics in a metrics transaction2339 increments only db counters2340 observes sql_duration metric2341 when web transaction is available2342 behaves like record ActiveRecord metrics in a metrics transaction2343 increments only db counters2344 observes sql_duration metric2345 when background transaction is available2346 behaves like record ActiveRecord metrics in a metrics transaction2347 increments only db counters2348 observes sql_duration metric2349 behaves like store ActiveRecord info in RequestStore2350 prevents db counters from leaking to the next transaction2351 query using a connection to a primary2352 queries connection db role2353 behaves like record ActiveRecord metrics2354 when both web and background transaction are available2355 captures the metrics for web only2356 behaves like record ActiveRecord metrics in a metrics transaction2357 increments only db counters2358 observes sql_duration metric2359 when web transaction is available2360 behaves like record ActiveRecord metrics in a metrics transaction2361 increments only db counters2362 observes sql_duration metric2363 when background transaction is available2364 behaves like record ActiveRecord metrics in a metrics transaction2365 increments only db counters2366 observes sql_duration metric2367 behaves like store ActiveRecord info in RequestStore2368 prevents db counters from leaking to the next transaction2369 query using a connection to an unknown source2370 does not record DB role metrics2371 does not store DB roles into into RequestStore2372 name: "SCHEMA", sql_query: "SELECT attr.attname FROM pg_attribute attr INNER JOIN pg_constraint cons ON attr.attrelid = cons.conrelid AND attr.attnum = any(cons.conkey) WHERE cons.contype = 'p' AND cons.conrelid = '\"projects\"'::regclass", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false2373 query using a connection to a replica2374 queries connection db role2375 behaves like record ActiveRecord metrics2376 when both web and background transaction are available2377 captures the metrics for web only2378 behaves like record ActiveRecord metrics in a metrics transaction2379 increments only db counters2380 observes sql_duration metric2381 when web transaction is available2382 behaves like record ActiveRecord metrics in a metrics transaction2383 increments only db counters2384 observes sql_duration metric2385 when background transaction is available2386 behaves like record ActiveRecord metrics in a metrics transaction2387 increments only db counters2388 observes sql_duration metric2389 behaves like store ActiveRecord info in RequestStore2390 prevents db counters from leaking to the next transaction2391 query using a connection to a primary2392 queries connection db role2393 behaves like record ActiveRecord metrics2394 when both web and background transaction are available2395 captures the metrics for web only2396 behaves like record ActiveRecord metrics in a metrics transaction2397 increments only db counters2398 observes sql_duration metric2399 when web transaction is available2400 behaves like record ActiveRecord metrics in a metrics transaction2401 increments only db counters2402 observes sql_duration metric2403 when background transaction is available2404 behaves like record ActiveRecord metrics in a metrics transaction2405 increments only db counters2406 observes sql_duration metric2407 behaves like store ActiveRecord info in RequestStore2408 prevents db counters from leaking to the next transaction2409 query using a connection to an unknown source2410 does not record DB role metrics2411 does not store DB roles into into RequestStore2412 name: "TRANSACTION", sql_query: "BEGIN", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false2413 query using a connection to a replica2414 queries connection db role2415 behaves like record ActiveRecord metrics2416 when both web and background transaction are available2417 captures the metrics for web only2418 behaves like record ActiveRecord metrics in a metrics transaction2419 increments only db counters2420 observes sql_duration metric2421 when web transaction is available2422 behaves like record ActiveRecord metrics in a metrics transaction2423 increments only db counters2424 observes sql_duration metric2425 when background transaction is available2426 behaves like record ActiveRecord metrics in a metrics transaction2427 increments only db counters2428 observes sql_duration metric2429 behaves like store ActiveRecord info in RequestStore2430 prevents db counters from leaking to the next transaction2431 query using a connection to a primary2432 queries connection db role2433 behaves like record ActiveRecord metrics2434 when both web and background transaction are available2435 captures the metrics for web only2436 behaves like record ActiveRecord metrics in a metrics transaction2437 increments only db counters2438 observes sql_duration metric2439 when web transaction is available2440 behaves like record ActiveRecord metrics in a metrics transaction2441 increments only db counters2442 observes sql_duration metric2443 when background transaction is available2444 behaves like record ActiveRecord metrics in a metrics transaction2445 increments only db counters2446 observes sql_duration metric2447 behaves like store ActiveRecord info in RequestStore2448 prevents db counters from leaking to the next transaction2449 query using a connection to an unknown source2450 does not record DB role metrics2451 does not store DB roles into into RequestStore2452 name: "TRANSACTION", sql_query: "COMMIT", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false2453 query using a connection to a replica2454 queries connection db role2455 behaves like record ActiveRecord metrics2456 when both web and background transaction are available2457 captures the metrics for web only2458 behaves like record ActiveRecord metrics in a metrics transaction2459 increments only db counters2460 observes sql_duration metric2461 when web transaction is available2462 behaves like record ActiveRecord metrics in a metrics transaction2463 increments only db counters2464 observes sql_duration metric2465 when background transaction is available2466 behaves like record ActiveRecord metrics in a metrics transaction2467 increments only db counters2468 observes sql_duration metric2469 behaves like store ActiveRecord info in RequestStore2470 prevents db counters from leaking to the next transaction2471 query using a connection to a primary2472 queries connection db role2473 behaves like record ActiveRecord metrics2474 when both web and background transaction are available2475 captures the metrics for web only2476 behaves like record ActiveRecord metrics in a metrics transaction2477 increments only db counters2478 observes sql_duration metric2479 when web transaction is available2480 behaves like record ActiveRecord metrics in a metrics transaction2481 increments only db counters2482 observes sql_duration metric2483 when background transaction is available2484 behaves like record ActiveRecord metrics in a metrics transaction2485 increments only db counters2486 observes sql_duration metric2487 behaves like store ActiveRecord info in RequestStore2488 prevents db counters from leaking to the next transaction2489 query using a connection to an unknown source2490 does not record DB role metrics2491 does not store DB roles into into RequestStore2492 name: "TRANSACTION", sql_query: "ROLLBACK", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false2493 query using a connection to a replica2494 queries connection db role2495 behaves like record ActiveRecord metrics2496 when both web and background transaction are available2497 captures the metrics for web only2498 behaves like record ActiveRecord metrics in a metrics transaction2499 increments only db counters2500 observes sql_duration metric2501 when web transaction is available2502 behaves like record ActiveRecord metrics in a metrics transaction2503 increments only db counters2504 observes sql_duration metric2505 when background transaction is available2506 behaves like record ActiveRecord metrics in a metrics transaction2507 increments only db counters2508 observes sql_duration metric2509 behaves like store ActiveRecord info in RequestStore2510 prevents db counters from leaking to the next transaction2511 query using a connection to a primary2512 queries connection db role2513 behaves like record ActiveRecord metrics2514 when both web and background transaction are available2515 captures the metrics for web only2516 behaves like record ActiveRecord metrics in a metrics transaction2517 increments only db counters2518 observes sql_duration metric2519 when web transaction is available2520 behaves like record ActiveRecord metrics in a metrics transaction2521 increments only db counters2522 observes sql_duration metric2523 when background transaction is available2524 behaves like record ActiveRecord metrics in a metrics transaction2525 increments only db counters2526 observes sql_duration metric2527 behaves like store ActiveRecord info in RequestStore2528 prevents db counters from leaking to the next transaction2529 query using a connection to an unknown source2530 does not record DB role metrics2531 does not store DB roles into into RequestStore2532Notes::QuickActionsService2533 .supported?2534 with a note on an issue2535 returns true2536 with a note on a commit2537 returns false2538 #supported?2539 delegates to the class method2540 #execute2541 behaves like note on noteable that supports quick actions2542 note with only command2543 /close, /label, /assign & /milestone2544 closes noteable, sets labels, assigns, and sets milestone to noteable, and leave no note2545 /relate2546 user cannot relate issues2547 does not create issue relation2548 user is allowed to relate issues2549 creates issue relation2550 /reopen2551 opens the noteable, and leave no note2552 /spend2553 when note is not persisted2554 adds time to noteable, adds timelog with nil note_id and has no content2555 when note is persisted2556 updates the spent time and populates timelog with note_id2557 adds a system note2558 when not specifying a date2559 does not include the date2560 when specifying a date2561 does include the date2562 /estimate2563 when the time estimate is valid2564 adds time estimate to noteable2565 when the time estimate is 02566 adds time estimate to noteable2567 when the time estimate is invalid2568 shows validation error message2569 when the time estimate is partially invalid2570 shows validation error message2571 when the time estimate is negative2572 shows validation error message2573 /confidential2574 when work item does not have children2575 leaves the note empty2576 marks work item as confidential2577 when work item has children2578 when children are not confidential2579 does not mark parent work item as confidential2580 when children are confidential2581 marks parent work item as confidential2582 note with command & text2583 /close, /label, /assign & /milestone2584 closes noteable, sets labels, assigns, and sets milestone to noteable2585 /reopen2586 opens the noteable2587 /milestone2588 on an incident2589 leaves the note empty2590 assigns the milestone2591 on a merge request2592 leaves the note empty2593 assigns the milestone2594 /remove_milestone2595 on an issue2596 leaves the note empty2597 removes the milestone2598 on an incident2599 leaves the note empty2600 removes the milestone2601 on a merge request2602 leaves the note empty2603 removes the milestone2604 /add_child2605 when using work item reference2606 behaves like adds child work items2607 leaves the note empty2608 adds child work items2609 when using work item iid2610 behaves like adds child work items2611 leaves the note empty2612 adds child work items2613 when using work item URL2614 behaves like adds child work items2615 leaves the note empty2616 adds child work items2617 /set_parent2618 when using work item reference2619 behaves like sets work item parent2620 leaves the note empty2621 sets work item parent2622 when using work item iid2623 behaves like sets work item parent2624 leaves the note empty2625 sets work item parent2626 when using work item URL2627 behaves like sets work item parent2628 leaves the note empty2629 sets work item parent2630 /promote_to2631 on a task2632 behaves like promotes work item2633 leaves the note empty2634 promotes to provided type2635 when type name is lower case2636 behaves like promotes work item2637 leaves the note empty2638 promotes to provided type2639 on an issue2640 behaves like promotes work item2641 leaves the note empty2642 promotes to provided type2643 when type name is lower case2644 behaves like promotes work item2645 leaves the note empty2646 promotes to provided type2647 behaves like note on noteable that supports quick actions2648 note with only command2649 /close, /label, /assign & /milestone2650 closes noteable, sets labels, assigns, and sets milestone to noteable, and leave no note2651 /relate2652 user cannot relate issues2653 does not create issue relation2654 user is allowed to relate issues2655 creates issue relation2656 /reopen2657 opens the noteable, and leave no note2658 /spend2659 when note is not persisted2660 adds time to noteable, adds timelog with nil note_id and has no content2661 when note is persisted2662 updates the spent time and populates timelog with note_id2663 adds a system note2664 when not specifying a date2665 does not include the date2666 when specifying a date2667 does include the date2668 /estimate2669 when the time estimate is valid2670 adds time estimate to noteable2671 when the time estimate is 02672 adds time estimate to noteable2673 when the time estimate is invalid2674 shows validation error message2675 when the time estimate is partially invalid2676 shows validation error message2677 when the time estimate is negative2678 shows validation error message2679 /confidential2680 when work item does not have children2681 leaves the note empty2682 marks work item as confidential2683 when work item has children2684 when children are not confidential2685 does not mark parent work item as confidential2686 when children are confidential2687 marks parent work item as confidential2688 note with command & text2689 /close, /label, /assign & /milestone2690 closes noteable, sets labels, assigns, and sets milestone to noteable2691 /reopen2692 opens the noteable2693 /milestone2694 on an incident2695 leaves the note empty2696 assigns the milestone2697 on a merge request2698 leaves the note empty2699 assigns the milestone2700 /remove_milestone2701 on an issue2702 leaves the note empty2703 removes the milestone2704 on an incident2705 leaves the note empty2706 removes the milestone2707 on a merge request2708 leaves the note empty2709 removes the milestone2710 /add_child2711 when using work item reference2712 behaves like adds child work items2713 leaves the note empty2714 adds child work items2715 when using work item iid2716 behaves like adds child work items2717 leaves the note empty2718 adds child work items2719 when using work item URL2720 behaves like adds child work items2721 leaves the note empty2722 adds child work items2723 /set_parent2724 when using work item reference2725 behaves like sets work item parent2726 leaves the note empty2727 sets work item parent2728 when using work item iid2729 behaves like sets work item parent2730 leaves the note empty2731 sets work item parent2732 when using work item URL2733 behaves like sets work item parent2734 leaves the note empty2735 sets work item parent2736 /promote_to2737 on a task2738 behaves like promotes work item2739 leaves the note empty2740 promotes to provided type2741 when type name is lower case2742 behaves like promotes work item2743 leaves the note empty2744 promotes to provided type2745 on an issue2746 behaves like promotes work item2747 leaves the note empty2748 promotes to provided type2749 when type name is lower case2750 behaves like promotes work item2751 leaves the note empty2752 promotes to provided type2753 behaves like note on noteable that supports quick actions2754 note with only command2755 /close, /label, /assign & /milestone2756 closes noteable, sets labels, assigns, and sets milestone to noteable, and leave no note2757 /relate2758 user cannot relate issues2759 does not create issue relation2760 user is allowed to relate issues2761 creates issue relation2762 /reopen2763 opens the noteable, and leave no note2764 /spend2765 when note is not persisted2766 adds time to noteable, adds timelog with nil note_id and has no content2767 when note is persisted2768 updates the spent time and populates timelog with note_id2769 adds a system note2770 when not specifying a date2771 does not include the date2772 when specifying a date2773 does include the date2774 /estimate2775 when the time estimate is valid2776 adds time estimate to noteable2777 when the time estimate is 02778 adds time estimate to noteable2779 when the time estimate is invalid2780 shows validation error message2781 when the time estimate is partially invalid2782 shows validation error message2783 when the time estimate is negative2784 shows validation error message2785 /confidential2786 when work item does not have children2787 leaves the note empty2788 marks work item as confidential2789 when work item has children2790 when children are not confidential2791 does not mark parent work item as confidential2792 when children are confidential2793 marks parent work item as confidential2794 note with command & text2795 /close, /label, /assign & /milestone2796 closes noteable, sets labels, assigns, and sets milestone to noteable2797 /reopen2798 opens the noteable2799 /milestone2800 on an incident2801 leaves the note empty2802 assigns the milestone2803 on a merge request2804 leaves the note empty2805 assigns the milestone2806 /remove_milestone2807 on an issue2808 leaves the note empty2809 removes the milestone2810 on an incident2811 leaves the note empty2812 removes the milestone2813 on a merge request2814 leaves the note empty2815 removes the milestone2816 /add_child2817 when using work item reference2818 behaves like adds child work items2819 leaves the note empty2820 adds child work items2821 when using work item iid2822 behaves like adds child work items2823 leaves the note empty2824 adds child work items2825 when using work item URL2826 behaves like adds child work items2827 leaves the note empty2828 adds child work items2829 /set_parent2830 when using work item reference2831 behaves like sets work item parent2832 leaves the note empty2833 sets work item parent2834 when using work item iid2835 behaves like sets work item parent2836 leaves the note empty2837 sets work item parent2838 when using work item URL2839 behaves like sets work item parent2840 leaves the note empty2841 sets work item parent2842 /promote_to2843 on a task2844 behaves like promotes work item2845 leaves the note empty2846 promotes to provided type2847 when type name is lower case2848 behaves like promotes work item2849 leaves the note empty2850 promotes to provided type2851 on an issue2852 behaves like promotes work item2853 leaves the note empty2854 promotes to provided type2855 when type name is lower case2856 behaves like promotes work item2857 leaves the note empty2858 promotes to provided type2859 note on work item that supports quick actions2860 note with only command2861 /close, /label & /assign2862 closes noteable, sets labels, assigns and leave no note2863 /reopen2864 opens the noteable, and leave no note2865 note with command & text2866 /close, /label, /assign2867 closes noteable, sets labels, assigns, and sets milestone to noteable2868 /reopen2869 opens the noteable2870 #apply_updates2871 with a note on an issue2872 returns successful service response if update returned no errors2873 returns service response with errors if update failed2874 with a note on a merge request2875 returns successful service response if update returned no errors2876 returns service response with errors if update failed2877 with a note on a work item2878 returns successful service response if update returned no errors2879 returns service response with errors if update failed2880 with a note on a commit2881 returns successful service response if update returned no errors2882 returns service response with errors if update failed2883 CE restriction for issue assignees2884 /assign2885 adds only one assignee from the list2886Banzai::Filter::References::ExternalIssueReferenceFilter2887 redmine project2888 with a hash prefix2889 behaves like external issue tracker2890 requires project context2891 ignores valid references contained inside 'pre' element2892 ignores valid references contained inside 'code' element2893 ignores valid references contained inside 'a' element2894 ignores valid references contained inside 'style' element2895 ignores valid references when using default tracker2896 links to a valid reference2897 links to the external tracker2898 links with adjacent text2899 includes a title attribute2900 escapes the title attribute2901 includes default classes2902 supports an :only_path context2903 has an empty link if issue_url is invalid2904 has an empty link if issue_path is invalid2905 behaves like a reference containing an element node2906 does not escape inner html2907 with RequestStore enabled2908 queries the collection on the first call2909 with a single-letter prefix2910 behaves like external issue tracker2911 requires project context2912 ignores valid references contained inside 'pre' element2913 ignores valid references contained inside 'code' element2914 ignores valid references contained inside 'a' element2915 ignores valid references contained inside 'style' element2916 ignores valid references when using default tracker2917 links to a valid reference2918 links to the external tracker2919 links with adjacent text2920 includes a title attribute2921 escapes the title attribute2922 includes default classes2923 supports an :only_path context2924 has an empty link if issue_url is invalid2925 has an empty link if issue_path is invalid2926 behaves like a reference containing an element node2927 does not escape inner html2928 with RequestStore enabled2929 queries the collection on the first call2930 youtrack project2931 with right markdown2932 behaves like external issue tracker2933 requires project context2934 ignores valid references contained inside 'pre' element2935 ignores valid references contained inside 'code' element2936 ignores valid references contained inside 'a' element2937 ignores valid references contained inside 'style' element2938 ignores valid references when using default tracker2939 links to a valid reference2940 links to the external tracker2941 links with adjacent text2942 includes a title attribute2943 escapes the title attribute2944 includes default classes2945 supports an :only_path context2946 has an empty link if issue_url is invalid2947 has an empty link if issue_path is invalid2948 behaves like a reference containing an element node2949 does not escape inner html2950 with RequestStore enabled2951 queries the collection on the first call2952 with underscores in the prefix2953 behaves like external issue tracker2954 requires project context2955 ignores valid references contained inside 'pre' element2956 ignores valid references contained inside 'code' element2957 ignores valid references contained inside 'a' element2958 ignores valid references contained inside 'style' element2959 ignores valid references when using default tracker2960 links to a valid reference2961 links to the external tracker2962 links with adjacent text2963 includes a title attribute2964 escapes the title attribute2965 includes default classes2966 supports an :only_path context2967 has an empty link if issue_url is invalid2968 has an empty link if issue_path is invalid2969 behaves like a reference containing an element node2970 does not escape inner html2971 with RequestStore enabled2972 queries the collection on the first call2973 with lowercase letters in the prefix2974 behaves like external issue tracker2975 requires project context2976 ignores valid references contained inside 'pre' element2977 ignores valid references contained inside 'code' element2978 ignores valid references contained inside 'a' element2979 ignores valid references contained inside 'style' element2980 ignores valid references when using default tracker2981 links to a valid reference2982 links to the external tracker2983 links with adjacent text2984 includes a title attribute2985 escapes the title attribute2986 includes default classes2987 supports an :only_path context2988 has an empty link if issue_url is invalid2989 has an empty link if issue_path is invalid2990 behaves like a reference containing an element node2991 does not escape inner html2992 with RequestStore enabled2993 queries the collection on the first call2994 with a single-letter prefix2995 behaves like external issue tracker2996 requires project context2997 ignores valid references contained inside 'pre' element2998 ignores valid references contained inside 'code' element2999 ignores valid references contained inside 'a' element3000 ignores valid references contained inside 'style' element3001 ignores valid references when using default tracker3002 links to a valid reference3003 links to the external tracker3004 links with adjacent text3005 includes a title attribute3006 escapes the title attribute3007 includes default classes3008 supports an :only_path context3009 has an empty link if issue_url is invalid3010 has an empty link if issue_path is invalid3011 behaves like a reference containing an element node3012 does not escape inner html3013 with RequestStore enabled3014 queries the collection on the first call3015 with a lowercase prefix3016 behaves like external issue tracker3017 requires project context3018 ignores valid references contained inside 'pre' element3019 ignores valid references contained inside 'code' element3020 ignores valid references contained inside 'a' element3021 ignores valid references contained inside 'style' element3022 ignores valid references when using default tracker3023 links to a valid reference3024 links to the external tracker3025 links with adjacent text3026 includes a title attribute3027 escapes the title attribute3028 includes default classes3029 supports an :only_path context3030 has an empty link if issue_url is invalid3031 has an empty link if issue_path is invalid3032 behaves like a reference containing an element node3033 does not escape inner html3034 with RequestStore enabled3035 queries the collection on the first call3036 clickup project3037 with right markdown3038 behaves like external issue tracker3039 requires project context3040 ignores valid references contained inside 'pre' element3041 ignores valid references contained inside 'code' element3042 ignores valid references contained inside 'a' element3043 ignores valid references contained inside 'style' element3044 ignores valid references when using default tracker3045 links to a valid reference3046 links to the external tracker3047 links with adjacent text3048 includes a title attribute3049 escapes the title attribute3050 includes default classes3051 supports an :only_path context3052 has an empty link if issue_url is invalid3053 has an empty link if issue_path is invalid3054 behaves like a reference containing an element node3055 does not escape inner html3056 with RequestStore enabled3057 queries the collection on the first call3058 with underscores in the prefix3059 behaves like external issue tracker3060 requires project context3061 ignores valid references contained inside 'pre' element3062 ignores valid references contained inside 'code' element3063 ignores valid references contained inside 'a' element3064 ignores valid references contained inside 'style' element3065 ignores valid references when using default tracker3066 links to a valid reference3067 links to the external tracker3068 links with adjacent text3069 includes a title attribute3070 escapes the title attribute3071 includes default classes3072 supports an :only_path context3073 has an empty link if issue_url is invalid3074 has an empty link if issue_path is invalid3075 behaves like a reference containing an element node3076 does not escape inner html3077 with RequestStore enabled3078 queries the collection on the first call3079 with a hash prefix and alphanumeric3080 behaves like external issue tracker3081 requires project context3082 ignores valid references contained inside 'pre' element3083 ignores valid references contained inside 'code' element3084 ignores valid references contained inside 'a' element3085 ignores valid references contained inside 'style' element3086 ignores valid references when using default tracker3087 links to a valid reference3088 links to the external tracker3089 links with adjacent text3090 includes a title attribute3091 escapes the title attribute3092 includes default classes3093 supports an :only_path context3094 has an empty link if issue_url is invalid3095 has an empty link if issue_path is invalid3096 behaves like a reference containing an element node3097 does not escape inner html3098 with RequestStore enabled3099 queries the collection on the first call3100 with prefix and alphanumeric3101 behaves like external issue tracker3102 requires project context3103 ignores valid references contained inside 'pre' element3104 ignores valid references contained inside 'code' element3105 ignores valid references contained inside 'a' element3106 ignores valid references contained inside 'style' element3107 ignores valid references when using default tracker3108 links to a valid reference3109 links to the external tracker3110 links with adjacent text3111 includes a title attribute3112 escapes the title attribute3113 includes default classes3114 supports an :only_path context3115 has an empty link if issue_url is invalid3116 has an empty link if issue_path is invalid3117 behaves like a reference containing an element node3118 does not escape inner html3119 with RequestStore enabled3120 queries the collection on the first call3121 jira project3122 with right markdown3123 behaves like external issue tracker3124 requires project context3125 ignores valid references contained inside 'pre' element3126 ignores valid references contained inside 'code' element3127 ignores valid references contained inside 'a' element3128 ignores valid references contained inside 'style' element3129 ignores valid references when using default tracker3130 links to a valid reference3131 links to the external tracker3132 links with adjacent text3133 includes a title attribute3134 escapes the title attribute3135 includes default classes3136 supports an :only_path context3137 has an empty link if issue_url is invalid3138 has an empty link if issue_path is invalid3139 behaves like a reference containing an element node3140 does not escape inner html3141 with RequestStore enabled3142 queries the collection on the first call3143 with a single-letter prefix3144 ignores reference3145 with wrong markdown3146 ignores reference3147 with a custom regex3148 with right markdown3149 behaves like external issue tracker3150 requires project context3151 ignores valid references contained inside 'pre' element3152 ignores valid references contained inside 'code' element3153 ignores valid references contained inside 'a' element3154 ignores valid references contained inside 'style' element3155 ignores valid references when using default tracker3156 links to a valid reference3157 links to the external tracker3158 links with adjacent text3159 includes a title attribute3160 escapes the title attribute3161 includes default classes3162 supports an :only_path context3163 has an empty link if issue_url is invalid3164 has an empty link if issue_path is invalid3165 behaves like a reference containing an element node3166 does not escape inner html3167 with RequestStore enabled3168 queries the collection on the first call3169 with a single-letter prefix3170 ignores reference3171 with wrong markdown3172 ignores reference3173 ewm project3174 rtcwi keyword3175 behaves like external issue tracker3176 requires project context3177 ignores valid references contained inside 'pre' element3178 ignores valid references contained inside 'code' element3179 ignores valid references contained inside 'a' element3180 ignores valid references contained inside 'style' element3181 ignores valid references when using default tracker3182 links to a valid reference3183 links to the external tracker3184 links with adjacent text3185 includes a title attribute3186 escapes the title attribute3187 includes default classes3188 supports an :only_path context3189 has an empty link if issue_url is invalid3190 has an empty link if issue_path is invalid3191 behaves like a reference containing an element node3192 does not escape inner html3193 with RequestStore enabled3194 queries the collection on the first call3195 workitem keyword3196 behaves like external issue tracker3197 requires project context3198 ignores valid references contained inside 'pre' element3199 ignores valid references contained inside 'code' element3200 ignores valid references contained inside 'a' element3201 ignores valid references contained inside 'style' element3202 ignores valid references when using default tracker3203 links to a valid reference3204 links to the external tracker3205 links with adjacent text3206 includes a title attribute3207 escapes the title attribute3208 includes default classes3209 supports an :only_path context3210 has an empty link if issue_url is invalid3211 has an empty link if issue_path is invalid3212 behaves like a reference containing an element node3213 does not escape inner html3214 with RequestStore enabled3215 queries the collection on the first call3216 defect keyword3217 behaves like external issue tracker3218 requires project context3219 ignores valid references contained inside 'pre' element3220 ignores valid references contained inside 'code' element3221 ignores valid references contained inside 'a' element3222 ignores valid references contained inside 'style' element3223 ignores valid references when using default tracker3224 links to a valid reference3225 links to the external tracker3226 links with adjacent text3227 includes a title attribute3228 escapes the title attribute3229 includes default classes3230 supports an :only_path context3231 has an empty link if issue_url is invalid3232 has an empty link if issue_path is invalid3233 behaves like a reference containing an element node3234 does not escape inner html3235 with RequestStore enabled3236 queries the collection on the first call3237 task keyword3238 behaves like external issue tracker3239 requires project context3240 ignores valid references contained inside 'pre' element3241 ignores valid references contained inside 'code' element3242 ignores valid references contained inside 'a' element3243 ignores valid references contained inside 'style' element3244 ignores valid references when using default tracker3245 links to a valid reference3246 links to the external tracker3247 links with adjacent text3248 includes a title attribute3249 escapes the title attribute3250 includes default classes3251 supports an :only_path context3252 has an empty link if issue_url is invalid3253 has an empty link if issue_path is invalid3254 behaves like a reference containing an element node3255 does not escape inner html3256 with RequestStore enabled3257 queries the collection on the first call3258 bug keyword3259 behaves like external issue tracker3260 requires project context3261 ignores valid references contained inside 'pre' element3262 ignores valid references contained inside 'code' element3263 ignores valid references contained inside 'a' element3264 ignores valid references contained inside 'style' element3265 ignores valid references when using default tracker3266 links to a valid reference3267 links to the external tracker3268 links with adjacent text3269 includes a title attribute3270 escapes the title attribute3271 includes default classes3272 supports an :only_path context3273 has an empty link if issue_url is invalid3274 has an empty link if issue_path is invalid3275 behaves like a reference containing an element node3276 does not escape inner html3277 with RequestStore enabled3278 queries the collection on the first call3279 checking N+13280 does not have N+1 per multiple references per project3281DesignManagement::DesignV432x230Uploader3282 resizes images3283 behaves like builds correct paths3284 #store_dir3285 behaves like matches the method pattern3286 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//3287 #cache_dir3288 behaves like matches the method pattern3289 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3290 #work_dir3291 behaves like matches the method pattern3292 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3293 #upload_path3294 behaves like matches the method pattern3295 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//3296 #relative_path3297 is relative (PENDING: Path not set, skipping.)3298 .absolute_path3299 behaves like matches the method pattern3300 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/design_management\/action\/image_v432x230\//3301 .base_dir3302 behaves like matches the method pattern3303 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3304 path traversal exploits3305 throws an exception3306 object_store is REMOTE3307 behaves like builds correct paths3308 #store_dir3309 behaves like matches the method pattern3310 is expected to match /design_management\/action\/image_v432x230\//3311 #cache_dir3312 behaves like matches the method pattern3313 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3314 #work_dir3315 behaves like matches the method pattern3316 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3317 #upload_path3318 behaves like matches the method pattern3319 is expected to match /design_management\/action\/image_v432x230\//3320 #relative_path3321 is relative (PENDING: Path not set, skipping.)3322 .absolute_path3323 behaves like matches the method pattern3324 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3325 .base_dir3326 behaves like matches the method pattern3327 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3328 path traversal exploits3329 throws an exception3330 #migrate!3331 behaves like migrates3332 returns corresponding file type3333 does nothing when migrating to the current store3334 migrate to the specified store3335 removes the original file after the migration3336 can access to the original file during migration3337 when migrate! is not occupied by another process3338 executes migrate!3339 executes use_file3340 when migrate! is occupied by another process3341 does not execute migrate!3342 does not execute use_file3343 migration is unsuccessful3344 when the store is not supported3345 does not update the object_store3346 does not delete the original file3347 upon a fog failure3348 does not update the object_store3349 does not delete the original file3350 upon a database failure3351 does not update the object_store3352 does not delete the original file3353 behaves like migrates3354 returns corresponding file type3355 does nothing when migrating to the current store3356 migrate to the specified store3357 removes the original file after the migration3358 can access to the original file during migration3359 when migrate! is not occupied by another process3360 executes migrate!3361 executes use_file3362 when migrate! is occupied by another process3363 does not execute migrate!3364 does not execute use_file3365 migration is unsuccessful3366 when the store is not supported3367 does not update the object_store3368 does not delete the original file3369 upon a fog failure3370 does not update the object_store3371 does not delete the original file3372 upon a database failure3373 does not update the object_store3374 does not delete the original file3375 accept allowlisted file content type3376 mime_type: "image/png"3377 behaves like accepted carrierwave upload3378 will accept upload3379 will cache uploaded file3380 mime_type: "image/jpeg"3381 behaves like accepted carrierwave upload3382 will accept upload3383 will cache uploaded file3384 mime_type: "image/bmp"3385 behaves like accepted carrierwave upload3386 will accept upload3387 will cache uploaded file3388 mime_type: "image/gif"3389 behaves like accepted carrierwave upload3390 will accept upload3391 will cache uploaded file3392 upload denylisted file content type3393 behaves like denied carrierwave upload3394 will deny upload3395 upload misnamed denylisted file content type3396 behaves like denied carrierwave upload3397 will deny upload3398Issues::CreateService3399 behaves like rate limited service3400 .rate_limiter_scoped_and_keyed3401 is set via the rate_limit call3402 #rate_limiter_bypassed3403 is nil by default3404 #execute3405 when rate limiting is in effect3406 when too many requests are sent by one user3407 raises an error3408 creates 1 issue3409 when limit is higher than count of issues being created3410 creates 2 issues3411 #execute3412 when params are invalid3413 returns an error service response3414 when params are valid3415 works if base work item types were not created yet3416 creates the issue with the given params3417 calls NewIssueWorker with correct arguments3418 calls GroupMentionWorker3419 refreshes the number of open issues3420 moves the issue to the end, in an asynchronous worker3421 schedules a namespace onboarding create action worker3422 when an unauthorized project_id is provided3423 ignores the project_id param and creates issue in the given project3424 authorization3425 when the user is authorized3426 allows the user to create an issue3427 when the user is not authorized3428 does not allow the user to create an issue3429 with milestone3430 deletes milestone issues count cache3431 when the work item type is not allowed to create3432 ignores the type and creates default issue3433 when a build_service is provided3434 uses the provided service to build the issue3435 when issue template is provided3436 when description is blank3437 sets template contents as description when description is blank3438 when description is not blank3439 does not apply template when description is not blank3440 when skip_system_notes is true3441 does not call Issuable::CommonSystemNotesService3442 when setting a position3443 sets the correct relative position3444 behaves like not an incident issue3445 has not incident as issue type3446 when issue is incident type3447 as reporter3448 calls IncidentManagement::Incidents::CreateEscalationStatusService3449 calls IncidentManagement::TimelineEvents::CreateService.create_incident3450 calls NewIssueWorker with correct arguments3451 behaves like incident issue3452 has incident as issue type3453 when invalid3454 does not apply an incident label prematurely3455 as guest3456 behaves like not an incident issue3457 has not incident as issue type3458 when current user cannot set issue metadata in the project3459 filters out params that cannot be set without the :set_issue_metadata permission3460 can create confidential issues3461 when label belongs to project group3462 assigns group labels3463 when label belongs to different project3464 does not assign label3465 when labels is nil3466 does not assign label3467 when labels is nil and label_ids is present3468 assigns group labels3469 when milestone belongs to different project3470 does not assign milestone3471 when assignee is set3472 invalidates open issues counter for assignees when issue is assigned3473 records the assignee assignment event3474 when duplicate label titles are given3475 assigns the label once3476 when sentry identifier is given3477 does not assign the sentry error3478 user is reporter or above3479 assigns the sentry error3480 executing hooks3481 executes issue hooks3482 when issue is confidential3483 executes confidential issue hooks3484 after_save callback to store_mentions3485 when mentionable attributes change3486 saves mentions3487 when save fails3488 does not call store_mentions3489 issue create service3490 assignees3491 removes assignee when user id is invalid3492 removes assignee when user id is 03493 saves assignee when user id is valid3494 when issuable feature is private3495 removes not authorized assignee when project is Internal3496 removes not authorized assignee when project is Public3497 behaves like issuable record that supports quick actions3498 with labels in command only3499 attaches labels to issuable3500 with labels in params and command3501 attaches all labels to issuable3502 with assignee and milestone in command only3503 assigns and sets milestone to issuable3504 Quick actions3505 with assignee, milestone, and contact in params and command3506 assigns, sets milestone, and sets contact to issuable from command3507 with external_author3508 when CRM contact exists with matching e-mail3509 with permission3510 assigns contact to issue3511 without permission3512 does not assign contact to issue3513 when no CRM contact exists with matching e-mail3514 does not assign contact to issue3515 with alert bot author3516 can apply labels3517 when using promote_to_incident3518 creates an issue with the correct issue type3519 resolving discussions3520 for a single discussion3521 resolves the discussion3522 added a system note to the discussion3523 sets default title and description values if not provided3524 takes params from the request over the default values3525 for a merge request3526 resolves the discussion3527 added a system note to the discussion3528 sets default title and description values if not provided3529 takes params from the request over the default values3530 add related issue3531 ignores related issue if not accessible3532 when user has access to the related issue3533 adds a link to the issue3534 checking spam3535 checks for spam3536 when `perform_spam_check` is set to `false`3537 does not execute the SpamActionService3538SystemHook3539 behaves like a hook that does not get automatically disabled on failure3540 .executable/.disabled3541 finds the correct set of project hooks3542 when silent mode is enabled3543 causes no hooks to be considered executable3544 causes all hooks to be considered disabled3545 #executable?3546 recent_failures: 0, not_until: :not_set3547 has the correct state3548 recent_failures: 0, not_until: :past3549 has the correct state3550 recent_failures: 0, not_until: :future3551 has the correct state3552 recent_failures: 0, not_until: :now3553 has the correct state3554 recent_failures: 1, not_until: :not_set3555 has the correct state3556 recent_failures: 1, not_until: :past3557 has the correct state3558 recent_failures: 1, not_until: :future3559 has the correct state3560 recent_failures: 3, not_until: :not_set3561 has the correct state3562 recent_failures: 3, not_until: :past3563 has the correct state3564 recent_failures: 3, not_until: :future3565 has the correct state3566 recent_failures: 4, not_until: :not_set3567 has the correct state3568 recent_failures: 4, not_until: :past3569 has the correct state3570 recent_failures: 4, not_until: :now3571 has the correct state3572 recent_failures: 4, not_until: :future3573 has the correct state3574 #enable!3575 makes a hook executable if it was marked as failed3576 makes a hook executable if it is currently backed off3577 does not update hooks unless necessary3578 #backoff!3579 when we have not backed off before3580 does not disable the hook3581 when we have exhausted the grace period3582 does not disable the hook3583 #temporarily_disabled?3584 is false3585 #permanently_disabled?3586 is false3587 #alert_status3588 is expected to eq :executable3589 when hook has been disabled3590 is expected to eq :executable3591 when hook has been backed off3592 is expected to eq :executable3593 default attributes3594 sets defined default parameters3595 validations3596 url3597 is expected not to allow :url to be ‹"http://localhost:9000"›3598 is valid if application settings allow local requests from system hooks3599 execute3600 project_create hook3601 project_destroy hook3602 user_create hook3603 user_destroy hook3604 project member create hook3605 project member destroy hook3606 project member update hook3607 group create hook3608 group destroy hook3609 group member create hook3610 group member destroy hook3611 group member update hook3612 .repository_update_hooks3613 returns hooks for repository update events only3614 execute WebHookService3615 #execute3616 #async_execute3617 #application_context3618 includes the type3619Gitlab::Ci::Status::Build::Factory3620 when build is successful3621 matches correct core status3622 matches correct extended statuses3623 fabricates a retryable build status3624 fabricates status with correct details3625 when build is erased3626 matches correct core status3627 matches correct extended statuses3628 fabricates a retryable build status3629 fabricates status with correct details3630 when build is failed3631 when build is not allowed to fail3632 matches correct core status3633 matches correct extended statuses3634 fabricates a failed build status3635 fabricates status with correct details3636 when build is allowed to fail3637 matches correct core status3638 matches correct extended statuses3639 fabricates a failed but allowed build status3640 fabricates status with correct details3641 when build has unmet prerequisites3642 matches correct core status3643 matches correct extended statuses3644 fabricates a failed with unmet prerequisites build status3645 fabricates status with correct details3646 when build is a canceled3647 matches correct core status3648 matches correct extended statuses3649 fabricates a retryable build status3650 fabricates status with correct details3651 when build is running3652 matches correct core status3653 matches correct extended statuses3654 fabricates a canceable build status3655 fabricates status with correct details3656 when build is pending3657 matches correct core status3658 matches correct extended statuses3659 fabricates a cancelable build status3660 fabricates status with correct details3661 when build is skipped3662 matches correct core status3663 matches correct extended statuses3664 fabricates a skipped build status3665 fabricates status with correct details3666 when build is a manual action3667 when build is a play action3668 matches correct core status3669 matches correct extended statuses3670 fabricates action detailed status3671 fabricates status with correct details3672 when user has ability to play action3673 fabricates status that has action3674 when user does not have ability to play action3675 fabricates status that has no action3676 when build is an environment stop action3677 matches correct core status3678 matches correct extended statuses3679 fabricates action detailed status3680 when user is not allowed to execute manual action3681 fabricates status with correct details3682 when build is a delayed action3683 matches correct core status3684 matches correct extended statuses3685 fabricates action detailed status3686 fabricates status with correct details3687 when user has ability to play action3688 fabricates status that has action3689 when user does not have ability to play action3690 fabricates status that has no action3691ClusterAncestorsFinder#execute3692 for a project3693 returns the project clusters followed by group clusters3694 nested groups3695 returns the project clusters followed by group clusters ordered ascending the hierarchy3696 user cannot read clusters for clusterable3697 returns nothing3698 for a group3699 returns the list of group clusters3700 nested groups3701 returns the list of group clusters ordered ascending the hierarchy3702 for an instance3703 when admin mode is enabled3704 returns the list of instance clusters3705 when admin mode is disabled3706 returns nothing3707Integrations::Mattermost3708 behaves like Integrations::SlackMattermostNotifier3709 Associations3710 is expected to belong to project required: false3711 Validations3712 when integration is active3713 is expected to validate that :webhook cannot be empty/falsy3714 behaves like issue tracker integration URL attribute3715 is expected to allow :webhook to be ‹"https://example.com"›3716 is expected not to allow :webhook to be ‹"example.com"›3717 is expected not to allow :webhook to be ‹"ftp://example.com"›3718 is expected not to allow :webhook to be ‹"herp-and-derp"›3719 when integration is inactive3720 is expected not to validate that :webhook cannot be empty/falsy3721 #execute3722 with username for slack configured3723 uses the username as an option3724 push events3725 behaves like calls the integration API with the event message3726 is expected to request POST https://8.8.8.9/ 1 time3727 with event channel3728 uses the right channel for push event3729 tag_push events3730 behaves like calls the integration API with the event message3731 is expected to request POST https://8.8.8.9/ 1 time3732 issue events3733 behaves like calls the integration API with the event message3734 is expected to request POST https://8.8.8.9/ 1 time3735 whith event channel3736 uses the right channel for issue event3737 for confidential issues3738 falls back to issue channel3739 and confidential_issue_channel is defined3740 uses the confidential issue channel when it is defined3741 merge request events3742 behaves like calls the integration API with the event message3743 is expected to request POST https://8.8.8.9/ 1 time3744 with event channel3745 uses the right channel for merge request event3746 wiki page events3747 behaves like calls the integration API with the event message3748 is expected to request POST https://8.8.8.9/ 1 time3749 with event channel3750 uses the right channel for wiki event3751 deployment events3752 behaves like calls the integration API with the event message3753 is expected to request POST https://8.8.8.9/ 1 time3754 note event3755 behaves like calls the integration API with the event message3756 is expected to request POST https://8.8.8.9/ 1 time3757 with event channel3758 uses the right channel3759 for confidential notes3760 falls back to note channel3761 and confidential_note_channel is defined3762 uses confidential channel3763 Push events3764 on default branch3765 pushing tags3766 behaves like triggered Mattermost integration3767 notifies about push events3768 when the response is not successful3769 logs an error3770 notification enabled only for default branch3771 behaves like triggered Mattermost integration3772 notifies about push events3773 when the response is not successful3774 logs an error3775 notification enabled only for protected branches3776 behaves like untriggered Mattermost integration3777 does not notify about push events3778 notification enabled only for default and protected branches3779 behaves like triggered Mattermost integration3780 notifies about push events3781 when the response is not successful3782 logs an error3783 notification enabled for all branches3784 behaves like triggered Mattermost integration3785 notifies about push events3786 when the response is not successful3787 logs an error3788 on a protected branch3789 pushing tags3790 behaves like triggered Mattermost integration3791 notifies about push events3792 when the response is not successful3793 logs an error3794 notification enabled only for default branch3795 behaves like untriggered Mattermost integration3796 does not notify about push events3797 notification enabled only for protected branches3798 behaves like triggered Mattermost integration3799 notifies about push events3800 when the response is not successful3801 logs an error3802 notification enabled only for default and protected branches3803 behaves like triggered Mattermost integration3804 notifies about push events3805 when the response is not successful3806 logs an error3807 notification enabled for all branches3808 behaves like triggered Mattermost integration3809 notifies about push events3810 when the response is not successful3811 logs an error3812 on a protected branch with protected branches defined using wildcards3813 pushing tags3814 behaves like triggered Mattermost integration3815 notifies about push events3816 when the response is not successful3817 logs an error3818 notification enabled only for default branch3819 behaves like untriggered Mattermost integration3820 does not notify about push events3821 notification enabled only for protected branches3822 behaves like triggered Mattermost integration3823 notifies about push events3824 when the response is not successful3825 logs an error3826 notification enabled only for default and protected branches3827 behaves like triggered Mattermost integration3828 notifies about push events3829 when the response is not successful3830 logs an error3831 notification enabled for all branches3832 behaves like triggered Mattermost integration3833 notifies about push events3834 when the response is not successful3835 logs an error3836 on a neither protected nor default branch3837 pushing tags3838 behaves like triggered Mattermost integration3839 notifies about push events3840 when the response is not successful3841 logs an error3842 notification enabled only for default branch3843 behaves like untriggered Mattermost integration3844 does not notify about push events3845 notification enabled only for protected branches3846 behaves like untriggered Mattermost integration3847 does not notify about push events3848 notification enabled only for default and protected branches3849 behaves like untriggered Mattermost integration3850 does not notify about push events3851 notification enabled for all branches3852 behaves like triggered Mattermost integration3853 notifies about push events3854 when the response is not successful3855 logs an error3856 Note events3857 when commit comment event executed3858 behaves like triggered Mattermost integration3859 notifies about commit comment events3860 when the response is not successful3861 logs an error3862 when merge request comment event executed3863 behaves like triggered Mattermost integration3864 notifies about merge request comment events3865 when the response is not successful3866 logs an error3867 when issue comment event executed3868 behaves like triggered Mattermost integration3869 notifies about issue comment events3870 when the response is not successful3871 logs an error3872 when snippet comment event executed3873 behaves like triggered Mattermost integration3874 notifies about snippet comment events3875 when the response is not successful3876 logs an error3877 Pipeline events3878 with succeeded pipeline3879 with default to notify_only_broken_pipelines3880 behaves like untriggered Mattermost integration3881 does not notify about pipeline events3882 with setting notify_only_broken_pipelines to false3883 behaves like triggered Mattermost integration3884 notifies about pipeline events3885 when the response is not successful3886 logs an error3887 with failed pipeline3888 on default branch3889 notification enabled only for default branch3890 behaves like triggered Mattermost integration3891 notifies about pipeline events3892 when the response is not successful3893 logs an error3894 notification enabled only for protected branches3895 behaves like untriggered Mattermost integration3896 does not notify about pipeline events3897 notification enabled only for default and protected branches3898 behaves like triggered Mattermost integration3899 notifies about pipeline events3900 when the response is not successful3901 logs an error3902 notification enabled for all branches3903 behaves like triggered Mattermost integration3904 notifies about pipeline events3905 when the response is not successful3906 logs an error3907 on a protected branch3908 notification enabled only for default branch3909 behaves like untriggered Mattermost integration3910 does not notify about pipeline events3911 notification enabled only for protected branches3912 behaves like triggered Mattermost integration3913 notifies about pipeline events3914 when the response is not successful3915 logs an error3916 notification enabled only for default and protected branches3917 behaves like triggered Mattermost integration3918 notifies about pipeline events3919 when the response is not successful3920 logs an error3921 notification enabled for all branches3922 behaves like triggered Mattermost integration3923 notifies about pipeline events3924 when the response is not successful3925 logs an error3926 on a protected branch with protected branches defined usin wildcards3927 notification enabled only for default branch3928 behaves like untriggered Mattermost integration3929 does not notify about pipeline events3930 notification enabled only for protected branches3931 behaves like triggered Mattermost integration3932 notifies about pipeline events3933 when the response is not successful3934 logs an error3935 notification enabled only for default and protected branches3936 behaves like triggered Mattermost integration3937 notifies about pipeline events3938 when the response is not successful3939 logs an error3940 notification enabled for all branches3941 behaves like triggered Mattermost integration3942 notifies about pipeline events3943 when the response is not successful3944 logs an error3945 on a neither protected nor default branch3946 notification enabled only for default branch3947 behaves like untriggered Mattermost integration3948 does not notify about pipeline events3949 notification enabled only for protected branches3950 behaves like untriggered Mattermost integration3951 does not notify about pipeline events3952 notification enabled only for default and protected branches3953 behaves like untriggered Mattermost integration3954 does not notify about pipeline events3955 notification enabled for all branches3956 behaves like triggered Mattermost integration3957 notifies about pipeline events3958 when the response is not successful3959 logs an error3960 Deployment events3961 behaves like triggered Mattermost integration3962 notifies about deployment events3963 when the response is not successful3964 logs an error3965 on a protected branch3966 notification enabled only for default branch3967 behaves like untriggered Mattermost integration3968 does not notify about pipeline events3969 notification enabled only for protected branches3970 behaves like triggered Mattermost integration3971 notifies about pipeline events3972 when the response is not successful3973 logs an error3974 notification enabled only for default and protected branches3975 behaves like triggered Mattermost integration3976 notifies about pipeline events3977 when the response is not successful3978 logs an error3979 notification enabled for all branches3980 behaves like triggered Mattermost integration3981 notifies about pipeline events3982 when the response is not successful3983 logs an error3984SubmoduleHelper3985 as view helpers in view context3986 behaves like submodule_links3987 submodule on self3988 detects ssh on standard port3989 detects ssh on standard port without a username3990 detects ssh on non-standard port3991 detects ssh on non-standard port without a username3992 detects http on standard port3993 detects http on non-standard port3994 works with relative_url_root3995 works with subgroups3996 submodule on gist.github.com3997 detects ssh3998 detects http3999 detects https4000 handles urls with no .git on the end4001 returns original with non-standard url4002 submodule on github.com4003 detects ssh4004 detects http4005 detects https4006 handles urls with no .git on the end4007 returns original with non-standard url4008 in-repository submodule4009 in-repository4010 submodule on gitlab.com4011 detects ssh4012 detects http4013 detects https4014 handles urls with no .git on the end4015 handles urls with trailing whitespace4016 returns original with non-standard url4017 submodule on unsupported4018 sanitizes unsupported protocols4019 sanitizes unsupported protocols disguised as a repository URL4020 sanitizes invalid URL with extended ASCII4021 returns original4022 submodules with relative links4023 handles project under same group4024 handles trailing whitespace4025 handles project under another top group4026 repo path resolves to be located at root (namespace absent)4027 returns nil4028 repo path resolves to be located underneath current project path4029 returns nil because it is not possible to have repo nested under another repo4030 subgroup4031 handles referencing descendent group's project4032 handles referencing another top group's project4033 project in sub group4034 handles referencing ancestor group's project4035 personal project4036 handles referencing another personal project4037 unknown submodule4038 returns no links4039 as stand-alone module4040 behaves like submodule_links4041 submodule on self4042 detects ssh on standard port4043 detects ssh on standard port without a username4044 detects ssh on non-standard port4045 detects ssh on non-standard port without a username4046 detects http on standard port4047 detects http on non-standard port4048 works with relative_url_root4049 works with subgroups4050 submodule on gist.github.com4051 detects ssh4052 detects http4053 detects https4054 handles urls with no .git on the end4055 returns original with non-standard url4056 submodule on github.com4057 detects ssh4058 detects http4059 detects https4060 handles urls with no .git on the end4061 returns original with non-standard url4062 in-repository submodule4063 in-repository4064 submodule on gitlab.com4065 detects ssh4066 detects http4067 detects https4068 handles urls with no .git on the end4069 handles urls with trailing whitespace4070 returns original with non-standard url4071 submodule on unsupported4072 sanitizes unsupported protocols4073 sanitizes unsupported protocols disguised as a repository URL4074 sanitizes invalid URL with extended ASCII4075 returns original4076 submodules with relative links4077 handles project under same group4078 handles trailing whitespace4079 handles project under another top group4080 repo path resolves to be located at root (namespace absent)4081 returns nil4082 repo path resolves to be located underneath current project path4083 returns nil because it is not possible to have repo nested under another repo4084 subgroup4085 handles referencing descendent group's project4086 handles referencing another top group's project4087 project in sub group4088 handles referencing ancestor group's project4089 personal project4090 handles referencing another personal project4091 unknown submodule4092 returns no links4093Gitlab::ImportExport::Project::RelationTreeRestorer4094 when inside a group4095 behaves like import project successfully4096 imported project4097 has the project attributes and relations4098 with invalid relations4099 logs the invalid relation and its errors4100gitlab:cleanup rake tasks4101 cleanup:project_uploads4102 with a fixable orphaned project upload file4103 with DRY_RUN disabled4104 moves the file to its proper location4105 logs action as done4106 with DRY_RUN explicitly enabled4107 behaves like does not move the file4108 does not move the file4109 logs action as able to be done4110 with DRY_RUN set to an unknown value4111 behaves like does not move the file4112 does not move the file4113 logs action as able to be done4114 with DRY_RUN unset4115 behaves like does not move the file4116 does not move the file4117 logs action as able to be done4118 gitlab:cleanup:orphan_job_artifact_files4119 runs the task without errors4120 with DRY_RUN set to false4121 passes dry_run correctly4122 gitlab:cleanup:orphan_lfs_file_references4123 runs the task without errors4124 with DRY_RUN set to false4125 passes dry_run correctly4126 gitlab:cleanup:orphan_lfs_files4127 runs RemoveUnreferencedLfsObjectsWorker4128 gitlab:cleanup:remove_missed_source_branches4129 when dry run is true4130 behaves like does not remove any branches4131 does not delete any branches4132 and when a valid batch size is given4133 takes into account for the batch size4134 when dry run is false4135 deletes the branches4136 when a limit is set4137 deletes only one branch4138 when the branch has a merged and opened mr4139 does not delete the branch of the merged/open mr4140 when an valid batch size is given4141 deletes the branches4142 when an invalid batch size is given4143 behaves like does not remove any branches4144 does not delete any branches4145 when an invalid limit to delete is given4146 behaves like does not remove any branches4147 does not delete any branches4148 sessions4149 gitlab:cleanup:sessions:active_sessions_lookup_keys4150 runs the task without errors4151 removes expired active session lookup keys4152IssuablePolicy4153 #rules4154 when user is author of issuable4155 allows resolving notes4156 does not allow reading internal notes4157 when user is able to read project4158 enables user to read and update issuables4159 Timeline events4160 allows non-members to read time line events4161 disallows reporters from managing timeline events4162 allows developers to manage timeline events4163 when project is private4164 disallows user from reading and updating issuables from that project4165 when user belongs to the projects team4166 enables user to read and update issuables4167 Timeline events4168 disallows non-members from reading timeline events4169 allows guests to read time line events4170 disallows reporters from managing timeline events4171 allows developers to manage timeline events4172 when user is assignee of issuable4173 does not allow reading internal notes4174 when discussion is locked for the issuable4175 when the user is not a project member4176 can not create a note nor award emojis4177 does not allow resolving note4178 when the user is a project member4179 can create a note and award emojis4180 allows resolving notes4181 when user is anonymous4182 does not allow timelogs creation4183 when user is not a member of the project4184 does not allow timelogs creation4185 when user is not a member of the project but the author of the issuable4186 does not allow timelogs creation4187 does not allow reading internal notes4188 when user is a guest member of the project4189 does not allow timelogs creation4190 does not allow reading internal notes4191 when user is a guest member of the project and the author of the issuable4192 does not allow timelogs creation4193 when user is at least reporter of the project4194 allows timelogs creation4195 allows reading internal notes4196 when subject is a Merge Request4197 when can_read_merge_request is false4198 does not allow :read_issuable4199 when can_read_merge_request is true4200 allows :read_issuable4201 when subject is an Issue4202 when can_read_issue is false4203 does not allow :read_issuable4204 when can_read_issue is true4205 allows :read_issuable4206MergeRequests::AfterCreateService4207 #execute4208 creates a merge request open event4209 calls the merge request activity counter4210 creates a new merge request notification4211 writes diffs to the cache4212 creates cross references4213 creates a pipeline and updates the HEAD pipeline4214 executes hooks with default action4215 calls GroupMentionWorker4216 updates the prepared_at4217 increments the usage data counter of create event4218 tracks merge request creation in usage data4219 calls MergeRequests::LinkLfsObjectsService#execute4220 behaves like records an onboarding progress action4221 is expected to receive execute({:action=>:merge_request_created}) 1 time4222 when merge request is in unchecked state4223 does not change its state4224 when merge request is in preparing state4225 checks for mergeability4226 when preparing for mergeability fails4227 does not mark the merge request as unchecked4228 when preparing merge request fails4229 still checks for mergeability4230 todos4231 does not creates todos4232 when merge request is assigned to someone4233 creates a todo for new assignee4234 when reviewer is assigned4235 creates a todo for new reviewer4236 when saving references to issues that the created merge request closes4237 creates a `MergeRequestsClosingIssues` record for each issue4238 logging4239 logs specific events4240SentNotification4241 validation4242 note validity4243 when the project doesn't match the noteable's project4244 is invalid4245 when the project doesn't match the discussion project4246 is invalid4247 when the noteable project and discussion project match4248 is valid4249 .record4250 behaves like a successful sent notification4251 creates a new SentNotification4252 behaves like a non-sticky write4253 writes without sticking to primary4254 .record_note4255 for a discussion note4256 sets in_reply_to_discussion_id4257 behaves like a successful sent notification4258 creates a new SentNotification4259 behaves like a non-sticky write4260 writes without sticking to primary4261 for an individual note4262 sets in_reply_to_discussion_id4263 behaves like a successful sent notification4264 creates a new SentNotification4265 behaves like a non-sticky write4266 writes without sticking to primary4267 #unsubscribable?4268 behaves like an unsubscribable notification4269 for issue4270 is expected to be unsubscribable4271 behaves like an unsubscribable notification4272 for merge request4273 is expected to be unsubscribable4274 behaves like a non-unsubscribable notification4275 for a commit4276 is expected not to be unsubscribable4277 behaves like a non-unsubscribable notification4278 for a personal snippet4279 is expected not to be unsubscribable4280 behaves like a non-unsubscribable notification4281 for a project snippet4282 is expected not to be unsubscribable4283 #for_commit?4284 behaves like a non-commit notification4285 for a issue4286 is expected not to be for commit4287 behaves like a non-commit notification4288 for a merge request4289 is expected not to be for commit4290 behaves like a commit notification4291 for commit4292 is expected to be for commit4293 behaves like a non-commit notification4294 for a personal snippet4295 is expected not to be for commit4296 behaves like a non-commit notification4297 for a project snippet4298 is expected not to be for commit4299 #for_snippet?4300 behaves like a non-snippet notification4301 for a issue4302 is expected not to be for snippet4303 behaves like a non-snippet notification4304 for a merge request4305 is expected not to be for snippet4306 behaves like a non-snippet notification4307 for a commit4308 is expected not to be for snippet4309 behaves like a snippet notification4310 for personal snippet4311 is expected to be for snippet4312 behaves like a snippet notification4313 for project snippet4314 is expected to be for snippet4315 #create_reply4316 for issue4317 creates a comment on the issue4318 for issue comment4319 converts the comment to a discussion on the issue4320 for issue discussion4321 creates a reply on the discussion4322 for merge request4323 creates a comment on the merge_request4324 for merge request comment4325 converts the comment to a discussion on the merge request4326 for merge request diff discussion4327 creates a reply on the discussion4328 for merge request non-diff discussion4329 creates a reply on the discussion4330 for commit4331 creates a comment on the commit4332 for commit comment4333 creates a comment on the commit4334 for commit diff discussion4335 creates a reply on the discussion4336 for commit non-diff discussion4337 creates a reply on the discussion4338Gitlab::Redis::Pubsub4339 # order random4340 .store4341 with old format4342 behaves like redis store4343 instantiates Redis::Store4344 with the namespace4345 uses specified namespace4346 with new format4347 behaves like redis store4348 instantiates Redis::Store4349 with the namespace4350 uses specified namespace4351 behaves like redis_shared_examples4352 .config_file_name4353 when there is no config file anywhere4354 is expected to be nil4355 .store4356 with old format4357 behaves like redis store4358 instantiates Redis::Store4359 with the namespace4360 uses specified namespace4361 with new format4362 behaves like redis store4363 instantiates Redis::Store4364 with the namespace4365 uses specified namespace4366 .params4367 withstands mutation4368 when url contains unix socket reference4369 with old format4370 returns path key instead4371 with new format4372 returns path key instead4373 when url is host based4374 with old format4375 returns hash with host, port, db, and password4376 with new format4377 rails_env: "development", host: "development-host"4378 returns hash with host, port, db, and password4379 rails_env: "test", host: "test-host"4380 returns hash with host, port, db, and password4381 rails_env: "production", host: "production-host"4382 returns hash with host, port, db, and password4383 with redis cluster format4384 rails_env: "development", host: "development-master"4385 returns hash with cluster and password4386 rails_env: "test", host: "test-master"4387 returns hash with cluster and password4388 rails_env: "production", host: "production-master"4389 returns hash with cluster and password4390 .url4391 withstands mutation4392 when yml file with env variable4393 reads redis url from env variable4394 .version4395 returns a version4396 .with4397 when running on single-threaded runtime4398 instantiates a connection pool with size 54399 when running on multi-threaded runtime4400 instantiates a connection pool with a size based on the concurrency of the worker4401 when there is no config at all4402 can run an empty block4403 #db4404 with old format4405 returns the correct db4406 with new format4407 returns the correct db4408 with cluster-mode4409 returns the correct db4410 #sentinels4411 when sentinels are defined4412 rails_env: "development", hosts: ["development-replica1", "development-replica2"]4413 returns an array of hashes with host and port keys4414 rails_env: "test", hosts: ["test-replica1", "test-replica2"]4415 returns an array of hashes with host and port keys4416 rails_env: "production", hosts: ["production-replica1", "production-replica2"]4417 returns an array of hashes with host and port keys4418 when sentinels are not defined4419 returns nil4420 when cluster is defined4421 returns nil4422 #sentinels?4423 when sentinels are defined4424 returns true4425 when sentinels are not defined4426 is expected to eq nil4427 when cluster is defined4428 returns false4429 #raw_config_hash4430 returns old-style single url config in a hash4431 returns cluster config without url key in a hash4432 #parse_client_tls_options4433 when configuration does not have TLS related options4434 returns the coniguration as-is4435 when specified certificate file does not exist4436 raises error about missing certificate file4437 when specified key file does not exist4438 raises error about missing key file4439 when only certificate file is specified4440 renders resque.yml correctly4441 when only key file is specified4442 renders resque.yml correctly4443 when configuration valid TLS related options4444 converts cert_file and key_file appropriately4445 #fetch_config4446 raises an exception when the config file contains invalid yaml4447 when redis.yml exists4448 uses config/redis.yml4449 when no config file exsits4450 returns nil4451 when resque.yml exists4452 returns the config from resque.yml4453 #parse_client_tls_options4454 when configuration does not have TLS related options4455 returns the coniguration as-is4456 when specified certificate file does not exist4457 raises error about missing certificate file4458 when specified key file does not exist4459 raises error about missing key file4460 when only certificate file is specified4461 renders resque.yml correctly4462 when only key file is specified4463 renders resque.yml correctly4464 when configuration valid TLS related options4465 converts cert_file and key_file appropriately4466 .params4467 withstands mutation4468 when url contains unix socket reference4469 with old format4470 returns path key instead4471 with new format4472 returns path key instead4473 when url is host based4474 with old format4475 returns hash with host, port, db, and password4476 with new format4477 rails_env: "development", host: "development-host"4478 returns hash with host, port, db, and password4479 rails_env: "test", host: "test-host"4480 returns hash with host, port, db, and password4481 rails_env: "production", host: "production-host"4482 returns hash with host, port, db, and password4483 with redis cluster format4484 rails_env: "development", host: "development-master"4485 returns hash with cluster and password4486 rails_env: "test", host: "test-master"4487 returns hash with cluster and password4488 rails_env: "production", host: "production-master"4489 returns hash with cluster and password4490 #sentinels?4491 when sentinels are defined4492 returns true4493 when sentinels are not defined4494 is expected to eq nil4495 when cluster is defined4496 returns false4497 .url4498 withstands mutation4499 when yml file with env variable4500 reads redis url from env variable4501 #sentinels4502 when sentinels are defined4503 rails_env: "development", hosts: ["development-replica1", "development-replica2"]4504 returns an array of hashes with host and port keys4505 rails_env: "test", hosts: ["test-replica1", "test-replica2"]4506 returns an array of hashes with host and port keys4507 rails_env: "production", hosts: ["production-replica1", "production-replica2"]4508 returns an array of hashes with host and port keys4509 when sentinels are not defined4510 returns nil4511 when cluster is defined4512 returns nil4513 .version4514 returns a version4515 #db4516 with old format4517 returns the correct db4518 with new format4519 returns the correct db4520 with cluster-mode4521 returns the correct db4522 .config_file_name4523 when there is no config file anywhere4524 is expected to be nil4525 #fetch_config4526 when redis.yml exists4527 when the fallback has a redis.yml entry4528 is expected to eq {"fallback redis.yml"=>123}4529 and an instance config file exists4530 is expected to eq {"instance specific file"=>456}4531 and the instance has a redis.yml entry4532 is expected to eq {"instance redis.yml"=>789}4533 when no redis config file exsits4534 returns nil4535 when resque.yml exists4536 returns the config from resque.yml4537 #fetch_config4538 raises an exception when the config file contains invalid yaml4539 when redis.yml exists4540 uses config/redis.yml4541 when no config file exsits4542 returns nil4543 when resque.yml exists4544 returns the config from resque.yml4545 .with4546 when running on single-threaded runtime4547 instantiates a connection pool with size 54548 when running on multi-threaded runtime4549 instantiates a connection pool with a size based on the concurrency of the worker4550 when there is no config at all4551 can run an empty block4552 #raw_config_hash4553 returns old-style single url config in a hash4554 returns cluster config without url key in a hash4555Gitlab::Database::TablesTruncate4556 # order random4557 when truncating gitlab_main tables on the ci database4558 behaves like truncating legacy tables on a database4559 when the truncated tables are not locked for writes4560 raises an error that the tables are not locked for writes (PENDING: Skipping because ci is shared or doesn't not exist)4561 when the truncated tables are locked for writes4562 truncates the legacy tables (PENDING: Skipping because ci is shared or doesn't not exist)4563 does not affect the other tables (PENDING: Skipping because ci is shared or doesn't not exist)4564 logs the sql statements to the logger (PENDING: Skipping because ci is shared or doesn't not exist)4565 when running in dry_run mode4566 does not truncate the legacy tables if running in dry run mode (PENDING: Skipping because ci is shared or doesn't not exist)4567 when passing until_table parameter4568 with a table that exists4569 only truncates until the table specified (PENDING: Skipping because ci is shared or doesn't not exist)4570 with a table that does not exist4571 raises an error if the specified table does not exist (PENDING: Skipping because ci is shared or doesn't not exist)4572 when one of the attached partitions happened to be locked for writes4573 truncates the locked partition successfully (PENDING: Skipping because ci is shared or doesn't not exist)4574 with geo configured4575 does not truncate gitlab_geo tables (PENDING: Skipping because ci is shared or doesn't not exist)4576 #needs_truncation?4577 when running in a single database mode4578 example at ./spec/lib/gitlab/database/tables_truncate_spec.rb:361 (PENDING: Skipping because ci is shared or doesn't not exist)4579 when running in a multiple database mode4580 with main data in ci database4581 example at ./spec/lib/gitlab/database/tables_truncate_spec.rb:370 (PENDING: Skipping because ci is shared or doesn't not exist)4582 with no main data in ci datatabase4583 example at ./spec/lib/gitlab/database/tables_truncate_spec.rb:379 (PENDING: Skipping because ci is shared or doesn't not exist)4584 supresses some QueryAnalyzers (PENDING: Skipping because ci is shared or doesn't not exist)4585 when running with multiple shared databases4586 raises an error when truncating the main database that it is a single database setup (PENDING: Skipping because ci is shared or doesn't not exist)4587 raises an error when truncating the ci database that it is a single database setup (PENDING: Skipping because ci is shared or doesn't not exist)4588 when truncating gitlab_ci tables on the main database4589 behaves like truncating legacy tables on a database4590 when the truncated tables are not locked for writes4591 raises an error that the tables are not locked for writes (PENDING: Skipping because ci is shared or doesn't not exist)4592 when the truncated tables are locked for writes4593 truncates the legacy tables (PENDING: Skipping because ci is shared or doesn't not exist)4594 does not affect the other tables (PENDING: Skipping because ci is shared or doesn't not exist)4595 logs the sql statements to the logger (PENDING: Skipping because ci is shared or doesn't not exist)4596 when running in dry_run mode4597 does not truncate the legacy tables if running in dry run mode (PENDING: Skipping because ci is shared or doesn't not exist)4598 when passing until_table parameter4599 with a table that exists4600 only truncates until the table specified (PENDING: Skipping because ci is shared or doesn't not exist)4601 with a table that does not exist4602 raises an error if the specified table does not exist (PENDING: Skipping because ci is shared or doesn't not exist)4603 when one of the attached partitions happened to be locked for writes4604 truncates the locked partition successfully (PENDING: Skipping because ci is shared or doesn't not exist)4605 with geo configured4606 does not truncate gitlab_geo tables (PENDING: Skipping because ci is shared or doesn't not exist)4607 when running in a single database mode4608 raises an error when truncating the main database that it is a single database setup (PENDING: Skipping because ci is shared or doesn't not exist)4609 raises an error when truncating the ci database that it is a single database setup (PENDING: Skipping because ci is shared or doesn't not exist)4610Integrations::ChatMessage::PipelineMessage4611 returns an empty pretext4612 returns the pipeline summary in the activity's title4613 returns pipeline name4614 returns a link to the project in the activity's subtitle4615 returns the build duration in the activity's text property4616 returns the user's avatar image URL in the activity's image property4617 returns the pipeline summary as the attachment's fallback property4618 returns 'good' as the attachment's color property4619 returns the committer's name and username as the attachment's author_name property4620 returns the committer's avatar URL as the attachment's author_icon property4621 returns the committer's GitLab profile URL as the attachment's author_link property4622 returns the pipeline ID, status, and duration as the attachment's title property4623 returns the pipeline URL as the attachment's title_link property4624 returns three attachment fields4625 returns the commit message as the attachment's second field property4626 returns the ref name and link as the attachment's second field property4627 returns the project's name as the attachment's footer property4628 returns the project's avatar URL as the attachment's footer_icon property4629 returns the pipeline's timestamp as the attachment's ts property4630 behaves like Integrations::ChatMessage4631 when input contains link markup4632 strips all link markup characters4633 when the pipeline failed4634 returns the summary with a 'failed' status4635 when the pipeline passed with warnings4636 returns the summary with a 'passed with warnings' status4637 when no user is provided because the pipeline was triggered by the API4638 returns the summary with 'API' as the username4639 when the user does not have an avatar4640 returns an empty string in the activity's image property4641 when the pipeline failed4642 returns 'danger' as the attachment's color property4643 when the pipeline passed with warnings4644 returns 'warning' as the attachment's color property4645 when no user is provided because the pipeline was triggered by the API4646 returns the committer's name and username as the attachment's author_name property4647 returns nil as the attachment's author_icon property4648 returns nil as the attachment's author_link property4649 when a job in the pipeline fails4650 returns five attachment fields4651 returns the stage name and link to the 'Failed jobs' tab on the pipeline's page as the attachment's third field property4652 returns the job name and link as the attachment's fourth field property4653 when lots of jobs across multiple stages fail4654 returns the stage names and links to the 'Failed jobs' tab on the pipeline's page as the attachment's third field property4655 returns the job names and links as the attachment's fourth field property4656 when jobs succeed on retries4657 do not return a job which succeeded on retry4658 when jobs failed even on retries4659 returns only first instance of the failed job4660 when the CI config file contains a YAML error4661 returns four attachment fields4662 returns the YAML error deatils as the attachment's third field property4663 when rendering markdown4664 returns the pipeline summary as the attachments in markdown format4665 #attachment_color4666 when success4667 is expected to eq "good"4668 when passed with warnings4669 is expected to eq "warning"4670 when failed4671 is expected to eq "danger"4672Gitlab::Ci::Pipeline::Chain::Validate::External4673 #perform!4674 respects the defined payload schema4675 with configuration values in ApplicationSetting4676 uses those values rather than env vars or defaults4677 with EXTERNAL_VALIDATION_SERVICE_TIMEOUT defined4678 with valid value4679 uses defined timeout4680 with invalid value4681 uses default timeout4682 when EXTERNAL_VALIDATION_SERVICE_TOKEN is set4683 passes token in X-Gitlab-Token header4684 when validation returns 200 OK4685 behaves like successful external authorization4686 does not drop the pipeline4687 does not break the chain4688 logs the authorization4689 returns expected payload4690 with existing jobs from other project's alive pipelines4691 returns the expected total_builds_count4692 credit_card4693 with no registered credit_card4694 returns the expected credit card counts4695 with a registered credit card4696 returns the expected credit card counts4697 with similar credit cards registered by other users4698 returns the expected credit card counts4699 with similar holder names registered by other users4700 returns the expected credit card counts4701 when validation returns 404 Not Found4702 behaves like successful external authorization4703 does not drop the pipeline4704 does not break the chain4705 logs the authorization4706 returns expected payload4707 with existing jobs from other project's alive pipelines4708 returns the expected total_builds_count4709 credit_card4710 with no registered credit_card4711 returns the expected credit card counts4712 with a registered credit card4713 returns the expected credit card counts4714 with similar credit cards registered by other users4715 returns the expected credit card counts4716 with similar holder names registered by other users4717 returns the expected credit card counts4718 when validation returns 500 Internal Server Error4719 behaves like successful external authorization4720 does not drop the pipeline4721 does not break the chain4722 logs the authorization4723 returns expected payload4724 with existing jobs from other project's alive pipelines4725 returns the expected total_builds_count4726 credit_card4727 with no registered credit_card4728 returns the expected credit card counts4729 with a registered credit card4730 returns the expected credit card counts4731 with similar credit cards registered by other users4732 returns the expected credit card counts4733 with similar holder names registered by other users4734 returns the expected credit card counts4735 when validation raises exceptions4736 logs exceptions4737 behaves like successful external authorization4738 does not drop the pipeline4739 does not break the chain4740 logs the authorization4741 returns expected payload4742 with existing jobs from other project's alive pipelines4743 returns the expected total_builds_count4744 credit_card4745 with no registered credit_card4746 returns the expected credit card counts4747 with a registered credit card4748 returns the expected credit card counts4749 with similar credit cards registered by other users4750 returns the expected credit card counts4751 with similar holder names registered by other users4752 returns the expected credit card counts4753 when validation returns 406 Not Acceptable4754 drops the pipeline4755 breaks the chain4756 logs the authorization4757 when save_incompleted is false4758 adds errors to the pipeline without dropping it4759 breaks the chain4760 logs the authorization4761Gitlab::CycleAnalytics::Permissions4762 user with no relation to the project4763 has no permissions to issue stage4764 has no permissions to test stage4765 has no permissions to staging stage4766 has no permissions to code stage4767 has no permissions to review stage4768 has no permissions to plan stage4769 user is maintainer4770 has permissions to issue stage4771 has permissions to test stage4772 has permissions to staging stage4773 has permissions to code stage4774 has permissions to review stage4775 has permissions to plan stage4776 user has no build permissions4777 has permissions to issue stage4778 has no permissions to test stage4779 has no permissions to staging stage4780 user has no merge request permissions4781 has permissions to issue stage4782 has no permissions to code stage4783 has no permissions to review stage4784 user has no issue permissions4785 has permissions to code stage4786 has no permissions to issue stage4787Integrations::Pumble4788 behaves like chat integration4789 Associations4790 is expected to belong to project required: false4791 Validations4792 when integration is active4793 is expected to validate that :webhook cannot be empty/falsy4794 behaves like issue tracker integration URL attribute4795 is expected to allow :webhook to be ‹"https://example.com"›4796 is expected not to allow :webhook to be ‹"example.com"›4797 is expected not to allow :webhook to be ‹"ftp://example.com"›4798 is expected not to allow :webhook to be ‹"herp-and-derp"›4799 when integration is inactive4800 is expected not to validate that :webhook cannot be empty/falsy4801 .supported_events4802 does not support deployment_events4803 #execute4804 with push events4805 behaves like triggered Pumble integration4806 calls Pumble API4807 with default branch4808 when only default branch are to be notified4809 behaves like triggered Pumble integration4810 calls Pumble API4811 when only protected branches are to be notified4812 behaves like untriggered Pumble integration4813 does not call Pumble API4814 when default and protected branches are to be notified4815 behaves like triggered Pumble integration4816 calls Pumble API4817 when all branches are to be notified4818 behaves like triggered Pumble integration4819 calls Pumble API4820 with protected branch4821 when only default branch are to be notified4822 behaves like untriggered Pumble integration4823 does not call Pumble API4824 when only protected branches are to be notified4825 behaves like triggered Pumble integration4826 calls Pumble API4827 when default and protected branches are to be notified4828 behaves like triggered Pumble integration4829 calls Pumble API4830 when all branches are to be notified4831 behaves like triggered Pumble integration4832 calls Pumble API4833 with neither default nor protected branch4834 when only default branch are to be notified4835 behaves like untriggered Pumble integration4836 does not call Pumble API4837 when only protected branches are to be notified4838 behaves like untriggered Pumble integration4839 does not call Pumble API4840 when default and protected branches are to be notified4841 behaves like untriggered Pumble integration4842 does not call Pumble API4843 when all branches are to be notified4844 behaves like triggered Pumble integration4845 calls Pumble API4846 with issue events4847 behaves like triggered Pumble integration4848 calls Pumble API4849 with merge events4850 behaves like triggered Pumble integration4851 calls Pumble API4852 with wiki page events4853 behaves like triggered Pumble integration4854 calls Pumble API4855 with note events4856 with commit comment4857 behaves like triggered Pumble integration4858 calls Pumble API4859 with merge request comment4860 behaves like triggered Pumble integration4861 calls Pumble API4862 with issue comment4863 behaves like triggered Pumble integration4864 calls Pumble API4865 with snippet comment4866 behaves like triggered Pumble integration4867 calls Pumble API4868 with pipeline events4869 with failed pipeline4870 behaves like triggered Pumble integration4871 calls Pumble API4872 with succeeded pipeline4873 with default notify_only_broken_pipelines4874 does not call Pumble API4875 when notify_only_broken_pipelines is false4876 behaves like triggered Pumble integration4877 calls Pumble API4878 with default branch4879 when only default branch are to be notified4880 behaves like triggered Pumble integration4881 calls Pumble API4882 when only protected branches are to be notified4883 behaves like untriggered Pumble integration4884 does not call Pumble API4885 when default and protected branches are to be notified4886 behaves like triggered Pumble integration4887 calls Pumble API4888 when all branches are to be notified4889 behaves like triggered Pumble integration4890 calls Pumble API4891 with protected branch4892 when only default branch are to be notified4893 behaves like untriggered Pumble integration4894 does not call Pumble API4895 when only protected branches are to be notified4896 behaves like triggered Pumble integration4897 calls Pumble API4898 when default and protected branches are to be notified4899 behaves like triggered Pumble integration4900 calls Pumble API4901 when all branches are to be notified4902 behaves like triggered Pumble integration4903 calls Pumble API4904 with neither default nor protected branch4905 when only default branch are to be notified4906 behaves like untriggered Pumble integration4907 does not call Pumble API4908 when only protected branches are to be notified4909 behaves like untriggered Pumble integration4910 does not call Pumble API4911 when default and protected branches are to be notified4912 behaves like untriggered Pumble integration4913 does not call Pumble API4914 when all branches are to be notified4915 behaves like triggered Pumble integration4916 calls Pumble API4917 deployment events4918 behaves like untriggered Pumble integration4919 does not call Pumble API4920Wikis::CreateAttachmentService4921 initialization4922 author commit info4923 does not raise error if user is nil4924 when no author info provided4925 fills author_email and author_name from current_user info4926 when author info provided4927 fills author_email and author_name from params4928 commit message4929 when no commit message provided4930 sets a default commit message4931 when commit message provided4932 use the commit message from params4933 branch name4934 when no branch provided4935 sets the branch from the wiki default_branch4936 when branch provided4937 use the commit message from params4938 #parse_file_name4939 when file_name4940 has white spaces4941 replaces all of them with '_'4942 has other invalid characters4943 replaces all of them with '_'4944 is not present4945 returns error4946 length4947 is bigger than 2554948 truncates file name4949 is less or equal to 255 does not return error4950 does not return error4951 when user4952 does not have permission4953 behaves like wiki attachment user validations4954 returns error4955 is nil4956 behaves like wiki attachment user validations4957 returns error4958 behaves like Wikis::CreateAttachmentService#execute4959 adds file to the repository4960 creates wiki repository if it does not exist4961 creates wiki repository4962 if an error is raised creating the repository4963 catches error and return gracefully4964 creates branch if it does not exists4965 is expected to eq "new_branch"4966 returns4967 returns related information4968MetricsServer4969 when targeting puma4970 .fork4971 when in parent process4972 forks into a new process and detaches it4973 when in child process4974 starts the metrics server with the given arguments4975 resets signal handlers from parent process4976 .spawn4977 spawns a new server process and returns its PID4978 when targeting sidekiq4979 .fork4980 when in parent process4981 forks into a new process and detaches it4982 when in child process4983 starts the metrics server with the given arguments4984 resets signal handlers from parent process4985 .spawn4986 spawns a new server process and returns its PID4987 when targeting invalid target4988 .fork4989 raises an error4990 .spawn4991 raises an error4992 for puma4993 behaves like a metrics exporter4994 #start4995 configures ::Prometheus::Client4996 ensures that metrics directory exists in correct mode (0700)4997 starts a metrics server4998 starts a RubySampler instance4999 when wipe_metrics_dir is true5000 removes any old metrics files5001 when wipe_metrics_dir is false5002 does not remove any old metrics files5003 #name5004 is expected to eq "web_exporter"5005 for sidekiq5006 behaves like a metrics exporter5007 #start5008 configures ::Prometheus::Client5009 ensures that metrics directory exists in correct mode (0700)5010 starts a metrics server5011 starts a RubySampler instance5012 when wipe_metrics_dir is true5013 removes any old metrics files5014 when wipe_metrics_dir is false5015 does not remove any old metrics files5016 #name5017 is expected to eq "sidekiq_exporter"5018 .start_for_puma5019 spawns a server process and supervises it5020 when the supervisor callback is invoked5021 restarts the metrics server5022 .start_for_sidekiq5023 forks the parent process5024 .name5025 for puma5026 is expected to eq "web_exporter"5027 for sidekiq5028 is expected to eq "sidekiq_exporter"5029 for invalid target5030 raises error5031Ci::DailyBuildGroupReportResult5032 associations5033 is expected to belong to last_pipeline class_name => Ci::Pipeline required: false inverse_of => daily_build_group_report_results5034 is expected to belong to project required: false5035 is expected to belong to group required: false5036 validations5037 when attributes are valid5038 returns no errors5039 when data is invalid5040 returns errors5041 .upsert_reports5042 creates or updates matching report results5043 when given data is empty5044 does nothing5045 scopes5046 .by_projects5047 returns records by projects5048 .by_group5049 returns records by group5050 .by_ref_path5051 returns coverages by ref_path5052 .ordered_by_date_and_group_name5053 returns coverages ordered by data and group name5054 .by_dates5055 when daily coverages exist during those dates5056 returns coverages5057 .with_coverage5058 returns data with coverage5059 .with_default_branch5060 when coverage for the default branch exist5061 returns coverage with the default branch5062 when coverage for the default branch does not exist5063 returns an empty collection5064 behaves like cleanup by a loose foreign key5065 cleans up (delete or nullify) the model5066 behaves like cleanup by a loose foreign key5067 cleans up (delete or nullify) the model5068TodoPolicy5069 own_todo5070 user: user1, todo: todo1, allowed: true5071 behaves like grants the expected permissions5072 is expected to be allowed :read_todo5073 user: user2, todo: todo2, allowed: true5074 behaves like grants the expected permissions5075 is expected to be allowed :read_todo5076 user: user1, todo: todo2, allowed: false5077 behaves like grants the expected permissions5078 is expected to be disallowed :read_todo5079 user: user1, todo: todo3, allowed: false5080 behaves like grants the expected permissions5081 is expected to be disallowed :read_todo5082 user: user2, todo: todo1, allowed: false5083 behaves like grants the expected permissions5084 is expected to be disallowed :read_todo5085 user: user2, todo: todo4, allowed: false5086 behaves like grants the expected permissions5087 is expected to be disallowed :read_todo5088 user: user3, todo: todo1, allowed: false5089 behaves like grants the expected permissions5090 is expected to be disallowed :read_todo5091 user: user3, todo: todo2, allowed: false5092 behaves like grants the expected permissions5093 is expected to be disallowed :read_todo5094 user: user3, todo: todo3, allowed: false5095 behaves like grants the expected permissions5096 is expected to be disallowed :read_todo5097 user: user3, todo: todo4, allowed: false5098 behaves like grants the expected permissions5099 is expected to be disallowed :read_todo5100 user: user2, todo: todo3, allowed: false5101 behaves like grants the expected permissions5102 is expected to be disallowed :read_todo5103 read_note5104 user: reporter, todo: no_note_todo1, allowed: true5105 behaves like grants the expected permissions5106 is expected to be allowed :read_todo5107 behaves like grants the expected permissions5108 is expected to be allowed :update_todo5109 user: reporter, todo: note_todo1, allowed: true5110 behaves like grants the expected permissions5111 is expected to be allowed :read_todo5112 behaves like grants the expected permissions5113 is expected to be allowed :update_todo5114 user: reporter, todo: internal_note_todo1, allowed: true5115 behaves like grants the expected permissions5116 is expected to be allowed :read_todo5117 behaves like grants the expected permissions5118 is expected to be allowed :update_todo5119 user: guest, todo: no_note_todo2, allowed: true5120 behaves like grants the expected permissions5121 is expected to be allowed :read_todo5122 behaves like grants the expected permissions5123 is expected to be allowed :update_todo5124 user: guest, todo: note_todo2, allowed: true5125 behaves like grants the expected permissions5126 is expected to be allowed :read_todo5127 behaves like grants the expected permissions5128 is expected to be allowed :update_todo5129 user: guest, todo: internal_note_todo2, allowed: false5130 behaves like grants the expected permissions5131 is expected to be disallowed :read_todo5132 behaves like grants the expected permissions5133 is expected to be disallowed :update_todo5134 user: non_member, todo: no_note_todo3, allowed: false5135 behaves like grants the expected permissions5136 is expected to be disallowed :read_todo5137 behaves like grants the expected permissions5138 is expected to be disallowed :update_todo5139 user: non_member, todo: note_todo3, allowed: false5140 behaves like grants the expected permissions5141 is expected to be disallowed :read_todo5142 behaves like grants the expected permissions5143 is expected to be disallowed :update_todo5144 user: non_member, todo: internal_note_todo3, allowed: false5145 behaves like grants the expected permissions5146 is expected to be disallowed :read_todo5147 behaves like grants the expected permissions5148 is expected to be disallowed :update_todo5149Gitlab::Email::Handler::CreateNoteOnIssuableHandler5150 behaves like reply processing shared examples5151 when the user could not be found5152 raises a UserNotFoundError5153 when the user is not authorized to the project5154 raises a ProjectNotFound5155 behaves like note handler shared examples5156 when the noteable could not be found5157 raises a NoteableNotFoundError5158 when the note could not be saved5159 raises an InvalidNoteError5160 because the note was update commands only5161 and current user cannot update noteable5162 does not raise an error5163 and current user can update noteable5164 does not raise an error5165 when the note contains quick actions5166 and current user cannot update the noteable5167 only executes the commands that the user can perform5168 and current user can update noteable5169 posts a note and updates the noteable5170 when the reply is blank5171 allows email to only have quoted text5172 when discussion is locked5173 behaves like checks permissions on noteable examples5174 when user has access5175 creates a comment5176 when user does not have access5177 raises UserNotAuthorizedError5178 when everything is fine5179 adds all attachments5180 when the service desk5181 is enabled5182 when issues are enabled for everyone5183 creates a comment5184 when quick actions are present5185 when author is a normal user5186 extracted the quick actions5187 when issues are protected members only5188 creates a comment5189 when issues are disabled5190 does not create a comment5191 when the recipient address does not include a mail key5192 raises an UnknownIncomingEmail5193 when issue is confidential5194 behaves like checks permissions on noteable examples5195 when user has access5196 creates a comment5197 when user does not have access5198 raises UserNotAuthorizedError5199Note ResolvableNote5200 resolvability scopes5201 .potentially_resolvable5202 includes diff and discussion notes on issues and merge requests5203 .resolvable5204 includes non-system diff and discussion notes on issues and merge requests5205 .resolved5206 includes resolved non-system diff and discussion notes on issues and merge requests5207 .unresolved5208 includes non-resolved non-system diff and discussion notes on issues and merge requests5209 .resolve!5210 resolves only the resolvable, not yet resolved notes5211 .unresolve!5212 unresolves the resolved notes5213 #resolvable?5214 when potentially resolvable5215 when a system note5216 returns false5217 when a regular note5218 returns true5219 when not potentially resolvable5220 returns false5221 #to_be_resolved?5222 when not resolvable5223 returns false5224 when resolvable5225 when resolved5226 returns false5227 when not resolved5228 returns true5229 #resolved?5230 when not resolvable5231 returns false5232 when resolvable5233 when the note has been resolved5234 returns true5235 when the note has not been resolved5236 returns false5237 #resolve!5238 when not resolvable5239 returns false5240 doesn't set resolved_at5241 doesn't set resolved_by5242 doesn't mark as resolved5243 when resolvable5244 when already resolved5245 returns false5246 doesn't change resolved_at5247 doesn't change resolved_by5248 doesn't change resolved status5249 when not yet resolved5250 returns true5251 sets resolved_at5252 sets resolved_by5253 marks as resolved5254 updates the updated_at timestamp5255 #unresolve!5256 when not resolvable5257 returns false5258 when resolvable5259 when resolved5260 returns true5261 unsets resolved_at5262 unsets resolved_by5263 unmarks as resolved5264 updates the updated_at timestamp5265 when not resolved5266 returns false5267 #potentially_resolvable?5268 returns false if noteable could not be found5269MergeRequests::RequestReviewService5270 #execute5271 invalid permissions5272 behaves like failed service execution5273 returns an error5274 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated5275 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times5276 reviewer does not exist5277 behaves like failed service execution5278 returns an error5279 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated5280 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times5281 reviewer exists5282 returns success5283 updates reviewers state5284 sends email to reviewer5285 creates a new todo for the reviewer5286 behaves like triggers GraphQL subscription mergeRequestReviewersUpdated5287 is expected to receive merge_request_reviewers_updated(#<MergeRequest id:110 namespace483/project-487!1>) 1 time5288Banzai::Filter::References::ReferenceFilter5289 #each_node5290 iterates over the nodes in a document5291 returns an Enumerator when no block is given5292 skips links with a "gfm" class5293 skips text nodes in pre elements5294 skips text nodes in inline diff elements5295 #nodes5296 returns an Array of the HTML nodes5297 #replace_text_when_pattern_matches5298 when node has no reference pattern5299 skips node5300 behaves like replaces document node5301 when parent has only one node5302 behaves like replaces text5303 when content didnt change5304 does not replace link node with html5305 when link node has changed5306 replaces reference node5307 calls replace_and_update_new_nodes5308 stores filtered new nodes5309 when parent has multiple nodes5310 when pattern matches in the first node5311 behaves like replaces text5312 when content didnt change5313 does not replace link node with html5314 when link node has changed5315 replaces reference node5316 calls replace_and_update_new_nodes5317 stores filtered new nodes5318 when pattern matches in the middle node5319 behaves like replaces text5320 when content didnt change5321 does not replace link node with html5322 when link node has changed5323 replaces reference node5324 calls replace_and_update_new_nodes5325 stores filtered new nodes5326 when pattern matches in the last node5327 behaves like replaces text5328 when content didnt change5329 does not replace link node with html5330 when link node has changed5331 replaces reference node5332 calls replace_and_update_new_nodes5333 stores filtered new nodes5334 #replace_link_node_with_text5335 behaves like replaces document node5336 when parent has only one node5337 behaves like replaces text5338 when content didnt change5339 does not replace link node with html5340 when link node has changed5341 replaces reference node5342 calls replace_and_update_new_nodes5343 stores filtered new nodes5344 when parent has multiple nodes5345 when pattern matches in the first node5346 behaves like replaces text5347 when content didnt change5348 does not replace link node with html5349 when link node has changed5350 replaces reference node5351 calls replace_and_update_new_nodes5352 stores filtered new nodes5353 when pattern matches in the middle node5354 behaves like replaces text5355 when content didnt change5356 does not replace link node with html5357 when link node has changed5358 replaces reference node5359 calls replace_and_update_new_nodes5360 stores filtered new nodes5361 when pattern matches in the last node5362 behaves like replaces text5363 when content didnt change5364 does not replace link node with html5365 when link node has changed5366 replaces reference node5367 calls replace_and_update_new_nodes5368 stores filtered new nodes5369 #replace_link_node_with_href5370 behaves like replaces document node5371 when parent has only one node5372 behaves like replaces text5373 when content didnt change5374 does not replace link node with html5375 when link node has changed5376 replaces reference node5377 calls replace_and_update_new_nodes5378 stores filtered new nodes5379 when parent has multiple nodes5380 when pattern matches in the first node5381 behaves like replaces text5382 when content didnt change5383 does not replace link node with html5384 when link node has changed5385 replaces reference node5386 calls replace_and_update_new_nodes5387 stores filtered new nodes5388 when pattern matches in the middle node5389 behaves like replaces text5390 when content didnt change5391 does not replace link node with html5392 when link node has changed5393 replaces reference node5394 calls replace_and_update_new_nodes5395 stores filtered new nodes5396 when pattern matches in the last node5397 behaves like replaces text5398 when content didnt change5399 does not replace link node with html5400 when link node has changed5401 replaces reference node5402 calls replace_and_update_new_nodes5403 stores filtered new nodes5404 #call_and_update_nodes5405 updates all new nodes5406 .call5407 updates all nodes5408 abstract methods5409 #references_in5410 raises NotImplementedError5411 #object_link_filter5412 raises NotImplementedError5413Tooling::JobMetrics5414 # order random5415 #update_tag5416 when the tag to update is not in the default tags list5417 returns a warning to the user5418 does not write to the metrics file5419 when the tag to update is in the default tags list5420 calls the update_file method with the correct arguments5421 #load_metrics_file5422 when the metrics file does not exist on disk5423 returns nil5424 when the metrics file exists on disk5425 when the metrics file does not contain valid JSON5426 returns nil5427 when the metrics file contains valid JSON5428 returns the content of the file as a hash with symbolized keys5429 #time5430 when the CI_PIPELINE_CREATED_AT env variable is set5431 returns the correct time5432 when the CI_PIPELINE_CREATED_AT env variable is not set5433 returns the current time5434 #default_fields5435 returns the expected fields keys5436 when an ENV variable is not set5437 replaces the value with nil5438 #default_tags5439 returns the expected tags keys5440 when an ENV variable is not set5441 replaces the value with nil5442 #valid_metrics_file?5443 when the metrics file cannot be loaded in memory5444 returns false5445 when the metrics file can be loaded in memory5446 when the metrics file validation succeeds5447 returns true5448 when the metrics file validation fails5449 returns false5450 #initialize5451 when a path is given5452 instantiates the object5453 sets the correct path for the metrics file5454 when a path is not given5455 when the JOB_METRICS_FILE_PATH env variable is set5456 instantiates the object5457 sets the correct path for the metrics file5458 when the JOB_METRICS_FILE_PATH env variable is not set5459 raises an error5460 #default_metrics5461 returns the expected metrics keys5462 #create_metrics_file5463 when a valid metrics file exists5464 prints a message to the user5465 does not overwrite the existing metrics file5466 when a valid metrics file does not exist5467 persists the metrics file5468 #update_file5469 when the metrics file is not valid5470 returns a warning to the user5471 does not write to the metrics file5472 when the metrics file is valid5473 when updating a tag5474 updates the tag value5475 when updating a field5476 updates the field value5477 #persist_metrics_file5478 when the metrics hash is not valid5479 returns a warning to the user5480 does not write to the metrics file5481 when the metrics hash is valid5482 persists the metrics file5483 #update_field5484 when the field to update is not in the default fields list5485 returns a warning to the user5486 does not write to the metrics file5487 when the field to update is in the default fields list5488 calls the update_file method with the correct arguments5489 #valid_metrics?5490 metrics hash keys5491 when it is missing a key5492 returns false5493 when it has an extra key5494 returns false5495 metrics hash tags keys5496 when it is missing a key5497 returns false5498 when it has an extra key5499 returns false5500 metrics hash fields keys5501 when it is missing a key5502 returns false5503 when it has an extra key5504 returns false5505 when the metrics hash is valid5506 returns true5507 #push_metrics5508 when the metrics file is not valid5509 returns a warning to the user5510 does not write to the metrics file5511 when the metrics file is valid5512 pushes the data to InfluxDB5513 sets the job_duration_seconds field5514 when we are missing ENV variables to push to influxDB5515 displays an error to the user5516 when pushing the data to InfluxDB raises an exception5517 displays an error to the user5518 when some tags/fields are empty/nil5519 removes the metrics with empty/nil values from the metrics list5520Gitlab::ImportExport::Json::StreamingSerializer5521 #execute5522 calls json_writer.write_attributes with proper params5523 with many relations5524 calls json_writer.write_relation_array with proper params and clears SafeRequestStore5525 logs the relation name and the number of records to export5526 default relation ordering5527 orders exported issues by primary key(:id)5528 custom relation ordering ascending5529 orders exported issues by custom column(relative_position)5530 custom relation ordering descending5531 orders exported issues by custom column(relative_position)5532 with single relation5533 calls json_writer.write_relation with proper params5534 logs the relation name5535 with array relation5536 calls json_writer.write_relation_array with proper params5537 logs the relation name and the number of records to export5538 load balancing5539 reads from replica5540 with inaccessible associations5541 conditional export of included associations5542 when association is exportable5543 behaves like record with exportable associations5544 includes exportable association5545 when an association is not exportable5546 behaves like record with exportable associations5547 includes exportable association5548 when association does not respond to exportable_association?5549 behaves like record with exportable associations5550 includes exportable association5551 export of included restricted associations5552 when the association is restricted5553 when some association records are exportable5554 behaves like record with exportable associations5555 includes exportable association5556 when all association records are exportable5557 behaves like record with exportable associations5558 includes exportable association5559 when the single association record is exportable5560 behaves like record with exportable associations5561 includes exportable association5562 when the single association record is not exportable5563 behaves like record with exportable associations5564 includes exportable association5565 when the associations are not restricted5566 behaves like record with exportable associations5567 includes exportable association5568 #serialize_relation5569 when record is a merge request5570 removes cached external diff5571Gitlab::Redis::Sessions5572 behaves like redis_new_instance_shared_examples5573 behaves like redis_shared_examples5574 .config_file_name5575 when there is no config file anywhere5576 is expected to be nil5577 .store5578 with old format5579 behaves like redis store5580 instantiates Redis::Store5581 with the namespace5582 uses specified namespace5583 with new format5584 behaves like redis store5585 instantiates Redis::Store5586 with the namespace5587 uses specified namespace5588 .params5589 withstands mutation5590 when url contains unix socket reference5591 with old format5592 returns path key instead5593 with new format5594 returns path key instead5595 when url is host based5596 with old format5597 returns hash with host, port, db, and password5598 with new format5599 rails_env: "development", host: "development-host"5600 returns hash with host, port, db, and password5601 rails_env: "test", host: "test-host"5602 returns hash with host, port, db, and password5603 rails_env: "production", host: "production-host"5604 returns hash with host, port, db, and password5605 with redis cluster format5606 rails_env: "development", host: "development-master"5607 returns hash with cluster and password5608 rails_env: "test", host: "test-master"5609 returns hash with cluster and password5610 rails_env: "production", host: "production-master"5611 returns hash with cluster and password5612 .url5613 withstands mutation5614 when yml file with env variable5615 reads redis url from env variable5616 .version5617 returns a version5618 .with5619 when running on single-threaded runtime5620 instantiates a connection pool with size 55621 when running on multi-threaded runtime5622 instantiates a connection pool with a size based on the concurrency of the worker5623 when there is no config at all5624 can run an empty block5625 #db5626 with old format5627 returns the correct db5628 with new format5629 returns the correct db5630 with cluster-mode5631 returns the correct db5632 #sentinels5633 when sentinels are defined5634 rails_env: "development", hosts: ["development-replica1", "development-replica2"]5635 returns an array of hashes with host and port keys5636 rails_env: "test", hosts: ["test-replica1", "test-replica2"]5637 returns an array of hashes with host and port keys5638 rails_env: "production", hosts: ["production-replica1", "production-replica2"]5639 returns an array of hashes with host and port keys5640 when sentinels are not defined5641 returns nil5642 when cluster is defined5643 returns nil5644 #sentinels?5645 when sentinels are defined5646 returns true5647 when sentinels are not defined5648 is expected to eq nil5649 when cluster is defined5650 returns false5651 #raw_config_hash5652 returns old-style single url config in a hash5653 returns cluster config without url key in a hash5654 #parse_client_tls_options5655 when configuration does not have TLS related options5656 returns the coniguration as-is5657 when specified certificate file does not exist5658 raises error about missing certificate file5659 when specified key file does not exist5660 raises error about missing key file5661 when only certificate file is specified5662 renders resque.yml correctly5663 when only key file is specified5664 renders resque.yml correctly5665 when configuration valid TLS related options5666 converts cert_file and key_file appropriately5667 #fetch_config5668 raises an exception when the config file contains invalid yaml5669 when redis.yml exists5670 uses config/redis.yml5671 when no config file exsits5672 returns nil5673 when resque.yml exists5674 returns the config from resque.yml5675 #fetch_config5676 when redis.yml exists5677 when the fallback has a redis.yml entry5678 is expected to eq {"fallback redis.yml"=>123}5679 and an instance config file exists5680 is expected to eq {"instance specific file"=>456}5681 and the instance has a redis.yml entry5682 is expected to eq {"instance redis.yml"=>789}5683 when no redis config file exsits5684 returns nil5685 when resque.yml exists5686 returns the config from resque.yml5687 redis instance used in connection pool5688 uses ::Redis instance5689 #store5690 instantiates an instance of Redis::Store5691Gitlab::Ci::Config::External::Mapper5692 #process5693 when single 'include' keyword is defined5694 when the string is a local file5695 returns File instances5696 behaves like logging config file fetch5697 propagates the pipeline logger5698 when the key is a local file hash5699 returns File instances5700 when the string is a remote file5701 returns File instances5702 behaves like logging config file fetch5703 propagates the pipeline logger5704 when the key is a remote file hash5705 returns File instances5706 when the key is a template file hash5707 returns File instances5708 behaves like logging config file fetch5709 propagates the pipeline logger5710 when the key is not valid5711 returns ambigious specification error5712 when the key is a hash of local and remote5713 returns ambigious specification error5714 when the key is a project's file5715 returns File instances5716 behaves like logging config file fetch5717 propagates the pipeline logger5718 when the key is project's files5719 returns two File instances5720 behaves like logging config file fetch5721 propagates the pipeline logger5722 when 'include' is defined as an array5723 returns Files instances5724 when 'include' is defined as an array of hashes5725 returns Files instances5726 when it has ambigious match5727 returns ambigious specification error5728 when 'include' is not defined5729 returns an empty array5730 when duplicate 'include's are defined5731 does not raise an exception5732 has expanset with two5733 when passing max number of files5734 does not raise an exception5735 when too many 'includes' are defined5736 raises an exception5737 when including multiple files from a project5738 raises an exception5739 when 'include' section uses project variable5740 when local file is included as a single string5741 expands the variable5742 when remote file is included as a single string5743 expands the variable5744 defined as an array5745 expands the variable5746 defined as an array of hashes5747 expands the variable5748 local file hash5749 expands the variable5750 project name5751 expands the variable5752 with multiple files5753 expands the variable5754 when include variable has an unsupported type for variable expansion5755 does not invoke expansion for the variable5756 when local file path has wildcard5757 includes the matched local files5758 when 'include' has rules5759 when the rules matches5760 includes the file5761 when the rules does not match5762 does not include the file5763 when locations are same after masking variables5764 has expanset with two5765Gitlab::Suggestions::SuggestionSet5766 merge_request: merge_request_same_project5767 #source_project5768 returns the source project associated with the suggestions5769 #target_project5770 returns the target project associated with the suggestions5771 #branch5772 returns the branch associated with the suggestions5773 #valid?5774 returns true if no errors are found5775 returns false if an error is found5776 #error_message5777 returns an error message if an error is found5778 returns nil if no errors are found5779 #actions5780 returns an array of hashes with proper key/value pairs5781 #file_paths5782 returns an array of unique file paths associated with the suggestions5783 merge_request: merge_request_from_fork5784 #source_project5785 returns the source project associated with the suggestions5786 #target_project5787 returns the target project associated with the suggestions5788 #branch5789 returns the branch associated with the suggestions5790 #valid?5791 returns true if no errors are found5792 returns false if an error is found5793 #error_message5794 returns an error message if an error is found5795 returns nil if no errors are found5796 #actions5797 returns an array of hashes with proper key/value pairs5798 #file_paths5799 returns an array of unique file paths associated with the suggestions5800Gitlab::Redis::TraceChunks5801 behaves like redis_shared_examples5802 .config_file_name5803 when there is no config file anywhere5804 is expected to be nil5805 .store5806 with old format5807 behaves like redis store5808 instantiates Redis::Store5809 with the namespace5810 uses specified namespace5811 with new format5812 behaves like redis store5813 instantiates Redis::Store5814 with the namespace5815 uses specified namespace5816 .params5817 withstands mutation5818 when url contains unix socket reference5819 with old format5820 returns path key instead5821 with new format5822 returns path key instead5823 when url is host based5824 with old format5825 returns hash with host, port, db, and password5826 with new format5827 rails_env: "development", host: "development-host"5828 returns hash with host, port, db, and password5829 rails_env: "test", host: "test-host"5830 returns hash with host, port, db, and password5831 rails_env: "production", host: "production-host"5832 returns hash with host, port, db, and password5833 with redis cluster format5834 rails_env: "development", host: "development-master"5835 returns hash with cluster and password5836 rails_env: "test", host: "test-master"5837 returns hash with cluster and password5838 rails_env: "production", host: "production-master"5839 returns hash with cluster and password5840 .url5841 withstands mutation5842 when yml file with env variable5843 reads redis url from env variable5844 .version5845 returns a version5846 .with5847 when running on single-threaded runtime5848 instantiates a connection pool with size 55849 when running on multi-threaded runtime5850 instantiates a connection pool with a size based on the concurrency of the worker5851 when there is no config at all5852 can run an empty block5853 #db5854 with old format5855 returns the correct db5856 with new format5857 returns the correct db5858 with cluster-mode5859 returns the correct db5860 #sentinels5861 when sentinels are defined5862 rails_env: "development", hosts: ["development-replica1", "development-replica2"]5863 returns an array of hashes with host and port keys5864 rails_env: "test", hosts: ["test-replica1", "test-replica2"]5865 returns an array of hashes with host and port keys5866 rails_env: "production", hosts: ["production-replica1", "production-replica2"]5867 returns an array of hashes with host and port keys5868 when sentinels are not defined5869 returns nil5870 when cluster is defined5871 returns nil5872 #sentinels?5873 when sentinels are defined5874 returns true5875 when sentinels are not defined5876 is expected to eq nil5877 when cluster is defined5878 returns false5879 #raw_config_hash5880 returns old-style single url config in a hash5881 returns cluster config without url key in a hash5882 #parse_client_tls_options5883 when configuration does not have TLS related options5884 returns the coniguration as-is5885 when specified certificate file does not exist5886 raises error about missing certificate file5887 when specified key file does not exist5888 raises error about missing key file5889 when only certificate file is specified5890 renders resque.yml correctly5891 when only key file is specified5892 renders resque.yml correctly5893 when configuration valid TLS related options5894 converts cert_file and key_file appropriately5895 #fetch_config5896 raises an exception when the config file contains invalid yaml5897 when redis.yml exists5898 uses config/redis.yml5899 when no config file exsits5900 returns nil5901 when resque.yml exists5902 returns the config from resque.yml5903 #fetch_config5904 when redis.yml exists5905 when the fallback has a redis.yml entry5906 is expected to eq {"fallback redis.yml"=>123}5907 and an instance config file exists5908 is expected to eq {"instance specific file"=>456}5909 and the instance has a redis.yml entry5910 is expected to eq {"instance redis.yml"=>789}5911 when no redis config file exsits5912 returns nil5913 when resque.yml exists5914 returns the config from resque.yml5915CommitSignatures::GpgSignature5916 behaves like having unique enum values5917 has unique values in "verification_status"5918 behaves like commit signature5919 associations5920 is expected to belong to project required: true5921 validation5922 is expected to validate that :commit_sha cannot be empty/falsy5923 is expected to validate that :project_id cannot be empty/falsy5924 .safe_create!5925 finds a signature by commit sha if it existed5926 creates a new signature if it was not found5927 assigns the correct attributes when creating5928 does not raise an error in case of a race condition5929 #commit5930 fetches the commit through the project5931 behaves like signature with type checking5932 signature type checkers5933 method: :gpg?, expected: true5934 is expected to eq true5935 method: :ssh?, expected: false5936 is expected to eq false5937 method: :x509?, expected: false5938 is expected to eq false5939 associations5940 is expected to belong to gpg_key required: false5941 is expected to belong to gpg_key_subkey required: false5942 validation5943 is expected to validate that :commit_sha cannot be empty/falsy5944 is expected to validate that :gpg_key_primary_keyid cannot be empty/falsy5945 .by_commit_sha scope5946 returns all gpg signatures by sha5947 #gpg_key=5948 supports the assignment of a GpgKey5949 supports the assignment of a GpgKeySubkey5950 clears gpg_key and gpg_key_subkey_id when passing nil5951 #gpg_commit5952 when commit does not exist5953 returns nil5954 when commit exists5955 returns an instance of Gitlab::Gpg::Commit5956 #signed_by_user5957 retrieves the gpg_key user5958MergeRequests::GetUrlsService5959 #execute5960 when project is nil5961 behaves like no_merge_request_url5962 returns no URL5963 pushing to default branch5964 behaves like no_merge_request_url5965 returns no URL5966 pushing to project with MRs disabled5967 behaves like no_merge_request_url5968 returns no URL5969 pushing one completely new branch5970 behaves like new_merge_request_link5971 returns url to create new merge request5972 pushing to existing branch but no merge request5973 behaves like new_merge_request_link5974 returns url to create new merge request5975 pushing to deleted branch5976 behaves like no_merge_request_url5977 returns no URL5978 pushing to existing branch and merge request opened5979 behaves like show_merge_request_url5980 returns url to view merge request5981 pushing to existing branch and merge request is reopened5982 behaves like show_merge_request_url5983 returns url to view merge request5984 pushing to existing branch from forked project5985 behaves like show_merge_request_url5986 returns url to view merge request5987 pushing to existing branch and merge request is closed5988 behaves like new_merge_request_link5989 returns url to create new merge request5990 pushing to existing branch and merge request is merged5991 behaves like new_merge_request_link5992 returns url to create new merge request5993 pushing new branch and existing branch (with merge request created) at once5994 returns 2 urls for both creating new and showing merge request5995 when printing_merge_request_link_enabled is false5996 returns empty array5997Issuable::CommonSystemNotesService5998 on issuable update5999 behaves like system note creation6000 creates 1 system note with the correct content6001 behaves like system note creation6002 creates 1 system note with the correct content6003 behaves like system note creation6004 creates 1 system note with the correct content6005 behaves like system note creation6006 creates 1 system note with the correct content6007 when new label is added6008 creates a resource label event6009 with merge requests Draft note6010 adding Draft note6011 behaves like system note creation6012 creates 1 system note with the correct content6013 and changing title6014 behaves like draft notes creation6015 creates Draft toggle and title change notes6016 removing Draft note6017 behaves like system note creation6018 creates 1 system note with the correct content6019 and changing title6020 behaves like draft notes creation6021 creates Draft toggle and title change notes6022 when changing dates6023 behaves like system note for issuable date changes6024 creates a system note for due_date set6025 creates a system note for start_date set6026 creates a note when both start and due date are changed6027 does not call SystemNoteService if no dates are changed6028 on issuable create6029 does not create system note for title and description6030 creates a resource label event for labels added6031 when changing milestones6032 does not create a system note for milestone set6033 creates a milestone change event6034 when changing dates6035 behaves like system note for issuable date changes6036 creates a system note for due_date set6037 creates a system note for start_date set6038 creates a note when both start and due date are changed6039 does not call SystemNoteService if no dates are changed6040GoogleCloud::GeneratePipelineService6041 for cloud-run6042 when there is no existing pipeline6043 creates a new branch with commit for cloud-run deployment6044 generated pipeline includes cloud-run deployment6045 simulate errors6046 fails to create branch6047 fails to commit changes6048 when there is an existing pipeline without `deploy` stage6049 introduces a `deploy` stage and includes the deploy-to-cloud-run job6050 stringifies keys from the existing pipelines6051 when there is an existing pipeline with `deploy` stage6052 includes the deploy-to-cloud-run job6053 when there is an existing pipeline with `includes`6054 includes the deploy-to-cloud-run job6055 for cloud-storage6056 when there is no existing pipeline6057 creates a new branch with commit for cloud-storage deployment6058 generated pipeline includes cloud-storage deployment6059 for vision ai6060 when there is no existing pipeline6061 creates a new branch with commit for cloud-run deployment6062 generated pipeline includes vision ai deployment6063 simulate errors6064 fails to create branch6065 fails to commit changes6066 when there is an existing pipeline with `includes`6067 includes the vision ai pipeline6068Gitlab::Ci::Config::Entry::Environment6069 when configuration is a string6070 #string?6071 is string configuration6072 #hash?6073 is not hash configuration6074 #valid?6075 is valid6076 #value6077 returns valid hash6078 #name6079 returns environment name6080 #url6081 returns environment url6082 when configuration is a hash6083 #string?6084 is not string configuration6085 #hash?6086 is hash configuration6087 #valid?6088 is valid6089 #value6090 returns valid hash6091 #name6092 returns environment name6093 #url6094 returns environment url6095 when valid action is used6096 action: "start"6097 is valid6098 action: "stop"6099 is valid6100 action: "prepare"6101 is valid6102 action: "verify"6103 is valid6104 action: "access"6105 is valid6106 when wrong action type is used6107 #valid?6108 is not valid6109 #errors6110 contains error about wrong action type6111 when invalid action is used6112 #valid?6113 is not valid6114 #errors6115 contains error about invalid action6116 when on_stop is used6117 is valid6118 when invalid on_stop is used6119 #valid?6120 is not valid6121 #errors6122 contains error about invalid action6123 when wrong url type is used6124 #valid?6125 is not valid6126 #errors6127 contains error about wrong url type6128 when variables are used for environment6129 #valid?6130 is valid6131 when auto_stop_in is specified6132 when auto_stop_in is correct format6133 becomes valid6134 when variables are used for auto_stop_in6135 becomes valid6136 when configuration is invalid6137 when configuration is an array6138 #valid?6139 is not valid6140 #errors6141 contains error about invalid type6142 when environment name is not present6143 #valid?6144 is not valid6145 #errors?6146 contains error about missing environment name6147 kubernetes6148 is a string6149 is expected not to be valid6150 is a hash6151 is expected to be valid6152 is nil6153 is expected to be valid6154 deployment_tier6155 is a string6156 is expected to be valid6157 is a hash6158 is expected not to be valid6159 is nil6160 is expected to be valid6161 is unknown value6162 is invalid and adds an error6163AuthHelper6164 button_based_providers6165 returns all enabled providers from devise6166 does not return ldap provider6167 returns empty array6168 providers_for_base_controller6169 returns all enabled providers from devise6170 excludes ldap providers6171 form_based_providers6172 includes LDAP providers6173 includes crowd provider6174 form_based_auth_provider_has_active_class?6175 selects main LDAP server6176 any_form_based_providers_enabled?6177 detects form-based providers6178 ignores ldap providers when ldap web sign in is disabled6179 enabled_button_based_providers6180 all providers are enabled to sign in6181 returns all the enabled providers from settings in expected order6182 puts google and github in the beginning6183 GitHub OAuth sign in is disabled from application setting6184 doesn't return github as provider6185 popular_enabled_button_based_providers6186 returns the intersection set of popular & enabled providers6187 button_based_providers_enabled?6188 button based providers enabled6189 returns true6190 all the button based providers are disabled via application_setting6191 returns false6192 #link_provider_allowed?6193 delegates to identity provider policy6194 #unlink_provider_allowed?6195 delegates to identity provider policy6196 #provider_has_icon?6197 returns true for defined providers6198 returns false for undefined providers6199 when provider is defined by config6200 returns true6201 when provider is not defined by config6202 returns true6203 #allow_admin_mode_password_authentication_for_web?6204 is expected to equal true6205 when password authentication for web is disabled6206 is expected to equal false6207 when current_user is an ldap user6208 is expected to equal false6209 when user got password automatically set6210 is expected to equal false6211 #auth_active?6212 for atlassian_oauth2 provider6213 returns true when present6214 returns false when not present6215 for other omniauth providers6216 returns true when present6217 returns false when not present6218 #auth_app_owner_text6219 when owner is a user6220 behaves like generates text with the correct info6221 includes the name of the application owner6222 when owner is a group6223 behaves like generates text with the correct info6224 includes the name of the application owner6225 when the user is missing6226 returns nil6227 #auth_strategy_class6228 when configuration specifies no provider6229 returns false6230 when configuration specifies a provider with args but without strategy_class6231 returns false6232 when configuration specifies a provider with args and strategy_class6233 returns the class6234 when configuration specifies another provider with args and another strategy_class6235 returns false6236 #saml_providers6237 when SAML is enabled without specifying a strategy class6238 returns the saml provider6239 when configuration specifies no provider6240 returns an empty list6241 when configuration specifies a provider with a SAML strategy_class6242 returns the provider6243 when configuration specifies two providers with a SAML strategy_class6244 returns the provider6245 when configuration specifies a provider with a non-SAML strategy_class6246 returns an empty list6247 when configuration specifies four providers but only two with SAML strategy_class6248 returns the provider6249ContainerRegistry::Blob6250 is expected to respond to #repository6251 is expected to delegate #registry to the #repository object6252 is expected to delegate #client to the #repository object6253 #path6254 returns a valid path to the blob6255 #digest6256 return correct digest value6257 #type6258 returns a correct type6259 #revision6260 returns a correct blob SHA6261 #short_revision6262 return a short SHA6263 #delete6264 returns true when blob has been successfully deleted6265 #data6266 when locally stored6267 returns a correct blob data6268 when externally stored6269 for a valid address6270 returns correct data6271 for a relative address6272 returns correct data6273 for invalid file6274 raises an error6275AwardEmojis::AddService6276 #execute6277 when user is not authorized6278 does not add an emoji6279 returns an error state6280 when user is authorized6281 creates an award emoji6282 returns the award emoji6283 return a success status6284 sets the correct properties on the award emoji6285 executes hooks6286 marking Todos as done6287 type: :issue, expectation: true6288 is expected to eq true6289 type: :merge_request, expectation: true6290 is expected to eq true6291 type: :project_snippet, expectation: false6292 is expected to eq false6293 for notes6294 regular Notes6295 marks the Todo as done6296 PersonalSnippet Notes6297 does not mark the Todo as done6298 when the awardable cannot have emoji awarded to it6299 does not add an emoji6300 returns an error status6301 when the awardable is invalid6302 does not add an emoji6303 returns an error status6304 returns an error message6305Gitlab::Ci::Config::Entry::Variable6306 # order random6307 SimpleVariable6308 when config is a string6309 #valid?6310 is expected to be valid6311 #value6312 is expected to eq "value"6313 when config is an integer6314 #valid?6315 is expected to be valid6316 #value6317 is expected to eq "1"6318 when config is an array6319 #valid?6320 is expected not to be valid6321 #errors6322 is expected to include "variable definition must be either a string or a hash"6323 ComplexVariable6324 when config is a hash with description6325 when metadata allowed_value_data is not provided6326 #valid?6327 is expected not to be valid6328 #errors6329 is expected to include "var1 config must be a string"6330 when metadata allowed_value_data is (value, description)6331 #valid?6332 is expected to be valid6333 #value6334 is expected to eq "value"6335 #value_with_data6336 is expected to eq {:value=>"value"}6337 #value_with_prefill_data6338 is expected to eq {:description=>"description", :value=>"value"}6339 when config value is a symbol6340 #value6341 is expected to eq "value"6342 #value_with_data6343 is expected to eq {:value=>"value"}6344 #value_with_prefill_data6345 is expected to eq {:description=>"description", :value=>"value"}6346 when config value is an integer6347 #value6348 is expected to eq "123"6349 #value_with_data6350 is expected to eq {:value=>"123"}6351 #value_with_prefill_data6352 is expected to eq {:description=>"description", :value=>"123"}6353 when config description is a symbol6354 #value6355 is expected to eq "value"6356 #value_with_data6357 is expected to eq {:value=>"value"}6358 #value_with_prefill_data6359 is expected to eq {:description=>:description, :value=>"value"}6360 when metadata allowed_value_data is (value, xyz)6361 #valid?6362 is expected not to be valid6363 #errors6364 is expected to include "var1 config uses invalid data keys: description"6365 when config is a hash without description6366 when metadata allowed_value_data is not provided6367 #valid?6368 is expected not to be valid6369 #errors6370 is expected to include "var1 config must be a string"6371 when metadata allowed_value_data is (value, description)6372 #valid?6373 is expected to be valid6374 #value6375 is expected to eq "value"6376 #value_with_data6377 is expected to eq {:value=>"value"}6378 #value_with_prefill_data6379 is expected to eq {:value=>"value"}6380 when config is a hash with expand6381 when metadata allowed_value_data is not provided6382 #valid?6383 is expected not to be valid6384 #errors6385 is expected to include "var1 config must be a string"6386 when metadata allowed_value_data is (value, expand)6387 #valid?6388 is expected to be valid6389 #value6390 is expected to eq "value"6391 #value_with_data6392 is expected to eq {:raw=>true, :value=>"value"}6393 when config expand is true6394 #value_with_data6395 is expected to eq {:raw=>false, :value=>"value"}6396 when config expand is a string6397 #valid?6398 is expected not to be valid6399 #errors6400 is expected to include "var1 config expand should be a boolean value"6401 when metadata allowed_value_data is (value, xyz)6402 #valid?6403 is expected not to be valid6404 #errors6405 is expected to include "var1 config uses invalid data keys: expand"6406 when config is a hash with options6407 when there is no metadata6408 #valid?6409 is expected not to be valid6410 #errors6411 is expected to include "var1 config must be a string"6412 when options are allowed6413 #valid?6414 is expected to be valid6415 #value6416 is expected to eq "value"6417 #value_with_data6418 is expected to eq {:value=>"value"}6419 #value_with_prefill_data6420 is expected to eq {:options=>["value", "value2"], :value=>"value"}6421Gitlab::Auth::Ldap::Access6422 .allowed?6423 updates the user's `last_credential_check_at`6424 does not update user's `last_credential_check_at` when in a read-only GitLab instance6425 #allowed?6426 when the user cannot be found6427 returns false6428 blocks user in GitLab6429 logs the reason6430 when the user is found6431 and the user is disabled via active directory6432 returns false6433 blocks user in GitLab6434 logs the reason6435 and has no disabled flag in active directory6436 is expected to be truthy6437 when auto-created users are blocked6438 does not unblock user in GitLab6439 when auto-created users are not blocked6440 unblocks user in GitLab6441 logs the reason6442 without ActiveDirectory enabled6443 returns true6444 when user cannot be found6445 returns false6446 blocks user in GitLab6447 logs the reason6448 when user was previously ldap_blocked6449 unblocks the user if it exists6450 logs the reason6451 when the connection fails6452 does not block the user6453 denies access6454Issue::Metrics6455 .for_issues6456 returns metrics associated with given issues6457 .with_first_mention_not_earlier_than6458 returns metrics without mentioning in commit or with mentioning after given timestamp6459 when recording the default set of issue metrics on issue save6460 milestones6461 records the first time an issue is associated with a milestone6462 does not record the second time an issue is associated with a milestone6463 list labels6464 records the first time an issue is associated with a list label6465 does not record the second time an issue is associated with a list label6466gitlab:artifacts namespace rake task6467 gitlab:artifacts:migrate6468 when local storage is used6469 and remote storage is defined6470 migrates file to remote storage6471 and remote storage is not defined6472 fails to migrate to remote storage6473 when remote storage is used6474 file stays on remote storage6475 gitlab:artifacts:migrate_to_local6476 when remote storage is used6477 and job has remote file store defined6478 migrates file to local storage6479 when local storage is used6480 file stays on local storage6481Participable6482 .participant6483 adds the participant attributes to the existing list6484 #participants6485 returns the list of participants6486 caches the list of filtered participants6487 supports attributes returning another Participable6488 when using a Proc as an attribute6489 calls the supplied Proc6490 participable is a personal snippet6491 returns the list of participants6492 #visible_participants6493 returns the list of participants6494 when Participable is not readable by the user6495 does not return unavailable participants6496 with multiple system notes from the same author and mentioned_users6497 skips expensive checks if the author is aleady in participants list6498 behaves like visible participants for issuable with read ability6499 when source is an award emoji6500 behaves like check for participables read ability6501 receives expected ability6502 when source is a note6503 behaves like check for participables read ability6504 receives expected ability6505 when source is an internal note6506 behaves like check for participables read ability6507 receives expected ability6508 when source is a system note6509 behaves like check for participables read ability6510 receives expected ability6511 behaves like visible participants for issuable with read ability6512 when source is an award emoji6513 behaves like check for participables read ability6514 receives expected ability6515 when source is a note6516 behaves like check for participables read ability6517 receives expected ability6518 when source is an internal note6519 behaves like check for participables read ability6520 receives expected ability6521 when source is a system note6522 behaves like check for participables read ability6523 receives expected ability6524 #participant?6525 returns whether the user is a participant6526 caches the list of raw participants6527 participable is a personal snippet6528 returns whether the user is a participant6529Issues::ReferencedMergeRequestsService6530 #execute6531 returns a list of sorted merge requests6532 performance6533 does not run extra queries when extra namespaces are included6534 preloads the head pipeline for each merge request, and its routes6535 only loads issue notes once6536 #referenced_merge_requests6537 returns the referenced merge requests6538 excludes cross project references if the user cannot read cross project6539 performance6540 does not run a query for each note author6541 #closed_by_merge_requests6542 returns the open merge requests that close this issue6543 returns an empty array when the current issue is closed already6544 performance6545 does not run a query for each note author6546Security::CiConfiguration::SastCreateService6547 #execute6548 user does not belong to project6549 returns an error status6550 does not track a snowplow event6551 user belongs to project6552 does track the snowplow event6553 raises exception if the user does not have permission to create a new branch6554 when exception is raised6555 when branch was created6556 tries to rm branch6557 when branch was not created6558 does not try to rm branch6559 with no parameters6560 returns the path to create a new merge request6561 when the project has a non-default ci config file6562 does track the snowplow event6563 when existing ci config contains anchors/aliases6564 returns a ServiceResponse error6565 when parsing existing ci config gives a Psych error6566 returns a ServiceResponse error6567 when parsing existing ci config gives any other error6568 is successful6569 with parameters6570 returns the path to create a new merge request6571 when the project is empty6572 returns a ServiceResponse error6573 when the repository is empty6574 when initialize_with_sast is false6575 returns a ServiceResponse error6576 when initialize_with_sast is true6577 behaves like commits directly to the default branch6578 commits directly to the default branch6579 when committing to the default branch6580 does not try to remove that branch on raised exceptions6581 behaves like commits directly to the default branch6582 commits directly to the default branch6583Gitlab::LegacyGithubImport::IssueFormatter6584 when importing a GitHub project6585 behaves like Gitlab::LegacyGithubImport::IssueFormatter#attributes6586 when issue is open6587 returns formatted attributes6588 when issue is closed6589 returns formatted attributes6590 when it is assigned to someone6591 returns nil as assignee_id when is not a GitLab user6592 returns GitLab user id associated with GitHub id as assignee_id6593 returns GitLab user id associated with GitHub email as assignee_id6594 when it has a milestone6595 returns nil when milestone does not exist6596 returns milestone when it exists6597 when author is a GitLab user6598 returns project creator_id as author_id when is not a GitLab user6599 returns GitLab user id associated with GitHub id as author_id6600 returns GitLab user id associated with GitHub email as author_id6601 returns description without created at tag line6602 behaves like Gitlab::LegacyGithubImport::IssueFormatter#number6603 returns issue number6604 when importing a Gitea project6605 behaves like Gitlab::LegacyGithubImport::IssueFormatter#attributes6606 when issue is open6607 returns formatted attributes6608 when issue is closed6609 returns formatted attributes6610 when it is assigned to someone6611 returns nil as assignee_id when is not a GitLab user6612 returns GitLab user id associated with GitHub id as assignee_id6613 returns GitLab user id associated with GitHub email as assignee_id6614 when it has a milestone6615 returns nil when milestone does not exist6616 returns milestone when it exists6617 when author is a GitLab user6618 returns project creator_id as author_id when is not a GitLab user6619 returns GitLab user id associated with GitHub id as author_id6620 returns GitLab user id associated with GitHub email as author_id6621 returns description without created at tag line6622 behaves like Gitlab::LegacyGithubImport::IssueFormatter#number6623 returns issue number6624 #has_comments?6625 when number of comments is greater than zero6626 returns true6627 when number of comments is equal to zero6628 returns false6629 #pull_request?6630 when mention a pull request6631 returns true6632 when does not mention a pull request6633 returns false6634Users::DeactivateDormantUsersWorker6635 #perform6636 does not run for SaaS6637 when automatic deactivation of dormant users is enabled6638 deactivates dormant users6639 does not deactivate non-active users6640 does not deactivate recently created users6641 user_type: :human, expected_state: "deactivated"6642 deactivates certain user types6643 user_type: :support_bot, expected_state: "active"6644 deactivates certain user types6645 user_type: :alert_bot, expected_state: "active"6646 deactivates certain user types6647 user_type: :visual_review_bot, expected_state: "active"6648 deactivates certain user types6649 user_type: :service_user, expected_state: "deactivated"6650 deactivates certain user types6651 user_type: :ghost, expected_state: "active"6652 deactivates certain user types6653 user_type: :project_bot, expected_state: "active"6654 deactivates certain user types6655 user_type: :migration_bot, expected_state: "active"6656 deactivates certain user types6657 user_type: :security_bot, expected_state: "active"6658 deactivates certain user types6659 user_type: :automation_bot, expected_state: "active"6660 deactivates certain user types6661 when automatic deactivation of dormant users is disabled6662 does nothing6663Mutations::ContainerExpirationPolicies::Update6664 is expected to require graphql authorizations :admin_container_image6665 #resolve6666 with existing container expiration policy6667 user_role: :maintainer, shared_examples_name: "updating the container expiration policy"6668 behaves like updating the container expiration policy6669 behaves like updating the container expiration policy attributes6670 updates the container expiration policy6671 behaves like not creating the container expiration policy6672 doesn't create the container expiration policy6673 behaves like returning a success6674 returns the container expiration policy with no errors6675 with invalid params6676 doesn't update the cadence6677 returns an error6678 behaves like not creating the container expiration policy6679 doesn't create the container expiration policy6680 with blank regex6681 doesn't update the cadence6682 returns an error6683 behaves like not creating the container expiration policy6684 doesn't create the container expiration policy6685 user_role: :developer, shared_examples_name: "denying access to container expiration policy"6686 behaves like denying access to container expiration policy6687 raises Gitlab::Graphql::Errors::ResourceNotAvailable6688 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"6689 behaves like denying access to container expiration policy6690 raises Gitlab::Graphql::Errors::ResourceNotAvailable6691 user_role: :guest, shared_examples_name: "denying access to container expiration policy"6692 behaves like denying access to container expiration policy6693 raises Gitlab::Graphql::Errors::ResourceNotAvailable6694 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"6695 behaves like denying access to container expiration policy6696 raises Gitlab::Graphql::Errors::ResourceNotAvailable6697 without existing container expiration policy6698 user_role: :maintainer, shared_examples_name: "creating the container expiration policy"6699 behaves like creating the container expiration policy6700 behaves like updating the container expiration policy attributes6701 creates a new container expiration policy6702 updates the container expiration policy6703 behaves like returning a success6704 returns the container expiration policy with no errors6705 user_role: :developer, shared_examples_name: "denying access to container expiration policy"6706 behaves like denying access to container expiration policy6707 raises Gitlab::Graphql::Errors::ResourceNotAvailable6708 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"6709 behaves like denying access to container expiration policy6710 raises Gitlab::Graphql::Errors::ResourceNotAvailable6711 user_role: :guest, shared_examples_name: "denying access to container expiration policy"6712 behaves like denying access to container expiration policy6713 raises Gitlab::Graphql::Errors::ResourceNotAvailable6714 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"6715 behaves like denying access to container expiration policy6716 raises Gitlab::Graphql::Errors::ResourceNotAvailable6717WorkItems::ExportCsvService6718 # order random6719 author name6720 iid6721 description6722 preloads fields to avoid N+1 queries6723 author username6724 title6725 renders csv to string6726 created_at6727 type6728 returns two work items6729 #email6730 emails csv6731 when importing an exported file6732 for work item of type issue6733 behaves like a exported file that can be imported6734 imports work item with correct attributes6735 when import_export_work_items_csv flag is not enabled6736 renders an error6737 behaves like a service that returns invalid fields from selection6738 #invalid_fields6739 returns invalid fields from selection6740ExtractsRef::RefExtractor6741 # order random6742 behaves like extracts ref method6743 #extract_ref6744 returns an empty pair when no repository_container is set6745 without a path6746 extracts a valid branch6747 extracts a valid tag6748 extracts a valid commit ref6749 falls back to a primitive split for an invalid ref6750 does not fetch ref names when there is no slash6751 fetches ref names when there is a slash6752 with a path6753 extracts a valid branch6754 extracts a valid tag6755 extracts a valid commit SHA6756 falls back to a primitive split for an invalid ref6757 extracts the longest matching ref6758 when the repository does not have ambiguous refs6759 does not fetch all ref names when the first path component is a ref6760 fetches all ref names when the first path component is not a ref6761 when the repository has ambiguous refs6762 always fetches all ref names6763 #ref_type6764 delegates to .ref_type6765 .ref_type6766 when ref_type is nil6767 is expected to eq nil6768 when ref_type is heads6769 is expected to eq "heads"6770 when ref_type is tags6771 is expected to eq "tags"6772 when ref_type is invalid6773 is expected to eq nil6774 #extract_vars!6775 behaves like extracts ref vars6776 #extract!6777 when ref contains %206778 is not converted to a space in @id6779 when ref contains trailing space6780 strips surrounding space6781 when ref contains leading space6782 strips surrounding space6783 when path contains space6784 is not converted to %20 in @path6785 when override_id is given6786 uses override_id6787 when ref contains trailing space6788 strips surrounding space6789 when ref and path are nil6790 does not set commit6791 when a ref_type parameter is provided6792 sets a fully_qualified_ref variable6793 .qualify_ref6794 when ref_type is nil6795 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"6796 when ref_type valid6797 is expected to eq "refs/heads/570e7b2abdd848b95f2f578043fc23bd6f6fd24d"6798 when ref_type is invalid6799 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"6800Projects::ImportExport::RelationExportService6801 #execute6802 removes temporary paths used to export files6803 when saver fails to export relation6804 flags export as failed6805 logs failed message6806 when an exception is raised6807 flags export as failed6808 logs exception error message6809 relation name and saver class6810 relation_name: "uploads", saver: Gitlab::ImportExport::UploadsSaver6811 exports relation using correct saver6812 assigns finished status and relation file6813 relation_name: "repository", saver: Gitlab::ImportExport::RepoSaver6814 exports relation using correct saver6815 assigns finished status and relation file6816 relation_name: "wiki_repository", saver: Gitlab::ImportExport::WikiRepoSaver6817 exports relation using correct saver6818 assigns finished status and relation file6819 relation_name: "lfs_objects", saver: Gitlab::ImportExport::LfsSaver6820 exports relation using correct saver6821 assigns finished status and relation file6822 relation_name: "snippets_repository", saver: Gitlab::ImportExport::SnippetsRepoSaver6823 exports relation using correct saver6824 assigns finished status and relation file6825 relation_name: "design_repository", saver: Gitlab::ImportExport::DesignRepoSaver6826 exports relation using correct saver6827 assigns finished status and relation file6828 relation_name: "project", saver: Gitlab::ImportExport::Project::RelationSaver6829 exports relation using correct saver6830 assigns finished status and relation file6831 relation_name: "labels", saver: Gitlab::ImportExport::Project::RelationSaver6832 exports relation using correct saver6833 assigns finished status and relation file6834Projects::ContainerRepository::DestroyService6835 when user has access to registry6836 behaves like executing with permissions6837 deletes the repository6838 sends disable_timeout = true as part of the params as default6839 sends disable_timeout = false as part of the params if it is set to false6840 when deleting the tags fails6841 sets status as deleted_failed6842 logs the error6843 behaves like returning an error status with message6844 returns an error status6845 when destroying the repository fails6846 sets status as deleted_failed6847 logs the error6848 behaves like returning an error status with message6849 returns an error status6850 when user does not have access to registry6851 does not delete a repository6852 behaves like returning an error status with message6853 returns an error status6854 when called during project deletion6855 behaves like executing with permissions6856 deletes the repository6857 sends disable_timeout = true as part of the params as default6858 sends disable_timeout = false as part of the params if it is set to false6859 when deleting the tags fails6860 sets status as deleted_failed6861 logs the error6862 behaves like returning an error status with message6863 returns an error status6864 when destroying the repository fails6865 sets status as deleted_failed6866 logs the error6867 behaves like returning an error status with message6868 returns an error status6869 when there is no user6870 behaves like returning an error status with message6871 returns an error status6872NavHelper6873 # order random6874 #header_links6875 when the user is logged in6876 has all the expected links by default6877 contains the impersonation link while impersonating6878 as admin6879 application setting :admin_mode is enabled6880 does not contain the admin mode link by default6881 with admin mode enabled6882 contains the admin mode link6883 application setting :admin_mode is disabled6884 does not contain the admin mode link6885 with admin mode enabled6886 has no effect on header links6887 when the user cannot read cross project6888 does not contain cross project elements when the user cannot read cross project6889 shows the search box when the user cannot read cross project and they are visiting a project6890 when the user is not logged in6891 returns only the sign in and search when the user is not logged in6892 #page_has_markdown?6893 path: "projects/merge_requests#show"6894 is expected to eq true6895 path: "projects/merge_requests/conflicts#show"6896 is expected to eq true6897 path: "issues#show"6898 is expected to eq true6899 path: "milestones#show"6900 is expected to eq true6901 path: "issues#designs"6902 is expected to eq true6903 #show_super_sidebar?6904 without a user6905 with current_user (nil) as a default6906 behaves like anonymous show_super_sidebar is supposed to6907 when super_sidebar_logged_out feature flag is disabled6908 is expected to eq false6909 when super_sidebar_logged_out feature flag is enabled6910 is expected to eq true6911 with nil provided as an argument6912 behaves like anonymous show_super_sidebar is supposed to6913 when super_sidebar_logged_out feature flag is disabled6914 is expected to eq false6915 when super_sidebar_logged_out feature flag is enabled6916 is expected to eq true6917 when user is signed-in6918 with current_user as a default6919 behaves like show_super_sidebar is supposed to6920 when user has not interacted with the new nav toggle yet6921 is expected to eq true6922 when the user was not enrolled into the new nav via a special feature flag6923 is expected to eq false6924 when user has new nav disabled6925 is expected to eq false6926 when user has new nav enabled6927 is expected to eq true6928 with user provided as an argument6929 behaves like show_super_sidebar is supposed to6930 when user has not interacted with the new nav toggle yet6931 is expected to eq true6932 when the user was not enrolled into the new nav via a special feature flag6933 is expected to eq false6934 when user has new nav disabled6935 is expected to eq false6936 when user has new nav enabled6937 is expected to eq true6938 .admin_monitoring_nav_links6939 is expected to all be a kind of String6940ServiceDesk::CustomEmailVerification6941 # order random6942 #accepted_until6943 returns nil6944 when state is :started and successfully transitioned6945 returns correct timeframe end time6946 when triggered_at is not set6947 returns nil6948 .generate_token6949 matches expected output6950 status state machine6951 transitioning to started6952 records the started at time and generates token6953 transitioning to finished6954 removes the generated token6955 transitioning to failed6956 removes the generated token6957 encrypted #token6958 saves and retrieves the encrypted token and iv correctly6959 scopes6960 .overdue6961 returns verifications that are overdue6962 validations6963 is expected to validate that :project cannot be empty/falsy6964 is expected to validate that :state cannot be empty/falsy6965 when status is :started6966 is expected to validate that :token cannot be empty/falsy6967 is expected to validate that the length of :token is 126968 matches .generate_token pattern6969 is expected to validate that :triggerer cannot be empty/falsy6970 is expected to validate that :triggered_at cannot be empty/falsy6971 is expected to validate that :error is empty/falsy6972 when status is :finished6973 is expected to validate that :token is empty/falsy6974 is expected to validate that :error is empty/falsy6975 when status is :failed6976 is expected to validate that :error cannot be empty/falsy6977 is expected to validate that :token is empty/falsy6978 #in_timeframe?6979 is expected not to be in timeframe6980 when state is :started and successfully transitioned6981 is expected to be in timeframe6982 and timeframe was missed6983 is expected not to be in timeframe6984 associations6985 is expected to belong to project required: false6986 is expected to belong to triggerer required: false6987 can access service desk setting from project6988Security::SecurityJobsFinder6989 behaves like Security::JobsFinder6990 #new6991 does not get initialized for unsupported job types6992 #execute6993 behaves like JobsFinder core functionality6994 when the pipeline has no jobs6995 is expected to be empty6996 when the pipeline has no Secure jobs6997 is expected to be empty6998 when the pipeline only has jobs without report artifacts6999 is expected to be empty7000 when the pipeline only has jobs with reports unrelated to Secure products7001 is expected to be empty7002 when the pipeline only has jobs with reports with paths similar but not identical to Secure reports7003 is expected to be empty7004 when there is more than one pipeline7005 returns jobs associated with provided pipeline7006 #execute7007 with specific secure job types7008 returns only those requested7009 with combination of security jobs and license scanning jobs7010 returns only the security jobs7011Gitlab::GithubImport::Importer::IssueImporter7012 .import_if_issue7013 imports an issuable if it is a regular issue7014 does not import the issuable if it is a pull request7015 #execute7016 creates the issue and assignees and updates_search_data7017 caches the created issue ID even if importer later fails7018 #create_issue7019 creates issues with a work item type id7020 produces a valid Issue7021 returns the ID of the created issue7022 when the issue author could be found7023 creates the issue with the found author as the issue author7024 when the issue author could not be found7025 creates the issue with the project creator as the issue author7026 #create_assignees7027 inserts the issue assignees in bulk7028InjectEnterpriseEditionModule7029 #prepend_mod_with7030 behaves like expand the extension with7031 when extension namespace is set at top-level7032 calls prepend with the extension module7033 when extension namespace is set at another namespace7034 calls prepend with the extension module from the additional namespace7035 when extension namespace exists but not the extension7036 does not call prepend7037 when extension namespace does not exist7038 does not call prepend7039 #extend_mod_with7040 behaves like expand the extension with7041 when extension namespace is set at top-level7042 calls extend with the extension module7043 when extension namespace is set at another namespace7044 calls extend with the extension module from the additional namespace7045 when extension namespace exists but not the extension7046 does not call extend7047 when extension namespace does not exist7048 does not call extend7049 #include_mod_with7050 behaves like expand the extension with7051 when extension namespace is set at top-level7052 calls include with the extension module7053 when extension namespace is set at another namespace7054 calls include with the extension module from the additional namespace7055 when extension namespace exists but not the extension7056 does not call include7057 when extension namespace does not exist7058 does not call include7059 #prepend_mod7060 behaves like expand the assumed extension with7061 when extension namespace is set at top-level7062 calls prepend with the extension module7063 when extension namespace exists but not the extension7064 does not call prepend7065 when extension namespace does not exist7066 does not call prepend7067 #extend_mod7068 behaves like expand the assumed extension with7069 when extension namespace is set at top-level7070 calls extend with the extension module7071 when extension namespace exists but not the extension7072 does not call extend7073 when extension namespace does not exist7074 does not call extend7075 #include_mod7076 behaves like expand the assumed extension with7077 when extension namespace is set at top-level7078 calls include with the extension module7079 when extension namespace exists but not the extension7080 does not call include7081 when extension namespace does not exist7082 does not call include7083 #gitlab_extensions7084 when there are no extension modules7085 returns the class itself7086 when there are extension modules7087 returns the class itself and any extensions7088Gitlab::UntrustedRegexp7089 #initialize7090 invalid regexp7091 is expected to raise RegexpError7092 #replace_all7093 replaces all instances of the match in a string7094 #replace_gsub7095 replaces all instances of the match in a string7096 replaces nothing when no match7097 handles empty text7098 #replace7099 replaces the first instance of the match in a string7100 #===7101 returns true for a match7102 returns false for no match7103 can handle regular expressions in multiline mode7104 #match?7105 malicious regexp7106 takes under a second7107 matching regexp7108 returns an array of nil matches7109 non-matching regexp7110 returns an array of nil matches7111 #scan7112 malicious regexp7113 takes under a second7114 empty regexp7115 returns an array of nil matches7116 empty capture group regexp7117 returns an array of nil matches in an array7118 no capture group7119 returns the whole match7120 one capture group7121 returns the captured part7122 two capture groups7123 returns the captured parts7124 #extract_named_group7125 returns values for both named groups7126 returns nil if there was no match for group7127 returns nil if match is nil7128 raises if name is not a capture group7129 #match7130 when there are matches7131 returns a match object7132 when there are no matches7133 returns nil7134Lfs::LocksFinderService7135 #execute7136 find by id7137 with results7138 returns the record7139 without results7140 returns an empty list7141 find by path7142 with results7143 returns the record7144 without results7145 returns an empty list7146 find all7147 with results7148 returns all the records7149 without results7150 returns an empty list7151 when an error is raised7152 doesn't succeed7153Uploads::DestroyService7154 #execute7155 when user is nil7156 behaves like upload not found7157 does not delete any upload7158 returns an error7159 when user cannot destroy upload7160 behaves like upload not found7161 does not delete any upload7162 returns an error7163 when user can destroy upload7164 deletes the upload7165 returns success response7166 when upload is not found7167 behaves like upload not found7168 does not delete any upload7169 returns an error7170 when upload secret is not found7171 behaves like upload not found7172 does not delete any upload7173 returns an error7174 when upload secret has invalid format7175 behaves like upload not found7176 does not delete any upload7177 returns an error7178 when unknown model is used7179 raises an error7180 when upload belongs to other model7181 behaves like upload not found7182 does not delete any upload7183 returns an error7184 when upload destroy fails7185 returns error7186Gitlab::GithubImport::Importer::SingleEndpointIssueNotesImporter7187 is expected to includes the Gitlab::GithubImport::ParallelScheduling module7188 is expected to includes the Gitlab::GithubImport::SingleEndpointNotesImporting module7189 is expected to eq Gitlab::GithubImport::Representation::Note7190 is expected to eq Gitlab::GithubImport::Importer::NoteImporter7191 is expected to eq :issue_comments7192 is expected to eq :note7193 is expected to eq 17194 #each_object_to_import7195 fetches data7196 skips cached pages7197 skips cached merge requests7198gitlab:db:decomposition:rollback:bump_ci_sequences7199 when passing wrong argument7200 will print an error message and exit when passing no argument7201 will print an error message and exit when passing a non positive integer value7202 when bumping the ci sequences7203 changes ci sequences by the passed argument `increase_by` value on the main database7204 will still increase the value of sequences that have is_called = False7205 resets the INCREMENT value of the sequences back to 1 for the following calls to nextval()7206 does not change the sequences on the gitlab_main tables7207 when multiple databases7208 does not change ci sequences on the ci database (PENDING: Skipping because ci is shared or doesn't not exist)7209CommitSignatures::X509CommitSignature7210 behaves like having unique enum values7211 has unique values in "verification_status"7212 behaves like commit signature7213 associations7214 is expected to belong to project required: true7215 validation7216 is expected to validate that :commit_sha cannot be empty/falsy7217 is expected to validate that :project_id cannot be empty/falsy7218 .safe_create!7219 finds a signature by commit sha if it existed7220 creates a new signature if it was not found7221 assigns the correct attributes when creating7222 does not raise an error in case of a race condition7223 #commit7224 fetches the commit through the project7225 behaves like signature with type checking7226 signature type checkers7227 method: :gpg?, expected: false7228 is expected to eq false7229 method: :ssh?, expected: false7230 is expected to eq false7231 method: :x509?, expected: true7232 is expected to eq true7233 validation7234 is expected to validate that :x509_certificate_id cannot be empty/falsy7235 associations7236 is expected to belong to x509_certificate required: true7237 #user7238 if email is not assigned to a user, return nil7239 if email is assigned to a user7240 returns user7241Gitlab::Metrics::System7242 when /proc files exist7243 .memory_usage_rss7244 without PID7245 returns a hash containing RSS metrics in bytes for current process7246 with PID7247 returns a hash containing RSS metrics in bytes for given process7248 .file_descriptor_count7249 returns the amount of open file descriptors7250 .max_open_file_descriptors7251 returns the max allowed open file descriptors7252 .memory_usage_uss_pss7253 without PID7254 returns the current process' unique and porportional set size (USS/PSS) in bytes7255 with PID7256 returns the given process' unique and porportional set size (USS/PSS) in bytes7257 .memory_total7258 returns the current process' resident set size (RSS) in bytes7259 .process_runtime_elapsed_seconds7260 returns the seconds elapsed since the process was started7261 when inputs are not available7262 returns 07263 .summary7264 contains a selection of the available fields7265 when /proc files do not exist7266 .memory_usage_rss7267 returns 0 for all components7268 .memory_usage_uss_pss7269 returns 0 for all components7270 .file_descriptor_count7271 returns 07272 .max_open_file_descriptors7273 returns 07274 .summary7275 returns only available fields7276 .cpu_time7277 returns a Float7278 .real_time7279 returns a Float7280 .monotonic_time7281 returns a Float7282 .thread_cpu_time7283 returns cpu_time on supported platform7284 returns nil on unsupported platform7285 .thread_cpu_duration7286 returns difference between start and current time7287 returns nil on unsupported platform7288lograge7289 for API requests7290 logs to api_json log7291 limits param size7292 for Controller requests7293 logs to production_json log7294 logs cpu_s on supported platform7295 does not log cpu_s on unsupported platform7296 limits param size7297 when logging memory allocations7298 logs memory usage metrics7299 with a log subscriber7300 with an exception7301 adds exception data to log7302 with an ActiveRecord::StatementInvalid7303 adds the SQL query to the log7304 with etag_route7305 adds etag_route to log7306 with access token in url7307 strips location from sensitive information7308 leaves non-sensitive information from location7309 with db payload7310 when RequestStore is enabled7311 includes db counters7312 when RequestStore is disabled7313 does not include db counters7314 with db payload7315 when RequestStore is enabled7316 includes db counters for load balancing7317 when RequestStore is disabled7318 does not include db counters for load balancing7319ReactiveCachingWorker7320 behaves like reactive cacheable worker7321 #perform7322 when reactive cache worker class is found7323 calls #exclusively_update_reactive_cache!7324 when ReactiveCaching::ExceededReactiveCacheLimit is raised7325 avoids failing the job and tracks via Gitlab::ErrorTracking7326 when reactive cache worker class is not found7327 raises no error7328 when reactive cache worker class is invalid7329 raises no error7330 worker context7331 sets the related class on the job7332 sets the related class on the job when it was passed as a class7333Gitlab::Ci::Reports::Security::Scanner7334 #initialize7335 when all params are given7336 initializes an instance7337 when attribute external_id is missing7338 raises an error7339 when attribute name is missing7340 raises an error7341 #key7342 returns external_id7343 #to_hash7344 returns expected hash7345 when vendor is not defined7346 returns expected hash7347 #==7348 when external_id is equal7349 returns true7350 when external_id is different7351 returns false7352 #<=>7353 when the `external_id` of the scanners are different7354 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -17355 is expected to eq -17356 scanner_1_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -17357 is expected to eq -17358 scanner_1_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: 17359 is expected to eq 17360 scanner_1_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -17361 is expected to eq -17362 scanner_1_attributes: {:external_id=>"spotbugs", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -17363 is expected to eq -17364 scanner_1_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"unknown", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -17365 is expected to eq -17366 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>nil}, expected_comparison_result: 17367 is expected to eq 17368 when the `external_id` of the scanners are equal7369 when the `name` of the scanners are different7370 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"a", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"b", :vendor=>"bar"}, expected_comparison_result: -17371 is expected to eq -17372 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"d", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"c", :vendor=>"bar"}, expected_comparison_result: 17373 is expected to eq 17374 when the `name` of the scanners are equal7375 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 07376 is expected to eq 07377 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, expected_comparison_result: -17378 is expected to eq -17379 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 17380 is expected to eq 17381HtmlEscapedHelpers7382 # order random7383 #ensure_no_html_escaped_tags!7384 when content contains HTML escaped chars7385 raises an exception7386 when content does not contain HTML escaped tags7387 does not raise anything7388 #match_html_escaped_tags7389 content: nil, expected_match: nil7390 is expected to eq nil7391 content: "", expected_match: nil7392 is expected to eq nil7393 content: "<a href", expected_match: nil7394 is expected to eq nil7395 content: "<span href", expected_match: nil7396 is expected to eq nil7397 content: "</a>", expected_match: nil7398 is expected to eq nil7399 content: "<a href", expected_match: "<a"7400 is expected to eq "<a"7401 content: "<span href", expected_match: "<span"7402 is expected to eq "<span"7403 content: "< span", expected_match: "< span"7404 is expected to eq "< span"7405 content: "some text <a href", expected_match: "<a"7406 is expected to eq "<a"7407 content: "some text \"<a href", expected_match: "<a"7408 is expected to eq "<a"7409 content: "</a&glt;", expected_match: "</a"7410 is expected to eq "</a"7411 content: "</span>", expected_match: "</span"7412 is expected to eq "</span"7413 content: "< / span>", expected_match: "< / span"7414 is expected to eq "< / span"7415 content: "title=\"<a href", expected_match: nil7416 is expected to eq nil7417 content: "title= \"<a href", expected_match: nil7418 is expected to eq nil7419 content: "title= '<a href", expected_match: nil7420 is expected to eq nil7421 content: "title= '</a", expected_match: nil7422 is expected to eq nil7423 content: "title= '</span", expected_match: nil7424 is expected to eq nil7425 content: "title=\"foo\"><a", expected_match: "<a"7426 is expected to eq "<a"7427 content: "title='foo'>\n<a", expected_match: "<a"7428 is expected to eq "<a"7429TestSuiteSummaryEntity7430 #as_json7431 contains the total time7432 contains the counts7433 contains the build_ids7434 contains the suite_error7435Sidebars::Groups::Menus::GroupInformationMenu7436 behaves like not serializable as super_sidebar_menu_args7437 returns nil7438 #title7439 when group is a root group7440 is expected to eq "Group information"7441 when group is a child group7442 is expected to eq "Subgroup information"7443 #sprite_icon7444 when group is a root group7445 is expected to eq "group"7446 when group is a child group7447 is expected to eq "subgroup"7448 Menu Items7449 Activity7450 is expected not to be nil7451 behaves like menu access rights7452 is expected not to be nil7453 when the user does not have access7454 is expected to be nil7455 Labels7456 behaves like menu access rights7457 is expected not to be nil7458 when the user does not have access7459 is expected to be nil7460 Members7461 behaves like menu access rights7462 is expected not to be nil7463 when the user does not have access7464 is expected to be nil7465JiraImport::CloudUsersMapperService7466 #execute7467 behaves like mapping jira users7468 jira_users is nil7469 returns an empty array7470 when jira_users is present7471 returns users mapped to Gitlab7472 runs only 4 queries7473LooseForeignKeys::CleanupWorker7474-- create_table(:_test_loose_fk_parent_table_1)7475 -> 0.0043s7476-- create_table(:_test_loose_fk_parent_table_2)7477 -> 0.0022s7478-- create_table(:_test_loose_fk_child_table_1_1)7479 -> 0.0020s7480-- create_table(:_test_loose_fk_child_table_1_2)7481 -> 0.0017s7482-- create_table(:_test_loose_fk_child_table_2_1)7483 -> 0.0017s7484-- execute("CREATE TRIGGER _test_loose_fk_parent_table_1_loose_fk_trigger AFTER DELETE ON _test_loose_fk_parent_table_1 REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();")7485 -> 0.0008s7486-- execute("CREATE TRIGGER _test_loose_fk_parent_table_2_loose_fk_trigger AFTER DELETE ON _test_loose_fk_parent_table_2 REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();")7487 -> 0.0007s7488 cleans up all rows7489 multi-database support7490 current_minute: 2, configured_base_models: {:main=>"ActiveRecord::Base", :ci=>"Ci::ApplicationRecord"}, expected_connection_model: "ActiveRecord::Base"7491 uses the correct connection7492 current_minute: 3, configured_base_models: {:main=>"ActiveRecord::Base", :ci=>"Ci::ApplicationRecord"}, expected_connection_model: "Ci::ApplicationRecord"7493 uses the correct connection7494 current_minute: 2, configured_base_models: {:main=>"ActiveRecord::Base"}, expected_connection_model: "ActiveRecord::Base"7495 uses the correct connection7496 current_minute: 3, configured_base_models: {:main=>"ActiveRecord::Base"}, expected_connection_model: "ActiveRecord::Base"7497 uses the correct connection7498 turbo mode7499 when turbo mode is off7500 database_name: :main, feature_flag: :loose_foreign_keys_turbo_mode_main7501 does not use TurboModificationTracker7502 logs not using turbo mode7503 database_name: :ci, feature_flag: :loose_foreign_keys_turbo_mode_ci7504 does not use TurboModificationTracker7505 logs not using turbo mode7506 when turbo mode is on7507 database_name: :main, feature_flag: :loose_foreign_keys_turbo_mode_main7508 does not use TurboModificationTracker7509 logs using turbo mode7510 database_name: :ci, feature_flag: :loose_foreign_keys_turbo_mode_ci7511 does not use TurboModificationTracker7512 logs using turbo mode7513-- drop_table(:_test_loose_fk_parent_table_1)7514 -> 0.0019s7515-- drop_table(:_test_loose_fk_parent_table_2)7516 -> 0.0013s7517-- drop_table(:_test_loose_fk_child_table_1_1)7518 -> 0.0013s7519-- drop_table(:_test_loose_fk_child_table_1_2)7520 -> 0.0011s7521-- drop_table(:_test_loose_fk_child_table_2_1)7522 -> 0.0012s7523Gitlab::Diff::Highlight7524 #highlight7525 with a diff file7526 returns Gitlab::Diff::Line elements7527 does not modify "match" lines7528 highlights and marks unchanged lines7529 highlights and marks removed lines7530 highlights and marks added lines7531 when no diff_refs7532 when no inline diffs7533 behaves like without inline diffs7534 returns html escaped diff text7535 with diff lines7536 returns Gitlab::Diff::Line elements7537 does not modify "match" lines7538 marks unchanged lines7539 marks removed lines7540 marks added lines7541 when the inline diff marker has an invalid range7542 keeps the original rich line7543 reports to Sentry if configured7544 when no inline diffs7545 behaves like without inline diffs7546 returns html escaped diff text7547 when blob is too large7548 blobs are highlighted as plain text without loading all data7549Gitlab::Ci::Status::Build::Manual7550 #illustration7551 is expected to include :image, :size, :title, and :content7552 when the user can trigger the job7553 when the job has not been played7554 instructs the user about possible actions7555 when the job is retryable7556 instructs the user about possible actions7557 when the user can not trigger the job because of outdated deployment7558 is expected to match /This deployment job does not run automatically and must be started manually, but it's older than the latest deployment, and therefore can't run/7559 when the user can not trigger the job due to another reason7560 informs the user7561 .matches?7562 when build is manual7563 is a correct match7564 when build is not manual7565 does not match7566PrometheusAlertEvent7567 associations7568 is expected to belong to prometheus_alert required: true7569 validations7570 is expected to be valid7571 is expected to validate that :prometheus_alert cannot be empty/falsy, producing a custom validation error on failure7572 is expected to validate that :payload_key is case-sensitively unique within the scope of :prometheus_alert_id7573 is expected to validate that :started_at cannot be empty/falsy7574 payload_key & ended_at7575 absent if firing?7576 is expected to validate that :payload_key cannot be empty/falsy7577 is expected not to validate that :ended_at cannot be empty/falsy7578 present if resolved?7579 is expected not to validate that :payload_key cannot be empty/falsy7580 is expected to validate that :ended_at cannot be empty/falsy7581 #title7582 delegates to alert7583 prometheus_metric_id7584 delegates to alert7585 transaction7586 fire7587 when status is none7588 fires an event7589 when firing7590 cannot fire again7591 resolve7592 when firing7593 resolves an event7594 when resolved7595 cannot resolve again7596Gitlab::GithubImport::Importer::Events::ChangedLabel7597 with Issue7598 when importing event with associated label7599 when importing a labeled event7600 behaves like new event7601 creates a new label event7602 when importing an unlabeled event7603 behaves like new event7604 creates a new label event7605 when importing event without associated label7606 behaves like new event7607 creates a new label event7608 with MergeRequest7609 when importing event with associated label7610 when importing a labeled event7611 behaves like new event7612 creates a new label event7613 when importing an unlabeled event7614 behaves like new event7615 creates a new label event7616 when importing event without associated label7617 behaves like new event7618 creates a new label event7619Gitlab::Database::UnidirectionalCopyTrigger7620 #name7621 when a single column name is given7622 returns the trigger name7623 when multiple column names are given7624 returns the trigger name7625 when a different number of new and old column names are given7626 raises an error7627 #create7628 when a single column name is given7629 creates the trigger and function7630 properly copies the column data using the trigger function7631 when multiple column names are given7632 creates the trigger and function to set all the columns7633 properly copies the columns using the trigger function7634 when a custom trigger name is given7635 creates the trigger and function with the custom name7636 when the trigger function already exists7637 does not raise an error7638 when a different number of new and old column names are given7639 raises an error7640 #drop7641 drops the trigger and function for the given arguments7642 when the trigger does not exist7643 does not raise an error7644Pages::DeleteService7645 marks pages as not deployed7646 deletes all domains7647 schedules a destruction of pages deployments7648 removes pages deployments7649 publishes a ProjectDeleted event with project id and namespace id7650Mutations::Todos::RestoreMany7651 #resolve7652 restores a single todo7653 handles a todo which is already pending as expected7654 ignores requests for todos which do not belong to the current user7655 restores multiple todos7656 fails if one todo does not belong to the current user7657 fails if too many todos are requested for update7658Gitlab::Database::PostgresPartitionedTable7659 associations7660 is expected to have many postgres_partitions7661 behaves like a postgres model7662 .by_identifier7663 finds the Gitlab::Database::PostgresPartitionedTable7664 raises an error if not found7665 raises ArgumentError if given a non-fully qualified identifier7666 #to_s7667 returns the name7668 #schema7669 returns the schema7670 #name7671 returns the name7672 .find_by_name_in_current_schema7673 finds the partitioned tables in the current schema by name7674 does not find partitioned tables in a different schema7675 .each_partition7676 without partitions7677 does not yield control7678 with partitions7679 yields control with partition as argument7680 #dynamic?7681 returns true for tables partitioned by range7682 returns true for tables partitioned by list7683 returns false for tables partitioned by hash7684 #static?7685 returns false for tables partitioned by range7686 returns false for tables partitioned by list7687 returns true for tables partitioned by hash7688 #strategy7689 returns the partitioning strategy7690 #key_columns7691 returns the partitioning key columns7692Gitlab::Database::Migrations::Instrumentation7693 #observe7694 executes the given block7695 behavior with observers7696 instantiates observer with observation7697 calls #before, #after, #record on given observers7698 ignores errors coming from observers #before7699 ignores errors coming from observers #after7700 ignores errors coming from observers #record7701 on successful execution7702 records a valid observation7703 transforms observation to expected json7704 upon failure7705 exception: StandardError, error_message: "something went wrong"7706 retrieving observations7707 records a valid observation7708 transforms observation to expected json7709 exception: ActiveRecord::StatementTimeout, error_message: "timeout"7710 retrieving observations7711 records a valid observation7712 transforms observation to expected json7713 sequence of migrations with failures7714 records observations for all migrations7715Sidebars::Projects::Menus::HiddenMenu7716 #render?7717 when menu does not have any menu items7718 returns false7719 when menu has menu items7720 returns true7721 Menu items7722 Activity7723 when user has access to the project7724 is expected not to be nil7725 when the user is not present7726 is expected not to be nil7727 Graph7728 when project repository is empty7729 is expected to be nil7730 behaves like access rights checks7731 is expected not to be nil7732 when the user does not have access7733 is expected to be nil7734 New Issue7735 behaves like access rights checks7736 is expected not to be nil7737 when the user does not have access7738 is expected to be nil7739 Jobs7740 behaves like access rights checks7741 is expected not to be nil7742 when the user does not have access7743 is expected to be nil7744 Commits7745 when project repository is empty7746 is expected to be nil7747 behaves like access rights checks7748 is expected not to be nil7749 when the user does not have access7750 is expected to be nil7751 Issue Boards7752 behaves like access rights checks7753 is expected not to be nil7754 when the user does not have access7755 is expected to be nil7756Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies::UntilExecuting7757 behaves like deduplicating jobs when scheduling7758 #schedule7759 checks for duplicates before yielding7760 checks worker options for scheduled jobs7761 job marking7762 adds the jid of the existing job to the job hash7763 scheduled jobs7764 scheduled in the past7765 adds the jid of the existing job to the job hash7766 scheduled in the future7767 adds the jid of the existing job to the job hash7768 when the job is not duplicate7769 does not return false nor drop the job7770 when the job is droppable7771 updates latest wal location7772 returns false to drop the job7773 logs that the job was dropped7774 logs the deduplication options of the worker7775 #perform7776 updates job hash with dedup_wal_locations7777 when latest_wal_location is empty7778 does not update job hash with dedup_wal_locations7779 #perform7780 deletes the lock before executing7781Namespaces::ProjectsFinder7782 #execute7783 without a namespace7784 returns an empty array7785 with a namespace7786 returns the project for the namespace7787 when not_aimed_for_deletion is provided7788 returns all projects not aimed for deletion for the namespace7789 when include_subgroups is provided7790 returns all projects for the namespace7791 when ids are provided7792 returns all projects for the ids7793 when not_aimed_for_deletion is provided7794 returns all projects not aimed for deletion for the namespace7795 when ids are provided7796 returns all projects for the ids7797 when with_issues_enabled is true7798 returns the projects that have issues enabled7799 when with_merge_requests_enabled is true7800 returns the projects that have merge requests enabled7801 when sort is similarity7802 returns projects by similarity7803 when search parameter is missing7804 returns all projects7805 when sort parameter is missing7806 returns matching projects7807 when sort parameter is ACTIVITY_DESC7808 returns projects sorted by latest activity7809Releases::Links::CreateService7810 # order random7811 #execute7812 successfully creates a release link7813 when user does not have access to create release link7814 returns an error7815 when url is invalid7816 returns an error7817 when both direct_asset_path and filepath are provided7818 prefers direct_asset_path7819 when only filepath is set7820 uses filepath7821Environments::AutoDeleteCronWorker7822 #perform7823 deletes the environment7824 when environment is not stopped7825 does not delete the environment7826 when auto_delete_at is null7827 does not delete the environment7828 with multiple deletable environments7829 deletes all deletable environments7830 when loop reached loop limit7831 deletes only one deletable environment7832 when batch size is less than the number of environments7833 deletes all deletable environments7834 with multiple deployments7835 deletes the deployment records and refs7836 when loop reached timeout7837 does not delete the environment7838 with idempotent flag7839 is labeled as idempotent7840 performs multiple times sequentially without raising an exception7841 deletes the environment7842Types::Ci::PipelineCountsType7843 is expected to eq "PipelineCounts"7844 has the expected fields7845 behaves like pipeline counts query7846 returns pipeline counts7847 behaves like pipeline counts query7848 returns pipeline counts7849 behaves like pipeline counts query7850 returns pipeline counts7851 behaves like pipeline counts query7852 returns pipeline counts7853Gitlab::Ci::Pipeline::Chain::Validate::Repository7854 when ref and sha exists7855 does not break the chain7856 does not append pipeline errors7857 when ref does not exist7858 breaks the chain7859 adds an error about missing ref7860 when origin ref is a merge request ref7861 does not break the chain7862 does not append pipeline errors7863 when ref is ambiguous7864 breaks the chain7865 adds an error about missing ref7866 when does not have existing SHA set7867 breaks the chain7868 adds an error about missing SHA7869Ci::PipelineCleanupRefWorker7870 # order random7871 does remove persistent ref7872 when max retry attempts reach7873 does not raise error7874 when pipeline is still running7875 does not remove persistent ref7876 when pipeline status changes while being locked7877 does not remove persistent ref7878Gitlab::Database::Type::IndifferentJsonb7879 # order random7880 when used by a model7881 is expected to match {:key=>"value"}7882 is expected to match {"key"=>"value"}7883 ignores changes to other attributes7884 tracks changes to options7885 #deserialize7886 json: nil, value: nil7887 is expected to match nil7888 is expected to match nil7889 json: "{\"key\":\"value\"}", value: {:key=>"value"}7890 is expected to match {:key=>"value"}7891 is expected to match {"key"=>"value"}7892 json: "{\"key\":[1,2,3]}", value: {:key=>[1, 2, 3]}7893 is expected to match {:key=>[1, 2, 3]}7894 is expected to match {"key"=>[1, 2, 3]}7895 json: "{\"key\":{\"subkey\":\"value\"}}", value: {:key=>{:subkey=>"value"}}7896 is expected to match {:key=>{:subkey=>"value"}}7897 is expected to match {"key"=>{"subkey"=>"value"}}7898 json: "{\"key\":{\"a\":[{\"b\":\"c\"},{\"d\":\"e\"}]}}", value: {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}7899 is expected to match {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}7900 is expected to match {"key"=>{"a"=>[{"b"=>"c"}, {"d"=>"e"}]}}7901Mutations::Users::SetNamespaceCommitEmail7902 # order random7903 is expected to require graphql authorizations :read_namespace_via_membership7904 #resolve7905 when current_user does not have permission7906 raises an error7907 when the user has permission7908 when the email does not belong to the target user7909 returns the validation error7910 when namespace is a group7911 behaves like success7912 creates namespace commit email with correct values7913 when namespace is a user7914 behaves like success7915 creates namespace commit email with correct values7916 when namespace is a project7917 behaves like success7918 creates namespace commit email with correct values7919API::Helpers::Packages::Npm7920 # order random7921 #enqueue_sync_metadata_cache_worker7922 behaves like enqueue a worker to sync a metadata cache7923 enqueues a worker to create a metadata cache7924 with npm_metadata_cache disabled7925 behaves like does not enqueue a worker to sync a metadata cache7926 does not enqueue a worker to sync a metadata cache7927 #project_id_or_nil7928 when called with project scope7929 is expected to eq 6547930 when called with group scope7931 is expected to eq 6547932 when called with instance scope7933 when given an unscoped name7934 is expected to eq nil7935 when given a scope that does not match a group name7936 is expected to eq nil7937 when given a scope that matches a group name7938 is expected to eq 6547939 with another package with the same name, in another project in the namespace7940 returns the project id for the newest matching package within the scope7941 with npm_allow_packages_in_multiple_projects disabled7942 when given an unscoped name7943 is expected to eq nil7944 when given a scope that does not match a group name7945 is expected to eq nil7946 when given a scope that matches a group name7947 is expected to eq 6547948 with another package with the same name, in another project in the namespace7949 returns the project id for the newest matching package within the scope7950 #finder_for_endpoint_scope7951 when called with project scope7952 returns a PackageFinder for project scope7953 when called with instance scope7954 returns a PackageFinder for namespace scope7955 when called with group scope7956 returns a PackageFinder for group scope7957Gitlab::Ci::Reports::Security::Identifier7958 #initialize7959 when all params are given7960 initializes an instance7961 when attribute external_type is missing7962 raises an error7963 when attribute external_id is missing7964 raises an error7965 when attribute name is missing7966 raises an error7967 #key7968 returns fingerprint7969 #type_identifier?7970 external_type: "cve", expected_result: false7971 is expected to equal false7972 external_type: "foo", expected_result: false7973 is expected to equal false7974 external_type: "cwe", expected_result: true7975 is expected to equal true7976 external_type: "wasc", expected_result: true7977 is expected to equal true7978 external type check methods7979 external_type: "Foo", is_cve?: false, is_cwe?: false, is_wasc?: false7980 returns correct result for the type check method7981 external_type: "Cve", is_cve?: true, is_cwe?: false, is_wasc?: false7982 returns correct result for the type check method7983 external_type: "Cwe", is_cve?: false, is_cwe?: true, is_wasc?: false7984 returns correct result for the type check method7985 external_type: "Wasc", is_cve?: false, is_cwe?: false, is_wasc?: true7986 returns correct result for the type check method7987 #to_hash7988 returns expected hash7989 #==7990 when external_type and external_id are equal7991 returns true7992 when external_type is different7993 returns false7994 when external_id is different7995 returns false7996Security::CiConfiguration::SastIacBuildAction7997 with existing .gitlab-ci.yml and when the ci config file configuration was not set7998 behaves like existing .gitlab-ci.yml tests7999 with existing .gitlab-ci.yml8000 sast iac has not been included8001 template includes are an array8002 generates the correct YML8003 template include is not an array8004 generates the correct YML8005 secret_detection has been included8006 secret_detection template include are an array8007 generates the correct YML8008 secret_detection template include is not an array8009 generates the correct YML8010 with existing .gitlab-ci.yml and when the ci config file configuration was deleted8011 behaves like existing .gitlab-ci.yml tests8012 with existing .gitlab-ci.yml8013 sast iac has not been included8014 template includes are an array8015 generates the correct YML8016 template include is not an array8017 generates the correct YML8018 secret_detection has been included8019 secret_detection template include are an array8020 generates the correct YML8021 secret_detection template include is not an array8022 generates the correct YML8023 with no .gitlab-ci.yml8024 autodevops disabled8025 generates the correct YML8026 with autodevops enabled8027 generates the correct YML8028Integrations::SlackEventWorker8029 # order random8030 .event?8031 when event is known8032 is expected to eq true8033 when event is not known8034 is expected to eq false8035 #perform8036 executes the correct service8037 ensures idempotency when called twice by only executing service once8038 executes service twice if service returned an error8039 executes service twice if service raised an error8040 executes service twice when event_id is different8041 behaves like logs extra metadata on done8042 is expected to receive log_extra_metadata_on_done(:slack_workspace_id, "T0123A456BC") 1 time8043 behaves like an idempotent worker8044 is labeled as idempotent8045 performs multiple times sequentially without raising an exception8046 when event is not known8047 does not execute the service class8048 logs an error8049 behaves like logs extra metadata on done8050 is expected to receive log_extra_metadata_on_done(:slack_workspace_id, "T0123A456BC") 1 time8051Resolvers::NestedGroupsResolver8052 # order random8053 #resolve8054 when parent group is public8055 when `include_parent_descendants` is false8056 when user is not logged in8057 behaves like access to all public subgroups8058 returns all public subgroups of the parent group8059 when user is logged in8060 behaves like access to all public subgroups8061 returns all public subgroups of the parent group8062 when `include_parent_descendants` is true8063 when user is not logged in8064 behaves like access to all public descendant groups8065 returns all public descendant groups of the parent group ordered by ASC name8066 when user is logged in8067 behaves like access to all public descendant groups8068 returns all public descendant groups of the parent group ordered by ASC name8069 with owned argument set as true8070 returns only descendant groups owned by the user8071 with search argument8072 returns only descendant groups with matching name or path8073 when parent group is private8074 when `include_parent_descendants` is true8075 when user is not logged in8076 behaves like returning empty results8077 returns empty results8078 when user is logged in8079 returns all private descendant groups8080 when `include_parent_descendants` is false8081 when user is not logged in8082 behaves like returning empty results8083 returns empty results8084 when user is logged in8085 returns private subgroups8086Mutations::Issues::LinkAlerts8087 # order random8088 is expected to require graphql authorizations :update_issue and :admin_issue8089 #resolve8090 when the user is a guest8091 raises an error8092 when a user is also an author8093 raises an error8094 when a user is also an assignee8095 raises an error8096 when the user is a developer8097 when issue type is an incident8098 calls LinkAlerts::CreateService with correct arguments8099 returns no errors8100 when issue type is not an incident8101 does not update alert_management_alerts8102Gitlab::Export::PruneProjectExportJobsWorker8103 # order random8104 #perform8105 is labeled as idempotent8106 performs multiple times sequentially without raising an exception8107 prunes jobs and associations older than 7 days8108 leaves fresh jobs and associations8109SafeZip::Extract8110 #extract8111 when using valid-simple.zip archive8112 behaves like extracts archive8113 when specifying directories8114 does extract archive8115 when specifying files8116 does extract archive8117 when using valid-symlinks-first.zip archive8118 behaves like extracts archive8119 when specifying directories8120 does extract archive8121 when specifying files8122 does extract archive8123 when using valid-non-writeable.zip archive8124 behaves like extracts archive8125 when specifying directories8126 does extract archive8127 when specifying files8128 does extract archive8129 when zip files are invalid8130 name: "invalid-symlink-does-not-exist.zip", message: "does not exist"8131 behaves like fails to extract archive8132 does not extract archive8133 name: "invalid-symlinks-outside.zip", message: "Symlink cannot be created"8134 behaves like fails to extract archive8135 does not extract archive8136 name: "invalid-unexpected-large.zip", message: "larger when inflated"8137 behaves like fails to extract archive8138 does not extract archive8139 when no matching directories are found8140 behaves like fails to extract archive8141 does not extract archive8142 when no matching files are found8143 behaves like fails to extract archive8144 does not extract archive8145Mutations::Ci::JobTokenScope::RemoveProject8146 #resolve8147 when user is not logged in8148 raises error8149 when user is logged in8150 when user does not have permissions to admin project8151 raises error8152 when user has permissions to admin project and read target project8153 with no direction specified8154 defaults to asking the RemoveProjectService to remove the outbound link8155 with direction specified8156 executes project removal for the correct direction8157 when the service returns an error8158 returns an error response8159Ci::Pipelines::AddJobService8160 when the pipeline is not persisted8161 raises error8162 #execute!8163 assigns pipeline attributes to the job8164 assigns partition_id to job and metadata8165 returns a service response with the job as payload8166 calls update_older_statuses_retried!8167 when the block raises an error8168 returns a service response with the error and the job as payload8169 exclusive lock8170 uses exclusive lock8171Gitlab::SlashCommands::IssueSearch8172 #execute8173 when the user has no access8174 only returns the open issues8175 the user has access8176 returns all results8177 without hits on the query8178 returns an empty collection8179 self.match8180 matches the query8181Resolvers::Ci::RunnerProjectsResolver8182 # order random8183 #resolve8184 with authorized user8185 with search argument8186 returns a lazy value with projects containing the specified prefix8187 with sort argument8188 when :id_asc8189 returns a lazy value with projects sorted by :id_asc8190 when :id_desc8191 returns a lazy value with projects sorted by :id_desc8192 with supported arguments8193 creates ProjectsFinder with expected arguments8194 without arguments8195 returns a lazy value with all projects sorted by :id_asc8196 with unauthorized user8197 is expected to be nil8198Gitlab::Ci::Badge::Pipeline::Template8199 behaves like a badge template8200 #key_text8201 says pipeline by default8202 when custom key_text is defined8203 returns custom value8204 when its size is larger than the max allowed value8205 returns default value8206 #key_width8207 is fixed by default8208 when custom key_width is defined8209 returns custom value8210 when it is larger than the max allowed value8211 returns default value8212 #value_text8213 is status value8214 widths and text anchors8215 has fixed width and text anchors8216 #key_color8217 is always the same8218 #value_color8219 when status is success8220 has expected color8221 when status is failed8222 has expected color8223 when status is running8224 has expected color8225 when status is preparing8226 has expected color8227 when status is unknown8228 has expected color8229 when status does not match any known statuses8230 has expected color8231PersonalAccessTokenPolicy8232 current_user is an administrator8233 not the owner of the token8234 is expected to be allowed :read_token8235 is expected to be allowed :revoke_token8236 owner of the token8237 is expected to be allowed :read_token8238 is expected to be allowed :revoke_token8239 current_user is not an administrator8240 not the owner of the token8241 is expected to be disallowed :read_token8242 is expected to be disallowed :revoke_token8243 owner of the token8244 is expected to be allowed :read_token8245 is expected to be allowed :revoke_token8246 subject of the impersonated token8247 is expected to be disallowed :read_token8248 is expected to be disallowed :revoke_token8249 current_user is a blocked administrator8250 owner of the token8251 is expected to be disallowed :read_token8252 is expected to be disallowed :revoke_token8253 not the owner of the token8254 is expected to be disallowed :read_token8255 is expected to be disallowed :revoke_token8256Mutations::Todos::Restore8257 is expected to require graphql authorizations :update_todo8258 #resolve8259 restores a single todo8260 handles a todo which is already pending as expected8261 ignores requests for todos which do not belong to the current user8262AwardEmojiHelper8263 .toggle_award_url8264 note on personal snippet8265 returns correct url8266 note on project item8267 returns correct url8268 personal snippet8269 returns correct url8270 merge request8271 returns correct url8272 issue8273 returns correct url8274Plan8275 scopes8276 .by_name8277 returns plans by their name8278 #default?8279 when 'default'8280 is expected to be truthy8281 #default8282 when default plan exists8283 returns default plan8284 when default plan does not exist8285 creates default plan8286 creates plan with correct attributes8287 when updating plan limits8288 is expected to be persisted8289 is expected not to be persisted8290 successfully updates the limits8291RefMatcher8292 #matching8293 when refs are strings8294 is expected to contain exactly "v1.0"8295 behaves like matching_refs8296 when there is no match8297 is expected to contain exactly8298 when ref pattern is a wildcard8299 is expected to contain exactly "v1.0" and "v1.1"8300 when refs are ref objects8301 is expected to contain exactly #<Double "tag">8302 behaves like matching_refs8303 when there is no match8304 is expected to contain exactly8305 when ref pattern is a wildcard8306 is expected to contain exactly #<Double "tag"> and #<Double "tag">8307 #matches?8308 is expected to be truthy8309 when ref_name is empty8310 is expected to be falsey8311 when ref pattern matches wildcard8312 is expected to be truthy8313 when ref pattern does not match wildcard8314 is expected to be falsey8315 #wildcard?8316 is expected to be falsey8317 when pattern is a wildcard8318 is expected to be truthy8319Gitlab::Graphql::Authorize::AuthorizeResource8320 when the user is allowed to perform the action8321 #authorized_find!8322 returns the object8323 #authorize!8324 does not raise an error8325 when the user is not allowed to perform the action8326 #authorized_find!8327 raises an error8328 #authorize!8329 raises an error8330 #find_object8331 calls GitlabSchema.find_by_gid8332 #authorize8333 adds permissions from subclasses to those of superclasses when used on classes8334 authorizes_object?8335 is false by default8336 is true after calling authorizes_object!8337 is true if a parent authorizes_object8338Users::AuthorizedBuildService8339 #execute8340 behaves like common user build items8341 is expected to be valid8342 sets the created_by_id8343 calls UpdateCanonicalEmailService8344 when user_type is provided8345 when project_bot8346 is expected to equal true8347 when not a project_bot8348 is expected to be human8349 behaves like current user not admin build items8350 when "email_confirmation_setting" application setting is set to `hard`8351 does not confirm the user8352 when "email_confirmation_setting" application setting is set to `off`8353 confirms the user8354 with allowed params8355 sets all allowed attributes8356 for additional authorized build allowed params8357 is expected to be external8358Types::DesignManagement::DesignType8359 is expected to include Types::CurrentUserTodos8360 is expected to include Types::TodoableInterface8361 behaves like a GraphQL type with design fields8362 is expected to require graphql authorizations :read_design8363 exposes the expected design fields8364 #image8365 resolves to the design image URL8366 has better than O(N) peformance8367Preloaders::Environments::DeploymentPreloader8368 does not trigger N+1 queries8369 batch loads the dependent associations8370 avoids scoping with IN clause during preload8371 sets environment on the associated deployment8372 does not attempt to set environment on a nil deployment8373ClusterSerializer8374 #represent_list8375 serializes attrs correctly8376 #represent_status8377 when provider type is gcp and cluster is errored8378 serializes attrs correctly8379 when provider type is user8380 serializes attrs correctly8381BulkImports::FinishBatchedRelationExportWorker8382 # order random8383 #perform8384 behaves like an idempotent worker8385 is labeled as idempotent8386 performs multiple times sequentially without raising an exception8387 marks export as finished and expires batches cache8388 when export is finished8389 returns without updating export8390 when export is failed8391 returns without updating export8392 when export is in progress8393 reenqueues itself8394 when export timed out8395 marks export as failed8396 when export is missing8397 returns8398Mutations::Issues::UnlinkAlert8399 # order random8400 is expected to require graphql authorizations :update_issue and :admin_issue8401 #resolve8402 when the user is a guest8403 raises an error8404 when the user is a developer8405 when unlinking internal alert8406 behaves like unlinking an alert8407 unlinks the alert8408 returns no errors8409 when unlinking external alert8410 behaves like unlinking an alert8411 unlinks the alert8412 returns no errors8413 when LinkAlerts::DestroyService responds with an error8414 returns the error8415Gitlab::Usage::Metrics::Aggregates::Sources::PostgresHll8416 metric calculations8417 .calculate_events_union8418 returns the number of unique events in the union of all metrics8419 when there is no aggregated data saved8420 raises error when union data is missing8421 when there is only one metric defined as aggregated8422 returns the number of unique events for that metric8423 .calculate_metrics_intersections8424 returns the number of common events in the intersection of all metrics8425 when there is no aggregated data saved8426 raises error when union data is missing8427 when there is only one metric defined in aggregate8428 returns the number of common/unique events for the intersection of that metric8429 .save_aggregated_metrics8430 with compatible data argument8431 persists serialized data in Redis8432 with monthly key8433 persists serialized data in Redis8434 with all_time key8435 persists serialized data in Redis8436 error handling8437 rescues and reraise ::Redis::CommandError for development and test environments8438 for environment different than development8439 rescues ::Redis::CommandError8440 with incompatible data argument8441 raises error for development environment8442 for environment different than development8443 does not persist data in Redis8444Gitlab::SlashCommands::Presenters::Access8445 #access_denied8446 is expected to be a kind of Hash8447 behaves like displays an error message8448 is expected to equal :ephemeral8449 #generic_access_denied8450 is expected to be a kind of Hash8451 behaves like displays an error message8452 is expected to equal :ephemeral8453 #deactivated8454 is expected to be a kind of Hash8455 behaves like displays an error message8456 is expected to equal :ephemeral8457 #not_found8458 is expected to be a kind of Hash8459 tells the user the resource was not found8460 #authorize8461 with an authorization URL8462 is expected to be a kind of Hash8463 tells the user to authorize8464 without authorization url8465 is expected to be a kind of Hash8466 tells the user to authorize8467AwardEmojisFinder8468 param validation8469 raises an error if `name` is invalid8470 does not raise an error if `name` is numeric8471 raises an error if `awarded_by` is invalid8472 #execute8473 scopes to the awardable8474 filters by emoji name8475 filters by user8476Resolvers::MergeRequestPipelinesResolver8477 resolves only MRs for the passed merge request8478 with archived project8479 is expected not to contain exactly #<Ci::Pipeline id: 172, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...: nil, external_pull_request_id: nil, ci_ref_id: 155, locked: "artifacts_locked", partition_id: 100>8480AwardEmojis::ToggleService8481 #execute8482 when user has awarded an emoji8483 calls AwardEmojis::DestroyService8484 destroys an AwardEmoji8485 returns the result of DestroyService#execute8486 when user has not awarded an emoji8487 calls AwardEmojis::AddService8488 creates an AwardEmoji8489 returns the result of AddService#execute8490IssueBoardEntity8491 has basic attributes8492 has path and endpoints8493 has milestone attributes8494 has assignee attributes8495 has label attributes8496 type8497 has an issue type8498 real_path8499 has an issue path8500 when issue is of type task8501 has a work item path with iid8502Types::MilestoneType8503 is expected to eq "Milestone"8504 is expected to require graphql authorizations :read_milestone8505 has the expected fields8506 stats field8507 is expected to have graphql type Types::MilestoneStatsType8508Resolvers::Ci::Catalog::ResourcesResolver8509 # order random8510 #resolve8511 with an authorized user8512 returns all CI Catalog resources visible to the current user in the namespace8513 returns all resources sorted by descending created date when given no sort param8514 returns all CI Catalog resources sorted by descending name when there is a sort parameter8515 when the current user cannot read the namespace catalog8516 raises ResourceNotAvailable8517Gitlab::GithubImport::Importer::PullRequests::AllMergedByImporter8518 # order random8519 is expected to includes the Gitlab::GithubImport::ParallelScheduling module8520 #sidekiq_worker_class8521 is expected to eq Gitlab::GithubImport::PullRequests::ImportMergedByWorker8522 #importer_class8523 is expected to eq Gitlab::GithubImport::Importer::PullRequests::MergedByImporter8524 #id_for_already_imported_cache8525 is expected to eq 18526 #each_object_to_import8527 fetches the merged pull requests data8528 skips cached merge requests8529 #collection_method8530 is expected to eq :pull_requests_merged_by8531 #representation_class8532 is expected to eq Gitlab::GithubImport::Representation::PullRequest8533Gitlab::Ci::Status::Build::Action8534 #label8535 when status has action8536 does not append text8537 when status does not have action8538 appends text about action not allowed8539 .matches?8540 when build is playable action8541 is a correct match8542 when build is not playable action8543 does not match8544 #badge_tooltip8545 returns the status8546Repositories::ChangelogCommitsFinder8547 #each_page8548 only yields commits with the given trailer8549 ignores commits that are reverted8550 includes revert commits if they have a trailer8551 supports paginating of commits8552 #revert_commit_sha8553 returns the SHA of a reverted commit8554 returns nil when the commit is not a revert commit8555 returns nil when the commit has no description8556Gitlab::Usage::Metrics::Instrumentations::RedisHLLMetric8557 raise exception if events options is not present8558 for 28d8559 behaves like a correct instrumented metric value8560 has correct value8561 for 7d8562 behaves like a correct instrumented metric value8563 has correct value8564 children classes8565 availability not defined8566 returns default availability8567 availability defined8568 returns defined availability8569ExclusiveLeaseGuard8570 #try_obtain_lease8571 obtains the lease, calls internal_method and releases the lease8572 when the lease is already obtained8573 when the class does not override lease_taken_log_level8574 does not call internal_method but logs error8575 when the class overrides lease_taken_log_level to return :info8576 logs info8577 when the class overrides lease_taken_log_level to return :debug8578 logs debug8579 with overwritten lease_release?8580 does not release the lease after execution8581 #exclusive_lease8582 uses the class name as lease key8583 with overwritten lease_key8584 uses the custom lease key8585 #release_lease8586 sends a cancel message to ExclusiveLease8587 #renew_lease!8588 sends a renew message to the exclusive_lease instance8589RuboCop::Cop::Rake::Require8590 # order random8591 when outside of a Rake file8592 registers an offenses for require methods8593 #in_rake_file?8594 in a Rake file8595 is expected to equal true8596 when outside of a Rake file8597 is expected to equal false8598 in a Rake file8599 registers an offenses for require methods8600 does not register offense inside `task` definition8601 does not register offense inside a block definition8602 does not register offense inside a method definition8603 does not register offense when require task related files8604EnvironmentsHelper8605 #metrics_data8606 returns data8607 without admin_operations permission8608 is expected to include {"can_access_operations_settings" => "false"}8609 when the environment is not available8610 is expected to include {"environment_state" => "stopped"}8611 when metrics dashboard feature is unavailable8612 does not return data8613 #custom_metrics_available?8614 returns true8615 #environment_logs_data8616 returns logs data8617Gitlab::ImportExport::Base::ObjectBuilder8618 #build8619 when object exists8620 when where_clauses are implemented8621 finds existing object instead of creating one8622 when where_clauses are not implemented8623 raises NotImplementedError8624 when object does not exist8625 creates new object8626Mail quoted-printable transfer encoding patch and Unicode characters8627 with a text email8628 with a body that encodes to exactly 74 characters (final newline)8629 behaves like email encoding8630 enclosing in a new object does not change the encoded original8631 with a body that encodes to exactly 74 characters (no final newline)8632 behaves like email encoding8633 enclosing in a new object does not change the encoded original8634 with a body that encodes to exactly 75 characters8635 behaves like email encoding8636 enclosing in a new object does not change the encoded original8637 with an html email8638 with a body that encodes to exactly 74 characters (final newline)8639 behaves like email encoding8640 enclosing in a new object does not change the encoded original8641 with a body that encodes to exactly 74 characters (no final newline)8642 behaves like email encoding8643 enclosing in a new object does not change the encoded original8644 with a body that encodes to exactly 75 characters8645 behaves like email encoding8646 enclosing in a new object does not change the encoded original8647 a multipart email8648 behaves like email encoding8649 enclosing in a new object does not change the encoded original8650 with non UTF-8 charset8651 can be decoded back8652 behaves like email encoding8653 enclosing in a new object does not change the encoded original8654 with binary content8655 can be encoded with 'base64' content-transfer-encoding8656 binary contents are not modified8657 behaves like email encoding8658 enclosing in a new object does not change the encoded original8659 encoding fails with 'quoted-printable' content-transfer-encoding8660 content cannot be decoded back8661 empty text mail with unsual body encoding8662 decodes email successfully8663 frozen email boy content with unsual body encoding8664 decodes email successfully8665Resolvers::Terraform::StatesResolver8666 is expected to have nullable GraphQL type TerraformStateConnection8667 is expected to be truthy8668 #resolve8669 returns states associated with the agent8670 user does not have permission8671 is expected to be empty8672Resolvers::Terraform::StatesResolver.single8673 is expected to be < Resolvers::Terraform::StatesResolver8674 arguments8675 name8676 is expected to be present8677ProjectGroupLinkPolicy8678 # order random8679 when the user is a group owner8680 when user is not project maintainer8681 can admin group_project_link8682 when user is a project maintainer8683 can admin group_project_link8684 when user is not a group owner8685 when user is a project maintainer8686 can admin group_project_link8687 when user is not a project maintainer8688 cannot admin group_project_link8689Releases::ManageEvidenceWorker8690 when `released_at` in inside the window8691 when Evidence has not been created8692 creates a new Evidence record8693 when evidence has already been created8694 behaves like does not create a new Evidence record8695 sidekiq_inline8696 when `released_at` is outside the window8697 behaves like does not create a new Evidence record8698 sidekiq_inline8699ResourceEvents::AbuseReportEventsHelper8700 # order random8701 #success_message_for_action8702 action: "ban_user", action_value: 18703 is expected not to be nil8704 action: "block_user", action_value: 28705 is expected not to be nil8706 action: "delete_user", action_value: 38707 is expected not to be nil8708 action: "close_report", action_value: 48709 is expected not to be nil8710 action: "ban_user_and_close_report", action_value: 58711 is expected not to be nil8712 action: "block_user_and_close_report", action_value: 68713 is expected not to be nil8714 action: "delete_user_and_close_report", action_value: 78715 is expected not to be nil8716 action: "trust_user", action_value: 88717 is expected not to be nil8718 action: "trust_user_and_close_report", action_value: 98719 is expected not to be nil8720JiraConnect::SyncDeploymentsWorker8721 behaves like worker with data consistency8722 .get_data_consistency_feature_flag_enabled?8723 returns true8724 .get_data_consistency8725 returns correct data consistency8726 #perform8727 when the object exists8728 calls the Jira sync service8729 when the object does not exist8730 does not call the sync service8731PagesDomains::CreateService8732 # order random8733 when the user does not have the required permissions8734 does not create a pages domain and does not publish a PagesDomainCreatedEvent8735 when the user has the required permissions8736 when it saves the domain successfully8737 creates the domain and publishes a PagesDomainCreatedEvent8738 when it fails to save the domain8739 does not create a pages domain and does not publish a PagesDomainCreatedEvent8740JiraConnect::CreateAsymmetricJwtService8741 # order random8742 #execute8743 raises an error8744 with proxy installation8745 stores the public key8746 behaves like produces a valid JWT8747 produces a valid JWT8748 with uninstalled event option8749 behaves like produces a valid JWT8750 produces a valid JWT8751Packages::Nuget::PackagesVersionsPresenter8752 #versions8753 is expected to contain exactly "1.0.1", "1.0.2", "1.0.3", "1.0.4", and "1.0.5"8754Gitlab::Database::BumpSequences8755 # order random8756 #execute8757 when bumping the sequences8758 changes sequences by the passed argument `increase_by` value on the main database8759 will still increase the value of sequences that have is_called = False8760 resets the INCREMENT value of the sequences back to 1 for the following calls to nextval()8761 increments the sequence of the tables in the given schema, but not in other schemas8762Gitlab::Blame8763 #first_line8764 is expected to eq 18765 with a range8766 is expected to eq 28767 #groups8768 groups lines properly8769 with a range 1..58770 returns the correct lines8771 with highlighted lines8772 returns the correct lines8773 with a range 2..48774 returns the correct lines8775 with highlighted lines8776 returns the correct lines8777 renamed file8778 adds previous path8779Gitlab::Ci::Pipeline::Expression::Lexeme::Pattern::RegularExpression8780 # order random8781 #initialize8782 initializes the pattern8783 #expression8784 with valid expressions8785 is expected to eq #<Gitlab::UntrustedRegexp:0x00007b7effe38678 @regexp=#<RE2::Regexp /bar/>, @scan_regexp=#<RE2::Regexp /(bar)/>>8786 when the value is not a valid regular expression8787 is expected to raise RegexpError8788 when the request store is activated8789 fabricates once8790 #valid?8791 with valid expressions8792 is expected to be truthy8793 when the value is not a valid regular expression8794 is expected to be falsey8795CaseSensitivity8796 .iwhere8797 finds a single instance by a single attribute regardless of case8798 finds multiple instances by a single attribute regardless of case8799 finds instances by multiple attributes8800 finds instances by custom Arel attributes8801 builds a query using LOWER8802RedirectRoute8803 relationships8804 is expected to belong to source required: false8805 validations8806 is expected to validate that :source cannot be empty/falsy8807 is expected to validate that :path cannot be empty/falsy8808 is expected to validate that :path is case-insensitively unique8809 .matching_path_and_descendants8810 when the redirect route matches with same casing8811 returns correct routes8812 when the redirect route matches with different casing8813 returns correct routes8814RuboCop::Cop::RSpec::EnvMocking8815 # order random8816 with acceptable cases8817 does not register an offense for mocking other methods8818 with mocking bracket calls8819 behaves like cop offense mocking the ENV constant correctable with stub_env8820 registers an offense for `allow(ENV).to receive(:[]).with('FOO').and_return('bar')` and corrects8821 behaves like cop offense mocking the ENV constant correctable with stub_env8822 registers an offense for `allow(ENV).to receive(:[]).with(key).and_return(value)` and corrects8823 with mocking fetch calls8824 behaves like cop offense mocking the ENV constant correctable with stub_env8825 registers an offense for `allow(ENV).to receive(:fetch).with('FOO').and_return('bar')` and corrects8826 behaves like cop offense mocking the ENV constant correctable with stub_env8827 registers an offense for `allow(ENV).to receive(:fetch).with(key).and_return(value)` and corrects8828 with other special cases and variations8829 behaves like cop offense mocking the ENV constant correctable with stub_env8830 registers an offense for `allow(::ENV).to receive(:[]).with(key).and_return(value)` and corrects8831 behaves like cop offense mocking the ENV constant correctable with stub_env8832 registers an offense for `allow(ENV).to receive(:[]).with(fetch_key(object)).and_return(fetch_value(object))` and corrects8833Ci::GenerateTerraformReportsService8834 #execute8835 when head pipeline has terraform reports8836 returns status and data8837 when head pipeline has corrupted terraform reports8838 returns a report with error messages8839 when head pipeline is corrupted8840 returns status and error message8841Gitlab::CycleAnalytics::Summary::Value8842 Gitlab::CycleAnalytics::Summary::Value::None8843 returns `-`8844 Gitlab::CycleAnalytics::Summary::Value::Numeric8845 returns the string representation of the number8846 Gitlab::CycleAnalytics::Summary::Value::PrettyNumeric8847 #to_s8848 returns `-` when the number is 08849 returns `-` when the number is nil8850 returns the string representation of the number8851Users::RespondToTermsService8852 #execute8853 creates a new agreement if it did not exist8854 updates an agreement if it existed8855 adds the accepted terms to the user8856 removes accepted terms when declining8857Gitlab::BuildAccess8858 #can_do_action8859 when the user can do an action on the project but cannot access git8860 is expected to equal true8861 when the user cannot do an action on the project8862 is expected to equal false8863Gitlab::AnonymousSession8864 removes obsolete lookup through ip entries8865 #store_session_ip8866 adds session id to proper key8867 adds expiration time to key8868 when there is already one session8869 increments the session count8870 #stored_sessions8871 returns all anonymous sessions per ip8872groups/_home_panel8873 renders the group ID8874 admin area link8875 renders admin area link for admin8876 does not render admin area link for non-admin8877 does not render admin area link for anonymous8878Pages::DestroyDeploymentsService8879 destroys all deployments of the project8880 destroy only deployments older than last deployment if it is provided8881Ci::Runners::UnassignRunnerService#execute8882 without user8883 does not destroy runner_project8884 with unauthorized user8885 does not call destroy on runner_project8886 with admin user8887 with destroy returning false8888 returns error response8889 with destroy returning true8890 returns success response8891Gitlab::UsageDataCounters::ContainerRegistryEventCounter8892 # order random8893 behaves like a redis usage counter8894 .count(i_container_registry_delete_manifest)8895 increments the ContainerRegistryEvent i_container_registry_delete_manifest counter by 18896 .read(i_container_registry_delete_manifest)8897 returns the total number of i_container_registry_delete_manifest events8898 behaves like a redis usage counter with totals8899 totals8900 can report all totals8901 unknown events8902 cannot increment8903 cannot read8904WorkItems::Widgets::CurrentUserTodos8905 # order random8906 .quick_action_commands8907 is expected to contain exactly :todo and :done8908 #type8909 is expected to eq :current_user_todos8910 .process_quick_action_param8911 when quick action param is todo_event8912 when param value is `done`8913 is expected to eq {:action=>"mark_as_done"}8914 when param value is `add`8915 is expected to eq {:action=>"add"}8916 when quick action param is not todo_event8917 is expected to eq {:foo=>"foo"}8918 .type8919 is expected to eq :current_user_todos8920 .quick_action_params8921 is expected to contain exactly :todo_event8922Counters::CleanupRefreshWorker8923 # order random8924 #perform8925 calls cleanup_refresh on the counter8926 when model class does not exist8927 does nothing8928 when record does not exist8929 does nothing8930Types::DataTransfer::ProjectDataTransferType8931 # order random8932 includes the specific fields8933 #total_egress8934 returns mock data8935 when data_transfer_monitoring_mock_data is disabled8936 calls sum on active record relation8937RuboCop::Cop::FileDecompression8938 # order random8939 flags the when using 'zip' system command8940 flags the when using 'tar' subshell command8941 flags the when using 'tar' system command8942 flags the when using 'zip' subshell command8943 flags the when using 'gunzip' system command8944 flags the when using 'gzip' system command8945 flags the when using 'gunzip' subshell command8946 flags the when using 'gzip' subshell command8947 does not flag when using a system command not related to file decompression8948Gitlab::RackAttack::Store8949 # order random8950 #read8951 reads the namespaced key8952 #delete8953 is expected to eq 08954 when the key exists8955 is expected to eq 18956 #increment8957 increments without expiry8958 rejects amounts other than 18959 with expiry8960 increments and sets expiry8961 #write8962 sets the key8963 with expiry8964 sets the key with expiry8965 #with8966 is expected to eq "PONG"8967 when redis is unavailable8968 is expected to eq nil8969Gitlab::UsageDataCounters::NeovimPluginActivityUniqueCounter8970 # order random8971 when tracking a neovim plugin api request8972 behaves like a request from an extension8973 tracks when the user agent is matching8974 does not track when the user agent is not matching8975 does not track if user agent is not present8976 does not track if user is not present8977Gitlab::Ci::Config::Interpolation::Functions::ExpandVars8978 # order random8979 .matches?8980 matches exactly the expand_vars function with no arguments8981 #execute8982 expands the variable8983 when the variable contains another variable8984 does not expand the inner variable8985 when the variable is masked8986 returns an error8987 when the variable is unknown8988 does not expand the variable8989 when there are multiple variables8990 expands the variables8991 when the input is not a string8992 returns an error8993Gitlab::Serializer::Pagination8994 #paginate8995 when a multiple resources are present in relation8996 correctly paginates the resource8997 appends relevant headers8998 when an invalid resource is about to be paginated8999 raises error9000Gitlab::Memory::ReportsDaemon9001 #run_thread9002 with default reports9003 runs them using the given reporter9004 with inactive reports9005 runs only active reports9006 sleep timers logic9007 wakes up every (fixed interval + defined delta), sleeps between reports each cycle9008 #stop_working9009 changes :alive to false9010 timer intervals settings9011 when no settings are set in the environment9012 uses defaults9013 when settings are passed through the environment9014 uses provided values9015LfsPointersFinder9016 #execute9017 when path has no LFS files9018 is expected to eq []9019 when path points to LFS file9020 returns LFS blob ids9021 when path points to directory with LFS files9022 returns LFS blob ids9023 when repository is empty9024 is expected to eq []9025Resolvers::Environments::NestedEnvironmentsResolver9026 # order random9027 #resolve9028 finds the nested environments when status matches9029 finds the nested environments when searching by name9030 finds the nested environments when name matches exactly9031RuboCop::Cop::Database::DisableReferentialIntegrity9032 # order random9033 flags the use of disable_referential_integrity with a full definition9034 does not flag the use of disable_referential_integrity with a send receiver9035 flags the use of disable_referential_integrity with a nil receiver9036 flags the use of disable_referential_integrity when passing a block9037Banzai::Filter::SuggestionFilter9038 includes `js-render-suggestion` class9039 includes no `js-render-suggestion` when filter is disabled9040 multi-line suggestions9041 element has correct data-lang-params9042Gitlab::Ci::Config::Interpolation::Inputs::BaseInput9043 # order random9044 .matches?9045 is not implemented9046 #valid_value?9047 is not implemented9048 .type_name9049 is not implemented9050Gitlab::Database::QueryAnalyzers::PreventSetOperatorMismatch9051 # order random9052 when SQL includes a INTERSECT9053 is expected to receive types(*(any args)) 1 time9054 when SQL includes a UNION9055 is expected to receive types(*(any args)) 1 time9056 when SQL has many select statements9057 raises error9058 when SQL is invalid9059 raises error9060 when SQL is valid9061 does not raise error9062 when SQL includes a EXCEPT9063 is expected to receive types(*(any args)) 1 time9064 when SQL does not include a set operator9065 does not parse SQL9066BulkImports::Projects::Pipelines::PipelineSchedulesPipeline9067 imports schedule into destination project9068 is active9069 imports the schedule but active is false9070API::Entities::ApplicationSetting9071 housekeeping_bitmaps_enabled usage is deprecated and always enabled9072 when housekeeping_bitmaps_enabled db column is false9073 returns true9074 when housekeeping_bitmaps_enabled db column is true9075 returns true9076Achievements::DestroyService9077 # order random9078 #execute9079 when user does not have permission9080 returns an error9081 when user has permission9082 deletes the achievement9083Releases::Evidence9084 filters out issues from summary json9085 associations9086 is expected to belong to release required: false9087Gitlab::Diff::PairSelector9088 #to_a9089 finds all pairs9090 when there are empty lines9091 is expected not to raise Exception9092 when there are only removals9093 returns empty collection9094 when there are only additions9095 returns empty collection9096 when there are no changes9097 returns empty collection9098Integrations::ProjectEntity9099 as json9100 contains needed attributes9101Types::AlertManagement::HttpIntegrationType9102 is expected to eq "AlertManagementHttpIntegration"9103 is expected to require graphql authorizations :admin_operations9104MergeRequests::Mergeability::CheckBrokenStatusService9105 #execute9106 when the merge request is broken9107 returns a check result with status failed9108 when the merge request is not broken9109 returns a check result with status success9110 #skip?9111 returns false9112 #cacheable?9113 returns false9114Gitlab::Ci::Config::Entry::Inherit::Variables9115 validations9116 config: true, valid: true9117 is expected to eq true9118 config: false, valid: true9119 is expected to eq true9120 config: ["A"], valid: true9121 is expected to eq true9122 config: ["A", "B"], valid: true9123 is expected to eq true9124 config: [:image], valid: true9125 is expected to eq true9126 config: [true], valid: false9127 is expected to eq false9128 config: "string", valid: false9129 is expected to eq false9130MergeRequests::ResolveTodosService9131 #async_execute9132 performs MergeRequests::ResolveTodosWorker asynchronously9133 #execute9134 marks pending todo as done9135Gitlab::ImportExport::Project::Sample::DateCalculator9136 #closest date to average9137 when dates are empty9138 is expected to be nil9139 when dates are not empty9140 is expected to eq 2021-01-01 00:00:00.000000000 +00009141 #calculate_by_closest_date_to_average9142 when average date is nil9143 is expected to eq 2023-10-20 08:48:44.817933791 +00009144 when average date is in the past9145 is expected to eq 2024-10-19 08:48:44.854640488 +00009146 when average date is in the future9147 is expected to eq 2023-10-20 08:48:44.891371776 +00009148Gitlab::ImportExport::LogUtil9149 .exportable_to_log_payload9150 when exportable is a group9151 returns hash with group keys9152 when exportable is a project9153 returns hash with project keys9154 when exportable is a new record9155 returns empty hash9156 when exportable is an unexpected type9157 returns empty hash9158Gitlab::GithubImport::Representation::ToHash9159 #to_hash9160 converts an object to a Hash9161 converts nested objects to Hashes9162 converts Array values to Hashes9163 keeps values as-is if they do not respond to #to_hash9164Gitlab::Memory::Instrumentation9165 .available?9166 returns true9167 .start_thread_memory_allocations9168 a hash is returned9169 when feature is unavailable9170 a nil is returned9171 .with_memory_allocations9172 a hash is returned9173 when feature is unavailable9174 a nil is returned9175Ci::TriggersFinder9176 # order random9177 #execute9178 when the current user is authorized9179 returns list of trigger tokens9180 when the current user is not authorized9181 does not return trigger tokens9182DiffViewer::Image9183 .can_render?9184 returns false if both old and new blob are absent9185 returns true if the old blob is present9186 returns true if the new blob is present9187 returns true if both old and new blobs are present9188Gitlab::SidekiqMiddleware::SizeLimiter::Server9189 yields block9190 calls the Compressor9191Types::AlertManagement::AlertType9192 is expected to eq "AlertManagementAlert"9193 is expected to require graphql authorizations :read_alert_management_alert9194 is expected to include Types::TodoableInterface9195 exposes the expected fields9196Gitlab::Usage::Metrics::Instrumentations::CollectedDataCategoriesMetric9197 behaves like a correct instrumented metric value9198 has correct value9199Gitlab::Pagination::Keyset::InOperatorOptimization::ArrayScopeColumns9200 builds array column names9201 when no columns are given9202 is expected to raise /No array columns were given/9203 when Arel AS node is given as input9204 works with Arel AS nodes9205Gitlab::ManifestImport::Metadata9206 #save9207 stores data in Redis with an expiry of EXPIRY_TIME9208 #repositories9209 allows repositories to round-trip with symbol keys9210 uses the fallback when there is nothing in Redis9211 #group_id9212 returns the group ID as an integer9213 uses the fallback when there is nothing in Redis9214API::Entities::PersonalAccessToken9215 #as_json9216 returns token data9217Types::Ci::RunnerType9218 is expected to eq "CiRunner"9219 is expected to require graphql authorizations :read_runner9220 contains attributes related to a runner9221ActivityPub::UserEntity9222 # order random9223 as json9224 has releases page as id9225 is a Person actor9226 provides project name9227 provides an url for web content9228Users::Calloutable9229 Associations9230 is expected to belong to user required: false9231 validations9232 is expected to validate that :user cannot be empty/falsy9233 #dismissed_after?9234 returns whether a callout dismissed after specified date9235RuboCop::Cop::Migration::UnfinishedDependencies9236 # order random9237 with dependent batched background migrations9238 with unfinished dependent migration9239 behaves like migration with rubocop offense9240 registers an offense9241 with incorrectly finalized dependent migration9242 behaves like migration with rubocop offense9243 registers an offense9244 with properly finalized dependent background migrations9245 behaves like migration without any rubocop offense9246 does not register any offense9247 for non migrations9248 behaves like migration without any rubocop offense9249 does not register any offense9250 without any dependent batched background migrations9251 behaves like migration without any rubocop offense9252 does not register any offense9253Gitlab::Metrics::Subscribers::ActionView9254 #render_template9255 tracks rendering of a template9256 observes view rendering time9257Gitlab::GithubGistsImport::Importer::GistsImporter9258 # order random9259 #execute9260 when success9261 spread parallel import9262 when failure9263 returns an error9264 when rate limit reached9265 returns an error9266shared/_milestones_sort_dropdown.html.haml9267 render9268 when a sort option is not selected9269 renders a default sort option9270 when a sort option is selected9271 renders the selected sort option9272Gitlab::Webpack::GraphqlKnownOperations9273 .load9274 when file loader returns9275 returns memoized value9276 when file loader errors9277 returns empty array9278Types::Projects::Services::JiraProjectType9279 is expected to eq "JiraProject"9280 has basic expected fields9281Tooling::Danger::Experiments9282 # order random9283 #class_files_removed?9284 when yml file is deleted but not class file9285 returns false9286 when yml file is deleted but no corresponding class file exists9287 returns true9288 #removed_experiments9289 returns names of removed experiments9290Gitlab::Database::PostgresHll::Buckets9291 #estimated_distinct_count9292 provides estimated cardinality9293 #merge_hash!9294 merges two hashes together into union of two sets9295 #to_json9296 serialize HyperLogLog buckets as hash9297GitHelper9298 #short_sha9299 is expected to eq "d4e043f6"9300 #strip_signature9301 strips PGP SIGNATURE9302 is expected to eq "Version 1.69.0\n\n"9303 strips PGP MESSAGE9304 is expected to eq "Version 1.69.0\n\n"9305 strips SIGNED MESSAGE9306 is expected to eq "this is Roger's signed tag\n\n"9307GroupDeployKeyPolicy9308 edit a group deploy key9309 when the user does not own the group deploy key9310 is expected to be disallowed :update_group_deploy_key9311 when the user owns the group deploy key9312 is expected to be allowed :update_group_deploy_key9313Gitlab::WordDiff::LineProcessor9314 #extract9315 when line is a diff hunk9316 returns DiffHunk segment9317 when line has a newline delimiter9318 returns Newline segment9319 when line has only space9320 returns nil9321 when line has content9322 returns Chunk segment9323Gitlab::PerformanceBar::Stats9324 #process9325 #process9326 logs each SQL query including its duration9327 logs an error when the request could not be processed9328Sidebars::Projects::Menus::ExternalIssueTrackerMenu9329 does not contain any sub menu9330 #render?9331 when active external issue tracker9332 is present9333 returns true9334 is not present9335 returns false9336Gitlab::Import::DatabaseHelpers9337 .insert_and_return_id9338 returns the ID returned by the query9339Ci::StuckBuilds::DropRunningWorker9340 #perform9341 executes an instance of Ci::StuckBuilds::DropRunningService9342 behaves like an idempotent worker9343 is labeled as idempotent9344 performs multiple times sequentially without raising an exception9345Types::Security::CodequalityReportsComparer::DegradationType9346 # order random9347 has expected fields9348 is expected to eq "CodequalityReportsComparerReportDegradation"9349Types::Tree::TreeEntryType9350 is expected to eq "TreeEntry"9351 is expected to have graphql fields :id, :sha, :name, :type, :path, :flat_path, :web_url, and :web_path9352UnnestedInFilters::Dsl9353 #exists?9354 when there is no record in the database with given filters9355 is expected to be falsey9356 when there is a record in the database with given filters9357 is expected to be truthy9358Gitlab::Pages::RandomDomain9359 # order random9360 when project path is less than 48 chars9361 behaves like random domain9362 is expected to eq 639363 when project path is larger than 48 chars9364 behaves like random domain9365 is expected to eq 639366 when project path is close to 48 chars9367 behaves like random domain9368 is expected to eq 639369Gitlab::Logging::CloudflareHelper9370 #store_cloudflare_headers!9371 with normal headers9372 adds Cf-Ray-Id and Cf-Request-Id9373 with header values with long strings9374 filters invalid header values9375 with header values with non-alphanumeric characters9376 filters invalid header values9377Types::Users::AutocompletedUserType9378 # order random9379 is expected to require graphql authorizations :read_user9380 #merge_request_interaction9381 returns the correct type9382 has the correct arguments9383Banzai::Pipeline::ServiceDeskEmailPipeline9384 # order random9385 .filters9386 returns the expected type9387 excludes ServiceDeskUploadLinkFilter9388RuboCop::Cop::Database::RescueQueryCanceled9389 # order random9390 flags the use of ActiveRecord::QueryCanceled9391 does not flag a different exception9392Types::MergeRequests::MergeabilityCheckIdentifierEnum9393 # order random9394 exposes all the existing mergeability check identifiers9395 is expected to eq "MergeabilityCheckIdentifier"9396RuboCop::Cop::Migration::ReferToIndexByName9397 # order random9398 when outside migration9399 registers no offenses9400 when in migration9401 when existing indexes are referred to without an explicit name9402 registers an offense9403API::Entities::BulkImports::ExportBatchStatus9404 # order random9405 has the correct attributes9406Types::IssuableSeverityEnum9407 is expected to eq "IssuableSeverity"9408 exposes all the existing issuable severity values9409Gitlab::SlashCommands::Presenters::Error9410 is expected to be a kind of Hash9411 shows the error message9412Gitlab::CiAccess9413 #can_do_action?9414 when action is :build_download_code9415 is expected to be truthy9416 when action is not :build_download_code9417 is expected to be falsey9418Gitlab::GraphqlLogger9419 builds a logger once9420 logging a GraphQL query9421 logs a query from JSON9422Gitlab::Nav::TopNavMenuHeader9423 # order random9424 .build9425 builds a hash from with the given header9426RuboCop::Cop::IncludeSidekiqWorker9427 # order random9428 when `Sidekiq::Worker` is included9429 registers an offense and corrects9430DataTransfer::MockedTransferFinder9431 # order random9432 #execute9433 returns mock data9434Types::Packages::Protection::RulePackageTypeEnum9435 # order random9436 exposes all options9437Types::ProjectStatisticsRedirectType9438 # order random9439 has all the required fields9440Banzai::Filter::HtmlEntityFilter9441 converts common entities to their HTML-escaped equivalents9442ActivityPub::ReleasesActorSerializer9443 # order random9444 when there is a single object provided9445 serializes the actor attributes9446Gitlab::Database::ObsoleteIgnoredColumns9447 # order random9448 #execute9449 returns a list of class names and columns pairs9450Gitlab::Usage::Metrics::Instrumentations::GitlabDedicatedMetric9451 # order random9452 behaves like a correct instrumented metric value9453 has correct value9454Types::BlobViewerType9455 has the correct fields9456Gitlab::Redis::Wrapper9457 .instrumentation_class9458 raises a NameError9459Gitlab::Memory::DiagnosticReportsLogger9460 # order random9461 #format_message9462 formats incoming hash properly9463auto_explain log contains 1731 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-as-if-foss-single-db-ci-connection-8-28.326.main.ndjson.gz9464took 19.055239379465auto_explain log contains 1732 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-as-if-foss-single-db-ci-connection-8-28.326.ci.ndjson.gz9466took 18.466175549467Pending: (Failures listed here are expected and do not affect your suite's status)9468 1) Gitlab::Metrics::Subscribers::ActiveRecord.load_balancing_metric_counter_keys single database has expected keys9469 # Skipping because some of the extra databases [:ci, :main_clusterwide] are setup9470 # ./spec/lib/gitlab/metrics/subscribers/active_record_spec.rb:559471 2) Gitlab::Metrics::Subscribers::ActiveRecord.load_balancing_metric_counter_keys single database does not have ci keys9472 # Skipping because some of the extra databases [:ci, :main_clusterwide] are setup9473 # ./spec/lib/gitlab/metrics/subscribers/active_record_spec.rb:769474 3) Gitlab::Metrics::Subscribers::ActiveRecord.load_balancing_metric_duration_keys single database has expected keys9475 # Skipping because some of the extra databases [:ci, :main_clusterwide] are setup9476 # ./spec/lib/gitlab/metrics/subscribers/active_record_spec.rb:1149477 4) Gitlab::Metrics::Subscribers::ActiveRecord.load_balancing_metric_duration_keys single database does not have ci keys9478 # Skipping because some of the extra databases [:ci, :main_clusterwide] are setup9479 # ./spec/lib/gitlab/metrics/subscribers/active_record_spec.rb:1239480 5) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 9481 # No pattern provided, skipping.9482 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89483 6) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #work_dir behaves like matches the method pattern 9484 # No pattern provided, skipping.9485 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89486 7) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #relative_path is relative9487 # Path not set, skipping.9488 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409489 8) DesignManagement::DesignV432x230Uploader behaves like builds correct paths .base_dir behaves like matches the method pattern 9490 # No pattern provided, skipping.9491 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89492 9) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 9493 # No pattern provided, skipping.9494 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89495 10) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 9496 # No pattern provided, skipping.9497 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89498 11) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #relative_path is relative9499 # Path not set, skipping.9500 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409501 12) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 9502 # No pattern provided, skipping.9503 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89504 13) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 9505 # No pattern provided, skipping.9506 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89507 14) Gitlab::Database::TablesTruncate when truncating gitlab_main tables on the ci database behaves like truncating legacy tables on a database when the truncated tables are not locked for writes raises an error that the tables are not locked for writes9508 # Skipping because ci is shared or doesn't not exist9509 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:1679510 15) Gitlab::Database::TablesTruncate when truncating gitlab_main tables on the ci database behaves like truncating legacy tables on a database when the truncated tables are locked for writes truncates the legacy tables9511 # Skipping because ci is shared or doesn't not exist9512 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:1859513 16) Gitlab::Database::TablesTruncate when truncating gitlab_main tables on the ci database behaves like truncating legacy tables on a database when the truncated tables are locked for writes does not affect the other tables9514 # Skipping because ci is shared or doesn't not exist9515 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:1929516 17) Gitlab::Database::TablesTruncate when truncating gitlab_main tables on the ci database behaves like truncating legacy tables on a database when the truncated tables are locked for writes logs the sql statements to the logger9517 # Skipping because ci is shared or doesn't not exist9518 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:1989519 18) Gitlab::Database::TablesTruncate when truncating gitlab_main tables on the ci database behaves like truncating legacy tables on a database when the truncated tables are locked for writes when running in dry_run mode does not truncate the legacy tables if running in dry run mode9520 # Skipping because ci is shared or doesn't not exist9521 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2099522 19) Gitlab::Database::TablesTruncate when truncating gitlab_main tables on the ci database behaves like truncating legacy tables on a database when the truncated tables are locked for writes when passing until_table parameter with a table that exists only truncates until the table specified9523 # Skipping because ci is shared or doesn't not exist9524 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2219525 20) Gitlab::Database::TablesTruncate when truncating gitlab_main tables on the ci database behaves like truncating legacy tables on a database when the truncated tables are locked for writes when passing until_table parameter with a table that does not exist raises an error if the specified table does not exist9526 # Skipping because ci is shared or doesn't not exist9527 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2329528 21) Gitlab::Database::TablesTruncate when truncating gitlab_main tables on the ci database behaves like truncating legacy tables on a database when the truncated tables are locked for writes when one of the attached partitions happened to be locked for writes truncates the locked partition successfully9529 # Skipping because ci is shared or doesn't not exist9530 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2529531 22) Gitlab::Database::TablesTruncate when truncating gitlab_main tables on the ci database behaves like truncating legacy tables on a database when the truncated tables are locked for writes with geo configured does not truncate gitlab_geo tables9532 # Skipping because ci is shared or doesn't not exist9533 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2689534 23) Gitlab::Database::TablesTruncate#needs_truncation? when running in a single database mode 9535 # Skipping because ci is shared or doesn't not exist9536 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:3619537 24) Gitlab::Database::TablesTruncate#needs_truncation? when running in a multiple database mode with main data in ci database 9538 # Skipping because ci is shared or doesn't not exist9539 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:3709540 25) Gitlab::Database::TablesTruncate#needs_truncation? when running in a multiple database mode with no main data in ci datatabase 9541 # Skipping because ci is shared or doesn't not exist9542 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:3799543 26) Gitlab::Database::TablesTruncate#needs_truncation? when running in a multiple database mode with no main data in ci datatabase supresses some QueryAnalyzers9544 # Skipping because ci is shared or doesn't not exist9545 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:3819546 27) Gitlab::Database::TablesTruncate when running with multiple shared databases raises an error when truncating the main database that it is a single database setup9547 # Skipping because ci is shared or doesn't not exist9548 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:3209549 28) Gitlab::Database::TablesTruncate when running with multiple shared databases raises an error when truncating the ci database that it is a single database setup9550 # Skipping because ci is shared or doesn't not exist9551 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:3269552 29) Gitlab::Database::TablesTruncate when truncating gitlab_ci tables on the main database behaves like truncating legacy tables on a database when the truncated tables are not locked for writes raises an error that the tables are not locked for writes9553 # Skipping because ci is shared or doesn't not exist9554 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:1679555 30) Gitlab::Database::TablesTruncate when truncating gitlab_ci tables on the main database behaves like truncating legacy tables on a database when the truncated tables are locked for writes truncates the legacy tables9556 # Skipping because ci is shared or doesn't not exist9557 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:1859558 31) Gitlab::Database::TablesTruncate when truncating gitlab_ci tables on the main database behaves like truncating legacy tables on a database when the truncated tables are locked for writes does not affect the other tables9559 # Skipping because ci is shared or doesn't not exist9560 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:1929561 32) Gitlab::Database::TablesTruncate when truncating gitlab_ci tables on the main database behaves like truncating legacy tables on a database when the truncated tables are locked for writes logs the sql statements to the logger9562 # Skipping because ci is shared or doesn't not exist9563 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:1989564 33) Gitlab::Database::TablesTruncate when truncating gitlab_ci tables on the main database behaves like truncating legacy tables on a database when the truncated tables are locked for writes when running in dry_run mode does not truncate the legacy tables if running in dry run mode9565 # Skipping because ci is shared or doesn't not exist9566 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2099567 34) Gitlab::Database::TablesTruncate when truncating gitlab_ci tables on the main database behaves like truncating legacy tables on a database when the truncated tables are locked for writes when passing until_table parameter with a table that exists only truncates until the table specified9568 # Skipping because ci is shared or doesn't not exist9569 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2219570 35) Gitlab::Database::TablesTruncate when truncating gitlab_ci tables on the main database behaves like truncating legacy tables on a database when the truncated tables are locked for writes when passing until_table parameter with a table that does not exist raises an error if the specified table does not exist9571 # Skipping because ci is shared or doesn't not exist9572 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2329573 36) Gitlab::Database::TablesTruncate when truncating gitlab_ci tables on the main database behaves like truncating legacy tables on a database when the truncated tables are locked for writes when one of the attached partitions happened to be locked for writes truncates the locked partition successfully9574 # Skipping because ci is shared or doesn't not exist9575 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2529576 37) Gitlab::Database::TablesTruncate when truncating gitlab_ci tables on the main database behaves like truncating legacy tables on a database when the truncated tables are locked for writes with geo configured does not truncate gitlab_geo tables9577 # Skipping because ci is shared or doesn't not exist9578 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2689579 38) Gitlab::Database::TablesTruncate when running in a single database mode raises an error when truncating the main database that it is a single database setup9580 # Skipping because ci is shared or doesn't not exist9581 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:3389582 39) Gitlab::Database::TablesTruncate when running in a single database mode raises an error when truncating the ci database that it is a single database setup9583 # Skipping because ci is shared or doesn't not exist9584 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:3449585 40) gitlab:db:decomposition:rollback:bump_ci_sequences when multiple databases does not change ci sequences on the ci database9586 # Skipping because ci is shared or doesn't not exist9587 # ./spec/tasks/gitlab/db/decomposition/rollback/bump_ci_sequences_rake_spec.rb:899588Finished in 20 minutes 14 seconds (files took 57.34 seconds to load)95896626 examples, 0 failures, 40 pending9590Randomized with seed 178769591[TEST PROF INFO] Time spent in factories: 08:32.720 (41.3% of total time)9592RSpec exited with 0.9593No examples to retry, congrats!9595Running after script...9596$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"9600$ tooling/bin/push_job_metrics || true9601[job-metrics] Pushing job metrics file for the CI/CD job.9602[job-metrics] Pushed 4 CI job metric entries to InfluxDB.9604Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy9606Uploading artifacts...9607auto_explain/: found 3 matching artifact files and directories 9608coverage/: found 5 matching artifact files and directories 9609crystalball/: found 2 matching artifact files and directories 9610WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9611knapsack/: found 4 matching artifact files and directories 9612rspec/: found 14 matching artifact files and directories 9613WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9614log/*.log: found 17 matching artifact files and directories 9615WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336651487/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9616WARNING: Retrying... context=artifacts-uploader error=request redirected9617Uploading artifacts as "archive" to coordinator... 201 Created id=5336651487 responseStatus=201 Created token=64_oUaxL9618Uploading artifacts...9619rspec/rspec-*.xml: found 1 matching artifact files and directories 9620WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336651487/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9621WARNING: Retrying... context=artifacts-uploader error=request redirected9622Uploading artifacts as "junit" to coordinator... 201 Created id=5336651487 responseStatus=201 Created token=64_oUaxL9624Job succeeded